Déjà, la présentation que j'en avais eu aux techdays.

J'ai l'impression d'avoir gardé une certaine neutralité dans mon billet précédent, mais laissez moi donc sauter directement à la conclusion: Entity framework est à fuir comme la peste

Bon, je pense que tout ceci mérite une petite explication non? Je vais faire cours: NHibernate surclasse sur tous les points entity framwork, et joue en plus dans la même cours niveau performances.

NHibernate permet toutes les approches, entity framework nous force à utiliser un domaine anémique. L'idée fondatrice derrière entity framework est, en substance, que ces objets métiers ne doivent contenir surtout aucun comportement, qui lui est contenu dans des services. Je crois avoir assez discouru ici sur ce que je pense d'une telle approche. NHibernate supporte bien entendu cette approche si vraiment vous le voulez, mais il permet non seulement de le faire plus proprement en ne polluant pas les poco de codes de persistance, mais en plus il permet de supporter une approche plus DDD sans trop de soucis (même s'il a ses limitations à ce niveau aussi).

Bref, entity framework pour moi est une nouvelle fausse bonne idée, permettant d'encore plus orienter les applications .NET vers du RAD anarchique au long terme, mais comme c'est utilisable en deux clicks tout le monde adhère. J'étais attéré de voir aux techdays que globalement, pas mal de monde était très enthousiaste vis à vis d'EF. J'ai entendu à droite à gauche que c'était une bonne chose que Microsoft s'intéresse enfin au principe de mapping O/R tant il ne voulait pas y croire par le passé. Certes, mais je ne vois pas finalement tant de différence que ça entre leur solution et leurs anciens DataSet. En même temps, après avoir lu ce billet, j'ai beaucoup mieux compris pourquoi EF était si bancale. Je pense que cette phrase résume tout:

Initially I thought that some of the requests for *complete* persistence ignorance were the products just of dogma rather than fully informed and reasoned arguments


Donc conclusion, j'attends de voir les prochaines versions d'EF qui sont censé corrigées le tir, mais en attendant, je pense qu'il n'existe aucune raison valable de l'utiliser.