Mds.Libraries.CSharp.Server 10.0.0-beta.191488
Mds.Libraries.CSharp.Server
Общий пакет для работы серверов. Содержит в себе множество инструментов от работы с базой, до помощи в обработке запросов.
Обработчики ошибок (IBugReporter)
Пакет содержит в себе инструменты для удобной обработки ошибок на основе интерфейса IBugReporter из пакета Mds.Libraries.CSharp.Abstractions.
Основные классы:
SlackBugReporter- отправка отчетов об ошибках в слак.ConsoleBugReporter- вывод отчета об ошибках в консоль.CompositeBugReporter- отправка отчета об ошибках во все каналы.
При добавлении SlackBugReporter и ConsoleBugReporter используются флаги ReporterTypeFlags. Они отвечают за то, в каком виде тот или иной репортер будет зарегистрирован.
ReporterTypeFlags
None- Не регистрировать ни в каком виде.Independent- Регистрировать в качестве самостоятельного обработчика ошибок.Channel- Регистрировать в качестве канала для отправки отчетов об ошибках.
Composite
Для доставки отчета об ошибках в несколько каналов используется CompositeBugReporter.
Добавление через Autofac:
public void Add(ContainerBuilder builder)
{
builder.AddCompositeReporter();
}
Или через IServiceCollection:
public void Add(IServiceCollection services)
{
services.AddCompositeReporter();
}
Логика его работы подразумевает, что он запрашивает все реализации IExceptionReportChannel в scope и в каждый отправляет уведомление об ошибке.
IExceptionReportChannel
Для реализации функционала, когда каналов доставки отчетом об ошибках много, добавлен интерфейс IExceptionReportChannel. Он аналогичен IBugReporter. Добавлен он для разделения самостоятельных обработчиков и каналов для отправки уведомлений.
Для того, чтобы стандартные репортеры были зарегистрированы в качестве канала для доставки уведомлений, при регистрации необходимо указывать флаг ReporterTypeFlags.Channel.
Slack
Для регистрации обработчика ошибок с отправкой данных в Slack, нужно.
Через Autofac:
public void Add(ContainerBuilder builder)
{
var hook = "";
var appName = "";
builder.AddSlackReporter(hook, appName);
}
Или через IServiceCollection:
public void Add(IServiceCollection services)
{
var hook = "";
var appName = "";
services.AddSlackReporter(hook, appName);
}
Так же можно добавить репортер через SlackBugReporterConfiguration или через реализацию одного из интерфейсов: ISlackBugReporterConfiguration или IExtendedSlackBugReporterConfiguration.
SlackBugReporterConfiguration:
public void Add(ContainerBuilder builder)
{
var hook = "";
var appName = "";
var configuration = new SlackBugReporterConfiguration(hook)
{
AppName = appName
};
builder.AddSlackReporter(configuration);
}
ISlackBugReporterConfiguration:
public void Add(ContainerBuilder builder)
{
ISlackBugReporterConfiguration configuration = ...;
builder.AddSlackReporter(configuration);
}
IExtendedSlackBugReporterConfiguration аналогичный интефейс, только с возможностью расширенной настройки доставки и форматирования сообщений. Таких как канал, имя бота и прочее.
Аналогично через IServiceCollection.
Так же при добавлении репортера есть возможность указать в качестве кого будет добавлен репортер. По умолчанию - Independent:
public void Add(ContainerBuilder builder)
{
var hook = "";
var appName = "";
services.AddSlackReporter(hook, appName, ReporterTypeFlags.Independent | ReporterTypeFlags.Channel);
}
Аналогично через IServiceCollection.
Console
Для вывода в консоль информации об ошибках используется ConsoleBugReporter. Он сделан скорее для разработки, чем для реального применения.
Через Autofac:
public void Add(ContainerBuilder builder)
{
services.AddConsoleReporter();
}
Аналогично через IServiceCollection.
Так же при добавлении репортера есть возможность указать в качестве кого будет добавлен репортер. По умолчанию - Independent:
public void Add(ContainerBuilder builder)
{
services.AddConsoleReporter(ReporterTypeFlags.Independent | ReporterTypeFlags.Channel);
}
Аналогично через IServiceCollection.
Sentry
Если в системе подключен Sentry, то его можно подружить с IBugReporter. Для этого надо добавить SentryBugReporter.
Добавление через Autofac:
public void Add(ContainerBuilder builder)
{
builder.AddSentryReporter();
}
Или через IServiceCollection:
public void Add(IServiceCollection services)
{
services.AddSentryReporter();
}
Аналогично есть механизм с ReporterTypeFlags:
public void Add(ContainerBuilder builder)
{
services.AddSentryReporter(ReporterTypeFlags.Independent | ReporterTypeFlags.Channel);
}
Подключение
Подключение репортера подразумевает, что в системе уже настроена интеграция с Sentry.
Обычно для этого надо сделать
Program.cs
public static void Main(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
// Подключение Sentry
.UseSentry() // или .UseSentry(option => {})
.UseStartup<Startup>();
.Build()
}
и
В Mds шаблонах это Configurations.cs, у вас может быть другой файл
public void Configure(IApplicationBuilder app)
{
app.UseSentryTracing();
app.UseRouting();
app.UseEndpoints(endpoints => {});
}
После этого уже можно добавлять SentryBugReporter стандартным способом.
Showing the top 20 packages that depend on Mds.Libraries.CSharp.Server.
| Packages | Downloads |
|---|---|
|
Mds.Cdn.Api.Client
Апи клиент для работы с Mds.Cdn.
|
7 |
|
Mds.Cdn.Sdk
Апи клиент для работы с Mds.Cdn.
|
4 |
|
Mds.Cdn.Sdk
Апи клиент для работы с Mds.Cdn.
|
7 |
|
Mds.Cdn.Sdk
Апи клиент для работы с Mds.Cdn.
|
9 |
|
Mds.Libraries.CSharp.ChangesBus
Пакет для интеграции шины для обновления сущностей.
|
5 |
|
Mds.Libraries.CSharp.ChangesBus
Пакет для интеграции шины для обновления сущностей.
|
6 |
|
Mds.Libraries.CSharp.Db.Mongo
Пакет для удобной работы с mongoDb.
|
1 |
|
Mds.Libraries.CSharp.Db.Mongo
Пакет для удобной работы с mongoDb.
|
2 |
|
Mds.Libraries.CSharp.MutexContainer
Пакет удобное работы для синхронизации работы над одной сущностью.
|
6 |
.NET 7.0
- Mds.Libraries.CSharp.Abstractions (>= 3.0.0)
- Mds.Libraries.CSharp.Extensions (>= 4.0.0)
- Mds.Libraries.CSharp.Updates (>= 7.0.1)
- Microsoft.EntityFrameworkCore (>= 7.0.20)
- Newtonsoft.Json (>= 13.0.3)
- Sentry.AspNetCore (>= 3.30.0)
- System.Net.Http (>= 4.3.4)
| Version | Downloads | Last updated |
|---|---|---|
| 10.1.0 | 2 | 06/25/2026 |
| 10.0.0 | 4 | 05/17/2026 |
| 10.0.0-beta.198142 | 1 | 06/25/2026 |
| 10.0.0-beta.191488 | 4 | 05/17/2026 |
| 9.0.1 | 28 | 02/28/2026 |
| 9.0.0 | 6 | 02/28/2026 |
| 9.0.0-beta.122950 | 4 | 02/28/2026 |
| 8.7.1 | 6 | 02/28/2026 |
| 8.7.0 | 6 | 02/28/2026 |
| 8.7.0-beta.110592 | 5 | 02/28/2026 |
| 8.7.0-beta.110590 | 4 | 02/28/2026 |
| 8.7.0-beta.110456 | 4 | 02/28/2026 |
| 8.7.0-beta.110431 | 5 | 02/28/2026 |
| 8.7.0-beta.110426 | 4 | 02/28/2026 |
| 8.7.0-beta.110424 | 5 | 02/28/2026 |
| 8.7.0-beta.110379 | 4 | 02/28/2026 |
| 8.7.0-beta.110373 | 4 | 02/28/2026 |
| 8.7.0-beta.110349 | 4 | 02/28/2026 |
| 8.7.0-beta.110214 | 4 | 02/28/2026 |
| 8.7.0-beta.110212 | 5 | 02/28/2026 |
| 8.7.0-beta.110209 | 4 | 02/28/2026 |
| 8.7.0-beta.110196 | 4 | 02/28/2026 |
| 8.7.0-beta.103522 | 4 | 02/28/2026 |
| 8.7.0-beta.103519 | 4 | 02/28/2026 |
| 8.7.0-beta.103510 | 4 | 02/28/2026 |
| 8.7.0-beta.103506 | 6 | 02/28/2026 |
| 8.7.0-beta.103502 | 5 | 02/28/2026 |
| 8.6.2 | 7 | 02/28/2026 |
| 8.6.0 | 4 | 02/28/2026 |
| 8.6.0-beta.105697 | 6 | 02/28/2026 |
| 8.6.0-beta.88070 | 4 | 02/28/2026 |
| 8.5.0 | 4 | 02/28/2026 |
| 8.5.0-beta.88057 | 5 | 02/28/2026 |
| 8.4.1 | 5 | 02/28/2026 |
| 8.4.1-beta.105685 | 5 | 02/28/2026 |
| 8.4.1-beta.86789 | 5 | 02/28/2026 |
| 8.4.0 | 4 | 02/28/2026 |
| 8.3.1 | 5 | 02/28/2026 |
| 8.3.0 | 7 | 02/28/2026 |
| 8.3.0-beta.65967 | 6 | 02/28/2026 |
| 8.3.0-beta.65962 | 6 | 02/28/2026 |
| 8.2.1 | 4 | 02/28/2026 |
| 8.2.0 | 4 | 02/28/2026 |
| 8.1.0 | 5 | 02/28/2026 |
| 8.0.5 | 5 | 02/28/2026 |
| 8.0.3 | 6 | 02/28/2026 |
| 8.0.3-beta.14759 | 4 | 02/28/2026 |
| 8.0.2 | 5 | 02/28/2026 |
| 8.0.1 | 4 | 02/28/2026 |
| 8.0.0 | 5 | 02/28/2026 |
| 7.0.1 | 7 | 02/28/2026 |
| 7.0.1-beta.6491 | 5 | 02/28/2026 |
| 7.0.1-beta.5494 | 4 | 02/28/2026 |
| 7.0.0-beta.2117 | 5 | 02/28/2026 |
| 6.6.0 | 5 | 02/28/2026 |
| 6.4.4 | 5 | 02/28/2026 |
| 6.4.0 | 5 | 02/28/2026 |
| 6.2.1 | 4 | 02/28/2026 |