Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤4🎉2
Media is too big
VIEW IN TELEGRAM
Использование JWT в ASP.Net Core
В видео объясняются основные шаги: настройка библиотеки JwtBearer, создание конфигурации для эмитента, аудитории и ключа, хеширование паролей, добавление зависимостей, генерация токенов, настройка контроллеров и использование Swagger для тестирования. Автор показывает пример использования токена для авторизации и работы с методами API, а также предлагает доступ к исходному коду на Patreon.
📲 Cмотреть источник: тут
👉 @KodBlog | #курсы
В видео объясняются основные шаги: настройка библиотеки JwtBearer, создание конфигурации для эмитента, аудитории и ключа, хеширование паролей, добавление зависимостей, генерация токенов, настройка контроллеров и использование Swagger для тестирования. Автор показывает пример использования токена для авторизации и работы с методами API, а также предлагает доступ к исходному коду на Patreon.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1
Это здорово, что ты можешь написать интерфейс, и этого достаточно для интеграции с сторонним API. 😊
Refit — это библиотека для .NET, которая упрощает работу с REST API. Вместо того чтобы вручную писать код для взаимодействия с API, ты просто создаешь интерфейс с нужными методами, и Refit автоматически генерирует код для подключения к API, используя HttpClient.
👉 @KodBlog | #ресурсы
Refit — это библиотека для .NET, которая упрощает работу с REST API. Вместо того чтобы вручную писать код для взаимодействия с API, ты просто создаешь интерфейс с нужными методами, и Refit автоматически генерирует код для подключения к API, используя HttpClient.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍2
Строки подключения, пароли, учетные данные...
Не храните свои секреты в👇
Хотя это удобно, такой подход может представлять угрозу безопасности, если не обработан должным образом.
Azure Key Vault предлагает безопасное управляемое решение для хранения секретов, позволяя хранить конфиденциальные данные вне локальных файлов в защищенной облачной среде.
В .NET 8 интеграция Azure Key Vault с пакетами Azure Extensions и Microsoft Extensions Configuration выполняется очень просто.😕
После настройки мы можем использовать значения из Azure Key Vault через конфигурацию так же, как это делается для
👉 @KodBlog | #ресурсы
Не храните свои секреты в
appsettings.json Хотя это удобно, такой подход может представлять угрозу безопасности, если не обработан должным образом.
Azure Key Vault предлагает безопасное управляемое решение для хранения секретов, позволяя хранить конфиденциальные данные вне локальных файлов в защищенной облачной среде.
В .NET 8 интеграция Azure Key Vault с пакетами Azure Extensions и Microsoft Extensions Configuration выполняется очень просто.
После настройки мы можем использовать значения из Azure Key Vault через конфигурацию так же, как это делается для
appsettings.json.Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4🔥2
Не замедляйте свои .NET приложения этой распространенной ошибкой!
Вы когда-нибудь использовали
Это работает, но на самом деле это скрытно ухудшает производительность вашего приложения😢
Лучше используйте Any() вместо этого
Почему Any() лучше, чем Count()?
Any() останавливается, как только находит первый элемент.
Count() проверяет каждый элемент, даже если это не нужно.
В EF Core Any() превращается в легкий запрос
Any() не загружает ненужные данные.
☑ Используйте это:
❌ Не используйте это:
Это небольшое изменение, но оно может существенно улучшить производительность!
👉 @KodBlog | #ресурсы
Вы когда-нибудь использовали
сount() > 0, чтобы проверить, есть ли элементы в коллекции? Это работает, но на самом деле это скрытно ухудшает производительность вашего приложения
Лучше используйте Any() вместо этого
Почему Any() лучше, чем Count()?
Any() останавливается, как только находит первый элемент.
Count() проверяет каждый элемент, даже если это не нужно.
В EF Core Any() превращается в легкий запрос
Any() не загружает ненужные данные.
if (items.Any())
{ }
if (items.Count() > 0)
{ }
Это небольшое изменение, но оно может существенно улучшить производительность!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍37❤6🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍2🎉1
Постраничная навигация с использованием смещения (Offset pagination) работает нормально для небольших наборов данных.
Для больших наборов данных лучше использовать другой подход:
Это называется Keyset pagination или постраничная навигация на основе ключей, и это гораздо более эффективный способ работы с большими наборами данных.🧠
Проблема постраничной навигации со смещением (skip и take) заключается в том, что база данных все равно должна обработать пропущенные записи, даже если они не используются.
Но при использовании Keyset pagination пропускать записи не нужно. Достаточно запомнить последний ключ, который был извлечен, и использовать его для получения следующих строк.
Если ваш столбец ID проиндексирован, запросы с использованием Keyset pagination будут очень эффективными даже для больших наборов данных.
Что делать, если вы используете GUID в качестве идентификаторов?🤔 Тогда используйте UUID версии 7, которые разработаны для обеспечения глобальной уникальности и сортируемости.
👉 @KodBlog | #ресурсы
Для больших наборов данных лучше использовать другой подход:
Это называется Keyset pagination или постраничная навигация на основе ключей, и это гораздо более эффективный способ работы с большими наборами данных.
Проблема постраничной навигации со смещением (skip и take) заключается в том, что база данных все равно должна обработать пропущенные записи, даже если они не используются.
Но при использовании Keyset pagination пропускать записи не нужно. Достаточно запомнить последний ключ, который был извлечен, и использовать его для получения следующих строк.
Если ваш столбец ID проиндексирован, запросы с использованием Keyset pagination будут очень эффективными даже для больших наборов данных.
Что делать, если вы используете GUID в качестве идентификаторов?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3
Как использовать условный middleware в .NET?
В динамичном мире веб-разработки эффективное управление входящими HTTP-запросами является ключом к созданию надежных и производительных приложений.
Middleware в .NET играет важную роль в обработке этих запросов, формируя мост между сервером и приложением.
Одним из мощных инструментов в ASP.NET Core является app.UseWhen, который позволяет разработчикам применять middleware условно, исходя из определённых критериев.
Преимущества такого подхода:
🟣 Оптимизация производительности
🟣 Чистая организация кода
🟣 Выборочное применение middleware
app.UseWhen особенно полезен для приложений с определёнными потребностями в маршрутизации или обработке.
Хотя для простых приложений это может быть необязательно, в более сложных сценариях app.UseWhen значительно улучшает производительность и организацию кода.
👉 @KodBlog | #ресурсы
В динамичном мире веб-разработки эффективное управление входящими HTTP-запросами является ключом к созданию надежных и производительных приложений.
Middleware в .NET играет важную роль в обработке этих запросов, формируя мост между сервером и приложением.
Одним из мощных инструментов в ASP.NET Core является app.UseWhen, который позволяет разработчикам применять middleware условно, исходя из определённых критериев.
Преимущества такого подхода:
app.UseWhen особенно полезен для приложений с определёнными потребностями в маршрутизации или обработке.
Хотя для простых приложений это может быть необязательно, в более сложных сценариях app.UseWhen значительно улучшает производительность и организацию кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2🔥2
Media is too big
VIEW IN TELEGRAM
Dockerized — запуск популярных инструментов командной строки в докере, не устанавливая их.
Работает в GNU/Linux, MacOS и Windows (CMD, Powershell, Git Bash).
Полезно, если вы не хотите загрязнять свою систему множеством инструментов, которые вы не используете.
👉 @KodBlog | #ресурсы
Работает в GNU/Linux, MacOS и Windows (CMD, Powershell, Git Bash).
Полезно, если вы не хотите загрязнять свою систему множеством инструментов, которые вы не используете.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Учебный полигон для хакеров и защитников Kubernetes 🤣
Kubernetes Goat — это учебный проект для изучения безопасности Kubernetes.
Он предоставляет практические сценарии с уязвимостями, чтобы пользователи могли изучать методы атак и защиты в Kubernetes-кластерах.
👉 @KodBlog | #ресурсы
Kubernetes Goat — это учебный проект для изучения безопасности Kubernetes.
Он предоставляет практические сценарии с уязвимостями, чтобы пользователи могли изучать методы атак и защиты в Kubernetes-кластерах.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥3👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤🔥3🔥1
Панель управления на основе терминала для мониторинга кластеров Elasticsearch в режиме реального времени.
Она предоставляет полное представление о состоянии кластера, статусе узлов, индексах и различных показателях производительности в удобном для чтения интерфейсе терминала
Этот инструмент визуально похож на HTOP✋
⛓ Ссылка: тык
👉 @KodBlog | #ресурсы
Она предоставляет полное представление о состоянии кластера, статусе узлов, индексах и различных показателях производительности в удобном для чтения интерфейсе терминала
Этот инструмент визуально похож на HTOP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2🔥1