Дизайн бизнес уровня - PullRequest
4 голосов
/ 25 мая 2010

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

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

Ранее мы решили построить сущности на основе табличных объектов. Но мы обнаружили, что существуют различия в сущностях и объектах значений, когда речь идет о DDD. Для тех из вас, кто прошел через такой дизайн. Пожалуйста, направьте меня в отношении шаблона, практики и образца.

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

Ответы [ 3 ]

3 голосов
/ 10 июня 2010

@ Адиль, это не ответ на ваш первоначальный вопрос, но я бы посоветовал вам пересмотреть свое решение по созданию собственного уровня доступа к данным. Вы замечаете, что хотите перейти в NHibernate: просто сделайте это сейчас.

ИМО, написание ORM - пустая трата времени, если у вас нет особых ограничений. Существует множество вариантов, на которые уже потрачены сотни часов усилий. Используйте это! LINQ2SQL, Entity Framework, NHibernate, Subsonic, LLBLGen - все хорошо, и есть еще кое-что.

Обратите внимание, что если вы бросите свой собственный, вы не сможете использовать доброту LINQ без особых усилий.

Что касается наслоения, старайтесь не сходить с ума: держите количество слоев под контролем и сконцентрируйтесь вместо этого на создании достойного интерфейса между ними, чтобы предотвратить утечку абстракций.

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

0 голосов
/ 25 мая 2010

@ Адиль,

Я не очень опытный пользователь, во всяком случае, это та модель, которую я использую (также с NHibernate).

GUI - со всеми веб-формами и т. Д. BLL - каталоги, которые отвечают за создание экземпляров новых объектов DAL - место, где реализуются классы, отвечающие за взаимодействие с NHibernate. Файлы сопоставления NHibernate находятся здесь.

Модель - библиотека классов, которая используется BLL и DAL для передачи данных между объектами.

Используются разные шаблоны. Например, BLL и DAL имеют класс Factory, который разрешает доступ к интерфейсу. Каталоги синглтон-классов. Все каталоги доступны с использованием основного класса Singleton, представляющего мой главный объект бизнес-логики (например, «Enterprise» => «Enterprise.PeopleCatalog».

В любом случае, надеюсь, это помогло ...

@ AngryHacker, спасибо за подсказку, не могли бы вы привести пример CSLA.NET?

0 голосов
/ 25 мая 2010

CSLA.NET прекрасно работает в качестве основы для бизнес-уровня.

...