База кода Microservices ASP.NET Core, содержащая реальные примеры (CRUD, аутентификация, расширенные шаблоны и т. д.), соответствующая спецификации RealWorld и API.
Эта база кода была создана для демонстрации полноценной архитектуры микросервисов, созданной с помощью ASP.NET Core . Он включает в себя gRPC, доменно-ориентированное проектирование, CQRS, Mediator, Proxy и многие другие шаблоны.
Он полностью соответствует руководствам и лучшим практикам сообщества ASP.NET Core .
Для получения дополнительной информации о том, как это работает с другими интерфейсами/бэкэндами, перейдите в репозиторий RealWorld.
Архитектура микросервисов — архитектурный стиль, который обеспечивает легко поддерживаемый, тестируемый, слабосвязанный набор сервисов, которые можно независимо развертывать и организовывать с учетом бизнес-возможностей. Уровень обслуживания размещается поверх моделей предметной области.
Проектирование, ориентированное на предметную область, помогает нам сосредоточиться на небольших, индивидуальных, почти автономных частях нашей предметной области, наш процесс и полученное в результате программное обеспечение становятся более гибкими. Мы можем легко перемещать или модифицировать мелкие детали без побочных эффектов.
Связь через gRPC — новый, растущий способ подключения сервисов кроссплатформенным и межъязыковым способом.
Удаленный прокси — действует как локальный ресурс, скрывая при этом подробности подключения к удаленному ресурсу по сети. Он действует как шлюз API между клиентом и службами.
Применение функциональных принципов. Функциональное программирование на C# может дать вам представление о том, как будут вести себя ваши программы. Конкретными темами здесь являются неизменяемая архитектура, избежание исключений, примитивная одержимость, обработка сбоев и ошибок ввода и многое другое.
Разделение ответственности за команду и запрос (CQRS) — побуждает вас распутать единую унифицированную модель предметной области и создать две модели: одну для обработки команд, а другую для обработки запросов. CQRS позволяет нам принимать разные решения для чтения и записи, что, в свою очередь, дает три преимущества: масштабируемость, производительность и самое главное — простоту. CQRS расширяет CQS до архитектурного уровня.
MediatR — обеспечивает маршрутизацию сообщений в нужные места. Поэтому вы можете думать об этом как о системе обмена сообщениями в памяти.
Docker — контейнеры представляют собой разновидность «виртуализации» с более высокой плотностью, которая может удовлетворить потребности определенных сценариев лучше, чем традиционные гипервизоры.
Travis CI — сервис непрерывной интеграции, используемый для создания и тестирования проектов. Travis CI автоматически определяет, когда была сделана фиксация, и отправляется в репозиторий GitHub, использующий Travis CI, и каждый раз, когда это происходит, он пытается собрать проект и запустить тесты.