Entity Framework Vote of No Confidence

written by Jamie Song on Thursday, September 04 2008

Unless you don't read blogs on a regular basis you have probably already seen the No Confidence debate about the Entity Framework that shipped with Visual Studio 2008 SP1.

Just in case you missed it here are some links about the topic:

OakLeaf Systems blog

Keith Patton's blog

Tim Lee's Blog

And the actual "vote" itself for you to look at and sign if you so desire:  ADO .NET Entity Framework Vote of No Confidence

VistaDB's Position

We don't have an official signee on the vote that I know of.  We have spent a lot of time discussing some of the pros and cons of the Entity Framework internally while we are working on our provider.  There are some annoying things.

Entity Framework has problems

No one will argue that the EF is perfect.  It has some problems, but doesn't all Version 1 software?

The lack of a multi tier story is a real pain for anyone who does serious development on multi tier systems.  However, I don't think this is a large number of VistaDB users.

The design surface does become messy when you have more than a dozen or so tables.

There are bugs in updates from the designer to the database.  I have seen a number of them that have left me scratching my head thinking VistaDB EF was broken only to test on the SQL provider and see the same error (does that make us compliant with the bug?).  Small things like changing a column from nullable to not nullable are not updated when you tell the model to update.

The amount of code you have to generate to walk a parent child is just silly.  Why do I have to call IsLoaded() when the object collection should be able to do it? 

There are also extention method operators that are valid in intellisense, but during runtime explode to tell you that they are valid for LINQ to SQL only...  Then WHY are they there again?

Auto load of children through include - hah!

Then there is my personal pet peeve - the Include() to tell it to always load a child from a parent is a STRING.  You get no intellisense, and I am pretty sure the case matters of the object to be loaded. 

Calling an Include("MyGreatTableObject") and then later renaming the object generates zero compile errors.  You get to find out at runtime with an odd runtime error.  I thought the whole point of this was to allow more automation, not more places for me to have to manually remember to do things!

RUSH to SP1?

Why does the Entity Framwork feel like it was rushed when it shipped 9+ months after VS 2008 RTM?  It feels like Microsoft had a lot of pressure to put this out and are going to patch the heck out of it later.  There are already "hotfixes" for data binding in the SP1 release.  Why not just ship it as Visual Studio 2008 R2?  There are so many changes in this Service Pack it is rediculous. 

Actually it reminds me of the Java numbering fiasco.  Microsoft really should never have called 3.0 what they did, or they should have called 3.5 SP1 something else!  It is confusing in the extreme to new programmers and customers adopting Dot Net.  In my time here at VistaDB I have already seen a number of very confused users over what 3.5 is and isn't.  Now you have to worry about explaining what 3.5 SP1 contains and does not contain.  There are so many totally new features in SP1 no wonder users are confused. 

I personally think this SP1 is going to hurt adoption of the 3.5 framework with customers.

Better than nothing?

Is the Entity Framework better than nothing?  Heck yes!  Even if it is data centric (we do write a database engine afterall).

It can easily save you hundreds of hours of CRUD coding and makes pretty objects for you in a jiffy.  But what remains to be seen is how easily those objects are going to be to update and rollout over a series of schema changes to a database. 

Microsoft's Solution - Advisory Council

Microsoft has not sat idly by during all this discussion.  They are trying to get customers more involved, but the majority of the damage may already be done.  Customers are shying away from Entity Framework just based upon this discussion.  That hurts the entire Dot Net community. 

Before my joining VistaDB I had a hard enough time convincing customers to use Dot Net.  Many of them still thought it was "too new" to be used in production systems.  This is just going to confuse those business and product managers even further.

There is no short term fix for this mess.  Microsoft is going to have to patch the service pack.  But will they step up and bump the versions at the same time?  They finally did it with Silverlight (1.0 and 1.1 were so vastly different it was a joke), maybe they will do it here as well.

 

 

Visit the Microsoft site

The DP Advisory Council blog has lots more information about how MS is responding to the crisis and what you can do to impact changes in the future.

 

Similar Posts

  1. Looking ahead to 2008, and back at 2007
  2. The first 120 days…
  3. Set any 2008 Resolutions or goals?

Comments

  • Jason Short on on 9.04.2008 at 6:21 PM

    Jason Short avatar

    Good job - Although I don't think we have discussed it on the blog much, we are working on our Entity Framework provider for VistaDB. Expect to see some sneak peaks soon.

Comments are closed

Options:

Size

Colors