ADO .NET Entity Framework and the Spark that brought in the Heavyweights

I came across the "ADO .NET Entity Framework Vote of No Confidence" at https://efvote.wufoo.com/forms/ado-net-entity-framework-vote-of-no-confidence/ today and thought this was something worth commenting on.

Background

I happen to find out about this petition in my regular read of "Never In Doubt", Ward Bell from IdeaBlade's blog. 

Ward Bell is, in my opinion, one of the leading experts in Object Relational Mapping and the Entity Framework.

I have summarized some key information from him and the other relevant blogger's on this topic. It's an interesting discussion and one that deserve a read and more than likely some input.

The Spark:

  • The Powerkeg --- There's a "vote of no confidence" in Entity Framework petition that is circulating and
    • It has drawn signatures of some 156 people

The Heavyweights come in swinging:

  • Ward Bell 's blog on EF and the "Vote of No Confidence" at https://neverindoubtnet.blogspot.com/2008/06/rejoinder-1-to-of-no-confidence-in.html.
  • Tim Mallalieu , the new PM for Entity Framework, wrote the official Microsoft response.
    • He is also showing a lot of love to the Persistence Ignorance fans these days on his blog and on the EF Design blog.
  • Microsoft's Elisa Flasko offers her views on her blog.
  • Roger Jennings has been following EF for a long time. He's been bulldogging links to "the vote" - adding his own appraisals of each - on his blog. He can save you a ton of time if you're trying to stay on top of what's happening in EF world.
  • Julie Lerman also writes on matters EF and this topic in this post.
  • Great Quote from Ward Bell: "Every two-bit architect with visions of grandeur is going to send this petition to his boss as proof that Entity Framework will doom the project."
    • "Hey boss, all these MVPs are against Entity Framework. Let me write our application with Domain Driven Design. I don't know a thing about it but how hard can it be? Of course I'll have to learn nHibernate first. Not sure how I'm going to do that. I can't seem to find a book on it. The documentation looks ok though. Well ... yeah .. I haven't found any examples or guidance on how to build a real application with it. But I'm an architect ... I'll figure it out."
    • "Six months later our budding genius proudly shows off his ugly baby: some undocumented, impenetrable morass that only he understands and that works "most of the time", just not while you're watching. The application itself?  "Ah ... it's coming ... honest."
  • Key Points from Ward:
    • EF is going to mop the floor with all of the niche players. It will become the "standard" in this space. You want to throw yourself and your employer against that buzz saw? You better be able to show that something horrible is going to happen if you use EF instead. It is not enough to argue that technology 'X' is better. You have to show that the long term ROI of building with your pet technology is vastly superior to building with EF. You'll have to show that the EF defects identified in that petition are going to spell disaster for your project. Frankly, I don't think you can make either case. I'm not challenging your intelligence or persuasiveness. I'm saying the case is not there.
    • There are thousands of successful applications built with frameworks like Entity Framework. I'm defining "success" here in soft business terms as in "the business likes it and thinks you are doing a great job". Don't stack the deck against me with Fitness tests (which are great, btw, but not implemented in most shops and irrelevant to the argument). Ultimately, business satisfaction is what we're striving for.
    • We have zero empirical evidence that actually existing applications built with pure Persistence Ignorance frameworks are intrinsically more successful than applications built with Persistence Aware frameworks.
    • On the other hand, there is good evidence that Persistence Aware frameworks are (a) easier to use and (b) result in earlier delivery of useable applications. You can start coding against an EF entity model almost out of the box. I'm not saying you should ... but you can. The fair proponents of Persistence Ignorance always acknowledge this when they talk about the "trade-offs" of PI.
    • EF isn't even released and there is already more of an eco-system surrounding EF than around all of its competitors combined. Count the forum entries, magazine articles, and blog posts. Count the books on Amazon (six so far; ok, most not released yet ... but try to find a single published book on nHibernate).
    • Expertise in EF will emerge quickly and spread widely as it always does with MS technologies. You will struggle today to find affordable developers and consultants who know about the rival niche technology of your choice; that situation is unlikely to improve as EF gains traction.
    • Some people will be good at developing with EF; some will be awful. But this is a numbers game and you can be an atrocious nHibernate developer too. The difference is that you will be able to find someone who can tell you that you have an EF fraud in your organization; nHibernate charlatans can hide like roaches.

I love Ward's quote where he says "Our little corner of the world would be better served if the petitioners rallied to (a) help customers make the best of EF version one and (b) got busy helping Microsoft improve it in version two."

Murray Gordon ISV Architect Evangelist Microsoft Corporation clip_image0028 https://blogs.msdn.com/MurrayG