C# Portal | Программирование – Telegram
C# Portal | Программирование
14.9K subscribers
965 photos
118 videos
24 files
808 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для C#-разработчика

Связь: @devmangx

РКН: https://clck.ru/3FocB6
Download Telegram
Обновление поддержки .NET STS

Начиная с .NET 9 (текущий STS), поддержка STS-релизов увеличена с 18 месяцев до 2 лет.

Теперь STS-релизы теряют поддержку в тот же день, что и предыдущий LTS-релиз.

Это значит, что обновление до STS-релиза больше не приведёт к потере поддержки

Долгожданное улучшение для разработчиков, которым важно оставаться на актуальной версии без риска прерывания поддержки. ⌨️

https://devblogs.microsoft.com/dotnet/dotnet-sts-releases-supported-for-24-months/

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
4
This media is not supported in your browser
VIEW IN TELEGRAM
Появилось расширение, которое добавляет эффекты из Elden Ring в вашу почту, LeetCode и GitHub

Теперь пулл реквесты ощущаются как битва с боссом 🔨

Забираем с GitHub

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
😁212
У .NET-приложений больше нет оправдания быть нестабильными. Исправить это можно за пару минут.

Начиная с .NET 8, добавлять устойчивость в приложения стало гораздо проще, ведь появился обновлённый API Polly и официальные библиотеки от Microsoft для работы с отказоустойчивостью.

Polly — это библиотека для .NET, которая помогает обрабатывать временные ошибки и строить стратегии устойчивости: повторные попытки, fallback, таймауты, rate limiting и circuit breaker.

Хочешь узнать, как использовать Polly для создания resilience-пайплайнов? Вот статья со всеми деталями: Building Resilient Cloud Applications with .NET

А если ты работаешь с .NET Aspire, большая часть уже преднастроена «из коробки».

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥2
Принесли настоящий клад для изучения алгоритмов —> репозиторий awesome-algorithms

Внутри собраны сайты, шпаргалки, книги, курсы и видео, подходящие как для новичков, так и для продвинутых. Полезная теория и разбор сложных задач (всё в одном месте)

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12😁6👍3
Вопрос для C#

Смотрим на код (слайд 1):

- ProductStock не равен null
- Вы перебираете элементы в цикле
- Используется yield return внутри цикла

Вопрос: почему всё равно появляется предупреждение или ошибка?

Подумайте немного ⌚️

На слайде 2 — правильный ответ.

Причина в том, что yield return не останавливает выполнение цикла.

В отличие от обычного return, который сразу завершает метод, yield return просто отдаёт один элемент и приостанавливает выполнение. Цикл продолжает выполняться дальше.

Поэтому, если нужно пропустить итерацию, нужно использовать continue. Иначе выполнение продолжается, и можно столкнуться с неожиданными результатами или исключениями.

Классическая тонкость C# и знать её важно для собеседований.

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍11🔥3😁2
doc_2025-09-19_09-49-11.net-developer-resources.pdf
4.3 MB
Вышел бесплатный PDF с 650+ с отобранными вручную ресурсами для прокачки C#, .NET, ASP.NET Core, EF Core и микросервисов.

В сборнике собраны официальная документация, туториалы, лучшие блоги и видео, а также экспертные советы от .NET Technical Lead и Microsoft MVP с 11+ лет опыта.

Это не просто очередной PDF, а полный учебный гид для разработчиков, который поможет быстро прокачать знания и навыки.

За это и лайка не жалко 🫡

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍12😁2
This media is not supported in your browser
VIEW IN TELEGRAM
После сильного падения трафика StackOverflow наконец-то совершил камбэк ❤️

Он запустил собственного ИИ-агента — stackoverflow.ai. Он отвечает только на основе проверенных ответов сообщества, подбирая прямые цитаты из них.

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥334👍2
Нужна ли сервисная дискавери и зачем

В микросервисной архитектуре часто встает вопрос: как сервисы находят друг друга и надежно общаются

Хардкодить IP и порты — прямой путь к проблемам. Если сервис переезжает или запускается новый экземпляр, весь стек может сломаться

Сервисная дискавери позволяет обращаться к внешним сервисам по логическим именам, а не по физическим адресам и портам

Для этого обычно нужен сервисный реестр — централизованное место, где сервисы регистрируют себя. Клиенты обращаются к реестру, чтобы получить актуальный физический адрес сервиса

Рабочий процесс выглядит так

1. Сервис регистрируется в сервисном реестре
2. Клиент обращается к реестру, чтобы узнать физический адрес сервиса
3. Клиент отправляет запрос на этот физический адрес

В .NET это можно реализовать через Consul. Вот подробный туториал

Consul — популярное решение для распределенных систем

Есть более легковесное решение от Aspire, но там физические адреса задаются через конфигурацию приложения, поэтому оно менее надежное и гибкое

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍2
Аутентификация подтверждает, кто вы. Авторизация решает, что вам разрешено делать.

В этом курсе вы научитесь создавать ASP.NET-приложения, которые умеют выдавать JWT, регистрировать и логинить пользователей, управлять ролями и многое другое. ☀️

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Принесли ещё одну огромную подборку бесплатных API.

Внутри 1511 штук на любой вкус: игры, погода, финансы, здоровье и многое другое.

Забираем тут - publicapis.io 🍔

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍2
Visual Studio 2026 показывает результаты условных операторов (if) прямо в коде во время отладки.

Скоро будет доступно ⌨️

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
40🔥11👏3🕊3
Динамическая сортировка в EF Core

Пример кода, показывающий, как динамически сортировать данные в EF Core по имени колонки.

Исходный проект: SortByColumnNameApp на GitHub

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
🥴8👍5👎2🔥21
LLM в .NET проще, чем кажется

Создавать AI-приложения на .NET теперь легко. Примеры применения:

- чат-приложения
- суммаризация текста
- категоризация
- распознавание изображений
- семантический поиск

LLM можно запускать локально или через облачное API. Отличный способ не отставать в практическом использовании AI. 🙂

Подробнее: тык

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍6
Устаревший подход к работе с null в C# выглядит так:

• Возвращать null из методов и надеяться на лучшее
• Вставлять десятки проверок if (x != null) повсюду
• Полагаться на то, что разработчики «просто знают», что может быть nullable

И всё это ради чего?

Хрупкий код, скрытые баги и NullReferenceException

Новый путь такой:

• Возвращать пустые значения вместо null (Enumerable.Empty<T>(), string.Empty, [] и т.д.)
• Использовать nullable reference types C# для ловли проблем на этапе компиляции
• Заменять проверки на null паттерном Null Object и оператором null-conditional (?.)

Как начать:

• Включите nullable reference types в вашем .csproj
• Замените возвращаемые null безопасными значениями по умолчанию
• Рефакторьте повторяющиеся проверки null в безопасные обёртки или поведение по умолчанию

Писать безопасный, устойчивый к падениям C# код тяжело.

Но искать NullReferenceException в продакшене в 100 раз сложнее.

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
13👎4👍2
Любите ретро-игры и открытый код? На OS Game Clones собрали десятки открытых клонов классических игр. 😎

Теперь можно играть в любимые тайтлы на современных системах, изучать исходники или использовать их как основу для своих проектов. От платформеров до шутеров и градостроительных симуляторов

Всё в свободном доступе и с возможностью модификации.

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥4🥰2👍1
Слышали про Refit?

Если нет, позвольте представить.

Refit это типобезопасная библиотека для работы с REST в C#, которая упрощает потребление API.

Вы начинаете с определения API в виде интерфейса с методами и атрибутами, а Refit берет на себя всю "тяжелую работу".

Почему стоит рассмотреть его использование?

- Автоматическая сериализация и десериализация
- Поддержка HTTP-методов
- Строго типизированное определение API

Больше всего мне нравится обертка ApiResponse<T>, которая обрабатывает как содержимое, так и метаданные.

Она также обеспечивает единообразную структуру ответа для ваших сервисов.

Refit можно использовать в проектах любого масштаба, так как он берет на себя "сложные" части, позволяя вам сосредоточиться на логике приложения.

Тем не менее, это не универсальное решение, используйте с умом. 🍺

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84
This media is not supported in your browser
VIEW IN TELEGRAM
LeetCode только что добавил AI, который решает задачи за тебя.


Тогда какой, блин, вообще смысл, лол. 😂

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
😁40👍2
Правильный выбор индекса ускорил SQL-запрос в 70 раз.

Милан рассказал, что изначально выборка необработанных сообщений из таблицы шла медленно, данные вытягивались батчами по 1000 строк, а в плане выполнения фигурировал тяжёлый Table scan с фильтрацией и сортировкой. При миллионах строк такой подход оказывался слишком дорогим.

После добавления покрывающего индекса план изменился на более лёгкий:

→ Index only scan → Limit

Главное преимущество в том, что таблица не читается вообще — все данные берутся напрямую из индекса.

Милан отмечает, это не универсальное решение, а точечная оптимизация. Однако в сценариях, где важна предельная производительность, приём показывает впечатляющий результат.

Подробнее об оптимизации запросов можно прочитать здесь

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
Вместо того чтобы:

→ Держать в коде сложное вычисление
→ Которое трудно понять

Сделайте так:

1. Найдите сложное выражение в коде.
2. Введите новую переменную с понятным именем для хранения результата.
3. Замените сложное выражение на эту переменную.
4. Скомпилируйте и протестируйте.

Такой рефакторинг называется Introduce Explaining Variable («Введение объясняющей переменной»).

И он быстро сделает ваш код понятнее.

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
😐7👍2😁2👌21
dotnet-backend-template-12.09.2025 (2).zip
266.3 KB
Сохраняйте этот проверенный шаблон бэкенда на .NET — собранный по лучшим отраслевым практикам, чтобы ты мог сосредоточиться на разработке действительно важных функций.

ASP.NET Core Web API, EF Core, PostgreSQL, аутентификация и авторизация, OpenTelemetry, FluentValidation, Swagger, Docker и многое другое

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
9👎3🔥2