Стоит ли мигрировать в Nhibernate 2.x из Nhibernate 1.2?
-
18-09-2019 - |
Вопрос
Мы используем nhibernate 1.2 в системе, которая не работает хорошо. Будет ли какое -то улучшение производительности, если мы перейдем на последнюю версию Nhibernate?
В целом это хорошая идея, чтобы перейти на последнюю версию Nhibernate?
РЕДАКТИРОВАТЬ: Я хочу использовать следующие функции для повышения производительности.
1. Кэш второго уровня. 2. Соглашенная таблица. 3. Multikery до партийных запросов.
Решение
Если производительность - ваша проблема, рассмотрите возможность использования Nhibernate profiler.
Nhibernate Profiler-это визуальный отладчик в режиме реального времени, позволяющий команде разработчиков получить ценную информацию и перспективу их использования Nhibernate.
Другие советы
Сделав преобразование с 1,2 до 2.0.1, а затем до 2.1.2, я могу твердо сказать, что не вернусь.
Реализация мультикритерии изменила правила игры (как для производительности, так и для стиля кодирования). Кэш второго уровня, вероятно, такой же с 1.2, и для таблицы соединения я не использую их, поэтому я не могу комментировать.
Улучшения по всем направлениям, и некоторые части были переписаны. Ничто не сломалось, кроме того же изменений в пространстве имен и изменения класса, функциональность была такой же. В целом я рекомендую это.
В зависимости от - нет. Я бы подумал о том, чтобы перейти к туловище разработки .... для дополнительной / лучшей поддержки LINQ. Не уверен, когда это получится бета, но я бы рискнул. «Текущий» LINQ трудно использовать (нет "startSwith", поэтому даже основные формы поиска в основном отсутствуют).
Если вы можете рискнуть, это того стоит. LINQ сам по себе всегда является причиной для мигрирования - довольно жестокий шаг к гораздо лучшим поискам;)
Только если вам требуется использование последних функций, предлагаемых Nhibernate 2.0. Вот ссылка, где перечислены новые функции.
Мой опыт научил меня, почему выражение: «Если оно не сломано, не исправьте!» подставка Это то же самое здесь. Тем не менее, NH 2.1.2.ga довольно интересно. Вопрос, который вы должны задать: «Нужны ли мне эти новые функции, или они должны быть полезны для будущего расширения моего проекта?» Если да, то сделайте это, в противном случае держите его так, как это работает.