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

Связь: @devmangx

РКН: https://clck.ru/3FocB6
Download Telegram
Эффективное управление ошибками в DDD: подход через Result Pattern

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

👉 @KodBlog | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🙏1
This media is not supported in your browser
VIEW IN TELEGRAM
С этим расширением для Visual Studio Code ты сможешь понять любой проект

Оно создает интерактивную диаграмму архитектуры, технологий и самых важных файлов.

https://marketplace.visualstudio.com/items?itemName=peterjx.code-viz

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥54
Метод LINQ Shuffle() появится в .NET 10 🔥

Это было слито Стивеном Таубом

Что ты думаешь?
Полезное дополнение?

👉 @KodBlog | #news
Please open Telegram to view this post
VIEW IN TELEGRAM
👀12🔥7👍4
Диаграмма жизненного цикла запросов Entity Framework

🍩Контроллер или сервис отправляет запрос на получение данных.

🍩Работа с DbContext:

-Проверка кэша запросов и отслеживания изменений.
-Трансляция LINQ-запроса в SQL.
-Компиляция запроса (если необходимо).

🍩Обращение к базе данных:

- Выполнение SQL-запроса в базе данных.
- Возврат результатов запроса.

🍩Обработка результатов:

- Преобразование данных из базы в сущности (Hydrate Results).
- Создание объектов сущностей (например, объектов игроков — Player).
- Привязка изменений для отслеживания (если применяется).

🍩Возврат данных:

- Сервис или контроллер получает коллекцию данных (объекты сущностей).
- Обработка данных (если требуется).
- Завершение работы с контекстом (Dispose).

Диаграмма помогает понять, как данные проходят через слои приложения от контроллера до базы данных и обратно.

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥5👏2👍1
Рассмотрите возможность возврата пустой коллекции вместо null в методах.

Это предотвращает NullReferenceException.

Нет необходимости проверять на null перед использованием коллекции.

Вы можете легко объединять метод с методами LINQ.

Вы возвращаете предсказуемый тип.

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
29🔥4❤‍🔥1👏1
Как интегрировать CIBA в .NET-приложения для повышения безопасности и конфиденциальности.

CIBA — это стандартный поток для раздельной аутентификации, определенный OpenID Foundation, который используется, когда пользователь не может напрямую взаимодействовать с приложением.

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

https://auth0.com/blog/use-ciba-authentication-with-auth0-dotnet/

👉 @KodBlog | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥1
Пример неисправности страницы

🟢Используется таблица страниц с 16 виртуальными страницами (VPN) и 8 физическими страницами (PPN).
🟢Виртуальный адрес (VA) состоит из 12 бит (4 бита VPN и 8 бит смещения).
🟢Физический адрес (PA) состоит из 11 бит (3 бита PPN и 8 бит смещения).
🟢Произошло страничное прерывание при доступе к VPN 0x6, так как страница отсутствовала в памяти.
🟢Используется политика LRU (Least Recently Used) для замены страниц, удаляется VPN 0xE.
🟢Данные VPN 0xE записываются на диск, затем загружается VPN 0x6.
🟢Обновляется таблица страниц: VPN 0x6 теперь соответствует PPN 0x5.
🟢Происходит запись, поэтому бит "D" (Dirty) для VPN 0x6 устанавливается в 1.

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

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🙏1
Паттерны Kubernetes

📝В книге рассматриваются фундаментальные, поведенческие, структурные, конфигурационные и защитные шаблоны, а также сложные темы, такие как операторы и автоскейлинг.

Получите свой экземпляр:
https://developers.redhat.com/e-books/kubernetes-patterns

👉 @KodBlog | #books
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1😁1
Вы, вероятно, неправильно регистрируете внедрение зависимостей! 💀

Обычно при внедрении зависимостей (Dependency Injection, DI) программисты вручную регистрируют каждую зависимость в контейнере:

Это утомительно и может привести к ошибкам.

AutoRegister автоматизирует этот процесс, упрощая регистрацию всех сервисов.

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥4
Какой тема лучше для VS Code? 😦

Перестань искать. Здесь собраны все темы, которые можно отфильтровать по языку программирования, количеству установок или популярности, предварительно просмотреть и установить в редактор одним кликом.

vscodethemes.com

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍3❤‍🔥21
Оркестратор платежей с открытым исходным кодом 😢

HyperSwitch — это открытый платежный оркестратор от компании Juspay. Он позволяет бизнесам подключать и управлять множеством платежных провайдеров через единую интеграцию.

🟢Единый API для работы с разными платежными шлюзами (Stripe, Adyen, PayPal и др.).
🟢Оптимизация платежей: выбирает лучший шлюз по стоимости, скорости или успешности платежей.
🟢Кеширование карт для ускорения транзакций.
🟢Поддержка разных валют и регионов.

Ознакомиться:
https://github.com/juspay/hyperswitch

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3👌2
Как развернуть .NET-приложение в контейнере?

Без Dockerfile! Вот как:

Шаг 1: Создаём Docker-образ

Это самый простой шаг благодаря встроенной поддержке контейнеров в .NET 8.

Просто запустите стандартную команду dotnet publish с аргументом PublishContainer и тегом образа.

Через несколько секунд ваш новый Docker-образ будет готов. Dockerfile не нужен.

Шаг 2: Отправляем образ в Docker-реестр

Docker-реестр — это хранилище, где можно сохранять и делиться образами.

Если используете Azure Container Registry, просто войдите в систему и снова выполните команду dotnet publish, добавив аргумент ContainerRegistry.

На самом деле, шаги 1 и 2 можно выполнить одной строкой, и после этого ваш образ будет готов к развертыванию из ACR.

Шаг 3: Загружаем образ на продакшен-сервер

Зайдите на свой продакшен-сервер, установите Docker и авторизуйтесь в ACR с помощью команды docker login.

Затем выполните docker pull, чтобы загрузить готовый образ на сервер за считаные секунды.

Шаг 4: Запускаем приложение в продакшене как контейнер

Используйте команду docker run, чтобы запустить ваше .NET-приложение в контейнере.

📝Результат

Ваше .NET-приложение запущено в продакшене, и вам не пришлось устанавливать ничего, кроме Docker. И никакого Dockerfile!

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥42👌1
This media is not supported in your browser
VIEW IN TELEGRAM
БРУТАЛЬНОЕ расширение для Visual Studio Code! 😳

Git Graph — предоставляет графическое представление вашего Git-репозитория, облегчая визуализацию и управление историей коммитов.

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

И оно бесплатное!
https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥3👍2
Media is too big
VIEW IN TELEGRAM
C# Factory Method Фабричный Метод | Design Patterns

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

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

👉 @KodBlog | #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥74
Функциональное программирование сделает вас лучшим .NET-разработчиком

Пора добавить его в ваш арсенал инструментов.

Хотя C# является объектно-ориентированным языком программирования, в последних версиях были добавлены многие функциональные особенности.

Вот несколько из них:
🔸Сопоставление с образцом (Pattern matching)
🔸Выражения switch
🔸Records

Вероятно, вы уже используете функциональное программирование, даже не осознавая этого.

Используете LINQ?

Если да, то вы уже работаете с функциональным программированием, потому что LINQ — это функциональная библиотека .NET.

Вот как можно рефакторить императивный код в функциональный в C#: How to apply functional programming in C#

👉 @KodBlog | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍43🥴1
Начало работы с BenchmarkDotNet

BenchmarkDotNet стал стандартом де-факто для измерения производительности в dotnet.😢

Начать очень просто:

🟢Установите BDN из NuGet
🟢Создайте класс, содержащий ваши методы
🟢Добавьте атрибут [Benchmark] к нужным методам
🟢Вызовите BenchmarkRunner.Run для вашего класса
🟢Запустите без отладки и в режиме релиза

Простой пример выше показывает, как сравнить два разных подхода к конкатенации строк, а также как задать базовую конфигурацию, например, установить эталон и выбрать версию .NET.

Код примера — вставьте его в консольное приложение и просто начните экспериментировать.

Я действительно обожаю этот инструмент.

А вы уже пробовали его?

👉 @KodBlog | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2🙏1
Подробное руководство для подготовки к собеседованию на позицию старшего инженера C#.

Она содержит более 30 углубленных вопросов с детальными объяснениями и ответами,

🟢Обработка транзакций
🟢Распределенные системы
🟢Оптимизация производительности
🟢Безопасность
🟢Проектирование систем

Статья будет полезна специалистам, стремящимся углубить свои знания и подготовиться к собеседованиям на позиции старшего инженера C#. 😮

Читать:
https://dev.to/iamcymentho/mastering-the-senior-c-engineer-interview-3dc2

👉 @KodBlog | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1👏1😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Генерируйте диаграммы отношений сущностей (ER-диаграммы) в формате Mermaid из модели EF Core прямо в .NET Interactive Notebook в VSCode, начиная всего лишь с базы данных

👉 @KodBlog | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3👏2
Media is too big
VIEW IN TELEGRAM
Докеризация приложения .NET за 5 минут!

В сегодняшнем видео мы увидим, насколько просто контейнеризировать .NET-приложение с помощью Docker.
Мы создадим Dockerfile с тремя этапами: сборка, публикация и запуск веб-приложения всего за несколько минут.

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

👉 @KodBlog | #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2🤔1
В .NET 9 введен новый тип Base64Url.

Существующий метод Convert.ToBase64String может генерировать строку с символами '/', '+', или '=', которые не безопасны для использования в URL, поскольку они имеют особое значение в URL.

Вместо этого, помощник Base64Url генерирует строку без этих символов.

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥63🎉2
Создание CRUD API с использованием ASP.NET Core Web API и базы данных PostgreSQL

📝Автор подробно описывает процесс разработки, начиная с настройки проекта и конфигурации подключения к базе данных, и заканчивая реализацией операций создания, чтения, обновления и удаления (CRUD) через Entity Framework Core.

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

Читать:
https://dev.to/olymahmud/building-a-crud-api-with-aspnet-core-web-api-and-postgresql-p5f

👉 @KodBlog | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13😐31🤔1🌚1