
Прошлую статью я закончил на том, что Google в 2023 году выпустил фрейморк для модульных приложений Service Weaver . Можно писать и запускать приложение как монолитное, а потом в конфиге указать какие компоненты на каких машинах запускать и приложение становилось распределенным. Вы удивитесь, но в ASP.NET встроена модульность начиная с версии Core 2.0 (2017 год). Вы можете сделать сделать приложение которое загружает сервисы, контроллеры, страницы и даже EF модели из разных сборок в один хост. Все это собирается в один исполняемый образ. Переменная окружения при запуске задает какие модули загружать. Загрузили все модули — получили монолит, в котором заказы и клиенты джойнятся одним SQL-запросом. Оставили в одном контейнере модуль заказов, а в другом модуль клиентов — получили два сервиса, которые ходят друг к другу по HTTP. Пересобирать ничего не нужно, в Program.cs нет ни слова о модулях, а всё целиком запускается и отлаживается по F5. Решение «резать или не резать» становится обратимым. Все это без единого стороннего NuGet-пакета — только ASP.NET Core и EF Core. В конце разберём, почему у Google то же самое не взлетело, и какую цену за «из коробки» придётся заплатить. Читать далее
Continue to Habr →You are being forwarded in 6s — stay on this page