C# (C Sharp) programming
18.3K subscribers
933 photos
47 videos
8 files
753 links
По всем вопросам- @haarrp

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

@ai_machinelearning_big_data - Machine learning

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

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

@pythonlbooks- книги📚

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

#VRHSZ
Download Telegram
Vector Search - как это работает (и почему это важно для .NET разработчиков)

Vector search ищет смысловую близость, а не просто точные совпадения.

Он сравнивает данные - текст, изображения или аудио - используя векторные эмбеддинги в многомерном пространстве.

То есть система ищет не одинаковые слова, а похожие по смыслу объекты.

Почему это важно?

Vector search лежит в основе многих AI-функций:

- семантический поиск
- рекомендательные системы
- интеграции с LLM
- умные ассистенты внутри приложений

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

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

📍 Полный пример реализации

🚀 Max
Разработчик показал, как использовать Ollama для извлечения данных из чеков прямо в .NET.

Самая интересная часть оказалась не в том, чтобы отправить изображение модели.

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

Обычный текстовый ответ мало помогает, когда нужны структурированные данные:

- позиции из чека
- количество
- цены
- итоговая сумма

Поэтому вместо обычного ответа модель начали просить возвращать JSON.

После этого результат можно сразу маппить в C#-объекты и использовать в приложении.

И именно здесь начинается самое интересное.

Большая часть работы — не код, а правильный prompt.

Если модель:

- округляла цену
- пропускала цифру
- или «придумывала» позицию

приходилось уточнять инструкции.

Это и есть главный сдвиг в таком подходе:

раньше разработчик писал парсеры и regex,
а теперь — настраивает поведение модели через prompt.

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

Разбор полной реализации:

https://milanjovanovic.tech/blog/how-to-extract-structured-data-from-images-using-ollama-in-dotnet

🚀 Max

#ai #ollama #dotnet #csharp
FluentValidation делает валидацию входных данных очень простой.

Знаете ли вы, что валидаторы поддерживают DI (Dependency Injection)?

Можно внедрять объекты настроек, настроенные через DI, и использовать их прямо внутри валидаторов.

Посмотрите пример в коде ниже.
🚀 Динамические Claims в ASP.NET Core

Хотите добавлять права пользователю прямо во время выполнения приложения?

В ASP.NET Core это можно сделать через Claims Transformation.

Что это даёт:

- можно подтягивать данные из базы или внешнего сервиса
- добавлять их в HttpContext.User
- строить гибкие политики авторизации

То есть права пользователя можно расширять динамически, без изменения токена или повторной аутентификации.

Пример из поста:

Во время трансформации claims добавляется новый claim:

CardType = "platinum"

После этого можно создать policy:

- пользователь должен быть аутентифицирован
- у него должен быть claim CardType = platinum

И использовать её в авторизации.

Это особенно полезно для:

- RBAC (role-based access control)
- сложных систем прав
- динамических разрешений из БД
- feature-based доступа

Например:

- premium пользователь
- платиновая карта
- доступ к закрытому API
- платные функции

Claims Transformation позволяет подмешивать эти права на лету.

Полная статья:
https://milanjovanovic.tech/blog/master-claims-transformation-for-flexible-aspnetcore-authorization
🚀 Почему этот EF Core код тормозит?

Технически - всё ок.
По производительности не очень.

Вот типичная ошибка:

Загружаешь всю сущность (все колонки)
Потом фильтруешь и мапишь уже в памяти

Что происходит:
- лишние данные тянутся из БД
- растёт нагрузка на сеть
- увеличивается потребление памяти
- замедляется приложение

Как правильно:

Используй проекцию через `.Select()` прямо в запросе:

- берёшь только нужные поля
- меньше данных из БД
- быстрее запрос
- меньше нагрузка на систему

📌 Правило простое:
Не тащи всё - бери только то, что используешь

Именно такие мелочи чаще всего дают x2–x10 к скорости.
Что выведет на экран этот код?
Anonymous Quiz
15%
False False
29%
False True
26%
True True
21%
True False
9%
🥒
⚙️ Как правильно работать с настройками в .NET?

В .NET есть 3 основных интерфейса для конфигурации.
И если выбрать не тот — приложение может просто игнорировать изменения в настройках.

Разбираем просто 👇

1️⃣ IOptions
- читается один раз при запуске
- кэшируется на всё время жизни приложения
- подходит для статических настроек

2️⃣ IOptionsSnapshot
- пересчитывается на каждый запрос
- подхватывает изменения в appsettings.json без перезапуска
- идеален для Web API (Scoped)

3️⃣ IOptionsMonitor
- обновляется в реальном времени
- триггерит событие при изменении настроек
- подходит для фоновых сервисов (Singleton)

Главное правило:

👉 статические настройки → IOptions
👉 веб-приложения → IOptionsSnapshot
👉 фоновые сервисы с реакцией на изменения → IOptionsMonitor

Если используешь не тот интерфейс — можешь долго не понимать, почему конфиг не обновляется.

А это одна из самых частых и незаметных ошибок в .NET.

Подробнее
MWS Cloud Platform приглашает на сеньорский митап

Что обсудим:
→ Почему vhost-user обходит virtio-net
→ Когда писать свой балансировщик вместо HAProxy
→ Почему нельзя выбрать один язык для платформы

Поспорим на дебатах Go vs Kotlin — все желающие могут присоединиться и задавать вопросы из зала.

📅 9 апреля, 18:00
📍 Место Санкт-Петербург, Конногвардейский бульвар, 4, Mishka Bar
Для кого: сеньоров-разработчиков, сетевых инженеров и архитекторов облачных платформ
Сложность докладов: 8/10
Места ограничены, регистрация обязательна. 👉
🔥 Парень без опыта навайбкодил клон Warcraft с помощью ИИ - индустрия, ты как там?

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

Что в итоге:

• 9 фракций, ~200 уникальных юнитов
• 50 заклинаний и 70 зданий
• 150 треков, тысячи спрайтов и реплик
• Прокачка с древами развития
• Магия, гарнизоны, торговля, туман войны
• Генерация карт на лету

И это ещё не всё:

• PvP с игроками
• PvE против ИИ (3 уровня сложности)
• Наблюдение за боями ИИ vs ИИ
• Голосовое управление армией
• Работает в браузере — ПК, телефон, планшет

Без регистрации. Просто заходишь в гостевой режим и играешь.

https://www.shardsofstone.com/
Что выведет на экран этот код?
Anonymous Quiz
7%
apple
7%
banana
10%
cucumber
41%
Нет фиксированного результата
35%
🥒
Что выведет на экран этот код?
Anonymous Quiz
31%
0
8%
1
7%
2
30%
3
24%
🥒
🌟 Микросервисы - это не про то, чтобы в первый же день распилить приложение на десятки сервисов.

Ключевая идея — независимая эволюция.

Каждый сервис:
— владеет своей предметной областью
— хранит свои данные
— разворачивается независимо

Именно отсюда появляются реальные плюсы:

— команды двигаются быстрее
— релизы становятся безопаснее
— система становится устойчивее к сбоям

Но есть и обратная сторона:

— растёт сложность
— появляется больше координации между командами
— сложнее поддерживать консистентность данных

Микросервисы — это не «серебряная пуля».
Это обмен: гибкость и скорость сложность и операционные расходы.

Поэтому перед тем как идти в эту архитектуру — важно понять базу.

Разбор ключевых концепций и нюансов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Skywork выкатили Matrix-Game 3.0 - и это уже почти живая игровая вселенная, генерируемая ИИ

720p в реальном времени при 40 FPS
5B модель с INT8-квантизацией - работает удивительно быстро

Главный фокус - стабильность во времени:
модель запоминает прошлые кадры и “достраивает” будущее без развалов сцены

Есть и более мощная версия - 28B MoE, которая лучше держит физику и динамику

Как обучали:
Unreal Engine + AAA-игры + реальные видео

Внутри не просто видео, а связка:
Video + Pose + Action + Prompt
за счёт этого можно генерировать длинные, осмысленные сцены

Это зачатки полноценного AI-геймдвижка

Ссылка на модель: https://modelscope.ai/models/Skywork/Matrix-Game-3.0
Шарп рулит)