C# (C Sharp) programming
前往频道在 Telegram
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ
显示更多📈 Telegram 频道 C# (C Sharp) programming 的分析概览
频道 C# (C Sharp) programming (@csharp_ci) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 18 065 名订阅者,在 技术与应用 类别中位列第 7 230,并在 俄罗斯 地区排名第 36 482 位。
📊 受众指标与增长动态
自 невідомо 创建以来,项目保持高速增长,吸引了 18 065 名订阅者。
根据 26 十月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -33,过去 24 小时变化为 -8,整体触达仍然可观。
- 认证状态: 未认证
- 互动率 (ER): 平均受众互动率为 18.96%。内容发布后 24 小时内通常能获得 8.27% 的反应,占订阅者总量。
- 帖子覆盖: 每篇帖子平均可获得 3 426 次浏览,首日通常累积 1 494 次浏览。
- 互动与反馈: 受众积极参与,单帖平均反应数为 0。
- 主题关注点: 内容集中在 .net, api, логика, архитектура, string 等核心主题上。
📝 描述与内容策略
作者将该频道定位为表达主观观点的平台:
“По всем вопросам- @notxxx1
Реестр РКН: https://clck.ru/3Fk3kb
#VRHSZ”
凭借高频更新(最新数据采集于 27 十月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。
18 065
订阅者
-824 小时
-127 天
-3330 天
帖子存档
18 065
RabbitMQ в Production: Transactional Outbox, идемпотентность и DLQ в ASP.NET Core
Отправить сообщение в RabbitMQ несложно. Гораздо сложнее сделать так, чтобы система продолжала работать корректно в production: сообщения не терялись, не обрабатывались повторно, а ошибки не приводили к бесконечным ретраям и дублированию данных.
На открытом уроке 17 сентября в 20:00 разберем типичные проблемы при построении событийно-ориентированных систем и рассмотрим проверенные подходы к их решению. Поговорим о паттерне Transactional Outbox, идемпотентности, и покажем, как Dead Letter Queue (DLQ) помогает работать с ошибками. Примеры на ASP.NET Core и RabbitMQ, но подходы применимы и к другим брокерам.
Урок для backend-разработчиков, строящих микросервисные архитектуры, и инженеров, желающих довести event-driven системы до промышленной надежности.
👉 Записаться: https://otus.pw/WXVc1/?erid=2W5zFHyvc6m
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
18 065
Запускать локальные LLM в .NET стало удивительно просто
Про AI в разработке обычно говорят в контексте написания кода, но в .NET нейросети уже можно достаточно легко встраивать прямо в приложения.
Через
Microsoft.Extensions.AI и Ollama локальную модель можно подключить буквально несколькими строками.
Что можно собрать:
- обычный чат
- суммаризацию текста
- классификацию и категоризацию
- распознавание изображений
- свои AI-фичи без отправки данных во внешний API
Особенно интересно, что всё это можно запускать локально: модель работает на вашей машине, а приложение обращается к ней как к обычному сервису.
Примерно так:
builder.Services.AddChatClient(
new OllamaApiClient(
new Uri("http://localhost:11434"),
"phi3:mini"));
Дальше получаем IChatClient и используем его внутри обычного .NET-приложения.
Хороший разбор того, как работать с LLM в .NET через Microsoft.Extensions.AI:18 065
.NET и Владимир: отличный повод совместить митап и выходные в городе с историей
Офлайн-мероприятий для .NET-разработчиков сейчас не так много, а тут получается приятное комбо: встреча с другими разработчиками вечером в пятницу и возможность остаться на выходные в городе с историей.
В программе доклады от разработчиков Altenar и Рови Тех (часть Т-Банка):
— Async/await — асинхронность, которую можно читать.
— Как не терять данные при асинхронной интеграции программных систем.
— EF Core + PostgreSQL: за рамками CRUD.
Кстати, ещё на митапе запланированы активности для программистов: адаптации известных игр ("Сапер", "Крестики-нолики", "Гонки"), где для победы понадобится понимание математики и вероятностей.
Участие бесплатное, а ещё можно сэкономить на проезде — организаторы разыграют несколько билетов на "Ласточку" среди участников.
Для участия в розыгрыше:
1. Зарегистрируйтесь на митап.
2. Напишите «Хочу на .NET-митап на Ласточке» на почту aleksei.korneev@altenar.com с почты, указанной при регистрации.
Итоги розыгрыша подведём 14 сентября.
Регистрируйтесь, планируйте поездку и до встречи во Владимире!
18 065
✔️ Polly становится платной, но у .NET остаётся бесплатная альтернатива
Polly много лет была одной из главных библиотек .NET для устойчивости к временным сбоям: retry, timeout, fallback, rate limiting и circuit breaker.
Теперь Polly движется в сторону платной модели, но
Microsoft.Resilience по-прежнему можно использовать бесплатно.
С .NET 8 работа с resilience стала заметно проще: появился новый API Polly и официальные библиотеки Microsoft для построения resilience pipelines.
Что можно настроить:
- Retry
- Fallback
- Timeout
- Rate limiting
- Circuit breaker
Хороший разбор того, как собирать устойчивые cloud-приложения на современном .NET:
https://milanjovanovic.tech/blog/building-resilient-cloud-applications-with-dotnet18 065
⚡ Refit - удобная альтернатива ручной работе с
HttpClient в .NET
HttpClient отлично подходит для HTTP-запросов, но при неправильном использовании можно столкнуться с проблемами вроде исчерпания сокетов и некорректного обновления DNS. Плюс сериализацию и разбор ответов часто приходится писать вручную.
Refit упрощает это:
- описываешь REST API обычным C#-интерфейсом
- получаешь type-safe клиент
- сериализация и десериализация выполняются автоматически
- под капотом всё равно используется HttpClient
Удобно для проектов, где много внешних API и не хочется писать повторяющийся HTTP-код.
https://github.com/reactiveui/refit18 065
🧩 Как собрать Excel-подобную таблицу в .NET MAUI через Blazor Hybrid
В статье показывают, как встроить полноценный spreadsheet-интерфейс в .NET MAUI-приложение с помощью Blazor Hybrid.
Что получается:
- таблица в стиле Excel
- редактирование ячеек
- формулы и вычисления
- форматирование
- работа с листами
- импорт и экспорт Excel-файлов
- запуск в desktop/mobile-приложении на .NET MAUI
Полезный пример для тех, кто хочет сделать внутри своего приложения редактор таблиц без разработки всего интерфейса с нуля.
https://syncfusion.com/blogs/post/blazor-spreadsheet-dotnet-maui
18 065
🚀 Microsoft показала, как переносить старые приложения с .NET Framework на .NET 10 прямо в Visual Studio с помощью GitHub Copilot.
Copilot теперь помогает пройти модернизацию по шагам:
- анализирует старый проект
- составляет план обновления
- показывает контрольные точки перед изменениями
- помогает переписывать несовместимые части
- сохраняет ход миграции в Markdown-файлах
- делает процесс прозрачнее и проще для проверки командой
Идея в том, чтобы превратить большой и рискованный апгрейд в последовательный сценарий, где разработчик видит, что именно меняется и почему.
Полезно для команд, которые годами откладывали переход со старого .NET Framework из-за объёма ручной работы.
https://devblogs.microsoft.com/visualstudio/today-i-will-modernize-a-net-application/
18 065
ХОЧЕШЬ ПОВЫСИТЬ ГРЕЙД В 2026 ГОДУ? 🚀
Чтобы стать Senior C# разработчиком сегодня, нужно не только знать язык программирования и фреймворки. Нужно уметь строить гибкую архитектуру приложения, которую легко тестировать и менять под задачи бизнеса. Стань экспертом в построении гибкой архитектуры приложения!
👉 Стартуем 7 сентября.
Курс ведет действующий архитектор и Principal Engineer Кирилл Ветчинкин.
Ты научишься:
✅ Разбивать приложение на слои в соответствии с Clean Architecture
✅ Формировать Domain Model и применять тактические паттерны DDD
✅ Реализовывать Use Case как Command/Query
✅ Делать синхронные и асинхронные интеграции, не загрязняя ядро приложения
✅ Писать 3 вида тестов для разных слоев приложения
Полная программа ТУТ 👉 https://microarch.ru/courses/ddd/languages/csharp?utm_source=posev&utm_medium=erid:2Vtzqw4xuPH&utm_campaign=2
А главное — ты с нуля разработаешь и запустишь микросервис, который максимально приближен к реальности "Диспетчеризация заказов на курьеров". Это будет крутым проектом в портфолио или основой для рабочих задач.
А еще:
✅ Проверим все домашки
✅ Поддержим в чате
✅ Проведем живые разборы
✅ Ответим на все вопросы
📕 Сертификат об участии по итогам прохождения курса.
🔥 Не откладывай свой рост на потом: https://microarch.ru/courses/ddd/languages/csharp?utm_source=posev&utm_medium=erid:2Vtzqw4xuPH&utm_campaign=2
Реклама. ИП Ветчинкин К.Е. ИНН: 773376451099 Erid: 2Vtzqw4xuPH
18 065
⚡️ Как нормально работать с конфигурацией в .NET
Значения могут приходить из
appsettings.json, environment variables, User Secrets и других configuration providers.
Можно читать их напрямую через IConfiguration, но такой код быстро становится хрупким и неудобным.
Вместо этого лучше использовать Options Pattern:
* создать класс настроек
* привязать его к секции конфигурации
* получать через IOptions<T>
* добавить валидацию через Data Annotations
Так конфигурация становится типизированной, проще тестируется и меньше ломается при рефакторинге.18 065
ASP .NET Core API под нагрузкой: как сделать сервис устойчивым к сбоям и росту трафика
Пока пользователей мало, API работает быстро. С ростом нагрузки запросы занимают все ресурсы, повторные обращения увеличивают нагрузку, операции продолжаются после отключения клиента, ошибки во внешних сервисах ведут к каскадным отказам.
На открытом уроке 3 сентября в 20:00 разберём защиту API. Возьмём сервис с проблемами, проведём нагрузочное тестирование, найдём узкие места и поэтапно внедрим механизмы защиты. Сравним результаты после каждого изменения. Поговорим о Rate Limiting, контроле параллельных запросов, CancellationToken, Timeout, Circuit Breaker, кешировании в Redis и предотвращении перегрузки повторными попытками.
Урок для C#-разработчиков Web API, backend-инженеров с растущей нагрузкой и всех, кто хочет перейти к production-практикам.
👉 Записаться: https://tglink.io/7fc850528143e7?erid=2W5zFGannvu
#реклама
О рекламодателе
18 065
Как упростить работу с иерархическими данными в Blazor
Обычный
DropDownList удобен для плоских списков, а TreeView хорошо показывает структуру, но занимает много места.
Telerik предлагает промежуточный вариант - DropDownTree.
Он позволяет выбирать элементы из дерева прямо внутри компактного dropdown:
* категории товаров
* структура компании
* файловая система
* регионы
* роли и permissions
Компонент поддерживает вложенные данные напрямую, поиск по дереву, раскрытие нужных узлов и отображение выбранного пути.
Пример:
<TelerikDropDownTree Data="@Data"
@bind-Value="@SelectedValue"
ValueField="TreeItemId"
Filterable="true">
<DropDownTreeBindings>
<DropDownTreeBinding TextField="Text"
ItemsField="Items" />
</DropDownTreeBindings>
</TelerikDropDownTree>
Главное преимущество - не нужно превращать сложную иерархию в огромный плоский список.
Если данные уже представлены как рекурсивный DTO, их часто можно передать компоненту практически напрямую.
Полезный вариант для Blazor-приложений, где пользователь должен выбирать что-то из большого дерева данных, но постоянно держать TreeView на экране нет смысла.
https://telerik.com/blogs/simplify-hierarchical-selection-blazor-telerik-dropdowntree
#aspnetcore #blazor18 065
Microsoft выпустила августовские servicing-обновления для .NET и .NET Framework
Обновления вышли 11 августа 2026 года и включают как security, так и non-security fixes.
Актуальные версии:
- .NET 10.0.11
- .NET 9.0.19
- .NET 8.0.30
В этом месяце Microsoft закрыла сразу несколько уязвимостей в .NET 8, 9 и 10, включая:
- Remote Code Execution
- Elevation of Privilege
- Information Disclosure
- Denial of Service
- Security Feature Bypass
Среди исправлений есть CVE-2026-70354 и CVE-2026-62897, связанные с удалённым выполнением кода.
Обновлены также:
- ASP.NET Core
- Entity Framework Core
- Runtime
- container images
- Linux packages
Для .NET Framework тоже вышли новые security и non-security updates.
Если приложение работает на .NET 8, 9 или 10, августовский servicing update лучше не откладывать, особенно из-за набора security fixes.
Подробнее:
https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-august-2026-servicing-updates/
#aspnetcore #dotnet
18 065
🚀 .NET 8: как сделать микросервисы устойчивыми с Resilience Pipelines + DI
В распределённых системах ошибки — это не исключение, а реальность:
❌ API временно недоступен
❌ сеть дала сбой
❌ сервис перегружен
❌ внешний провайдер отвечает слишком долго
В .NET 8 это стало намного проще благодаря Microsoft.Extensions.Resilience (на базе Polly).
Можно собрать свой ResiliencePipeline и добавить в DI один раз:
✅ Retry — повторить запрос
✅ Timeout — ограничить время ожидания
✅ Circuit Breaker — остановить поток ошибок
✅ Fallback — вернуть запасной результат
✅ Rate Limiter — защитить сервис
✅ Hedging — отправить альтернативный запрос
Главный плюс — не нужно настраивать защиту в каждом месте кода.
Создаёшь pipeline → регистрируешь через DI → используешь где нужно:
var user = await pipeline.ExecuteAsync(
async token => await httpClient.GetAsync("api/users", token)
);
Чистый код, единая стратегия обработки ошибок и меньше боли при росте микросервисов.
Если пишете на C# и строите production-системы — Resilience Pipelines стоит добавить в свой toolbox. ⚙️18 065
Как ограничить количество запросов к API по IP в ASP.NET Core
Встроенный Rate Limiter позволяет сделать это буквально в несколько строк:
builder.Services.AddRateLimiter(options =>
{
options.AddPolicy("fixed-by-ip", httpContext =>
RateLimitPartition.GetFixedWindowLimiter(
partitionKey: httpContext.Connection.RemoteIpAddress?.ToString(),
factory: _ => new FixedWindowRateLimiterOptions
{
PermitLimit = 10,
Window = TimeSpan.FromMinutes(1)
}));
});
В этом примере один IP может сделать максимум 10 запросов за минуту.
Но использовать такой подход вслепую не стоит.
Причина простая: реальные пользователи могут находиться за NAT, прокси или корпоративным шлюзом и иметь один внешний IP. В итоге лимит одного человека начнёт влиять на остальных.
Поэтому для авторизованных пользователей обычно лучше ограничивать запросы по уникальному userId.
А rate limit по IP оставлять для анонимных endpoint'ов, защиты от простых ботов или как дополнительный слой защиты.18 065
⚡️Актуальные темы .NET на DotNext 2026
В .NET одновременно происходит много интересного: C# получает новые возможности, .NET 10 меняет расклад между Native AOT и JIT, а в разработке появляются ИИ-агенты, которые берут на себя часть инженерной работы.
На DotNext 2026 разберем как вещи, которые происходят на уровне машинного кода, так и вполне прикладные вопросы архитектуры и разработки.
📅 25–26 сентября, Москва + online
Выбрали 8 тем из программы, среди которых не только доклады, но и хардкорный воркшоп, чтобы показать этот диапазон:
— как заставить Transactional Outbox одновременно быть строгим и параллельным;
— зачем ASP.NET Core модульный монолит и как собрать его без микросервисов;
— где Native AOT выигрывает у JIT в .NET 10;
— что происходит с циклами, inlining и bounds checks в C# и Go;
— как меняется SDLC, когда в команде появляются ИИ-агенты;
— что принесут discriminated unions в C# 15;
— как проектировать асинхронное взаимодействие в распределенных системах (воркшоп).
Все подробности — в карточках и на сайте конференции.
🌟По промокоду csharpci — персональные билеты дешевле
→ Программа DotNext
→ Купить билет
18 065
Появился бесплатный open-source PDF-редактор для Windows, который пытается заменить Adobe Acrobat без подписки.
KillerPDF умеет редактировать текст прямо в PDF, добавлять аннотации и изображения, объединять и разделять страницы, заполнять формы, ставить подписи, печатать и делать OCR. Причём распознавание работает локально через Tesseract, без отправки документов в облако.
Есть и более редкие штуки: восстановление повреждённых PDF, открытие файлов с паролем, выравнивание кривых сканов, perspective correction, ночной режим, split view для двух документов и полноценная работа из командной строки.
Весь редактор упакован примерно в 16 МБ, может работать portable, не требует аккаунта, не собирает телеметрию и не делает phone-home. Проект распространяется под GPLv3.
На GitHub уже около 3,4 тыс. звёзд.
https://github.com/SteveTheKiller/KillerPDF
18 065
Появился бесплатный open-source PDF-редактор для Windows, который пытается заменить Adobe Acrobat без подписки.
KillerPDF умеет редактировать текст прямо в PDF, добавлять аннотации и изображения, объединять и разделять страницы, заполнять формы, ставить подписи, печатать и делать OCR. Причём распознавание работает локально через Tesseract, без отправки документов в облако.
Есть и более редкие штуки: восстановление повреждённых PDF, открытие файлов с паролем, выравнивание кривых сканов, perspective correction, ночной режим, split view для двух документов и полноценная работа из командной строки.
Весь редактор упакован примерно в 16 МБ, может работать portable, не требует аккаунта, не собирает телеметрию и не делает phone-home. Проект распространяется под GPLv3.
На GitHub уже около 3,4 тыс. звёзд.
https://github.com/SteveTheKiller/KillerPDF
18 065
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку
Окружение решает больше, чем кажется.
Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: https://t.me/+90Z5TAyfuNU5YmRi
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_1001_notes
Java: t.me/javatg
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: https://t.me/+S4hinvO3QI43ZjNi
Kubernetes: t.me/kubernetc
GameDev: https://t.me/gamedev
Haskell: t.me/haskell_tg
Собеседования и карьера:
DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview
Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy
Папка Frontend: https://t.me/addlist/mzMMG3RPZhY2M2Iy
Полезное сверху:
ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: https://t.me/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
