Я бы сказал, что NHibernate на первый взгляд впечатляет и кажется очень сложным для изучения. Таким образом, после быстрого прочтения около 260 страниц вводного документа и настаивания на задачах, которые мне нужно было выполнять в тестовых приложениях, NHibernate - действительно правильный путь. И если вы не в восторге от файлов сопоставления XML, просто используйте FluentNHibernate, который позволяет использовать ООП для сопоставления объекты домена вашего бизнеса.
Кроме того, если вы не совсем уверены в NHibernate и предпочитаете другой путь, Enterprise Library 4.1 (октябрь 2008 г.) также может оказаться полезным инструментом. В зависимости от ситуации в некоторых организациях я выбрал гибрид NHibernate - Enterprise Library. Блок приложения доступа к данным (DAAB) в корпоративной библиотеке довольно легко изучить и не требует от вас изучения чего-либо, кроме того, что вы уже знаете. Вам просто нужно знать, какой объект использовать для создания вашего DbConnection из класса DatabaseProviderFactory для чтения из ваших файлов конфигурации, и вы можете указать базу данных по умолчанию.
Что касается моих проблем, я часто использую как NHibernate, так и Enterprise Library. DAAB позволяет мне, например, указывать соединение с базой данных для каждого файла конфигурации, поскольку я предпочитаю параметрировать только одно соединение для каждого файла. Это позволяет мне не развертывать излишне файлы конфигурации для конфигураций, которые вообще не изменились, а развертывать только новый файл конфигурации для другого соединения. Итак, если вы объединяете новый модуль, который должен подключиться где-то еще к другому хранилищу данных, вы создаете свой модуль, не заботясь об остальном, обновляете свое программное обеспечение с помощью DLL вашего модуля вместе с этим новым файлом конфигурации DAAB.
Что касается NHibernate, важно не избавляться от ISessionFactory, когда он вам больше не нужен. Создание экземпляра обходится дорого, поэтому вы хотите сохранить его в памяти. Что вы можете сделать, так это сериализовать класс объекта конфигурации (поскольку он является сериализуемым), чтобы ваше приложение могло построить свою конфигурацию только в том случае, если что-то изменилось в вашем файле конфигурации NHibernate. Опять же, я предлагаю вам использовать файл конфигурации hibernate.cfg.xml по умолчанию для NHibernate, таким образом вам не нужно будет развертывать файл app.config снова и снова при появлении обновлений.
Надеюсь, это поможет! Дайте мне знать, если вам понадобится дополнительная информация.
person
Will Marcouiller
schedule
29.01.2010