
Рассказываю чем заменить Swashbuckle, который убрали из .Net 9, для создания страницы похожей на Swagger UI.
Хаб со знаниями про .NET
Рассказываю чем заменить Swashbuckle, который убрали из .Net 9, для создания страницы похожей на Swagger UI.
Этой статьёй я хочу внести некоторые правки в алгоритм развёртывания, который я описывал год назад вот здесь. Статья тогда получилась объёмная, и я искал способы её сократить, в результате чего опрометчиво пренебрёг несколькими сценариями, которые пригодились мне в дальнейшей разработке. Они образовали техдолг, который мне необходимо закрыть ввиду грядущего продолжения.
Привет, друзья! На связи снова Кирилл Пронин из PIX Robotics, и у меня для вас новая статья-сенсация!
Мы сейчас открыли новый набор стажеров нашу команду разработки RPA, и коллеги попросили рассказать, как проходила стажировка по C# в прошлом году. А я что – я только за, потому что: а) благодаря прошлой стажировке мы заполучили двух талантливых джунов; б) для меня стажировка стала первым опытом в роли TeamLead’a; в) это было весёлое и необычное путешествие с неожиданными результатами (саму крутую цифру я уже вынес в заголовок, об остальных – ниже).
Для нашей команды это был первый опыт запуска стажировки, так что, как бы ни готовились, мы все равно не учли некоторые нюансы. Назвать их громко ОШИБКАМИ пальцы не поднимаются, а вот неожиданностями и нюансами – вполне. А так как для меня это все стало еще и первым опытом «тимлидства», то поделиться всем этим хочется вдвойне. Так что в этой статье расскажу, как организовать продуктивную стажировку, как отбирать лучших из лучших, какие ошибки нам удалось избежать и, конечно, о ключевых особенностях работы.
Я сделал простейшую утилиту для регистрации реализаций в контейнере.
Теперь можно легко и быстро тянуть все из сборок одной командой.
Разбираемся с async/await без магии и скуки. Зачем вообще нужна асинхронность? Как устроена асинхронность в .NET внутри? Как работают await, Task, ValueTask, и многое другое?
Из всех утюгов звучат новости о появлении новых видов ИИ, нейронных сетей, но как будто хайп спадает, ну есть какой-то сайт, который напишет статью, сделает домашнее задание, запрограммирует простую программу, ну и что? Большинство людей как жили своими жизнями, так и живут и их никак не касается развитие ИИ.
Я тоже так думал, думал что начнется застой в сфере ИИ, но кое что произошло. Я некоторое время назад, разработал Телеграм бота для знакомств, но не просто бота, в нем помимо реальных анкет людей были анкеты "Виртуальных людей", по сути ботов. Разработал я бота просто так, чтобы друзьям показать, поприкалываться. Но мне неделю назад пришло в личку в телеге письмо от незнакомой девушки, которая просила не удалять из бота какую-то анкету. Я сначала не понял, что от меня хотят, но потом как понял... и решил поделиться сообществом тем, что произошло.
Посмотрел я наканунеэто видео и «вдохновился»… тем, что в видео показан очень сложный способ сделать очень простую вещь — миграцию пользовательских данных.
Если интересен контекст моего баттхерта, то стоит посмотреть оригинальное видео, если же нет — можно перейти сразу сюда к моей реализации...
Личный взгляд программиста с стажем на то, как Microsoft переманил Хейлсберга, создал .NET и вытеснил Delphi с технологической сцены. История предательства, перехода эпох и чемодана, который до сих пор скрипит в углу.
Краткий туториал, как организовать обработку фоновых задач с приоритетами для условного SaaS продукта с разделением клиентских данных.
Четыре сгоревших STM32, три блока питания, 90 ампер, синяя сосиска, 16 бубенчиков и электродиффузия — в этой части кормим подсветку для трёх теликов, пишем с нуля протокол адресных светодиодных лент WS2812b и обматываемся коаксиальными проводами.
В этой статье я делюсь своим личным опытом обучения программированию с нуля. Статья не про конкретные технологии. Это размышления, и подведение итогов за мой первый год пути как разработчика. Здесь я затрагиваю только ключевые этапы, которые на меня повлияли.
Статья подойдет тем, кто:
• Боится ошибаться и откладывает старт.
• Учится и не понимает зачем ему это.
• Учится, но хочет услышать про чужой путь и сделать свои выводы.
Недавно я работал над небольшим собственным проектом, представляющим собой Roslyn-генератор интерфейсов только для чтения для существующих классов. Когда я посчитал, что пришло время выкладывать результаты в виде NuGet-пакета, я решил, что нужно создать автоматизированный конвейер сборки. В прошлом я уже решал такую задачу с помощью AppVeyor. Но на этот раз имелись некоторые отличия. Во-первых, в прошлом я использовал Cake для описания задач сборки. На этот раз я решил попробовать Nuke. Последний обещает лучшую интеграцию с Visual Studio. Кроме того, я решил попробовать русский аналог GitHub — GitVerse. Что из этого получилось, читайте ниже.
Всем привет! Я Александр Родов, ведущий разработчик в компании «БАРС Груп», автор и руководитель разработки сервиса генерации печатных форм Sprinter. Этой статьей мы продолжаем рассказ о возможностях использования библиотек DocumentFormat.OpenXml для генерации печатных файлов «офисных» форматов.
Напомним, в предыдущей части мы сформулировали постановку нашей демонстрационной задачи, а именно разработать печать данных заказа в некотором абстрактном интернет-магазине. Далее реализовали первую часть документа, содержащую шапку документа и колонтитул с логотипом магазина. Подробнее с постановкой задачи и примерами исходного кода можно ознакомиться по ссылке выше. Ну а на очереди у нас — печать таблиц в docx!
Привет, Хабр!
Начиная думать о следующем пет-проекте, мне хотелось решить какую-нибудь проблему, которая болит не только мне, но и людям вокруг. Взгляд пал на барахолки в телеграм чатах Грузии = потребность в поиске нужных вещей там без постоянного мониторинга десятка групп. Казалось бы, не так и сложно, но на деле я столкнулся с весьма интересными подводными камнями, о решении которых и хотелось бы тут рассказать.
Статья — технический разбор моей попытки построить сеть каналов‑барахолок в Telegram, которая включала бы в себя все объявления уже существующих и устранила фактор хаоса (спам, коммерция, мусорные сообщения). А так же поверх — бота с подпиской на объявления по ключевыем словам.
Много лет мы обсуждали, как разбить монолит на микросервисы. Микросервисная архитектура стала стандартом для создания сложных систем. Однако что делать, если растущее число сервисов начинает тормозить разработку, усложнять сопровождение и порождать избыточность? Забавно, что спустя столько времени я пишу статью о том, как вернуться к монолиту. Это история о том, как микросервисная архитектура сыграла с нами злую шутку, а монолит оказался спасением. Данный подход, хотя и кажется шагом назад, открыл нам возможность упростить код, снизить эксплуатационные затраты и навести порядок в хаосе микросервисов. В этой статье я поделюсь тем, как я переосмыслила процессы и нашла баланс между гибкостью микросервисов и преимуществами модульного подхода.
В этой статье я расскажу, как разрабатывал виртуальную машину на C#, столкнувшись с проблемами производительности и управления памятью, а также поделюсь опытом, который приобрел в ходе работы.
Привет, Хабр!
Сегодня я хочу рассказать о создании простого, но полезного пет-проекта — Telegram-бота, который помогает пользователям улучшать их английский с помощью GPT-4. Проект отлично подойдет для начинающих разработчиков, так как использует современный стек технологий и имеет понятную архитектуру.
В этой серии статей я расскажу, как строил кастомную 500-ваттную подсветку вокруг трёх теликов, какие у неё особенности и как я огибал геометрию экранов с использованием, в том числе, 3D печати из алюминия.
Привет, Хабр! Это Дмитрий Бахтенков. Добро пожаловать в третью часть цикла статей «Многопоточность. Снизу вверх»! Мы уже разобрали процессор и операционную систему, а сегодня поговорим про использование потоков в .NET с помощью языка программирования C#.
Эта статья — обзор основных возможностей взаимодействия с потоками в .NET.