Visual Studio IconЗаметки о выпуске Visual Studio 2015 г.


Условия лицензионного соглашения | блог | Visual Studio Сообщество разработчиков

Примечание

Этот выпуск — не последняя версия Visual Studio. Вы можете скачать последний выпуск на странице заметок о текущем выпуске для Visual Studio 2019.


выпуски Visual Studio 2015 г.

Заметки о выпуске можно просмотреть для всех версий Visual Studio 2015:

Скачивание Visual Studio 2015

Вы можете скачать Visual Studio 2015 по ссылке My.VisualStudio.com. My.VisualStudio.com требуется бесплатная подписка Dev Essentials или подписка Visual Studio.


Release Notes IconVisual Studio 2015 г.

Выпущено 20 июля 2015 г.

Общие сведения о новых возможностях в этом выпуске

К другим изменениям относятся следующие.

Сведения о новых возможностях этого выпуска

Visual C++ для разработки кросс-платформенных мобильных приложений

Теперь легко предоставлять общий доступ, повторно использовать, создавать, развертывать и отлаживать весь код, кроме самого конкретного кода на нескольких платформах приложений, в рамках одного решения в Visual Studio. Вот лишь несколько действий, которые вы можете сделать:

  • Создавайте проекты из шаблонов для приложений Android Native Activity или для общих библиотек кода, которые можно использовать на нескольких платформах и в собственных приложениях Android Xamarin.

  • Используйте IntelliSense для платформы, чтобы изучить API и создать правильный код для целевых объектов Android или Windows.

  • Настройте свою сборку для собственных платформ x86 или ARM.

  • Разверните свой код на присоединенных устройствах Android или используйте производительный эмулятор Android Майкрософт для тестирования.

  • Установите точки останова, наблюдайте за переменными, просматривайте стек и просматривайте код в отладчике Visual Studio.

  • Просмотр журнала сообщений с устройства Android с помощью средства просмотра LogCat. (Logcat — это средство диагностики и важное значение для хорошего интерфейса редактирования и>> отладки.)
    Используйте Logcat для выполнения следующих действий:

    • Поиск определенных сообщений журнала с помощью панели поиска.
    • Используйте переключатель автообведения, чтобы легко просматривать предстоящие сообщения журнала.
    • Очистите предыдущие выходные сообщения журнала.
    • Выбор между различными уровнями журнала.
  • Напишите код C++, предназначенный для платформы iOS, и воспользуйтесь нашими расширенными функциями разработки кода, такими как, но не только, совместное использование кода, кроссплатформенная технология IntelliSense, рефакторинг и определение. Поддержка iOS по-прежнему работает, поэтому следите за этим в ближайшее время. Вы можете отправить нам отзыв с помощью Подключение для ошибок. Кроме того, вы можете отправить нам свои быстрые мысли с помощью send-a-Smile в интегрированной среде разработки Visual Studio.

Мы также добавили или обновили следующие компоненты:

  • Поддержка API Android уровня 21 (Lollipop).
  • Новый шаблон, основанный на поддержке файлов для Android, который позволяет использовать внешнюю систему сборки (включая NDK-BUILD).
  • Предварительно скомпилированные заголовки во всех шаблонах (включая динамическую общую библиотеку, статическую библиотеку и кроссплатформенные мобильные шаблоны).

Инструменты Visual Studio для Apache Cordova

Ранее известные как гибридные приложения для нескольких устройств для Visual Studio, Инструменты Visual Studio Apache Cordova упрощают сборку, отладку и тестирование кроссплатформенных приложений, предназначенных для Android, iOS, Windows и Windows Phone из одного простого проекта Visual Studio.

Все функции, доступные в предыдущих CSP, теперь доступны в версии-кандидате Visual Studio 2015 года, включая следующие улучшения:

  • Обновление при сохранении для Ripple — нет необходимости перестраивать!
  • Отладка версии приложения iOS из Visual Studio при развертывании в симуляторе iOS или подключенном устройстве на компьютере Mac
  • Улучшенная безопасность и упрощенная конфигурация для включенного удаленного агента сборки iOS
  • Улучшенный интерфейс управления подключаемым модулем, который включает поддержку добавления пользовательских подключаемых модулей в проект из Git или файловой системы.
  • Выбор параметров конфигурации для конкретной платформы в улучшенном конструкторе config.xml
  • Поддержка Apache Cordova 4.0.0.

Мы слушали ваши отзывы и расширили количество устройств, на которые можно выполнить отладку, как показано ниже.

  • Android 4.4, Android 4.3 и более ранних версий с jsHybugger
  • iOS 6, 7 и 8
  • Магазин Windows 8.1;

Затем мы расширили поддержку отладки еще больше. Теперь вы можете выполнить отладку приложений Apache Cordova, предназначенных для Windows Phone 8.1.

Вы можете задавать точки останова, проверять переменные, использовать консоль и выполнять другие задачи отладки в эмуляторе Windows Phone 8.1 или подключенном устройстве.

Debugging with Visual Studio Tools for Apache Cordova

Мы добавили взаимодействие ИНТЕРФЕЙСА командной строки для выпуска RC. Проекты Cordova в Visual Studio теперь синхронизируются с изменениями, внесенными в папку проекта на диске. Изменения могут поступать в Visual Studio независимо от того, работаете ли вы с сторонними инструментами или в других операционных системах. (Структура файлов по умолчанию для проектов Cordova основана на структуре, ожидаемой средствами командной строки Apache Cordova, что упрощает работу непосредственно с интерфейсом командной строки Apache Cordova или другими средствами, которые ожидают структуру папок.)

Visual Studio Emulator для Android

Вы можете использовать Visual Studio Emulator для Android в кроссплатформенный проект в Visual Studio (Xamarin или C++) или в Инструменты Visual Studio для Apache Cordova. Эмулятор позволяет переключаться между различными эмуляторами платформы без конфликтов Hyper-V. Он поддерживает широкий спектр датчиков и имитаций, включая GPS/Расположение, акселерометр, поворот экрана, масштабирование, SD-карту, камеру, мультисенсорный и сетевой доступ. Он также поддерживает версии Android 4.4 (KitKat, УРОВЕНЬ API 19) и 5.0 (Lollipop, УРОВЕНЬ API 21).

Visual Studio Emulator для Android поддерживает имитацию Wi-Fi и возможность выбора из нескольких различных конфигураций оборудования устройства.

Мы добавили следующие новые функции для RTM:

  • Новые платформы. Доступны образы Jellybean (API 17) и Lollipop 5.1 (API 22).
  • Интерфейс командной строки. Переход к %programfiles(x86)%\Microsoft Emulator Manager\1.0\emulatorcmd.exe в командной строке позволит взаимодействовать с диспетчером эмуляторов (список, установка, запуск профилей и т. д.) без пользовательского интерфейса.
  • Перетаскивание zip-библиотек. Перетаскивание и удаление мигаемого ZIP-файла в эмуляторе теперь автоматически распакуется и установит его.
  • Вкладка SD-карты. Эта новая вкладка в окне "Дополнительные инструменты" позволяет отправлять и извлекать данные на SD-карту и из нее.
  • Приобретите самостоятельно. Эмулятор можно установить на компьютере, не требуя установки Visual Studio. Ярлык диспетчера Emulator отображается в меню , чтобы его можно было запустить и использовать из любой цепочки инструментов разработки.

Дополнительные сведения см. в статье Visual Studio Emulator для Android.

Инструменты Visual Studio для разработки универсальных приложений Windows

Средства Visual Studio для разработки приложений универсальной Windows интегрированы с настройкой Visual Studio. Эти средства позволяют создавать Windows приложения, которые работают на всех Windows 10 устройствах — телефоне в кармане, планшете или ноутбуке в сумке, компьютере на столе, устройствах Интернета вещей и вскоре, консоли Xbox в вашем доме, Surface Hub и многое другое. Кроме того, эти средства также можно использовать для создания Windows классических приложений, использующих api Windows 10. Дополнительные сведения см. в статье "Новые возможности Инструменты Visual Studio для универсальных приложений Windows".

Дополнительные сведения о разработке приложений Windows см. в руководстве по универсальным приложениям Windows и в Центре разработчиков Windows. Сведения о последних сборках и пакетах SDK для Windows см. на портале предварительной оценки Windows.

Visual C++

В этом выпуске компилятор C++ и стандартная библиотека обновлены с улучшенной поддержкой C++11 и начальной поддержкой некоторых функций C++14. Кроме того, в предварительном виде реализована поддержка определенных функций, которые, как предполагается, войдут в стандарт C++17.

Кроме того, исправлено более 500 ошибок компилятора, в том числе многие пользователи, отправленные через Microsoft Сообщество разработчиков— спасибо!

Возможности языка

Мы добавили следующие новые функции, чтобы приблизить компилятор к стандартному C++:

  • Возобновление функций (resume/await) Ключевые слова resume и await обеспечивают поддержку на уровне языка для асинхронного программирования и позволяют возобновлять функции. В настоящее время эта возможность доступна только для устройств x64. Предложение для C++17 [N3858]
  • Универсальные (полиморфные) лямбда-выражения Типы параметров лямбда-функции теперь можно указать с помощью авто; Компилятор интерпретирует авто в этом контексте, что оператор вызова функции закрытия является шаблоном функции-члена и что каждое использование авто в лямбда-выражении соответствует отдельному параметру типа шаблона. C++14
  • Обобщенные лямбда-выражения захвата Также называется init-capture. Результат произвольного выражения теперь можно назначить переменной в предложении захвата лямбды. Это позволяет фиксировать доступные только для перемещения типы по значению, а лямбда-выражение получает возможность определять произвольные члены данных в объекте закрытия. C++14
  • Двоичные литералы теперь поддерживаются. Такие литералы имеют префикс 0B или 0b и содержат только цифры 0 и 1. C++14
  • Вычет типа возвращаемого значения Теперь можно вывести тип возвращаемого значения нормальных функций, включая функции с несколькими операторами return и рекурсивные функции. Перед такими определениями функций предшествует ключевое слово auto, как в определениях функций с конечным типом возвращаемого значения, однако конечный тип возвращаемого значения опущен. C++14
  • decltype(auto) Вычет типов с помощью автоматического ключевого слова для инициализации выражений удаляет квалификаторы ref-квалификаторов и квалификаторов cv верхнего уровня из выражения. decltype(auto) сохраняет квалификаторы ref и cv и теперь может использоваться везде, где может использоваться ключевое слово auto, кроме ввода функции с выведенным или завершающим типом возвращаемых данных. C++14
  • Неявное создание специальных функций-членов перемещения Конструкторы перемещения и операторы присваивания перемещения теперь создаются неявно при условии, что компилятор будет полностью соответствовать ссылкам rvalue C++11. C++11
  • Наследование конструкторов Производный класс теперь может указать, что он наследует конструкторы базового класса Base, включая инструкцию с помощью Base::Base; в определении. Производный класс может наследовать только все конструкторы своего базового класса, невозможно наследовать лишь некоторые базовые конструкторы. Производный класс не может наследовать от нескольких базовых классов, если они имеют конструкторы с идентичной подписью. Кроме того, производный класс не может определять конструктор, подпись которого идентична подписи любого из унаследованных им конструкторов. C++11
  • Запрос выравнивания и управление Выравнивание переменной можно запросить с помощью оператора alignof() и управлять с помощью описателя alignas(). Alignof() возвращает границу байта для экземпляров типа, который должен быть выделен; для ссылок возвращается выравнивание ссылочного типа, а для массивов возвращается выравнивание типа элемента. Alignas() управляет выравниванием переменной; он принимает константу или тип, где тип является сокращенным для alignas (alignof(type)). C++11
  • Расширенный размер Размер переменной-члена класса или структуры теперь можно определить без экземпляра класса или структуры с помощью sizeof(). C++11
  • constexpr Частичная поддержка C++11 constexpr. C++11 (частично)
  • Определяемые пользователем литералы (определяемые пользователем) Значимые суффиксы теперь можно добавлять к числовым и строковым литералам, чтобы дать им конкретную семантику. Компилятор интерпретирует литералы с суффиксом как вызовы, адресованные соответствующему оператору UDL. C++11
  • Статические локальные переменные Magic Сейф "Magic" теперь инициализируются потокобезопасным способом, что устраняет необходимость синхронизации вручную. Только инициализация является потокобезопасной, при использовании статических локальных переменных в нескольких потоках необходимо по-прежнему выполнять синхронизацию вручную. Функцию потокобезопасной статики можно отключить с помощью флага /Zc:threadSafeInit-. Это позволит избежать создания зависимости от CRT. C++11
  • Локальный поток служба хранилища. Используйте ключевое слово thread_local, чтобы объявить, что для каждого потока должен быть создан независимый объект. C++11
  • Теперь оператор noexcept можно использовать для проверки того, может ли выражение вызывать исключение. Описатель noexcept теперь можно использовать, чтобы указать, что функция не создает исключений. C++11
  • Встроенные пространства имен Теперь пространство имен можно указать как встроенное, чтобы поместить его содержимое в включающее пространство имен. Встроенные пространства имен можно использовать для создания библиотек с контролем версий, которые по умолчанию предоставляют свою самую актуальную версию. Предыдущие версии API остаются при этом доступными явным образом. C++11
  • Неограниченные профсоюзы Теперь тип объединения может содержать типы с нетривиальными конструкторами. Необходимо определить конструкторы для таких объединений. C++11
  • Новые типы символов и литералы Юникода Теперь поддерживаются символьные и строковые литералы в UTF-8, UTF-16 и UTF-32, а также появились новые типы символов char16_t и char32_t. Символьным литералам может предшествовать u8 (UTF-8), u (UTF-16) или U (UTF-32), как в U'a', а строковым литералам, помимо этого, могут предшествовать неформатированные строковые эквиваленты u8R (неформатированная строка UTF-8), uR (неформатированная строка UTF-16) или UR (неформатированная строка UTF-32). Универсальные имена символов можно свободно использовать в литералах Юникода, как в u'\u00EF', u8"\u00EF is i", и you"\U000000ef — I". C++11
  • Func Предопределенный функ идентификатора неявно определяется как строка, содержащая непроверенное и незавершенное имя включающей функции. C++11
  • __restrict __restrict теперь можно применять к ссылкам.
  • Ключевое слово typename. Теперь пользователи могут записывать имя типа вместо класса в параметре шаблона шаблона. C++14
  • Оператор globals void delete(void *, std::size_t) noexcept и void operator delete[](void *, std::size_t) теперь может быть перегружен. C++14
  • Разделители цифр Теперь можно чередовать числовые литералы с одними кавычками, чтобы сделать их более удобочитаемыми. Например, int x = 1'000'000;. C++14
  • Универсальные имена символов в литералах Теперь вы можете написать основные символы, такие как "A" и символ веб-канала строки, в виде кодовых точек в литералах. Например, const char *s = "\u0041\u000A";. C++11
  • Нестатические инициализаторы элементов данных теперь работают правильно со списками инициализаторов. C++11
  • Атрибуты Теперь можно указать функцию [[noreturn]] для указания компилятору, что функция не возвращает (хотя она может вызвать исключение). Различные конструкции теперь также можно указать как [[нерекомендуемые]]. Атрибуты теперь разрешены для пространств имен и перечислителей. C++11, C++14 и C++17
  • Определяемые пользователем литералы (определяемые пользователем) Теперь числовые и строковые литералы могут иметь значимые суффиксы, которые выполняют настраиваемые вычисления для литеральных данных. C++11
  • Порядок зависимостей данных теперь можно указать параметры функции, лямбда-параметры или объявления функций как [[carries_dependency]] для улучшения оптимизации параллельных структур данных, которые часто считываются, но редко изменяются. C++11
  • Новые правила для авто со списками braced-init-lists Автоматическое вычетирование для инициализаций копирования списка теперь будет выводить std::initializer_list или иметь неправильный формат в противном случае. C++17

Возможности библиотеки Visual C++

  • Определяемые пользователем литералы (UCL) для стандартных типов библиотек Хроно>, <строка> и <сложные><заголовки теперь предоставляют операторы UDL для удобства. Например, 123ms означает std::chrono::milliseconds(123), "hello"s означает std::string("hello"), а 3.14i означает std::complex(0.0, 3.14).
  • Итераторы прямого перенаправления null Теперь стандартная библиотека позволяет создавать итераторы пересылки, которые не ссылаются на экземпляр контейнера. Такие итераторы инициализируются значением и считаются равными для конкретного типа контейнера. Сравнение инициализируемого значением итератора с итератором другого типа не определено. C++14
  • quoted() Стандартная библиотека теперь поддерживает функцию quoted(), чтобы упростить работу со строковыми значениями с кавычками и вводом-выводом. При использовании функции quoted() вся заключенная в кавычки строка обрабатывается как единая сущность (как строки отличных от пробела символов в потоках ввода/вывода); кроме того, в операциях ввода/вывода сохраняются escape-последовательности. C++14
  • Разнородный ассоциативный поиск Стандартная библиотека теперь поддерживает разнородные функции подстановки для ассоциативных контейнеров. Такие функции позволяют выполнять подстановку по типам, отличным от типа key_type, пи условии, что этот тип сравним с типом key_type. C++14
  • Целочисленные последовательности времени компиляции Стандартная библиотека теперь поддерживает тип integer_sequence, представляющий последовательность целых значений, которые можно оценить во время компиляции, чтобы упростить работу с пакетами параметров и упростить определенные шаблоны программирования шаблонов. C++14
  • exchange() Стандартная библиотека теперь поддерживает служебную функцию std::exchange(), чтобы назначить новое значение объекту и вернуть его старое значение. Для сложных типов exchange() избегает копирования старого значения при наличии конструктора перемещения, избегает копирования нового значения, если он является временным или перемещается, и принимает любой тип в качестве нового значения, используя преимущества любого оператора преобразования присваивания. C++14
  • Двойной диапазон equal(), is_permutation(), несоответствие() Стандартная библиотека теперь поддерживает перегрузки для std::equal(), std::is_permutation() и std::mismatch(), которые принимают два диапазона. Эти перегрузки обрабатывают последовательности разных длин. C++14
  • Получить< T>() Стандартная библиотека теперь поддерживает функцию шаблона getT<>(), чтобы разрешить обращение к элементам кортежей по их типу. Если кортеж содержит два или более элементов одного типа getT<>(), кортеж не может быть устранен этим типом, однако другие уникальные элементы по-прежнему могут быть устранены. C++14
  • tuple_element_t Стандартная библиотека теперь поддерживает псевдоним< типа tuple_element_t I, T> , который является псевдонимом для имени типа tuple_element< I, T>::type. Это обеспечивает некоторое удобство для программистов-шаблонов, аналогичных другим псевдонимам типа метафункций в <type_traits>. C++14
  • Техническая спецификация файловой системы "V3" Включенная реализация технической спецификации файловой системы обновлена до окончательной версии.
  • Минимальные распределители Стандартная библиотека теперь поддерживает минимальный интерфейс распределителя во всем; К заметным исправлениям относятся std::function, shared_ptr, allocate_shared() и basic_string. C++11
  • <chrono Типы хроно> high_resolution_clock и steady_clock были исправлены. C++11
  • constexpr реализован в стандартной библиотеке C++. C++11, C++14 и C++17
  • quick_exit() Теперь можно более чисто завершать многопоточные процессы, вызывая quick_exit() и запуская код очистки в at_quick_exit(). C++11
  • void_t поддерживает расширенную метапрограммирование шаблонов. C++17
  • Преобразования в unique_ptr< T[]> теперь разрешены, если они, как известно, являются безопасными. C++17
  • invoke() позволяет вызывать объекты функций, указатели на функции-члены и указатели на элементы данных, которые будут вызываться с универсальным синтаксисом. C++17
  • noexcept Стандартная библиотека очистила использование noexcept для некоторых функций. C++17
  • uncaught_exceptions() сообщает количество исключений в тестируемом состоянии (которое может превышать 1). C++17
  • reference_wrapper теперь тривиально копируем. C++17
  • map/unordered_map теперь поддерживает insert_or_assign()/try_emplace(). C++17
  • Теперь предоставляются функции size(),empty()и data(), не являющихся членами. C++17
  • auto_ptr, random_shuffle() и старое <функциональное> оборудование устарели в C++11/14 и удалены в C++17. Visual Studio 2015 предоставляет их по умолчанию, но при определении _HAS_AUTO_PTR_ETC до 0 проектов удаляются их определения.
  • unique_ptr назначения теперь точно ограничены. C++17
  • bool_constant теперь поддерживается в качестве псевдонима для integral_constant< bool>. C++17

Более быстрые сборки Visual C++

  • Создание кода во время добавочного канала (LTCG) Теперь можно сообщить LTCG перестроить только части проекта, на которые влияет изменение. Это может значительно уменьшить время связывания приложений, использующих LTCG. Активируйте эту функцию с помощью переключателя компоновщика /LTCG:incremental.
  • Добавочное связывание для статических библиотек Изменения статических библиотек, на которые ссылаются другие модули кода, теперь связываются постепенно.
  • /Debug:FastLink существенно сокращает продолжительность компоновки благодаря использованию новых техник создания PDB.
  • В целях сокращения продолжительности компоновки в алгоритм компоновщика также были внесены определенные усовершенствования.
  • Реализованные усовершенствования позволят быстрее создавать массивный код шаблона.
  • Инструментирование интерактивной оптимизации с помощью быстрого профиля (PGO) В PGO появился новый упрощенный режим инструментирования для игр и систем реального времени. Используя эти и другие новые функции, которые стали доступны через параметры компоновщика /GENPROFILE и /FASTGETPROFILE, можно найти баланс между качеством кода и скоростью построения при использовании профильной оптимизации.
  • Уменьшение размера файлов объектов Усовершенствования стандартной библиотеки компилятора и C++ приводят к значительно меньшему размеру файлов объектов и статических библиотек. Эти усовершенствования не повлияли на размер динамически подключаемых библиотек (DLL) и исполняемых файлов (EXE), потому что избыточный код изначально удалялся компоновщиком.

Производительность Visual C++ и качество кода

  • Улучшения автоматической векторизации. Мы улучшили векторизацию потока управления (if-then-else), векторизацию при компиляции в разделе /O1 (свести к минимуму размер) и улучшили общее качество векторного кода, включая поддержку параллельного STL, векторизацию большего диапазона для циклов и поддержку циклов #pragma(ivdep).
  • Улучшения скалярной оптимизации. Мы добавили более эффективное создание кода операций bit-test, объединение потока управления и оптимизацию (переключение циклов при переключении) и другие скалярные оптимизации (например, лучшее создание кода для std:::min и std::max).
  • Профилирование интерактивной оптимизации (PGO). Мы внесли ряд улучшений в PGO, в том числе улучшенные наборы ссылок, улучшенные возможности макета данных и возможность повторного использования ранее сделанных встраивание, скорость и размер и решения макета.
  • Управление Flow Guard (CFG). Мы добавили новую функцию безопасности; Просто добавьте новый параметр в проект, и компилятор Visual C++ теперь добавит дополнительные проверки безопасности в двоичные файлы, чтобы помочь обнаружить попытки перехвата кода. Когда проверка срабатывает, он перестанет выполнять код, прежде чем угонщик может нанести ущерб вашим данным или компьютеру.

Примечание

Мы обновили параметры команды. Вместо использования параметра /d2guard4, как и в предыдущих выпусках, теперь следует использовать /guard:cf.

Производительность, отладка и диагностика Visual C++

Добавлена поддержка рефакторинга для C++, которая обеспечивается следующими возможностями.

  • Переименование символа Изменяет все вхождения символа на новое имя.
  • Извлечение функций Перемещение выделенного кода в собственную функцию. Эта рефакторинг доступна как расширение для Visual Studio в коллекции Visual Studio.
  • Реализация чистых виртуальных машин Создает определения функций для чистых виртуальных функций, унаследованных классом или структурой. Поддерживается множественное и рекурсивное наследование. Активируйте эту оптимизацию кода из определения наследующего класса, чтобы реализовать все унаследованные чистые виртуальные функции, или из описателя базового класса, чтобы реализовать чистые виртуальные функции только из того базового класса.
  • Создание объявления или определения Создает объявление из существующего определения или определения по умолчанию из существующего объявления. Доступ к этому рефакторингу из существующего объявления или определения или из индикатора лампочки.
  • Перемещение определения функции Перемещает текст функции между исходным кодом и файлами заголовков. Активируйте эту оптимизацию кода из подписи функции.
  • Преобразование в необработанный строковый литерал Преобразует строку, содержащую escape-последовательности, в необработанный строковый литерал. Поддерживаются escape-последовательности: \n (новая строка), \t (tab), ' (одинарный кавычок), " (двойная кавычка) и ? (вопросительный знак). Активируйте эту функцию, щелкнув правой кнопкой мыши в любом месте внутри строки.

Улучшения базы данных программы (PDB) в Visual C++ включают в себя следующее:

  • Скорость сканирования решения повысилась, особенно для крупных решений.
  • Такие операции, как «Перейти к определению», больше не блокируются во время сканирования решения. Исключение составляет первоначальное сканирование решения, когда новое решение открывается впервые.

Улучшения удобочитаемости IntelliSense: сложные экземпляры шаблонов и определения типов упрощены в справке по параметрам и быстрой информации, чтобы упростить чтение.

Визуализации отладчика в C++

Добавьте визуализации отладчика Natvis в проект Visual Studio для простого управления и интеграции системы управления версиями. Добавляемые в проект файлы Natvis при оценке превалируют над средствами визуализации Natvis вне проекта. Дополнительные сведения см. в разделе "Создание настраиваемых представлений собственных объектов" в отладчике.

Начиная с версии-кандидата, вы можете использовать файлы Natvis при отладке C++ на Android. Отладчик включает визуализации для многих распространенных шаблонов и поддерживает загрузку пользовательских файлов, добавленных в проект C++.

Диагностика собственной памяти

  • Сеансы диагностики памяти (ALT+F2) позволяют отслеживать использование динамической памяти для собственного приложения.
  • Моментальные снимки памяти захватывают моментальный образ содержимого кучи приложения. Различия в состоянии кучи можно выявить, сравнив два снимка памяти. После остановки приложения можно просмотреть типы объектов, значения экземпляров и стеки запросов на выделение ресурсов по каждому экземпляру.

Усовершенствования в области обнаружения взаимоблокировок и восстановления при вызове функций C++ из окон контрольных значений и интерпретации.

Улучшенная диагностика компилятора. Компилятор предоставляет расширенные предупреждения о подозрительном коде. Добавлены новые предупреждения (например, затененные переменные и строки с несоответствующим форматом printf). Существующие предупреждения стали более понятными.

Флаг /Wv — предупреждения, появившиеся после определенной версии компилятора XX.YY. ZZZZ можно отключить с помощью /Wv:XX.YYY. Флаг ZZZZ. Другие предупреждения можно специально отключить в дополнение к отключенным с помощью флага /Wv.

Улучшенная поддержка оптимизированного кода отладки — отладочный код с включенными флагами /Zi, /Zo или /Z7.

Диагностика графики Visual C++

В области диагностики графики усовершенствованы следующие возможности.

  • Последовательная запись Захват до 30 последовательных кадров с одним захватом.
  • Программный захват Инициализация захвата кадра программным способом. Программный захват особенно полезен для отладки вычислительных шейдеров в программах, которые никогда не вызывают метод Present, или в случаях, когда проблему с отрисовкой сложно зафиксировать вручную, однако можно спрогнозировать программными методами по состоянию приложения во время выполнения.
  • Расширенный список событий графики Добавлено новое представление "Вызовы рисования", в котором отображаются захваченные события и их состояние в иерархии, упорядоченной по вызовам Draw. Можно развернуть вызов Draw, чтобы увидеть состояние устройства на момент вызова. Далее можно развернуть каждый тип состояния, чтобы увидеть события, которые задали эти значения.
  • Поддержка диагностики графики Windows Phone 8.1 теперь полностью поддерживает отладку приложений Windows в эмуляторе Телефон или в Телефон.
  • Анализ графических кадров Это средство собирает показатели производительности в захваченных кадрах; Кроме того, он выполняет набор предварительно определенных экспериментов, который предоставляет аналитические сведения о том, как производительность будет влиять при применении различных методов текстуры. Анализ кадров также собирает показания счетчиков производительности с оборудования.
  • Выделенный пользовательский интерфейс для анализа графики Новое окно анализатора графики Visual Studio — это выделенная рабочая область для анализа графических кадров.
  • Изменение и применение шейдера Просмотр влияния изменений кода шейдера в записанном журнале без повторного запуска приложения.
  • Настройка параметров захвата в средстве диагностики> графики с параметрами>.
  • Программа командной строки для записи и воспроизведения кадров.
  • Поддержка диагностики графики для DirectX 12. Средство диагностики графики Visual Studio теперь поддерживает отладку проблем с отрисовкой в приложениях DirectX 12.

Средство учета использования графического процессора (ГП)

Средство учета использования ГП в Visual Studio 2015 можно использовать, чтобы проанализировать использование ГП в приложениях DirectX. Во время выполнения приложений в режиме реального времени доступны схемы времени кадров, частоты кадров и использования ЦП. Кроме того, собирая и анализируя подробные данные об использовании GPU, это средство предоставляет аналитические сведения о времени выполнения ЦП и GPU отдельных событий DirectX и, следовательно, может быть полезно определить, является ли ЦП или GPU узким местом производительности.

Включение отладки управляемого теста Visual C++ Project

Новые возможности в этом выпуске. Чтобы включить отладку Project управляемого теста Visual C++, перейдите в раздел "Сервис | Параметры | Отладка | Область "Общие" и установите флажок "Отключить JIT-оптимизацию при загрузке модуля (только для управляемого)".

C# и Visual Basic

Возможности языка

В этом выпуске несколько новых функций языка C# и Visual Basic помогают уменьшить стандартный и беспорядок в повседневном коде, поощрять более декларативный стиль программирования и еще ближе к двум языкам. Например, существуют синтаксические улучшения для объявлений типов и членов и проверки значений NULL. Кроме того, локальные переменные можно объявлять внутри выражений, и await можно использовать в блоках catch и finally. Многие из этих функций реализованы только для одного из двух языков в более ранних выпусках, но будут доступны для обоих языков в окончательном выпуске.

  • Nameof обеспечивает безопасный рефакторинг способ получения имени, например параметра, члена или типа в виде строки.
  • Используя условные операторы NULL, можно получить встроенную проверку null при доступе к членам и индексаторам и их вызове.
  • Интерполяция строк. Интерполяция строк обеспечивает краткий способ описания строковых шаблонов, которые вставляют выражения в строки формата (C# только в предварительной версии VB и C# в RTM).
  • Методы, свойства, доступные только для получения, и т. д., теперь могут иметь одно выражение как тело, как и лямбда-выражения.
  • Автосвойства могут иметь инициализаторы и больше не требуют методы задания.
  • Инициализаторы индексов: внутри инициализатора объекта теперь можно инициализировать определенный индекс нового объекта. Только для C#.
  • Фильтры исключений позволяют взглянуть на исключение и решить, следует ли перехватывать его с заданным блоком catch.
  • Использование предложений для статических классов напрямую переводит их статические члены в область, поэтому можно вызывать например WriteLine() или Sqrt() без префикса с именем класса.
  • Await теперь работает в catch и, наконец, блоки, скрывая некоторые очень сложные обходные пути.

Пользовательский интерфейс редактора кода и редактирование

Пользовательский интерфейс редактора кода и возможности редактирования для C# и Visual Basic заменены новыми интерфейсами, созданными на основе .NET Compiler Platform ("Roslyn"). Многие из функций, которые вы любите сегодня были улучшены или обновлены.

  • Лампочки — это новый дом для всех быстрых действий, выполняемых в редакторе Visual Studio, включая исправления распространенных проблем с кодом и рефакторинг кода. При наличии проблем в коде лампочка отображает предлагаемые исправления для этих проблем. Все операции рефакторинга были перемещены в лампочку. Вы можете получить доступ к лампочке в любое время, нажав клавиши CTRL+ <DOT>.

Light bulb shows suggestions

  • Существуют две новые операции рефакторинга ядра: встроенная временная переменная и локальная переменная . Ниже приведен пример новой локальной функции "Введение ":

Introduce local light bulb

И пример встроенной временной переменной:

Inline temporary light bulb

  • Поддержка рефакторинга для Visual Basic добавлена в первый раз, а также была перемещена в лампочку.
  • Переименование также улучшено; теперь он выделяет все экземпляры идентификатора, который требуется переименовать, позволяя вводить новое имя для всех экземпляров сразу в редакторе.

Improvements to inline renaming

  • Вы можете получать динамический анализ кода и автоматические исправления по мере ввода, используя конкретные рекомендации по коду для платформ Майкрософт и NuGet пакеты, которые вы используете. В предварительной версии необходимо добавить динамические анализаторы FxCop через пакет NuGet, полученный из коллекции NuGet, как и любой другой пакет. По мере извлечения любого заданного динамического правила он перемещает эквивалентное правило после сборки FxCop, поэтому вы не получаете повторяющихся попаданий. Ниже приведен пример из Code Analysis пакета Azure.

An example from the Code Analysis for Azure package

  • Вычислитель выражений для C# и Visual Basic был перезаписан. Улучшения включают поддержку LINQ и лямбда-выражений в Windows контрольных значений и интерпретаций.

F#

Функции языка и среды выполнения

F# 4.0 содержит множество новых дополнений языка и среды выполнения, которые заполняют пробелы, делают больше вещей "просто работать" и повышают производительность в ключевых областях. В компиляторе и среде выполнения реализованы многочисленные ошибки и небольшие оптимизации производительности.

  • Конструкторы как функции первого класса — имена классов теперь можно использовать в качестве значений функций первого класса, представляющих конструкторы для этого класса.
  • Объединение "изменяемых" и "ссылок" — синтаксис "изменяемого" теперь можно использовать везде, и захваченные значения автоматически преобразуются в значения ссылок на основе кучи компилятором при необходимости. Добавлено новое необязательное предупреждение, если разработчик хочет получать уведомления при этом.
  • Статические параметры для предоставленных методов — отдельные методы , предоставляемые поставщиками типов, теперь могут указывать статические параметры.
  • Предоставленные типы, не допускающие значения NULL. Предоставленные типы теперь можно указать как не допускающие значения NULL через стандарт [<AllowNullLiteral(false)>].
  • Неявные кавычки аргументов метода . Аргументы метода типа Expr< теперь нельзя> прозрачно автоматически кавычек, передавая как значение аргумента, так и AST выражения, создающего его.
  • Расширенная грамматика препроцессора — логические операторы || и && ! теперь можно использовать группирование вместе с () в директивах препроцессора #if.
  • Рациональные экспоненты в единицах измерения - единицы измерения теперь поддерживают рациональные экспоненты, которые иногда используются в физических науках, таких как электротехника
  • Упрощенное использование единиц значений мер с функциями в стиле printf . Единицы числовых значений теперь работают без необходимости удалять единицы.
  • Поддержка многомерных массивов .NET — массивы .NET ранга 5 или более поздней версии теперь могут использоваться кодом F#.
  • Свойства расширения в инициализаторах объектов — свойства расширения Settable теперь можно назначать в выражениях инициализатора объектов.
  • Наследование от нескольких экземпляров универсального интерфейса . Теперь классы , созданные F#, теперь могут наследоваться от классов, реализующих несколько экземпляров универсального интерфейса.
  • Несколько свойств в StructuredFormatDisplayAttribute — %A форматирование, указанное с помощью [<StructuredFormatDisplay>], теперь может содержать несколько свойств.
  • Дополнительное пространство имен "Майкрософт" — при использовании или открытии модулей и пространств имен из FSharp.Core теперь является необязательным.

Среда выполнения F#

  • Нормализация модулей Array, List и Seq — набор функций обработки коллекций теперь согласован в модулях Array, List и Seq (за исключением API-интерфейсов, не применимых к определенным типам), с выделенными, оптимизированными реализациями для каждого типа.
  • Оптимизированное структурное хэширование . Были сделаны значительные оптимизации для повышения производительности общего хэш-сравнения для примитивных типов, что приводит к повышению производительности api, таким как distinct и groupBy.
  • Оптимизированные неструктурированные операторы сравнения — модуль FSharp.Core.Operators.NonStructuralComparison теперь можно открыть, заменив стандартные операторы структурного сравнения F# более эффективными неструктуральными операторами. Это может значительно повысить производительность при обработке типов с реализацией пользовательских операторов, особенно типов значений.
  • Синтаксис срезов в списках F# — списки F# теперь поддерживают синтаксис срезов для получения вложенных списков.
  • Теперь доступны асинхронные расширения System.Net.WebClient — расширения WebClient AsyncDownloadFile и AsyncDownloadData.
  • Улучшенные трассировки асинхронного стека . Исключения, возникающие в асинхронных вычислениях F#, теперь содержат более удобные для пользователя трассировки стека, что упрощает диагностику проблем.
  • API взаимодействия для option — в модуль Option были добавлены различные новые API для преобразования в объекты NULL и из значений System.Null.
  • Активный шаблон кавычек для значений System.Decimal — активный шаблон теперь встроен для сопоставления константных литеральных значений System.Decimal в кавычках.

Функции интегрированной среды разработки F#

В средствах Visual F# также есть новые возможности и возможности, а также ряд исправлений ошибок.

  • Отладка скриптов. Теперь скрипты F# можно отлаживать непосредственно в Visual Studio отладчике.
  • Метаданные сборки в шаблонах проектов . Все шаблоны проектов F# теперь содержат файл AssemblyInfo.fs, содержащий общие атрибуты метаданных на уровне сборки.
  • Встроенная актуальная проверка — проекты F# теперь правильно сообщают о своем состоянии "актуального" состояния при сборке в Visual Studio.
  • Завершение IntelliSense в инициализаторах объектов — выражения инициализатора объектов теперь поддерживают завершение intelliSense свойств settable с помощью КомандыCtrl+Space.
  • Завершение IntelliSense для именованных параметров — вызовы метода и конструктора теперь поддерживают автозавершение именованных параметров IntelliSense с помощью КомандыCtrl+Space.
  • Исправления ошибок, связанные с поддержкой папок. Средства Visual F# не поддерживают папки в проектах напрямую, но ряд ошибок системы проекта были исправлены улучшения поддержки папок, добавленной расширением Visual F# Power Tools.

Платформа .NET Framework 4.6

Последняя версия платформа .NET Framework — 4.6. В ней реализовано множество усовершенствований технологий разработки приложений, таких как ASP.NET, Windows Communication Foundation и Windows Presentation Foundation. Существуют также изменения в сети, библиотека базовых классов платформа .NET Framework и среда CLR (включая новый 64-разрядный JIT-компилятор, компиляцию машинного кода для универсальная платформа Windows приложений, улучшения загрузчика сборок).

Вот только выборка изменений:

  • ASP.NET методы привязки модели теперь возвращают задачи.
  • ADO.NET теперь поддерживает функцию Always Encrypted, доступную в SQL Server 2016 Community Technology Preview 2 (CTP2).
  • Windows Presentation Foundation (WPF) обеспечивает лучшую поддержку сенсорного ввода и улучшенного макета HDPI.
  • Windows Communication Foundation (WCF) теперь поддерживает ПРОТОКОЛ SSL версии TLS 1.1 и TLS 1.2, а также SSL 3.0 и TLS 1.0.
  • Библиотека базовых классов платформа .NET Framework включает усовершенствования сборки мусора, асинхронного шаблона на основе задач и шифрования. Он также добавляет типы векторов с поддержкой SIMD, а также поддержку коммутаторов совместимости, которые позволяют разработчикам предоставлять единый механизм отказа для функций, поддерживаемых новым расширением библиотек.

Дополнительные сведения и полный список новых функций, добавленных в платформа .NET Framework, см. в статье "Новые возможности" в платформа .NET Framework.

Entity Framework

Этот выпуск включает предварительную версию Entity Framework 7 и обновление Entity Framework 6, в основном включающее исправления ошибок и вклад сообщества.

Entity Framework 7

Новая версия Entity Framework позволяет создавать новые платформы и новые хранилища данных. Windows Phone, Windows Store, ASP.NET 5 и традиционное классическое приложение теперь может использовать Entity Framework. Эта версия платформы поддерживает реляционные базы данных, а также нереляционные хранилища данных, такие как таблицы Azure служба хранилища и Redis. Она включает предварительную версию среды выполнения EF7, которая устанавливается в новых проектах ASP.NET 5. Дополнительные сведения о EF7 см. в разделе "Что такое EF7".

Entity Framework 6.x

Этот выпуск включает версию среды выполнения и инструментов EF6.1.3. EF6.1.3 включает исправления ошибок и вклад сообщества; Список изменений, включенных в EF6.1.3, можно просмотреть на сайте Entity Framework CodePlex .

Среда выполнения Entity Framework 6.1.1 включается в ряд мест в этом выпуске.

  • Среда выполнения будет установлена, если вы создадите новую модель с помощью средств Entity Framework в проекте, на котором еще не установлена среда выполнения EF.
  • Среда выполнения предварительно установлена в новых проектах ASP.NET в зависимости от выбранного шаблона проекта.

Интегрированная среда разработки Visual Studio

Общие учетные записи

В этом выпуске вы можете предоставить общий доступ к учетным записям пользователей, добавленным в Visual Studio, с другими приложениями, например с Blend для Visual Studio или с помощью Microsoft Test Manager (и наоборот).

Общие проекты

В этом выпуске доступны новые шаблоны для создания пустых общих проектов для Visual Basic, C# и JavaScript. На эти общие проекты теперь можно ссылаться несколькими типами проектов:

  • Любые проекты VB/C# (например, консольные приложения, библиотеки классов, приложение формы Win)
  • Windows Store 8.1 и Windows Phone 8.1 (VB/C#/JavaScript)
  • Windows Phone Silverlight 8.0/8.1 (VB/C#)
  • WPF и PCL

Вы можете добавлять и удалять ссылки на общие проекты с помощью диспетчера ссылок на вкладке "Общие проекты". Ссылка на общий проект отображается в узле "Ссылки" в Обозреватель решений, но код и ресурсы в общем проекте обрабатываются так, как если бы они были файлами, связанными с основным проектом.

Редактор кода (все языки)

Поиск в файлах был улучшен, позволяя добавлять последующие результаты к предыдущим результатам; Накопленные результаты можно удалить.

Поддержка сенсорного ввода теперь доступна в редакторе Visual Studio для следующих жестов:

  • Прокрутка (касание и перетаскивание на поверхности редактора на обычных и улучшенных полосах прокрутки)
  • Закрепление в масштабе
  • Выделите всю строку, коснувшись поля редактора, и выделите слова, дважды коснувшись их
  • Вызов контекстного меню редактора путем нажатия клавиши и удержания

Мы знаем о одной проблеме с сенсорным касанием, в том, что жест двойного касания не всегда является надежным на более низких уровнях масштабирования. Мы хотели бы услышать отзывы о новой поддержке сенсорного ввода, и в частности о любых проблемах, которые вы можете найти.

Конструктор XAML

Visual Studio клиенты теперь смогут изменять свои шаблоны и стили, хранящиеся во внешних словарях ресурсов в контексте их использования. Этот интерфейс был усовершенствован, чтобы использовать Peek для включения истинного редактирования ресурсов in-situ в конструкторе XAML.

Пользовательские макеты окон

Теперь можно сохранить пользовательские макеты окон, щелкнув "Сохранить макет окна" в меню "Окно" и применив пользовательский макет, нажав кнопку "Применить макет окна " в меню "Окно ". Вы также можете применить макет с помощью предварительно назначенных сочетаний клавиш. Первые девять макетов также имеют сочетания клавиш ctrl+ALT+1 до CTRL+ALT+9. Другие задачи, которые можно выполнить, включают удаление, переименование и изменение порядка макетов, нажав кнопку "Управление макетом окна" в меню "Окно".

значки High-Resolution

Visual Studio поддерживает значки с высоким разрешением в панелях команд, панели инструментов (стандартные), главное меню, список ошибок, строку состояния и некоторые Обозреватель решений типы проектов, когда устройство выполняется на уровне более 100 % DPI.

Улучшения пользовательского интерфейса

  • Меню теперь отображаются в стиле "Заголовок регистра" вместо стиля ALL CAPS.
  • Раскрывающиеся значения конфигурации и платформы для диалогового окна страницы свойств Visual C++ были изменены, чтобы запомнить последний выбор пользователя при закрытии и повторном открытии страницы свойств.

Отзывы о Visual Studio

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

Расширяемость Visual Studio

  • Теперь в расширениях Visual Studio можно использовать значки с высоким разрешением.
  • Надстройки больше не поддерживаются в этом выпуске. Мы удалили Visual Studio шаблоны проектов надстроек и диспетчер надстроек. Рекомендуется преобразовать надстройки в расширения VSPackage. Дополнительные сведения см. в разделе часто задаваемых вопросов: преобразование надстроек в расширения VSPackage.
  • Теперь вы можете открыть проект расширяемости, даже если у вас нет установленного пакета SDK для Visual Studio.
  • Кроме того, пакет SDK для Visual Studio можно установить с помощью программы установки Visual Studio; вам больше не нужно переходить на веб-сайт. Для этого в меню "Добавить программы" щелкните правой кнопкой мыши Visual Studio 2015 и выберите пункт "Изменить". В диалоговом окне "Настройка Visual Studio" проверьте Visual Studio средства расширения в разделе "Общие инструменты".
  • Для повышения переносимости и совместного использования проектов расширений можно использовать NuGet версии ссылочных сборок пакета SDK для Visual Studio. Дополнительные сведения см. в сборках, опубликованных Visual Studio расширяемости.

Дополнительные сведения о расширяемости Visual Studio.

Смесь

Мы изменили Blend для Visual Studio 2015, чтобы обеспечить улучшенный интерфейс разработки пользовательского интерфейса для создания красивых приложений XAML. Blend имеет гладкий новый вид, согласованный с Visual Studio, поддержкой решения и Team Explorer, а также расширенным интерфейсом перезагрузки файлов, чтобы упростить более качественный рабочий процесс между Blend и Visual Studio. Мы также добавили самые популярные функции Blend, которые помогут вам повысить производительность:

  • Теперь вы можете более эффективно писать XAML с помощью IntelliSense XAML, который обеспечивает завершение инструкций и навигацию по источнику.
  • Вы также можете просматривать и изменять элементы управления и ресурсы XAML в контексте, в котором они используются с определением XAML Peek.
  • Поиск и устранение проблем пользовательского интерфейса в работающем приложении теперь проще использовать средства пользовательского интерфейса для отладки XAML, позволяющие проверять динамическое визуальное дерево и свойства любых элементов в дереве.
  • Добавлена поддержка NuGet, вы можете управлять пакетами NuGet в Blend.
  • Мы также заменили функцию "Рабочая область анимации" более мощной функцией "Синхронизированные макеты", которую можно использовать для создания множества различных макетов окна и перемещения их между компьютерами.
  • Для пользователей, которые предпочли бы использовать клавиатуру вместо мыши, мы сделали панели конструктора Blend полностью доступными для клавиатуры.
  • Наконец, в рамках текущих усилий Корпорации Майкрософт по созданию универсального программного обеспечения Blend теперь является полноэкранным средством чтения и высокой контрастности.

Дополнительные сведения о новых функциях, добавленных в Blend, см. в записи блога о предварительной версии .

Отладка и диагностика

Управляемое изменение и продолжение при присоединении

В версии-кандидате можно изменять и продолжать при присоединении к приложениям .NET и при использовании переменной среды.

complus_forceenc имеет значение 1 в целевом процессе.

Конфигурация точки останова

Новое окно точки останова Параметры позволяет указать условия и действия для точек останова. Окно включает улучшенную поддержку IntelliSense для условий и действий точки останова. Для восстановления удаленных точек останова можно использовать отмену (CTRL+Z).

Лямбда-выражения в Windows отладчика

Теперь вы можете использовать лямбда-выражения в окнах контрольных значений, интерпретаций и других окон отладчика в C# и Visual Basic.

PerfTips

Функцию PerfTips можно использовать для просмотра времени выполнения кода непосредственно в редакторе при задании точек останова и шага с помощью отладчика.

Использование GPU

Средство использования GPU можно использовать для понимания использования GPU приложений DirectX. Графики кадров, частоты кадров и использования GPU доступны при запуске приложений в реальном времени. Кроме того, собирая и анализируя подробные данные об использовании GPU, это средство может предоставить аналитические сведения о времени выполнения ЦП и GPU каждого отдельного события DirectX, поэтому может быть полезно определить, является ли ЦП или GPU узким местом производительности.

Усовершенствования отладчика C++

Когда отладчик C++ останавливается в точках останова, он может выполнять код для вычисления результатов, таких как отображение данных в окнах контрольных значений и интерпретации. Если отладчик обнаруживает, что вызываемая функция заблокирована, она попытается устранить проблему.

Когда отладчик C++ запускает процесс, Windows теперь выделяет память с помощью обычной кучи, а не отладочной обычной кучи. Это приводит к более быстрому запуску отладки.

Средства отладки пользовательского интерфейса для XAML

Мы добавили два новых инструмента: динамическое визуальное дерево и обозреватель динамических свойств, которые проверяют визуальное дерево работающего приложения WPF, а также свойства любого элемента в дереве. Эти средства позволяют выбрать любой элемент в работающем приложении и отобразить окончательные, вычисляемые и отрисовываемые свойства. Средства также включают в себя следующее:

  • Динамическое визуальное дерево. Теперь можно просмотреть полное визуальное дерево работающего приложения во время сеанса отладки. Динамическое визуальное дерево доступно при нажатии клавиши F5 в Visual Studio или присоединении к работающему приложению. Динамическое визуальное дерево можно использовать для выбора элементов в работающем приложении для проверки в обозревателе динамических свойств. Отображается число потомков, и если исходные сведения доступны, можно мгновенно найти файл и расположение определения элемента.
  • Динамический обозреватель свойств. Используйте это новое средство для проверки свойств, заданных для любого элемента в работающем приложении, сгруппированного по заданной области. Вы можете изменить эти свойства во время сеанса отладки и сразу же увидеть их изменения в работающем приложении.

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

(Поддержка приложений Магазина Windows будет выпущена в будущем обновлении.)

UI Debugging Tools for XAML, full screen

Параметры исключений

Параметры исключений отладчика можно настроить с помощью окна инструментов "Исключение Параметры". Новое окно не является модальным и включает улучшенные возможности производительности, поиска и фильтрации.

Exceptions Settings - Break when Thrown window

Средство временной шкалы

Наше новое средство временной шкалы предоставляет ориентированное на сценарии представление ресурсов, используемых приложениями для проверки, диагностики и повышения производительности приложений WPF и Windows Store 8.1.

Средство временной шкалы, которое находится в центре производительности и диагностики, показывает, сколько времени приложение тратит на подготовку кадров пользовательского интерфейса и в обслуживающих сетях и запросах на диск. Это делается в контексте таких сценариев, как загрузка приложения и загрузка страниц.

The new Timeline tool

Средства диагностики

Мы добавили новое окно средств диагностики, которое появляется при запуске отладки (нажмите клавишу F5). Окно "Средства диагностики" содержит следующие функции:

  • События (с IntelliTrace)
    События (с intelliTrace) предоставляют доступ ко всем событиям break, output и IntelliTrace, собранным во время сеанса отладки. Данные представлены как временной шкалой, так и табличным представлением. Два представления синхронизированы и могут взаимодействовать друг с другом.
  • Использование памяти
    Средство "Использование памяти" позволяет отслеживать использование памяти приложения во время отладки. Вы также можете создавать и сравнивать подробные моментальные снимки собственной и управляемой памяти, чтобы проанализировать причину роста памяти и утечки памяти.
  • Использование ЦП
    Средство использования ЦП позволяет отслеживать загрузку ЦП приложения во время отладки.
    (Это средство заменяет perfTip время ЦП, доступное в предварительной версии Visual Studio 2015.)

В предыдущих выпусках окно средств диагностики поддерживало следующие типы проектов и конфигурации отладки:

  • Управляемые проекты WPF, WinForms и консоли
  • Собственные проекты Win32, Console и MFC
  • ASP.NET 4 с использованием только IIS Express
  • Управляемые или собственные проекты Windows Store, работающие локально
    (проекты магазина Windows, использующие JavaScript или работающие на телефоне, не поддерживаются)

Окно средств диагностики в выпуске RC имеет следующие улучшения:

  • Его можно переместить в любое расположение окна в Visual Studio и запоминать его расположение и размер между сеансами отладки
  • Отображаются и отображаются данные для одного процесса при присоединении к процессу с помощью отладки —> присоединение к процессу
  • Оно появляется при отладке ASP.NET проектов, работающих в IIS
  • Оно появляется при отладке ASP.NET 5 проектов
  • Оно появляется при отладке приложения, работающего на удаленном Windows настольном устройстве
  • Моментальные снимки памяти можно просмотреть после остановки отладки
  • События отладчика (только события останова) доступны при отладке собственных проектов

Мы также добавили следующие новые функции для выпуска RC:

Только мой код. При нажатии клавиши F5 для запуска отладчика отображается только код, чтобы можно было понять проблемы с производительностью и исключения без шума из платформы и другого кода. Так как эта новая функция фильтрации кода в IntelliTrace подавляет системный код и предоставляет только пользовательский код, это упрощает отладку "только мой код".

Средство диагностики сети. Это новое средство диагностики сети поможет диагностировать проблемы, связанные с сетью при создании приложений магазина Windows, а также универсальных приложений, которые выполняются на всех устройствах Windows 10, от Windows Phone до Xbox и магазина Windows.

Средство диагностики сети записывает сведения о сетевых операциях HTTP приложения, включая заголовки HTTP-запросов и ответов, полезные данные запросов и ответов, файлы cookie и подробные сведения о времени и многое другое. Средство диагностики сети также может помочь ответить на вопросы о распространенных сценариях, таких как:

  • Проблемы, связанные с проверкой подлинности (например, почему вы не можете получить доступ к ресурсу)
  • Проблемы, связанные с кэшем (например, почему вы не получаете последнюю версию ресурса)
  • Сколько байтов скачиваются при выполнении общих задач приложений
  • Где находятся узкие места при доступе и скачивании ресурса

Чтобы получить доступ к средству "Сеть", откройте окно "Средства диагностики" в Visual Studio 2015. В меню "Отладка" выберите "Запустить средства диагностики без отладки". Кроме того, просто нажмите клавиши ALT+F2.

Мы внесли следующие улучшения в окно средств диагностики, которое появляется во время отладки:

  • События из приложения теперь отображаются в одной дорожке событий IntelliTrace вместо разделения между событиями IntelliTrace и выходными событиями.
  • События из приложения отображаются во время выполнения программы; теперь вам больше не нужно нажать клавишу "Break All", чтобы увидеть события.
  • Теперь вы можете активировать отладку журнала для точек трассировки, заданных в коде, что позволяет просматривать исходный код и стек вызовов.
  • Теперь на диаграмме использования памяти отображаются события сборки мусора и моментальных снимков, чтобы увидеть, когда произошли управляемые сборки мусора, а также моментальные снимки с помощью средства "Использование памяти".

ASP.NET

ASP.NET 4.6

привязка модели ASP.NET поддерживает методы возврата задач

ASP.NET методы привязки модели, возвращаемые ранее, не поддерживаются и вызывают исключение во время выполнения при настройке. Если приложения развертываются с помощью таких методов, эти методы теперь выполняются правильно. Это изменение применяется только к приложениям, предназначенным специально для .NET 4.6 или более поздней версии.

Включение .NET Compiler Platform (Roslyn) в приложениях ASP.NET

Новые возможности языка C# и VB можно использовать в любом проекте ASP.NET 4.6. Шаблоны веб-формы в VS 2015 имеют предварительно установленный пакет Microsoft.CodeDom.Providers.DotNetCompilerPlatform.

Добавлена поддержка HTTP/2

В Windows 10 и платформа .NET Framework 4.6 мы добавили поддержку HTTP/2. Основной целью HTTP/2 является повышение производительности, задержки и использования сети с помощью одного подключения из браузеров к веб-сайту.

Обновленные платформы и элементы управления для поддержки Entity Framework 6

Мы обновили Dynamic Data Framework, управление источниками данных сущностей и универсальные поставщики, чтобы они работали с Entity Framework 6.

Обновления проверки подлинности

Шаблоны ASP.NET 4.6 теперь используют ПО промежуточного слоя Open Id Подключение для проверки подлинности в Azure AD. Это упрощает проверку подлинности модели программирования с помощью Azure AD.

Если выбран параметр "Учетные записи отдельных пользователей", в шаблонах ASP.NET 4.6 показано, как использовать двухфакторную проверку подлинности и учетные записи социальных параметров с помощью ASP.NET Identity.

ASP.NET MVC 5.2.3, веб-страницы 3.2.3 и веб-API 5.2.3

Мы обновили пакеты шаблонов, чтобы использовать последние пакеты среды выполнения для MVC 5.2, веб-страниц 3.2 и веб-API 2.2. Дополнительные сведения об этих обновлениях пакетов см. в записи блога о выпуске ASP.NET MVC 5.2.3, веб-страниц 3.2.3 и веб-API 5.2.3.

веб-API ASP.NET OData 5.3.1

Мы обновили шаблоны OData веб-API для использования ASP.NET Web OData 5.3.1. Дополнительные сведения см. в статье "Новые возможности" в веб-API ASP.NET OData 5.3.

SignalR 2.1.2

Мы обновили пакеты шаблонов для использования SignalR 2.1.2. См. заметку о выпуске SignalR на GitHub.

Пакет Microsoft Owin 3.0

Мы обновили пакеты шаблонов для использования пакетов Microsoft Owin 3.0 NuGet. См. эту заметку о выпуске Katana 3.0.

ASP.NET Identity 2.2.1

ASP.NET Identity 2.2.1 имеет множество исправлений ошибок и улучшений производительности более 2.1. Дополнительные сведения см. в этой записи блога ASP.NET Identity 2.2.1.

Обновления средств ASP.NET

Улучшения редактора JSON

Мы внесли некоторые улучшения в редактор JSON, включая улучшения производительности, такие как асинхронная загрузка схемы JSON, кэширование дочерних схем и поддержка более эффективной технологии IntelliSense. Кроме того, существуют следующие новые возможности:

  • Проверка схемы JSON. Добавьте функцию проверки схемы JSON на основе схемы, определенной в раскрывающемся списке схемы.
  • Отмена минификации контекстного меню. Можно щелкнуть правой кнопкой мыши редактор JSON и выбрать контекстное меню Un-minify, чтобы отменить очистку длинных массивов в JSON-файле.
  • Перезагрузить контекстное меню "Схемы". Visual Studio кэширует схему, скачаемую из Интернета, и будет использовать кэш даже после перезапуска Visual Studio. Если вы знаете, что схема изменена, можно использовать контекстное меню перезагрузить схемы CTRL+SHIFT+J, чтобы повторно скачать текущую используемую схему в активном документе JSON, а затем использовать ее немедленно в текущем документе.
  • IntelliSense для package.json/bower.json. Помимо подтверждения IntelliSense и проверки для файлов package.json и bower.json, Visual Studio также предоставляет динамическую технологию IntelliSense для пакетов Bower и npm непосредственно в редакторе JSON.
  • Повторная проверка свойств. Теперь редактор JSON предоставит проверку для всех повторяющихся свойств. Это помогает перехватывать распространенные проблемы при создании файлов JSON.
  • Поддержка intelliSense и проверки JSON-файлов значительно улучшена за счет полной поддержки спецификации черновика схемы JSON версии 4. Теперь гораздо проще определить необходимые свойства, а редактор позволяет легко сортировать свойства в алфавитном порядке. Форматирование minified JSON-файла теперь автоматически отменяет его.
  • Мы добавили поддержку SchemaStore.org, открытый код коллекцию полезных файлов схемы JSON. Это означает, что любой JSON-файл, открытый в Visual Studio со схемой, связанной с SchemaStore.org, автоматически получает IntelliSense и проверку.
  • Поддержка авторов схем JSON была дополнительно улучшена за счет более эффективной проверки работоспособности схемы.

Усовершенствования редактора HTML

Редактор HTML обновил IntelliSense для веб-стандартов и представил следующие новые возможности:

  • Улучшено форматирование шаблонов клиента. Редактор HTML больше не анализирует или форматирует двойной синтаксис {{...}}. Это необходимо для того, чтобы содержимое этого синтаксиса не обрабатывалось и, следовательно, не было признано недействительным, и не пытается отформатировать содержимое, которое невозможно сделать правильно с помощью модуля форматирования HTML. Это отлично подходит для Angular, handlebars, mustache и других синтаксисов двойного шаблона.
  • Поддержка пользовательских элементов, синтезируемых элементов и атрибутов. Редактор HTML больше не проверяет неизвестные атрибуты для пользовательских элементов, так как разные платформы имеют множество настраиваемых тегов. Под неизвестными элементами больше не будут волнистые линии.
  • Базовая технология IntelliSense для веб-компонентов. Редактор HTML имеет IntelliSense для <link rel="import" /> , который является частью стандарта веб-компонентов.
  • Подсказки элементов HTML. Подсказки предоставляются для html-элементов в редакторе.
  • поддержка #region. Редактор HTML теперь поддерживает свертывание областей. Вы также можете использовать окружающий фрагмент, чтобы окружить текущий выделенный фрагмент.
  • Поддержка комментариев Todo/Hack в списке задач.
  • Angular значки. Обе директивы Angular (например, << Ng-view>) и атрибуты (например, ng-controller) теперь отображаются в IntelliSense с логотипом Angular, чтобы упростить их идентификацию.
  • Значки начальной загрузки. IntelliSense, предоставленный в атрибутах класса HTML, теперь отображается с логотипом Bootstrap, если имя класса было определено CSS-файлом начальной загрузки.

Усовершенствования редактора CSS/LESS/Sass

  • Поддержка комментариев Todo/Hack в списке задач.
  • @viewport исправление для редактора LESS. В редакторе @viewport LESS больше не отображаются предупреждения о проверке.
  • Предоставьте еще много фрагментов кода. Редактор CSS/LESS/Sass теперь предоставляет больше фрагментов кода, чтобы упростить разработку.
  • Расширение теперь доступно для Visual Studio 2015 для компиляции КАК LESS, Scss, так и CoffeeScirpt. Его можно скачать здесь.

Редактор JSX (React.js)

Visual Studio теперь поддерживает синтаксис JSX любых файлов с расширением JSX. Получите intelliSense, форматирование и проверку в редакторе по мере ввода. Этот редактор был создан в сотрудничестве с командой Facebook, которая отвечает за библиотеку React.js.

Привязывание к браузеру

CSS автоматически синхронизируется. Сохранение CSS-файла или его внешнее изменение (например, с помощью компилятора LESS/SASS) приводит ко всей перезагрузке CSS-файла в браузере. Если файл не может выполнить автоматическую синхронизацию, ctrl +S вызывает автоматическую перезагрузку и должен вернуть его в хорошее состояние без необходимости обновлять связанные браузеры (CTRL+ALT+ВВОД). Эту функцию можно отключить на панели инструментов.

Дополнительные сведения о ASP.NET.

ASP.NET 5

ASP.NET 5 — это простой и составной стек .NET для создания современных веб-приложений для облачных и локальных серверов. Он включает следующие компоненты.

  • Новый конвейер запросов облегченого веса
  • Запуск в IIS или локальное размещение в собственном процессе
  • Созданная на основе новой среды выполнения .NET (DNX), которая может выполняться в полной платформа .NET Framework или .NET Core— новой облачной среде выполнения, поддерживающей параллельное управление версиями.
  • Кроссплатформенные запуски в Windows, Mac и Linux
  • NuGet все, даже сама среда выполнения
  • Поддерживает ASP.NET MVC 6 — единую веб-платформу для веб-интерфейса и веб-API
  • Конфигурация на основе среды для простого перехода в облако
  • Внестандартное внедрение зависимостей
  • Новая система проектов Visual Studio и высокопроизводительные инструменты
  • Все открытый код в GitHub через .NET Foundation

Visual Studio 2015 включает пакеты среды выполнения ASP.NET 5 бета-версий. Эти пакеты по-прежнему находятся в предварительной версии и не рекомендуются для использования в рабочей среде. Все сведения о добавленных улучшениях и проблемах, исправленных в опубликованных заметках о выпуске, см. в GitHub.

Visual Studio 2015 поставляется с новой системой проектов и интегрированным интерфейсом инструментов для создания приложений ASP.NET 5 и работы с проектами DNX. Ниже перечислены некоторые из новых функций инструментов.

  • Новая система проектов для создания кроссплатформенных проектов на основе DNX, созданных и работающих на Windows, Mac и Linux.
  • Шаблоны для создания ASP.NET 5 веб-сайтов и веб-API с помощью MVC 6, Identity 3 и Entity Framework 7.
  • Шаблоны для создания библиотек классов на основе DNX и консольных приложений
  • Создание и распространение кроссплатформенных программ командной строки с помощью NuGet.
  • Установите разные версии DNX и управляйте ими с помощью диспетчера версий .NET (DNVM) из командной строки разработчика.
  • Интегрированный интерфейс для поиска, установки и восстановления пакетов NuGet.
  • Используйте КЛАВИШИ CTRL+. чтобы найти и установить пакеты NuGet для неразрешенных символов в коде C#.
  • Интегрированные средства для клиентской веб-разработки с помощью NPM, Grunt/Gulp и Bower, включая интеграцию управления пакетами и новый обозреватель средств выполнения задач.
  • Выполните команды DNX уровня проекта непосредственно из Visual Studio с помощью раскрывающегося меню кнопки "Выполнить".
  • Создайте настраиваемые профили запуска, которые запускают IIS Express, включая настройку пользовательских переменных среды.
  • Создайте пакеты NuGet из одного проекта, предназначенного для нескольких платформ, включая .NET Core.
  • Объединение IntelliSense при создании нескольких целевых платформ из одного проекта.
  • Новые функции Razor, представленные ASP.NET 5, такие как вспомогательные функции тегов, теперь освещаются как в IntelliSense, так и в выделении синтаксиса.

Новые возможности в этом выпуске

  • При открытии проекта, требующего версию DNX, которая недоступна, Visual Studio предложит установить требуемую версию DNX.
  • Теперь можно добавить ссылки на потери сборок с помощью диалогового окна "Добавить ссылку".
  • Шаблон веб-приложения ASP.NET 5 теперь поддерживает параметр "Рабочие и учебные учетные записи" для проверки подлинности.
  • Параметр "Узел в облаке" в диалоговом окне "Создать ASP.NET Project" теперь доступен для ASP.NET 5 проектов.
  • Используйте обозреватель серверов для удаленного редактирования файлов в approot для ASP.NET 5 проектов, размещенных в Azure.

Дополнительные сведения см. в заметках о выпуске инструментов GitHub и блоге по веб-разработке и средствам .NET.

Инструменты Azure

Интеграция средства выбора учетных записей

Средство выбора учетных записей используется в диалоговых окнах создания и выбора веб-приложений, чтобы включить доступ к нескольким учетным записям одним щелчком мыши. Вы можете войти один раз в несколько учетных записей и получить быстрый и простой доступ к выбору отдельных учетных записей при публикации ресурсов.

Приложения API

Шаблон предварительной версии приложений API, поддержка публикации и видимость обозревателя серверов были перенесены на Visual Studio 2015. Теперь вы можете создавать и развертывать приложения API Azure с помощью последней версии Visual Studio. Кроме того, мы улучшили функциональность выходных данных Swagger, чтобы разработчики приложений API имели лучшую поддержку динамически создаваемых Swagger из веб-API ASP.NET.

Инструменты веб-заданий

Теперь вы можете управлять веб-заданиями на узле веб-задания обозревателя серверов на веб-сайте Azure следующими способами:

  • Узлы веб-заданий под узлами веб-сайта в обозревателе серверов.
  • Запуск и остановка непрерывных веб-заданий из обозревателя серверов.
  • Выполнение заданий по запросу или запланированных заданий из обозревателя сервера.
  • Просмотр панели мониторинга веб-заданий из обозревателя сервера.
  • Контекстное меню панели мониторинга представления; используйте его для перехода на панель мониторинга веб-задания веб-задания Azure.

Пакет SDK для веб-заданий

Шаблоны проектов веб-заданий Azure предварительно установлены в пакете SDK для веб-заданий.

NuGet

NuGet 2.8.3

Мы добавили поддержку проекта DevTalk и BizTalkProject 2.8.3. Подробные сведения см. в NuGet заметках о выпуске 2.8.3.

Диспетчер пакетов NuGet

Мы обновили пользовательский интерфейс NuGet Package Manger, чтобы упростить управление пакетами во всем решении в Visual Studio 2015 году. С помощью одного представления между пакетами, установленными в проектах, можно отфильтровать список доступных пакетов из коллекции NuGet, установленных пакетов и пакетов с доступными обновлениями.

Коллекция NuGet

Мы улучшили производительность коллекции NuGet с помощью новой веб-службы и интегрированного клиента. Дополнительные сведения об обновлениях NuGet можно найти по адресу http://docs.nuget.org.

JavaScript

Поддержка редактора JavaScript

Мы обновили редактор JavaScript, чтобы сделать его еще более полезным.

  • Поддержка инструментов для AngularJS. Теперь при написании приложений с помощью AngularJS IntelliSense предоставляет предложения для Angular контроллеров, служб, фабрик, директив и анимаций.
  • Поддерживаются новые возможности языка JavaScript (из версии ES6 JavaScript), включая классы, функции со стрелками и строки шаблона.
  • Поддержка общего проекта панели навигации. Теперь панель навигации можно использовать в общем проекте для Windows проектов универсальных приложений.
  • Новая панель навигации. Новая панель навигации упрощает переход между основными элементами в исходном коде JavaScript.
  • Комментарии JSDoc. Комментарии к документации, написанные в формате JSDoc, теперь отображаются при использовании IntelliSense. (Дополнительные сведения о комментариях JSDoc см. в разделе http://usejsdoc.org.)
  • Объектный литерал IntelliSense. Редактор JavaScript предоставляет предложения IntelliSense при передаче объектного литерала в функции, задокументированные с помощью JSDoc.
  • Развернуть или свернуть. Вы можете развернуть и свернуть дополнительные разделы кода JavaScript, включая комментарии с несколькими строками, многострочные массивы и все многострочные блоки.
  • Поддержка списка задач. Функцию списка задач можно использовать для просмотра комментариев задач, таких как //TODO, в коде JavaScript.

Typescript

Visual Studio 2015 включает выпуск средств TypeScript версии 1.5. В этом выпуске добавлена расширенная поддержка ECMAScript 6, включая модули, деструкционирование, for.. , spread, symbols, computed properties, let/const for ES3/ES5, and tagged string templates for ES3/ES5. Помимо поддержки ES6, TypeScript 1.5 также добавляет поддержку экспериментального предложения декоратора ES7, UMD и System.js выходных данных модуля, а также новый упрощенный переносимый файл проекта под названием tsconfig.json.

IntelliTest

В Visual Studio 2015 мы добавили IntelliTest, который изучает код .NET для создания тестовых данных и набора модульных тестов. Для каждого оператора в коде создаются входные данные теста, которые будут выполнять этот оператор. Анализ случая выполняется для каждой условной ветви в коде. Например,

Анализируются все операции, которые могут вызывать исключение, например, если операторы и утверждения. Этот анализ используется для создания данных теста для параметризованного модульного теста для каждого из методов, создающих модульные тесты с максимальным покрытием кода. Затем для усовершенствования этих модульных тестов используется известный домен.

Мы также добавили следующие функции в IntelliTest:

  • Параметризованные модульные тесты. IntelliTest обеспечивает поддержку API, который можно использовать для руководства по генерированию тестовых данных, указания свойств правильности тестируемого кода и направления исследования тестируемого кода. Этот API доступен в пространстве имен Microsoft.Pex.Framework и может использоваться в методах тестирования (параметризованные модульные тесты, методы фабрики), созданные IntelliTest. Следовательно, команда контекстного меню IntelliTest теперь доступна из созданных методов тестирования.
  • Создание заглушки теста. "Создание модульных тестов" теперь доступно в контекстном меню в виде команды, которая предоставляет возможность создавать и настраивать тестовый проект, класс тестирования и заглушку теста.

Дополнительные сведения о IntelliTest (прежнее название — Smart Unit Tests) см. в статье "Создание модульных тестов для кода с помощью IntelliTest".

Аналитика приложений

Наряду с различными улучшениями производительности и исправлениями ошибок, приложение Аналитика теперь включает следующие обновления:

  • Средства Аналитика приложений в Visual Studio теперь входят в состав Visual Studio подключенных служб. (Чтобы добавить приложение Аналитика, откройте диалоговое окно "Подключенные службы" и выберите "Приложение Аналитика" из списка служб.)
  • Это обновление полностью совместимо с проектами, которые добавили приложение Аналитика в Visual Studio 2013 обновлении 3 или в обновление 4 для Visual Studio 2013.
  • ASP.NET 5 разработчиков, разработчиков Windows 10 универсальных приложений и Windows 8.1 разработчики универсальных приложений могут добавлять Аналитика приложений в свои проекты прямо из Visual Studio.
  • Windows 10 разработчикам универсальных приложений не нужно входить в Azure, чтобы добавить пакет SDK для приложений Аналитика; вместо этого они могут добавить его с помощью средств Аналитика приложений в Visual Studio.
  • Так как приложение Аналитика использует средство выбора глобальных учетных записей в Visual Studio, вы можете использовать одну и ту же учетную запись в Visual Studio.
  • Теперь вы можете просмотреть сведения о начале работы для application Аналитика прямо в папке "Справочник по службе Project"; просто щелкните папку начало работы.

View Getting Started information for Application Insights from a Project's Service Reference folder.

Release Management

С помощью этой функции вы можете улучшить процесс управления выпуском приложения, развернуть приложение в определенной среде для каждого отдельного этапа и управлять этапами процесса с утверждениями для каждого шага. Вы можете настроить конвейер выпуска от возврата до развертывания, не устанавливая и поддерживая локальный сервер управления выпусками с помощью службы Release Management для Visual Studio Online.

Обновленная версия Release Management доступна для Visual Studio 2015 года. Это очень похоже на существующий Release Management для Visual Studio 2013, но обеспечивает повышенную производительность в следующих областях:

  • На странице запуска клиента управления выпусками отображается обзор процесса выпуска и уведомлений.
  • Отрисовка и интерактивность на других страницах клиента управления выпусками с помощью дополнительного кэширования.
  • Синхронизация групп безопасности Active Directory и TFS.
  • Создание новых выпусков.

Теперь можно определить компоненты и определения выпуска для определений сборки новой системы сборки, включенной в Team Foundation Server 2015. При определении компонента можно также указать артефакт компонента, используя имя компонента, которое совпадает с именем опубликованного артефакта из определения сборки.

Управление версиями Git

Проще работать с ветвями и видеть, как изменения в журнале расходятся.

Ветви

Вы можете упорядочить ветви иерархически, указав префикс:

Локальные ветви и удаленные ветви (включая не созданные локально) отображаются отдельно в представлении дерева.

Git branches

И по состоянию на RC мы переработали страницу ветвей:

  • Теперь можно объединить из удаленных ветвей, а также локальных ветвей.
  • Теперь ветвь, с которой выполняется слияние, исправлена ветвь, извлеченная в данный момент.
  • Теперь можно перебазировать текущую ветвь на любую локальную или удаленную ветвь.
  • Вы можете извлечь удаленную ветвь, дважды щелкнув ее или щелкнув ее правой кнопкой мыши, а затем выбрав пункт "Извлечь".

Удаленное управление

Теперь вы можете настроить удаленные приложения Git в Team Explorer. В Параметры репозитория есть новый раздел remotes, в котором отображаются настроенные в данный момент удаленные элементы, в которых можно добавлять, изменять или удалять удаленные. Например, если необходимо изменить URL-адрес исходного удаленного сервера, можно нажать кнопку "Изменить" и изменить выборку и (или) URL-адрес отправки.

Подробный журнал

Теперь можно увидеть, как фиксации расходятся в журнале.

Detailed view of history

В графе фиксации слиянием — серые и несоединяемые фиксации — это более яркий цвет. Вы можете переключаться между простым представлением и подробным представлением. Если граф усечен, его можно изменить.

Мы внесли несколько обновлений в граф журнала в выпуске-кандидате:

  • Мы добавили панель инструментов, которая позволяет управлять уровнем детализации, который отображается в графе.
  • Теперь мы выделите строки журнала, чтобы указать, какие фиксации доступны из выбранной фиксации.
  • Теперь мы показываем обе строки журнала, если локальная и удаленная ветвь отличаются. Это особенно полезно после повторной локализации локальной ветви.

Повторная база в Team Explorer

Теперь мы поддерживаем повторную базу в Team Explorer. Чтобы запустить повторную базу, щелкните всплывающее меню перебазы на странице "Ветви" или щелкните правой кнопкой мыши ветвь и выберите "Перебазировать на..."

Репозитории VSO

Мы улучшили процесс "начала работы" при создании репозитория VSO, и при создании репозитория VSO появилось гораздо больше изменений, которые повысят, чтобы упростить создание нового репозитория. Для rc мы внесли небольшое изменение, чтобы упростить добавление нового кода в существующий репозиторий: если вы подключаетесь к любому репозиторию с помощью Team Explorer, а затем выберите "Создать файл>" Project, диалоговое окно будет запущено в корне этого подключенного репозитория.

Публикация в Visual Studio Online

Функция публикации в Visual Studio Online значительно упрощает процесс получения локального репозитория в Visual Studio Online. То, что использовалось для выполнения 12 шагов, теперь занимает 2. На странице "Синхронизация Team Explorer" в разделе "Публикация в Visual Studio Online" можно выбрать любую из учетных записей пользователей в Visual Studio диспетчере учетных записей. Ваши Visual Studio учетные записи в Интернете автоматически доступны в списке. Вам не нужно запоминать URL-адреса. Когда вы будете готовы предоставить общий доступ к коду, просто выберите новый или существующий командный проект для размещения репозитория, нажмите кнопку "Опубликовать" и все готово.

Publish to Visual Studio Online dialog box

Единый вход

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

В прошлом каждая из этих служб требовала отдельный процесс входа, и каждая служба управляла вошедшему в систему пользовательскому состоянию отдельно.

В этом выпуске мы сокращаем запросы на проверку подлинности, необходимые для доступа ко многим интегрированным облачным службам в Visual Studio. Теперь при проверке подлинности в первой облачной службе в Visual Studio мы автоматически войдем в систему или уменьшаем запросы проверки подлинности для других интегрированных облачных служб.

Codelens

Узнайте больше о коде, оставаясь сосредоточенным на работе в редакторе. Найдите ссылки на код, изменения в коде, связанные элементы TFS и модульные тесты— все это не отрываясь от кода.

В этом выпуске мы заменили индикаторы CodeLens "Авторы" новыми индикаторами журнала "Временная шкала действий команды" и "Авторы и изменения".

  • Индикатор временной шкалы действий группы показывает последнего автора и момента последнего изменения. При выборе этого индикатора откроется представление действий группы, где можно искать шаблоны изменений в коде. Это поможет вам оценить влияние изменений с течением времени.
  • Индикатор "Авторы" и "Изменения " показывает количество авторов, которые изменили файл, и количество изменений. При выборе этого индикатора откроется список всех изменений, подробных сведений об изменениях и ссылки для получения дополнительных сведений и просмотра предыдущих версий.

Все сведения из индикаторов доступны при размещении кода в система управления версиями Team Foundation (как в Team Foundation Server, так и в Visual Studio Online) и в репозиториях Git. При работе в Team Foundation Server или Visual Studio Online также можно получить сведения о рабочих элементах.

Эти индикаторы вместе с индикаторами, доступными в предыдущих версиях, отображаются на уровне кода (метода, поля или класса) для файлов C# и Visual Basic. Ниже приведен пример индикатора временной шкалы действий группы для файла C#:

The Team Activity Timeline indicator for a C# file

Ниже приведен пример индикатора "Авторы" и "Изменения" для файла C#:

The Authors and Changes indicator for a C# file

Однако индикаторы теперь отображаются на уровне файлов для всех других типов файлов (например, C++, SQL, JavaScript и других типов файлов). Ниже приведен пример индикатора временной шкалы действий группы для файла, который не является файлом кода C# или Visual Basic:

The Team Activity Timeline indicator for a file that is not a C# or Visual Basic code file

Архитектура, проектирование и моделирование

Карты кода и графы зависимостей

Если вы хотите понять конкретные зависимости в коде, визуализируйте их путем создания карт кода. Затем эти связи можно перемещать с помощью карты, которая отображается рядом с кодом. Карты кода также могут помочь отслеживать место в коде во время работы или отладки кода, поэтому вы будете читать меньше кода, пока вы узнаете больше о проектировании кода.

В последнем выпуске RTM мы сделали контекстные меню для элементов кода и ссылок гораздо проще использовать, группируя команды в разделы, связанные с выбором, редактированием, управлением группами и изменением макета содержимого группы. Обратите внимание, что тестовые проекты отображаются в другом стиле от других проектов и что мы обновили значки для элементов на карте до более подходящих версий.

New groupings in code maps

Мы также изменили способ отображения содержимого элементов кода, поэтому теперь можно выбрать несколько групп и применить стиль макета, к которому вы хотите применить все элементы. Теперь вы всегда можете получить полезную схему зависимостей при развертывании сборки, пространства имен или типа на карте кода.

Select multiple groups and apply one layout in a Code Map

В предыдущих предварительных и выпускных версиях Visual Studio 2015 мы внесли изменения, позволяющие:

  • Получите улучшенные схемы сверху вниз. Теперь для средних и крупных решений Visual Studio можно использовать упрощенное меню «Архитектура», позволяющее получать более полезные карты кодов для решения. Сборки решения группируются по папкам решения, поэтому их можно увидеть в контексте и использовать усилия, которые вы вложили в структурирование решения. Вы сразу увидите ссылки на проекты и сборки, а затем появятся типы ссылок. Кроме того, сборки, являющиеся внешними для решения, группируются более компактным способом.
  • Быстрое получение реактивных карт кодов. Операции перетаскивания создают немедленный результат, и связи между узлами создаются быстрее, не затрагивая последующие операции, инициированные пользователем, такие как расширение узла или запрос дополнительных узлов. В частности, параметр "Пропустить перестроение решения" позволяет повысить производительность при создании и редактировании схем. При создании карт кода без создания решения обрабатываются все угловые варианты, такие как нестроимые сборки.
  • Фильтрация узлов элементов кода и групп. Можно быстро привести карту к лаконичному виду за счет отображения или скрытия элементов кода на основе их категории и группировки элементов кода по папкам решения, сборкам, пространствам имен, папкам проекта и типам.
  • Фильтрация связей для упрощения чтения схем. Сюда входят ссылки между группами, что делает работу с окном фильтра менее навязчивым, чем в предыдущих выпусках.
  • Учет фильтров при детализации связей зависимостей. Схема, развернутая для получения представления о связях зависимостей, имеет четкий вид и содержит полезные сведения. Схема менее загромождается и учитывает выбранные параметры фильтрации ссылок.
  • Создание схем из представления классов и обозревателя объектов. Теперь можно перетаскивать файлы и сборки в новую или существующую карту из окон представления классов и обозревателя объектов.

В целом, полный список улучшений, внесенных в карты кода, включает в себя:

  • Новое оформление и возможность фильтрации в тестовых проектах. Теперь вы можете быстро определить тестовые проекты на карте, так как они отличаются стилем. Кроме того, их можно отфильтровать, чтобы сосредоточиться на рабочем коде приложения.
  • Элементы кода добавляются с их контекстом. Так как диаграммы теперь отображаются с их контекстом (вплоть до папки сборки и решения, которую можно отфильтровать при необходимости), вы получаете более полезные схемы при перетаскивании элементов кода из Обозреватель решений, представления классов и обозревателя объектов; или при выборе элементов в Обозреватель решений и выборе "Показать на карте кода".
  • Упрощенные связи внешних зависимостей. Связи зависимостей больше не представляют наследование от System.Object, System.ValueType, System.Enum и System.Delegate, что облегчает просмотр внешних зависимостей на карте кода.

Другие изменения в проектировании и моделировании в этом выпуске:

  • Схемы слоев. Обновите эти схемы с помощью представления классов и обозревателя объектов. Чтобы обеспечить соответствие требованиям к разработке программного обеспечения, следует использовать схемы слоев для описания нужных зависимостей для программного обеспечения. Чтобы обеспечить согласованность кода с этой структурой, найдите код, который не соответствует этим ограничениям, и проверив будущий код с помощью этого базового плана.
  • UML-схемы. Вы больше не можете создать UML-схемы классов и схемы последовательностей из кода. Однако эти схемы по-прежнему можно создавать с помощью новых элементов UML.
  • Обозреватель архитектуры. Вы больше не можете использовать обозреватель архитектуры для создания схем. Однако вы по-прежнему можете использовать Обозреватель решений.

Языковая служба XAML

Мы перестроили языковую службу XAML на основе .NET Compiler Platform (Roslyn), чтобы обеспечить быстрое, надежное и современное редактирование XAML, которое включает IntelliSense.

Это делает интерфейс разработки XAML равным другим языкам первого класса в Visual Studio. Мы также доставим мощные наборы функций для рефакторинга на нескольких языках с гораздо быстрее.

Разное

Агенты для Visual Studio 2015 больше не требуют контроллера тестирования

В агентах для Visual Studio 2015 не требуется отдельный контроллер тестирования, так как агенты могут обрабатывать оркестрацию, взаимодействуя с TFS 2015 или Visual Studio Online.

Во всех новых сценариях Visual Studio 2015 и TFS 2015 рекомендуется использовать агенты для Visual Studio 2015 года.

Однако если для работы с TFS 2013 требуется агент тестирования или контроллер тестирования, рекомендуется использовать агенты для Visual Studio 2013 обновления 5 и настроить контроллер тестирования.

Контроллер тестирования совместим с TFS 2015, а также TFS 2013. Однако поддержка нагрузочного тестирования в Visual Studio 2015 не является частью агентов, поэтому мы рекомендуем установить агенты для Visual Studio 2013 обновления 5 и настроить контроллер.

Подключенные службы

Новое диалоговое окно добавления подключенной службы в Visual Studio 2015 позволяет легко подключать приложение к приложение Azure Аналитика, служба хранилища Azure,Azureмобильные службы, Office 365 и Salesforce. Чтобы добавить подключенную службу, щелкните правой кнопкой мыши узел "Ссылки", а затем выберите "Добавить подключенную службу...".

Add a Connected Service

Диалоговое окно "Добавление подключенной службы" содержит все установленные поставщики подключенных служб и предоставляет способ получения дополнительных сведений о поставщике, технологиях, которые она использует, и если она поддерживается в текущем проекте. Другие поставщики доступны для обнаружения в коллекции расширений и обновлений с помощью ссылки "Найти дополнительные службы... ". Диалоговое окно добавления подключенной службы также расширяемо. Если вы являетесь разработчиком служб, вы можете использовать наш пакет SDK для подключенных служб для создания поставщика, который может улучшить обнаружение и использование служб.

Единая регистрация на уровне предприятия

Распространенной задачей для бизнес-приложения является настройка приложения для единого входа предприятия с помощью Azure Active Directory. Теперь это можно легко сделать в любой момент во время создания приложения, щелкнув правой кнопкой мыши приложение и выбрав "Настроить аутентификация Azure AD...". Откроется мастер, аналогичный интерфейсу добавления подключенной службы, который поможет вам выполнить настройку приложения для работы с Active Directory. Указание домен Active Directory в мастере зарегистрирует приложение в этом Active Directory и настроит приложение для запроса на вход.

Specify an Active Directory Domain in the wizard

IIS 10 Express для Visual Studio версии-кандидата 2015

Выпуск RC включал новую версию IIS 10 Express; его новая функциональность включает поддержку HTTP 2.0, а также синхронизацию битов с Windows 10.

Другие изменения: исправления ошибок и известные проблемы

Полное описание технических улучшений, исправлений и известных проблем в этом выпуске см. в статье базы знаний.

Пакет AZURE SDK 2.7 для .NET

Пакет AZURE SDK 2.7 — это первый поддерживаемый пакет AZURE SDK для окончательного выпуска Visual Studio 2015 года. Ниже приведены некоторые новые функции и обновления, которые помогут улучшить возможности разработки Azure.

  • Усовершенствования входа в Visual Studio 2015: пакет AZURE SDK 2.7 для Visual Studio 2015 теперь включает поддержку учетных записей, обращаюющихся к Azure через контроль доступа на основе ролей, поставщиков облачных решений, DreamSpark и других типов учетных записей и подписок.
  • Cloud Explorer для Visual Studio 2015: пакет AZURE SDK 2.7 включает Cloud Explorer для Visual Studio 2015, который предоставляет высокопроизводительный, масштабируемый инструмент для поиска и просмотра ресурсов Azure, проверки их свойств и выполнения ключевых действий разработчика и диагностики из Visual Studio.
  • Удаленная отладка для Виртуальные машины в Visual Studio 2015: процессы удаленной отладки, выполняемые в Виртуальные машины созданных с помощью стека Resource Manager Azure.
  • Средства Resource Manager Azure. Мы обновили средства Resource Manager Azure, чтобы упростить работу с новыми задачами сборки Visual Studio Online. Кроме того, мы добавили улучшения для работы с контроль доступа на основе ролей (RBAC) и новыми типами подписок.
  • средства Служба приложений Azure: средства Служба приложений теперь также доступны в Visual Studio 2015 году. Это обновление обеспечивает поддержку удаленного профилирования для веб-приложения, улучшения создания Swagger для приложений API и поддержку входа в несколько учетных записей. Служба приложений средства теперь используют API управления ресурсами Azure для всех функций и обеспечивают поддержку DreamSpark и поставщиков облачных служб. Мы также добавили поддержку предварительной версии приложений API Azure для разработчиков Visual Studio 2015 в этом обновлении.
  • Средства HDInsight. В этом выпуске мы добавили представления графов выполнения для заданий Hive, выполняемых в Tez, расширили поддержку IntelliSense Hive DML, добавили NuGet для SCP.Net, обновили шаблоны Storm и добавили новые шаблоны для Pig.
  • Фабрика данных Azure Средства. Теперь в пакете SDK azure входят средства Фабрика данных Azure. Наша цель — упростить процесс разработки Фабрика данных Azure и устранить проблемы с подключением и развертыванием. Наши специализированные возможности и широкие инструменты в средствах Фабрика данных Azure повышают производительность и эффективность как для новых, так и для передовых пользователей. В этом выпуске клиенты могут создавать и развертывать конвейеры данных в интерактивном режиме с помощью интерфейса Visual Studio. Дополнительные сведения об этих средствах см. в записи блога Фабрика данных Azure.

пакет SDK для Windows 10

Эти средства выпускают обновления Visual Studio 2015, чтобы предоставить все необходимое для сборки, отладки и отправки приложений для любого устройства Windows под управлением универсальная платформа Windows. Основные моменты:

  • Создайте универсальное приложение Windows на выбранном языке ( C#, VB, C++ или JS) и разверните его на Windows 10 устройстве.
  • Новые средства отладки и диагностики, включая средства отладки пользовательского интерфейса для приложений XAML и профилировщик сети.
  • Создайте пакеты приложений для отправки в единый Магазин.
  • Теперь Windows 10 Mobile Emulator использует преимущества графического оборудования компьютера (GPU), чтобы ускорить отрисовку экрана. Она обеспечивает более быструю и адаптивную среду отладки с помощью Microsoft RemoteFx.
  • Теперь вы можете использовать функцию моделирования NFC в Windows 10 Mobile Emulator для создания и тестирования универсальных приложений с поддержкой NFC и близкого взаимодействия.
  • Расширенная поддержка конструктора XAML для создания пользовательских интерфейсов, адаптированных для устройства.
  • .NET Native компиляцию приложений .NET в облаке.

Дополнительные сведения о средствах разработчика Windows 10 см. в статье "Пришло время обновить мир" и приложения.

Инструменты Python для Visual Studio 2.2

Полностью бесплатная поддержка Python в Visual Studio.

  • CPython, PyPy, IronPython и многое другое
  • Подробные сведения о IntelliSense
  • Интерактивная отладка
  • Интеграция с функциями Visual Studio
  • Бесплатный и открытый исходный код

Дополнительные сведения см. в разделе Инструменты Python для Visual Studio.

Инструменты Visual Studio для Unity 2.0

Превратите Visual Studio в мощную среду разработки Unity.

  • Создание многоплатформенных игр
  • Отладка из Visual Studio
  • Создание скриптов Unity в Visual Studio
  • Повышение производительности с помощью Visual Studio

Дополнительные сведения о Инструменты Visual Studio для Unity см. в разделе "Разработка игр с помощью Visual Studio".

Средства Node.js для Visual Studio 1.1 (RC)

Обновлено в октябре 2021 г.

Безопасное обновление Node.js Инструменты Visual Studio для Apache Cordova

Превратите Visual Studio в мощную среду разработки Node.js.

  • Бесплатный и открытый код
  • Интеллектуальное завершение кода
  • Расширенная отладка и профилирование
  • Интеграция с другими функциями Visual Studio и сторонними средствами
  • поддержка Node.js, io.js, JavaScript, TypeScript, HTML, CSS и JSON

Дополнительные сведения о средствахNode.js для Visual Studio.

Средства разработчика Office для Visual Studio 2015

Разработка с помощью API-интерфейсов Office 365

  • средства API Office 365 используют новые подключенные службы в Visual Studio 2015, чтобы предоставить разработчикам интерактивный интерфейс для интеграции Office 365 API в проект.
  • Теперь вы можете разрешить Office 365 средства API автоматически настраивать отдельные Sign-On в веб-приложениях MVC ASP.NET, просто выбрав "Настройка отдельных Sign-On с помощью Azure AD" в мастере подключенных служб.
  • При интеграции Office 365 API в проект средства API Office 365 теперь скачивает и устанавливает последнюю версию клиентской библиотеки API Office 365 NuGet из NuGet.org.

разработка надстроек SharePoint

  • При создании надстроек SharePoint средства задают целевую версию SharePoint в качестве версии веб-сайта отладки SharePoint, указанного в мастере создания проекта. Мастер отображает выбранную версию SharePoint и позволяет переопределить эту версию по умолчанию. Целевую версию можно изменить после создания проекта с помощью вкладки SharePoint в конструкторе Project.
  • Теперь средства устанавливают пакет NuGet, содержащий SharePoint клиентскую объектную модель (SPO-CSOM) в проект, когда целевая версия SharePoint Online. Средства добавляют ссылки на сборки CSOM SharePoint Online в проект. Средства больше не полагаются на пакет SDK SharePoint Online Client Component, выпущенный в Центре загрузки Майкрософт. Это упрощает обновление сборок CSOM в будущем с помощью NuGet диспетчер пакетов в Visual Studio.
  • Теперь вы можете использовать строки подключения SAS или ACS для служебная шина Microsoft Azure для отладки и устранения неполадок удаленного приемника событий в надстройках SharePoint.

разработка надстроек Office

  • В этом выпуске средства всегда создают новые приложения для Office с манифестом версии 1.1 вместо версии 1.0, чтобы ваши приложения могли поддерживать новые возможности в веб-приложениях Office и Office клиентах 2013. Для существующих приложений для Office, использующих манифест версии 1.0, средства обновляют манифест до версии 1.1 при использовании любой новой возможности, требующей манифеста версии 1.1.

Дополнительные сведения о средствах разработчика Office для Visual Studio.

Расширение GitHub для Visual Studio 2015 г.

Самый простой способ подключиться к репозиториям GitHub в Visual Studio.

  • Простота установки
  • Подключение GitHub в Visual Studio
  • Создание репозиториев
  • Клонирование репозиториев одним щелчком мыши
  • Публикация локальной работы в GitHub

Дополнительные сведения о расширении GitHub для Visual Studio.

Облачное нагрузочное тестирование

Облачное нагрузочное тестирование из центров обработки данных Azure по всему миру

Настройка инфраструктуры, необходимой для запуска нагрузочного тестирования, стало проще. Теперь вы можете выполнять облачное нагрузочное тестирование из любого из поддерживаемых центров обработки данных Azure по всему миру.

Облачный нагрузочный тест теперь поддерживает расширенную диагностику агента.

В этом выпуске мы добавили возможность выполнять диагностику агента тестирования для облачного нагрузочного теста.

Отладка в облаке сложна, так как компьютеры недоступны, поэтому сбор журналов или других сведений от агентов тестирования не всегда возможен. Тем не менее с помощью расширенной диагностики агентов можно собирать журналы из агентов тестирования и присоединять их к результатам облачного нагрузочного теста.