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

Связь: @devmangx

РКН: https://clck.ru/3FocB6
Download Telegram
Строки подключения, пароли, учетные данные...

Не храните свои секреты в appsettings.json 👇

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

Azure Key Vault предлагает безопасное управляемое решение для хранения секретов, позволяя хранить конфиденциальные данные вне локальных файлов в защищенной облачной среде.

В .NET 8 интеграция Azure Key Vault с пакетами Azure Extensions и Microsoft Extensions Configuration выполняется очень просто. 😕

После настройки мы можем использовать значения из Azure Key Vault через конфигурацию так же, как это делается для appsettings.json.

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124🔥2
Media is too big
VIEW IN TELEGRAM
Чистая архитектура в ASP.NET Core. Структура реального проекта

Видео объясняет концепцию чистой архитектуры, её слои и их взаимодействие для эффективного проектирования программного обеспечения.

📲 Cмотреть источник: тут

👉 @KodBlog | #курсы
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥1
Не замедляйте свои .NET приложения этой распространенной ошибкой!

Вы когда-нибудь использовали сount() > 0, чтобы проверить, есть ли элементы в коллекции?

Это работает, но на самом деле это скрытно ухудшает производительность вашего приложения 😢

Лучше используйте Any() вместо этого

Почему Any() лучше, чем Count()?

Any() останавливается, как только находит первый элемент.
Count() проверяет каждый элемент, даже если это не нужно.
В EF Core Any() превращается в легкий запрос
Any() не загружает ненужные данные.

Используйте это:
if (items.Any()) 
{ }


Не используйте это:
if (items.Count() > 0) 
{ }


Это небольшое изменение, но оно может существенно улучшить производительность!

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍376🔥3
Test Doubles в интеграционных тестах на ASP.NET Core

📖 Читать: ссылка

👉 @KodBlog | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Glyphion — экспериментальный игровой движок, который визуализирует 2D и 3D игры на терминале.

Созданный с помощью .NET, Glyphion предлагает уникальный подход к разработке игр, привнося очарование ASCII-графики в современный игровой дизайн.

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍2🎉1
Media is too big
VIEW IN TELEGRAM
Thread → Task. Многопоточность и Асинхронность

В этом видео о thread, многопоточности, task и асинхронности, чем многопоточность отличается от асинхронности.
Была ли асинхронность в thread, а так же мелкие вопросы из собеседований. 🙂

👉 @KodBlog | #курсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍144👏2
Постраничная навигация с использованием смещения (Offset pagination) работает нормально для небольших наборов данных.

Для больших наборов данных лучше использовать другой подход:

Это называется Keyset pagination или постраничная навигация на основе ключей, и это гораздо более эффективный способ работы с большими наборами данных. 🧠

Проблема постраничной навигации со смещением (skip и take) заключается в том, что база данных все равно должна обработать пропущенные записи, даже если они не используются.

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

Если ваш столбец ID проиндексирован, запросы с использованием Keyset pagination будут очень эффективными даже для больших наборов данных.

Что делать, если вы используете GUID в качестве идентификаторов? 🤔 Тогда используйте UUID версии 7, которые разработаны для обеспечения глобальной уникальности и сортируемости.

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍123
Создание фоновых задач в .NET с запросом состояния запущенного таска

📖 Читать: ссылка

👉 @KodBlog | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥4
В .NET 10 появится числовой StringComparer.

Это позволит сравнивать числа на основе их числового значения, а не лексикографического порядка.

Ждём?)😮

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
😐20👍15🤔32🔥1
Media is too big
VIEW IN TELEGRAM
Как хэшировать пароли с помощью BCrypt в C#

Видео посвящено лучшим практикам работы с паролями, включая важность их безопасности, использование хэширования (например, BCrypt) для защиты, и демонстрацию его применения на практике.

📲 Cмотреть источник: тут

👉 @KodBlog | #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥3
Как использовать условный middleware в .NET?

В динамичном мире веб-разработки эффективное управление входящими HTTP-запросами является ключом к созданию надежных и производительных приложений.

Middleware в .NET играет важную роль в обработке этих запросов, формируя мост между сервером и приложением.

Одним из мощных инструментов в ASP.NET Core является app.UseWhen, который позволяет разработчикам применять middleware условно, исходя из определённых критериев.
Преимущества такого подхода:

🟣 Оптимизация производительности
🟣 Чистая организация кода
🟣 Выборочное применение middleware

app.UseWhen особенно полезен для приложений с определёнными потребностями в маршрутизации или обработке.

Хотя для простых приложений это может быть необязательно, в более сложных сценариях app.UseWhen значительно улучшает производительность и организацию кода.

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥2
Понимание ApplicationDbContext, DbContext и DbSet в .NET Core

📖 Читать: ссылка

👉 @KodBlog | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥2
Media is too big
VIEW IN TELEGRAM
Dockerized — запуск популярных инструментов командной строки в докере, не устанавливая их.

Работает в GNU/Linux, MacOS и Windows (CMD, Powershell, Git Bash).

Полезно, если вы не хотите загрязнять свою систему множеством инструментов, которые вы не используете.

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
Media is too big
VIEW IN TELEGRAM
Собеседование .NET - Разбор вопросов

Видео посвящено разбору вопросов, часто встречающихся на собеседованиях по .NET, с акцентом на многопоточность, async/await, паттерны, работу сборщика мусора, коллизии данных и ASP.NET Core.

📲 Cмотреть источник: тут

👉 @KodBlog | #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Учебный полигон для хакеров и защитников Kubernetes 🤣

Kubernetes Goat
— это учебный проект для изучения безопасности Kubernetes.

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

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥3👍2
Оптимизация SQL-миграций в .NET приложениях

📖 Читать: ссылка

👉 @KodBlog | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤‍🔥3🔥1
Панель управления на основе терминала для мониторинга кластеров Elasticsearch в режиме реального времени.

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

Этот инструмент визуально похож на HTOP

Ссылка: тык

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82🔥1
Media is too big
VIEW IN TELEGRAM
Курс .NET 9 Web API и Entity Framework: CRUD, Code-First миграции и SQL Server.

Видео демонстрирует процесс создания проекта с использованием OpenAPI и Entity Framework для реализации операций CRUD (создание, чтение, обновление, удаление) с моделью VideoGame и подключением к базе данных SQL Server.

📲 Cмотреть источник: тут

👉 @KodBlog | #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥4
Что такое разрушающее изменение для API?

Вот несколько примеров:

🟡 Удаление или переименование API или его параметров
🟡 Изменение поведения существующих API
🟡 Изменение кодов ошибок API

Разрушающее изменение означает, что вам нужно внедрить версионирование API — иначе вы рискуете сломать работу существующих потребителей.

К счастью, ASP.NET Core упрощает внедрение версионирования API.❤️

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍95🔥2
Как работает процесс компиляции в .NET

📖 Читать: ссылка

👉 @KodBlog | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10😐6😁5🔥2🌚1
Почти каждый разработчик программного обеспечения использовал Linux, но лишь немногие знают, как работает его процесс загрузки

Давайте разберемся. 😐

Шаг 1 – Когда мы включаем питание, загружается прошивка BIOS (Basic Input/Output System) или UEFI (Unified Extensible Firmware Interface) из энергонезависимой памяти и выполняет POST (Power On Self Test, самотестирование при включении).

Шаг 2 – BIOS/UEFI определяет устройства, подключенные к системе, включая процессор, оперативную память и хранилище данных.

Шаг 3 – Выбирается устройство для загрузки операционной системы. Это может быть жёсткий диск, сетевой сервер или CD-ROM.

Шаг 4 – BIOS/UEFI запускает загрузчик (например, GRUB), который предоставляет меню для выбора операционной системы или функций ядра.

Шаг 5 – После подготовки ядра система переключается в пользовательское пространство. Ядро запускает systemd как первый процесс пользовательского пространства, который управляет процессами и службами, проверяет оставшееся оборудование, монтирует файловые системы и запускает рабочий стол.

Шаг 6 – systemd активирует модуль по умолчанию (default.target) при загрузке системы. Также выполняются другие модули.

Шаг 7 – Система выполняет набор стартовых скриптов и настраивает окружение.

Шаг 8 – Пользователям представляется окно входа. Система готова к работе.

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥3