Qu’est-ce que NHibernate?

Comme suite à ma question précédente . Je suis un programmeur ASP.NET et je me demande comment NHibernate pourrait m’aider à faire mon travail plus facilement et plus rapidement qu’il ne le ferait autrement. Faites comme si je ne savais rien de NHibernate. Qu’est-ce que c’est et que peut-il faire pour moi?

NHibernate est un ORM, ou object-relationnel Mapper. Dans la même ligne que LINQ to SQL, Entity Framework, LLBLGen et autres, les outils ORM suppriment la plupart du besoin d’écrire des procédures stockées pour gérer l’access aux données communes (CRUD) pour vos objects métier. Les outils ORM exigent que vous créiez (manuellement ou avec un concepteur visuel … dépend de celui que vous choisissez) une spécification de mappage qui trace les propriétés de vos objects mappées sur les colonnes de vos tables et / ou vues de votre firebase database. Lorsque vous devez récupérer des objects, l’outil ORM génère le code SQL approprié pour vous et l’envoie à la firebase database. Lorsque vient le temps de mettre à jour vos objects, l’ORM ne crée pas seulement le SQL pour insérer, mettre à jour et supprimer pour vous … il va également grouper ces commandes afin qu’une seule connexion et un lot de commandes soient envoyés à la firebase database. effectue le tout dans une transaction. Les outils ORM peuvent également améliorer l’efficacité de vos requêtes en vous permettant de sélectionner des graphes d’object complets en une seule fois, en générant le SQL le plus efficace pour la tâche.

Avec les outils ORM, vous devez néanmoins interroger, soit avec des méthodes de base sur le contexte ou l’object de session de l’ORM, soit avec un langage de requête personnalisé pour cet ORM. Ces jours-ci, la plupart des ORM, y compris NHibernate, fournissent également une prise en charge LINQ, vous permettant d’utiliser la syntaxe LINQ standard pour interroger votre modèle d’object.

L’avantage des mappeurs OR est que vous centralisez la quasi-totalité de votre code dans votre domaine, plutôt que de le séparer entre les procédures stockées et celles du domaine. Vous alléger la charge de la procédure stockée sur votre firebase database, ce qui réduit le risque de refactorisation de votre firebase database en cas de besoin, offrant une plus grande agilité professionnelle non seulement à votre domaine, mais également à votre schéma de firebase database. Comme vous n’avez pas besoin d’écrire du code SQL, et surtout si vous utilisez LINQ, vous pouvez souvent créer une application plus efficace avec moins d’efforts et des coûts de maintenance à long terme plus faibles.

Mis à part l’inévitable guerre avec vos DBA (si vous en avez), les mappeurs OR peuvent apporter des avantages considérables à la table, ce qui peut réduire les efforts de mise en œuvre, améliorer la maintenabilité et améliorer l’agilité de l’entreprise.

J’espère que cela répond à la question. 😉

Une bonne introduction et un tutoriel peuvent être trouvés ici Summer of NHibernate Screencasts .

Dans chaque vidéo, il fournit une introduction à un sujet dans nHibernate et plonge ensuite dans du code tout en expliquant comment faire différentes choses. Je l’ai trouvé très utile.

nhibernate est un outil ORM

les dimécasts ont des vidéos qui peuvent vous aider à démarrer

Vous pouvez trouver plus d’informations ici

Et encore plus d’infos sur google 🙂

Manning a un livre plutôt bon: NHibernate In Action

Le livre est sur la version 1.2 de NHibernate, mais la plus grande partie est applicable à la dernière version.

NHibernate est un outil ORM (Object-Relational Mapper). Il crée un modèle orienté object basé sur votre schéma de firebase database.

De https://www.hibernate.org/343.html

Principales fonctionnalités de NHibernate:

  • Modèle de programmation naturelle – NHibernate prend en charge le langage OO naturel; l’inheritance, le polymorphism, la composition et le framework de collections .NET, y compris les collections génériques.

  • Native .NET – L’API NHibernate utilise les conventions et les idiomes .NET

  • Prise en charge des modèles d’object à granularité fine – une grande variété de mappages pour les collections et les objects dépendants

  • Aucune amélioration du bytecode au moment de la construction – il n’y a pas d’étapes supplémentaires de génération de code ou de traitement du bytecode dans votre procédure de génération

  • Les options de requête – NHibernate répond aux deux côtés du problème; non seulement comment obtenir des objects dans la firebase database, mais aussi comment les sortir à nouveau

  • SQL personnalisé – spécifiez le SQL exact que NHibernate doit utiliser pour conserver vos objects. Les procédures stockées sont sockets en charge sur Microsoft SQL Server.

  • Prise en charge des “conversations” – NHibernate prend en charge les contextes de persistance de longue durée, détache / rattache les objects et prend en charge automatiquement le locking optimiste

  • Free / open source – NHibernate est sous licence LGPL (Lesser GNU Public License)