Каков наилучший способ повторного использования модели предметной области в составных приложениях?

У нас есть составное приложение, созданное с использованием Composite UI Application Block (CAB) / Smart Client Software Factory (SCSF). На сегодняшний день каждый модуль в нашем составном приложении использует свой собственный набор DTO, а бизнес-логика дублируется по всему модулю как на уровне пользовательского интерфейса, так и на уровне сервиса. Я хотел бы придерживаться более основанного на домене подхода, чтобы инкапсулировать бизнес-логику на уровне домена, который может быть распределен на уровень пользовательского интерфейса и уровень услуг и (в идеале) между модулями.

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

Альтернативой кажется дублирование модели предметной области в каждом модуле, но все это дублирование кода мне кажется забавным. Разработаны ли в отрасли какие-либо передовые практики для таких ситуаций?


person user36262    schedule 29.12.2008    source источник
comment
Отличный вопрос. У меня точно такая же проблема. В настоящее время у нас нет решения для этого, и мы работаем над обновлением всех приложений после изменения модели предметной области (базы данных SQLServer).   -  person Marcel    schedule 18.05.2010


Ответы (1)


Я использовал модель одной предметной области, но такую, которая позволяет управлять версиями для каждого отдельного определения. Генерация кода предоставляет как интерфейсы для каждой службы, так и код отображения, который может пересекать границы службы и версии.

person joel.neely    schedule 30.12.2008
comment
Это кажется разумным. Вы все это кодировали сами или есть какая-нибудь библиотека? Для меня это огромная задача, по крайней мере, на первый взгляд. - person Marcel; 18.05.2010