Используй метод
string.Join, чтобы объединить элементы коллекции в одну строку, вставляя указанный разделитель между элементами.А ты используешь
string.Join в своём коде?Please open Telegram to view this post
VIEW IN TELEGRAM
👍23😁7❤5👏3🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
ASP.NET Core Roadmap for .NET 10 · Issue #59443 · dotnet/aspnetcore
This issue represents the list of major investments our team will focus on during the .NET 10 timeframe. It doesn't include all the features and bug fixes we'll be tackling during this time...
🔥4❤3🤨2🤯1
Новый релиз бесплатного инструмента T-SQL Analyzer на .NET для выявления антипаттернов в T-SQL-скриптах — более 140 проверок
НОВОЕ: поддержка форматирования SQL-кода с использованием библиотеки SqlScriptDom
Приводите ваш T-SQL к единообразному и читаемому виду🍺
👉 @KodBlog
НОВОЕ: поддержка форматирования SQL-кода с использованием библиотеки SqlScriptDom
Приводите ваш T-SQL к единообразному и читаемому виду
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4
Подождите, что, Cursor Pro - это бесплатно?
Автоматическая регистрация в Cursor AI, автоматический сброс MachineID, бесплатное получение доступа к Pro-функциям
GitHub - https://github.com/yeongpin/cursor-free-vip🥴
👉 @KodBlog
Автоматическая регистрация в Cursor AI, автоматический сброс MachineID, бесплатное получение доступа к Pro-функциям
GitHub - https://github.com/yeongpin/cursor-free-vip
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤4👍1
image_2025-04-11_11-04-44.png
1.2 MB
Краткая история языка C#
Microsoft выпустила C# 13 в ноябре прошлого года. За более чем 20 лет C# развивался через 13 версий, каждая из которых привносила новые возможности.
Вот краткий обзор этих функций:
👉 @KodBlog
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): Улучшенные параметры, частичные свойства, новый объект блокировки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤6👍3🤯2😐1
Пример условного присваивания с null-проверкой в C# 14
Это нововведение доступно в C# 14 Preview 3 и позволяет выполнять присваивание свойству или полю только если экземпляр-объект существует (не равен
Что думаете?🤔
👉 @KodBlog
Это нововведение доступно в C# 14 Preview 3 и позволяет выполнять присваивание свойству или полю только если экземпляр-объект существует (не равен
null)Что думаете?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥6🤯3
Что делает
Выше приведён пример до / после использования
В 1 случае —> только небольшая проблема «декартова взрыва», так как здесь соединяется всего одна таблица
… НО при большем количестве соединений дублирование данных увеличивается
Во 2 случае —> разделённые запросы означают меньше дублирования
… НО больше обращений к базе и потенциальная несогласованность данных
👉 @KodBlog
AsSplitQuery() в Entity Framework?Выше приведён пример до / после использования
В 1 случае —> только небольшая проблема «декартова взрыва», так как здесь соединяется всего одна таблица
… НО при большем количестве соединений дублирование данных увеличивается
Во 2 случае —> разделённые запросы означают меньше дублирования
… НО больше обращений к базе и потенциальная несогласованность данных
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥4
Что такое преобразование клеймов (Claims Transformation) в
Если
Преобразование клеймов позволяет изменить клеймы до того, как приложение начнёт использовать их для авторизации🔧
С помощью этого механизма можно, например, добавить недостающие клеймы из базы данных или другого источника.
Почему это полезно —> читайте здесь: статья
👉 @KodBlog
ASP.NET Core?Если
access token от вашего провайдера идентификации (Identity Provider) не полностью соответствует внутренним требованиям авторизации вашего приложения, вы можете использовать преобразование клеймов.Преобразование клеймов позволяет изменить клеймы до того, как приложение начнёт использовать их для авторизации
С помощью этого механизма можно, например, добавить недостающие клеймы из базы данных или другого источника.
Почему это полезно —> читайте здесь: статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤4🔥1
Хочешь условный middleware в .NET?
Используй
✅ Преимущества:
—> Повышает производительность
—> Поддерживает чистоту кода
—> Позволяет реализовать логику для конкретных маршрутов
Идеально для сложных приложений. Просто, мощно и аккуратно.
👉 @KodBlog
Используй
app.UseWhen(), чтобы применять middleware только при выполнении определённых условий.—> Повышает производительность
—> Поддерживает чистоту кода
—> Позволяет реализовать логику для конкретных маршрутов
Идеально для сложных приложений. Просто, мощно и аккуратно.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥4
Архитектор : «В .NET слишком любят всё усложнять.»
Он же через минуту : «А вот 10 ПОТРЯСАЮЩИХ паттернов, которые мы можем взять из референсной архитектуры eShop от Microsoft!😍 »
Давайте тогда возьмём сайт на WiX и превратим его в магистерскую диссертацию по распределённым системам
А вы тоже замечали такие противоречия среди разработчиков?
👉 @KodBlog
Он же через минуту : «А вот 10 ПОТРЯСАЮЩИХ паттернов, которые мы можем взять из референсной архитектуры eShop от Microsoft!
А вы тоже замечали такие противоречия среди разработчиков?
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 при генерации токена)
—> Определи интерфейс
—> Реализуй его, чтобы считывать ID из claims
—> Зарегистрируй зависимости
—> Внедряй
👉 @KodBlog
(Предполагается, что ID пользователя был добавлен как claim при генерации токена)
—> Определи интерфейс
IUser—> Реализуй его, чтобы считывать ID из claims
—> Зарегистрируй зависимости
—> Внедряй
IUser и получай доступ к ID где угодноPlease open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥2😈1
Если вы ещё не включили
Эта опция позволяет сериализатору учитывать обязательные параметры конструктора при десериализации.
Если какой-то required-параметр отсутствует в JSON —
Больше никаких тихих багов из-за значений по умолчанию
💪 💪 💪
👉 @KodBlog
RespectRequiredConstructorParameters в System.Text.Json 9 — самое время это сделатьЭта опция позволяет сериализатору учитывать обязательные параметры конструктора при десериализации.
Если какой-то required-параметр отсутствует в JSON —
JsonException тут как тутБольше никаких тихих багов из-за значений по умолчанию
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤4
IAsyncActionFilter — недооценён, но очень полезный фильтрВ
ASP.NET Core фильтры позволяют запускать логику до и после выполнения запроса в пайплайне.Зачем их использовать?
—> Повторно используемая логика
—> Чистые, читаемые контроллеры
Отлично подходит для:
—> Проверки прав доступа
—> Подтверждения email
—> Применения бизнес-правил
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥5❤2😁1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🔥2
Трудно отлаживать запросы в EF Core?
Используй
Очень удобно для:
—> Понимания проблем с запросами
—> Копирования и запуска SQL напрямую
Не используй в проде!👊
👉 @KodBlog
Используй
.EnableSensitiveDataLogging() — и увидишь в логах реальный SQL + значения параметровОчень удобно для:
—> Понимания проблем с запросами
—> Копирования и запуска SQL напрямую
Не используй в проде!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍6❤4😐2
Схема последовательности действий Outbox Pattern
Этот паттерн обеспечивает надёжную доставку событий из приложения в очередь сообщений без потери данных
1. Пользователь отправляет заказ.
2. Приложение сохраняет:
—> Заказ в таблицу Orders
—> Соответствующее событие в таблицу Outbox
Всё это происходит в рамках одной транзакции — то есть либо оба действия выполняются, либо ни одно.
3. Отдельный процессор Outbox затем:
—> Извлекает необработанные события
—> Публикует их в очередь сообщений (например, Kafka, RabbitMQ)
—> Отмечает их как обработанные в БД
⏩ Как реализовать его с нуля? —> читать
👉 @KodBlog
Этот паттерн обеспечивает надёжную доставку событий из приложения в очередь сообщений без потери данных
1. Пользователь отправляет заказ.
2. Приложение сохраняет:
—> Заказ в таблицу Orders
—> Соответствующее событие в таблицу Outbox
Всё это происходит в рамках одной транзакции — то есть либо оба действия выполняются, либо ни одно.
3. Отдельный процессор Outbox затем:
—> Извлекает необработанные события
—> Публикует их в очередь сообщений (например, Kafka, RabbitMQ)
—> Отмечает их как обработанные в БД
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4
Вы слышали о Coravel?
Coravel — это .NET-библиотека без необходимости конфигурации, ориентированная на разработчиков, вдохновлённая Laravel (PHP-фреймворком).
Она создана для того, чтобы сделать ваше приложение мощнее — за счёт фоновых задач и автоматизации.
Это как бустер продуктивности для .NET-бэкенда.
Возможности без базы данных, брокеров сообщений и внешних сервисов:
—> Планирование задач (как Cron)
—> Очереди фоновых задач (в памяти)
—> Классы фоновых задач (Invocables)
—> Рассылка событий (Pub/Sub внутри процесса)
—> Отправка писем
—> Простое кэширование
Не подходит для критически важных задач, которым нужна устойчивость, и для распределённых систем, требующих координации.
Ты уже пробовал?🏴☠️
👉 @KodBlog
Coravel — это .NET-библиотека без необходимости конфигурации, ориентированная на разработчиков, вдохновлённая Laravel (PHP-фреймворком).
Она создана для того, чтобы сделать ваше приложение мощнее — за счёт фоновых задач и автоматизации.
Это как бустер продуктивности для .NET-бэкенда.
Возможности без базы данных, брокеров сообщений и внешних сервисов:
—> Планирование задач (как Cron)
—> Очереди фоновых задач (в памяти)
—> Классы фоновых задач (Invocables)
—> Рассылка событий (Pub/Sub внутри процесса)
—> Отправка писем
—> Простое кэширование
Не подходит для критически важных задач, которым нужна устойчивость, и для распределённых систем, требующих координации.
Ты уже пробовал?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3