A number of testers who've been dabbing with the first version of Microsoft's ADO.Net Entity Framework are unhappy with the direction Microsoft has taken with the technology -- so much so that they've created a "no confidence vote" petition to make their gripes public.
As of June 24, more than 150 testers had signed the petition, including several Microsoft Most Valuable Professionals (MVPs).
The ADO.Net Entity Framework is a layer of technology that originally was slated to be part of Visual Studio 2008. Microsoft ended up cutting the Entity Framework out of its tool suite, promising to make it part of the first service pack for .Net Framework 3.5.
(Here's how Microsoft defines ADO.Net Entity Framework: The framework "allows developers to define a higher-level Entity Data Model over their relational data, and then program in terms of this model. Concepts like inheritance, complex types and relationships (including M:M support) can be modeled using it. VS 2008 SP1 now includes built-in designer support to help with this modeling.")
Microsoft isn't dropping the controversial Entity Framework Version 1 in spite of tester complaints. Instead, the company is committing to making some feature adjustments and some process changes -- designed to make the development of Version 2 of the framework more transparent and more agile. Version 2 of the Entity Framework is expected to be incorporated into the next version of Visual Studio (whenever that hits).
Timothy Mallalieu, Program Manager for the Entity Framework, acknowledged the no-confidence vote and outlined Microsoft's subsequent plan of action in a blog post.
"The unfortunate reality is that these are scenarios that we care deeply about but do not fully support in V1.0. I can go into some more detail here. One point to note is that the choice on these features were heavily considered but we had the contention between trying to add more features vs. trying to stay true to our initial goal which was to lay the core foundation for a multiple-release strategy for building out a broader data platform offering. Today, coincidentally, marked the start of our work on the next version of the product and we are determined to address this particular developer community in earnest while still furthering the investment in the overall data platform."
Roger Jennings, of OakLeaf Systems Blog fame, outlined for me where he believes the major pain points are in Entity Framework version 1:
1. Domain-driven design (objects-first) is today's hot design pattern for enterprise apps and requires starting with optimal design of business objects and relationships, not from the schema of a relational database whose only job is to persist (store) the objects. Microsoft has always had a data-centric (data-first), forms-over-data approach to pseudo business objects. Data-first can lead to suboptimal business object design.
2. Persistence ignorance requires Plain Old CLR Object (POCO) because it enables separation of concerns, which is de rigeur in today's layered/tiered software designs. (Persistence ignorance won't be part of the Entity Framework until Version 2, Jennings noted.)
3. Test-driven design (TDD). MSFT came late to the TDD and Agile Programming table and is trying to catch up. However, no one on the Entity Framework team worried about testability during the design phase. The problem is that performance of unit tests with business objects connected to databases is terrible.
Another Entity Framework tester, who requested anonymity, noted that the no confidence vote shouldn't be interpreted as across-the-board dissatisfaction among .Net developers with Microsoft's course.
"The best thing that happened in response to this latest action is that the Entity Framework team responded to it immediately," the tester said.