Newsflash: EF V1.0 was not intended to be a NHibernate compete
I spent some time this week with Scott Bellware. He and Greg Young have been in town talking to the EF team about Test Driven Development, Behavioral Driven Design and Domain Driven Design.
On Tuesday night we went out to dinner and had a long chat. Despite the desire on both of our parts to insult each other every few minutes, I think the conversation was largely productive. The events of the evening plus my preparation for the Advisory Council made me think about going into some more detail around the EF, where we are today, where we want to go and rationale therein.
This is not intended to be "spin" - a word I have heard a lot recently. This is the opinion of a PM on the team that has been at this since pretty much the beginning.
Back to the point of this post:
We did not set out to build the NHibernate compete product in V1.0.
We did set out to execute on the first part of a longer term strategy around the EDM and the set of services that could be delivered therein. ORM happens to be one of the scenarios and the one that you tend to most closely approximate as you build out the foundation.
One of the major points that Scott repeated at dinner was that he and his compatriots feel that people would just blindly adopt the EF because it was a part of the Framework and that this would set them back because they have moved on with their approach to software development and the EF does not meet their requirements. Having the EF in the market creates noise for them because it becomes a technology choice between a Microsoft product that does not yet address this school of software development and open source solutions that do.
There are schools of software development that will do just fine with the EF. There are others where the approaches at hand would require developers to compromise their abstractions and their approaches. People should just be intentional and not try to use the EF as a wonder hammer to hit all potential projects. As with any other technology, it should be evaluated in the context of the project constraints and attributes.
I shall attempt to make a series of posts leading up to and following the advisory council where I go into a bit of the history and future. This will not yield a decision matrix for a developer but it may be interesting for folks.