Another reason to be cautious of the MS Entity Framework
I believe that the surge in various open source projects , as well as certain commercial ones, that provide proper ORM tools to the .NET development community may pose a bit of an issue for MS. You see, the data access structure that MS has espoused for the past 10+ years was usually based on some resultset that could be bound to the front end. All of MS dev tools, since VB 3 and Access 1.1, have had that ability at its core. Thats why you have datasets and datagrids. By providing a comprehensive story (gratuitous hot keyword alert) , that covered the entire cycle from data retrieval on a server to consumption / usage in a winform or web form, MS provided a specific way to work with its tools. And of course the sweet-spot of usability of these tools was centered on SQL Server.
Along came Object Relational Mappers. Be that NHibernate or commercial ones. At its core, the ORM among many other very useful things, provides a way to quickly and relatively painlessly abstract your code away from its database. Therefore - and this is important - you can write an application against one database, then swap out back-ends for another database and with a minimum of changes be up and running in no time. One of the best examples of this was watching my buddy Dan change an ENTIRE learning management system from SQL Server to MySQL in next to no time. I think he said it took less than a week.
So I ask you, if you are MS and you see an upsurge of tools that allow developers to do this. And there is more and more buzz in the various blogs about ORM’s and the benefits of other technologies, like ActriveRecord, MVC etc etc. What would you do? Based on 15 years of watching MS, I believe the embrace and extend methodology will be applied here with great success. In the end I suspect MS will provide something to the dev community that looks and smells a little bit like an ORM but under the hood it will be just a tad different, making it easy to use with MS Tools and through its very usage making it hard to switch databases, effectively negating one of the core points of an ORM.
With everything you know about MS… doesn’t that seem like a reasonable idea? No wonder some people have begun to call the MS Entity Framework a persistence mapper not an object relational mapper.
Write a comment