With a track record of doing major strategy shifts, Microsoft wasn’t the company one would expect to play by rules that someone else wrote. After era of dictating trends, they’ve learned to listen and follow paths set by someone else. They’ve open sourced a lot of things they are working on. And not just research projects. Major frameworks or components used by millions of websites.
EntityFramework is another proof that they listen. They’ve heard how people want to do data access, and they’ve followed the way set by Hibernate project. They weren’t very successful in the begging. I’ve had a lot of rows with EF 3.5, it’s object tracking, database first design et cetera. After years of playing catch-up, finally with EF 5 we got a tool which we would dare use in a production project.
After tremendous effort they’ve made, and a lot of energy invested they are neck and neck with best O/RM solutions, and they have a chance to offer something more. Strategy for EF7 has been outlined for public in their Entity Framework Everywhere initiative.
What I’ve taken away from their post is:
- It will be lightweight. Many seldom used features will not be there. Think, one-to-one mapping will remain, inheritance mappings wont. And surely few other things.
- It will be available everywhere. Meaning, we will finally have a worthy heir to SQLite for local storage (think Windows Store, Windows Phone)
- It won’t be just for relational data anymore. Azure Table Storage will be one of the target stores
- EntityFramework 7 will be a different beast, and will potentially introduce noticeable amount of breaking changes to existing projects. Those of you used to DbContext need not worry as much
- EntityFramework 6 will be developed and maintained in parallel
Those are tactical steps they are taking. What is the strategy behind them? I’m not so sure these steps stemmed from a strategy. It is the other way around. Microsoft has invested a lot of effort into making a good O/RM tool with premium experience for developers. Now that they are there, they still have developers who’ve invested years in EF and rather than shifting to maintenance mode and disbanding part of the team, they’ve decided they can afford to innovate. We don’t see clear strategy also because now ASP.NET team which is in charge of EF, is making a tool for Windows Store and Windows Phone.
What Microsoft is doing is providing a lot of choice to developers. Rather than risking by making a strategy and missing, they are providing many choices and hoping us developers will take them the rest of the way. I’m enthusiastic about having lightweight local storage O/RM, and hope for better performance, but I hope that developers won’t get lost in forest of choices.