2009-05-27 7 views
1

Je ne trouve pas d'informations sur les différences réelles entre nhibernate 1.2 et 2.0. J'ai trouvé des informations sur les problèmes potentiels liés à la mise à niveau, mais rien sur les nouvelles fonctionnalités ou les différences de performances.différences entre nhibernate 1.2 et 2.0

S'il existe des différences significatives entre les deux qui pourraient rendre notre développement plus efficace ou plus facile alors je voudrais recommander une mise à niveau à mon superviseur. Si rien ne vaut la peine d'être déconseillé alors je ne vois pas l'intérêt d'essayer de mettre à niveau une bibliothèque actuellement stable.

J'allais publier des liens vers les informations que j'ai déjà passées en revue, mais je ne suis pas autorisé à le faire car je suis considéré comme un nouvel utilisateur.

Répondre

4

J'ai passé 6 mois à piloter mon travail dans une mise à niveau. Permettez-moi simplement d'indiquer quelques-uns des avantages que nous avons remarqué, de sorte que vous pouvez montrer les pouvoirs qui sont:

  • Le temps de démarrage de la session a été considérablement réduit. C'est la durée nécessaire à l'initialisation de SessionFactory au démarrage. Le temps était ~ 45 sec, et est maintenant ~ 5 sec. Pas tellement un problème pour la production, mais certainement un problème pour les développeurs. Gardez à l'esprit que nous avons environ 200 objets de domaine.
  • Nous avons profité du chargement paresseux (et je ne parle pas des collections, mais des classes) lors de la mise à niveau qui est la valeur par défaut. C'est un changement de 1,2 à 2,0. Mais nous avons rencontré des problèmes avec des objets qui n'étaient pas complètement chargés et qui étaient déconnectés de la session. Ceux-ci n'étaient pas faciles à trouver, mais faciles à résoudre.
  • Nous avons profité du traitement par lots, que je pense était nouveau. Cela a eu de grandes améliorations sur les opérations de mise à jour en masse, pour lesquelles NH n'est pas vraiment destiné.
  • Avec les 2 améliorations ci-dessus, nous avons constaté une réduction du temps de 30% pour les opérations nocturnes spécifiques.
  • Une de nos plus grandes plaintes au sujet de l'ancien cadre, c'est qu'il est devenu difficile de trouver le support et les informations actuelles pour 1.2.
  • Il existe une meilleure prise en charge des requêtes de critères pour des choses comme la pagination et le comptage. Critères Les requêtes sont agréables, car elles tirent parti du cache de 1er niveau.
  • Des collections fortement typées sont très agréables à travailler. Nous aimons parfois utiliser LINQ, au lieu de SQL complexe, sur les objets de domaine et avoir des collections fortement typées est un must pour cela.
  • Nous utilisons également le profileur Ayende, actuellement construit pour 2.0+
  • Il y en a d'autres, mais en résumé, notre expérience de migration n'était pas aussi effrayante que nous le pensions. Et nous avons des choses qui pourraient faire frémir les gens du NH. Vous devrez changer vos paramètres de configuration, mettre à jour certaines interfaces obsolètes (je pense que nous avions moins de 30 dans notre solution), mais la plus grande difficulté est de rendre virtuelles toutes les propriétés/méthodes des objets de votre domaine. En fait, j'ai écrit un programme rapide pour peigner nos objets de domaine et le faire car nous en avions tellement.
Questions connexes