C# (C Sharp) programming
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ
Показати більше📈 Аналітичний огляд Telegram-каналу C# (C Sharp) programming
Канал C# (C Sharp) programming (@csharp_ci) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 18 307 підписників, посідаючи 7 338 місце в категорії Технології та додатки та 36 903 місце у регіоні Росія.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 18 307 підписників.
За останніми даними від 12 червня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -16, а за останні 24 години на 5, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 18.53%. Протягом перших 24 годин після публікації контент зазвичай збирає 7.49% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 3 393 переглядів. Протягом першої доби публікація в середньому набирає 1 371 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 0.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як .net, api, логика, архитектура, string.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“По всем вопросам- @notxxx1
Реестр РКН: https://clck.ru/3Fk3kb
#VRHSZ”
Завдяки високій частоті оновлень (останні дані отримано 13 червня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
dotnet new web -n Demo
cd Demo
dotnet add package HotChocolate.AspNetCore
🧱 Шаг 2: Настройка GraphQL
В файле Program.cs добавь следующее:
var builder = WebApplication.CreateBuilder(args);
builder.Services
.AddGraphQLServer()
.AddQueryType<Query>();
var app = builder.Build();
app.MapGraphQL();
app.Run();
Создай класс Query.cs:
public class Query
{
public Book GetBook() => new Book
{
Title = "C# in Depth",
Author = new Author { Name = "Jon Skeet" }
};
}
И добавь модели:
public class Book
{
public string Title { get; set; }
public Author Author { get; set; }
}
public class Author
{
public string Name { get; set; }
}
📬 Шаг 3: Запрос в браузере
Открой http://localhost:5000/graphql и выполни GraphQL-запрос:
{
book {
title
author {
name
}
}
}
🧠 Почему стоит выбирать Hot Chocolate?
- Поддержка annotation-based, code-first и schema-first подходов
- Отличная интеграция с EF Core
- Встроенная фильтрация, сортировка, пагинация, DataLoader
- Поддержка подписок (Subscriptions)
- Интерактивная IDE: Banana Cake Pop
📌 Полезные советы
Для продакшена отключи Banana Cake Pop, GET-запросы и интроспекцию
Используй .AddMutationType, .AddSubscriptionType, .AddFiltering, .AddSorting для расширения схемы
🚀 Полный гайд
Hot Chocolate — это простой способ внедрить GraphQL в .NET. Он удобен в настройке, гибкий в использовании и подходит для проектов любого масштаба.
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
var tasks = new List<Task>();
for (int i = 0; i < 5; i++)
{
tasks.Add(Task.Run(() => Console.WriteLine($"Значение i = {i}")));
}
await Task.WhenAll(tasks);
}
}
Вопросы:
Что выведет эта программа при запуске и почему?
Как минимально изменить код (не затрагивая содержимое Task.Run), чтобы на консоль выводились числа от 0 до 4 (по одному разу каждое)?
Подсказка: лямбда внутри Task.Run замыкает переменную i, а не её текущее значение.
@csharp_cigenerics
• C# 3.0 — революция LINQ, lambda`-выражения, автоматические свойства, `var
• C# 4.0 — dynamic, улучшения COM и переговорчивость аннотации
• C# 5.0 — async/await — асинхронность для всех
• C# 6.0 — улучшения синтаксиса: string interpolation, expression-bodied members, null-условные выражения
• C# 7.x — tuples, pattern matching, ref locals, out variables
• C# 8.0 — nullable reference types, ranges/indices, асинхронные потоки
• C# 9.0 — record, init-only properties, top-level statements
• C# 10 — глобальные using, file-scoped namespace, улучшенные структуры
• C# 11 — raw string literals, generic math, pattern matching improvements
• C# 12 и далее — ожидаются расширенные метапрограммирование, списочные выражения, улучшения в безопасность и производительности
🔧 Почему это важно:
• Язык постоянно развивается, становясь выразительнее, безопаснее и удобнее
• Новые версии дают мощные инструменты — для асинхронного программирования, функционального стиля и более чистого кода
• Понимание изменений помогает быстрее адаптироваться к трендам и выбирать актуальный инструментальный стек
💡 Если вы разрабатываете на C#, стоит ознакомиться с историей версий — и понять, какие фичи уже доступны, а что стоит ожидать в будущем.
👉 Подробнее
@csharp_ci
#dotnet #csharp #programming #developer #language #whatsnew #technologyBackgroundService и PeriodicTimer. Ни Hangfire, ни Quartz не нужны, если всё просто.
🧱 Основные шаги:
1. ✅ Включаем конкурентный запуск/остановку сервисов:
builder.Services.Configure<HostOptions>(o =>
{
o.ServicesStartConcurrently = true;
o.ServicesStopConcurrently = true;
});
2. 🌀 Реализуем фоновую задачу:
public class PeriodicBackgroundTask : BackgroundService
{
private readonly TimeSpan _period = TimeSpan.FromSeconds(5);
private readonly ILogger<PeriodicBackgroundTask> _logger;
public PeriodicBackgroundTask(ILogger<PeriodicBackgroundTask> logger)
{
_logger = logger;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
using PeriodicTimer timer = new PeriodicTimer(_period);
while (!stoppingToken.IsCancellationRequested &&
await timer.WaitForNextTickAsync(stoppingToken))
{
_logger.LogInformation("Executing PeriodicBackgroundTask");
}
}
}
📌 Особенности:
- BackgroundService — стандартный способ запускать фоновые задачи в ASP.NET Core
- PeriodicTimer — простой способ повторять с задержкой
- Встроенный контроль остановки через CancellationToken
💡 Подходит для:
• Регулярных проверок
• Очистки кэша
• Периодических sync-задач
#aspnetcore #dotnet #backgroundjobs #csharp #devOpenTelemetry.Extensions.Hosting OpenTelemetry.Instrumentation.AspNetCore OpenTelemetry.Instrumentation.Http OpenTelemetry.Exporter.OpenTelemetryProtocol- В
Program.cs:
builder.Services.AddOpenTelemetry()
.ConfigureResource(r => r.AddService("MyService"))
.WithTracing(t => t
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddOtlpExporter()
);
builder.Logging.AddOpenTelemetry(lo => lo.AddOtlpExporter());
- Настраиваем экспорт через OTLP в Grafana Cloud — задаём endpoint и токен
📊 Что получаем:
- Полный стек наблюдаемости: метрики, логи, трассировки в одном интерфейсе
- Графаны Dashboard — красивые дашборды + оповещения при проблемах
- Глубокий анализ: сквозные запросы, задержки, узкие места
🎯 Почему это стоит использовать:
- Вендорно-нейтральное решение — работает с разными платформами
- Начальный уровень бесплатно в Grafana Cloud
- Настройка занимает минимум времени — максимальная отдача
@csharp_ci
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
