C# Ready | Unity
10.2K subscribers
1.42K photos
82 videos
703 links
Авторский канал по разработке на C# и Unity.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Cотрудничество: @energy_c

РКН: https://clck.ru/3SBaT3
Download Telegram
Собираем валидатор пароля на C#!

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

В этой задаче:
• Описываем правила как функции;
• Проверяем длину, цифры, регистр и спецсимволы;
• Собираем все ошибки в один список.


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

➡️ C# Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍158🔥3
🔥95👍4
Полезная статья про Avalonia и реализацию MVVM на C# по шагам!

В этой статье:
• Что такое Avalonia и почему она интересна для кроссплатформенного desktop
• Как разделить интерфейс и бизнес-логику через MVVM
• Как постепенно собрать пример приложения с View, ViewModel, binding и данными

Продолжай читать на Habr!


➡️ C# Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54🔥4👎1
Делаем простой rate limiter на C#!

Иногда нужно ограничить частоту действий: не давать пользователю слишком часто нажимать кнопку, вызывать команду или отправлять запрос

В этой задаче:

• храним timestamps последних вызовов;
• удаляем старые события;
• проверяем лимит в скользящем окне;


Такой подход легко расширить: можно поменять лимит, размер окна или хранить отдельную очередь для каждого пользователя.

➡️ C# Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍6🔥4
8👍5🔥4
Разберём HttpClient: 7 возможностей для аккуратной работы с API!

HttpClient часто используют для интеграций, микросервисов и внешних HTTP-запросов. Чтобы код не превращался в ручную сборку строк, заголовков и JSON, стоит знать базовые возможности клиента.

В этой шпоре:
• базовый адрес через BaseAddress;
• общие заголовки;
• GET-запросы;


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

➡️ C# Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥175👍4
Крутая статья о том, как подружить C#, .NET MAUI и Rust в одном приложении!

В этой статье:
• Как подключить Rust-код к MAUI-проекту
• Зачем может понадобиться нативная часть внутри C#-приложения
• Как C# и Rust могут вместе работать с графикой через SkiaSharp

Продолжай читать на Habr!


➡️ C# Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍75🔥5
Почему не стоит lock-ать строку или публичный объект?

В C# lock работает по объекту-синхронизатору:
lock (sync)
{
// критическая секция
}


Проблема начинается, когда в роли sync используют строку:
lock ("cache")
{
UpdateCache();
}


Строки могут интернироваться, то есть одинаковые литералы могут ссылаться на один и тот же объект.

В итоге другой код в приложении тоже может случайно заблокироваться на "cache":
lock ("cache")
{
DoSomethingElse();
}


Похожая проблема с публичными объектами:
public object Sync = new();


Любой внешний код может взять этот объект и тоже сделать lock, создавая странные зависания.

Надёжнее держать приватный синхронизатор:
private readonly object _sync = new();

lock (_sync)
{
UpdateCache();
}


Так точка блокировки остаётся внутри класса, и никто снаружи не может случайно вмешаться.

➡️ C# Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍85🔥3
Проверяем срок действия TLS-сертификата!

Нужно быстро понять, когда у сайта закончится HTTPS-сертификат? Соберём простую проверку через openssl: подключимся к серверу, достанем notAfter и посчитаем, сколько дней осталось до истечения.

В этой задаче:
• Получаем сертификат через openssl s_client;
• Достаём дату окончания через openssl x509;
• Считаем разницу и проверяем порог.


Такую проверку удобно запускать в cron, CI или простом мониторинговом скрипте, чтобы не узнать об истёкшем сертификате от пользователей.

➡️ C# Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍5🔥3