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

Связь: @devmangx

РКН: https://clck.ru/3FocB6
Download Telegram
ASP.NET Core Roadmap for .NET 10 — здесь

Команда разработчиков ASP.NET Core изложила основные направления и функции, над которыми они планируют работать в рамках выпуска .NET 10

Этот список является предварительным и может изменяться по мере разработки

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43🤨2🤯1
Новый релиз бесплатного инструмента T-SQL Analyzer на .NET для выявления антипаттернов в T-SQL-скриптах — более 140 проверок

НОВОЕ: поддержка форматирования SQL-кода с использованием библиотеки SqlScriptDom

Приводите ваш T-SQL к единообразному и читаемому виду 🍺

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4
Новинка: HybridCache в .NET наконец-то получил стабильный релиз

HybridCache в ASP.NET Core — новая кэш-библиотека, объединяющая преимущества внутрипроцессного (in-memory) и распределённого кэширования

Узнайте больше: здесь

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍6
Зависимости сетевых протоколов, которые необходимо знать

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍4🔥1😐1
Подождите, что, Cursor Pro - это бесплатно?

Автоматическая регистрация в Cursor AI, автоматический сброс MachineID, бесплатное получение доступа к Pro-функциям

GitHub - https://github.com/yeongpin/cursor-free-vip 🥴

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥104👍1
image_2025-04-11_11-04-44.png
1.2 MB
Краткая история языка C#

Microsoft выпустила C# 13 в ноябре прошлого года. За более чем 20 лет C# развивался через 13 версий, каждая из которых привносила новые возможности.

Вот краткий обзор этих функций:

C# 1.0 (.NET 1.0, 2002): Первый релиз
C# 1.2 (.NET 1.1, 2003): IDisposable для IEnumerators
C# 2.0 (.NET 2.0, 2005): Обобщения, nullable-типы, итераторы
C# 3.0 (.NET 3.5, 2007): Лямбда-выражения, LINQ, методы расширения
C# 4.0 (.NET 4, 2010): Динамическое связывание, именованные аргументы, необязательные параметры
C# 5.0 (.NET 4.5, 2012): Async/await, атрибуты информации о вызывающем
C# 6.0 (.NET 4.6, 2015): Инициализаторы автосвойств, статические импорты, фильтры исключений
C# 7.0 (.NET 4.7, 2017): Кортежи, сопоставление с образцом, ref-переменные и возвращаемые значения
C# 7.1 (2017): Async main, вывод кортежей, выражения по умолчанию
C# 7.2 (2017): Модификатор доступа private protected, Span<T>
C# 7.3 (2018): Новые ограничения для обобщений, переназначение ref
C# 8.0 (.NET Core 3.0, 2019): Nullable-ссылочные типы, индексы и диапазоны, using-объявления
C# 9.0 (.NET 5.0, 2020): Records, свойства init, верхнеуровневые программы
C# 10.0 (.NET 6.0, 2021): Record-структуры, глобальные using-и, пространства имён в файлах
C# 11.0 (.NET 7.0, 2022): Обобщённая математика, обязательные члены, необработанные строковые литералы
C# 12.0 (.NET 8.0, 2023): Выражения коллекций, первичные конструкторы
C# 13.0 (.NET 9.0, 2024): Улучшенные параметры, частичные свойства, новый объект блокировки


👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥106👍3🤯2😐1
Пример условного присваивания с null-проверкой в C# 14

Это нововведение доступно в C# 14 Preview 3 и позволяет выполнять присваивание свойству или полю только если экземпляр-объект существует (не равен null)

Что думаете? 🤔

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥6🤯3
Что делает AsSplitQuery() в Entity Framework?

Выше приведён пример до / после использования

В 1 случае —> только небольшая проблема «декартова взрыва», так как здесь соединяется всего одна таблица
… НО при большем количестве соединений дублирование данных увеличивается

Во 2 случае —> разделённые запросы означают меньше дублирования
… НО больше обращений к базе и потенциальная несогласованность данных

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥4
Что такое преобразование клеймов (Claims Transformation) в ASP.NET Core?

Если access token от вашего провайдера идентификации (Identity Provider) не полностью соответствует внутренним требованиям авторизации вашего приложения, вы можете использовать преобразование клеймов.

Преобразование клеймов позволяет изменить клеймы до того, как приложение начнёт использовать их для авторизации 🔧

С помощью этого механизма можно, например, добавить недостающие клеймы из базы данных или другого источника.

Почему это полезно —> читайте здесь: статья

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94🔥1
Хочешь условный middleware в .NET?

Используй app.UseWhen(), чтобы применять middleware только при выполнении определённых условий.

Преимущества:

—> Повышает производительность

—> Поддерживает чистоту кода

—> Позволяет реализовать логику для конкретных маршрутов

Идеально для сложных приложений. Просто, мощно и аккуратно.

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥4
Архитектор : «В .NET слишком любят всё усложнять.»

Он же через минуту : «А вот 10 ПОТРЯСАЮЩИХ паттернов, которые мы можем взять из референсной архитектуры eShop от Microsoft! 😍»

Давайте тогда возьмём сайт на WiX и превратим его в магистерскую диссертацию по распределённым системам

А вы тоже замечали такие противоречия среди разработчиков?

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3
200+ задач по структурам данных и алгоритмам

Массивы – https://bit.ly/3vM1JP5
Строки – https://bit.ly/3vM1JP5
Двоичное дерево – https://bit.ly/3JIsn1i
Связный список – https://bit.ly/3zFatrn
Динамическое программирование – https://bit.ly/3vLwjs5
Рекурсия – https://bit.ly/3JDhUnv

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2🔥2
Нужно получить ID вошедшего пользователя в Web API ? 🪑

(Предполагается, что ID пользователя был добавлен как claim при генерации токена)

—> Определи интерфейс IUser
—> Реализуй его, чтобы считывать ID из claims
—> Зарегистрируй зависимости
—> Внедряй IUser и получай доступ к ID где угодно

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥2😈1
Если вы ещё не включили RespectRequiredConstructorParameters в System.Text.Json 9 — самое время это сделать

Эта опция позволяет сериализатору учитывать обязательные параметры конструктора при десериализации.

Если какой-то required-параметр отсутствует в JSON — JsonException тут как тут

Больше никаких тихих багов из-за значений по умолчанию

💪💪💪

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍104
IAsyncActionFilter — недооценён, но очень полезный фильтр

В ASP.NET Core фильтры позволяют запускать логику до и после выполнения запроса в пайплайне.

Зачем их использовать?

—> Повторно используемая логика
—> Чистые, читаемые контроллеры

Отлично подходит для:

—> Проверки прав доступа
—> Подтверждения email
—> Применения бизнес-правил

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥52😁1
Central Package Management в .NET

Статья

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥2
Трудно отлаживать запросы в EF Core?

Используй .EnableSensitiveDataLogging() — и увидишь в логах реальный SQL + значения параметров

Очень удобно для:

—> Понимания проблем с запросами
—> Копирования и запуска SQL напрямую

Не используй в проде! 👊

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍64😐2
OpenAI выпустила Codex CLI — опенсорс агента ИИ

Лицензия Apache 2.0. Легко запускается локально и превращает командную строку в среду программирования на естественном языке.

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🔥1🥴1
Схема последовательности действий Outbox Pattern

Этот паттерн обеспечивает надёжную доставку событий из приложения в очередь сообщений без потери данных

1. Пользователь отправляет заказ.

2. Приложение сохраняет:

—> Заказ в таблицу Orders
—> Соответствующее событие в таблицу Outbox

Всё это происходит в рамках одной транзакции — то есть либо оба действия выполняются, либо ни одно.

3. Отдельный процессор Outbox затем:

—> Извлекает необработанные события
—> Публикует их в очередь сообщений (например, Kafka, RabbitMQ)
—> Отмечает их как обработанные в БД

Как реализовать его с нуля? —> читать

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4
Вы слышали о Coravel?

Coravel — это .NET-библиотека без необходимости конфигурации, ориентированная на разработчиков, вдохновлённая Laravel (PHP-фреймворком).

Она создана для того, чтобы сделать ваше приложение мощнее — за счёт фоновых задач и автоматизации.

Это как бустер продуктивности для .NET-бэкенда.

Возможности без базы данных, брокеров сообщений и внешних сервисов:

—> Планирование задач (как Cron)
—> Очереди фоновых задач (в памяти)
—> Классы фоновых задач (Invocables)
—> Рассылка событий (Pub/Sub внутри процесса)
—> Отправка писем
—> Простое кэширование

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

Ты уже пробовал? 🏴‍☠️

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3
Ты используешь локальные переменные в LINQ?

Слышал про ключевое слово let?

Ключевое слово let позволяет создавать локальные переменные прямо внутри LINQ-запроса.

Это похоже на создание переменной внутри цикла. С помощью let можно выносить сложные выражения в отдельные переменные — так запрос становится модульным и легче читается.

Кроме того, let может помочь в оптимизации производительности LINQ-запросов, уменьшая количество итераций, необходимых для обработки данных.

На фото прикрепил простой пример использования.

Также чекни эти 4 совета по улучшению производительности в Entity Framework: тут

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🥴31🔥1