Thursday, March 29, 2007

Entity Framework Updates

Julie Lerman reports in her March 28, 2007 What to expect in next (and future) Orcas bits for Entity Framework post on Brian Dawson's two Entity Framework presentations in Orlando at DevConnections for the SQL Server track:

SMS309: Entity Framework: Part I – Code Past the Depths of ORM Let’s map objects to the database and find out what else awaits with the next generation of the Entity Framework. The Entity Framework provides more than just another ORM solution, although the Entity Framework does that pretty well. Come join a session which dives into lots of code for the sole purpose of making data access even easier. Also see how objects can become web services, and how inheritance works using the Entity Data Model (EDM).

SMS310: Entity Framework: Part II – Dive Even Deeper into Depths of the Entity Framework See how to program against the value layer and go through a more in depth look at navigating through the Entity Framework; see what CSDL, MSL, SSDL means and how LINQ works the new model. Also as a special addition, learn the business value or an answer to the question, “Why should I use the Entity Framework”, not just for programmers, but also for managers.

Brian is the author of the recent Object Services – Write less code post for the ADO.NET Team blog.


Danny Simmons has posted Change Tracking Mechanisms for the Entity Framework, which covers alternative approaches to change tracking. Change tracking is based on values designated as "concurrency tokens."

He also mentioned in A delay before I write more about persistence ignorance... that it might be a while before he responds to the issue of Persistence Ignorance in the Entity Framework.

Danny warns in the thread of my EDM Designer ETA Slipping Past Orcas RTM? thread in the ADO.NET Orcas forum not to use the Orcas March 2007 CTP as the guide to what's coming in the final product:

While it's certainly true that we are locking down, and I can't speak to this particular feature, folks should NOT use the March CTP as their guide for what's going to be in Orcas. The ADO.Net team has been working frantically to get a number of key features completed and in the product, and we already have a large list working that will show up in a future CTP or Beta (not Beta 1 because that's very close to what's in the March CTP, but after that). These features include things like referential integrity constraints, span, ipoco and others that you may have seen mentioned here or in blog postings. There's really quite a lot of great new things yet to come. Keep your eyes open.

Julie describes many of these new features, such as span and IPOCO (Interface to Plain Old CLR Objects) in her What to expect in next (and future) Orcas bits for Entity Framework.

Mark your calendars! .NET Rocks will feature "Daniel Simmons Tours the ADO.NET Entity Framework!" as the 4/5/2007 broadcast.


Julie's mention of the span parameter brought back memories of ObjectSpaces' OPath query language and Matt Warren's ten 2004 and one 2005 GotDotNet posts on the evolution and demise of that unfortunate project. Trade-offs of pre-fetching vs. demand-loading (eager versus lazy loading) of associated (related) entities has been a continuing issue for projects that query object graphs. Matt says in his ObjectSpaces: Spanning the Matrix post of three years ago:

That’s when I hit upon the solution. Like the dot, it was the graph stupid. Object queries needed that additional bit of information that would allow the user to specify exactly what reachable parts of the network should be pre-fetched together. So I took the OPath parser and added an additional context that would allow the specification of a list of properties, and sub-properties and so on that would form a tree of access paths. Anything touched along these paths would trigger a pre-fetch of that data. With a simple list of dot expressions you could easily specify what part of the matrix you wanted to span. ...

Luca [Bolognese] was a bit dubious of the idea at first, but I wore him down. Ever since then, ObjectSpaces has had the span parameter, and yes the name derives from my own ultra-nerdiness. It refers to the span of a space as used in linear algebra. Crack a book if you don’t believe me.

It seems like only yesterday that I was doing my best to learn the ins and outs of programming Orca (Object/Relational Component Architecture?), the code name for the first technical preview of Object Spaces introduced at PDC 2001. ObjectSpaces Microsoft's first (failed) attempt to deliver an O/R mapper; the project ultimately lost its way after being subsumed by long-gone WinFS.