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

Связь: @devmangx

РКН: https://clck.ru/3FocB6
Download Telegram
Как развернуть .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
Коллекция вспомогательных методов и классов для .NET, 😏

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

Цель этой библиотеки — избежать дублирования кода, объединив часто используемые функции в одном месте.

Библиотека доступна на NuGet и может быть установлена с помощью команды: 👇

dotnet add package TinyHelpers


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

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥41
Docker для развертывания .NET приложений! 🙂

Шаг 1: Создание Docker-образа


Объедините код вашего .NET приложения, базовый образ Linux и среду выполнения ASP.NET Core, используя инструкции Docker, такие как FROM и COPY. Затем выполните команду docker build, и у вас будет готовый переносимый Docker-образ, готовый к использованию.

Шаг 2: Публикация образа

Используйте команду docker push, чтобы загрузить ваш образ в репозиторий, например, DockerHub или Amazon ECR. Теперь он доступен отовсюду и готов к работе. 😎

Шаг 3: Извлечение и запуск образа

Наконец, давайте оживим ваше приложение. Ваш образ запускается как контейнер с помощью команд docker pull и docker run, обеспечивая единообразие среды на всех платформах. 😕

Звучит интересно? Тогда можешь прочитать статью о Docker для разработчиков .NET,

👉 @KodBlog | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73
Как выполнить код для каждого нового запроса? 😏

В ASP.NET Core для этого используется ключевая функция: middleware (Промежуточное ПО)

Middleware — это программные компоненты, которые собираются в конвейер обработки запросов и ответов.

В ASP.NET Core middleware используется повсеместно для таких задач, как:

🟢Аутентификация
🟢Маршрутизация (Routing)
🟢CORS
🟢Проверка состояния (Health checks)
🟢Ограничение частоты запросов (Rate limiting)
И многое другое...

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

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

Вот пошаговое руководство с примерами кода: клик

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤣2🔥1
Пример LeftJoin до/после в .NET 10

В .NET 10 в LINQ появится LeftJoin, который будет поддерживаться в Entity Framework. Вот пример до и после, показывающий, как это может немного упростить наш код. 🥳

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍114🎉1
This media is not supported in your browser
VIEW IN TELEGRAM
Рефакторинг. То самое занятие, когда ты ломаешь свой код, чтобы будущий ты мог разгадывать веселые головоломки.👍

Функция Next Edit Suggestions в GitHub Copilot делает рефакторинг менее болезненным. Все, что нужно — нажать Tab.

🔜 Подробнее: клик

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2👏2
Что такое Webhook?

Вот пример, который поможет тебе понять.👇

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

Здесь и приходят на помощь вебхуки! 😏

Webhooks – это как посыльные, которые позволяют одной системе отправлять сообщение другой системе при наступлении определённого события. Это похоже на уведомления на телефоне, когда кто-то комментирует твой пост в соцсетях или когда приходит новое письмо на email.

Вебхуки работают аналогично, но для систем и приложений.
Основной процесс работы вебхуков:

🟢Сервис A предоставляет вебхук
🟢Сервис B подписывается на вебхук от Сервиса A
🟢Сервис A сохраняет подписку
🟢В Сервисе A происходит событие
🟢Сервис A отправляет вебхук-запрос в Сервис B

Как можно использовать вебхуки?

🟢Автоматическое обновление базы данных
🟢Запуск определённых действий при отправке формы на сайте
🟢Отправка уведомлений и оповещений (например, при регистрации нового пользователя или возникновении ошибки в системе)

📝Главное преимущество вебхуков — асинхронная обработка данных.

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥21🙏1
Чейл! 😱

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
😁26🔥2🥰1
Масштабируй .NET-приложения с проверенными практиками. Стратегии обработки миллионов запросов.

📝Статья рассказывает о масштабировании .NET-приложений для обработки миллионов запросов, включая микросервисы, кэширование (Redis), асинхронное программирование (async/await), оптимизацию запросов, использование облачных сервисов (Azure, AWS), контейнеризацию (Docker, Kubernetes) и мониторинг (Application Insights, Prometheus). 🥳

Читать:
https://dev.to/leandroveiga/mastering-net-scalability-proven-strategies-to-handle-millions-of-requests-per-second-2f45

👉 @KodBlog | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍3🌚2
Шаблон объекта параметров (Parameter Object Pattern) – до и после

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

Это упростит модификацию и сделает сигнатуру метода более читаемой.🧠

Когда использовать шаблон объекта параметров?

Произвольное количество параметров:
ВСЕГДА применять POP после 3, 4, 5 и более параметров – не лучший подход.
Всё зависит от контекста.

Связанность параметров:
Если параметры тесно связаны, стоит использовать POP.

Количество мест использования:
Если одна и та же группа параметров используется в нескольких местах, их имеет смысл объединить в объект.
НО, если параметры нигде больше не переиспользуются, разве не перемещает POP «проблему» просто в конструктор нового объекта?

Читаемость и поддерживаемость кода:
Если большое количество параметров делает код сложным для понимания и поддержки, рассмотрите POP.

Что думаете? 🤔

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4🌚2