Duplicaté possible: strong>
Qu'est-ce que NHibernate? P> blockQuote>J'ai entendu le nom NHibernate em> utilisé beaucoup, mais je n'ai pas t bien comprendre ce que c'est. J'ai Lire l'article Wikipedia , mais je ne comprends pas comment utiliser NHibernate dans mon C # Applications (bureau W / WPF, Web W / ASP.NET MVC): P>
- changer le code li>
- Soyez plus facile / plus rapide Li> ul>
dois-je examiner à l'aide de NHibernate dans mes projets? strong> p>
Mise à jour: strong> Merci d'identifier cela comme une dupe! Je n'ai pas réalisé que cela avait déjà été demandé. P>
Je suppose que ma vraie question concerne Nhibernate Versus Linq à SQL (que j'utilise dans toutes mes applications), mais qui a déjà été posée ici et Ici . P>
Merci, tout le monde! :) p>
3 Réponses :
Le but principal de NHibernate est décrit dans le Article Wikipedia aussi: < / p>
La caractéristique principale de NHibernate est la cartographie des classes .NET aux tables de base de données (et des types de données CLR aux types de données SQL). NHibernate fournit également des installations de requête et de récupération de données. P>
NHibernate génère les commandes SQL et soulage le développeur à partir de la conversion de la manutention manuelle de données et de la conversion de l'objet, en conservant l'application portable dans la plupart des bases de données SQL, la portabilité de la base de données livrée à très peu de performances. P> blockQuote>
NHibernate vous permet de réinventer la roue. 90% Time Vous choisissez Fichier Nouveau projet, c'est un projet CRUD (Créer, lire, mettre à jour et Supprimer) avec la base de données. NHibernate fait beaucoup de ce travail pour vous, espérons-le enlever certains des tédium de devoir écrire une nouvelle couche d'accès aux données pour chaque projet. Si vous écrivez dans une base de données, je dirais oui, vous devriez regarder dans NHibernate, mais il y a beaucoup d'ormes là-bas. Je dis tout essayer. p>
NHibernate est un orm (mapper relationnel objet). Son but est de mapper des objets dans votre application OO aux tables dans une base de données pour la persistance. P>
Pourquoi en auriez-vous besoin? Parce que cela peut vous éviter d'écrire beaucoup de code ADO.NET fastidieux. Essentiellement, il améliore la productivité des développeurs lors de l'élaboration d'applications CRUD, c'est-à-dire des applications dont l'objectif principal est de créer, de lire, de mettre à jour et de supprimer des données dans une base de données. P>
NHibernate est open source, et vous devez vous rendre compte que vous rendez votre candidature dépend de votre demande de bibliothèques tiers, dont les objectifs à long terme peuvent diverger de la vôtre. P>
Si vous souhaitez la productivité d'un orj sans introduire cette dépendance, envisagez une structure d'entité ou LINQ2SQL (notant que LINQ2SQL vous verrouille dans SQL Server). P>
Et enfin si vous n'avez pas besoin de l'amélioration de la productivité d'un orj, et que vous voulez un contrôle absolu, collez-vous à un ancien ado.net. p>
Il serait intéressant de savoir comment l'OP fonctionne-t-il actuellement avec la base de données. Il pourrait y avoir un changement qu'il n'a pas fait beaucoup même avec Ado.Net, ce qui expliquerait pourquoi il ne pleure pas de sa part. = P
Vous pouvez d'abord examiner le LINQ2SQL pour obtenir l'idée de la facilité d'orement de la tâche, puis d'examiner NHibernate plus tard, ce qui fournit un ou plusieurs degré d'entreprise que LINQ2SQL.
ou en.wikipedia.org/wiki/ado.net_entity_framework
Oups, n'a pas réalisé que c'est une dupe. Désolé!
@Claus que je n'ai utilisé que Linq vers SQL dans mes applications jusqu'à présent, et je me demande si je devrais passer à autre chose.