en
Feedback
C# (C Sharp) programming

C# (C Sharp) programming

Open in Telegram

По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ

Show more

📈 Analytical overview of Telegram channel C# (C Sharp) programming

Channel C# (C Sharp) programming (@csharp_ci) in the Russian language segment is an active participant. Currently, the community unites 18 302 subscribers, ranking 7 331 in the Technologies & Applications category and 36 951 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 18 302 subscribers.

According to the latest data from 11 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -27 over the last 30 days and by 6 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 16.94%. Within the first 24 hours after publication, content typically collects 8.35% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 3 100 views. Within the first day, a publication typically gains 1 528 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 0.
  • Thematic interests: Content is focused on key topics such as .net, api, логика, архитектура, string.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ

Thanks to the high frequency of updates (latest data received on 12 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

18 302
Subscribers
+624 hours
-27 days
-2730 days
Posts Archive
⚡️ Cursor-пагинация действительно очень быстрая - в тестах она оказалась в 17 раз быстрее**, чем классическая offset-пагинаци
⚡️ Cursor-пагинация действительно очень быстрая - в тестах она оказалась в 17 раз быстрее**, чем классическая offset-пагинация. Но использовать её нужно не всегда. Вот почему. Что такое cursor-пагинация Она работает через «точку отсчёта» - курсор. Это может быть уникальный идентификатор или набор полей, по которым сортируются записи. Фронтенд передаёт курсор, и сервер возвращает следующую порцию данных, начиная строго после него. Почему она быстрая - Серверу не нужно пересчитывать offset и пропускать тысячи строк. - Он просто выбирает данные «после курсора». - Это даёт стабильную производительность даже на больших таблицах. Но есть нюанс Cursor-пагинация отлично подходит для: - лент обновлений - real-time интерфейсов - бесконечной прокрутки Но если пользователи почти всегда открывают только первую страницу, а далее почти не переходят, то обычная offset-пагинация будет проще и тоже очень быстрой. Для многих приложений это нормальный и достаточный вариант. Вот подробный разбор с реализацией и тестами.

🔥 C# Pattern Matching — делает ваш код чище Вместо громоздких проверок вида: if (user != null && user.Name.Length > 0 && use
🔥 C# Pattern Matching — делает ваш код чище Вместо громоздких проверок вида:

if (user != null &&
    user.Name.Length > 0 &&
    user.Subscription != null)
{
    // ...
}

C# позволяет писать проще и выразительнее:

if (user is { Name.Length > 0, Subscription: not null })
{
    // ...
}
✨ Что изменилось? ✔️ Нет ручных проверок на null - компилятор сам учитывает это в выражении ✔️ Условие читается как описание объекта, а не как набор проверок ✔️ Логика становится компактнее и легче сопровождается Используйте pattern matching, чтобы избавляться от лишнего шума и писать более понятный код.

Почти 50 процентов разработчиков сталкиваются с утечками памяти в EF Core. И причина у большинства одна и та же. ❌ Ошибочное
Почти 50 процентов разработчиков сталкиваются с утечками памяти в EF Core. И причина у большинства одна и та же. ❌ Ошибочное управление временем жизни DbContext Многие регистрируют DbContext как scoped и считают что этого достаточно. На деле всё сложнее. - DbContext не потокобезопасен. Делить один экземпляр между потоками приводит к исключениям. - DbContext лёгкий и должен жить недолго. Создавай его часто, освобождай сразу. - Неверная работа с контекстом ведёт к росту памяти и утечкам. ✅ Решения которые уже есть в EF Core IDbContextFactory Позволяет безопасно создавать контексты по запросу. Подходит для фоновых задач, многопоточности и десктоп приложений. DbContext Pooling Переиспользует заранее подготовленные экземпляры. Сбрасывает состояние после использования, снижает нагрузку на память и процессор. Pooled DbContextFactory Комбинирует фабрику и пул. Даёт контексты по запросу и эффективно их переиспользует. ⚠️ Правила которые нельзя нарушать - Никогда не дели DbContext между потоками. - Всегда освобождай контекст с помощью using или возврата в пул. Грамотное управление жизненным циклом DbContext повышает стабильность и масштабируемость и убирает скрытые утечки памяти которые годами портят EF Core проекты. https://antondevtips.com/blog/top-10-mistakes-developers-make-in-ef-core/

44 000 000+ операций c товарами осуществляется на складских объектах Ozon. Лучший способ влиять на то, как эти товары находят
44 000 000+ операций c товарами осуществляется на складских объектах Ozon. Лучший способ влиять на то, как эти товары находят дорогу к покупателям, — откликнуться на одну из этих вакансий. ✔️В команду расписания и отгрузки магистрали: Руководитель группы разработки C# Старший C#-разработчик ✔️В команду коммерциализации логистики: Старший C#-разработчик ✔️В команду учётной интеграции и претензионной работы: Руководитель группы разработки C# Старший C#-разработчик C#-разработчик Удачи на интервью! 🍀

⚡️ Annotation Toolkit помогает дизайнерам прямо в макете объяснить, как должны работать элементы интерфейса. Проще говоря, он
⚡️ Annotation Toolkit помогает дизайнерам прямо в макете объяснить, как должны работать элементы интерфейса. Проще говоря, он позволяет: подписывать элементы: что кликается, что меняется, как ведёт себя при разной ширине экрана; сразу указать требования по доступности: например, какой alt-текст нужен или что должно быть доступно с клавиатуры; убрать путаницу при передаче макета разработчикам, чтобы они точно понимали задумку. Почему это важно: Почти половина ошибок по доступности появляется только потому, что дизайнеры и разработчики по-разному понимают поведение элемента. Если зафиксировать эти детали заранее - проблемы просто не возникнут. https://github.blog/enterprise-software/collaboration/level-up-design-to-code-collaboration-with-githubs-open-source-annotation-toolkit/

🖥 Async-блокировки в C# - тема, на которой часто «ловят» на собеседованиях. Синхронный lock не работает с async/await, и мно
🖥 Async-блокировки в C# - тема, на которой часто «ловят» на собеседованиях. Синхронный lock не работает с async/await, и многие пытаются заменить его чем угодно, лишь бы компилилось. Правильный путь — использовать SemaphoreSlim с WaitAsync, как на примере: он позволяет ограничивать конкуренцию и работает корректно в асинхронном коде. Главное — всегда освобождать семафор в finally и не забывать про таймауты, чтобы не создавать висячие блокировки. Асинхронная синхронизация — это не магия, а аккуратность и понимание того, как работает планировщик задач в .NET.

Что выведет на экран этот код?
Anonymous voting

#ПятничныйКвиз
#ПятничныйКвиз

🎮 Создайте игры с s&box! s&box — это современный игровой движок на основе Source 2 от Valve и новейших технологий .NET. Он п
🎮 Создайте игры с s&box! s&box — это современный игровой движок на основе Source 2 от Valve и новейших технологий .NET. Он предлагает интуитивно понятный редактор для разработки игр и предоставляет возможность компилировать движок из исходников для тех, кто хочет внести свой вклад в его развитие. 🚀 Основные моменты: - Современный игровой движок с мощным редактором. - Основан на Source 2 и .NET технологиях. - Поддержка разработки и компиляции из исходников. - Полная документация и обучающие материалы доступны онлайн. 📌 GitHub: https://github.com/Facepunch/sbox-public #csharp

⚡️ Hunyuan 3D Engine Новый высокоточный ИИ-движок сокращает производство коммерческих 3D-ассетов с недель до нескольких минут. Платформа поддерживает создание объектов из текста, изображений с мультивидовой реконструкцией и даже из простых скетчей. Это делает процесс максимально гибким и доступным как художникам, так и командам в индустрии. Качество отвечает профессиональному уровню. Новый 3D-DiT модельный стек обеспечивает трёхкратный прирост точности и выдаёт ультра-HD разрешение. Форматы OBJ и GLB легко подключаются к Unreal Engine, Unity и Blender. Модель также доступна через Tencent Cloud International. Платформа даёт новым авторам 20 бесплатных генераций в день. Корпоративные клиенты получают 200 бесплатных кредитов при регистрации. Попробовать движок можно на 3d.hunyuanglobal.com API: tencentcloud.com/products/ai3d #AI #3D #Hunyuan3D #Tencent #AItools #3Dgeneration

Как сделать .NET-приложения устойчивыми с помощью Polly Polly — это мощная библиотека для обработки сбоев и нестабильных сете
Как сделать .NET-приложения устойчивыми с помощью Polly Polly — это мощная библиотека для обработки сбоев и нестабильных сетевых вызовов в .NET. С её помощью можно легко добавить retry, timeout, circuit breaker и другие стратегии отказоустойчивости. На картинке показан пример, где применяется два ключевых механизма: 1) Retry (повтор запроса при ошибках) — Обрабатываем конфликты через Handle<ConflictException>() — Делаем паузу между попытками (`Delay = 1 сек`) — Используем экспоненциальный backoff — Добавляем jitter, чтобы избежать «шторма» повторов — Ограничиваем количество попыток (`MaxRetryAttempts = 2`) 2) Timeout (ограничение времени выполнения) — Ставим таймаут в 10 секунд на сетевой запрос Далее создаётся pipeline и выполняется HTTP-запрос: await pipeline.ExecuteAsync(async ct ⇒ await httpClient.GetAsync("https://modularmonolith.com", ct)); Эти две стратегии уже дают серьёзную устойчивость: запросы не зависают, ошибки перехватываются, приложение остаётся стабильным даже при нестабильных сервисах. https://github.com/App-vNext/Polly

Что выведет на экран это код?
Anonymous voting

#ПятничныйКвиз
#ПятничныйКвиз

✔️ Задача C# и ASP.NET Core В проде под нагрузкой периодически "умирает" интеграция с внешним сервисом оплаты: в логах всплыв
✔️ Задача C# и ASP.NET Core В проде под нагрузкой периодически "умирает" интеграция с внешним сервисом оплаты: в логах всплывают TimeoutException и SocketException: "Only one usage of each socket address...". Фрагмент кода из сервисного слоя:

public class PaymentClient
{
    private readonly string _baseUrl;

    public PaymentClient(string baseUrl)
    {
        _baseUrl = baseUrl;
    }

    public async Task<bool> ChargeAsync(ChargeRequest request)
    {
        using var http = new HttpClient();
        http.BaseAddress = new Uri(_baseUrl);

        var response = await http.PostAsJsonAsync("/charge", request);
        return response.IsSuccessStatusCode;
    }
}
Под нагрузкой: - растёт количество TIME_WAIT соединений - часть запросов получает timeout - p95 и p99 по этому методу улетают в космос Какой вариант исправления правильный? 1. Увеличить Timeout у HttpClient и ServicePointManager.DefaultConnectionLimit. 2. Сделать HttpClient статическим полем и переиспользовать его во всех запросах. 3. Зарегистрировать HttpClient через IHttpClientFactory и использовать пул подключений, конфигурируя таймауты и политику повторов. Как думаешь, какой вариант правильный?

🖥 Bash Академия: секреты командной строки, которые нигде не рассказывают Олег Шелест - профессионал по информационной безопа
+4
🖥 Bash Академия: секреты командной строки, которые нигде не рассказывают Олег Шелест - профессионал по информационной безопасности, раскрывает скрытые механики Linux, с помощью наглядных картинок и коротких, максимально понятных разборов у себя в тг канале. - Без воды. - Без лишней теории. Только практические приёмы, которые реально используют профи. Если хочешь уверенно владеть Bash - здесь ты получишь всё, что нужно: t.me/bashmastter

✔️ Задача C# и ASP.NET Core В проде под нагрузкой API начинает подвисать, медиана ответа растёт с 40 мс до 400 мс, а иногда и
✔️ Задача C# и ASP.NET Core В проде под нагрузкой API начинает подвисать, медиана ответа растёт с 40 мс до 400 мс, а иногда и выше. Логи показывают, что в горячем месте встречается такой


public async Task<User> GetUserAsync(int id)
{
    using var conn = new SqlConnection(_conn);
    conn.Open(); // 👈 синхронный блокирующий вызов

    var cmd = conn.CreateCommand();
    cmd.CommandText = "SELECT * FROM Users WHERE Id = @id";
    cmd.Parameters.AddWithValue("@id", id);

    using var reader = cmd.ExecuteReader(); // 👈 тоже блокировка

    if (await reader.ReadAsync())
        return Map(reader);

    return null;
}
Под нагрузкой резко растёт: - очередь ThreadPool - количество заблокированных потоков - p99 latency Какой вариант исправления правильный? 1. Заменить ExecuteReader на ExecuteReaderAsync, но оставить conn.Open() как есть. 2. Вынести всё выполнение в Task.Run и пусть код работает на отдельных потоках. 3. Переписать весь путь на асинхронный: использовать OpenAsync, ExecuteReaderAsync и полностью убрать sync-over-async. Как думаешь, какой вариант правильный?

Коллекции .NET: взгляд изнутри Как устроены стандартные коллекции в .NET и почему понимание их внутренней логики помогает пис
Коллекции .NET: взгляд изнутри Как устроены стандартные коллекции в .NET и почему понимание их внутренней логики помогает писать более производительный код? На открытом вебинаре курса OTUS «C# Developer. Advanced» Антон Герасименко покажет, что происходит «под капотом» List, Dictionary и других структур данных. 📆 4 декабря, 20:00 Коллекции .NET: взгляд изнутри: — разберём устройство стандартных коллекций — заглянем в исходный код и объясним, почему они работают именно так — обсудим, когда стоит реализовать собственную структуру данных Вебинар будет полезен разработчикам уровня Junior и выше, которые хотят глубже понимать, как устроены базовые механизмы .NET и как использовать их эффективнее. 👉Зарегистрируйтесь: https://otus.pw/Qrnr/?erid=2W5zFGwFrF2 <div></div><div></div> Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

🖥 Знаешь три типа времени жизни сервисов в .NET? Разбираем их максимально понятно. В ASP.NET Core есть три режима работы сер
🖥 Знаешь три типа времени жизни сервисов в .NET? Разбираем их максимально понятно. В ASP.NET Core есть три режима работы сервисов: 1) Transient Создаются каждый раз, когда ты их запрашиваешь. Подходят для лёгких, stateless-объектов. 2) Scoped Создаются один раз на время одного HTTP-запроса. Все компоненты внутри запроса получают один и тот же экземпляр. Можно вручную создать собственный scope для фоновых задач или отдельной логики. 3) Singleton Создаются один раз на всё время работы приложения. Резолвятся из корневого ServiceProvider. Подходят для тяжёлых объектов и глобального состояния. Важный вопрос Что делать, если внутри Singleton нужно получить Scoped-сервис? Напрямую — нельзя, это ломает жизненный цикл и приводит к ошибкам. Но есть корректный способ сделать это правильно. ⚡️ Подробный разбор здесь.

🛡️ Новая обработка ошибок в .NET 10 - `IExceptionHandler` Обрабатывать исключения теперь можно гибко, читаемо и без хаоса. В
🛡️ Новая обработка ошибок в .NET 10 - `IExceptionHandler` Обрабатывать исключения теперь можно гибко, читаемо и без хаоса. В .NET 10 появился интерфейс IExceptionHandler, который реализует паттерн try- прямо внутри middleware. ### Как это работает? ✅ Ты сам указываешь, какие типы исключений хочешь перехватывать ✅ Если ты обработал ошибку — возвращаешь true, и цепочка остановится ✅ Можно выстроить несколько обработчиков подряд — они вызовутся по очереди, пока один не справится 📦 Это больше не про громоздкие try-catch или тонны if — теперь всё централизовано и масштабируемо. 🔧 Идеально для: - Глобальной обработки ошибок - Разделения логики по типам исключений - Подключения к логгерам, метрикам, retry-логике 📚 Пример кода и объяснение: Подходит всем, кто пишет на ASP.NET Core или строит APIЭ #dotnet #aspnetcore #обработкаошибок #middleware #backend #csharp

💡 EF Core: как правильно настроить контроль конкурентности через RowVersion В EF Core есть два удобных способа указать, что
💡 EF Core: как правильно настроить контроль конкурентности через RowVersion В EF Core есть два удобных способа указать, что сущность должна использовать RowVersion для защиты от гонок при обновлении данных. 🟩 Вариант 1 - через атрибут в модели Просто добавляете свойство типа byte[] и помечаете его [Timestamp]. EF автоматически будет обновлять версию записи и проверять конфликт изменений. 🟦 Вариант 2 - через Fluent API Если не хотите засорять модель атрибутами, то же самое можно описать в OnModelCreating с помощью .IsRowVersion(). 🧩 Пример из картинки показывает оба подхода — выберите тот, что лучше вписывается в вашу архитектуру.

C# (C Sharp) programming - Statistics & analytics of Telegram channel @csharp_ci