"No Confidence Vote on EF" et al.

Silverlight Logo

The Entity Framework "No Confidence Vote" is a couple of days old now. I wanted to give the Internet a couple of days to chew it over and figure out where it really fit into the big picture. If you follow me on Twitter you may have seen some back and forth between Scott Belware and I recently. Most of this back and forth has been about his attacks of the Microsoft community (attacks of the technology or even the company are fair game as far as I am concerned).  Getting personal by accusing me, the Microsoft community or even individual EF Team member's directly seems petty and unnecessary.

In that same light, some of the ALT.NET community (I won't name names) have accused me of being a shill for Microsoft's techologies. Anyone who has ever seen me talk about any Microsoft technology already knows that I pride myself in my centrist view of any technology (Microsoft's or others).

For me the power of the Entity Framework is *not* in its use as a ORM. There are dozens if not hundreds of ORMs out there. Depending on your specific use case, some are great...some are less than great. None is a perfect ORM for every case. My attitude about the Entity Framework is that it isn't a great ORM...but that it isn't trying to be. The power of the Entity Framework is in a common language for communicating a model.  The Entity Data Model can handle complex scenarios.  The big advantage in using the Entity Framework comes when the Entity Data Model is used by Microsoft and external projects. The effort required in building a real model of existing enterprise data is not trivial. The labor involved can only be recouped if the model is useful in other scenarios as a model of your data throughout your organization. That's not the case yet. Microsoft isn't there. In addition, the Entity Framework is not a good tool for the top-down development that Domain Driven Design and Model Driven Design are espousing. Again, I don't think that was ever their intention.  But its important to know. There are other criticisms of the technology to me made but that's not the purpose of this post. Instead its to say that its a great start on a long-term strategy and for many people now isn't yet the time to use the Entity Framework.

But that being said, what is my opinion the No Confidence Vote? I don't think the technology should be killed. I think its a great start but still flawed as many v1 technologies are. My chief complaint with the whole movement in trying to kill the Entity Framework is the tone of the message. Angry bitter attacks on Microsoft and the Microsoft community do not help create dialog. It just creates division and a dug-in mentality. My experience is that if you attack a side, they are unlikely to change their minds but instead will just becoming more resistence to listening. Maybe that's the point. If you create an environment where Microsoft fails, then maybe nHibernate will get more traction.

So what do I think of nHibernate specifically (as it is the elephant in the living room that no one wants to mention)? Its a great framework.  Period. I use it and have used and recommended it with past clients. I will continue to recommend it (and actually recommended it as well as other ORM's in a recent user group talk in defference to the Entity Framework in the v1 timeframe). So why do I care about the Entity Framework if I like nHibernate? Because they meet different goals. nHibernate is a persistence framework (or a ORM if you prefer).  But it doesn't attempt or do a very good job of sharing its model across non-code environments (reporting, BI, etc.) And it shouldn't.  Its not its job.

If I had one complaint with nHibernate it is in the realm of tooling. CodeSmith and MyGeneration templates are fine but they typically only do a object-to-table mapping.  Everything else requries that you hand-code the XML. I think nHibernate design tools is where much of the effort for the project should be focused. That's why so many Microsoft developers have latched onto LINQ for SQL and Entity Framework. Its confortable for them to build models visually.

One last note, of the personal attacks I wanted to point out one person who is taking way too much shrapnel: Julia Lerman. I've known Julia for a number of years and I think she is exceptionally talented and very well intentioned. Picking on her because of her visibility in the Entity Framework is shameful. I have never known her to not talk about the warts as well as the benefits and I expect her forthcoming book will do the same. The real shame of this personal attack is that after many years in the community, she has taken on her first book.  Writing your first book is a particularly vulnerable time for anyone.  Having to weather the hostility towards the Entity Framework when she is just writing about the technology, not taking ownership in its authorship is a tough thing to do. I expect she'll come out the other side fine but it doesn't seem fair to deal with both at the same time.

Comments:

Gravatar

If the technology is bad, nobody will use it. End of story. Why not let Microsoft put forth what it believes the market is demanding and see what happens? The tone of the petition is very negative, I agree. Besides Shawn Wildermuth, where are the professionals in this business who are willing to use reason and not vitriol to stake out their positions?

Kevin

Gravatar

'Most of this back and forth has been about [Scott Bellware's] attacks of the Microsoft community'
...
'Angry bitter attacks on Microsoft and the Microsoft community do not help create dialog.'

First of all, Scott bitching about MS is just one of his obsessions. :-)

However, tying the VoNC document with Scott and others "of the ALT.NET community (I won't name names)" who have in some way personally attacked you or MS employees is an extremely unfair generalization.

I basically agree with the statements of the VoNC document AND I happen to like MS overall AND I respect many of the unquestionably talented developers employed there, to whose skills I would never be able to hold a candle.

- Troy

Gravatar

Excellent post, and I think that if anything good comes out of this it will be that Microsoft is more and more starting to realize that you can no longer create developer tools in a vacuum. You have to involve the community.
And yes, that even means those crazy Alt.net kids. But at the same time, some of the Alt.net people need to realize that the world doesn't orbit around them.

Gravatar

Because they meet different goals. nHibernate is a persistence framework (or a ORM if you prefer). But it doesn't attempt or do a very good job of sharing its model across non-code environments (reporting, BI, etc.) And it shouldn't.


EF shouldn't either

If you are reporting or doing BI on your transactional model you have much bigger problems to be worrying about.

Gravatar

Troy,

True enough, "of the ALT.NET community (I won't name names)" isn't quite fair. To clear the record it was three people specifically that pointed that finger in my direction...I never meant to imply the community in general. I apologize if that's how it read.

Gravatar

Greg Young,

I think that's where the confusion is. Many members of the data team don't see EF as an ORM or a persistence layer, but something larger. (I don't think nHib should either). But comparing the two is what I think causes the division...again, MS has changed their direction before so they might see it more as an ORM than when I last discussed it with them...

Gravatar

I know it is tangential, but I'd suggest that DDD and MDD are middle out methodologies, not top down.

Gravatar

I appreciate your contribution and I've enjoyed talking with you and listening to what you've had to say in the past.

I personally believe that you often keep yourself too close to the Microsoft event horizon to have sufficient objectivity.

I'm capable of accommodating this competing narrative without it affecting the happiness I feel when I run into you.

Gravatar

Scott,

Same here. I don't doubt your passion or your ability. I can't even completely refute my objectivity, but certainly my goal is always to avoid fanboy-dom at the same time not being a Micro-hater. Dialogue is good, monologue is bad...and so I hope we can keep the back and forth.

Gravatar

Shawn,

I really don't think the VoNC document was meant to "kill" the Entity Framework (I was one of the authors and it wasn't my intention). For my part, a lot of people look towards Microsoft for all of their guidance and I wanted those folks to know that the EF *in its current state* has some serious problems. One of the constant complaints we have in the ALT.NET community is the number of shops that will not use anything that doesn't come from Redmond. The VoNC document was meant to help those folks who would rather use NHibernate (or SubSonic or ...) instead of using the official Microsoft tool.

Vitriol or not (and much of that came from outside of ALT.NET), I still stand by the content of the document. I don't think the EF is ready for real usage.

Gravatar

Jeremy,

But why all the attention on the EF when L2S has more adoption in the market and is a bigger dog (IMHO)?

Gravatar

It's just a fashion these days to criticize people who like Microsoft technologies. Not that the people who criticize are good at non-microsoft technologies, it's just a fashion to criticize.


 



 
Save Cancel