PilotBob wrote:
Otis wrote:
I can't go into detail about a lot of things in v3, but it will be a reworked system: the designer will be partly rewritten, the system will be model first supporting and everything will be powered by a DSL (text), so you will be able to formulate everything in a powerful DSL (entity definitions, mappings, meta data etc.) which can be used to generate DDL SQL, classes etc. We'll also support other platforms beside our own o/r library.
We don't have an estimate release date, but we don't expect it to release it before the summer 2008.
In the mean time, we'll have 2.6, which we hope to have in beta before the end of the year, with Linq support, vs.net 2008 support, .net 3.5 support, some fixes with breaking changes. After that we'll likely release our DSL, with a conversion tool from/to .lgp projects, to try out what is good and what's bad in our DSL.
I'm sure I don't speak for everyone, but with your excellent query support that is already 100% compile time checked, why waste your time with LINQ support? It seems like alot of work for very little gain.
I agree, but marketing wise, it will be a big step so that's why we'll add it: people will know Linq syntaxis and it will be an alternative for people who find predicates etc. hard to grasp. On the other hand: we'll keep our own query system as it's more powerful than Linq so you'll have an alternative.
Linq has its own share of problems which will cause headaches for people: joins with compound keys, left/right joins, not knowing what the exact sql will be like etc.
These aren't easy problems, a lot of people will suffer from these, therefore I don't agree with the people who say it's always easier. Sure simple queries are perhaps a little easier, but simple queries were never a problem: the problems arise when complex queries are required, and then it gets tough.
So it's a trade off: some things gets simpler and you get an alternative querying system. I don't like how Linq works internally, and I think others will agree with that, and for these people we'll keep our own querying system and we'll keep on extending that in the future if necessary (in 2.6 we'll introduce derived table support for example, which was required for linq anyway).
One big thing which will hit a lot of people in the face is the lack of predictable SQL outcome. For applications which run on big databases, it's required that the developer can control what the SQL looks like in terms of: use joins or use subqueries etc. With Linq that's abstracted away, which means that if e.g. a DBA says to a developer: "Your code generates joins, could you turn that into a subquery instead? ", the developer has to give up, because the developer won't be able to do that with linq. With our own system of course s/he can
Now, 3.0 sounds great!
Thanks I'm very excited about the planned changes, and I'm sure it will bring us the platform for the coming years