Плюсы и минусы объединения бизнес-уровня и уровня данных в одной службе WCF

У меня есть приложение, в котором используется трехуровневая бизнес-модель 2 уровня, а именно уровни представления, бизнеса и данных с уровнями приложений и служб. Мы уже решили использовать службу WCF на отдельном уровне для всех запросов уровня данных (CRUD). Вопрос, который у меня сейчас возникает, заключается в том, следует ли объединять бизнес-уровень с уровнем данных в службе WCF, а затем пользовательский интерфейс выполняет вызовы службы, которая обрабатывает ВСЕ бизнес-операции и операции с данными.

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

Возможно, я веду себя просто глупо, но я хотел бы, чтобы Интернет высказал мнение по этому поводу, а также, если возможно, расскажет о любых плюсах и минусах.

Все отзывы приветствуются!


person William Francis    schedule 12.12.2014    source источник


Ответы (1)


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

  1. Конечная точка службы: простой канал передачи данных, который отвечает за преобразование входящих запросов с использованием выбранной вами технологии в запросы, понятные бизнес-уровню.
  2. Бизнес-уровень: объекты вашего домена и бизнес-сервисы с правилами, необходимыми для ведения вашего бизнеса. Этот уровень обращается к вашему уровню данных и ничего не знает о конечной точке службы.
  3. Уровень данных: простой перевод объектов бизнес-области в требуемые объекты того, с чем вы взаимодействуете; будь то база данных или конечная точка сторонней службы.

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

Ознакомьтесь с статьей Мартина Фаулера о микросервисах для получения дополнительных сведений по этому вопросу.

person Jeremy Paskali    schedule 04.03.2015