C# (C Sharp) programming
18.7K subscribers
756 photos
39 videos
8 files
674 links
По всем вопросам- @haarrp

C# - обучающий канал Senior C# разработчика.

@ai_machinelearning_big_data - Machine learning

@itchannels_telegram - 🔥лучшие ит-каналы

@csharp_ci - C# академия

@pythonlbooks- книги📚

Реестр РКН: https://clck.ru/3Fk3kb
Download Telegram
Архивировать файлы стало проще, чем когда-либо! 🚀

Для сохранения zip-файла даже не нужен жесткий диск. 💣

В .NET 8 архивация и извлечение файлов стали еще эффективнее благодаря потоковым перегрузкам для методов ZipFile.CreateFromDirectory и
ZipFile.ExtractToDirectory.

Метод CreateFromDirectory позволяет вам выбрать каждый файл из папки, сжать их все в один zip-файл и распаковать эту пачку в любое удобное для вас место, и что самое интересное?

Вы делаете это без необходимости сохранять zip-файл на жестком диске. Магия!

@csharp_ci
.NET 9 новые бенчмарки LINQ CountBy .

Код

#dotnet #csharp

@csharp_ci
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Этот плагин может генерировать текстуры для вашей сцены в Unreal Engine!

Comfy Textures - это плагин для Unreal Engine, который интегрирует редактор с ComfyUI. Он позволяет быстро создавать и улучшать текстуры для вашей сцены, используя генеративные диффузионные модели.

Github

@csharp_ci
⚡️Feature Flags в .NET и их применения для A/B-тестирования

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

Для этого можно использовать Feature Flags.

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

Затем вы можете включить или выключить функцию во время выполнения, чтобы контролировать, применение этих функции

Install-Package Microsoft.FeatureManagement

Читать дальше

@csharp_ci
⚡️ASP .NET Core предоставляет вам несколько способов глобальной обработки исключений.

Так какой же подход выбрать?

Стандартный способ реализации обработки исключений в ASP.NET Core — использование middleware.

Middleware позволяет добавлять логику до или после выполнения запросов. Для реализации обработки исключений достаточно добавить оператор try-catch в middleware и возвращать ошибку HTTP-ответа.

ASP.NET Core 8 добавляет новую абстракцию IExceptionHandler для управления исключениями. Этот интерфейс имеет только один метод TryHandleAsync, который пытается обработать указанное исключение в рамках ASP.NET Core pipeline.

Если исключение можно обработать, метод должен возвращать true, если нет — false.

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

🔗Для добавления реализации IExceptionHandler в пайплайн запросов ASP.NET Core необходимо сделать две вещи:

1. Зарегистрировать сервис IExceptionHandler с помощью DI.
2. Зарегистрировать ExceptionHandlerMiddleware в пайплайне запросов.

builder
.
Services
.
AddExceptionHandler
<
GlobalExceptionHandler
>();

builder
.
Services
.
AddProblemDetails
();


app
.
UseExceptionHandler
();


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

В ASP .NET Core 8 появилась новая абстракция IExceptionHandler для управления исключениями.

Подробнее

@csharp_ci
🔥 Дайджест полезных материалов из мира C# за неделю

Почитать:

Огромная шпаргалка с готовыми запросами SQL (SQLite)
Где изучать C# в 2024. Бесплатные курсы и полезные ресурсы
Об одном способе веб-скрапинга сайтов, защищенных Cloudflare
Road Run, или как я свою первую игру делал. Часть 7
Разобраться раз и навсегда: Task.WhenAll или Parallel.ForEachAsync в C#
Обзор Инструментов Покрытия Кода для C#. Начало
20 инструментов командной строки для мониторинга производительности Linux
Наш опыт мультиаутентификации в приложениях ASP.NET Core
Кроссплатформенные ресурсы в сборках .NET — пишем условия MSBuild
Валидация входных данных в фильтрах Minimal API .NET, просто и без затей
Async/Await в C#. Часть 5. Функция-перечисление и цикл через рекурсию, асинхронный вызов без Async/Await
Еще раз про асинхронную машину состояний и где именно там аллокации
Outlook как сервер микросервисов
Exploring the Dynamic Language Runtime (DLR) in C#
Getting the Current User in Clean Architecture
Difference Between Raw SQL and Dapper
How to read zip files with SharpZip library in C#
Action and Func Delegates in C#
Game Dev Digest — Issue #221 - Rendering Techniques and more
Intro to JS Interop in Blazor
What is Memento Pattern in C#?
Using auto-values in Aerospike LINQPad driver
Custom Middleware In ASP.NET Core – How To Harness The Power
Common Implementation Mistakes of Work Pattern in C#

Посмотреть:
🌐 Курс C# 2024 с нуля
🌐 Александр Кузнецов — Введение в Microsoft SignalR ( 56:53)
🌐 Microsoft Is Abandoning C# for Rust! Now What? ( 08:01)
🌐 Why .NET's Most Ambitious Feature Might Fail ( 11:14)
🌐 "Don't Use Loops, They Are Slow! Do This Instead" | Code Cop #011 ( 09:51)
🌐 The Easiest Scheduling for Your .NET Applications ( 11:25)
🌐 Microsoft Is Abandoning C# for Rust! Now What? ( 8:00)

Хорошего дня!

@csharp_ci
🖥 Что вы предпочитайте string.Equals или ToLower/Upper

В C# для сравнения строк без учета регистра лучше использовать string.Equals с OrdinalIgnoreCase, а не ToLower() / ToUpper().

Почему?

Корректность
Иногда использование ToLower/Upper может привести к неправильным результатам в некоторых языках (например на Турецком).

Удобство чтения
Использование string.Equals дает понять, что вы выполняете сравнение.

Производительность
string.Equals более эффективен, поскольку ему не нужно создавать новый экземпляр строки, как это делает ToLower/Upper.

#dotnet #csharp

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥Первая предварительная версия dotnet 9 уже здесь, наряду с обновлениями для #aspnetcore, #dotnetmaui, #efcore и других!

Почитать
больше о предварительной версии 1 и присоединяйтесь к обсуждению на GitHub Discussions: https://github.com/dotnet/core/discussions/9167

#dotnet #csharp

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ DevToys — швейцарский нож для ежедневных задач разработчика.

— Конвертеры: JSON в YAML, парсер Cron’а и тд;
— Кодеры/декодеры;
— Генераторы получения хеша: MD5, SHA1, SHA256, SHA512;
— Работа с текстом: сравнение текстов, разметка, проверка регулярок и тд;
— Работа с графикой: сжатие, конвертирование и тд.

Github

@csharp_ci
🖥 Рассмотрим ситуацию, когда вы ожидаете несколько асинхронных вызовов от нескольких сервисов.

Эти вызовы не зависят друг от друга.

Вы можете использовать Task_WhenAll, чтобы добиться значительного повышения производительности.

Это может сделать ваш API в 15 раз быстрее:

Читать дальше
Последовательное и параллельное выполнение. Task.WhenAll и Task.WhenAny

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Как использовать шаблон параметров в ASP.NET Core.

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

В ASP.NET Core шаблон параметров можно настроить несколькими различными способами. В этой статье показаны некоторые из них и их потенциальные преимущества.

Читать
Шаблон параметров в ASP.NET Core

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
💫 Туннели Dev для мобильной разработки

Создавайте уникальные URL-адреса, которые можно использовать для отладки эндпоинтов API, веб-хуков или просто для обмена информацией о вашем проекте.

Dev-туннели для Visual Studio 2022 создают уникальный URL, который можно использовать в мобильных проектах для отладки API. Теперь Visual Studio 2022 позволяет создавать туннели разработчиков одним нажатием кнопки.

Читать дальше

@csharp_ci
⚡️ Marten - мощная база данных документов и хранилище событий .NET на PostgreSQL

Вы практически можете построить свою базу данных документов на его основе 🐘.

Пример работы с Marten
Github

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 AWS Lambda Handler Cookbook (.NET)

Открытая книга .NET Lambda Handler Cookbook полностью обновлена до .NET 8, включая примеры того, как сделать нативный AOT в ASP NET.

Этот проект предоставляет рабочий скелет для работы с AWS Lambda на .NET, включая развертывание с помощью AWS CDK и конвейер GitHub Actions.

Github

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM