Обновить
96.23

.NET *

Хаб со знаниями про .NET

Сначала показывать
Порог рейтинга
Уровень сложности

Адаптированный паттерн Command с использованием Dependency Injection

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.6K

Паттерн Command — широко известный и мощный инструмент построения гибких систем, позволяющий целиком вынести логику каждого метода в отдельный класс.

В статье показано как совмещение Command с Dependency Injection (DI) даёт дополнительные преимущества в архитектуре приложений.

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

Читать далее

Интеграция онлайн-кассы Атол с Битрикс24: облачное решение на .NET

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели5.4K

В современном бизнесе интеграция фискальных регистраторов с CRM-системами перестала быть опцией — это необходимость для эффективного ведения дел. Однако существующие решения часто требуют дорогостоящего оборудования или привязывают к конкретным платформам. Мы решили эту проблему, разработав 1ОС.Касса — облачную кассу, которая объединяет преимущества онлайн и оффлайн касс.

Читать далее

Aspid.MVVM — производительный MVVM фреймворк для Unity

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели4.9K

Aspid.MVVM — это высокопроизводительный фреймворк MVVM для Unity, построенный на Source Generator и разработанный с акцентом на простоту, масштабируемость и четкое разделение бизнес-логики и представления.

Читать далее

Разработка AI-ботов с .NET и Microsoft-экосистемой: от поддержки клиентов до агентного ИИ

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели6K

Разработка умных ботов на .NET: Bot Framework, Graph API, Azure OpenAI и практические кейсы внедрения.

Читать далее

Формирование RPM пакета для OC Linux с использованием GitLab CI/CD

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели5.5K

Вы много своих приложений упаковывали, как RPM пакет? Мне, до недавних пор, не доводилось. Тенденция импортозамещения и перехода на OC Linux потребовала освоить и это умение. Ничего сложного, но, как и везде, есть нюансы, детали и особенности.

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

Статья - достаточно подробная инструкция, как решить эту задачу и автоматизировать ее с помощью GitLab CI/CD.

Читать далее

Онлайн IDE для .NET

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели8.4K

Обычно под .NET разрабатывают в Visual Studio, собирая и запуская приложения локально на компьютере. А что если IDE работала бы прямо в браузере? Как Figma, только для .NET приложений.

Мы задались именно этой целью — сделать онлайн IDE для .NET.

Сейчас в нашем инструменте уже работает:

✏️ Редактор UI на XAML (подмножество WPF) с drag-and-drop.

Компиляция C# и XAML полностью в браузере без участия сервера.

🖥️ Запуск приложения прямо в браузере в изолированном окружении.

☁️ Сохранение проектов на сервере и возможность скачать их для Visual Studio.

Можно поиграться и попробовать предварительную версию: https://xaml.io

А ниже — рассказ о том, как это всё работает под капотом.

Читать далее

The Goddess's Will — или почему никто не делает видеоигры в стиле пререндеренного 3D, а мы делаем одну такую

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели32K

Привет, хабр!

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

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

Будет про идеи, технологии, HR-процессы, страх публикации и сладкую депрессию. Так что тут без ромашкового чая не обойдётся. Заваривайте чашечку, и добро пожаловать под кат.

Читать далее

Конец эпохи Windows 10: почему связка Avalonia UI и Linux становится идеальным выбором для .NET-разработчиков

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели18K

Осенью 2025 года заканчивается официальная поддержка Windows 10. Для миллионов пользователей и компаний окончание поддержки ставит вопрос о выборе дальнейшей стратегии. Наиболее очевидный путь — переход на Windows 11, однако его могут ограничивать более строгие аппаратные требования. Конечно, найдутся пользователи и организации, которые предпочтут продолжить эксплуатацию Windows 10 и после окончания официальной поддержки. У такого подхода есть свои плюсы, в первую очередь — отсутствие немедленных затрат на обновление железа или переобучение персонала. Однако минусы этого решения крайне серьезны: растущие уязвимости из-за отсутствия обновлений безопасности, потенциальная несовместимость с новым программным обеспечением и риски несоблюдения требований регуляторов, особенно для бизнеса. Таким образом, каждая стратегия требует тщательной оценки рисков и затрат.

На мой взгляд, стратегически верным шагом в данной ситуации  является миграция на Linux. Но что делать армии программистов, годами создававших приложения под экосистему Microsoft? Приложения на .NET Framework, WPF и WinForms — это кровь тысяч корпоративных и бизнес-систем. Полное переписывание их на другие технологии — это колоссальные затраты времени и денег. Однако существует элегантный и экономически выгодный путь, который не только решает проблему совместимости с Linux, но и открывает новые горизонты для разработки. Этот путь — кроссплатформенный фреймворк Avalonia UI и современная платформа .NET.

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

Читать далее

Большая труба Сида Мейера (как устроен мир в Civilization и моей маленькой 4X-стратегии MyCivGame)

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели15K

Приветствую тебя, читатель, меня зовут Вадим Бельский, и я уже больше полугода делаю свою небольшую 4-x стратегию MyCivGame, вдохновленную играми Civilization и Total War. Сейчас я расскажу тебе, как устроен мир в нашей любимой игре Civilization, и мы с тобой вместе подумаем, можно ли сделать его лучше (а самое главное, нужно ли это)!

Читать далее

Пишем письма с Gmail на Bitcoin

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели5.9K

Привет, Хабр!
Это снова команда Eppie, децентрализованной p2p почты, в которой адрес принадлежит пользователю, а не сервису.

Пока мы занимались ядром приложения, ярких новостей было немного. Но теперь проект вышел на новый этап — всё чаще выходят обновления, о которых хочется рассказывать. Недавно в тестовой сети заработали децентрализованные адреса. Обзорный текст об этом можно почитать здесь. Если коротко, адрес в Eppie — это криптографический публичный ключ, а соответствующий ему приватный ключ дает пользователю полный контроль над почтовым ящиком.

А поскольку адрес — это публичный ключ, мы можем интегрировать существующие децентрализованные сети с совместимой криптографией, например Bitcoin. Что мы и делаем. В нашей тестовой сети уже можно создать новый Bitcoin-адрес, или импортировать существующий, и получать на него письма. Сегодня расскажем об этом подробнее.

Читать далее

Вышел открытый игровой движок Godot 4.5 — подробный обзор нововведений

Уровень сложностиПростой
Время на прочтение22 мин
Охват и читатели12K

Godot — это 2D/3D игровой движок с открытым исходным кодом по лицензии MIT и большим сообществом, поддерживающий основные настольные и мобильные ОС, VR и веб (приставки с помощью сторонних компаний), ядро написано на C++, для скриптов поддерживается GDScript и C#, возможно подключение модулей практически на любом языке вплоть до Rust через GDExtension. Примеры игр — список раз, список два. Версия 4.5 вышла 15 сентября 2025. Главные нововведения: трафаретный буфер (stencil buffer), поддержка средств чтения с экрана, обратная трассировка скриптов и пользовательские логгеры, запекатель шейдеров (shader baker), живой предпросмотр интернационализации, поддержка Apple Vision, физика сегментированных тайловых карт (chunk tilemap physics), фовеальный рендеринг (foveated rendering) на Vulkan Mobile, поддержка WebAssembly SIMD в веб. Далее сделанный человеком перевод официального обзора нововведений с доступными объяснениями для новичков и ссылками на PR с исходным кодом на C++ для профессионалов.

Поддержка трафаретного буфера (stencil buffer). Как нам «прорезать дыру» в этой стене, чтобы посмотреть на игрока на другой стороне? Теперь вы можете сделать это с трафаретными буферами! Представьте невидимую сферу, которая окружает нашего персонажа. Даже если геометрия не отрисовывается на экране, мы вставляем ее форму в трафаретный буфер. Теперь сделаем так, чтобы наши шейдеры отрисовывались, только если целевой пиксель не покрыт трафаретом. Вот так! Трафаретный буфер — это специальный буфер, в который меши могут писать для последующего сравнения. Он похож на существующий буфер глубины, но в него можно записать произвольные значения и у вас больше контроля над тем, что можно сделать со сравнениями. Подробнее и код. Добавлено Apples.

Читать далее

Особенности REMOVEFILTERS в DAX из Power BI

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели5.6K

Привет, Хабр! Одной из важных функций-модификаторов в DAX является REMOVEFILTERS, он позволяет, например, убрать фильтр для расчета знаменателя в доле. Однако логика REMOVEFILTERS для столбцов может выглядеть неочевидной, например, REMOVEFILTERS только для одного поля, по которому есть условие в FILTER, не влияет на результат DAX запроса. Так, REMOVEFILTERS(customer[customer_id]) не влияет на FILTER в SUMMARIZECOLUMNS вида FILTER(customer, customer[customer_id] > 2) и для сброса фильтра нужен REMOVEFILTERS(customer) по всей таблице. В связи с этим удобно представить принципы работы REMOVEFILTERS более формально, например, в виде ER диаграммы с подписанными связями. Для построения ER диаграммы был выбран Mermaid и генерация кода диаграммы реализована на C#. Интересующимся особенностями REMOVEFILTERS — добро пожаловать под кат :)

Читать далее

Барьерные токены: Мощное расширение парсеров для работы с отступами языков Python и YAML

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели7.9K

Сегодня я расскажу, как из-за случайной встречи с ANTLR я создал RCParsing, библиотеку на C# для парсинга практически любого вида синтаксиса, поддерживающую парсинг отступов из коробки. Мы разберемся, как работают разные алгоритмы парсинга и чем отличается тот, что используется у меня. Также я закину пример кода для парсинга упрощенного YAML с использованием моей библиотеки.

Читать далее

Ближайшие события

DOOH и RTB: как Russ развивает программатические закупки в наружной рекламе

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели5.8K

Привет, Хабр! С вами команда Russtech. Сегодня мы хотим рассказать о работе Russ Programmatic, нашего подразделения, разработавшего систему продажи рекламного инвентаря с помощью аукционов в реальном времени. Программатик в DOOH имеет ряд отличий от традиционного digital-программатика. В этой статье мы обсудим эти ключевые особенности и поделимся нашим опытом внедрения программатических продаж.

Читать далее

Вопросов нет? Или почему отсутствие '?' может навредить проекту

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели6.2K

Фраза "вопросов нет" часто слышна в конце встречи или доклада. Чаще всего она означает, что всё прошло хорошо. Однако в мире программирования её буквальное значение обретает совершенно иной, даже тревожный оттенок. Когда речь заходит о разработке, отсутствие "вопросов" зачастую указывает не на ясность, а на скрытые проблемы. Давайте разберём, как их отсутствие может навредить качеству проекта.

Читать далее

Сервис очереди, или как подогнать код под все случаи

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели5.9K

Привет! С вами снова писатель-программист из компании Simpl Group (да, без e).
Совсем недавно я выступала на нашем внутреннем Meet Up — уже 6-м, между прочим, — и рассказала своим коллегам занимательную историю, которую поведаю сегодня и вам. Не про ведьм и демонов, конечно, как в моей книге. А про цирк — цифровой цирк, в котором задачи прыгают через обручи, катаются на велосипедах и не падают. Или, по крайней мере, мы стараемся, чтобы не падали.

Читать далее

Как получить и использовать бесплатную лицензию PVS-Studio на практике. Часть 1: подготовка и начало работы

Время на прочтение6 мин
Охват и читатели8K

Многие разработчики слышали о статическом анализаторе PVS-Studio, но не все знают, что анализатор можно использовать бесплатно на постоянной основе. В этой статье мы разберём, какие существуют варианты бесплатного лицензирования, для кого они подходят и как начать пользоваться инструментом.

Читать далее

Кастомные WPF-контролы, часть 1: стили, кнопки и переключатели

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели6K

Относительно недавно мне поставили задачу разработать достаточно простое Windows приложение. При выборе технологии я решил использовать проверенный временем WPF, с которым я работал раньше. Как правило, при разработке WPF‑приложения, я использовал контролы от Telerik или DevExpress и разработкой своих контролов не занимался. Но в текущей ситуации приобрести их проблематично и не факт, что не будет проблем с лицензией в будущем. Проект, над которым я работал, небольшой, навороченных гридов в нем не было, поэтому я решил использовать то, что есть в WPF «из коробки». При этом потребуется написать DateTimePicker и доработать Button, ToggleButton, ComboBox и ListBox. Задача казалась не особо сложной. В результате все оказалось не все так просто и очевидно, как я думал. Это навело меня на мысль написать серию статей с описанием проблем, с которыми я столкнулся. Может быть это поможет другим разработчикам на наступать на те же грабли, что и я. В планах 3 статьи. В первой расскажу про подключение стилей и изменение дизайна у стандартных кнопки и переключателя. Во второй — про расширение функционала стандартного ComboBox и разработку DateTimePicker. В третьей про добавление в ListBox анимированного drag«n«drop, масштабирования и сортировки содержимого.

Читать далее

Книга «C# Concurrency. Асинхронное программирование и многопоточность» в правильном переводе команды DotNetRu

Время на прочтение5 мин
Охват и читатели9.2K

Сообщество DotNetRu совместно с издательством «Питер» завершило перевод книги Нира Добовицки «C# Concurrency». Мы тщательно выверили терминологию, сгладили стиль и сохранили точность оригинала. Это практическое руководство для тех, кто хочет уверенно проектировать конкурентные компоненты на .NET 8/9 — без догадок и шаманства.

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

Читать далее

ИИ в работе программиста

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели6.8K

Меня зовут Артём, в данный момент я работаю на должности ведущего программиста. Перед вами текст в стиле черновика статьи о размышлениях автора на тему современных ИИ инструментов в разработке программного обеспечения — о том, как это связано с эффектом «Зловещей долины», помощью с развитием профессиональных навыков и инцестом.

Читать далее

Вклад авторов