Ayende publie dans son blog une fonctionnalité totalement méconnue du grand public, les propriétés de requêtes. Un concept abstrait qui permet de créer des propriétés non mappées, mais qui pourront être utilisées lors de requêtes. A lire absolument à tête reposée : "(...) And the reason that this is important is that the entity model doesn’t have to match the POCO model"
Dans un de ces billets, Ayende énonce 16 raisons pour lesquelles il aime NHibernate. Certaines sont connues (POCO style, cache, ...), d'autres beaucoup moins, comme par exemple le "non invasive cross cutting concerns handling". Ce procédé permet de tagguer le modèle du domaine pour le rendre "DataBindable" nativement. Les connaisseurs apprécieront...
Encore aujourd'hui, l'une des méthodes les plus utilisées pour debugguer du code reste le fameux Console.WriteLine. Or, arrive un moment où il y en a partout et leur ménage fait perdre un temps considérable. Si vous êtes dans ce cas, les tracepoint de VS.NET vous seront d'un grand secours. Une petite fonctionnalité finalement assez méconnue de VS.NET mais ô combien précieuse.
Les équipes d'Entity Framework travaillent d'arrache-pieds pour mettre en place une architecture "code-only". L'objectif est de fournir une API fluent et des fonctionnalités avancées telles que les types complexes, les propriétés de navigation, etc ... Dixit le twitter de Scott Guthrie : " I've been very happy with EF in .NET 4: POCO, lazy load, pluralization, better foreign keys, disconnected api, T4, code only mappings, ... (...) I believe EF in .NET 4.0 better handles attach/reattach scenarios (for example: web services & stateless web)". Seul bémol : "Code-Only will not be in .Net 4.0 with the possible exception of the DDL features described in the last post.". Avec Entity Framework, on a toujours un peu l'impression que le meilleur est pour demain.
Voilà une niouze qui devrait faire résonner les oreilles de nombreux développeurs du projet Entity Framework chez Microsoft. NHibernate Linq est la première implémentation de Linq sur une plateforme de mapping o/r OpenSource 100% pur POCO. De quoi remettre une pièce du côté de NHibernate dans la bataille que se livreront les deux outils dans les mois à venir, surtout après la sortie de VS 2010 :"NHibernate Linq support is based on the existing, proven in production, Linq provider in NHibernate Contrib. The plans to overhaul that and merge that into NHibernate’s proper for the next release are still active(...) "
L'info est tellement jubilatoire que le chef de produit d'Entity Framework n'a pu retenir son envie de blogguer, alors même qu'il ne présentera officiellement la preview que la semaine prochaine. Son billet est sans équivoque : " (...) Entity Framework 4.0 introduces support for Plain Old CLR Objects, or POCO types that do not need to comply with any of the following restrictions (...)". Finalement, cinq ans après NHibernate, Microsoft aura réussi à créer son clone. Plus sérieusement, EF jouera un rôle important à l'avenir grâce à son support dans Visual Studio .NET. S'appuyer sur mapper graphique reste encore un luxe dans le monde Java...
Quelques semaines après la sortie d'Entity Framework et le feu des critiques liés au fait que cet outil n'est pas transparent en terme de persistence, Microsoft publie un billet très intéressant sur le sujet. EF V1 fournirait un adaptateur pour la gestion du mode POCO (Plain Old CLR Object) : "We have recently published a sample called EFPocoAdapter that includes code generator and a supporting library that implements POCO object tracking on top of Entity Framework V1". L'article est d'une grande qualité, les vrais enjeux du mapping objet/relationnel à la sauce .NET se jouent ici. A lire d'urgence.