C# 1001 notes
6.53K subscribers
320 photos
9 videos
2 files
306 links
Регулярные короткие заметки по C# и .NET.

Просто о сложном для каждого.

admin - @haarrp
Download Telegram
Создание пользовательского протокола URL в .NET

https://dev.to/jamiemcmanus/creating-a-custom-url-protocol-in-net-322h

@csharp_1001_notes
Включение CORS в ASP.NET Core наиболее простым способом

https://dev.to/bytehide/enable-cors-in-aspnet-core-in-the-easiest-way-3c5i


@csharp_1001_notes
🔎 Полное руководство по созданию приложения-клона Google Translate с нуля на .NET

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

Сегодняшний проект является клоном приложения Google Translate с использованием Google translate API v2. Я эстет, поэтому я представлю вам красивое приложение, однако оно будет не только «красивым», но также будет переводить текст, определять язык на основе пользовательского ввода, отображать поддерживаемые языки и менять местами пользовательский ввод с результатом перевода. Так что, если вы так же взволнованы, как и я, давайте сделаем это!

Статья
Полный код

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

https://dev.to/ant_f_dev/how-to-add-tests-for-existing-code-with-methods-that-arent-public-3e5o

@csharp_ci
Легкий способ получать свежие обновлении и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:

Data Science: t.me/data_analysis_ml
Java: t.me/javatg
Базы данных: t.me/sqlhub
Машинное обучение: t.me/ai_machinelearning_big_data
Go: t.me/Golang_google
C/C++/ t.me/cpluspluc
C#: t.me/csharp_ci
Хакинг: t.me/linuxkalii
Мобильная разработка: t.me/mobdevelop
Docker: t.me/+0WdB4uvOwCY0Mjdi
Python: t.me/python_job_interview
Rust: t.me/rust_code
Javascript: t.me/javascriptv
React: t.me/react_tg
PHP: t.me/phpshka
Android: t.me/android_its
Linux: t.me/+A8jY79rcyKJlYWY6
Big Data: t.me/bigdatai
Devops: t.me/devOPSitsec
Тестирование:https://t.me/+F9jPLmMFqq1kNTMy
Собеседования: https://t.me/machinelearning_interview

💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy

😆ИТ-Мемы: t.me/memes_prog

🇬🇧Английский: t.me/english_forprogrammers

ИИ: t.me/vistehno

📕Ит-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
🖥 Запуск приложений на .NET в качестве службы на Linux-системе с systemd

В этом материале будет рассмотрено, как запускать приложение .NET Core / .NET 5 в качестве сервиса под Linux. Мы воспользуемся Systemd, чтобы интегрировать наше приложение с операционной системой, научимся запускать и останавливать наш сервис, а также получать от него логи.

Чтобы организовать атаку на цепочку поставок при помощи .NET, мне потребовалось настроить DNS-сервер, который перехватывал бы те хост-имена, которые ко мне направляются. Давайте возьмём этот кейс для примера.

Читать: https://habr.com/ru/companies/timeweb/articles/759966/
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Погружаемся в замыкания на C#

Данная статья раскроет принципы работы и теорию замыканий в C# на примерах .


📌Статья

@csharp_ci
🖥StereoDB

Сверхбыстрая и легкая база данных внутрипроцессной памятм, написанная на языке F#, поддерживающая: транзакции, вторичные индексы, персистентные структуры данных и инструменты управления памятью.

StereoDB поддерживает создание Stateful Services (API или ETL Worker), которые хранят все данные в памяти и могут обеспечить миллионы запросов в секунду для RPS с одного узла.

Github

@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Improvements to the Caching Abstraction in ASP.NET Core

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

📌 Читать

@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Бенчмарки .NET 8 FrozenDictionary .

В приведенном ниже бенчмарке скорость чтения на 68% выше, чем у обычного словаря 🔥 ...

Значительное улучшение времени работы с .NET 8 Preview 1 по сравнению с Preview 7. FrozenDictionary (и FrozenSet) теперь подходят для гораздо большего числа случаев использования.

Разбор с сайта MS devblogs в начале этого года ->
https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-1/comment-page-2/#comment-17478

@csharp_1001_notes
⚡️ Тестирование на основе данных - это метод тестирования, при котором тестовые данные предоставляются через некоторый внешний источник. Поэтому его также называют параметризованным тестированием.

Популярной библиотекой тестирования в .NET, поддерживающей параметризованное тестирование, является xUnit. В ней для определения тестовых методов используются атрибуты. Атрибут Fact определяет простой тест, а атрибут Theory - параметризованный тест.

В этой статье показано четыре способа написания параметризованных тестов с помощью xUnit.

https://www.milanjovanovic.tech/blog/creating-data-driven-tests-with-xunit

@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Эта возможность C# поможет вам нагромождения в коде.

С версии C# 10 можно отказаться от ненужного блочного оператора вокруг объявления пространства имен.

Просто и эффективно.

Это стандарт для всех моих проектов.

И даже есть возможность очистки кода в Visual Studio.

А вы используете эту фичу?

Репост = Отправьте другу, чтобы избавить его от нагромождений в коде♻️

@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Что такое сетевая привязка (Session affinity)?

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

Сетевая привязка - это способ привязать последовательность запросов к определенному месту назначения API.

Как правило, к тому, который обработал первый запрос.


Например, в качестве балансировщика нагрузки или API-шлюза можно использовать обратный прокси YARP.

Чтобы включить сродство сессий, достаточно определить соответствующий параметр SessionAffinity в конфигурации JSON.

Вот как начать работу с YARP: https://www.milanjovanovic.tech/blog/implementing-an-api-gateway-for-microservices-with-yarp

@csharp_1001_notes
⚡️ Вы когда-нибудь хотели, чтобы #Blazor мог моделировать привязку и валидацию HTTP-формы в режиме рендеринга на стороне сервера?

Попробуйте атрибут [𝚂𝚞𝚙𝚙𝚕𝚢𝙿𝚊𝚛𝚊𝚖𝚎𝚝𝚎𝚛𝙵𝚛𝚘𝚖𝙵𝚘𝚛𝚖].

Готовы попробовать? Посмотрите это пошаговое руководство.

@csharp_1001_notes
Одним из моих любимых способов реализации паттерна Options является использование подхода `IConfigureOptions`.Вот как его можно использовать:

@csharp_1001_notes