17 Обзор возможностей Visual Studio 2013. Командная разработка проектов в Visual Studio 2013

Ключевые термины

Широко известен целый ряд особенностей, которые подчас препятствуют успешной командной разработке программ:
  • излишний оптимизм программистов в предварительной оценке сроков разработки;
  • психологические особенности некоторых программистов (в том числе очень сильных профессионально), их излишняя самоуверенность и ранимость и неспособность работать в команде;
  • неудачная организация информации при разработке проекта; в частности, неразбериха с рабочими версиями файлов исходных кодов и проекта в целом. Мне приходилось наблюдать за работой другой команды, причем достаточно квалифицированных программистов, в которой они использовали порядка 10-12 (!) дисков с разными версиями проекта, постоянно забывая о том, кто из них какие изменения в какую рабочую версию внес, и тратя часы на "разборы полетов";
  • неудачный менеджмент проекта (руководство проектом): неадекватное распределение заданий, плохой контроль сроков и качества разработки и многое другое.

Известны и используются следующие методы организации коллективной разработки:
  • метод бригады главного программиста (Ф.П. Брукс)
  • гибкие методы разработки программ (agile methodologies), в том числе - Extreme Programming, Scrum и др.
  • Capability Maturity Model (CMM / CMMI) разработки Carnegie-Mellon University, Software Engineering Institute
  • Security Development Lifecycle (SDLC) - жизненный цикл разработки безопасных программ (Microsoft), важная часть Microsoft Trustworthy Computing Initiative.

Team Foundation Server (TFS) объединяет в себе систему управления исходным кодом проекта и систему управления командой программистов (выбор метода разработки, выдача заданий членам команды и проверка результатов их выполнения, поддержка различных этапов жизненного цикла и т.д.).

Инсталляция, вместе со скачиванием с сайта, требует на компьютере среднего класса порядка 2-3 часов, объем скачиваемой информации - порядка 300 мегабайт. При этом специальным образом конфигурируется Internet Information Server и инсталлируется СУБД SQL Server Express, используемые при работе TFS.

Административная консоль TFS позволяет выполнить конфигурирование командных проектов. Возможно администрирование следующих компонент и сервисов:
  • Application Tier (уровень приложений) - конфигурирование Team Project Collections (коллекций командных проектов) и Lab Management (управления лабораторией по разработке и тестированию проектов).
  • Build Configuration (конфигурирование сервиса для сборки проектов) - указывается URL-адрес сконфигурированного сервиса для сборки. Сборка проектов управляется build-контроллером, который, в свою очередь, управляет несколькими build-агентами. При этом build-агенты могут запускаться либо на одном, либо на разных компьютерах.
  • Scheduled Backups (области сохранения состояний баз данных TFS, Sharepoint и Reporting Services). Области (точки) сохранения могут понадобиться при необходимости восстановления баз данных после сбоев. В рассматриваемом примере эти области не сконфигурированы.
  • Configuration Logs (протоколы конфигурирования). При действиях по конфигурированию TFS создаются файлы протоколов выполнения этих действий, которые хранятся в специальной папке. Их содержание помогает системным администраторам разобраться в тех или иных ошибках.
  • Additional Tools and Components (конфигурирование дополнительных инструментов и компонент). К этим дополнительным инструментам относится, например, система управления версиями исходных кодов Visual SourceSafe. 

Связь между Visual Studio 2013 и Team Foundation Server осуществляется с помощью компоненты VS 2013, называемой Team Explorer (Обозреватель команды).


На вкладке пункт Select Team Projects служит для выбора Team Foundation Server, доступного на Вашем компьютере. Как уже объяснялось, имеется два способа управления командными проектами - с помощью собственно TFS, инсталлированного на локальной машине, и с помощью его облачного аналога - Visual Studio Online. То есть, можно использовать либо локальный, либо облачный вариант TFS. Выбор между этими вариантами позволяет осуществить пункт Team Explorer / Select Team Projects.

Другой пункт вкладки Team Explorer, расположенный чуть ниже, - Team Foundation Service. Sign Up - служит для входа в Вашу учетную запись облачной службы Visual Studio Online.

Еще ниже расположенные пункты под общим заголовком Local Git Repositories предназначены для управления репозиториями популярной системы управления версиями исходных кодов Git, если они созданы на Вашем локальном компьютере. Team Foundation Server обеспечивает интеграцию Вашего командного проекта с системой Git.

После выбора локального TFS в окне Select Team Foundation Server отображается имя компьютера, в окне Team Project Collections - имена доступных коллекций командных проектов, а в окне Team Projects - имена доступных в выбранной коллекции командных проектов.

После входа на TFS Team Explorer предлагает сконфигурировать рабочее пространство исходных кодов.


Для создания командного проекта в VS 2013 служит пункт Team Explorer / Create Team Project.

Предлагаются следующие шаблоны для современных схем процессов разработки программ:
  • Microsoft Visual Studio Scrum 2013.2
  • MSF for Agile Software Development 2013.2
  • MSF for CMMI Process Improvement 2013.2.

Для выбора системы управления исходным кодом проекта предлагаются два варианта - Team Foundation Version Control (TFVC) с репозиторием на центральном сервере и Git - распределенная система управления версиями с репозиторием на локальном компьютере.

Набор для практики

Вопросы

  • Что такое командная разработка программ?
  • Какие проблемы возникают при командной разработке программ?
  • Какие методы организации командной разработки программ Вам известны?
  • Что такое Scrum?
  • Что такое CMMI?
  • Что такое Agile development?
  • Что такое Team Foundation Server?
  • Что такое Visual Studio Online?
  • Какие системы управления версиями используются в Visual Studio?

Упражнения

  • Скачайте и инсталлируйте Team Foundation Server 2013.
  • Сконфигурируйте TFS с помощью Team Foundation Server Administration Console.
  • Создайте новую коллекцию командных проектов.
  • Попробуйте создать новый командный проект и проанализируйте результат.

Темы для курсовых работ, рефератов, эссе

  • Методы и проблемы командной разработки программ (реферат).
  • Поддержка командной разработки программ в VS 2013 (реферат).
  • Team Foundation Server (реферат).
  • Visual Studio Online (реферат).