As probably many people found out yesterday, Microsoft decided to truly make Entity Framework open-source, including accepting contributions from community (under certain conditions), similar to ASP.NET MVC and other frameworks that are not part of core .NET Framework.
I won’t insist on the importance of this move – it’s clearly a big step forward, a shift in mentality, a good PR move, but also a sign that EF has reached it’s maturity – probably we will not see some huge new functionality added to EF (it’s little more than an O/EM after all, not rocket science). Maybe it’s also a sign that it’s not seen anymore as a key component, that could give Microsoft some competitive advantage in the future (like Windows Phone 8, where I don’t hope to see the source code in the near future 🙂 ).
Still, this open-sourced version of EF comes with some interesting finds:
- Microsoft seems determined to use git (instead of TFS) on CodePlex, a sign that they consider too git more appropriate for community projects
- a quick look inside the source code shows that they are using XUnit.net for all unit tests and functional tests, instead of MSUnit (no so surprisingly, because xUnit project is coordinated by Brad Wilson, a former general manager at Microsoft). Also the original developer of NUnit now works at Microsoft and has created xUnit.net with Brad Wilson.
- the usage of Moq comes as no surprise – there is no alternative mocking framework from MS, and is already used in other projects from Microsoft (like Enterprise Library)
- the main branch already targets .NET 4.5 and VS2012 RC
- the project license is Apache 2.0 (not MS-PL, but they are anyway similar)
- some (very) early support for task-based async queries that will come with in EF6 is already there: http://entityframework.codeplex.com/SourceControl/network/forks/ishisaka/EF6/changeset/255cf51c9eab