Byndyusoft.DotNet.Web.ProjectTemplate 2.1.0

dotnet new install Byndyusoft.DotNet.Web.ProjectTemplate::2.1.0
This package contains a .NET Template Package you can call from the shell/command line.

Шаблон сервиса .NET Core

Что включает?

Шаблон включает:

  • Настройка swagger
  • Пакет для трассировки http-запросов Byndyusoft.AspNetCore.Instrumentation.Tracing
  • Пакет для логирования Byndyusoft.Logging
  • Пакет для работы с БД Byndyusoft.Data.Relational
  • Пакет для маскирования чувствительных данных в логах и в трассировке Byndyusoft.MaskedSerialization
  • Хэлчеки через метод /healthz
  • Подключены OpenTelemetry Tracing & Metrics. Добавлены основные инструменты для метрик. Добавлен пример для метрик приложения.

Проекты:

  • Domain - бизнес-логика приложения
  • DataAccess - слой доступа к данным
  • Migrator - мигратор базы данных на основе https://github.com/fluentmigrator/fluentmigrator
  • Api - веб-апи приложения
  • Api.Client - клиент для веб-апи, расширение для подключения клиента в потребителе
  • Api.Contracts - контракты для веб-апи и клиента
  • IntegrationTests - интеграционные тесты на веб-апи
  • UnitTests - юнит-тесты

Как использовать шаблон?

Установка шаблона из nuget.org

Установка шаблона из nuget в консоли Windows:

dotnet new --install Byndyusoft.DotNet.Web.ProjectTemplate

В списке должен появиться шаблон с коротким именем bsapi.

Создание нового сервиса из шаблона (выполнять в пустой директории)

dotnet new bsapi -o {Название директории}

Примечание: Название сервиса будет совпадать с названием директории. С полным списком опций, вы можете ознакомиться тут.

Проект готов к использованию!

Установка шаблона из файла пакета .nupkg.

Создание nuget пакета для шаблона в корне:

dotnet pack

Вместо создания пакета его можно скачать из nuget.org.

Установка шаблона из созданного нами пакета:

dotnet new --install .\Byndyusoft.Template.1.3.6.nupkg

Примечание: Версия может отличаться.

Создание нового сервиса из шаблона

dotnet new bsapi -o {Название директории}

Примечание: Название сервиса будет совпадать с названием директории. С полным списком опций, вы можете ознакомиться тут.

Проект готов к использованию!

Пример с метриками

В коде был добавлен пример с метриками, которые определяются в классе ApiTemplateMetrics.cs.

В этом классе добавлены поля (терминология взята из OpenTelemetry Metrics API):

  • Name - наименование meter (измеритель).
  • DurationName - наименование instrument (инструмента).
  • DurationBuckets - границы бакетов, используются в настройке отображения метрик в классе MeterProviderBuilderExtensions.cs.

Настройки проекта

Фильтрация запросов для трассировки

В проекте добавлены список запросов, которые не будут попадать в трассироку. Они описаны в файле TracerProviderBuilderExtensions.cs:

var ignoredSegments = new[] { "/swagger", "/favicon", "/healthz", "/metrics" };

Если нужно игнорировать какие-то дополнительные запросы, то их можно добавить в список в этом классе.

Интеграция OpenTelemetry с JaegerTracing

Для интеграции нужно использовать класс JaegerPropagator.

Пример использования Propagator для RabbitMq.

Maintainers

github.maintain@byndyusoft.com

  • .NETStandard 2.1

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.1.0 4,273 10/16/2023
2.1.0-rc1 173 10/16/2023
2.0.1 294 10/12/2023
2.0.0 210 9/21/2023
1.3.7 273 8/18/2023
1.3.6 185 7/24/2023
1.3.5 143 7/24/2023
1.3.4 170 7/4/2023
1.3.3 134 7/3/2023
1.3.2 143 6/30/2023
1.3.1 130 6/30/2023
1.3.0 133 6/29/2023
1.2.0 120 6/29/2023