Что такое шаблоны .NET Core для использования объектов промежуточного программного обеспечения в последующих проектах? - PullRequest
2 голосов
/ 19 марта 2019

Представьте следующую структуру проекта для веб-проекта .NET Core.

Widget.UI проект (MVC) звонки Widget.Business звонки Widget.Services звонки Widget.Repository проект.

Допустим, Widget.Services проект хочет реализовать распределенное кэширование с Memcached .

Является ли шаблон для добавления Memcached в промежуточное ПО в Startup.ConfigureServices и .Configure, передает их в конструктор контроллера, затем строит конструкторы с Memcached на всем пути вниз по стеку?

Или лучше было бы var cache = new MemcachedClient() в проекте Widget.Services?

1 Ответ

1 голос
/ 20 марта 2019

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

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

Конфигурация службы будет такой же, как и у других служб (в Startup.ConfigureServices), и вы внедряете инфраструктуру кэширования через конструктор, где вам это нужно.

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