Библиотека шарписта | C#, F#, .NET, ASP.NET
Все самое полезное для C#-разработчика в одном канале. Наши курсы: https://clc.to/y3LDtw По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Ko'proq ko'rsatish📈 Telegram kanali Библиотека шарписта | C#, F#, .NET, ASP.NET analitikasi
Библиотека шарписта | C#, F#, .NET, ASP.NET (@csharpproglib) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 21 687 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 5 949-o'rinni va Rossiya mintaqasida 30 265-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 21 687 obunachiga ega bo‘ldi.
31 Avgust, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -56 ga, so‘nggi 24 soatda esa -12 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 17.05% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 7.97% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 3 698 marta ko‘riladi; birinchi sutkada odatda 1 728 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 23 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent .net, шарписта, навигация, await, string kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Все самое полезное для C#-разработчика в одном канале.
Наши курсы: https://clc.to/y3LDtw
По рекламе: @proglib_adv
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 01 Sentabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
dotnet add package Temporalio2. Настраиваем клиент Temporal.io
var client = await TemporalClient.ConnectAsync(new TemporalClientConnectOptions
{
TargetHost = "localhost:7233"
});
TargetHost — это адрес сервера Temporal, который управляет процессами.
3. Создаем Workflow
[Workflow]
public class MyWorkflow
{
public async Task<string> RunAsync(string name)
{
return $"Hello, {name}!";
}
}
Workflow — это логика, которая будет управляться Temporal.
4. Запускаем Workflow из .NET-кода
var handle = await client.StartWorkflowAsync(
(MyWorkflow wf) => wf.RunAsync("Temporal.io"),
new WorkflowOptions("my-workflow"));
Console.WriteLine($"Workflow started: {handle.Id}");
Temporal автоматически отслеживает состояние процесса, перезапускает его при сбоях и масштабирует при необходимости.
Temporal.io + .NET = надежная система, где даже долгие процессы не теряются, не ломаются и автоматически восстанавливаются
📎 Подробнее в статье
🐸Библиотека шарпистаShuffle() в IEnumerable<T>. Будем ждать в одном из следующих релизов .NET
Пример будущего кода:
var shuffledItems = items.Shuffle();
Подробности:
🔗 Обсуждение необходимости метода
🔗 Реализация в .NET
🐸Библиотека шарпистаSetupSequence().
🛠 Как это работает
Допустим, у нас есть интерфейс IMyInterface с методом MyMethod(), который вызывается несколько раз. Вместо обычного Setup() мы используем SetupSequence(), чтобы задать разные результаты:
var mock = new Mock<IMyInterface>();
mock.SetupSequence(m => m.MyMethod())
.Returns(1)
.Returns(2)
.Throws(new Exception("Ошибка"));
Это удобно при тестировании кеширования, ретраев, обработки ошибок или сложных зависимостей.
➡️ Подробнее о SetupSequence и примерах использования
🐸Библиотека шарпистаdocker run -d --hostname my-rabbit --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management
2️⃣ Настраиваем MassTransit
Необходимо зарегистрировать MassTransit и подключить его к RabbitMQ:
builder.Services.AddMassTransit(x =>
{
x.UsingRabbitMq((context, cfg) =>
{
cfg.Host("localhost", "/", h =>
{
h.Username("guest");
h.Password("guest");
});
});
});
Этот код создает подключение к RabbitMQ, которое позволяет сервису отправлять и получать сообщения.
3️⃣ Создаем производителя
Производитель отправляет сообщения в очередь, используя MassTransit:
public async Task SendMessage(IBus bus, string message)
{
var endpoint = await bus.GetSendEndpoint(new Uri("queue:order-queue"));
await endpoint.Send(new OrderCreated { OrderId = Guid.NewGuid(), Message = message });
}
4️⃣ Создаем потребителя
Потребитель автоматически получает и обрабатывает сообщения из очереди:
public class OrderConsumer : IConsumer<OrderCreated>
{
public Task Consume(ConsumeContext<OrderCreated> context)
{
Console.WriteLine($"Получено сообщение: {context.Message.Message}");
return Task.CompletedTask;
}
}
💾 Сохраняйте мини-гайд себе, чтобы не потерять
📎 Подробный гайд в источнике
🐸Библиотека шарпистаapi.nuget.org/v3/index.json.
Этот URL — официальный репозиторий пакетов NuGet, поддерживаемый Microsoft
➖ Работа с NuGet в .NET CLI
Установка пакета:
dotnet add package Newtonsoft.JsonОбновление пакетов:
dotnet restore
Удаление пакета:
dotnet remove package Newtonsoft.Json➡️ Подробнее на официальном сайте 🐸Библиотека шарписта
using KnightMoves.SqlObjects;
var sql = TSQL
.SELECT()
.STAR()
.FROM("Products")
.Build();
Console.WriteLine(sql);
В итоге получится запрос:
SELECT * FROM Products;
➡️ Документация библиотеки
🐸Библиотека шарпистаglobal:
scrape_interval: 5s # Интервал опроса метрик
scrape_configs:
- job_name: 'dotnet_app'
metrics_path: '/metrics' # Эндпоинт, откуда брать метрики
static_configs:
- targets: ['host.docker.internal:5000'] # Адрес .NET приложения
2️⃣ Запускаем Grafana — она подключается к Prometheus и строит дашборды с данными о загрузке CPU, памяти и запросах.
3️⃣ Используем Docker Compose — с его помощью развернём оба сервиса одной командой.
📎 Подробное руководство в статье
🐸Библиотека шарписта