Wiki


Wiki Table of Contents

Page Details

Published by:
This page has not yet been rated

Làm Thế Nào Để: Tạo Custom Check-in Policies Trong Visual Studio Team Foundation Server

Được áp dụng cho

  • Microsoft® Visual Studio® 2005 Team Foundation Server (TFS)
  • Microsoft Visual Studio Team System

Tóm tắt

Chủ đề Làm Thế Nào này sẽ dẫn bạn đi qua quy trình của việc tạo, đăng kí, và áp dụng một chính sách check-in policy tùy ý cho những chính sách TFS. Check-in policy cho phép bạn kích hoạt các quy tắc bất cứ khi nào một lập trình viên cố gắng thực hiện  check-in một source file, để đảm bảo là source file đang được check-in đáp ứng được một tập hợp các tiêu chuẩn cụ thể. Như là một thí dụ, chỉ đề Làm Thế Nào này sử dụng một chính sách policy tùy ý để thực hiện các check-in comment được cung cấp với tất cả các check-in. Để thực thi một chính sách check-in policy tùy ý, bạn hãy tạo một lớp class có nguồn gốc từ PolicyBase và thực thi giao diện IPolicyDefinition IPolicyEvaluation interfaces. Bạn đăng kí policy assembly trong Microsoft Windows® registry và bạn áp dụng chính sách policy cho dự án nhóm của bạn.

Nội dung

  • Chủ đề
  • Xem trước
  • Trước khi bạn bắt đầu
  • Tóm tắt các bước
  • Bước 1 - Tạo và Build một Custom Policy Class.
  • Bước 2 - Đăng kí Custom Policy Class trong Windows Registry
  • Bước 3 - Áp dụng Custom Policy.
  • Bước 4 - Xác nhận Custom Policy.
  • Những mã nguồn bổ sung

Chủ đề

  • Tìm hiểu một chính sách custom check-in policy là gì
  • Tìm hiểu làm thế nào để tạo, đăng kí và áp dụng các chính sách custom check-in policy.

Xem trước

Các chính sách check-in policy thực thi các ràng buộc bất cứ khi nào các tập tin được check trong source control. Team Foundation Server cung cấp một số các chính sách  out-of-box check-in policy gồm các chính sách policy để kiểm tra rằng các unit test được chạy và được thông qua, các chính sách policy để thực thi các phân tích code tĩnh(static code analysis) để đảm bảo là phần code đáp ứng được các tiêu chuẩn về code và các hướng dẫn .NET guidelines, và các chính sách policy để kiểm tra là các work item có được liên kết với các check in. Các công cụ Microsoft Visual Studio 2005 Team Foundation Power Tool cũng cung cấp một số các chính sách check-in policy bổ sung. Trong đề tài Làm Thế Nào này, bạn sẽ tìm hiểu làm thế nào để tạo, đăng kí và áp dụng một chính sách custom policy. Chính sách thí dụ đảm bảo là các lập trình viên phải cung cấp các check-in comment bất cứ khi nào họ check in một file.

Trước khi bắt đầu

Hãy lưu ý là, để tạo một chính sách check-in policy, bạn phải có các Manipulate security settings permission được thiết lập là  Allow.

Tóm tắt các bước

  • Bước 1 - Tạo và Build một Custom Policy Class.
  • Bước 2 - Đăng kí Custom Policy Class trong Windows Registry
  • Bước 3 - Áp dụng Custom Policy.
  • Bước 4 - Xác nhận Custom Policy.

Bước 1 - Tạo và Build một Custom Policy Class

Trong bước khởi đầu này, bạn tạo một lớp chính sách theo ý bạn bằng cách suy ra từ lớp PolicyBase base class trong Microsoft.TeamFoundation.VersionControl.Client namespace. Bằng cách  kế thừa từ lớp cơ bản này, lớp của bạn thực thi các IPolicyDefinitionIPolicyEvaluation interfaces. Phần mã chính sách ví dụ bên dưới buộc một lập trình viên cung cấp các chú thích check-in comment bất cứ khi nào anh ta hay cô ta check in một source file. 

1.  Sử dụng Visual Studio để tạo một dự án Visual C#® class library project mới.

2.  Thêm một assembly reference đến System.Windows.Forms.dll. Bạn sử dụng assembly này để hiển thị các hộp tin nhắn message boxes.

3.  Thêm một assembly reference đến

Microsoft.TeamFoundation.VersionControl.Client.dll. Mặc định, nó được cài đặt trong thư mục sau:\Program Files\Visual Studio 2005 Team Foundation Server\Tools

4.  Thay thế bộ khung lớp code thực thi bằng phần source sau. Hãy lưu ý là lớp này kế thừa lớp cơ sở PolicyBase và được đánh dấu là serializable.

 

using System;

using System.Windows.Forms;

using Microsoft.TeamFoundation.VersionControl.Client;

 

[Serializable]

public class CheckForCommentsPolicy : PolicyBase

{

    public override string Description

    {

        get { return "Remind users to add meaningful comments to their checkins"; }

    }

 

    // This is a string that is stored with the policy definition on the source

    // control server. If a user does not have the policy plug-in installed, this string

    // is displayed.  You can use this to explain to the user how they should 

            // install the policy plug-in.

    public override string InstallationInstructions

    {

        get { return "To install this policy, read InstallInstructions.txt."; }

    } 

    // This string identifies the type of policy. It is displayed in the 

 // policy list when you add a new policy to a Team Project.

    public override string Type

    {

        get { return "Check for Comments Policy"; }

    }

 

    // This string is a description of the type of policy. It is displayed 

    // when you select the policy in the Add Check-in Policy dialog box.

    public override string TypeDescription

    {

        get { return "This policy will prompt the user to decide whether or not they should be allowed to check in."; }

    }

 

    // This method is called by the policy framework when you create 

    // a new check-in policy or edit an existing check-in policy.

    // You can use this to display a UI specific to this policy type 

    // allowing the user to change the parameters of the policy.

    public override bool Edit(IPolicyEditArgs args)

    {

        // Do not need any custom configuration

        return true;

    }

 

    // This method performs the actual policy evaluation. 

    // It is called by the policy framework at various points in time

    // when policy should be evaluated. In this example, the method 

    // is invoked when various asyc events occur that may have 

    // invalidated the current list of failures.

    public override PolicyFailure[] Evaluate()

    {

        string proposedComment = PendingCheckin.PendingChanges.Comment;

        if (String.IsNullOrEmpty(proposedComment))

        {

            return new PolicyFailure[] {

                new PolicyFailure("Please provide some comments about your check-in", this) };

        }

        else

        {

            return new PolicyFailure[0];

        }

    }

 

    // This method is called if the user double-clicks on 

    // a policy failure in the UI. In this case a message telling the user 

    // to supply some comments is displayed.

    public override void Activate(PolicyFailure failure)

    {

        MessageBox.Show("Please provide comments for your check-in.", "How to fix your policy failure");

    }

 

    // This method is called if the user presses F1 when a policy failure 

    // is active in the UI. In this example, a message box is displayed.

    public override void DisplayHelp(PolicyFailure failure)

    {

        MessageBox.Show("This policy helps you to remember to add comments to your check-ins.", "Prompt Policy

Help");

    }

}

 

Bước 2 - Đăng kí Custom Policy Class trong Windows Registry

Trong bước này, bạn thêm một mục vào Windows registry để chính sách policy của bạn xuất hiện trong hộp thoại Add Check-in Policy. Lưu ý là bạn phải cài đặt các policy assembly trên bất kì máy tính nào có nhu cầu tham chiếu đến các assembly đó. Gồm có các máy tính của người quản trị của dự án nhóm, là người cần liên kết chính sách policy với dự án nhóm và trên các máy tính của các thành viên nhóm là nơi mà chính sách policy thực sự được thực thi.

Quan trọng: Chính sách policy được đánh giá trên client khi một lập trình viên check in một tập tin.

1.  Khởi động Regedit.exe và xác định ví trí quan trọng sau HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\8.0\TeamFoundation\SourceControl\Checkin Policies 

      Các chính sách đã đăng kí được liệt ở phần bên phải. 

2.  Click phải trong hộp bên phải, trỏ đến phần New, và sau đó click String Value.

3.  Hãy nhập tên của chính sách custom policy dynamic link library (DLL), mà không có phần mở rộng DLL ; CheckForCommentsPolicy trong ví dụ trên.

Quan trọng: Tên của chính sách phải phù hợp với tên tập tin DLL một cách chính xác, mà không có phần mở rộng DLL.

4.  Click đôi vào chuỗi giá trị mới và thiết lập giá trị của nó thành đường dẫn giá trị đầy đủ và tên tập tin .dll chứa chính sách của bạn.

Bước 3 - Áp dụng Custom Policy

Trong bước này bạn thêm custom policy vào team project của bạn. Điều này đảm bảo là chính sách policy có giá trị mỗi khi một lập trình viên check in một tập tin vào team project này. 

1. Trong Team Explorer, click phải lên team project của bạn, trỏ đến Team Project Settings và sau đó click Source Control.

2.  Click vào thẻ Check-in Policy và sau đó click Add.

3.  Hãy chọn tùy chọn Check for Comments Policy và click OK và sau đó OK lần nữa. 

Bây giờ chính sách policy đã được áp dụng mỗi khi một lập trình viên check in một tập tin trong team projecy này.

Bước 4- Xác nhận Custom Policy

Trong bước này, bạn check-in một source file để đảm bảo là custom policy làm việc chính xác.

1.  Thực hiện một thay đổi cho một tập tin source và sau đó check-in tập tin mà không cung cấp một chú thích check-in comment. 

2.  Xác nhận là check-in đã bị ngăn chặn vì các quy luật của chính sách(policy rule) không phù hợp.

3.  Hãy thêm một vài chú thích comment và hoàn thành check-in. Với comment cung cấp cho check-in sẽ thực hiện thành công và bạn sẽ thấy một thông báo chính sách thất bại(policy failure notification).

Mã nguồn bổ sung

 

Recent Comments

Leave the first comment for this page.