#nhibernate
#nhibernate
Вопрос:
В настоящее время я работаю над проектом и использую nhibernate в качестве ORM. Проект отлично работает в среде разработки. Прежде чем мы приступим к работе, я хотел бы узнать из опыта сообщества, были ли обнаружены логические ошибки после их запуска, которые не были обнаружены при разработке. Короче говоря, я хочу знать контрольный список того, что нужно сделать, прежде чем мы начнем жить.
Комментарии:
1. Это слишком широко. Я предлагаю вам спросить о конкретных проблемах.
Ответ №1:
На самом деле у меня нет контрольного списка, но одна из вещей, которая привлекла нас при первом использовании NHibernate, заключалась в том факте, что мы не тестировали его при реальной «нагрузке» в нашей среде разработки.
Когда мы приступили к производству, мы получали неожиданные тайм-ауты. Оказалось, что наши запросы ICriteria были очень неэффективны, и нам пришлось соответствующим образом их настроить.
Еще одной вещью, которая изначально привлекла нас, были зависимости NHibernates от dll. Это зависит от Log4net, Iesi.Коллекции и еще несколько — убедитесь, что ваша стратегия развертывания учитывает это.
Ответ №2:
Это старая проблема, но вот несколько из них..
Сопоставления — если у вас есть устаревшая база данных с другими, чем простые сопоставления, используйте NHibernate Profiler, чтобы проверить, что на самом деле запрашивается. Иногда довольно невинная загрузка объекта может привести к множественным объединениям.
Параллелизм — обязательно ознакомьтесь с тем, как обрабатываются транзакции. Единица работы (ISession) и то, как она работает, важны для предотвращения странных ошибок, при которых считываются противоречивые данные.
Параллелизм — убедитесь, что вы понимаете модели параллелизма NHibernates. Это может серьезно повлиять на ваше приложение и вызвать у вас исключения StaleObjectExceptions при одновременной записи. Посмотрите это для начала: Параллелизм NHibernate