Не так давно компания Microsoft представила обновленные предложения продуктов семейства Visual Studio. Visual Studio 2015 Enterprise на текущий момент является топ-продуктом и предоставляет доступ ко всем возможностям, созданным компанией Microsoft для разработки программного обеспечения.
 
Не смотря на наличие бесплатной версии Visual Studio Сommunity, обладающей огромным функционалом, достаточным для комфортной разработки, возможности этих инструментов различаются. Посмотрим, некоторые дополнительные преимущества, которые предлагает Visual Studio 2015 Enterprise. 

Помимо нюансов в вопросах масштабирования команды разработчиков, Visual Studio Enterprise также имеет заметные преимущества в технологических сценариях, а именно для отладки и тестирования создаваемого программного обеспечения.
 

Отладка


В VS 2015 Enterprise  расширяются возможности работы с кодом, благодаря функциям CodeLens, IntelliTrace, CodeMap и другим возможностям работы с большими объемами кода, которые пригодятся на следующих этапах развития проекта.
 
СodeLens

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

 
Для получения более подробной информации достаточно нажать на подсказку, чтобы переместится прямо в код, связанный с этим методом или классом.
 
Подробнее о возможностях CodeLens можно узнать по ссылке.
 
IntelliTrace

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

 
Двойное нажатие на событие переместит к связанному коду. А двойное нажатие на исключение позволит увидеть стек вызовов в те моменты, когда исключение было зафиксировано приложением:
 

 
CodeMap

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

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

Тестирование


Visual Studio 2015 Enterprise позволяет использовать все возможности платформы Microsoft, для обеспечения контроля за качеством выпускаемого продукта. VS Enterprise поддерживает инструменты для ручного тестирования, модульных тестов, нагрузочного тестирования, управления тестовыми средами и т.д.
 
IntelliTest 

Использование технологии IntelliTest позволяет проанализировать код и автоматически сгенерировать соответствующие модульные тесты.
 

 
Для каждого выражения в коде генерируются входные данные. Анализируются так же все возможные операторы и выражения, которые могут вызвать исключения. Эти данные используются для генерации тестовых данных для использования их в качестве параметров модульных тестов для каждого метода:
 
IntelliTest позволяет обеспечить высокий уровень покрытия кода модульными тестами, например, при наличии больших «старых» кодовых баз, что может значительно повысить продуктивность разработки и сфокусироваться на выполнении задач для создания ПО.
 
При запуске IntelliTest можно сразу увидеть какие тесты выполнились, а какие провалились и добавить необходимый код, чтобы исправить эти ситуации.
 

 
Сгенерированные тесты можно сохранять в тестовые проекты для обеспечения регрессионного тестирования.
 
IntelliTest доступен для кода, написанного на C#.
 
Microsoft Fakes

Microsoft Fakes — фреймворк, который помогает при тестировании приложения, заменяя компоненты решения заглушками и обертками — небольшими управляемыми фрагментами кода. Например, изолируя зависимый код при тестировании, можно быть уверенными, что если тест не был пройден, то проблема находится именно в этом месте и не зависит от других факторов. Эти возможности позволяют расширить сценарии тестирования, позволяя тестировать код, когда другие части приложения не готовы или не работоспособны. Подробнее об этой возможности по ссылке.
 
Нагрузочное тестирование

В тестовом проекте для проверки производительности доступны инструменты для записи последовательности действий пользователей в браузере и оформления этих шагов в качестве теста. Инструменты позволят записать HTTP запросы и ответы. Затем Visual Studio произведет поиск динамических параметров для каждого ответа на HTTP запрос, создаст таблицу и позволит присвоить константы найденным параметрам.
 
После создания теста можно настроить его свойства и указать необходимые параметры:


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

 
Затем добавить в него созданный тест производительности.
 
При запуске нагрузочных тестов с помощью аккаунта Visual Studio Online, выполнение тестов и генерирование нагрузки будет происходить в указанном датацентре Azure. Возможно так же выполнять нагрузочные тесты локально.
 
Visual Studio предоставляет сводку результатов о запуске теста, данные счетчиков производительности, инструменты для анализа теста пошагово:

 

Управление процессами разработки


Благодаря возможностям MSDN подписки, предоставляемой с Visual Studio 2015 Enterprise, становятся доступны инструменты для построения процессов управления проектами и командной работой: Team Foundation Server или Visual Studio Online Advanced.
 
Выбирая шаблоны процессов, с помощью нескольких манипуляций можно построить совместную работу всей команды, следить за выполнением плана, требований исправлением дефектов и т.д. Так же получать многоуровневую отчетность: от результатов выполнения сборки проекта до степени покрытия требований кодом.
 

Полезные ссылки

 

Комментарии (9)


  1. a553
    09.11.2015 10:26
    +1

    CodeLens в Pro теперь тоже есть.


  1. fareloz
    09.11.2015 10:57

    Стоит отметить, что большинство этих возможностей доступны только для C#. Тот же CodeLens интересная идея, но С++ разработчикам все так же приходится сидеть на сторонних расширениях(


  1. Einherjar
    09.11.2015 12:39

    к примеру в vs2013 CodeLens на больших проектах адски жрал ресурсы (процессом Microsoft.Alm.Shared.Remoting.RemoteContainer.dll) с вытекающими из этого тормозами, фризами и полной неюзабельностью среды, в итоге многие его просто отключали. интересно поменялось ли что то с тех пор


    1. Ununtrium
      09.11.2015 13:08

      2015 памяти жрет раз в 1.5 больше (субъективно). Грешат на CodeLens. Тормозит не чаще чем 2013 — опять-же, субъективно.


    1. a553
      09.11.2015 13:18

      У меня заметно лучше стало с CodeLens в 2015.


  1. Dr_Gnoiseberg
    09.11.2015 12:47
    +2

    Microsoft Fakes — чудовищный инструмент, который требует большой ответственности при использовании. Вместо того, чтобы делать нормальное управление зависимостями в коде с использованием стандартных IoC / DI / whatever, разработчик может пилить говнокод, не особо заботясь о его тестируемости — ведь захардкоженные зависимости можно просто заменить шимами. Проблема в том, что сам код от этого становится сильно связанным (tightly coupled), сложным для понимания, а публчные API врут о своих зависимостях.

    В общем, лично я эту приблуду буду обходить стороной, используя по старинке интерфейсы и какой-нибудь Moq, то есть stub-based юнит-тестирование. Шимы — зло, за исключением, разве что, тех случаев, когда надо юнит-тестить адский legacy-код без возможности рефакторинга.


    1. Ununtrium
      09.11.2015 13:10

      Плюс он же гвоздями прибит к Windows, да?


  1. fcoder
    09.11.2015 20:05
    +1

    Стоимость редакции Ultimate в 15-20 раз выше, чем Pro-версии. Для большого числа компаний в российских регионах (и не только) это приводит либо к банальному пиратству, либо разной степени успешности попыткам жить на Pro-версии и отказаться от остальной инфрастуктуры разработки от MS (вроде TFS) в пользу других продуктов. В итоге получается ситуация за которой весьма любопытно наблюдать:
    — Разработчики пытаются использовать другие продукты (прямые конкуренты) вместо «родной» инфраструктуры от Microsoft, чем вызывают их продвижение и развитие.
    — Компания, используюшая Visual Studio часто теряет время (и, следовательно, деньги) на поддержку этой инфраструктуры и вклад в ее развитие вместо, собственно, разработки своего продукта.
    — Microsoft вынуждена обеспечивать совместимость со всё более большим числом конкурирующих продуктов вместо того чтобы развивать свои.


  1. stoune
    14.11.2015 22:14

    Microsoft Fakes — в предыдущей версии был доступен в Premium редакции, сейчас он доступен только в самой дорогой редакции.