uz
Feedback
C# (C Sharp) programming

C# (C Sharp) programming

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish

📈 Telegram kanali C# (C Sharp) programming analitikasi

C# (C Sharp) programming (@csharp_ci) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 18 302 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 7 331-o'rinni va Rossiya mintaqasida 36 951-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 18 302 obunachiga ega bo‘ldi.

11 Iyun, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -27 ga, so‘nggi 24 soatda esa 6 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 16.94% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 8.35% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 3 100 marta ko‘riladi; birinchi sutkada odatda 1 528 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 0 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent .net, api, логика, архитектура, string kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ

Yuqori yangilanish chastotasi (oxirgi ma’lumot 12 Iyun, 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.

18 302
Obunachilar
+624 soatlar
-27 kunlar
-2730 kunlar
Postlar arxiv
⚡️ 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(). 🧩 Пример из картинки показывает оба подхода — выберите тот, что лучше вписывается в вашу архитектуру.