In case you missed it, yesterday (that’s July 19, 2012), the EF team announced that starting with EF6, Entity Framework will be open source. They’ve already got the development moved to CodePlex.
In this case, open source does not mean everyone and their sister will be committing *their* changes. The team will continue to control the code base and commits so in that regard, you should not think of this as anything new. It’s still a very important piece of Microsoft technology.
I’m really happy about this change for a number of reasons.
- #1 is about community involvement that’s become more and more important to how EF has evolved in it’s more recent iterations. While the team will continue to ultimately control the code base, the fact that they are doing this openly on CodePlex means that we developers can see what’s going on, provide feedback not just on ideas and features but on their code. This is a even more transparent than what they were doing on the EFDesign blog (which was retired recently, btw).
More importantly, we can submit contributions as well.
Here’s how it’s explained on the CodePlex site:
There are lots of ways to contribute to the project.
You can contribute by reviewing and sending feedback on code checkins, suggesting and trying out new features as they are implemented, submit bugs and help us verify fixes as they are checked in, as well as submit code fixes or code contributions of your own. Note that all code submissions will be rigorously reviewed and tested by the Entity Framework team, and only those that meet an extremely high bar for both quality and design/roadmap appropriateness will be merged into the source.
You may have a feature in mind that you want to add into EF or you can go work on one of the bugs listed in the Issues page. Or you can go look at ideas submitted on UserVoice. Or you may know a better way to implement something that they are working on. Or you might just want to know what’s going on so you can plan ahead for your own development schedule.
One of the things I have seen people misunderstand and therefore they worry about, is that OSS equates to Microsoft throwing EF over the wall. That is just not true. The team remains committed to taking EF forward. This is just what’s happened with ASP.NET MVC + when those went open source in March.
I think the EF team was very clear in their announcement post:
Same Support, Same Developers, More Investment
Very importantly – Microsoft will continue to ship official builds of Entity Framework as a fully supported Microsoft product both standalone as well as part of Visual Studio (the same as today). It will continue to be staffed by the same Microsoft developers that build it today, and will be supported through the same Microsoft support mechanisms. Our goal with today’s announcement is to increase the development feedback loop even more, allowing us to deliver an even better product.
- It provides the ability to fork EF for your own needs. We’ve been complaining for years that EF is not extensible enough. So, download it, extend it where you want and use it in your apps. Okay, that’s not going to be for everyone, but it will be incredible for many.
- The CORE part of EF that currently lives in .NET will no longer be tied to .NET releases. Since the release of EF 4.1 on NuGet, we’re starting to get into the rhythm of how the EF team is bringing us new features when they are ready– Code First, DbContext API, Code First migrations –without waiting for a .NET release. Up through EF5, this stuff sits on top of the CORE entity framework APIs (System.Data.Entity) that live in .NET. Big changes to how EF works need to be made in the core and so we had to wait for the next version of .NET (e.g. .NET 4.5) to get those bigger changes. For example, enum support required changes to the core. I’m guessing that the hold up for stored procedure support for code first is because maybe there’s something in the core that is a show stopper (honestly it’s a completely wild guess). Those core APIs are being lifted out of .NET and will become part of EF6 (and beyond) and part of the OSS package. So *all* of EF will now be more fluid.
On the codeplex site, you’ll find that the development has transitioned over from their internal development. For example, while the site became public on July 19th, here’s an item that was added and modified by team members (Diego and Rowan) in April:
While EF is now open source,
- it still reigns as Microsoft’s primary .NET API for accessing relational databases.
- it is still fully supported by Microsoft
- the EF team is still in place with the same power-devs that brought us code first, dbcontext and more
- it continues to move forward and the team has already begun work on
- task-based async support
- Stored Proc support for code first (yay)
- finishing up the customizable code first conventions that didn’t make it into EF4.1 (double yay).
- we won’t have to wait for the next version of .NET for modifications that need to be made in the core
Stuff to read about this move:
Team Blog Post Announcement: Entity Framework and Open Source
Scott Guthrie’s Announcement (same title, different blog post): Entity Framework and Open Source
Series of posts by Arthur Vickers who is one of the key folks on the EF team:
Why open sourcing Entity Framework is a great move
So you want to contribute to EF? Part 1: Introduction
So you want to contribute to EF? Part 2: The code
So you want to contribute to EF? Part 3: Testing
So you want to contribute to EF? Part 4: Developer experience
So you want to contribute to EF? Part 5: High-level architecture
Of course, the Entity Framework CodePlex Site->http://entityframework.codeplex.com/
Sign up for my newsletter so you don't miss my conference & Pluralsight course announcements!
2 thoughts on “Open Source Entity Framework”
I was sooo excited to hear about this. I cloned it about 30 seconds after learning about the new development with GitHub for Windows. Beautiful.
Another hope is that this technology will make it over to mono… sooner rather then later!