In the tradition of Émile Zola’s “J'accuse” and Martin Luther’s The 95 Theses letters, the ADO .NET Entity Framework Vote of No Confidence petition in the form of a WuFoo page with attached Entity Framework Vote of No Confidence Signatories table had gathered more than 150 signatures by mid-afternoon of June 24, 2008.
The petition focuses on these five theses:
- Inordinate focus [on] the data aspect of entities leads to degraded entity architectures
- Excess code [is] needed to deal with lack of lazy loading
- [A] shared, canonical model contradicts software best practices
- Lack of persistence ignorance causes business logic to be harder to read, write and modify, causing development and maintenance costs to increase at an exaggerated rate
- Excessive merge conflicts [occur] with source control in team environments
Three of the signatories, Jeremy D. Miller, Scott Bellware, James Kovacs, and Dave Laribee are among the seven Microsoft MVPs who “took apart” Danny Simmons and others on the ADO.NET team at the MVP Global Summit in Seattle on March 14, 2007 and taught them NHibernate. Ayende Rahien, a.k.a. Oren Eini, a primary contributor to NHibernate, the best-known EF competitor, is another MVP involved in last year’s controversy who signed the petition.
The primary complaint at that time was lack of persistence ignorance, which I covered in detail by my Persistence Ignorance Is Bliss, but Is It Missing from the Entity Framework? post of March 17, 2008. Data-centric design was also a topic of contention.
I’m surprised to find lack of an “out-of-the-box n-tier story” missing from the list. Most developers consider lack of SOA-friendly features is more significant than data-first design, which is necessary when connecting to legacy databases.
On the whole I consider the “No Confidence Manifesto” to be doctrinaire and an example of attempts to enforce “political correctness” in software architecture. I’d wager that EF would perform more than adequately in 80% or more of the applications that require O/RM tools. It appears to be adequate for the Astoria team (It’s required to create updatable entities.) It works fine for me with the EntityDataSource and ASP.NET Dynamic Data.
A Serious Case of Hubris
Update 6/24/2008 1730 PDT re "doctrinaire” and “political correctness”
In a comment to Tim Lee’s detailed Thoughts on the Entity Framework Vote of No Confidence of 6/23/2008 an anonymous commenter says:
The perspectives in the letter are fed by many years of experience in building entity-based applications using the various techniques and frameworks that our evolving awareness of issues led us to along the way.
It's great that you're questioning the validity of the claims of the letter and expressing your perspective. I don't think that we can possibly have the same perspective because of the different experiences between us.
Frankly, we can't really argue this issue on a peer level. You'll have to practice entity-based designs within the context of practices that support reversability and the levels of productivity we get from choices of tooling and approach that have been honed by quite a bit of time invested in trial and error over the years.
And yes, I know that you can take this comment as pomp and arrogance. That always seems to be the risk in the .NET developer community when we tell someone that there's much more experience to be gained and much more learning to do. [Emphasis added.]
Sounds like serious hubris to me. I wonder who was the author. (The comment form doesn’t have provision for entering a name or URL, but the author could easily have done so in the comment’s body.)
Update 6/25/2008: The author of the comment to Tim Lee’s post was Scott Bellware. See his comment to this post.
Fear and Loathing
That’s the coincidentally appropriate name of Bil Simser’s blog that contains his ADO.NET Enity Framework Vote of No Confidence post of June 23, 2008. (He’s one of the Manifesto’s MVP signatories.) If you really want to stick the knife in, accuse users of being “VB6 drag-n-drop programmers,” as in this excerpt:
Over the past year or two, I've been a casual observer into the Entity Framework coming out of Microsoft. Being an ALT.NET guy, the world tends to revolve around NHibernate for me so I've already got an excellent OR/M tool in my toolset. One of the big issues with EF that we've recognized is the general direction Microsoft has taken with it, following a data centric model rather than an object one. …
What we see on the horizon is a new breed of VB6 drag-n-drop programmers embracing EF as the next Messiah. We see a new generation of developers focused on mapping their data models and missing the target of architecting and constructing well designed systems.
It appears to me that the “NHibernate Mafia” are becoming the “ALT.NET Third Reich.” I’m surprised Bil didn’t sign his post “Elvis” or “Einstein.”
My conclusion is that the NHibernate Mafia is attempting to protect a vested interest in NHibernate as a result of the investment in time and effort to needed to become an apprentice NHibernate plumber, let alone a journeyman. You need to bill a large number of client-hours to recoup the learning curve. An O/RM tool that can handle, say 80%, of the bread-and-butter applications that keep most developers mortgage paid with RAD design tools must truly be a chimera.
Tim Mallalieu Responds to the Petitioners
Unlike Zola, the petition signatories weren’t prosecuted for libel, nor were they requested to recant their theses, as Pope Leo X insisted of Luther. Instead, Tim Mallalieu quickly addressed the issues raised in the manifesto by his Vote of No Confidence post of June 24, 2008. Entity Framework v2 will deal with theses 1, 2 and 4. I’m not convinced that thesis 3 is well taken. Issue 5 appears to be up in the air at the moment.
Mary Jo Foley’s Testers give Microsoft’s Entity Framework a no-confidence vote post of the same date puts the manifesto in perspective. Scott Bellware, who said in this comment that he was “the principal author” of the petition, requested that Mary Jo recant her classification of the signatories as “testers.” Scott’s comment to my persistence ignorance post, my reply, and Danny Simmons’ response start here. Scott’s primary concern at the time was availability of the EDM Designer in v1, not data-centricity.
Update 6/25/2008: Mary Jo’s column hit Techmeme on 6/24/2008 at 4:45 PM. My favorite comment to her column: “I'm not a tester: I've never installed nor tested an Entity Framework beta, but I signed the vote of no confidence” by odenni.
The manifesto had 226 signatories by 6/25/2008 at 8:30 AM.
Rebuttals to the Manifesto
Julie Lerman’s Oh that no-confidence vote on E.F. post of June 24, 2008 is a reasoned objection to the purpose, and therefore much of the substance, of the petition.
Update 6/24/2008 1815 PDT Added below:
But the most detailed, measured and even-handed response to the manifesto comes from Ward Bell, VP of Product Management of IdeaBlade, Inc. who posted Rejoinder #1 to "Vote of No Confidence in Entity Framework" late Wednesday. IdeaBlade produces the DevForce .NET enterprise application development framework. Its DevForce EF integrates EF with the DevForce framework to add advanced mapping and LINQ features.Dev Force contributes n-tier capabilities with its Business Object Server (BOS) and a full object graph caching on the client. DevForce EF is in the release candidate stage, which qualifies IdeaBlade in my view as an enterprise class user. A beta of a Silverlight 2 DevForce EF client is due in four to six weeks.
His post covers too much territory to summarize here. Just read it.
Update 6/25/2008: Dinesh Kulkarni’s Design of LINQ to SQL - What was I thinking or was I? post of 6/24/2008 is a parody of the manifesto’s author(s) position.
New Zealand (Kiwi)
Australian developer Keith Patton’s A vote of confidence for the Entity Framework post of 6/24/2008 begins:
I've been working solidly with EF since the SP1 beta came out and can honestly say it's holding up very well across a large, enterprise data model structure, and alongside usage of a repository pattern and dependency injection to factor out most of the direct dependencies on the EF ObjectContext, we have a system that can move towards POCO over time with relatively little refactoring.
And continues with a detailed refutation of the manifesto’s theses.
Update 6/25/2008: Corrected Keith’s locale (see comments).