К основному контенту

Как дебажить ваш Roslyn анализатор кода не выходя из JetBrains Rider IDE

 Платформа компилятора .NET становится все больше, и в то же время вокруг нее растет набор инструментов. Таким образом, её становится легче использовать.

Хотя написание Source Geneartor - кода, который разбирает и анализирует ваш код, — непростая задача, он может быть полезен по-разному. Один из способов, которому я недавно научился благодаря моим коллегам, — это рефакторинг.  

Обычно код вашего анализатора исходного кода и/или генератора будет не самым простым для чтения и поддержки. Но идея в том, что это не всегда нужно! Идея состоит в том, что вы должны использовать генератор исходного кода как временное решение, которое упрощает рефакторинг для вас и вашей команды. Ведь после некоторого рефакторинга вы можете просто выбросить этот код как устаревший. Пожалуй, рефакторинг - это самое правильное применение идеи .NET Compiler Platform.

Я думаю, что на ютубе и в интернете есть много примеров, так что мне не нужно делиться еще одним «примером». 

Вместо этого я поделюсь практическим советом

Совет дня 

Для отладки генератора исходного кода C# на основе платформы компилятора Roslyn .NET в Rider IDE вам необходимо установить Rider 2023 EAP (да, ранняя предварительная версия), а затем следовать инструкциям на странице https://github.com/JoanComasFdz/dotnet-how-to-debug-source-generator-vs2022

https://res.cloudinary.com/practicaldev/image/fetch/s--lTVAw_gC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gyilfzab4phv0d76ikn9.png

Если вы по какой-то причине не использовали Rider IDE, попробуйте. Он намного эффективнее Visual Studio. Но, разработчикам JetBrains всё таки приходится следовать ЗА Microsoft, а не наоборот. Поэтому, до недавнего времени отладка генераторов исходников была невозможна. Однако теперь это не так! Ура!

Комментарии

Популярные сообщения из этого блога

Делаем себе бесплатный VPN на Amazon EC2

Читать этот пост в Telegraph. Другие посты в канале в Telegram. Кто только не расписывал уже пошаговые инструкции по этой теме. Однако, время идёт, ПО меняется, инструкции нуждаются в обновлении, а люди в современной России всё больше нуждаются в применении VPN. Я собираюсь описать все шаги для создания бесплатного сервера на Amazon EC2 с операционной системой Linux и необходимые команды для настройки VPN сервера на нём. Чтобы не повторяться о деталях, которые были много раз описаны на русскоязычных и англоязычных ресурсах, по ходу статьи я просто приведу целую кипу ссылок, где можно почерпнуть необходимую информацию, а где информация устарела - опишу подробнее что нужно сдеать. В итоге, сервер будет доступен для вас из любой точки планеты, с любой операционной системы, и бесплатно (с определёнными ограничениями по трафику). Шаг первый - Регистрируемся на Amazon AWS Нужно зайти на сайт https://aws.amazon.com/ru и сразу перейти к Регистрации, нажав одноимённую кнопку. При р

В помощь программисту: инструкции по работе с Ubuntu сервером

Программистам чаще приходится писать код и заботиться о его чистоте, правильных абстракциях в коде, корректных зависимостях и прочих сложностях профессии. При этом, настройка и обслуживание серверов, хоть и связанная область - это отдельный навык, необходимый не каждому, и помнить о котором в деталях сложно. Поэтому, я делаю ряд микро-инструкций, которыми буду пользоваться и сам, когда необходимо. Это не статьи, а пошаговые помощники, которые я буду дополнять и наполнять по мере надобности. Делаем бесплатный VPN на Amazon EC2 Создание ключей SSH Подключение к серверу через SSH Передача файла с Linux сервера наWindows машину Делаем VPN сервер на Ubuntu 20.04 используя OpenVPN и EasyRSA  Отображение GUI с Linux сервера на Windows машине

Выбираем все плюсы из трех парадигм Entity Framework

Между парадигмами разработки с Entity Framework (Code First, Model First, Database First) я выбрал промежуточную, потому что ни одна меня не устраивала полностью. В Code First меня радуют чистые POCO классы, но не устраивает невозможность моделирования базы. В Database First и Model First мне не нравится генерация EDMX и другого всего лишнего. Таким образом, я нашел для себя такое решение: 1. Я моделирую схему в любой удобной программе (тут любая внешняя программа моделирования, генерирующая SQL Server-совместимые скрипты генерации базы) Рис. Смоделированная схема БД. 2. Создаю базу в SQL Management Studio 3. Делаю Reverse Engineering базы в POCO классы (как в Code First) с помощью плагина Entity Framework Power Tools Рис. Установленный плагин для Reverse Engineer. Рис. Вот так делается Reverse Engineer базы данных в POCO классы. Рис. Результат генерации POCO классов на основе базы данных: папочка Models с готовым контекстом, классами объектов и маппинг-классами.