2010-09-01 2 views
8

J'essaie de convaincre mon client d'utiliser nhibernate au lieu d'Entity Framework 4. Mon client a décidé d'utiliser uniquement des bibliothèques Microsoft (y compris Unity et Enterprise library 5). Je ne suis pas d'accord avec eux (il y a tellement de meilleurs cadres de journalisation/couches de validation/ioc etc.) mais je respecte leur décision.Pourquoi devrais-je utiliser nhibernate au lieu de framework d'entité 4

J'ai joué avec EF4 pendant quelques jours et je ne l'aime pas, principalement en raison de:

  • Tout d'abord, tous les messages d'erreur sont horribles. Je dois passer plus de temps à googler ce que les exceptions signifient réellement que d'essayer de les réparer.

  • Nous utilisons des POCO et c'était un peu compliqué de les faire fonctionner correctement avec EF4.

  • Les fichiers de mappages utilisés par nhibernate sont beaucoup plus faciles à utiliser.

Quelqu'un d'autre a-t-il une expérience avec les deux frameworks et m'a-t-il donné plus de raisons de ne pas utiliser ef4?

Y a-t-il des outils de l'interface graphique ou addins studio visuels qui peuvent être utilisés pour générer des fichiers de mappage/modèles à partir d'une base de données (des trucs comme ça aide toujours)

+4

Ne serait-il pas préférable de demander "Quel est le meilleur, EF4 ou nHibernate?" Ou demander une comparaison de fonctionnalités ou quelque chose? Vous partez d'un biais qui n'est généralement pas génial. – tster

+0

sauf dans ce cas, c'est un fait assez reconnu que EF4 est toujours en train de rattraper NH. Cela dit, c'est devenu assez utilisable. –

+0

sûr. J'ai dit ce que je préfère. Mais je veux donner à mon client des points objectifs sur la raison pour laquelle l'un ou l'autre devrait être utilisé. Pour moi, les exceptions claires sont un problème majeur, mais EF4 est peut-être bon pour des choses que je n'ai pas encore découvert. – jgauffin

Répondre

5

Les gens ont blogué long et dans les réponses de profondeur qui peut faire beaucoup mieux que quelques phrases ici sur ce forum. Jetez un oeil à l'adresse suivante ou faire une recherche Google pour "NHibernate vs. Entity Framework 4.0":

Une quête Avec EF 4.0 (Entity Framework) et NHibernate Partie 1:
http://blogs.microsoft.co.il/blogs/berniea/archive/2009/06/09/a-quest-with-ef-4-0-entity-framework-and-nhibernate-part-1.aspx
http://blogs.microsoft.co.il/blogs/berniea/archive/2009/06/09/a-quest-with-ef-4-0-entity-framework-and-nhibernate-part-2.aspx

NHibernate vs. Entity Framework 4.0:
http://ayende.com/Blog/archive/2010/01/05/nhibernate-vs.-entity-framework-4.0.aspx

Entity Framework 4 vs NHibernate

Questions connexes