C# (C Sharp) programming
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ
Mostrar más📈 Análisis del canal de Telegram C# (C Sharp) programming
El canal C# (C Sharp) programming (@csharp_ci) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 18 305 suscriptores, ocupando la posición 7 337 en la categoría Tecnologías y Aplicaciones y el puesto 36 917 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 18 305 suscriptores.
Según los últimos datos del 11 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -27, y en las últimas 24 horas de 6, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 16.94%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 8.35% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 3 100 visualizaciones. En el primer día suele acumular 1 528 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 0.
- Intereses temáticos: El contenido se centra en temas clave como .net, api, логика, архитектура, string.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“По всем вопросам- @notxxx1
Реестр РКН: https://clck.ru/3Fk3kb
#VRHSZ”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 12 junio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
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
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
