company_banner

14 новинок в Visual Studio 2019

Автор оригинала: Kendra Havens
  • Перевод
Всем привет! На связи команда по улучшению продуктивности в .NET (aka. Roslyn). Мы много внимания уделяем улучшению вашего опыта .NET-кодинга. Ведь иногда небольшие дополнения и исправления действительно могут улучшить рабочий процесс. Возможно вы уже видели некоторые улучшения в превью-версиях VS2019. Но мы все равно хотим рассказать о некоторых из них, которые должны помочь вам работать продуктивнее.

Осторожно, много гифок.



Улучшения инструментов


Как вам новые цвета от Roslyn? Цвета Visual Studio Code получили высокую оценку, поэтому мы включили аналогичные цветовые схемы в Visual Studio. Ваш редактор кода стал теперь немного красочнее. Ключевые слова, пользовательские методы, локальные переменные, имена параметров и перегруженные операторы получили новые цвета. Вы даже можете настроить цвета для каждой классификации синтаксиса, перейдя в Tools > Options > Environment > Fonts and Colors и прокрутив до «User Members».

New roslyn classification colors

В нижней части файла, в вашем редакторе, находятся индикаторы работоспособности документа, а также значок очистки кода. Индикаторы работоспособности документа позволяют сразу узнать, сколько ошибок и предупреждений присутствует в файле, который вы сейчас открыли. Вы можете нажать на значок очистки кода, чтобы применить правила стиля кода, указанные в Tools > Options, или, если у вас есть файл editorconfig, который предписывает использование одного стиля кода в вашей команде, VS применит стили, указанные в этом файле.

image

Вы можете редактировать файлы проектов типа SDK простым двойным щелчком мыши. Вы также можете просматривать эти файлы в виде превью в навигации GoToAll (Ctrl+t) и искать содержимое для ссылок на файлы.

image

Загрузите подмножество проектов в ваше решение с помощью фильтрованных решений! Теперь вы можете выгрузить проекты и сохранить .slnf-файл, который откроет только указанные вами проекты. Это поможет вам быстро получить интересующий вас код без необходимости загрузки всего решения.

image

Найдите все ссылки, классифицируемые по типу ссылки. Вы можете выполнять фильтрацию по чтению/записи в новом столбце «Kind» в окне поиска всех ссылок.

image

Запустите форматирование стиля кода по всему решению в командной строке с помощью глобального инструмента dotnet format.

image

Intellicode — это расширение, предлагающее умные подсказки, благодаря обученным моделям машинного обучения, которые работают в более чем 2000 опен-сурсных репозиториях .NET на GitHub.

image

Теперь омнибус новых исправлений кода и рефакторингов!


Foreach для LINQ


image

Добавление недостающей ссылки для не импортированных типов


image

Синхронизация пространства имен и имени папки


image

Инвертирование условных выражений


image

Меню Pull members up для доступа к интерфейсу


image

Перенос/отступ/выравнивание параметров/аргументов


image

Удаление неиспользуемых значений и параметров выражений


image

Это список некоторых нововведений в Visual Studio 2019. Полный список смотрите в примечаниях к выпуску. Как всегда, мы были бы рады получить от вас фидбэк через twitter, на GitHub или в комментариях ниже. Также важно отметить, что для использования .NET Core 3.0 Preview вам необходимо загрузить и установить SDK. Он пока не включен в Visual Studio 2019 Installer.
Microsoft
432,27
Microsoft — мировой лидер в области ПО и ИТ-услуг
Поделиться публикацией

Комментарии 48

    +7
    Решили запилить фичи, которые добавляет Resharper. Интересно, не купит ли Microsoft внезапно Jetbrains :-)
      +6
      Тоже подумал, resharper как-то всё больше теряет смысл…
        0
        Активно пользуюсь ReSharper-ом с его первых бета-версий (2003 год). Он всегда был далеко впереди по функционалу, удобству и динамичной адаптируемости к пользователю, чем VS. Но даже при всех его замечательных возможностях — он меня расстраивает своей ограниченностью после даже короткого периода работы на IntelliJ IDEA, которая словно сама программирует — только успевай набрасывать логику.
          +3
          Попробуйте Rider. Если вам в WinForms не нужно, то вполне себе живой комбайн из IDEA и Resharper
            0
            Да, мне он нравится — использую когда под Unity программирую.
              0
              И в связке с XCode использую AppCode (для iOS). Ну и AndroidStudio (на базе IDEA) тоже — красота, везде очень похожее окружение, поведение и возможности.
            +1
            Мы его даже в VS2017, по большому счету, используем только для юнит-тестов, ибо поддержка nUnit в VS отстойная (а без плагинов — отсутствующая)
              0
              У меня были коллеги, считающие ReSharper слишком расслабляющим (балующим) разработчиков (некоторые были действительно сильные разработчики, и без ReSharpera справлялись), были и явные его противники (в том числе с 10+ лет опытом), аргументирующие тем, что могут и в нотепаде писать код (приходилось из их кода вычищать комменты вроде «//if», «//end if»). Возможно кому-то хватает возможностей VS — мне нет, сравниваю с IDEA (возможно я слишком посредственный разработчик — мне ReSharper здорово помогает)
                0
                У нас еще накладываются определенные «особенности» окружения (типа огромного solution'а), так что отключение ReSharper позволяет заметно ускорить работу.
                  0
                  Это да, приходится ресурсами платить за производительность разработчика.
                  Кстати обратите внимание на расположение кэша ReSharper-a (в опциях) — он может по умолчанию на юзерскую папку быть настроен, которая у некоторых компаний на сетевом диске и постоянно синхронизируется — там много мелких файлов создаётся, словари пользователям. Лет 10 назад ещё рекомендовали его куда-нибудь в быстрый сторедж направить. Сейчас SSD выручает.
                    0
                    Это да и это у всех сделано, но не очень спасает. Даже с кэшем на SSD и репозиторием на SSD.
                      0
                      Сочувствую Вам. У нас сейчас всего 44 проекта в солюшне, пришлось на выданном мне офисном нотебуке с i5/16GB/4cores Solution Wide Analysis отключить, иногда все равно подлагивает. Раньше на топовых мобильных i7/32GB/много ядер — таких проблем не помню.
                    0
                    А сколько проектов в вашем Solution, если не секрет?
                      0
                      551.
                      И это, конечно же, не повод для гордости.
                0
                Не надо, у решарпера остается одна особенность которую пока еще не скопировали разработчики студии — тормоза )

                А если серьезно, решарпер это не только код, весь код интеледженс я отключил чтобы хотя бы та же latency при набирании кода была адекватная. В нем работа с тестами гораздо удобнее, есть stack trace explorer, нормальный профайлинг.

                PS Rider работает шустрее чем студия + решарпер.
                  0
                  Вопрос не в тему: а вы знаете, как настроить ReSharper таким образом, чтобы выключить всю аналитику кода, но оставить поддержку юнит-тестов? В моем случае отключение Code Analysis вырубает и распознавание тестов :(
                  0
                  Stack trace explorer есть на маркетплейсе. А что не так с тестами?
                    0
                    А что не так с тестами?

                    • Поддержки nUnit из коробки нет.
                    • Бесшовной поддержки тестов для разных архитектур (x86/x64) нет
                    • Детекта тестов без предварительной сборки всего солюшена нет
                    • После каждой сборки все тесты во всем солюшене индексируются заново
                    • Создания сессий тестирования на лету нет (в ReSharper я могу создать сессию для тестирования и, если понадобится, сохранить ее отдельно, причем она сама будет автоматически сохранена для этого солюшена, а VS хочет создать playlist-файл и сохранить его на диск? )

                      0
                      VSIX тест-адаптеры являются deprecated в VS 2019. Тестовые адаптеры подключаются в в виде пакета в файле проекта. Что подключите, то и будет работать.

                      Учитывая, что с Решарпером студия грузится много дольше, чем без него, предварительный билд перед тестированием, может быть даже быстрее. Хотя Вашем случае (551 проект в солюшене), готов поверить, что Решарпер справляется лучше.
                        0
                        Вроде, в дорожной карте Visual Studio 2019 значится доработка тестов и предоставление возможности использовать сторонние тесты.
                    0
                    На мой взгляд те функции которые microsoft «копирует» с resharper у них работают не очень оптимально. Особенно в плане производительности и тормозов.
                    То есть на более-менее среднем проекте их приходится выключать или VS постоянно зависает.
                    +1
                    Так то да:
                    • форматирование кода завезли
                    • рефакторинг завезли
                    • подсказки, что и где можно упростить завезли
                    • подсветку синтаксиса регулярок завезли


                    А раньше майки говорили, что-то вроде:
                    зачем нам это делать, если это реализовано в расширениях?


                    По моему основные вкусности Resharper'а добавили. Единственное, что мне не нравится — это стандартный intellisense, который не сортирует члены класса по типам, а только по алфавиту. Вроде, это нигде не настраивается в VS, а вот решарперский сортирует по типам, а внутри типов по алфавиту.
                      0

                      Рекомендую IntelliCode

                        0
                        Ну это просто подсказка по контексту.
                        А мне бы все равно хотелось бы иметь в intellisense возможность сортировать список, как мне хочется. Я привык видеть сначала поля в списке, а затем все методы, а в конце методы-расширители. Вроде, как и мелоч, но все равно привык к этой решарперской сортировке…
                        0
                        Вроде, это нигде не настраивается в VS, а вот решарперский сортирует по типам, а внутри типов по алфавиту.
                        не совсем то, но в студии есть фильтрация по типу.
                        0

                        Так это давняя гонка. Ещё со времён первых решарперов — тогда Visual Studio была быстра, но уныла в плане функциональности, а Resharper превращал её в очень приличный редактор. Потому решарпер зарекомендовал себя с самых хороших сторон, а мелкомягкие вкурили фишку и начали нагло тырить его функционал и вставлять в Visual Studio as default — и чем дальше тем больше.
                        Сейчас мы имеем в поставке — "толстая и красивая" VS2019, в которой вполне себе можно уже и без Resharperа, но они продолжают придумывать, а мелкомягкие — тырить.

                        +3
                        Почините уже наконец работу с солюшенами в которых есть и C# и F# проекты. Уже больше двух лет висит баг.
                          0
                          Вообще пора убирать всю эту ручную работу. Например при сохранении делать авто-формат и удалять неиспользуемые using, добавлять нужные using. Также подчеркивать все места, где пользователь может улучшить (упростить) свой код.
                          (см. Golang)
                            +1
                            Также подчеркивать все места, где пользователь может улучшить (упростить) свой код.

                            Так вроде бы давно умеет, вопрос личных настроек

                              0
                              Productivity Power Tools делает это сам при сохранении (правда, только в обычном коде, а не в разметке).
                              0
                              А как обновиться до 2019? В установщике 2017 версии нет актуальных обновлений. Качать отдельно установщик для новой студии?
                                +1
                                Именно. Студии никогда не обновлялись между мажорными версиями.
                                +2
                                > Как вам новые цвета от Roslyn?



                                И по-прежнему никакого курсива. Шёл 2019-ый, ЛОЛ.
                                  +2
                                  А code contracts окончательно умер?
                                    0
                                    Ничто не мертво, пока об этом официально не объявлено :)
                                    –1
                                    Уважаемая компания Microsoft!
                                    Как уже указали комментаторы до меня, сложно работать на текстовой канве, которая по функционалу не дотягивает до уровня 2006 иных бесплатных сред. Но у нас есть более насущный вопрос, почему в *.xlsm редакторе кода код с русскими буквами вставляется в любой другой редактор с кракозябрами. Началось с Office 2016. Думаем, что скоро русскоязычные комментарии совсем нельзя будет писать.
                                      +1
                                      Проверьте два варинта:
                                      1. переключить раскладку клавиатуры в английский язык и только потом вставлять
                                      2. переключить раскладку клавиатуры в русский язык и только потом вставлять
                                        0
                                        Спасибо, помогло! Текстовый редактор редактор действительно боится неверной раскладки клавиатуры.
                                        А как вам баг насчет сложных условий в if? Если есть три условия, то скобку после последнего можно переставить ко второму (. И диагностики нет.
                                          0
                                          А если текст многоязычный?
                                          То есть там есть не только русский и английский, но и например китайский.
                                          И не говорите, что «так не бывает!», откройте любую статью на русском про Китай (например, на магазета) — там такое часто, то есть русский текст и отдельные вставки на китайском.
                                        0
                                        Кстати, если кто-то не видел, то мы уже отметились :)
                                        Проверяем исходный код Roslyn.
                                          –1
                                          Дайте угадаю, горизонтальную прокрутку колесом мыши так и не сделали? Зачем тогда это всё?
                                            0
                                            О какой именно прокрутке речь? Тачпадом у меня крутится. Есть ещё MiddleClickScroll
                                              0
                                              Нет, не тачпадом, говорю же, вращением колеса мыши. Расширение, насколько я понял, добавляет т.н. «плавную прокрутку».
                                                0
                                                вращением колеса мыши
                                                как именно-то? У вас второе колесо, или с шифтом хотите скролить (последнее они вообще никуда не добавляют)?

                                                Расширение, насколько я понял, добавляет т.н. «плавную прокрутку».
                                                расширение добавляет скрол по нажатию стредней кнопки мыши, как в браузерах или excel
                                          +3
                                          Добавление недостающей ссылки для не импортированных типов

                                          Всего то 15 лет потребовалось для запиливания этой фитчи ...

                                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                          Самое читаемое