7

Что вы рекомендуете в качестве правильной структуры проекта для решения WebForms, использующего NHibernate и пытающегося внедрить некоторые концепции DDD?DDD, NHibernate и структура проекта/Именование

Предполагая, что корневое пространство имен и имя решения является Sample

  • Sample.Domain - содержит мои объекты домена и мои отображения файлов
  • Sample.Repositories - содержит мои хранилища и конфигурационный файл NHibernate
  • коммутационной
  • Sample .Бизнес - содержит мою бизнес-логику
  • Sample.Web - настоящий проект WebForms - все Презентация

Что я забыл? Есть ли более стандартный способ назвать их?
Любые хорошие посты в блоге по теме?

+0

Должны были включить тестовые проекты. thx – BuddyJoe

+0

Собирался посмотреть, что делает CodeCampServer. Не удается проверить исходный код. Weird репозиторий переместил ошибку. Кто-нибудь еще может проверить это? подробнее: http://code.google.com/p/codecampserver/source/checkout – BuddyJoe

+2

Ваша бизнес-логика должна быть в домене. – Paco

ответ

3

Несколько отсутствующих частей, по-видимому, являются центральным местом для предоставления услуг, необходимых для решения и тестирования проектов. У меня обычно есть что-то вроде этого:

  • Sample.Core - услуги и код, который нужно использовать по применению
  • Sample.Data - классы домена и интерфейсы хранилища
  • Sample.Data.NHibernate - отображение файлы, свободно конфигурация и т.д. и реализация хранилища, в основном все данные отображения уровня конкретного
  • Sample.Services - реализации услуг и интерфейсы
  • Sample.Web - веб-приложение
-

У меня есть соответствующий дерево тестовых проектов:

  • тесты \ Sample.Core.Tests
  • Тесты \ Sample.Data.NHibernate.Tests
  • и т.д ...

Конечно, дерево будет усложняться в зависимости от проекта. Что касается обсуждений, ознакомьтесь с Onion Architecture. Вы также можете проверить образцы проектов на Domain-Driven Design и посмотреть, что вы можете извлечь из них.

+0

+1 крутые идеи. хорошие ссылки. – BuddyJoe

2

Я нашел у каждого есть свои собственные предпочтения для именования, я предпочитаю:

  • Sample.Domain - объекты домена, отображение файлов
  • Sample.Services - бизнес-логики и услуг (и репозиториев, хотя я могли видеть их разделение)
  • Sample.Web - Веб-сайт.
  • Образец. Миграции - миграция данных.

Ben Scheirman также недавно опубликовал об этом: Exporting Visual Studio Solutions with Solution Factory.

Он использует другую структуру, но также включает отличный способ стандартизации вашего шаблона.

+0

очень круто. Придется попробовать этот завод решений. +1 – BuddyJoe

2

Я держу его простым и склонным к разделению пространства имен, а не проектом, особенно в начале. Обычно я начинаю с трех проектов в решении:

  • Образец - содержит пространства имен Sample.Model, Sample.Model.Mappings и Sample.Services.
  • Sample.Tests - содержит модульные тесты, такие же, как и Sample.
  • Sample.Web - UI
+0

Что такое Sample.Model.Mappings? – BuddyJoe

+0

Классы отображения Fluent NHibernate. –

+0

Gotcha. Не использовать это еще. Благодарю. – BuddyJoe

1

Вы можете увидеть, как это делается в s#arp architecture. Его очень прочный архитектурный каркас