47 votes

NHibernate, Entity Framework, enregistrements actifs ou linq2sql

Mon équipe commence un nouveau projet dans ASP.NET MVC et nous nous demandons quelle technologie utiliser pour l'accès aux données. Comment décidez-vous lequel est le meilleur? Lequel a la meilleure performance? Lequel est le plus facile à utiliser et à entretenir?

66voto

Michael Maddox Points 7345

Si .NET 4.0, choisir entre NHibernate ou Entity Framework. NHibernate est plus extensible et généralement plus riche en fonctionnalités. Entity Framework fonctionne mieux pour les entreprises qui auraient plutôt sur ce que Microsoft fournit. Ils sont à la fois des options valides et personne n'a encore publié un objectif important au coup par coup de comparaison. C'est l'un des meilleurs non-comparaisons objectives:

http://ayende.com/blog/archive/2010/01/05/nhibernate-vs.-entity-framework-4.0.aspx

Si .NET 3.5 ou une version antérieure, choisissez NHibernate.

http://stackoverflow.com/questions/1238972/choosing-database-and-orm-for-a-net-project

http://stackoverflow.com/questions/567304/which-orm-tool-should-i-use-for-net-development

http://stackoverflow.com/questions/557948/easiest-to-learn-and-use-net-orm-framework

http://stackoverflow.com/questions/550929/some-suggestions-on-which-net-orm-to-look-at-learning

http://stackoverflow.com/questions/474973/best-orm-tool

http://stackoverflow.com/questions/380620/what-object-mapper-solution-would-you-recommend-for-net

http://stackoverflow.com/questions/249550/what-orm-frameworks-for-net-do-you-like-best

http://stackoverflow.com/questions/206197/best-free-orm-tools-to-use-with-net-2-0-3-5

http://stackoverflow.com/questions/132676/which-orm-for-net-would-you-recommend

Après Le Septembre 04, 2009:

http://stackoverflow.com/questions/1381916/or-mapping-tool

http://stackoverflow.com/questions/1443846/o-rm-choice-not-reliant-on-linq

http://stackoverflow.com/questions/1469761/nhibernate-vs-entity-framework-vs-something-better

http://stackoverflow.com/questions/1470787/how-to-choose-an-object-relational-mapping-for-net

Cela dit, les choses changent. Maintenant que NHibernate prend en charge Linq, je pense que NHibernate est le choix évident dans la grande majorité des situations. Pour une plus longue et assez jusqu'à la date de l'analyse, n'hésitez pas à lire ceci:

.NET et ORM - les Décisions, les décisions

6voto

JeremyWeir Points 9424

Ma préférence va à LLBLGenPro - un ORM vraiment génial qui fonctionne comme prévu. Il n'est pas basé sur une configuration telle que entity framework ou nhibernate, il génère votre DAL basé sur votre base de données (avec beaucoup de flexibilité grâce à leurs outils).

http://www.llblgen.com/defaultgeneric.aspx

2voto

Mickel Points 3923

LINQ2SQL est probablement le plus facile à utiliser. Entity Framework offre une grande extensibilité et la prochaine version contiendra beaucoup d'améliorations.

Une règle essentielle pour la performance: écrire du code facile à gérer, à lire et à distribuer; si c'est trop lent - optimisez!

Je pense que la différence de performance entre les ORM aujourd'hui est remarquable, vous devez donc choisir celui avec lequel vous vous sentez le plus à l'aise et le plus efficace.

2voto

Carles Company Points 2937

Entity Framework a une meilleure correspondance des relations que linq2sql (par exemple, il a des relations multiples-multiples).

Je n'ai pas utilisé les deux autres, mais j'ai utilisé Hibernate en Java et son utilisation était assez simple.

1voto

Buu Nguyen Points 19391

Ce billet de blog compare différentes technologies de données pour .NET sous différents aspects (performances, maintenabilité, testabilité, etc.). Cela pourrait être utile pour votre processus de prise de décision.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X