Все потоки
Поиск
Написать публикацию
Обновить
52.13

.NET *

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

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

Интеграция как криптовалюта опыта: как веб-интеграторы майнят ценность в цифровой экосистеме

Время на прочтение10 мин
Количество просмотров117

Здравствуйте! Антон Боев, исполнительный директор веб-интегратора DD Planet. В текущей статье поговорим о том, что внутри моей команды вызывает горячие дискуссии практически каждый день. Итак, речь пойдет об ИНТЕГРАЦИЯХ.

В нашей команде каждый день звучат одни и те же вопросы: «Как подключиться быстрее?», «Какую архитектуру использовать?», «Где взять устойчивое решение для этого сервиса?» Ответы на них не просто технические решения. Это опыт, который накапливается годами. И я хочу предложить вам посмотреть на него под неожиданным углом - как на криптовалюту веб-интегратора.

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

Итак, начнем с анализа изменений в подходах и способах создания интеграций за последнее десятилетие.

Способы интеграций, есть ли изменения?

Организовать взаимодействие двух сервисов можно разными способами:

Читать далее

Новости

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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 мин
Количество просмотров1.1K

Привет, Хабр! Одной из важных функций-модификаторов в 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 мин
Количество просмотров2K

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров714

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

Время на прочтение6 мин
Количество просмотров2.1K

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

Читать далее

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

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

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

Читать далее

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

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

Время на прочтение5 мин
Количество просмотров5.9K

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

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

Читать далее

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

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

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

Читать далее

Словари ресурсов WPF. Переключаем тему приложения на лету

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров611

Для кого эта статья

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

В современном мире отсутствие возможности выбора темы в приложении считается моветоном. Пользователи любят выбирать удобную для себя цветовую схему, особенно при работе по ночам. В WPF такое поведение не организовано “из коробки”, поэтому мы создаём свою реализацию: задаём ресурсы (цвета и стили), даём пользователю переключать их на лету. О реализации этого механизма мы и поговорим в этой статье.

Читать далее

Книга: «C# Concurrency. Асинхронное программирование и многопоточность»

Время на прочтение4 мин
Количество просмотров5.7K

Привет, Хаброжители! Асинхронные и многопоточные программы могут выполнять несколько задач одновременно, не теряя скорости или надежности. Но правильная организация параллельного выполнения может вызвать затруднения даже у опытных разработчиков. Эта практическая книга научит вас создавать параллельные приложения на C#, работающие с максимальной скоростью и не имеющие взаимоблокировок и других проблем синхронизации, которые ухудшают производительность и требуют огромных усилий для их обнаружения.

«C# Concurrency» помогает получить полное представление об особенностях многопоточности и асинхронного программирования. В ней особое внимание уделено практическому использованию операторов async/await в C# для упрощения асинхронных задач. Вы научитесь избегать распространенных ошибок, обходить классические проблемы многопоточности, такие как состояния взаимоблокировки и гонки, а также узнаете о многих сложных нюансах управления потоками и использования потокобезопасных коллекций.

Читать далее

Всё про BlockingCollection и фичи с ними

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

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

В .NET живёт старый, понятный инструмент для конкурентной обработки — BlockingCollection<T>. Коллекция, которая упрощает модель producer–consumer, даёт строгую ограниченную вместимость и предсказуемую блокировку при пустоте или переполнении. Да, у нас есть Channel<T>, есть TPL Dataflow, есть миллион самодельных очередей на SemaphoreSlim. Но когда нужны простые правила и железный backpressure без BlockingCollection по-прежнему закрывает задачи хорошо.

Читать далее

День знаний. Базовые курсы по автоматизации тестирования

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

Привет! Я Миша Симонов. Работаю в Контуре ведущим специалистом по тестированию и являюсь техлидом автоматизации тестирования кластера из 17 команд. Сегодня хороший день, чтобы рассказать об одной из задач, которой я занимаюсь — повышение квалификации сотрудников в области автоматизации тестирования.

Если ты опытный автоматизатор, то не проходи мимо и поделись своим опытом в комментариях к курсам. Эти комментарии прочтут не только администраторы, но и новички, проходящие курсы.

Читать далее

Примеры применения EPLAN API для создания собственного модуля Add In

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров1.3K

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

Если вы когда-нибудь чувствовали, что стандартных инструментов EPLAN не хватает, значит пора взглянуть на его API. В статье я покажу, как написать свой первый Add-In на C#, добавить кнопку на Ribbon и заставить её выполнять полезные действия. Всё на примерах — от простого «Hello World» до работы с объектами и настройками EPLAN.

Читать далее
1
23 ...

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