Anxiety, Dissent and the Entity Framework

There is trouble afoot amongst the MVPs who are specialising in Object-Relational mapping (ORM). When the NHibernate mafia, a.k.a. ALT.NET, released their ADO .NET Entity Framework Vote of No Confidence, many of us despaired. Suddenly, it looked more like ANGST.NET than ALT.NET. As I scanned through the long list of names who had signed the document, my heart sank a little.

It’s not that it doesn’t have some valid points to make; it does (though scarcely enough, some might argue, to justify a “petition”). For example, it quite reasonably points that SubVersion doesn’t really work with the Entity Framework, and that ‘lazy loading’ is better than ‘explicit loading’ for entity-based applications.

The problem is that a lot of this gets lost amongst lurid warnings of “unresolved issues” and “technical misgivings” and the “potential future risk they pose to Microsoft customer projects”. By signing the petition, the supporters were not just agreeing to the reasonable points it makes, but also to its alarmist tone in general. The average manager reading the document is likely to conclude that there is a ‘bad smell’ around ORM wrappers, and avoid them altogether.

NHibernate is not a general solution. It is fine for the .NET virtuosos, but it is not ORM for the common man and it does not make itself look any better by casting aspersions on Entity Framework. There is plenty of room for a Microsoft take on the long-standing problem of ‘impedance mismatch’. At Simple-Talk, we regard Entity Framework in a positive light because of its logical fit with LINQ and Astoria. It is easy to use, and it bridges the conceptual gap between the relational world and the ‘object persistence’ brigade. It is true that it is just as easy to commit sins against a large relational database with Entity Framework as it was with the old ADO.NET and recordsets, but at least its use should uncover no new horrors for the database administrator.

Microsoft gets a pasting when they develop applications in secrecy, and rightly so. However, the EF has been developed via open discussion and dialog with the developer community, and yet they still get into trouble, presumably because the signatories feel their expertise and opinion are being ignored. And yet ultimately, surely, any project must be allowed to make its own decisions in line with its remit and its place in the wider strategy.

Dissent is a natural and healthy part of all development communities. And occasionally this dissent will need to be expressed loudly and possibly with the aid of pointed sticks. But the timing, and tone, is wrong. Angst-ridden heckling isn’t the best way to encourage Microsoft to take advice from the user communities, rather than battening down the hatches and slopping out the product when it’s ‘done’.

Cheers,

Tony.