Что нового в Visual Studio 2022? – CloudSavvy ИТ
Visual Studio 2022 сейчас находится в предварительной версии, выпуск которой запланирован на ноябрь 2021 года вместе с .NET 6, который он будет поддерживать. Он включает в себя множество новых функций и улучшений, таких как AI IntelliCode, который может автоматически заполнять фрагменты кода за вас.
Ты можешь скачать превью со своего веб-сайта. Хотя он все еще «экспериментален» и не готов к производству, это все еще Visual Studio, поэтому, если вы не зависите от расширений, которые еще не были обновлены, не бойтесь попробовать.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Мы рассмотрим наиболее важные изменения, произошедшие в Preview 3, но если вы хотите прочитать построчную примечания к патчу, вы можете сделать это из документации Microsoft. Есть также дорожная карта описывая общее направление.
Наконец-то 64-битный
Visual Studio всегда была 32-разрядной, что означает, что в основном процессе она была ограничена 4 ГБ ОЗУ. Обычно этот бюджет не превышает этого бюджета для обычных проектов, но некоторые пользователи могут столкнуться с исключениями нехватки памяти с особенно большими решениями.
В VS 2022 это исправлено, и теперь это 64-битное приложение. Microsoft протестировала проекты с 1600 проектами и 300 КБ файлов, и все работает нормально.
64-разрядная версия теоретически должна работать быстрее, и, похоже, она немного быстрее запускается, но Microsoft также работает над производительностью в целом, поэтому трудно сказать, насколько это на самом деле влияет на нее. В любом случае, хорошая перемена.
Конечно, вы все еще можете разрабатывать 32-битные приложения с VS 2022. Это относится только к редактору.
AI IntelliCode потрясающий
Возможности Visual Studio 2022 серьезное обновление их механизма автозаполнения IntelliCode. Он может автоматически заполнять целые строки и фрагменты кода и работает очень хорошо.
Это немного отличается от Второй пилот GitHub, который выполняет аналогичную работу. Copilot будет генерировать полные фрагменты кода и лучше всего подходит для небольших автономных функций с четким решением. Это здорово, но у него есть свои проблемы, в основном тот факт, что код, который он генерирует, даже не гарантирует, что он будет тем, что вы хотите (и может дословно извлекать код из случайных репозиториев GitHub, что является другой проблемой).
IntelliCode использует гораздо более ограниченный подход и просто завершает одну строку, принимая во внимание некоторые из следующих факторов:
- Имена и позиции переменных
- Библиотеки, которые вы используете
- Функции в окружающем коде
- Раскрывающийся список IntelliSense, который вы можете переместить вниз, чтобы дать IntelliCode больше предложений.
После двух недель использования это действительно то, что вам нужно попробовать на себе. Он потрясающе умный, и много раз, используя его, я ловил себя на мысли: «Вау, я как раз собирался это напечатать!»
Например, напишите функцию, которая принимает число от 1 до 12:
Чтобы понять и предоставить этот результат, IntelliCode делает гораздо больше, чем просто синтаксис автозаполнения; Он понимает, что я ожидаю исключение, довольно очевидное, учитывая, что я набираю «throw», и может определить, что это исключение выдается только в том случае, если сравнение целочисленного размера не удается. Он знает, что ширина – это аргумент, который проверяется перед запуском кода, и что я генерирую исключение, потому что с аргументом что-то не так.
Зная все это, он делает чрезвычайно точное предположение о моих намерениях и решает, что ArgumentOutOfRangeException должно быть тем, что я пытаюсь ввести, прежде чем я даже смогу начать печатать «новое».
И, если вы перейдете на страницу вниз, вы можете заполнить результаты для различных вариантов. Это все еще немного непоследовательно (было решено жестко закодировать «Ширина», а затем использовать nameof), но в целом работает хорошо.
IntelliCode работает постоянно, и все, что вам нужно сделать, это нажать табуляцию, чтобы принять его, в противном случае вы можете продолжить ввод. В настоящее время он работает только для C #, но «скоро появятся и другие языки».
Поддержка .NET 6
.NET 6 – это последний выпуск, также находящийся в предварительной версии. VS 2022 будет иметь встроенную поддержку для него и всех его функций, а для новых проектов по умолчанию используется .NET 6.
В частности, VS 2022 будет иметь полную поддержку .NET MAUI или многоплатформенного пользовательского интерфейса приложений, нового стандарта Microsoft для кроссплатформенной разработки собственных приложений.
Горячая перезагрузка .NET
Одна из самых неприятных вещей в программировании – это смотреть на свой экран, ждать, пока ваше приложение скомпилируется и запустится, и обновится с последними изменениями. Горячая перезагрузка – это функция многих других языков, таких как JavaScript, и используется веб-фреймворками, такими как React, для быстрых изменений. Однако до сих пор не существовало стандартизированного решения для .NET.
Он не полностью универсален и требует специальной настройки проекта, но VS 2022 включает горячую перезагрузку для «WPF, Windows Forms, .NET MAUI превью, кода программной части приложений ASP.NET Core, консольных приложений, WinUI 3 и многих других». Это исключает библиотеки классов, используемые другим приложением.
Некоторые типы изменений могут не применяться должным образом, что потребует правильного перезапуска. Вы можете просмотреть полный их список здесь, но суть в следующем:
- Не изменять сигнатуры методов
- Без добавления операторов using
- Без модификации интерфейсов
- Никаких переименований участников
В принципе, вы можете редактировать код любым способом, но как только вы начнете касаться структуры проекта, вам, возможно, придется перезапустить.
Он хорошо интегрирован в отладку VS с новым значком «Применить изменения кода», который запускает горячую перезагрузку. Вы также можете использовать новую команду dotnet watch для автоматической перезагрузки при изменении файла.
Веб-приложения Razor / Blazor в настоящее время могут использовать горячую перезагрузку, но Blazor WebAssembly все еще требует доработки, и в настоящее время она еще не работает. Тем не менее, над ним работают и, возможно, он выйдет в финальную версию позже в ноябре.
Удаленное тестирование
VS 2022 включает экспериментальную предварительную версию, которая позволяет запускать тесты в других средах, включая контейнеры Linux, WSL и даже через SSH.
Он немного настроен, и вам, конечно, нужно будет убедиться, что ваша среда настроена для правильного запуска вашего кода, но как только это произойдет, вы сможете выбирать разные среды при запуске тестов.
Общие улучшения
Есть много мелких изменений в сломать примечания к патчу, поэтому мы перечислим здесь некоторые из самых интересных.
Отладка претерпела некоторые улучшения качества жизни, с новыми параметрами контекста для более продвинутых точек останова, а также с функцией «Принудительный запуск к курсору», которая игнорирует все существующие точки останова и останавливается на выбранной вами строке кода. Это может быть очень полезно, если вы хотите что-то протестировать, не удаляя каждую точку останова или снова пропуская все вручную.
Интеграция VS с Git теперь поддерживает несколько репозиториев для каждого решения, а коммит во многих репозиториях теперь проще.
Все значки были переработаны для единообразия.
Комментарии XML теперь поддерживают многострочные комментарии с сохраненными пробелами и блоками CDATA.
«Найти все ссылки» больше не приводит к повторному выводу мусора в многоцелевом проекте.
Razor Pages / Blazor получили многочисленные интеграции редактирования и теперь будут лучше работать с IntelliSense, подсветкой синтаксиса и улучшенным форматированием в блоках @code. Теперь вы также можете использовать «Просмотр кода» в файлах Razor, что какое-то время было досадным ограничением.
И есть еще несколько шаблонов проектов, в том числе приложения Angular и React, размещенные в ASP.NET Core, которые могут быть автоматически созданы с интеграцией API.
Полный список изменений вы можете найти в Примечания к патчу VS 2022.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)