Tuesday, June 24, 2008

New Entity Framework Design Blog Announces Transparent v2 Design Process

Tim Mallalieu’s first post since taking over as Entity Framework (EF) program manager in the Autumn of 2007, Transparency in the design process of June 23, 2008, describes what’s in store for EF v2:

  • Persistence Ignorance (PI) with full Plain Old CLR Object (POCO) support for state management and ObjectContext interaction
  • N-Tier Support for remoting object graphs with change tracking using WCF
  • Code-First domain modeling with convention-based mapping instead of v1’s data-centric, forms-over-data approach
  • Test-Driven Development (TDD) Scenarios with POCO and virtual ObjectQuery<T> and entity classes
  • Foreign Key modeling support in addition to associations
  • Lazy Loading options, possibly implicit lazy loading
  • Query Tree Re-Writing to enable filtering query results horizontally and vertically without attempting to modify the expression tree

These are the features required take EF out of the curiosity category and move it to an enterprise-class framework that’s capable of competing on a level playing field with NHibernate. They are precisely the features that the so-called “NHibernate Mafia” claimed were missing from EF v1’s original design.

For more background about persistence ignorance and POCO, see my Persistence Ignorance Is Bliss, but Is It Missing from the Entity Framework? post of March 14, 2007.

Tim is adopting Pablo Castro’s transparent design process for ADO.NET Data Services (Astoria), which I recommended to the SQL Server Data Services (SSDS) team last week. Tim promises to expose the design process:

What exactly would we make visible? In short, our design process. To be more concrete, I’m not talking about some fancy set of specifications. What I mean is that as we go through the detailed design of the various aspects of Entity Framework V2, we would post to this blog a) the meeting notes from our design meetings (the team has a design meeting twice a week, plus a lot of impromptu hallway chats), and b) deeper write-ups of specific design challenges where we’d like folks to understand how we’re approaching a problem and provide a channel for deep, detailed feedback.

Notice that there’s no mention of LINQ to SQL in this post, which undoubtedly represents the death knell for future improvements to LINQ to SQL. See my Is the ADO.NET Team Abandoning LINQ to SQL? post of May 23, 2008 for an earlier travelogue about LINQ to SQL’s journey to legacy product purgatory.

Update 6/24/2008 1500 PDT: Moved to a full post and following added:

It might or might not be a coincidence that an ADO .NET Entity Framework Vote of No Confidence petition in the form of a WuFoo form with attached Entity Framework Vote of No Confidence Signatories table appeared almost simultaneously with Tim’s original post.

Get the full story in the Tim Mallalieu Addresses “ADO .NET Entity Framework Vote of No Confidence” Manifesto post of 6/24/2008.