Как организовать доменный управляемый дизайн-проект?

Просто проверьте настройки Build Settings => Enable Bitcode и установите NO

27
задан Nietzche-jou 11 February 2009 в 00:52
поделиться

5 ответов

Ваш домен, вероятно, имеет имя, таким образом, необходимо использовать это имя в качестве пространства имен.

я usally поместил реализацию репозитория и детали доступа к данным в пространстве имен под названием Постоянство под доменным пространством имен.

использование приложения его собственное имя как пространство имен.

0
ответ дан thinkbeforecoding 14 October 2019 в 14:54
поделиться

Мне нравится иметь домен в корневом пространстве имен приложения в его собственном блоке:

Acme.Core.dll [корневое пространство имен: Acme]

Это аккуратно представляет то, что домен в пределах всех других частей приложения. (Для больше, см. Луковая Архитектура Jeffrey Palermo).

Затем, у меня есть блок данных (обычно с NHibernate), который отображает объекты области на базу данных. Этот слой реализует сервисные интерфейсы и репозиторий:

Acme.Data.dll [корневое пространство имен: Acme.Data]

Затем у меня есть объявление блока презентации элементы моего UI-pattern-of-choice:

Acme.Presentation.dll [корневое пространство имен: Acme.Presentation]

Наконец, существует проект UI (принятие веб-приложения здесь). Это - то, где состав элементов в предыдущих слоях происходит:

Acme.Web [корневое пространство имен: Acme.Web]

5
ответ дан Bryan Watts 14 October 2019 в 14:54
поделиться

Я проверил бы codecampserver начиная с установки, там довольно распространено.

у Них есть базовый проект, в который они включают и приложение и доменные слои. Т.е. внутренности лука ( http://jeffreypalermo.com/blog/the-onion-architecture-part-1/ ).

мне на самом деле нравится разбивать ядро на отдельные проекты управлять направлением зависимости. Так обычно я имею:

MyNamespace. SomethingWeb < - несколько UIs
MyNamespace. ExtranetWeb < - несколько UIs

MyNamespace. Приложение < - прикладной уровень Evans с классами как CustomerService
MyNamespace. Домен

  • MyNamespace. Домен. Модель < - объекты
  • MyNamespace. Домен. Сервисы < - доменные сервисы
  • MyNamespace. Домен. Репозитории

MyNamespace. Инфраструктура < - repo реализация и т.д.

MyNamespace. Общий < - проект, который все другие проекты имеют зависимость, к которой имеет вещи как Регистратор, классы Util, и т.д.

0
ответ дан Dinah 14 October 2019 в 14:54
поделиться

Хотя Вы - также разработчик .NET, , ссылка реализации Java грузового приложения от DDD Eric Evans и Citerus является хорошим ресурсом.

В коде doc'd, Вы видите DDD-организацию в ограниченные контексты и агрегируетесь в действии, прямо в пакетах Java.

Кроме того, Вы могли бы рассмотреть Billy McCafferty Архитектура Sharp . Это - ASP.NET MVC, реализация NHibernate/Fluent NHibernate, которая создается с DDD в памяти.

По общему признанию, необходимо будет все еще применить решение для папки/пространства имен обеспечить контексты. Но, свяжите подход Evans с #Arch, и необходимо хорошо быть на пути.

Сообщают нам то, с чем Вы идете. Я нахожусь на том же пути также, и недалеко от Вас!

Счастливое кодирование,

Kurt Johnson

3
ответ дан Kurt Johnson 14 October 2019 в 14:54
поделиться

Я пытаюсь сохранить вещи очень простыми каждый раз, когда я могу, так обычно что-то вроде этого работает на меня:

Myapp. Домен - Все зависящие от домена классы совместно используют это пространство имен

Myapp. Данные - Тонкий слой, который абстрагирует базу данных от домена.

Myapp. Приложение - Весь "код поддержки", вход, совместно использовал служебный код, сервисные потребители и т.д.

Myapp. Сеть - веб-UI

Так классы будет, например:

  • Myapp. Домен. Продажи. Порядок
  • Myapp. Домен. Продажи. Клиент
  • Myapp. Домен. Прайс-лист
  • Myapp. Данные. OrderManager
  • Myapp. Данные. CustomerManager
  • Myapp. Приложение. Utils
  • Myapp. Приложение. CacheTools

И т.д.

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

из-за этого я также осторожен о создании иерархий слишком сложного объекта. Идеально несколько упрощенный рисунок модели предметной области должен быть интуитивно понятным некодерами.

С этой целью я обычно не начинаю путем размышления о шаблонах в большом количестве деталей. Я пытаюсь смоделировать домен, столь простой, как мне может сойти с рук, после просто стандартного объектно-ориентированного руководства по проектированию. Какие потребности быть объектом? Как они связаны?

DDD в моем уме об обработке сложного программного обеспечения, но если Ваше программное обеспечение не самостоятельно очень сложно для начала с Вас, мог бы легко закончиться в ситуации, где способ DDD сделать вещи добавляет сложность, а не удаляет ее.

, После того как у Вас есть определенный уровень сложности в Вашей модели, которую Вы начнете видеть, как определенные вещи должны быть организованы, и затем Вы будете знать, какие шаблоны использовать, какие классы являются агрегатами и т.д.

В моем примере, Myapp. Домен. Продажи. Порядок был бы совокупным корнем в том смысле, что, когда он инстанцируется, он будет, вероятно, содержать другие объекты, такие как клиентский объект и набор строк порядка, и Вы только получили бы доступ к строкам порядка для того особого порядка через объект порядка.

Однако для хранения вещей простыми, у меня не было бы "основного" объекта, который только содержит все остальное и не имеет никакой другой цели, таким образом, класс порядка будет самостоятельно иметь значения и свойства, которые полезны в приложении.

, Таким образом, я сошлюсь на вещи как:

Myapp. Домен. Продажи. Порядок. TotalCost

Myapp. Домен. Продажи. Порядок. OrderDate

Myapp. Домен. Продажи. Порядок. Клиент. PreferredInvoiceMethod

Myapp.Domain.Sales.Order.Customer.Address.Zip

и т.д.

20
ответ дан Console 14 October 2019 в 14:54
поделиться
Другие вопросы по тегам:

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