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?
Réponses
Trop de publicités?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:
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.
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.