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

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

РКН: https://clck.ru/3SBaT3
Download Telegram
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
Хороший вход в современный C# для начинающих и джунов!

Статья спокойно объясняет, зачем сейчас учить C#, где он применяется и с каких базовых вещей стоит начинать, если хочется двигаться в сторону .NET-разработки.

В статье автор показывает:
• где C# используется в реальных проектах
• какие инструменты нужны на старте
• как подойти к изучению языка без хаоса

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


➡️ C# Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍4🔥2
Пишем парсер query string на C#!

Нужно разобрать строку вида ?page=2&tag=cs&tag=api и получить структуру, где повторяющиеся ключи не перетирают друг друга.

В этой задаче:
• убираем лишний вопросительный знак
• делим строку на пары
• декодируем ключи и значения


Такой маленький парсер полезен для CLI-утилит, тестов и логов.

➡️ C# Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4🔥3
Разбираем 7 приёмов для кеширования данных!

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

➡️ C# Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥54👍1