объект служит для связи между бизнес-уровнем и уровнем представления - PullRequest
1 голос
/ 02 июня 2009

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

Это лучший подход? Какой еще подход есть?

Ответы [ 3 ]

1 голос
/ 02 июня 2009

Домен Driven Design книги ( быстро версия свободно доступна здесь ) может дать вам понимание этого.

В двух словах, они предлагают следующий подход: объекты модели пересекаются от уровня модели до уровня просмотра без шва (это может быть непросто, если вы используете статические типизированные языки или другие языки на клинете / сервере, но это тривиально на динамическом из них). Кроме того, службы должны использоваться только для выполнения действий, которые не принадлежат самим объектам модели (или когда у вас есть действие, которое включает множество объектов модели).

Кроме того, бизнес-логика должна быть помещена в уровень модели (сущности, службы, объекты значений), чтобы предотвратить известную модель анемичного домена антишаблон.

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

0 голосов
/ 03 июня 2009

Это зависит от вашей архитектуры.

Некоторые люди структурируют свой код в одном exe или dll и следуют стандартной n-уровневой архитектуре.

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

Программное обеспечение как услуга и облачные вычисления становятся платформой, куда все движется. Облако Amazons Elastic, Microsoft Azure и другие облачные провайдеры предлагают многочисленные услуги, которые могут повлиять на ваши решения для архитектуры.

Я собираюсь использовать

Silverlight UI

WCF Services - бизнес-логика здесь

Доступ к данным NHibernate

База данных Sql-сервера

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

0 голосов
/ 02 июня 2009

Мы используем шаблон слушателя, и события бизнес-уровня отправляют информацию на уровень представления.

...