Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Компиляторы создают подробную модель кода приложения, так как проверяют синтаксис и семантику этого кода. Они используют эту модель для создания исполняемых выходных данных из исходного кода. Пакет SDK для платформы компилятора .NET предоставляет доступ к этой модели. Все чаще мы опираемся на интегрированные функции среды разработки (IDE), такие как IntelliSense, рефакторинг, интеллектуальное переименование, "Поиск всех ссылок" и "Перейти к определению", чтобы повысить производительность. Мы опираемся на средства анализа кода для улучшения качества кода и генераторов кода для помощи в создании приложений. По мере того как эти средства становятся более умными, им нужен доступ к все большему объему модели, который создают только компиляторы при обработке кода приложения. Это основная миссия API Roslyn: открытие закрытых систем и предоставление инструментам и конечным пользователям возможности делиться богатым объемом информации, имеющейся у компиляторов о нашем коде. Вместо того чтобы быть непрозрачными переводчиками исходного кода в объектный код, с помощью Roslyn компиляторы становятся платформами — интерфейсы API, которые можно использовать для задач, связанных с кодом, в инструментах и приложениях.
Основные понятия пакета SDK для платформы компилятора .NET
Пакет SDK платформы компилятора .NET значительно снижает барьер для создания ориентированных на код средств и приложений. Он создает множество возможностей для инноваций в таких областях, как метапрограммирование, создание кода и преобразование, интерактивное использование языков C# и Visual Basic, а также внедрение C# и Visual Basic на языках, относящихся к домену.
Пакет SDK для платформы компилятора .NET позволяет создавать анализаторы и исправления кода , которые находят и исправляют ошибки программирования. Анализаторы понимают синтаксис (структуру кода) и семантику для обнаружения рекомендаций, которые следует исправить. Исправления кода предоставляют одно или несколько предлагаемых исправлений для решения ошибок кодирования, обнаруженных анализаторами или диагностикой компилятора. Как правило, анализатор и связанные исправления кода упаковываются в один проект.
Анализаторы и исправления кода используют статический анализ для понимания кода. Они не запускают код или предоставляют другие преимущества тестирования. Однако они могут указывать на практики, которые часто приводят к ошибкам, неуправляемому коду или стандартному нарушению руководства.
Помимо анализаторов и исправлений кода, пакет SDK платформы компилятора .NET также позволяет создавать рефакторинг кода. Он также предоставляет один набор API, который позволяет изучать и понимать базу кода C# или Visual Basic. Так как вы можете использовать эту единую базу кода, вы можете легко создавать анализаторы и исправления кода, используя api синтаксического и семантического анализа, предоставляемые пакетом SDK платформы компилятора .NET. Освобожденная от большой задачи репликации анализа, выполняемого компилятором, можно сосредоточиться на более ориентированной задаче поиска и устранения распространенных ошибок программирования для проекта или библиотеки.
Меньшее преимущество заключается в том, что анализаторы и исправления кода меньше и используют гораздо меньше памяти при загрузке в Visual Studio, чем если вы написали собственную базу кода, чтобы понять код в проекте. Используя те же классы, которые используются компилятором и Visual Studio, можно создать собственные статические средства анализа. Это означает, что ваша команда может использовать анализаторы и исправления кода без заметного влияния на производительность интегрированной среды разработки.
Существует три основных сценария написания анализаторов и исправлений кода:
- Применение стандартов кодирования команды
- Дайте рекомендации по пакетам библиотеки
- Предоставление общих рекомендаций
Применение стандартов кодирования команды
Многие команды имеют стандарты кодирования, которые применяются через проверки кода с другими участниками команды. Анализаторы и исправления кода могут сделать этот процесс гораздо более эффективным. Проверки кода происходят, когда разработчик делится своей работой с другими пользователями в команде. Разработчик будет инвестировать все время, необходимое для завершения новой функции, прежде чем получать комментарии. Недели могут пойти, пока разработчик усиливает привычки, которые не соответствуют практики команды.
Анализаторы выполняются, пока разработчик пишет код. Разработчик получает немедленную обратную связь, которая рекомендует немедленно следовать рекомендациям. Разработчик создает привычки писать соответствующий код сразу после начала прототипирования. Когда функция готова к просмотру людьми, все стандартные рекомендации были строго соблюдены.
Команды могут создавать анализаторы кода и исправления, которые выявляют наиболее распространенные практики, нарушающие стандарты кодирования команды. Их можно установить на каждом компьютере разработчика, чтобы обеспечить соблюдение стандартов.
Подсказка
Прежде чем создавать собственный анализатор, ознакомьтесь с уже встроенными анализаторами. Дополнительные сведения см. в разделе "Правила стиля кода".
Предоставление руководства по библиотечным пакетам
Существует множество библиотек, доступных для разработчиков .NET в NuGet. Некоторые из них приходят от Корпорации Майкрософт, некоторые из сторонних компаний, а также другие из членов сообщества и добровольцев. Эти библиотеки получают больше внедрения и более высокие отзывы, когда разработчики могут успешно использовать эти библиотеки.
Помимо предоставления документации, вы можете предоставлять анализаторы и исправления кода, которые находят и исправляют распространенные неправильные способы использования библиотеки. Эти немедленные исправления помогут разработчикам быстрее добиться успеха.
Анализаторы и исправления кода можно упаковыть с помощью библиотеки в NuGet. В этом сценарии каждый разработчик, который устанавливает пакет NuGet, также установит пакет анализатора. Все разработчики, использующие вашу библиотеку, немедленно получат рекомендации от вашей команды в виде немедленной обратной связи по ошибкам и предлагаемым исправлениям.
Предоставление общих рекомендаций
Сообщество разработчиков .NET обнаружило, используя опыт, шаблоны, которые хорошо работают и шаблоны, которые лучше всего избежать. Несколько членов сообщества создали анализаторы, которые применяют эти рекомендуемые шаблоны. По мере того как мы узнаем больше, всегда есть место для новых идей.
Эти анализаторы можно отправить в Visual Studio Marketplace и скачать разработчиками с помощью Visual Studio. Новички, изучающие язык и платформу, быстро изучают принятые методики и становятся продуктивными на начальных этапах освоения .NET. По мере того как они становятся более широко используемыми, сообщество принимает эти методики.
Генераторы источников
Генераторы источников стремятся включить метапрограммирование времени компиляции, то есть код, который можно создать во время компиляции и добавить в компиляцию. Генераторы источников могут считывать содержимое компиляции перед выполнением, а также получать доступ к любым дополнительным файлам. Эта возможность позволяет им интроспектировать как пользовательские файлы кода C#, так и файлы генератора. Вы можете узнать, как создавать инкрементные генераторы исходного кода с помощью руководства по генераторам исходного кода.
Дальнейшие шаги
Пакет SDK платформы компилятора .NET включает последние языковые объектные модели для создания кода, анализа и рефакторинга. В этом разделе представлен обзор пакета SDK для платформы компилятора .NET. Дополнительные сведения см. в руководствах по быстрому старту, примерах и учебных пособиях.
Дополнительные сведения о концепциях пакета SDK для платформы компилятора .NET см. в следующих пяти разделах:
- Изучение кода с помощью визуализатора синтаксиса
- Общие сведения о модели API компилятора
- Работа с синтаксисом
- Работа с семантикой
- Работа с рабочей средой
Чтобы приступить к работе, необходимо установить пакет SDK платформы компилятора .NET:
Инструкции по установке — Visual Studio Installer
Существует два разных способа найти пакет SDK платформы компилятора .NET в установщике Visual Studio:
Установка с помощью установщика Visual Studio — представление рабочих нагрузок
Пакет SDK платформы компилятора .NET не выбирается автоматически в рамках рабочей нагрузки разработки расширений Visual Studio. Его необходимо выбрать как необязательный компонент.
- Запуск установщика Visual Studio
- Выберите Изменить.
- Проверьте рабочую нагрузку разработки расширений Visual Studio .
- Откройте узел разработки расширений Visual Studio в дереве сводки.
- Установите флажок .NET Compiler Platform SDK. Он будет находиться в последнем разделе необязательных компонентов.
Кроме того, вы также хотите, чтобы редактор DGML отображал графы в визуализаторе:
- Откройте узел отдельных компонентов в дереве сводки.
- Установите флажок для редактора DGML
Установка с помощью установщика Visual Studio — вкладка "Отдельные компоненты"
- Запуск установщика Visual Studio
- Выберите Изменить.
- Выберите вкладку "Отдельные компоненты"
- Установите флажок .NET Compiler Platform SDK. Его можно найти в верхней части раздела "Компиляторы", "Средства сборки" и "Среды выполнения ".
Кроме того, вы также хотите, чтобы редактор DGML отображал графы в визуализаторе:
- Установите флажок для редактора DGML. Его можно найти в разделе "Инструменты кода ".