I have been thinking for a little while about the future of Entity Framework, feature set on the horizon, and trying to ascertain where I would like to concentrate my next “free time” project.
If you have not been keeping up with Entity Framework, please read the last few posts on the Entity Framework design blog about the present and the future of the product.
The more I have been thinking the more I see a benefit in creating a complementary solution that would enhance features available in Entity Framework, and possibly gather some community input as to what features are most needed. Just like a number of folks, I looked at the migrations feature outline that will likely be using existing database project API. I worked with database projects for quite some time, and I am not a giant fan of the product. I did submit a handful of suggested enhancements, but I am not sure now if any of them will see a light of day. API that the project exposes is different from Visual Studio UI of course, and I am sure that API will be good to write migration code against. On the other hand, I worked with Red Gate product called SQL Compare and related .NET SDK since about 2005 on and off. When I used that product last, our company saved countless amounts of money by using Red Gate API to synchronize our product database with existing databases in the field. You can read more about SQL Compare here and SDK here. You can also buy both products as a bundle. If you look at the price of SDK, it is about $700 per developer, and it includes 10 distribution licenses. I encourage you to read more about licensing process and maybe even call Red Gate, if you decide to use the product. There is also a competing product from APEX. You can read more about that product here.
But back to Entity Framework. I confess, I have been a fan of the product since 1.0 beta. I used it on production projects, and I saved countless hours not having to code stored procedures and DAL layers. I became quite excited when Code First came out on top of 4.0 version. It offered very clean programming interface with a number of options to handle many use cases that developers might have. It did lack a few features, namely migrations, pluggable conventions, indexes, and default values. I have been thinking about how to address this, given that I am not a Microsoft employee. After thinking about it for quite some time, I decided to start a CodePlex project in attempt to address these issue on my own. I am going to rely on Red Gate based on my expedience with the product and the fact that the price is right in my opinion.
Stay tuned for the announcement. I suspect that the initial alpha version that would include migration story will be out in a few weeks. I am going to “productize” my blog posts on pluggable conventions and roll them into the same CodePlex project next.
I am welcoming any suggestions, including your thoughts on buying $700 product.