Добрый день. Вопрос №1 Какова стоимость получения диплома о мини-МБА по данному курсу? Или ориентироваться на указанную на сайте? Вопрос №2 Возможно ли начать обучение без потери результатов, не отправив документы на зачисление, а отправку выполнить позже? |
Практикум
Как создать пользовательскую политику возврата после правки в Visual Studio Team Foundation Server
Область применения
- Microsoft® Visual Studio® 2005 Team Foundation Server (TFS) .
- Microsoft Visual Studio Team System.
Описание
В этой статье подробно разбирается процесс создания, регистрации и применения пользовательских политик возврата правок в TFS. Политика обеспечивает выполнение определенных правил при каждом возврате изменений в систему управления исходным кодом. Благодаря этому исходный код гарантированно будет соответствовать заданному набору критериев. В качестве примера в этой статье используется политика, обеспечивающая ввод комментариев ко всем возвратам изменений. Для реализации пользовательской политики возврата изменений создается класс, производный от РoliсуВa8е, и реализуются интерфейсы 1РoliсуВеАnition и 1РoliсуЕ valuation. Сборка политики регистрируется в реестре Microsoft Windows® и применяется к командному проекту.
Содержание
- Задачи.
- Обзор.
- Прежде всего.
- Порядок операций.
- Шаг 1 - создание и сборка класса пользовательской политики.
- Шаг 2 - регистрация класса пользовательской политики в реестре Windows.
- Шаг 3 - применение пользовательской политики.
- Шаг 4 - проверка работоспособности пользовательской политики.
- Дополнительные ресурсы.
Задачи
- Разобраться с тем, что такое пользовательская политика возврата изменений.
- Научиться создавать, регистрировать и применять специальные политики возврата изменений.
Обзор
Политики возврата после правки ( check-in policies ) обеспечивают реализацию ограничений при возврате файлов в систему управления исходным кодом. В Team Foundation Server включено несколько стандартных политик, в том числе, политики для проверки выполнения и успешного прохождения модульных тестов, политики для выполнения статического анализа кода, гарантирующие соответствие кода стандартам и рекомендациям написания .NET -кода, и политики, обеспечивающие связывание рабочих элементов с возвратами правок. Еще несколько политик возврата после правки включено в комплект Microsoft Visual Studio 2005 Team Foundation Power Tool. В этой статье рассказывается, как создавать, регистрировать и применять нестандартную политику. В качестве примера приводится политика, вынуждающая разработчиков сопровождать возвращаемые изменения комментариями.
Прежде всего
Чтобы вы могли создавать политику возврата после правки, разрешение Manipulate у вас должно иметь значение Allow.
Порядок операций
- Шаг 1 - создание и сборка класса пользовательской политики.
- Шаг 2 - регистрация класса пользовательской политики в реестре Windows.
- Шаг 3 - применение пользовательской политики.
- Шаг 4 - проверка работоспособности пользовательской политики.
Шаг 1 - создание и сборка класса пользовательской политики
На начальном этапе в пространстве имен Microsoft.TeamFoundation.Version-Control.Client путем наследования от базового класса PolicyBase создается класс пользовательской политики. Наследование обеспечивает реализацию создаваемым классом интерфейсов IPolicyDefinition и IPolicyEvaluation. Ниже приведен пример фрагмента кода политики, которая требует обязательного ввода комментариев при каждом возврате правок.
- В Visual Studio создайте новый проект библиотеки классов Visual C#®.
- Добавьте ссылку на файл сборки System.Windows.Forms.dll. Эта сборка используется для отображения информационных окон.
- Добавьте ссылку на файл сборки Microsoft.TeamFoundation.Version Control.Client.dll. По умолчанию он находится в папке \Program Files\ Visual Studio 2005 Team Foundation Server\Tools.
- Замените шаблонную реализацию класса следующим исходным кодом. Обратите внимание, что класс наследуется от базового класса PolicyBase и помечен как сериализуемый.
using System; using System.Windows.Forms; using Microsoft.TeamFoundation.VersionControl.Client; [Serializable] public class CheckForCommentsPolicy : PolicyBase { public override string Description { get { return "Напоминает пользователям, что они должны сопровождать возврат изменений содержательными комментариями"; } // Эта строка хранится с описанием политики на сервере системы управления исходным кодом. // Если у пользователя не установлена надстройка политики, отображается эта // строка. С ее помощью вы объясняете пользователю, как установить // надстройку политики. public override string InstallationInstructions { get { return "Инструкции по установке этой политики см. в InstallInstructions.txt."; } } // Эта строка определяет тип политики. Она отображается в списке политик, когда вы // добавляете новую политику в Team Project. public override string Type { get { return "Политика для проверки наличия комментариев к возврату изменений"; } } // Эта строка является описанием типа политики. Она отображается, когда вы // выбираете политику в диалоговом окне Add Check-in Policy. public override string TypeDescription { get { return "Эта политика подскажет пользователю, на каких условиях ему будет разрешено возвратить изменения."; } } // Этот метод вызывается инфраструктурой написания политик при создании // новой политики возврата изменений или редактировании существующей. // Он может использоваться для отображения интерфейса для данного типа политики, // позволяя пользователю менять параметры политики. public override bool Edit(IPolicyEditArgs args) { // Не требует специальной конфигурации return true; } // Этот метод является фактической реализацией политики. Он вызывается // инфраструктурой создания политик, когда требуется применить политику. // В приведеннм примере метод вызывается при возникновении различных асинхронных // событий, которые могли привести к недействительности текущего списка // нарушений политики. public override PolicyFailure[] Evaluate() { string proposedComment = PendingCheckin.PendingChanges.Comment; if (String.IsNullOrEmpty(proposedComment)) { return new PolicyFailure[] { new PolicyFailure("Пожалуйста, сопроводите возвращаемые изменения комментариями", this) }; } else { return new PolicyFailure[0]; } } // Этот метод вызывается двойным щелчком нарушения политики в интерфейсе. // В данном случае на экран выводится сообщение, предлагающее пользователю // ввести комментарий. public override void Activate(PolicyFailure failure) { MessageBox.Show("Пожалуйста, сопроводите возвращаемые изменения комментариями.", "Как устранить нарушение политики"); } // Этот метод вызывается, если пользователь нажимает кнопку F1 при активном // нарушении политики в интерфейсе. В данном примере на экран выводится сообщение. public override void DisplayHelp(PolicyFailure failure) { MessageBox.Show("Данная политика напоминает о необходимости сопровождения возвращаемых изменений комментариями.", "Prompt Policy Help"); } }
Шаг 2 - регистрация класса пользовательской политики в реестре Windows
На этом шаге вы добавите запись в реестр Windows, благодаря чему ваша политика будет отображаться в диалоговом окне Add Check-in Policy. Учтите, что сборка политики должна быть установлена на все компьютеры, где предполагается ее использовать. К ним относятся компьютер администратора командного проекта, который должен связать политику с проектом, и все компьютеры членов команды, на которых эта политика фактически реализуется.
Важно! Политика проверяется на клиенте, когда разработчик возвращает файл в систему управления исходным кодом.
- Запустите Regedit.exe и найдите раздел HKEY_LOCAL_MACHINE\ Software\Microsoft\VisualStudio\8.0\TeamFoundation\SourceControl\ Checkin Policies. Список зарегистрированных политик выводится в правой панели.
- Щелкните правой кнопкой правую панель, выберите команду Создать (New) и щелкните Строковый параметр (String Value) .
-
Введите имя DLL -библиотеки своей пользовательской политики без расширения, например, CheckForCommentsPolicy, как в рассмотренном выше примере.
Важно! Строка должна точно соответствовать имени DLL -файла - без расширения DLL.
- Щелкните дважды новой строковый параметр и задайте в качестве значения полный путь и имя файла .dll.
Шаг 3 - применение пользовательской политики
Теперь добавим пользовательскую политику в командный проект. Это гарантирует, что политика будет выполняться при каждом возврате файла.
- В Team Explorer щелкните правой кнопкой свой командный проект, выберите Team Project Settings и щелкните Source Control.
- Перейдите на вкладку Check-in Policy и щелкните Add.
- Выберите политику Check for Comments Policy и дважды щелкните OK. Теперь политика будет применяться при каждом возврате файла в этом командном проекте.
Шаг 4 - проверка работоспособности пользовательской политики
Попробуйте возвратить в систему файл исходного кода, чтобы убедиться, что пользовательская политика работает правильно.
- Внесите изменения в файл и попытайтесь вернуть его без предоставления комментария к возвращаемым правкам.
- Убедитесь, что возврат изменений приостановлен, потому что не выполнено требование политики возврата.
- Добавьте комментарии и завершите возврат правок. С комментарием возврат должен пройти успешно, без вывода на экран уведомления о нарушении политики.
Дополнительные ресурсы
- Подробнее о том, как настроить политику возврата после правки, читайте в статье "Walkthrough: Customizing Check-in Policies and Notes" по адресу http://msdn2.microsoft.com/en-us/library/ms181281(VS.80).aspx.
- Чтобы посмотреть пример кода, который запрещает возврат правок с определенными вариантами кодирования, читайте статью "Checkin Policy to Disallow Certain Patterns" по адресу http://blogs.msdn.com/jmanning/ar-chive/2006/02/02/523125.aspx.
- Чтобы посмотреть пример кода, который обязывает вводить комментарии при возврате после правки, читайте статью "Sample Checkin Policy: Make Sure the Comment Isn't Empty" по адресу http://blogs.msdn.com/ jmanning/archive/2006/01/21/515858.aspx.
- Чтобы узнать, как зарегистрировать новую политику возврата после правки, читайте статью "I've Made a New Check-In Policy! How Do I Add It?" по адресу http://blogs.msdn.com/jmanning/archive/2006/02/07/526778. aspx.
Как создать дерево кода в Team Foundation Server
Область применения
- Microsoft® Visual Studio® 2005 Team Foundation Server (TFS) .
- Microsoft Visual Studio Team System.
Описание
В этой статье подробно разбирается процесс создания в TFS дерева исходного кода. Цель статьи - познакомить вас со всеми этапами создания собственного дерева исходного кода.
Содержание
- Задачи.
- Обзор.
- Порядок операций.
- Шаг 1 - создание командного проекта.
- Шаг 2 - создание сопоставления рабочей области.
- Шаг 3 - создание структуры каталогов в системе управления исходным кодом.
- Шаг 4 - добавление исходного кода в дерево.
- Дополнительные ресурсы.
Задачи
- Научиться создавать командный проект.
- Научиться создавать сопоставление рабочей области.
- Научиться создавать дерево исходного кода в системе Team Foundation Server.
Обзор
Чтобы добавить решение в систему управления исходным кодом, достаточно просто щелкнуть его правой кнопкой в Solution Explorer и выбрать команду Add Solution To Source Control. Однако такой вариант не позволяет явно настроить структуру дерева исходного кода в системе управления исходным кодом. Явно описывая структуру каталогов, вы можете организовать исходный код под папками верхнего уровня и использовать отдельные папки верхнего уровня для размещения основного исходного кода и его ответвлений, например, ветвей, используемых при разработке или для обслуживания готовых выпусков.
В данной статье описаны шаги, необходимые для явного создания структуры дерева исходного кода.
Порядок операций
- Шаг 1 - создание командного проекта.
- Шаг 2 - создание сопоставления рабочей области.
- Шаг 3 - создание структуры каталогов в системе управления исходным кодом.
- Шаг 4 - добавление исходного кода в дерево.
Шаг 1 - создание командного проекта
Для начала мы создадим новый командный проект с настройками по умолчанию.
- В Team Explorer щелкните правой кнопкой свой сервер TFS и выберите команду New Team Project.
- В диалоговом окне New Team Project ведите имя проекта, например MyTeamProject1, и щелкните Next.
- На странице Select a Process Template оставьте значение по умолчанию - MSF for Agile Software Development - v4.0 - и щелкните Next.
- На странице Specify the Settings for the Project Portal оставьте предлагаемое имя портала проекта ( MyTeamProject1 ), введите описание портала проекта и щелкните Next.
- На странице Specify Source Control Settings оставьте значение по умолчанию Create an empty source control folder, чтобы создать пустую папку системы управления исходным кодом, и щелкните Next.
- Щелкните Finish, чтобы создать проект.
На сервере TFS будут созданы новый командный проект с использованием выбранного шаблона процесса и пустая папка для него.
Шаг 2 - создание сопоставления рабочей области
Теперь нужно создать сопоставление рабочей области для описания соответствия между структурой каталогов на сервере TFS и на клиенте. Это необходимо для создания структуры дерева исходного кода. Сначала дерево каталогов создается в вашей рабочей области, затем вы должны передать его на сервер TFS.
>Сопоставление рабочей области можно создать двумя способами:
- явно задать сопоставление рабочей области;
- выполнить для своего командного проекта операцию get.
Явное задание сопоставления рабочей области
- В меню File Visual Studio выберите команду Source Control и щелкните Workspaces.
- В диалоговом окне Manage Workspaces выберите имя своего компьютера и щелкните Edit.
- В диалоговом окне Edit Workspace в списке Working folders щелкните Click here to enter a new working folder.
- Щелкните многоточие, выберите свой командный проект (например, MyTeamProject1 ) и щелкните OK.
- Щелкните ячейку локальной папки, чтобы появилась еще одна кнопка с многоточием.
- Щелкните многоточие под Local Folder и выберите локальную папку на компьютере, где вы хотите разместить рабочую область командного проекта, например, C:\DevProjects\MyTeamProject1.
- Дважды щелкните OK, чтобы закрыть диалоговое окно Edit Workspace
- Щелкните OK в информационном сообщении Microsoft Visual Studio об изменении одной или нескольких рабочих папок.
- Щелкните Close, чтобы закрыть диалоговое окно Manage Workspaces.
Выполнение операции Get для командного проекта
- В Team Explorer разверните узел командного проекта MyTeamProject1.
- Щелкните дважды Source Control.
- В Source Control Explorer щелкните правой кнопкой мыши корневую папку MyTeamProject1 и выберите команду Get Latest Version.
- В диалоговом окне Browse For Folder выберите нужный локальный путь (например, C:\DevProjects\MyTeamProject1 ) и щелкните OK. Корневая папка командного проекта с TFS будет сопоставлена с локальной папкой на вашем компьютере.
Шаг 3 - создание структуры каталогов в системе управления исходным кодом
На этом этапе исходя из стратегии и требований проекта создается структура каталогов системы управления исходным кодом на сервере. Обычно за основу берется структура /Main/Source, которая позволяет впоследствии создавать на одном уровне с Main ветви Development и Releases. В папке Releases размещаются ветви кода выпущенных версий ПО, для которых вы обеспечиваете поддержку. Папка Development содержит изолированные ветви разработки.
/Main /Source /MyApp1 -> Содержит MyApp1.sln /Source -> Папка-контейнер /ClassLibrary1 -> Содержит ClassLibrary1.csproj /MyApp1Web -> Содержит Default.aspx /UnitTests -> Содержит проекты модульных тестов /ClassLibrary1Tests -> Проект тестирования для ClassLibrary1 /MyApp1WebTests -> Проект тестирования для MyApp1Web /Build -> Содержит результат сборки (двоичные файлы) /Docs -> Содержит проектную документацию и пр. /TestCases -> Содержит документацию по тестированию /Development /FeatureBranch1 /Source /MyApp1 /Source /MyApp1Web /ClassLibrary1 /UnitTests /ClassLibrary1Tests /MyApp1WebTests /FeatureBranch2 /Releases /Release1 /MyApp1 /Source /ClassLibrary1 /MyApp1Web /UnitTests /ClassLibrary1Tests /MyApp1WebTests /Release 1.1 /Release 1.2
Создание структуры каталогов на сервере:
- В Team Explorer разверните узел командного проекта MyTeamProject1.
- Дважды щелкните Source Control.
- В Source Control Explorer выберите корневой узел, щелкните правой кнопкой мыши панель Local Path и выберите команду New Folder.
- Введите имя Main и нажмите Enter.
- В папке Main создайте папку Source.
- Повторите предыдущие шаги, чтобы создать другие корневые папки, например, Development и Releases.
- Создав структуру дерева каталогов, щелкните правой кнопкой мыши корневой узел MyTeamProject1 в Source Control Explorer и выберите команду Check-in Pending Changes.
- В диалоговом окне Check In - Source Files - Workspace выберите папки, которые необходимо возвратить в систему управления исходным кодом, добавьте комментарий и щелкните Check In. Структура каталогов будет создана локально и добавлена в систему управления исходным кодом TFS.
Шаг 4 - добавление исходного кода в дерево
На этом этапе исходный код копируется с локального диска в дерево каталогов на сервере. В этом примере вы создадите новое веб-приложение и проект библиотеки классов, а затем добавите их в систему управления исходным кодом.
Создание нового файла решения Visual Studio
- Выберите в меню File команду New и щелкните Project.
- Разверните Other Project Types и выберите Visual Studio Solutions.
- На панели Templates выберите Blank Solution.
- Введите MyApp1 в поле Name и C:\DevProjects\MyTeamProject1\ Main\Source в поле Location.
- Щелкните OK. Visual Studio создаст новое решение и поместит файл решения (.sln) в папку C:\DevProjects\ MyTeamProject1\Main\Source\MyApp1.
Добавление в решение нового веб-сайта
- В Solution Explorer щелкните решение правой кнопкой, выберите Add и щелкните New Web Site.
- В списке Templates выберите ASP.NET Web Site, задайте File System в качестве Location и C:\DevProjects\MyTeamProject1\Main\Source\ MyApp1\Source\MyApp1Web в качестве пути.
- Щелкните OK. Visual Studio создаст веб-сайт.
Добавление в решение нового проекта библиотеки классов
- В Solution Explorer щелкните решение правой кнопкой, выберите Add и щелкните New Project.
- В списке Project types выберите Visual C#, а в списке Templates выберите Class Library.
- Не меняйте предлагаемое по умолчанию имя ClassLibrary1 и задайте в поле Location путь C:\DevProjects\MyTeamProject1\Main\Source\ MyApp1\Source.
- Щелкните OK. Visual Studio создаст структуру нового проекта. Теперь локальная структура каталогов должна выглядеть следующим образом:
добавление решения в систему управления исходным кодом
В Solution Explorer щелкните решение правой кнопкой мыши и выберите Add Solution to Source Control. Ваше решение и два проекта будут добавлены в Team Foundation Source Control.
Теперь дерево исходного кода в системе управления исходным кодом должно выглядеть так:
Дополнительные ресурсы
- Подробнее о создании рабочей области читайте в статье "How to: Create a Workspace" по адресу http://msdn2.microsoft.com/en-us/library/ms181384 (VS.80).aspx.