Архитектура NHibernate?

Попробуйте удалить кнопку и код, а затем выполнить перестройку для своего решения, а затем создать его заново. иногда кэширование в VS создает некоторые неожиданные проблемы!

Надеюсь, это поможет вам!

7
задан Albert 5 November 2008 в 14:30
поделиться

4 ответа

Это обычно, что я делаю в своих приложениях:

  • Нечто. Ядро

    • содержит объекты области, бизнес-логику, и т.д.
    • никакая ссылка на любые связанные с инфраструктурой блоки, такие как веб-сервисы, ESBs или доступ к данным
    • некоторые люди также помещают интерфейсы репозитория здесь, но это - проектное решение. Это позволяет Вам иметь свои доменные сервисы здесь, которые взаимодействуют с репозиториями, все еще отделенными от NHibernate
  • Нечто. Персистентность

    • ссылки на NHibernate
    • Реализации репозитория
    • HttpModule единицы работы для ASP.NET (помогает управлять жизненным циклом сессии NHIBERNATE в веб-приложении),
  • Нечто. Сеть

    • ссылка на обоих Foo. Ядро и Foo. Персистентность
    • Ссылка HttpModule для управления Сессией NHibernate

Нечто. Сеть никогда не взаимодействует с NHibernate, непосредственно... это всегда через репозитории. С контейнером МОК можно просто запросить IRepository и не заботиться, какова реализация.

6
ответ дан 7 December 2019 в 05:33
поделиться

Вы заявили, что планируете использовать шаблон MVC. Это подразумевает, что Ваш UI не будет взаимодействовать с уровнем данных (в Вашем случае, NHibernate). То, что будет взаимодействовать с уровнем данных, является Вашим бизнес-уровнем, и Ваш UI будет взаимодействовать с Вашим бизнес-уровнем.

Я не знаком с ASP.NET, таким образом, я не могу консультировать Вас по вопросам предварительно созданной структуры для этого, но в Java, который является тем, что я, прежде всего, использую, у Вас был бы свой EJBs изолированным Ваш UI от уровня данных путем совершения всех таких вызовов через EJBs.

Думайте об изоляции кода для каждого уровня. У Вас есть поле для каждого уровня, и каждое поле может только общаться с полем ниже его через определенные каналы. Таким образом, Ваш уровень данных общается с Вашей базой данных, Ваш бизнес-уровень общается с Вашим уровнем данных, и Ваш UI общается с Вашим бизнес-уровнем. Вся эта связь является односторонней (то есть, Ваш уровень данных не знает о бизнес-уровне, и т.д.). Это означает, что, если Вы хотели заменить какой-либо уровень новой реализацией, влияние на остальную часть Вашей программы может быть сведено к минимуму.

Фактическая реализация, которую Вы используете для NHibernate, не действительно относится к использованию MVC, за исключением того, что Ваш UI не будет знать, как данные хранятся или получаются доступ.

2
ответ дан 7 December 2019 в 05:33
поделиться

Катарсис мог бы иметь то, что Вы ищете.

0
ответ дан 7 December 2019 в 05:33
поделиться

Да. Это звучит о праве. Я никогда не использовал NHibernate, но совместное использование Вашей модели между Вашим UI, и фасад звучит хорошим. Конечно, существуют многие другой способ достигнуть тех же целей, но Вашего хорошие взгляды.:)

0
ответ дан 7 December 2019 в 05:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: