Обычно я начинал новые проекты с решения, содержащего:
Веб-проект : содержит контроллеры ASP.NET MVC или Web API, код Javascript и т. Д.Делает вызовы в библиотеку классов
Библиотека классов 1 : содержит DbContext
, модель данных EF, класс с методами CRUD для взаимодействия с Db через DbContext
иразличные «служебные» методы
Библиотека классов2 : содержит только классы POCO.На эту библиотеку ссылаются как веб-проект, так и библиотека1
Хорошо, это работает хорошо, но когда количество «бизнес-логики» начинает увеличиваться, это становится немного грязно, так как я начинаювставляя больше правил, которые дает вам бизнес.Заставляет меня думать, что нужен еще один «слой» или библиотека, куда мы помещаем «бизнес-логику», которая на самом деле выше / выше простого получения данных, возвращаемых в виде отфильтрованного списка объектов POCO.Такие вещи, как проверка атрибутов заказов, основанные на некоторых правилах, определенных какой-либо группой в рамках бизнеса.
Мой вопрос: вы бы заставляли каждый вызов на уровне клиента проходить через бизнес-библиотеку (см. Рисунок ниже# 2), даже для простых случаев, когда вам просто нужен какой-то простой список значений поиска?