Nimble Framework v6.1

Nimble Framework | создано: 5/11/2022 | опубликовано: 5/15/2022 | обновлено: 11/17/2022 | просмотров: 2824

На платформе NET6 (В папке AspNetCore v6.1) можно найти новую версию Nimble Framework, который предназначен для быстрого создания микросервисной архитектуры. Nimble Framework содержит IdentityModule (AuthServer) и Module (microservice).

Nimble Framework v6.1

Это фреймворк для создания микросервисов и/или backend API на базе платформы ASP.NET Core (NET6). Новая версия построена на базе Minimal API. В этой статье речь пойдет о новой версии Nimble Framework. Новая версия 6.1 претерпела множество изменений и о них надо поговорить подробнее.

Новое в версии

Удален IdentityServer4 как основа для аутентификации и авторизации на базе OAuth2.0. Теперь Nimble Framework использует для шаблона с сервером авторизации OpenIddict, который также реализует спецификации OAuth2.0. Замена IdentityServer4 произведена потому, что скоро IdentityServer4 станет платным и потеряет поддержку разработчика. Новый фреймворк OpenIddict дает новые возможности для реализации очень полезных "фишичек". Перечислю некоторые:

  • Обновлен механизм авторизации на странице swagger. Теперь используется Authorization Code Flow, который реализует форму входа. Это позволит использовать шаблон "из коробки".
  • Обновлен механизм авторизации для второстепенных сервисов (механизм передачи ролей в токен)
  • Обновлены почти все сборки (переведены на NET6), которые использованы в шаблонах
  • Реализована система Definitions

Что такое Nimble Framework?

  • Nimble Framework – это набор из двух шаблонов: шаблон для сервера авторизации и шаблон для микросервиса.
  • Работа с базами данных присутствует в обоих шаблонах через EntityFramework в режиме IN MEMORY, но легко трансформируется для работы с реальной базой данных, путем подключения нужного провайдера для EntityFramework.
  • Есть несколько вариантов реализации: minimal API, full API, controllers, endpoints, etc.

Для чего Nimble Framework?

  • Nimble Framework нужен для облегчения жизни разработчика, вернее сказать – для быстрого страта процесса разработки.
  • Nimble Framework – это быстрый старт разработки, а значит можно использовать как основу для экспериментов, например, для тестирования технологий, способов коммуникации, среды развертывания CI/CD и т.д. и .т.п.
  • В шаблонах показан широкий набор возможностей как для начинающих разработчиков, так и для профессионалов.

Какие шаблоны есть и что в них?

  • Шаблон с OpenIddict (IdentityModule) - сервер авторизации. Это микросервис, который может еще и управлять доступами в вашей системе микросервисов.
  • Шаблон без OpenIddict (Module) – это рядовой микросервис, который может состоять из одного метода или даже двух.
  • Каждый из этих шаблонов может быть использован для создания backend (API) для вашего приложения. Например, UI на Blazor.
  • Шаблоны настроены таким образом, что модули (Modules) могут получать роли (авторизовываться) на сервер авторизации (Identity Modules).

Демонстрация Nimble Framework?

На видео показаны основные и расказаны про базовые принципы использования шаблонов фреймворка.

  • Создание сервера OAuth2.0 из шаблона IdentityModule.
  • Создание сервиса из шаблона Module.
  • Авторизация пользователя на обоих сервисах на базе ролей созданных на сервере OAuth2.0.
  • Создание нового пользователя.
  • Запуск GetRoles на обоих сервисах.
  • Подключение к серверу OAuth2.0 из Thunder Client (Visual Studio Code).
  • Получение токенов в запросах.
  • Прогон тестов на Thunder Client (Visual Studio Code)

Система определений для приложения (Definitions system)

Как использовать Nimble Framework?

  • Позволяет быстро построить безопасную микросервисную архитектуру, защищенную стандартами OAuth2.0. Это значит, что можно использовать разные варианты Authorization Flow. OAuth2.0 реализован OpenIddict (пришёл на замену IdentityServer4)
  • Позволяет быстро получить среду для тестирования межсервисных коммуникаций. (Изначально для этого и создавался Nimble Framework) Представляет базовый набор реализованного функционала для обособленных сервисов (backend, API). То есть можно создать backend для вашего SPA из любого шаблона.
  • Nimble Framework предоставляет примеры реализаций разных механизмов, паттернов, принципов.
  • Nimble Framework предоставляет примеры инфраструктуры проектов и зависимости между ними.

Видео

Ссылки

GitHub https://github.com/Calabonga/Microservice-Template

Благодарности и помощь каналу

Мои видео можно найти