C# (C Sharp) programming
18.1K subscribers
971 photos
52 videos
8 files
776 links
По всем вопросам- @notxxx1

Реестр РКН: https://clck.ru/3Fk3kb

#VRHSZ
Download Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
Refit - удобная альтернатива ручной работе с HttpClient в .NET

HttpClient отлично подходит для HTTP-запросов, но при неправильном использовании можно столкнуться с проблемами вроде исчерпания сокетов и некорректного обновления DNS. Плюс сериализацию и разбор ответов часто приходится писать вручную.

Refit упрощает это:

- описываешь REST API обычным C#-интерфейсом
- получаешь type-safe клиент
- сериализация и десериализация выполняются автоматически
- под капотом всё равно используется HttpClient

Удобно для проектов, где много внешних API и не хочется писать повторяющийся HTTP-код.

https://github.com/reactiveui/refit
✔️ Polly становится платной, но у .NET остаётся бесплатная альтернатива

Polly много лет была одной из главных библиотек .NET для устойчивости к временным сбоям: retry, timeout, fallback, rate limiting и circuit breaker.

Теперь Polly движется в сторону платной модели, но Microsoft.Resilience по-прежнему можно использовать бесплатно.

С .NET 8 работа с resilience стала заметно проще: появился новый API Polly и официальные библиотеки Microsoft для построения resilience pipelines.

Что можно настроить:

- Retry
- Fallback
- Timeout
- Rate limiting
- Circuit breaker

Хороший разбор того, как собирать устойчивые cloud-приложения на современном .NET:

https://milanjovanovic.tech/blog/building-resilient-cloud-applications-with-dotnet
Please open Telegram to view this post
VIEW IN TELEGRAM
Запускать локальные LLM в .NET стало удивительно просто

Про AI в разработке обычно говорят в контексте написания кода, но в .NET нейросети уже можно достаточно легко встраивать прямо в приложения.

Через Microsoft.Extensions.AI и Ollama локальную модель можно подключить буквально несколькими строками.

Что можно собрать:

- обычный чат
- суммаризацию текста
- классификацию и категоризацию
- распознавание изображений
- свои AI-фичи без отправки данных во внешний API

Особенно интересно, что всё это можно запускать локально: модель работает на вашей машине, а приложение обращается к ней как к обычному сервису.

Примерно так:


builder.Services.AddChatClient(
new OllamaApiClient(
new Uri("http://localhost:11434"),
"phi3:mini"));


Дальше получаем IChatClient и используем его внутри обычного .NET-приложения.

Хороший разбор того, как работать с LLM в .NET через Microsoft.Extensions.AI:
🔍 Куда Copilot тратит токены и почему тормозит

Барт Вуллемс показал, как отслеживать работу GitHub Copilot через OpenTelemetry и Aspire Dashboard локально.

В панели можно увидеть:

* расход входных и выходных токенов;
* использование кеша промптов;
* длительность запросов к модели;
* вызовы инструментов и время их выполнения;
* какая модель фактически обработала запрос.

Каждый ход агента отображается как цепочка операций. Это помогает понять, где возникла задержка: при генерации ответа, чтении файла, выполнении команды или обращении к MCP-серверу.

В статье - запуск Dashboard, настройки Copilot Chat в VS Code и разбор трассировок. Запись текста промптов и ответов включается отдельно через captureContent.

Статья - https://bartwullems.blogspot.com/2026/09/monitoring-github-copilot-usage-with.html

#GitHubCopilot #Aspire #OpenTelemetry
This media is not supported in your browser
VIEW IN TELEGRAM
Unity подключила Claude Code, Codex и Grok к разработке игр 🎮

Компания опубликовала официальный плагин с 31 готовым скиллом для Unity 6+.

Агенту можно поручить конкретную задачу обычным текстом:

* создать экран настроек
* подключить внутриигровые покупки
* настроить физику или навигацию
* собрать мультиплеер и голосовой чат
* исправить проблемы со спрайтами
* настроить звук, локализацию, шейдеры и URP

Агент определяет нужную область Unity и загружает соответствующие инструкции. Плагин поддерживает Claude Code, Codex и Grok, устанавливается через их CLI и не содержит MCP-серверов или хуков.

https://github.com/Unity-Technologies/unity-agent-plugin#install
Please open Telegram to view this post
VIEW IN TELEGRAM
C# 14: задача на Span без аллокаций

Дана строка:


42|john@example.com|127


Нужно распарсить её без Split(), Regex и временных string:


public readonly record struct UserLog(
int Id,
ReadOnlyMemory<char> Email,
int Latency
);


Реализуйте:


static bool TryParse(
ReadOnlyMemory<char> input,
out UserLog result
)


Требования:

• парсинг через Span<char>
• false при битом формате
• без лишних аллокаций
• Email должен ссылаться на исходный buffer

Пример:


var input = "42|john@example.com|127".AsMemory();

if (TryParse(input, out var log))
{
Console.WriteLine(log.Id); // 42
Console.WriteLine(log.Email); // john@example.com
Console.WriteLine(log.Latency); // 127
}


Вопрос:

почему нельзя сохранить ReadOnlySpan<char> в UserLog, а ReadOnlyMemory<char> можно?
🔥 Microsoft выпустила .NET 11 RC1**- первый релиз-кандидат уже с **go-live support, то есть его можно использовать в production.

Из заметного: в C# 15 стабилизируют unions и другие новые возможности языка, ASP.NET Core получил обновления SignalR и OpenAPI, а в Blazor появились экспериментальные AI-компоненты для agentic UI.

В runtime добавили in-process crash reporting для Unix и аппаратные FP16-операции для Half. В SDK улучшили dotnet test, публикацию контейнеров и file-based programs, включая Native AOT reuse.

Также обновились F#, MAUI, WinForms, NuGet и MSBuild.

.NET 11 RC1 уже поддерживается в Visual Studio 2026 Insiders и VS Code с C# Dev Kit.

https://devblogs.microsoft.com/dotnet/dotnet-11-rc-1/
Please open Telegram to view this post
VIEW IN TELEGRAM
🧩 Задача на C#: почему воркер завис, хотя очередь почти пустая?

Есть канал вместимостью один элемент и единственный обработчик. Если задача завершилась ошибкой, обработчик возвращает её в очередь для повторной попытки.


using System.Threading.Channels;

var queue = Channel.CreateBounded<int>(
new BoundedChannelOptions(1)
{
FullMode = BoundedChannelFullMode.Wait,
SingleReader = true
});

await queue.Writer.WriteAsync(1);

var worker = Task.Run(async () =>
{
await foreach (var job in queue.Reader.ReadAllAsync())
{
Console.WriteLine($"Start {job}");

if (job == 1)
{
await queue.Writer.WriteAsync(2);
await queue.Writer.WriteAsync(1); // retry
}

Console.WriteLine($"Done {job}");
}
});

await worker;


Вопросы:

1. Что появится в консоли?
2. На какой строке остановится обработка?
3. Почему await и свободные потоки пула не спасают?
4. Если увеличить вместимость канала до двух, проблема исчезнет?
5. Как организовать не больше трёх попыток на задачу, сохранив ограниченную очередь и одного обработчика?

Условие: нельзя использовать Task.Run для каждой повторной попытки, неограниченную очередь или отбрасывание сообщений.

👇 Найдите причину зависания и предложите исправление.
🔍Тестовое собеседование с Senior C# разработчиком уже завтра

22 сентября(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle C# разработчика.

Как это будет:
📂 Александр Моргунов, старший C# разработчик с опытом 7+ лет в Европейских высоконагруженных сервисах, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Александр будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Александру

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для C# разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_csharp_bot

Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
Awesome Jev - большая подборка инструментов для новой модели TypeSafe AI 🤗

Jev - новая быстрая ИИ-модель от TypeSafe AI для принятия структурированных решений внутри программ. Она выбирает из заданных вариантов, оценивает вероятность и уверенность, вместо генерации длинного текста.

В одном репозитории собрали проекты, SDK, исследования и гайды для работы с Jev - моделью класса System One, созданной для быстрых типизированных решений внутри программ.

В подборке уже есть:

- агенты для macOS, Android и браузера;
- семантический поиск по кодовой базе;
- инструменты для проверки кода и ответов LLM;
- плагины для Codex и Claude Code;
- MCP-серверы и SDK для Python, TypeScript, Go, Rust, .NET и других языков;
- демо с Doom, Mario, StarCraft, Civilization II и управлением дроном.

Jev возвращает структурированные решения с вероятностями и оценкой уверенности. Заявленная скорость ответа - 70–500 мс, стоимость - $0,042 за 1 млн входных токенов, выходные токены бесплатны.

🔗 GitHub: https://github.com/AnotiaWang/awesome-jev