Ленивый LINQ: разбираем yield и ленивые вычисления по кирпичикам. Часть 2
В первой части мы успешно вскрыли чёрный ящик LINQ: написали Where вручную, разобрались, как компилятор превращает yield return &n…
Tech news from the best sources
В первой части мы успешно вскрыли чёрный ящик LINQ: написали Where вручную, разобрались, как компилятор превращает yield return &n…
У меня есть несколько статей, в которых я рассказываю о различных особенностях работы коллекций в .NET, например эта и эта . Мы с вами разбирали, ка…
В прошлый раз мы пробежались по предметной области, добыли данные и вывели их на экран. В принципе, этого достаточно для выполнения моего ежедневног…
В этой статье я покажу, как использовать IAsyncEnumerable в WPF‑приложении для асинхронных операций. Код полностью рабочий, его…
Это конспект-статья по итогам построения рекомендательной системы в .NET. Начнём с самой идеи: как представить пользователя и фильм в виде векторов…
В этот раз я пришёл с двухчастным текстом про F#, тайппровайдеры, скрипты, спортивное программирование, MVU, консольные интерфейсы в стиле FarManage…
Выходит обновление плагина, он дописывает свои ключи в ваш конфиг и заодно меняет порядок остальных. Через сутки в дискорде жалобы, вы открываете бэ…
Размышления фулстек-инженера, который начинал с небольших сайтов, а закончил системами для банков, государства и маркетплейсов. Читать далее
Большинство разработчиков привыкли работать с базами данных через специализированные инструменты: кто-то сидит в SQL Server Management Studio (SSMS)…
.NET Matrix — это новый открытый проект, который сравнивает .NET-библиотеки внутри одной категории по трём аспектам: возможности , скорость и исполь…
Понадобилось научить десктопную программу принимать лицензионные ключи: строка из письма вставляется руками и проверяется без интернета. Во что это…
Вложенный JSON-объект при импорте в таблицу расплющивался в колонку robot.point.x — и вся структура терялась безвозвратно. Разобрался, как сделать э…
В прошлой статье я рассказывал, как мы делаем онлайн IDE для .NET — дизайн, компиляция и запуск приложений происходят прямо в браузере, без сервера.…
В первой части мы успешно вскрыли чёрный ящик LINQ: написали Where вручную, разобрались, как компилятор превращает yield return в конечные автоматы,…
Если искать в интернете «мощный DI-контейнер для .NET», почти в каждом списке встретится Autofac. У него заслуженная репутация зрелого и функциональ…
Недавно я опубликовал в Google Play приложение 99.9% исходного кода которого написано AI. Это не просто "поделка на коленке за выходные": нативное (…
Pure.DI — это генератор кода для внедрения зависимостей (Dependency Injection), который работает на этапе компиляции. Pure.DI развивает идею «чистог…
Сколько времени на самом деле мы проводим в разных приложениях? Кажется, что открыл IDE на пару минут, проверил браузер — и вернулся к работе. Но сп…
Знаете это чувство, когда правишь JSON и ищешь, где же ты забыл запятую? Я устал и сделал редактор, где JSON — это таблица. А теперь он ещё и открыв…
Сегодня мы закончим ковырять порт тайловых миров на F#. Правда, в прошлый раз мы исчерпали запас того, что вообще можно было «портировать», поэтому…
Полгода назад я так устал вручную ковыряться в JSON, что написал свой редактор — просто чтобы не сойти с ума. Выложил статью на Хабр, не ожидая ниче…
Признайтесь, и вы тоже. Наверное, нет более противоречивой библиотеки в мире .NET чем AutoMapper . Тысячи проектов его используют, а разработч…
Самый частый сценарий в моей практике: бизнес дает полстраницы требований, а через день спрашивает «ну что, готово?». Между ними — зо…
В прошлой главе мы начали разбирать порт тайловых миров на F#, где познакомились с некоторыми малоизвестными возможностями Godot. В этот раз наш при…
Паттерны проектирования, механизмы инфраструктуры, объектно-ориентированные паттерны часто изучают в отрыве от реальных задач, из-за чего их ценност…
Друзья, приветствуем вас! Наступило долгожданное лето. И, пока все не ушли в отпуска, мы спешим с новым анонсом. Сегодня у нас вышла версия 1.4 библ…
Создаю собственный DSL на C#: рассказываю о том, как инкрементальный парсер. И наконец-то будет использовать одно из преимуществ рослиновской модели…
В данной статье разбирается, как реализовать пользовательский многосегментный WPF компонент. Это может содействовать в изучении внутреннего устройст…
Привет, Хабр! Меня зовут Павел, я ведущий разработчик. В этой статье расскажу про Kafka, consumer groups, lag, offset commit и встроенное сжатие соо…
Одна из главных автоматизаций в BIM – создание объектов. Разбираем создание объектов через Renga API шаг за шагом. Читать далее