Является ли ASP.NET Веб-уровень MVC должен ссылаться на NHibernate .dll?

#asp.net-mvc #nhibernate #fluent-nhibernate #separation-of-concerns

#asp.net-mvc #nhibernate #свободно-nhibernate #разделение проблем

Вопрос:

Во всех разговорах о разделении забот я, кажется, продолжаю сталкиваться с проблемой моего ASP.NET Приложению MVC приходится ссылаться на множество библиотек, связанных с nhibernate и fluent nhibernate, для моего внедрения зависимостей.

Это типично? Есть ли другой способ, которым я должен решать эту проблему? Я пытаюсь поместить всю логику, связанную с NHibernate, в Data проект, но когда мне приходится подключать ISessionFactory и ISession , я должен иметь доступ к ним на моем веб-уровне. Кто-нибудь нашел обходной путь для этого?

Ответ №1:

Честно говоря, беспокоиться не о чем. Я знаю, что вы хотели бы сохранить все зависимости, связанные с данными, вне вашего пользовательского интерфейса, но если вы хотите правильно использовать NHibernate, где у вас есть ISession для каждого запроса, тогда вам нужно настроить его в вашем Application_Start глобального.asax. Конечно, вы, вероятно, могли бы обернуть все в свой собственный интерфейс и скрыть любую зависимость от NHibernate, но это действительно перебор. Не пытайтесь скрыть то, что вы используете, как часто вы собираетесь переключать свой ORM?

Ответ №2:

Я не вижу в этом проблемы, но многие люди видят.

На самом деле, зависит от тебя.

Ответ №3:

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