Dapper + SQL Server + вычисляемые столбцы
Хочешь, чтобы возраст считался сам? В этом примере —> таблица с датами рождения, где возраст считается прямо в SQL через computed column, а данные читаются через Dapper
> Без лишней логики в C#
> Лёгкая ORM
> Всё работает как обычное свойство
Репозиторий с примером: https://github.com/karenpayneoregon/sql-basics/tree/master/DapperBirthdaysComputedColumns❤️
👉 @KodBlog
Хочешь, чтобы возраст считался сам? В этом примере —> таблица с датами рождения, где возраст считается прямо в SQL через computed column, а данные читаются через Dapper
> Без лишней логики в C#
> Лёгкая ORM
> Всё работает как обычное свойство
Репозиторий с примером: https://github.com/karenpayneoregon/sql-basics/tree/master/DapperBirthdaysComputedColumns
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍5
Следующая крупная версия Visual Studio выйдет позже в этом году.
Как думаете, как Microsoft её назовёт? И как должна бы назвать?😎
👉 @KodBlog
Как думаете, как Microsoft её назовёт? И как должна бы назвать?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🥴5🔥1
Месяц назад один .NET-разработчик спросил меня:
«Какие Azure-сертификации ты порекомендуешь, чтобы продвинуться в .NET-карьере?»
Я ответил уклончиво: «Это зависит от ситуации»
Но поскольку это ужасный ответ, давай поясню.
Сосредоточься на тех сертификациях, в областях которых у тебя уже есть опыт. Или в тех, в которых ты хочешь получить больше опыта.
Исходя из этого, можно выбрать:
> Направление безопасности
> Направление разработки
> Направление инфраструктуры
> Направление данных и аналитики
Но важно помнить вот что:
Сертификаты бесполезны без опыта.
Если ты списываешь на экзаменах, рано или поздно это всплывёт
Поэтому:
1. Опыт > Сертификатов
2. Опыт + Сертификаты = сильное сочетание
3. Как правильно подходить к сертификациям? Сначала набери опыт, потом получай сертификаты
❤️ — ну это база
👉 @KodBlog
«Какие Azure-сертификации ты порекомендуешь, чтобы продвинуться в .NET-карьере?»
Я ответил уклончиво: «Это зависит от ситуации»
Но поскольку это ужасный ответ, давай поясню.
Сосредоточься на тех сертификациях, в областях которых у тебя уже есть опыт. Или в тех, в которых ты хочешь получить больше опыта.
Исходя из этого, можно выбрать:
> Направление безопасности
> Направление разработки
> Направление инфраструктуры
> Направление данных и аналитики
Но важно помнить вот что:
Сертификаты бесполезны без опыта.
Если ты списываешь на экзаменах, рано или поздно это всплывёт
Поэтому:
1. Опыт > Сертификатов
2. Опыт + Сертификаты = сильное сочетание
3. Как правильно подходить к сертификациям? Сначала набери опыт, потом получай сертификаты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8😁2
Эффективная асинхронная передача данных
Когда работаешь с большими наборами данных — записями из базы, строками файлов и т.д. — не всегда хочется грузить всё в память сразу. Здесь отлично заходит
>
> Используй
> Данные подтягиваются лениво — обрабатываешь только то, что реально нужно
С
Преимущества:
1. экономия, даже на больших объёмах.
2. ничего не блокируется, UI не фризит
3. чисто и понятно, без колбэков и костылей💖
👉 @KodBlog
Когда работаешь с большими наборами данных — записями из базы, строками файлов и т.д. — не всегда хочется грузить всё в память сразу. Здесь отлично заходит
IAsyncEnumerable<T>>
IAsyncEnumerable<T> — позволяет стримить данные асинхронно, без блокировки потоков> Используй
yield return, чтобы возвращать элементы по одному> Данные подтягиваются лениво — обрабатываешь только то, что реально нужно
С
await foreach всё читается и обрабатывается по мере поступления, не блокируя выполнениеПреимущества:
1. экономия, даже на больших объёмах.
2. ничего не блокируется, UI не фризит
3. чисто и понятно, без колбэков и костылей
Please open Telegram to view this post
VIEW IN TELEGRAM
💯16👍7🔥3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Режим GitHub Copilot Agent теперь доступен в preview для Visual Studio 17.14!
> Подробнее: msft.it/6012SZusi🤍
👉 @KodBlog
> Подробнее: msft.it/6012SZusi
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
7 архитектур, которые стоит знать каждому разработчику
👉 @KodBlog
> Монолит
Всё в одном проекте. Легко развернуть и начать разработку, но с ростом системы поддержка становится сложной. Подходит для небольших или быстрых MVP.
> MVC
Классика веб-фреймворков. Модель, представление и контроллер. Работает отлично, если роли чётко разделены (спойлер: многие контроллеры в итоге становятся объектами-богами)
> Master-Slave (сейчас чаще говорят Leader-Follower)
Популярен в БД: один командует — остальные копируют. Увеличивает отказоустойчивость, но если синхронизация сломается — беда.
> Многослойная архитектура
Знаменитый “lasagna code”: слой представления, логики, доступа к данным, база. Хорошо структурирует, но если перегнуть — становится медленно и громоздко
> Микросервисы
Каждая функция живёт отдельно. Масштабируются отлично, но усложняется тестирование, логирование и деплой. Подход не для всех проектов.
> SOA (сервис-ориентированная архитектура)
Более формальный родственник микросервисов. Часто встречается в больших компаниях и старых системах. ESB (Enterprise Service Bus) сначала кажется полезным. пока не становится главным узким местом.
> Событийно-ориентированная архитектура
Идеальна для приложений в реальном времени. Всё основано на событиях. Очень мощная, но если что-то пойдёт не так.. найти баг — непросто
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤5
16 ресурсов, которые я планирую использовать, чтобы стать в 10 раз лучше в архитектуре программного обеспечения в этом году
Изучи эти репозитории:
1. Эволюционная архитектура на примерах — GitHub
2. Модульный монолит с DDD — GitHub
3. Стартер-кит на .NET 9 с мультиарендой — GitHub
4. Микросервисное eCommerce-приложение на .NET — GitHub
5. Архитектура через вертикальные срезы (Vertical Slice) — GitHub
6. Шаблон чистой архитектуры для .NET — GitHub
7. Пример гексагональной архитектуры — GitHub
Почитай эти книги:
8. Software Architecture for Developers
9. Head First Software Architecture
10. Fundamentals of Software Architecture: An Engineering Approach
11. Software Architecture: The Hard Parts
12. System Design Interview – Insider's Guide
13. System Design Interview – Volume 2
14. Designing Data-Intensive Applications
Прокачайся на практике:
15. Архитектурные каты от Нила Форда — nealford.com/katas
16. Каталог архитектурных кат — GitHub
Закинь в закладки — пригодится🆗
👉 @KodBlog
Изучи эти репозитории:
1. Эволюционная архитектура на примерах — GitHub
2. Модульный монолит с DDD — GitHub
3. Стартер-кит на .NET 9 с мультиарендой — GitHub
4. Микросервисное eCommerce-приложение на .NET — GitHub
5. Архитектура через вертикальные срезы (Vertical Slice) — GitHub
6. Шаблон чистой архитектуры для .NET — GitHub
7. Пример гексагональной архитектуры — GitHub
Почитай эти книги:
8. Software Architecture for Developers
9. Head First Software Architecture
10. Fundamentals of Software Architecture: An Engineering Approach
11. Software Architecture: The Hard Parts
12. System Design Interview – Insider's Guide
13. System Design Interview – Volume 2
14. Designing Data-Intensive Applications
Прокачайся на практике:
15. Архитектурные каты от Нила Форда — nealford.com/katas
16. Каталог архитектурных кат — GitHub
Закинь в закладки — пригодится
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2😁1
Добавили метод
Это появится в❤️
👉 @KodBlog
UseKestrel() в WebApplicationFactory Это появится в
ASP.NET 10 Preview 4 и даст простой способ включить использование сервера Kestrel в WebApplicationFactory Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1
Метод-расширение для
❤️
👉 @KodBlog
TagWith в Entity FrameworkTagWith() очень полезен для добавления отладочной информации в логи запросов, но, конечно, мы также можем обернуть его и добавить дополнительную информацию через простой extension method, как в примере выше Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3
ORM — не проблема. Проблема — как разработчики ими пользуются
Как часто ты видишь, что во всём винят ORM?
Если ты не понимаешь SQL (или любую другую базу данных) — это уже твоя ответственность
Но если ты разбираешься в базовых принципах работы с БД, ты сможешь выжать из ORM максимум
Вот простой пример с EF Core:
— обновление списка уведомлений по одному
— обновление всех уведомлений одной операцией
Что будет быстрее?
Конечно тот вариант, где меньше обращений к базе.
Именно тут блестяще работает EF Bulk Update — ты можешь писать оптимальные
Вместо множества SQL-запросов — один.
Но даже у такого подхода есть подводные камни, о которых стоит знать:
> читать
👉 @KodBlog
Как часто ты видишь, что во всём винят ORM?
Если ты не понимаешь SQL (или любую другую базу данных) — это уже твоя ответственность
Но если ты разбираешься в базовых принципах работы с БД, ты сможешь выжать из ORM максимум
Вот простой пример с EF Core:
— обновление списка уведомлений по одному
— обновление всех уведомлений одной операцией
Что будет быстрее?
Конечно тот вариант, где меньше обращений к базе.
Именно тут блестяще работает EF Bulk Update — ты можешь писать оптимальные
UPDATE и DELETE запросы.Вместо множества SQL-запросов — один.
Но даже у такого подхода есть подводные камни, о которых стоит знать:
> читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤2🔥2
Что такое Queue<T>?
Queue<T> — это коллекция в C# с принципом FIFO (первым пришёл — первым ушёл).
То есть первый добавленный элемент будет извлечён первым.
Когда использовать?
> Планирование задач
> Очереди на печать
> Обработка сообщений
> Поиск в ширину (BFS) в графах
Пример прикрепил, с вас лайк❤️
👉 @KodBlog
Queue<T> — это коллекция в C# с принципом FIFO (первым пришёл — первым ушёл).
То есть первый добавленный элемент будет извлечён первым.
Когда использовать?
> Планирование задач
> Очереди на печать
> Обработка сообщений
> Поиск в ширину (BFS) в графах
Пример прикрепил, с вас лайк
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥5😁3❤1
.NET 10 Preview 4 — больше производительности и удобства
Вышла четвёртая превью-версия .NET 10
В ней — новые возможности языка, улучшения рантайма и прокачанная AOT-компиляция.
Также улучшили поддержку cloud-native сценариев и диагностику — определённо стоит попробовать😡
> Подробнее: https://devblogs.microsoft.com/dotnet/dotnet-10-preview-4/
👉 @KodBlog
Вышла четвёртая превью-версия .NET 10
В ней — новые возможности языка, улучшения рантайма и прокачанная AOT-компиляция.
Также улучшили поддержку cloud-native сценариев и диагностику — определённо стоит попробовать
> Подробнее: https://devblogs.microsoft.com/dotnet/dotnet-10-preview-4/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3
Если ты до сих пор считаешь, что EF Core медленный в 2025 году — ты застрял в прошлом
Одна из его новых фич — поддержка bulk-удалений
Теперь ты можешь удалить любое количество записей за один запрос к базе.
Представим, что e-commerce платформа хочет удалить все корзины, которые не обновлялись больше года.
С
Но помни: bulk-операции обходят EF Change Tracker.
EF Core предлагает много мощных фич для написания чистого и производительного кода.
> Вот 5, которые ты обязан знать: readme
🎧 🎧
👉 @KodBlog
Одна из его новых фич — поддержка bulk-удалений
Теперь ты можешь удалить любое количество записей за один запрос к базе.
Представим, что e-commerce платформа хочет удалить все корзины, которые не обновлялись больше года.
С
ExecuteDelete это делается эффективно: выполняется один SQL-запрос DELETE, который сразу удаляет все старые корзины.Но помни: bulk-операции обходят EF Change Tracker.
EF Core предлагает много мощных фич для написания чистого и производительного кода.
> Вот 5, которые ты обязан знать: readme
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤6🔥2😁1
Совет по Microsoft Visual Studio
Условная компиляция — отличный способ включать или исключать функциональность в зависимости от сценария деплоя.
Обычно используют
В свойствах проекта, на вкладке Build, можно задать свои собственные символы условной компиляции.
В этом примере используется пользовательский символ, чтобы определить — наследоваться от абстрактного класса или нет.
Важно иметь чёткие инструкции, в каких случаях применять такие символы, как в этом примере
Поддержи пост лайком если полезно❤️
👉 @KodBlog
Условная компиляция — отличный способ включать или исключать функциональность в зависимости от сценария деплоя.
Обычно используют
#if DEBUG, но что если условие не связано с режимом отладки или релиза?В свойствах проекта, на вкладке Build, можно задать свои собственные символы условной компиляции.
В этом примере используется пользовательский символ, чтобы определить — наследоваться от абстрактного класса или нет.
Важно иметь чёткие инструкции, в каких случаях применять такие символы, как в этом примере
Поддержи пост лайком если полезно
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤5
ReSharper теперь и в VS Code
Легендарный инструмент для C# разработчиков добрался до лёгкого редактора.
До этого ReSharper работал только в Visual Studio, теперь — прямо в твоем VS Code.
> Умные подсказки и автодополнение
> Продвинутый анализ кода
> Быстрые рефакторинги
> Навигация как в Rider
Редактор поменялся — ReSharper остался💪
> Подробнее: https://jb.gg/rs-in-vscode-tw
👉 @KodBlog
Легендарный инструмент для C# разработчиков добрался до лёгкого редактора.
До этого ReSharper работал только в Visual Studio, теперь — прямо в твоем VS Code.
> Умные подсказки и автодополнение
> Продвинутый анализ кода
> Быстрые рефакторинги
> Навигация как в Rider
Редактор поменялся — ReSharper остался
> Подробнее: https://jb.gg/rs-in-vscode-tw
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤7🤯2
Новый API для поддержки динамически генерируемых схем OpenAPI в документации, появившийся в
🐸 🐸
👉 @KodBlog
ASP.NET 10 Preview 4Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3
Совет по LINQ:
Вызывай
Почему?
> В первом случае всё загружается в память до фильтрации
> Во втором — фильтрация происходит на источнике, что лучше для БД или больших коллекций
> Особенно важно при работе с EF Core или API, использующих
🎉 🎉
👉 @KodBlog
Вызывай
ToList() после фильтрации, а не до.Почему?
> В первом случае всё загружается в память до фильтрации
> Во втором — фильтрация происходит на источнике, что лучше для БД или больших коллекций
> Особенно важно при работе с EF Core или API, использующих
IQueryablePlease open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥5😁5🤯1
ASP dotnet: кастомный файл инструкций для GitHub Copilot
Создание файла
Выше — фрагмент текущего файла инструкций для репозитория dotnet/aspnetcore, который был слит менее часа назад.
Эта функция сейчас находится в превью и поддерживается в Copilot Chat для Visual Studio, VS Code и на сайте GitHub. Также поддерживается агентом Copilot для написания кода.
Что думаете?💪
👉 @KodBlog
Создание файла
copilot-instructions.md позволяет задать дополнительные инструкции для Copilot, чтобы его ответы были адаптированы под конкретный репозиторий.Выше — фрагмент текущего файла инструкций для репозитория dotnet/aspnetcore, который был слит менее часа назад.
Эта функция сейчас находится в превью и поддерживается в Copilot Chat для Visual Studio, VS Code и на сайте GitHub. Также поддерживается агентом Copilot для написания кода.
Что думаете?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Часто при создании моделей я сначала пишу их в одном файле, а уже потом с помощью ReSharper быстро раскидываю каждую модель в отдельный файл — буквально в пару кликов мышкой.
Такой подход лично для меня удобнее:
> не нужно сразу прыгать между десятками файлов
> всё видно и правится в одном месте
> а уже потом ReSharper сам всё красиво разносит по файлам
— Гайд: Как ReSharper разносит классы по файлам
👉 @KodBlog
Такой подход лично для меня удобнее:
> не нужно сразу прыгать между десятками файлов
> всё видно и правится в одном месте
> а уже потом ReSharper сам всё красиво разносит по файлам
— Гайд: Как ReSharper разносит классы по файлам
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍6