About a year ago, a few people (called by some as ‘The NHibernate Mafia’) wrote a vote of no confidence against the Microsoft ADO.NET Entity Framework (EF), mainly because a big influential company like Microsoft was releasing an inferior tool set. See the text of the petition for the detailed reasoning.

My initial thoughts were ‘why worry, there are plenty alternatives like NHibernate, LLBLGen Pro or LINQ to SQL’ and although I agree with the content of the vote of no confidence, I decided not to sign. That was until realized that as a contractor, you often have to confirm to the technology that the customer has adopted, so it’s to be expected that a lot of future projects have EF as their O/R mapping layer because ‘Microsoft says it’s the way to do data access’. I signed and yes, it’s the selfish me that made me do it.

So now we’re one year later and I just started on a new contract where EF is being used and as I already feared one year ago things are not pretty. The previous developers seem to have struggled a lot, which resulted in poor performance and lots of workarounds.

And you know what: I don’t blame EF itself or the developers but only Microsoft marketing for labeling the Entity Framework as the ‘preferred magic way to do data access’ and all the surrounding blah of future products that will build on EF so people blindly take it as their weapon of choice.

Sorry for this somewhat negative post, but I had to write this off.

One year after the Entity Framework Vote of No Confidence…
Tagged on:         

11 thoughts on “One year after the Entity Framework Vote of No Confidence…

  • September 24, 2009 at 6:52 pm
    Permalink

    Even with good things like ASP.NET MVC, I go with Castle’s Monorail instead. I totally agree that the marketing department at MS is doing a disservice to many people’s careers.

  • Pingback:Tweets die vermelden Martijn Boland » One year after the Entity Framework Vote of No Confidence… -- Topsy.com

  • September 24, 2009 at 6:58 pm
    Permalink

    EF might not have tons of features, but from what I’ve read lately, performance is not one of its weaknesses, specially when compared to NHibernate, am I missing something?

  • September 25, 2009 at 2:23 am
    Permalink

    I don’t think you can blame Microsoft if end users make bad decisions and go with an inferior toolkit…

    The flaws and shortcomings of EFv1 are well documented around the intarweb, so it should come as no surprise to anyone that it generates ‘killer’ SQL queries that can bring a db server onto its’ knees in a pool of table scans.

    Devs need to learn to evaluate the tools and technologies they are going to use, and choose the appropriate tool for the task _before_ going off developing software…

    JMHO

  • September 25, 2009 at 2:30 am
    Permalink

    @Eber It has a number of performance issues. If your model is bigger than northwind/adventureworks (i.e. >100 tables or so) you’ll notice a performance hit whenever it loads the ‘model artifacts’ (csdl/ssdl/msl) when you’re about to hit the db. Next, many common and simple query constructs can result in terrible SQL queries with lots of redundant joins, where clause predicates that force table scans etc.

    Funny, since they already had L2S to look at, and L2S generates excellent SQL queries that are well optimized at runtime to please the db server… …however, it seems like they decided to not look at any of the smart optimizations in L2S and just did their own thing without considering what would happen db-side.

  • September 25, 2009 at 4:49 am
    Permalink

    I’m sorry that you have had frustrations with the first release of the EF. May I humbly suggest that you give the next release of the EF (the one that will ship with .net 4 and is available in beta form now) a chance before completely writing off the EF. It’s certainly not perfect, but I hope you will find some significant improvements.

    – Danny

  • September 25, 2009 at 12:11 pm
    Permalink

    KristoferA :

    I don’t think you can blame Microsoft if end users make bad decisions and go with an inferior toolkit…

    The flaws and shortcomings of EFv1 are well documented around the intarweb, so it should come as no surprise to anyone that it generates ‘killer’ SQL queries that can bring a db server onto its’ knees in a pool of table scans.

    Devs need to learn to evaluate the tools and technologies they are going to use, and choose the appropriate tool for the task _before_ going off developing software…

    Well, that’s more or less the point I’m trying to make: it’s pushed by MS so that developers are told by their management to use it. Managers don’t read about the flaws of Version 1.0.

  • September 25, 2009 at 12:17 pm
    Permalink

    Danny Simmons :

    I’m sorry that you have had frustrations with the first release of the EF. May I humbly suggest that you give the next release of the EF (the one that will ship with .net 4 and is available in beta form now) a chance before completely writing off the EF. It’s certainly not perfect, but I hope you will find some significant improvements.

    From what I’ve seen, the next version looks a whole lot better and I’ll definitively will give it a good look. That aside, my frustrations are caused by the fact that the V1 version was positioned as the default way of doing data access and that many developers would be better off with an alternative solution that is available right now.

  • September 25, 2009 at 3:54 pm
    Permalink

    martijn :Well, that’s more or less the point I’m trying to make: it’s pushed by MS so that developers are told by their management to use it. Managers don’t read about the flaws of Version 1.0.

    hmm. those ‘managers’ would then fall under one or several of the following labels: incompetent (for not doing their due diligence, and for not listening to those who have), naïve (for taking marketing at face value — do they also believe in laundry detergent TV commercials?), inexperienced (seen _any_ stable v1 product out of redmond? I haven’t…).

    oh well, it will be interesting to see what EFv3 brings, I expect it to be a lot better than v1…

  • October 9, 2009 at 6:51 pm
    Permalink

    I love to be in control of my code.
    EF will generate a lot of crap.
    Look at Model.designer.cs it always makes me laugh:
    //This code was generated by a tool.

  • Pingback:Martijn Boland » Entity Framework 4.0: a fresh start (with demo application)

Comments are closed.