Более Быстрый и Лёгкий C# Dev Kit
Мы, разработчики, любим быстрые инструменты. Ожидание загрузки языковой поддержки, завершения сборки и выполнения тестов — это время, которое можно было бы потратить с большей пользой. В рамках выпуска .NET 11 архитектура C# Dev Kit была полностью переработана, что позволило существенно повысить производительность и оптимизировать использование памяти. Кроме того, появились отличные новые функции. Версия C# Dev Kit синхронизирована с текущим выпуском .NET, поэтому новая версия расширения — 11.0, хотя предыдущая была 3.3.
Более быстрая загрузка
В 100+ раз быстрее для активного файла и до 30 раз быстрее для всего решения.
Загрузка активного файла означает, что для редактируемого файла доступна языковая поддержка: автодополнение, диагностика, переход к определению и быстрые исправления. В этот момент можно приступать к полноценной работе. Загрузка всего решения достигается после завершения загрузки всех проектов: языковая поддержка работает в любом файле, обнаружены все тесты в решении, а функция поиска всех ссылок (Find All References) охватывает все проекты. Ускорить загрузку помогают новые механизмы кэширования проектов. Теперь системе не нужно заново анализировать каждый проект при каждом открытии, поэтому языковые сервисы, тесты и таргеты запуска становятся доступными практически мгновенно. Сначала загружается активный файл, что позволяет начать работу с ним, пока остальная часть рабочей области загружается в фоновом режиме; при этом производительность остаётся стабильной независимо от количества проектов.
Кэш проекта создается при его первой загрузке. Все последующие загрузки выполняются на основе кэша и происходят быстро. Если зафиксировать файлы кэша в системе контроля версий, то новые клоны репозитория и рабочие деревья (git worktrees) сразу же получат доступ к быстрой работе инструментов, что особенно удобно при использовании агентов сборки.
Более быстрая сборка
В C# Dev Kit 11.0 инкрементальная сборка выполняется значительно быстрее благодаря функциям быстрой проверки актуальности (fast up-to-date checks) и ускорению сборки (Build Acceleration) — возможностям, которые уже давно доступны разработчикам в Visual Studio.
Время сборки зависит от структуры решения, поэтому столь значительное ускорение будет наблюдаться не в каждом случае. Однако чаще всего выполняется сборка после внесения лишь небольших изменений, и именно в этом сценарии версия 11.0 демонстрирует наибольший прирост производительности.
Повышенная отзывчивость заметна также при запуске модульных тестов и самих приложений. Поскольку перед началом выполнения обе эти операции требуют сборки, в версии 11.0 они завершаются быстрее.
Память
Потребление памяти ниже более, чем на 80%.
Объём используемой памяти зависит скорее от размера кодовой базы, чем от количества проектов. При этом благодаря компактной модели представления проектов потребление памяти растёт гораздо медленнее, чем размер кода.
В версии 11.0 используется более компактное представление проекта в оперативной памяти, что существенно снижает потребление памяти, особенно при работе с крупными решениями.
Редактирование проектов и других файлов MSBuild
В C# Dev Kit 11.0 реализованы новые возможности редактирования файлов
.csproj, .props и .targets. Вам доступны автодополнение кода, диагностика, переход к определению, быстрые исправления и семантическая подсветка — тот же уровень языковой поддержки, к которому вы привыкли при редактировании кода на C#.Для пакетов также предусмотрена функция CodeLens, предлагающая ряд удобных действий. Она уведомляет о появлении новых версий и о наличии уязвимостей в используемой версии.
Языковая поддержка MSBuild не ограничивается только пакетами. Функции автодополнения охватывают свойства, элементы и ключи метаданных. Переход к определению работает для ряда элементов и позволяет просматривать исходный код SDK. Система диагностики выявляет проблемы в процессе ввода кода, а функция быстрых исправлений предлагает способы их устранения.
Проверка состояния с помощью C# Doctor
Если проект не загружается или ведёт себя неожиданным образом, причина часто кроется в окружении: отсутствует необходимый SDK, не установлена среда выполнения, недоступна целевая платформа, произошёл сбой при восстановлении пакетов или в одном из подключенных пакетов обнаружена известная уязвимость. C# Doctor объединяет все эти проверки в одном месте и помогает найти верное решение, избавляя вас от необходимости восстанавливать картину произошедшего по разрозненным сообщениям об ошибках.
Источник: https://devblogs.microsoft.com/dotnet/faster-lighter-csharp-dev-kit/