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

Связь: @devmangx

РКН: https://clck.ru/3FocB6
Download Telegram
Использование is null для проверки на null вместо == null в выражениях типа is в C# 9+

С появлением C# 9 был введен более элегантный способ проверки на null с помощью паттерн-матчинга.

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥256👍4
Как создать минимальное API в ASP.NET Core с использованием .NET 8.

Читать: клик

👉 @KodBlog | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥62👍2
Топ-5 стратегий кеширования:

Чтение через кеш (Read Through): Данные загружаются в кеш при промахе, причем кеш обрабатывает чтение из базы данных.
— Лучший вариант для: приложений с высокой нагрузкой на чтение, таких как CDN, ленты соцсетей и пользовательские профили.

Кеш в стороне (Cache Aside, Lazy Loading): Приложение сначала проверяет кеш, а при отсутствии данных извлекает их из базы и сохраняет в кеш.
— Лучший вариант для: систем с высоким соотношением чтения к записи, например, интернет-магазины.

Запись через кеш (Write Through): Запись происходит одновременно и в кеш, и в базу данных, что гарантирует консистентность данных.
— Лучший вариант для: систем, критичных к целостности данных, таких как финансовые приложения.

Запись в обход кеша (Write Around): Данные записываются напрямую в базу данных, минуя кеш. Кеш обновляется при следующем чтении.
— Лучший вариант для: систем с высокой нагрузкой на запись, где данные не нужны немедленно, например, журналы логирования.

Запись с обратной синхронизацией (Write Back): Данные сначала записываются в кеш, а затем асинхронно в базу данных, что снижает задержки при записи.
— Лучший вариант для: систем с высокой нагрузкой на запись, таких как ленты соцсетей.

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥21
Media is too big
VIEW IN TELEGRAM
Создайте трекер расходов с помощью Asp.Net Core MVC

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

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

👉 @KodBlog | #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥311
Легкий pub/sub для .NET — Marille

Если нужно управлять множеством каналов и организовать pub/sub (публикации и подписки) внутри .NET-приложения — Marille отлично подойдет 😏

Простое управление темами и подтемами сообщений
Основано на System.Threading.Channels
Высокая производительность и минимальные накладные расходы
Поддержка .NET Core и .NET 6+

Использовали Marille в проектах?

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
FluentValidation делает валидацию ввода проще простого.

Знаете ли вы, что валидаторы поддерживают внедрение зависимостей (DI)?

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

Посмотрите фрагмент кода на фото в качестве примера.

Милан использует FluentValidation вместе с MediatR для реализации универсального конвейера валидации (middleware).

Подробно можно посмотреть здесь: ссылка

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍631
Может кто помнит есть такая игра — Linux Survival называется.

В общем, если нужно быстро освоить базовые команды Linux — вот это как раз то, что надо.

Заходишь на сайт, выбираешь уровень, выполняешь задания прямо в браузере — и БАЦ, ты уже знаешь, как перемещаться по файловой системе, создавать файлы и папки, и даже работать с правами доступа. 🖥

Без регистрации и бесплатно.

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥2🍓21
Андерс Хейлсберг, ведущий архитектор TypeScript объясняет, почему Microsoft перевела компилятор TypeScript с JavaScript на Go, а не на C#.

Основные причины выбора Go:

Простая совместимость с текущей кодовой базой.

Эффективное управление памятью и обработка графов.

Упрощение портации без необходимости кардинального переписывания.

При этом он подчеркивает, что C# остается ключевым языком Microsoft, особенно для .NET и облачных решений. Решение о переходе на Go продиктовано исключительно техническими причинами, а не отказом от C#.

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16😈8🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Cline + GitHub: мгновенный разбор кода

Хотите быстро разобраться, как работает библиотека с GitHub? Лови лайфхак 😎

Просто вставляешь ссылку на репозиторий в Cline – и он объясняет, как использовать код!

Запоминаем и пользуемся!

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Реддитор подогнал годный тул для разрабов на Unity.

Unity Source Bot
— это поиск по 1000+ репозиториям с проектами на движке. Идеально, когда дока снова больше запутала, чем помогла.

Можно быстро глянуть, как другие уже заюзали нужную фичу 👍

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍411
This media is not supported in your browser
VIEW IN TELEGRAM
💡 СОВЕТ для ваших GitHub README

Выделяйте важную информацию для ваших пользователей с помощью этих специальных блоков Markdown:

[!NOTE] - используется для заметок (дополнительной информации, полезной для пользователя).

[!TIP] - обозначает совет или полезное предложение.

[!IMPORTANT] - подчеркивает важную информацию.

[!WARNING] - указывает на что-то, требующее внимания пользователя.

[!CAUTION] - осторожность (аналогично предупреждению, но с более серьезным тоном).

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥7
🔍 Нашёл топовую библиотеку для логирования!

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

Поддержка множества синков (куда писать логи)
Гибкая настройка уровней логирования
Поддержка разметки шаблонов

Лучше сразу внедрять в проект 😂

👉 @KodBlog | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣17👍95🔥1
Различия между HTTP/1, HTTP/2 и HTTP/3

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

1. HTTP/1.1 (1997)

Оригинальный протокол, определивший взаимодействие в вебе, использует простые методы, такие как GET и POST. Однако с развитием веба, появлением сложных приложений, потокового HD-видео и других нагрузок HTTP/1.1 столкнулся с рядом ограничений:

Проблема head-of-line (HOL) blocking, замедляющая загрузку ресурсов.

Избыточные HTTP-заголовки.

Необходимость устанавливать несколько TCP-соединений для параллельной загрузки ресурсов.

2. HTTP/2 (2015)

Значительный шаг вперед, включающий:

Сжатие заголовков для экономии трафика.

Мультиплексирование – возможность одновременной передачи нескольких запросов в одном TCP-соединении.

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

Бинарное кодирование вместо текстового, что ускоряет обработку.

HTTP/2 позволил сократить число TCP-соединений, ускоряя загрузку страниц и оптимизируя использование ресурсов сети. Однако он все еще страдал от TCP head-of-line blocking и проблем безопасности, таких как Stream Reuse Attack.

3. HTTP/3 (2020)

Основан на протоколе QUIC и использует UDP вместо TCP, что дает:

Полное устранение head-of-line blocking TCP.

Улучшенную миграцию соединений (например, при смене Wi-Fi на мобильную сеть).

Встроенное шифрование (TLS 1.3 по умолчанию).

Быстрое установление соединений за счет отказа от трехэтапного рукопожатия TCP.

HTTP/3 не полностью заменяет HTTP/2 – он предназначен для определенных сценариев, где его преимущества наиболее заметны, тогда как HTTP/2 остается надежным вариантом.

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍121🔥1🥰1
💡 ASP.NET Core 9 позволяет отключать HTTP-метрики и не записывать значения для определённых конечных точек и запросов.

Например, автоматизированные системы проверяют конечную точку Health, поэтому сбор метрик для неё не особенно полезен.

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍311
Как реализовать поток On-Behalf-Of (OBO) в ASP.NET Core с использованием Microsoft Entra ID для делегированной аутентификации.

Читать: клик

👉 @KodBlog | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2🔥2
EF Core — это потрясающе, но давайте будем честными. Перебор записей в цикле для их обновления — не очень.

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

Есть способ получше — массовые обновления. 😎

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
23🤨7👍6🤯1
Нашел для вас отличный репозиторий — Unity Clean Code

Это сборка лучших практик написания чистого кода в Unity, которые помогут сделать ваш проект структурированным и удобочитаемым.

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

💬 Отличный выбор для всех, кто работает с Unity

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍51💯1
💡 В .NET 8 появился новый интерфейс IExceptionHandler, который упрощает глобальную обработку исключений в aspnetcore.

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

Достаточно реализовать метод TryHandleAsync, подключить его через UseExceptionHandler — и всё готово.

Это чисто. Модульно. Поддерживаемо. И, честно говоря, давно пора.

Подробно читай в статье: тык

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥4🌭2
Copilot, дружище, твои знания по C# отстают на год, а может и два 😄

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
😁39👍4🌭3