различия между nhibernate 1.2 и 2.0 - PullRequest
1 голос
/ 27 мая 2009

Кажется, я не могу найти никакой информации о реальных различиях между nhibernate 1.2 и 2.0. Я нашел информацию о потенциальных проблемах с обновлением, но ничего о новых функциях или о различиях в производительности.

Если между ними есть существенные различия, которые могут сделать нашу разработку более эффективной или более легкой, тогда я бы рекомендовал обновить моего руководителя. Если там нет ничего, с чем стоит связываться, я не вижу смысла пытаться обновить стабильную на данный момент библиотеку.

Я собирался публиковать ссылки на информацию, которую уже рассмотрел, но мне не разрешено, так как я считаю себя новым пользователем.

1 Ответ

4 голосов
/ 06 октября 2009

Я потратил 6 месяцев, превратив свою работу в модернизацию. Позвольте мне просто заявить о некоторых замеченных нами преимуществах, чтобы вы могли продемонстрировать следующие возможности:

  • Время запуска сеанса значительно сократилось. Это количество времени, которое требуется для инициализации SessionFactory при запуске. Время было ~ 45 сек, а сейчас ~ 5 сек. Не так много проблем для производства, но определенно хлопот для разработчиков. Имейте в виду, у нас есть около 200 доменных объектов.
  • Мы воспользовались ленивой загрузкой (и я имею в виду не коллекции, а классы) при обновлении, которое используется по умолчанию. Это изменение от 1,2 до 2,0. Но мы столкнулись с проблемами не полностью загруженных объектов, которые были отключены от сеанса. Их было нелегко найти, но легко решить.
  • Мы воспользовались пакетированием, которое, я думаю, было новым. Это значительно улучшило массовые операции обновления, для которых NH не предназначен.
  • С двумя вышеупомянутыми улучшениями мы увидели сокращение времени для определенных ночных операций на 30%.
  • Одна из самых больших претензий к старой платформе заключается в том, что стало трудно найти поддержку и актуальную информацию для 1.2.
  • Улучшена поддержка Criteria Query для таких вещей, как пейджинг и подсчет. Критерии Запросы хороши тем, что используют кэш 1-го уровня.
  • Коллекции со строгими типами довольно приятны для работы. Нам нравится иногда использовать LINQ вместо сложных SQL для доменных объектов, и наличие строго типизированных коллекций является для этого необходимостью.
  • Мы также используем профилировщик Ayende, в настоящее время построенный для 2.0 +
  • Есть и другие, но в целом наш опыт миграции был не таким страшным, как мы думали. И у нас есть кое-что из того, что заставило бы ребят из NH содрогнуться. Вам нужно будет изменить настройки конфигурации, обновить некоторые устаревшие интерфейсы (я думаю, что в нашем решении было менее 30), но самая большая проблема - сделать все свойства / методы ваших доменных объектов виртуальными. Я на самом деле написал быструю программу для прочесывания наших доменных объектов и делал это, так как у нас их было очень много.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...