<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msdnvietnam.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>TFS - Team Foundation System</title><link>http://msdnvietnam.net/wikis/tfs/default.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>Chủ đề: Làm Thế Nào</title><link>http://msdnvietnam.net/wikis/tfs/ch-l-224-m-th-n-224-o/revision/0.aspx</link><pubDate>Sun, 21 Feb 2010 20:29:49 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:150</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to TFS - Team Foundation System by Nguyễn Thị Như Quỳnh on 2/22/2010 4:29:49 AM&lt;br /&gt;
&lt;p&gt;Sau đ&amp;acirc;y l&amp;agrave; t&amp;agrave;i liệu tập hợp tất cả c&amp;aacute;c b&amp;agrave;i L&amp;agrave;m Thế N&amp;agrave;o, bạn c&amp;oacute; thể download tại đ&amp;acirc;y:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cid-c756261140cf0eb3.skydrive.live.com/self.aspx/GT/How%20To.docx"&gt;How To&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Team
Foundation Server Resources&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nội Dung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; patterns &amp;amp;
practices &lt;/li&gt;
&lt;li&gt; Team Foundation
Related Web Sites &lt;/li&gt;
&lt;li&gt; Partners and Service
Providers &lt;/li&gt;
&lt;li&gt; Newsgroups and
Forums &lt;/li&gt;
&lt;li&gt; Microsoft Team
Foundation Blogs &lt;/li&gt;
&lt;li&gt; Service Packs &lt;/li&gt;
&lt;li&gt; Training &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;patterns
&amp;amp; practices &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;aacute;c patterns v&amp;agrave; c&amp;aacute;c practices, h&amp;atilde;y
tham khảo trang chủ &amp;nbsp;Microsoft patterns &amp;amp;
practices tại &lt;a href="http://msdn.microsoft.com/practices/"&gt;http://msdn.microsoft.com/practices/&lt;/a&gt; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;CodePlex
Sites &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Team Foundation
Branching Guidance tại &lt;a href="http://www.codeplex.com/BranchingGuidance"&gt;http://www.codeplex.com/BranchingGuidance&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Guidance Explorer tại
&lt;a href="http://www.codeplex.com/guidanceExplorer"&gt;http://www.codeplex.com/guidanceExplorer&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Team Foundation
Server Guide tại &lt;a href="http://www.codeplex.com/TFSGuide"&gt;http://www.codeplex.com/TFSGuide&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Team Foundation
Server Guidance tại &lt;a href="http://www.codeplex.com/VSTSGuidance"&gt;http://www.codeplex.com/VSTSGuidance&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Team
Foundation Related Web Sites &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Team Foundation
Server Team Center tại &lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/aa718934.aspx"&gt;http://msdn2.microsoft.com/en-us/teamsystem/aa718934.aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Team Foundation
Server FAQ tại &lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/aa718916.aspx"&gt;http://msdn2.microsoft.com/en-us/teamsystem/aa718916.aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Team System Videos
and Presentations tại &lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/aa718837.aspx"&gt;http://msdn2.microsoft.com/en-us/teamsystem/aa718837.aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Team Foundation
Server MSDN Documentation tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181232%28vs.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms181232(vs.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Tải về Team
Foundation Server Installation Guide tại &lt;a href="http://go.microsoft.com/fwlink/?linkid=40042"&gt;http://go.microsoft.com/fwlink/?linkid=40042&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Partners and
Service Providers &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Partner
catalog tại &lt;a href="http://catalog.vsipmembers.com/catalog/"&gt;http://catalog.vsipmembers.com/catalog/&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Teamprise
cross platform support tại &lt;a href="http://www.teamprise.com/"&gt;http://www.teamprise.com/&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Scrum
support from Conchango tại &lt;a href="http://www.conchango.com/Web/Public/Content/Home.aspx"&gt;http://www.conchango.com/Web/Public/Content/Home.aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
ComponentSoftware source control migration tại&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://www.componentsoftware.com/Products/converter/index.htm"&gt;http://www.componentsoftware.com/Products/converter/index.htm&lt;/a&gt; &amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Requirements management from Borland tại &lt;a href="http://www.borland.com/"&gt;http://www.borland.com/&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Business
Process Modeling from RavenFlow tại &lt;a href="http://www.n8systems.com/"&gt;http://www.n8systems.com/&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Forums &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Danh s&amp;aacute;ch c&amp;aacute;c MSDN Forums c&amp;oacute; thể t&amp;igrave;m thấy ở đ&amp;acirc;y: &lt;a href="http://forums.microsoft.com/MSDN/default.aspx?ForumGroupID=5&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/default.aspx?ForumGroupID=5&amp;amp;SiteID=1&lt;/a&gt; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;table border="1" cellpadding="0" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="281" valign="top"&gt;
&lt;p&gt;Forum&lt;/p&gt;
&lt;/td&gt;
&lt;td width="357" valign="top"&gt;
&lt;p&gt;Address&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="281" valign="top"&gt;
&lt;p&gt;Team Foundation Server - General&lt;/p&gt;
&lt;/td&gt;
&lt;td width="357" valign="top"&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?F&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;orumID=22&amp;amp;SiteID=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="281" valign="top"&gt;
&lt;p&gt;Team Foundation Server - Setup&lt;/p&gt;
&lt;/td&gt;
&lt;td width="357" valign="top"&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?F&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;orumID=68&amp;amp;SiteID=1&amp;nbsp; &lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="281" valign="top"&gt;
&lt;p&gt;Team Foundation Server - &lt;/p&gt;
&lt;p&gt;Administration&lt;/p&gt;
&lt;/td&gt;
&lt;td width="357" valign="top"&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?F&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;orumID=477&amp;amp;SiteID=1&amp;nbsp; &lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="281" valign="top"&gt;
&lt;p&gt;Team Foundation Server - Build Automation&lt;/p&gt;
&lt;/td&gt;
&lt;td width="357" valign="top"&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?F&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;orumID=481&amp;amp;SiteID=1&amp;nbsp; &lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="281" valign="top"&gt;
&lt;p&gt;Team Foundation Server - Power Toys&lt;/p&gt;
&lt;/td&gt;
&lt;td width="357" valign="top"&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?F&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;orumID=930&amp;amp;SiteID=1&amp;nbsp; &lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="281" valign="top"&gt;
&lt;p&gt;Team Foundation Server - Process Templates&lt;/p&gt;
&lt;/td&gt;
&lt;td width="357" valign="top"&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?F&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;orumID=482&amp;amp;SiteID=1&amp;nbsp; &lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="281" valign="top"&gt;
&lt;p&gt;Team Foundation Server - Reporting &amp;amp; Warehouse&lt;/p&gt;
&lt;/td&gt;
&lt;td width="357" valign="top"&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?F&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;orumID=480&amp;amp;SiteID=1&amp;nbsp; &lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="281" valign="top"&gt;
&lt;p&gt;Team Foundation Server - Team System Web Access&lt;/p&gt;
&lt;/td&gt;
&lt;td width="357" valign="top"&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?F&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;orumID=1466&amp;amp;SiteID=1&lt;/span&gt;&lt;/i&gt;&amp;nbsp; &lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="281" valign="top"&gt;
&lt;p&gt;Team Foundation Server - Version Control&lt;/p&gt;
&lt;/td&gt;
&lt;td width="357" valign="top"&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?F&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;orumID=478&amp;amp;SiteID=1&lt;/span&gt;&lt;/i&gt;&amp;nbsp; &lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="281" valign="top"&gt;
&lt;p&gt;Team Foundation Server - Work Item Tracking&lt;/p&gt;
&lt;/td&gt;
&lt;td width="357" valign="top"&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?F&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;orumID=479&amp;amp;SiteID=1&lt;/span&gt;&lt;/i&gt;&amp;nbsp; &lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Microsoft
Team Foundation Blogs &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Ask Burton &lt;a href="http://blogs.msdn.com/askburton/"&gt;http://blogs.msdn.com/askburton/&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Brian Harry &lt;a href="http://blogs.msdn.com/bharry/"&gt;http://blogs.msdn.com/bharry/&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Buck Hodges &lt;a href="http://blogs.msdn.com/buckh/"&gt;http://blogs.msdn.com/buckh/&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; James Manning &lt;a href="http://blogs.msdn.com/jmanning/"&gt;http://blogs.msdn.com/jmanning/&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Rob Caron &lt;a href="http://blogs.msdn.com/robcaron/"&gt;http://blogs.msdn.com/robcaron/&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Team Foundation Blog
at &lt;a href="http://blogs.msdn.com/team_foundation"&gt;http://blogs.msdn.com/team_foundation&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Service
Packs &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Visual Studio 2005
SP1 at &lt;a href="http://msdn2.microsoft.com/en-gb/vstudio/bb265237.aspx"&gt;http://msdn2.microsoft.com/en-gb/vstudio/bb265237.aspx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; Microsoft&amp;reg; Visual
Studio&amp;reg; 2005 Team Foundation Server Service Pack 1 tại &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=A9AB638C-04D2-4AEE-8AE8-9F00DD454AB8"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=A9AB638C-04D2-4AEE-8AE8-9F00DD454AB8&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Visual Studio 2005
Service Pack 1 Update for Windows Vista tại&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=90e2942d-3ad1-4873-a2ee-4acc0aace5b6&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=90e2942d-3ad1-4873-a2ee-4acc0aace5b6&amp;amp;displaylang=en&lt;/a&gt; &amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; SQL Server 2005
Service Pack 2 tại &lt;a href="http://technet.microsoft.com/en-us/sqlserver/bb426877.aspx"&gt;http://technet.microsoft.com/en-us/sqlserver/bb426877.aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Training &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Một danh s&amp;aacute;ch c&amp;aacute;c c&amp;ocirc;ng ty đ&amp;agrave;o tạo c&amp;oacute; thể t&amp;igrave;m thấy ở đ&amp;acirc;y: &lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/aa718793.aspx"&gt;http://msdn2.microsoft.com/en-us/teamsystem/aa718793.aspx&lt;/a&gt; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Developmentor tại &lt;a href="http://www.develop.com/"&gt;http://www.develop.com/&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Pluralsight tại &lt;a href="http://www.pluralsight.com/"&gt;http://www.pluralsight.com&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;bull;&amp;nbsp; Notion Solutions tại &lt;a href="http://www.notionsolutions.com/"&gt;http://www.notionsolutions.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Vậy l&amp;agrave; phần n&amp;agrave;y m&amp;igrave;nh đ&amp;atilde; ho&amp;agrave;n th&amp;agrave;nh xong v&amp;agrave; kết th&amp;uacute;c tại đ&amp;acirc;y.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;M&amp;igrave;nh hi vọng l&amp;agrave; c&amp;aacute;c bạn sẽ t&amp;igrave;m được t&amp;agrave;i liệu cần thiết. Nếu c&amp;oacute; g&amp;igrave; thiếu s&amp;oacute;t, c&amp;aacute;c bạn c&amp;oacute; thể g&amp;oacute;p &amp;yacute; tại đ&amp;acirc;y, hoặc gửi mail cho m&amp;igrave;nh, m&amp;igrave;nh sẽ sửa lại. Mail của m&amp;igrave;nh l&amp;agrave; kpopyo@gmail.com.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Quỳnh&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Làm Thế Nào Để: Tạo Custom Check-in Policies Trong Visual Studio Team Foundation Server </title><link>http://msdnvietnam.net/wikis/tfs/l-224-m-th-n-224-o-t-o-custom-check-in-policies-trong-visual-studio-team-foundation-server/revision/0.aspx</link><pubDate>Sun, 21 Feb 2010 20:21:46 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:149</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to TFS - Team Foundation System by Nguyễn Thị Như Quỳnh on 2/22/2010 4:21:46 AM&lt;br /&gt;
&lt;p&gt;&lt;b&gt;Được &amp;aacute;p dụng
cho&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Microsoft&amp;reg; Visual
Studio&amp;reg; 2005 Team Foundation Server (TFS) &lt;/li&gt;
&lt;li&gt; Microsoft Visual
Studio Team System &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;T&amp;oacute;m tắt&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Chủ đề L&amp;agrave;m Thế N&amp;agrave;o n&amp;agrave;y sẽ dẫn bạn đi qua quy tr&amp;igrave;nh của việc tạo,
đăng k&amp;iacute;, v&amp;agrave; &amp;aacute;p dụng một ch&amp;iacute;nh s&amp;aacute;ch check-in policy t&amp;ugrave;y &amp;yacute; cho những ch&amp;iacute;nh s&amp;aacute;ch &lt;b&gt;TFS. Check-in &lt;/b&gt;policy cho ph&amp;eacute;p bạn k&amp;iacute;ch
hoạt c&amp;aacute;c quy tắc bất cứ khi n&amp;agrave;o một lập tr&amp;igrave;nh vi&amp;ecirc;n cố gắng thực hiện &amp;nbsp;check-in một source file, để đảm bảo l&amp;agrave; source
file đang được check-in đ&amp;aacute;p ứng được một tập hợp c&amp;aacute;c ti&amp;ecirc;u chuẩn cụ thể. Như l&amp;agrave;
một th&amp;iacute; dụ, chỉ đề L&amp;agrave;m Thế N&amp;agrave;o n&amp;agrave;y sử dụng một ch&amp;iacute;nh s&amp;aacute;ch policy t&amp;ugrave;y &amp;yacute; để thực
hiện c&amp;aacute;c check-in comment được cung cấp với tất cả c&amp;aacute;c check-in. Để thực thi một
ch&amp;iacute;nh s&amp;aacute;ch check-in policy t&amp;ugrave;y &amp;yacute;, bạn h&amp;atilde;y tạo một lớp class c&amp;oacute; nguồn gốc từ
PolicyBase v&amp;agrave; thực thi giao diện &lt;b&gt;IPolicyDefinition
&lt;/b&gt;v&amp;agrave;&lt;b&gt; IPolicyEvaluation interfaces&lt;/b&gt;.
Bạn đăng k&amp;iacute; policy assembly trong Microsoft Windows&amp;reg; registry v&amp;agrave; bạn &amp;aacute;p dụng
ch&amp;iacute;nh s&amp;aacute;ch policy cho dự &amp;aacute;n nh&amp;oacute;m của bạn.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nội dung&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Chủ đề &lt;/li&gt;
&lt;li&gt; Xem trước &lt;/li&gt;
&lt;li&gt; Trước khi bạn bắt đầu&lt;/li&gt;
&lt;li&gt; T&amp;oacute;m tắt c&amp;aacute;c bước &lt;/li&gt;
&lt;li&gt; Bước 1 - Tạo v&amp;agrave;
Build một Custom Policy Class. &lt;/li&gt;
&lt;li&gt; Bước 2 - Đăng k&amp;iacute;
Custom Policy Class trong Windows Registry &lt;/li&gt;
&lt;li&gt; Bước 3 - &amp;Aacute;p dụng
Custom Policy. &lt;/li&gt;
&lt;li&gt; Bước 4 - X&amp;aacute;c nhận
Custom Policy. &lt;/li&gt;
&lt;li&gt; Những m&amp;atilde; nguồn bổ
sung &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Chủ đề&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; T&amp;igrave;m hiểu một ch&amp;iacute;nh
s&amp;aacute;ch custom check-in policy l&amp;agrave; g&amp;igrave; &lt;/li&gt;
&lt;li&gt; T&amp;igrave;m hiểu l&amp;agrave;m thế n&amp;agrave;o
để tạo, đăng k&amp;iacute; v&amp;agrave; &amp;aacute;p dụng c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch custom check-in policy. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Xem trước&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;C&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch &lt;b&gt;check-in
policy&lt;/b&gt; thực thi c&amp;aacute;c r&amp;agrave;ng buộc bất cứ khi n&amp;agrave;o c&amp;aacute;c tập tin được check trong
source control. Team Foundation Server cung cấp một số c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch &amp;nbsp;out-of-box check-in policy gồm c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch policy
để kiểm tra rằng c&amp;aacute;c unit test được chạy v&amp;agrave; được th&amp;ocirc;ng qua, c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch
policy để thực thi c&amp;aacute;c ph&amp;acirc;n t&amp;iacute;ch code tĩnh(static code analysis) để đảm bảo l&amp;agrave;
phần code đ&amp;aacute;p ứng được c&amp;aacute;c ti&amp;ecirc;u chuẩn về code v&amp;agrave; c&amp;aacute;c hướng dẫn .NET guidelines,
v&amp;agrave; c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch policy để kiểm tra l&amp;agrave; c&amp;aacute;c work item c&amp;oacute; được li&amp;ecirc;n kết với c&amp;aacute;c
check in. C&amp;aacute;c c&amp;ocirc;ng cụ Microsoft Visual Studio 2005 Team Foundation Power Tool cũng
cung cấp một số c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch check-in policy bổ sung. Trong đề t&amp;agrave;i L&amp;agrave;m Thế
N&amp;agrave;o n&amp;agrave;y, bạn sẽ t&amp;igrave;m hiểu l&amp;agrave;m thế n&amp;agrave;o để tạo, đăng k&amp;iacute; v&amp;agrave; &amp;aacute;p dụng một ch&amp;iacute;nh s&amp;aacute;ch custom
policy. Ch&amp;iacute;nh s&amp;aacute;ch th&amp;iacute; dụ đảm bảo l&amp;agrave; c&amp;aacute;c lập tr&amp;igrave;nh vi&amp;ecirc;n phải cung cấp c&amp;aacute;c
check-in comment bất cứ khi n&amp;agrave;o họ check in một file. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Trước khi bắt
đầu&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;H&amp;atilde;y lưu &amp;yacute; l&amp;agrave;, để tạo một ch&amp;iacute;nh s&amp;aacute;ch check-in policy, bạn phải
c&amp;oacute; c&amp;aacute;c &lt;b&gt;Manipulate&lt;/b&gt; security settings
permission được thiết lập l&amp;agrave; &amp;nbsp;&lt;b&gt;Allow. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;oacute;m tắt c&amp;aacute;c
bước&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Bước 1 - Tạo v&amp;agrave;
Build một Custom Policy Class. &lt;/li&gt;
&lt;li&gt; Bước 2 - Đăng k&amp;iacute;
Custom Policy Class trong Windows Registry &lt;/li&gt;
&lt;li&gt; Bước 3 - &amp;Aacute;p dụng
Custom Policy. &lt;/li&gt;
&lt;li&gt; Bước 4 - X&amp;aacute;c nhận
Custom Policy. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Bước 1 - Tạo
v&amp;agrave; Build một Custom Policy Class&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Trong bước khởi đầu n&amp;agrave;y, bạn tạo một lớp ch&amp;iacute;nh s&amp;aacute;ch theo &amp;yacute; bạn
bằng c&amp;aacute;ch suy ra từ lớp &lt;b&gt;PolicyBase &lt;/b&gt;base
class trong &lt;b&gt;Microsoft.TeamFoundation.VersionControl.Client&lt;/b&gt;
namespace. Bằng c&amp;aacute;ch &amp;nbsp;kế thừa từ lớp cơ bản
n&amp;agrave;y, lớp của bạn thực thi c&amp;aacute;c &lt;b&gt;IPolicyDefinition&lt;/b&gt;
v&amp;agrave; &lt;b&gt;IPolicyEvaluation&lt;/b&gt; interfaces. Phần
m&amp;atilde; ch&amp;iacute;nh s&amp;aacute;ch v&amp;iacute; dụ b&amp;ecirc;n dưới buộc một lập tr&amp;igrave;nh vi&amp;ecirc;n cung cấp c&amp;aacute;c ch&amp;uacute; th&amp;iacute;ch
check-in comment bất cứ khi n&amp;agrave;o anh ta hay c&amp;ocirc; ta check in một source file.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Sử dụng Visual
Studio để tạo một dự &amp;aacute;n Visual C#&amp;reg; class library project mới. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Th&amp;ecirc;m một assembly
reference đến &lt;b&gt;System.Windows.Forms.dll&lt;/b&gt;.
Bạn sử dụng assembly n&amp;agrave;y để hiển thị c&amp;aacute;c hộp tin nhắn message boxes. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Th&amp;ecirc;m một assembly
reference đến&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Microsoft.TeamFoundation.VersionControl.Client.dll&lt;/b&gt;. Mặc định,
n&amp;oacute; được c&amp;agrave;i đặt trong thư mục sau:&lt;b&gt;\Program
Files\Visual Studio 2005 Team Foundation Server\Tools &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Thay thế bộ khung lớp
code thực thi bằng phần source sau. H&amp;atilde;y lưu &amp;yacute; l&amp;agrave; lớp n&amp;agrave;y kế thừa lớp cơ sở &lt;b&gt;PolicyBase&lt;/b&gt; v&amp;agrave; được đ&amp;aacute;nh dấu l&amp;agrave; &lt;b&gt;serializable. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;using System; &lt;/p&gt;
&lt;p&gt;using System.Windows.Forms; &lt;/p&gt;
&lt;p&gt;using
Microsoft.TeamFoundation.VersionControl.Client; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;[Serializable] &lt;/p&gt;
&lt;p&gt;public class
CheckForCommentsPolicy : PolicyBase &lt;/p&gt;
&lt;p&gt;{ &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override string Description &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return &amp;quot;Remind users to add
meaningful comments to their checkins&amp;quot;; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // This is a string that is stored with the
policy definition on the source &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // control server. If a user does not have
the policy plug-in installed, this string &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // is displayed.&amp;nbsp; You can use this to explain to the user how
they should&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // install the policy plug-in. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override string
InstallationInstructions &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return &amp;quot;To install this
policy, read InstallInstructions.txt.&amp;quot;; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // This string identifies the type of
policy. It is displayed in the&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;// policy list when you add a new policy to a
Team Project. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override string Type &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return &amp;quot;Check for Comments
Policy&amp;quot;; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // This string is a description of the type
of policy. It is displayed&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // when you select the policy in the Add
Check-in Policy dialog box. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override string TypeDescription &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return &amp;quot;This policy will
prompt the user to decide whether or not they should be allowed to check
in.&amp;quot;; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //
This method is called by the policy framework when you create&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // a new check-in policy or edit an
existing check-in policy. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // You can use this to display a UI
specific to this policy type&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // allowing the user to change the
parameters of the policy. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override bool Edit(IPolicyEditArgs
args) &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Do not need any custom configuration
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // This method performs the actual policy
evaluation.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // It is called by the policy framework at
various points in time &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // when policy should be evaluated. In this
example, the method&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // is invoked when various asyc events
occur that may have&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // invalidated the current list of
failures. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override PolicyFailure[] Evaluate() &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string proposedComment =
PendingCheckin.PendingChanges.Comment; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if
(String.IsNullOrEmpty(proposedComment)) &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new PolicyFailure[] { &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new PolicyFailure(&amp;quot;Please
provide some comments about your check-in&amp;quot;, this) }; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new PolicyFailure[0]; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // This method is called if the user
double-clicks on&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // a policy failure in the UI. In this case
a message telling the user&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // to supply some comments is displayed. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void Activate(PolicyFailure
failure) &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show(&amp;quot;Please provide
comments for your check-in.&amp;quot;, &amp;quot;How to fix your policy failure&amp;quot;);
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // This method is called if the user
presses F1 when a policy failure&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // is active in the UI. In this example, a
message box is displayed. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void
DisplayHelp(PolicyFailure failure) &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show(&amp;quot;This policy helps
you to remember to add comments to your check-ins.&amp;quot;, &amp;quot;Prompt Policy &lt;/p&gt;
&lt;p&gt;Help&amp;quot;); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Bước 2 -
Đăng k&amp;iacute; Custom Policy Class trong Windows Registry&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Trong bước n&amp;agrave;y, bạn th&amp;ecirc;m một mục v&amp;agrave;o Windows registry để
ch&amp;iacute;nh s&amp;aacute;ch policy của bạn xuất hiện trong hộp thoại &lt;b&gt;Add Check-in Policy&lt;/b&gt;. Lưu &amp;yacute; l&amp;agrave; bạn phải c&amp;agrave;i đặt c&amp;aacute;c policy assembly
tr&amp;ecirc;n bất k&amp;igrave; m&amp;aacute;y t&amp;iacute;nh n&amp;agrave;o c&amp;oacute; nhu cầu tham chiếu đến c&amp;aacute;c assembly đ&amp;oacute;. Gồm c&amp;oacute; c&amp;aacute;c
m&amp;aacute;y t&amp;iacute;nh của người quản trị của dự &amp;aacute;n nh&amp;oacute;m, l&amp;agrave; người cần li&amp;ecirc;n kết ch&amp;iacute;nh s&amp;aacute;ch
policy với dự &amp;aacute;n nh&amp;oacute;m v&amp;agrave; tr&amp;ecirc;n c&amp;aacute;c m&amp;aacute;y t&amp;iacute;nh của c&amp;aacute;c th&amp;agrave;nh vi&amp;ecirc;n nh&amp;oacute;m l&amp;agrave; nơi m&amp;agrave;
ch&amp;iacute;nh s&amp;aacute;ch policy thực sự được thực thi. &lt;/p&gt;
&lt;p&gt;Quan trọng: Ch&amp;iacute;nh s&amp;aacute;ch policy được đ&amp;aacute;nh gi&amp;aacute; tr&amp;ecirc;n client khi một
lập tr&amp;igrave;nh vi&amp;ecirc;n check in một tập tin. &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Khởi động &lt;b&gt;Regedit.exe&lt;/b&gt; v&amp;agrave; x&amp;aacute;c định v&amp;iacute; tr&amp;iacute; quan trọng
sau HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\8.0\TeamFoundation\SourceControl\Checkin
Policies&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch đ&amp;atilde;
đăng k&amp;iacute; được liệt ở phần b&amp;ecirc;n phải.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Click phải trong hộp
b&amp;ecirc;n phải, trỏ đến phần &lt;b&gt;New&lt;/b&gt;, v&amp;agrave; sau
đ&amp;oacute; click &lt;b&gt;String Value&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; H&amp;atilde;y nhập t&amp;ecirc;n của
ch&amp;iacute;nh s&amp;aacute;ch custom policy dynamic link library (DLL), m&amp;agrave; kh&amp;ocirc;ng c&amp;oacute; phần mở rộng DLL
; &lt;b&gt;CheckForCommentsPolicy&lt;/b&gt; trong v&amp;iacute; dụ
tr&amp;ecirc;n. &lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;Quan trọng:&lt;/span&gt;&lt;/i&gt; T&amp;ecirc;n của
ch&amp;iacute;nh s&amp;aacute;ch phải ph&amp;ugrave; hợp với t&amp;ecirc;n tập tin DLL một c&amp;aacute;ch ch&amp;iacute;nh x&amp;aacute;c, m&amp;agrave; kh&amp;ocirc;ng c&amp;oacute; phần
mở rộng DLL.&lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Click đ&amp;ocirc;i v&amp;agrave;o chuỗi
gi&amp;aacute; trị mới v&amp;agrave; thiết lập gi&amp;aacute; trị của n&amp;oacute; th&amp;agrave;nh đường dẫn gi&amp;aacute; trị đầy đủ v&amp;agrave; t&amp;ecirc;n tập
tin .dll chứa ch&amp;iacute;nh s&amp;aacute;ch của bạn.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Bước 3 - &amp;Aacute;p
dụng Custom Policy&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Trong bước n&amp;agrave;y bạn th&amp;ecirc;m custom policy v&amp;agrave;o team project của bạn.
Điều n&amp;agrave;y đảm bảo l&amp;agrave; ch&amp;iacute;nh s&amp;aacute;ch policy c&amp;oacute; gi&amp;aacute; trị mỗi khi một lập tr&amp;igrave;nh vi&amp;ecirc;n
check in một tập tin v&amp;agrave;o team project n&amp;agrave;y.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;1. Trong Team Explorer, click phải l&amp;ecirc;n team project của bạn, trỏ
đến &lt;b&gt;Team Project Settings&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute;
click &lt;b&gt;Source Control.&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Click v&amp;agrave;o thẻ &lt;b&gt;Check-in Policy&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Add&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; H&amp;atilde;y chọn t&amp;ugrave;y chọn &lt;b&gt;Check for Comments Policy&lt;/b&gt; v&amp;agrave; click &lt;b&gt;OK &lt;/b&gt;v&amp;agrave; sau đ&amp;oacute; &lt;b&gt;OK &lt;/b&gt;lần nữa.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;B&amp;acirc;y giờ ch&amp;iacute;nh s&amp;aacute;ch policy đ&amp;atilde; được &amp;aacute;p dụng mỗi khi một lập
tr&amp;igrave;nh vi&amp;ecirc;n check in một tập tin trong team projecy n&amp;agrave;y. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Bước 4- X&amp;aacute;c
nhận Custom Policy &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Trong bước n&amp;agrave;y, bạn check-in một source file để đảm bảo l&amp;agrave; custom
policy l&amp;agrave;m việc ch&amp;iacute;nh x&amp;aacute;c. &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Thực hiện một thay
đổi cho một tập tin source v&amp;agrave; sau đ&amp;oacute; check-in tập tin m&amp;agrave; kh&amp;ocirc;ng cung cấp một ch&amp;uacute;
th&amp;iacute;ch check-in comment.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; X&amp;aacute;c nhận l&amp;agrave; check-in
đ&amp;atilde; bị ngăn chặn v&amp;igrave; c&amp;aacute;c quy luật của ch&amp;iacute;nh s&amp;aacute;ch(policy rule) kh&amp;ocirc;ng ph&amp;ugrave; hợp.&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; H&amp;atilde;y th&amp;ecirc;m một v&amp;agrave;i
ch&amp;uacute; th&amp;iacute;ch comment v&amp;agrave; ho&amp;agrave;n th&amp;agrave;nh check-in. Với comment cung cấp cho check-in sẽ
thực hiện th&amp;agrave;nh c&amp;ocirc;ng v&amp;agrave; bạn sẽ thấy một th&amp;ocirc;ng b&amp;aacute;o ch&amp;iacute;nh s&amp;aacute;ch thất bại(policy
failure notification). &lt;/p&gt;
&lt;p&gt;&lt;b&gt;M&amp;atilde; nguồn bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu th&amp;ecirc;m về
l&amp;agrave;m thế n&amp;agrave;o để t&amp;ugrave;y chỉnh một check-in policy, h&amp;atilde;y xem &amp;quot;Walkthrough: Customizing
Check-in Policies and Notes&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181281%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms181281(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để xem c&amp;aacute;c đoạn code
đơn giản cấm chọn c&amp;aacute;c mẫu tr&amp;ecirc;n check-in, h&amp;atilde;y xem &amp;quot;Check-in Policy to Disallow
Certain Patterns&amp;quot; tại đ&amp;acirc;y &lt;a href="http://blogs.msdn.com/jmanning/archive/2006/02/02/523125.aspx"&gt;http://blogs.msdn.com/jmanning/archive/2006/02/02/523125.aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để xem c&amp;aacute;c đoạn code
đơn giản m&amp;agrave; thực thi c&amp;aacute;c comment tr&amp;ecirc;n check-in, h&amp;atilde;y xem &amp;quot;Sample Check-in
Policy: Make Sure the Comment Isn&amp;#39;t Empty&amp;quot; tại đ&amp;acirc;y&lt;a href="http://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx"&gt; http://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx&lt;/a&gt; &amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu l&amp;agrave;m thế
n&amp;agrave;o để đăng k&amp;iacute; một check-in policy mới, h&amp;atilde;y xem &amp;quot;I&amp;#39;ve Made a New Check-In Policy!
How Do I Add It?&amp;quot; tại đ&amp;acirc;y&lt;a href="http://blogs.msdn.com/jmanning/archive/2006/02/07/526778.aspx"&gt; http://blogs.msdn.com/jmanning/archive/2006/02/07/526778.aspx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Làm thế nào: Tạo một báo cáo "Risk over Time" Report đối với Visual Studio Team Foundation Server </title><link>http://msdnvietnam.net/wikis/tfs/l-224-m-th-n-224-o-t-o-m-t-b-225-o-c-225-o-quot-risk-over-time-quot-report-i-v-i-visual-studio-team-foundation-server/revision/0.aspx</link><pubDate>Sun, 21 Feb 2010 20:20:02 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:148</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to TFS - Team Foundation System by Nguyễn Thị Như Quỳnh on 2/22/2010 4:20:02 AM&lt;br /&gt;
&lt;p&gt;&lt;b&gt;Được &amp;aacute;p dụng
cho&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Microsoft&amp;reg; Visual
Studio&amp;reg; 2005 Team Foundation Server (TFS) &lt;/li&gt;
&lt;li&gt; Microsoft Visual
Studio Team System (VSTS) &lt;/li&gt;
&lt;li&gt; Microsoft SQL
Server&lt;sup&gt;TM&lt;/sup&gt; Reporting Services &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;T&amp;oacute;m tắt &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Chủ đề L&amp;agrave;m thế n&amp;agrave;o n&amp;agrave;y sẽ dẫn bạn quan quy tr&amp;igrave;nh của việc tạo
mới một b&amp;aacute;o c&amp;aacute;o report m&amp;agrave; sẽ hiển thị xu hướng của c&amp;aacute;c Risk work items theo thời
gian như thế n&amp;agrave;o. Đề t&amp;agrave;i n&amp;agrave;y sẽ tr&amp;igrave;nh b&amp;agrave;y cho bạn l&amp;agrave;m c&amp;aacute;ch n&amp;agrave;o để xuất bản n&amp;oacute; đến
team reporting portal trong TFS. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nội dung &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Chủ đề &lt;/li&gt;
&lt;li&gt; Xem trước&lt;/li&gt;
&lt;li&gt; T&amp;oacute;m tắt c&amp;aacute;c bước &lt;/li&gt;
&lt;li&gt; Trước khi bạn bắt đầu
&lt;/li&gt;
&lt;li&gt; Bước 1 - Tạo mới một
Reporting Project &lt;/li&gt;
&lt;li&gt; Bước 2 - Tạo c&amp;aacute;c
Data Sources &lt;/li&gt;
&lt;li&gt; Bước 3 - Tạo mới Report trong Project của bạn&lt;/li&gt;
&lt;li&gt; Bước 4 - Chỉnh sửa
Report &lt;/li&gt;
&lt;li&gt; Bước 5 - Triển khai
Report đến Team Foundation Server của bạn&lt;/li&gt;
&lt;li&gt; Bước 6 - Kiểm thử
Report &lt;/li&gt;
&lt;li&gt; M&amp;atilde; nguồn bổ sung &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Chủ đề&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Tạo một reporting
project trong Visual Studio. &lt;/li&gt;
&lt;li&gt; Tạo mới một Risk
over Time report trong reporting project. &lt;/li&gt;
&lt;li&gt; Xuất bản Risk over
Time report đến report server. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Xem trước &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;C&amp;aacute;c report m&amp;agrave; đi k&amp;egrave;m với VSTS l&amp;agrave; SQL Server Reporting Services
reports. Bạn c&amp;oacute; thể chỉnh sửa những report tốt hơn hay tạo c&amp;aacute;c report cho ri&amp;ecirc;ng
bạn bằng c&amp;aacute;ch sử dụng SQL Server 2005 Reporting Services Designer b&amp;ecirc;n trong
Visual Studio (Business Intelligence Development Studio[BISD]), k&amp;egrave;m với c&amp;aacute;c
c&amp;ocirc;ng cụ SQL Server 2005 client tools. Để tạo một report theo &amp;yacute; bạn, bạn tạo một
&lt;b&gt;Report Project&lt;/b&gt; trong Visual Studio v&amp;agrave;
sau đ&amp;oacute; tạo data sources để kết nối đến c&amp;aacute;c TFS database c&amp;oacute; li&amp;ecirc;n quan v&amp;agrave; Online
Analytical Processing (OLAP) database. Chủ đề L&amp;agrave;m thế n&amp;agrave;o n&amp;agrave;y tr&amp;igrave;nh b&amp;agrave;y l&amp;agrave;m
c&amp;aacute;ch n&amp;agrave;o để tạo một b&amp;aacute;o c&amp;aacute;o report đơn giản từ scratch - Risk over Time report m&amp;agrave;
x&amp;aacute;c định số lượng c&amp;aacute;c Risk work items qua một giai đoạn thời gian.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;oacute;m tắt c&amp;aacute;c
bước &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Bước 1 - Tạo mới một
Reporting Project &lt;/li&gt;
&lt;li&gt; Bước 2 - Tạo c&amp;aacute;c
Data Sources &lt;/li&gt;
&lt;li&gt; Bước 3 - Tạo mới Report trong Project của bạn&lt;/li&gt;
&lt;li&gt; Bước 4 - Chỉnh sửa
Report &lt;/li&gt;
&lt;li&gt; Bước 5 - Triển khai
Report đến Team Foundation Server của bạn&lt;/li&gt;
&lt;li&gt; Bước 6 - Kiểm thử
Report &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Trước khi bạn
bắt đầu&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Trước khi bạn c&amp;oacute; thể t&amp;ugrave;y chỉnh một b&amp;aacute;o c&amp;aacute;o cho TFS, bạn phải
đảm bảo l&amp;agrave; bạn c&amp;oacute; c&amp;aacute;c y&amp;ecirc;u cầu cần thiết :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Bạn phải c&amp;oacute; Business
Intelligence Development Studio (BIDS) được c&amp;agrave;i đặt tr&amp;ecirc;n m&amp;aacute;y m&amp;agrave; bạn sẽ sử dụng
để t&amp;ugrave;y chỉnh c&amp;aacute;c report. Để x&amp;aacute;c nhận xem
l&amp;agrave; BIDS được c&amp;agrave;i đặt chưa, h&amp;atilde;y kiểm tra Visual Studio để biết l&amp;agrave; nếu bạn c&amp;oacute; t&amp;ugrave;y
chọn về loại dự &amp;aacute;n Business Intelligence Project khi bạn tạo mới một dự &amp;aacute;n. &lt;/li&gt;
&lt;li&gt; T&amp;agrave;i khoản người d&amp;ugrave;ng
của bạn phải l&amp;agrave; một th&amp;agrave;nh vi&amp;ecirc;n của Microsoft Analysis Server
TfsWarehouseDataReaders security role tr&amp;ecirc;n server tầng data. &lt;/li&gt;
&lt;li&gt; T&amp;agrave;i khoản người d&amp;ugrave;ng
của bạn phải c&amp;oacute; c&amp;aacute;c quyền quản trị về cơ sở dữ liệu TFSWarehouse database tr&amp;ecirc;n
tầng data. &lt;/li&gt;
&lt;li&gt; T&amp;agrave;i khoản người d&amp;ugrave;ng
của bạn phải l&amp;agrave; một th&amp;agrave;nh vi&amp;ecirc;n của SQL
Server Reporting Services Publisher role tr&amp;ecirc;n server tầng application&lt;/li&gt;
&lt;li&gt; Dự &amp;aacute;n phải chứa c&amp;aacute;c Risk work items để b&amp;aacute;o c&amp;aacute;o report hiển thị một
số dữ liệu. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Bước 1 - Tạo
mới một Reporting Project &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Trong bước khởi đầu n&amp;agrave;y, bạn tạo một dự &amp;aacute;n b&amp;aacute;o c&amp;aacute;o mới để bạn
c&amp;oacute; thể th&amp;ecirc;m một b&amp;aacute;o c&amp;aacute;o mới v&amp;agrave;o dự &amp;aacute;n v&amp;agrave; sau đ&amp;oacute; chỉnh sửa b&amp;aacute;o c&amp;aacute;o report. Thực
hiện c&amp;aacute;c bước sau để tạo một dự &amp;aacute;n b&amp;aacute;o c&amp;aacute;o mới trong &lt;b&gt;Visual Studio&lt;/b&gt;: &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Click &lt;b&gt;File&lt;/b&gt;, sau đ&amp;oacute; click &lt;b&gt;New&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Project.&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Chọn loại &lt;b&gt;Business Intelligence Project&lt;/b&gt; type. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Chọn mẫu &lt;b&gt;Report Server Project &lt;/b&gt;template. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Thiết lập t&amp;ecirc;n v&amp;agrave; vị
tr&amp;iacute; của dự &amp;aacute;n &lt;b&gt;Name &lt;/b&gt;v&amp;agrave; &lt;b&gt;Location&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;OK&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Bước 2 - Tạo
c&amp;aacute;c Data Sources &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Để chỉnh sửa v&amp;agrave; xuất bản c&amp;aacute;c report t&amp;ugrave;y chỉnh, đầu ti&amp;ecirc;n bạn cần
th&amp;ecirc;m c&amp;aacute;c data source cho TFS data warehouse v&amp;agrave; OLAP cube.&amp;nbsp; Mỗi lần những data source n&amp;agrave;y được th&amp;ecirc;m v&amp;agrave;o dự
&amp;aacute;n Visual Studio project th&amp;igrave; report c&amp;oacute; thể lấy dữ liệu từ server.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để tạo
warehouse data source: &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong &lt;b&gt;Visual Studio Solution Explorer&lt;/b&gt;, click
phải v&amp;agrave;o &lt;b&gt;Shared Data Sources&lt;/b&gt; v&amp;agrave; sau
đ&amp;oacute; click &lt;b&gt;Add New Data Source&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Tr&amp;ecirc;n thẻ tab &lt;b&gt;General&lt;/b&gt;, trong &amp;ocirc; &lt;b&gt;Name&lt;/b&gt; text box , h&amp;atilde;y điền l&amp;agrave;&lt;b&gt;
TfsReportDS&lt;/b&gt; .&amp;nbsp; &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Chọn &lt;b&gt;Microsoft SQL Server&lt;/b&gt; từ &lt;b&gt;Type&lt;/b&gt; combo box. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Click v&amp;agrave;o button &lt;b&gt;Edit...&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Điền t&amp;ecirc;n server tầng
data của bạn.&lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Chọn &lt;b&gt;TFSWarehouse&lt;/b&gt; database.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; Click v&amp;agrave;o &lt;b&gt;OK&lt;/b&gt; button hai lần để th&amp;ecirc;m data source. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để tạo OLAP
data source: &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1. Trong &lt;b&gt;Solution
Explorer&lt;/b&gt;, click phải l&amp;ecirc;n &lt;b&gt;Shared Data
Sources&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Add New Data
Source. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Tr&amp;ecirc;n thẻ tab &lt;b&gt;General&lt;/b&gt;, trong &amp;ocirc; &lt;b&gt;Name&lt;/b&gt; text box, nhập v&amp;agrave;o &lt;b&gt;TfsOlapReportDS&lt;/b&gt;
.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Chọn &lt;b&gt;Microsoft SQL Server Analysis Services&lt;/b&gt; từ
Type combo box. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Click v&amp;agrave;o &lt;b&gt;Edit...&lt;/b&gt; button. &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Điền t&amp;ecirc;n server của
tầng data.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Chọn &lt;b&gt;TFSWarehouse&lt;/b&gt; database.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; Click the &lt;b&gt;OK&lt;/b&gt; button hai lần để th&amp;ecirc;m data source. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Bước 3 - Tạo
một Report mới trong Project của bạn &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;B&amp;acirc;y giờ th&amp;igrave; c&amp;aacute;c data source đ&amp;atilde; được th&amp;ecirc;m v&amp;agrave;o dự &amp;aacute;n của bạn v&amp;agrave;
bạn c&amp;oacute; thể th&amp;ecirc;m một report mới. &lt;/p&gt;
&lt;p&gt;H&amp;atilde;y thực hiện theo c&amp;aacute;c bước sau để th&amp;ecirc;m một report mới v&amp;agrave;o dự
&amp;aacute;n của bạn v&amp;agrave; t&amp;ugrave;y chỉnh n&amp;oacute;:&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong &lt;b&gt;Solution Explorer,&lt;/b&gt; h&amp;atilde;y click chuột phải
l&amp;ecirc;n &lt;b&gt;Reports &lt;/b&gt;v&amp;agrave; sau đ&amp;oacute; chọn &lt;b&gt;Add-&amp;gt;New Item...&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Chọn mẫu &lt;b&gt;Report template&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Đặt t&amp;ecirc;n cho report v&amp;agrave;
click &lt;b&gt;OK&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Bước 4 - Chỉnh
sửa Report &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Sau khi bạn th&amp;ecirc;m một report v&amp;agrave;o dự &amp;aacute;n của bạn, bạn c&amp;oacute; thể chỉnh
sửa report như sau: &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Nếu &lt;b&gt;Report Designer&lt;/b&gt; kh&amp;ocirc;ng tự động mở, h&amp;atilde;y mở
report để chỉnh sửa bằng c&amp;aacute;ch click đ&amp;ocirc;i v&amp;agrave;o n&amp;oacute; trong &lt;b&gt;Solution Explorer&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Click v&amp;agrave;o &lt;b&gt;Dataset&lt;/b&gt; thả xuống v&amp;agrave; chọn &lt;b&gt;&amp;lt;New Dataset...&amp;gt;.&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Đặt t&amp;ecirc;n cho
dataset, th&amp;iacute; dụ &lt;b&gt;TestDataSet&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; H&amp;atilde;y chọn &lt;b&gt;TFSOlapReportDS&lt;/b&gt; (shared) v&amp;agrave; sau đ&amp;oacute;
click &lt;b&gt;OK&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Click v&amp;agrave;o &lt;b&gt;... &lt;/b&gt;button b&amp;ecirc;n cạnh &lt;b&gt;Build &lt;/b&gt;(chỉ b&amp;ecirc;n dưới danh s&amp;aacute;ch thả xuống
&lt;b&gt;Dataset&lt;/b&gt;) v&amp;agrave; sau đ&amp;oacute; chọn &lt;b&gt;Team System&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Trong c&amp;acirc;y &lt;b&gt;Dataset Tree&lt;/b&gt;, h&amp;atilde;y mở rộng phần &lt;b&gt;Measures&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; Trong c&amp;acirc;y &lt;b&gt;Dataset Tree&lt;/b&gt;, mở rộng phần &lt;b&gt;Current Work Item&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;8.&amp;nbsp; K&amp;eacute;o &lt;b&gt;Current Work Item Count&lt;/b&gt; v&amp;agrave;o cửa sổ truy
vấn ch&amp;iacute;nh. &lt;/p&gt;
&lt;p&gt;9.&amp;nbsp; Trong c&amp;acirc;y &lt;b&gt;Dataset Tree&lt;/b&gt;, thu lại phần &lt;b&gt;Measures&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;10. Cuộn &lt;b&gt;Team Project&lt;/b&gt;
xuống v&amp;agrave; k&amp;eacute;o n&amp;oacute; v&amp;agrave;o lưới &lt;b&gt;Dimensions Grid&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;11. Trong &lt;b&gt;Dimensions
Grid&lt;/b&gt;, click v&amp;agrave;o &amp;ocirc; &lt;b&gt;Filter Expression&lt;/b&gt;
v&amp;agrave; chọn t&amp;ecirc;n dự &amp;aacute;n nh&amp;oacute;m của bạn. Điều n&amp;agrave;y lọc những kết quả chỉ l&amp;agrave; dự &amp;aacute;n nh&amp;oacute;m của
bạn.&lt;/p&gt;
&lt;p&gt;12. Mở rộng k&amp;iacute;ch thước phần &lt;b&gt;Work Item&lt;/b&gt; trong &lt;b&gt;Dataset Tree&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;13. K&amp;eacute;o &lt;b&gt;WorkItem.WorkItemType&lt;/b&gt;
từ &lt;b&gt;Dataset Tree&lt;/b&gt; v&amp;agrave;o &lt;b&gt;Dimensions Grid&lt;/b&gt;. &amp;nbsp;Bạn c&amp;oacute; thể thấy &lt;b&gt;System_WorkItemType&lt;/b&gt; thay v&amp;igrave; l&amp;agrave; &lt;b&gt;WorkItem.WorkItemType&lt;/b&gt;,
nếu trường hợp n&amp;agrave;y n&amp;oacute; vẫn hoạt động, nhưng c&amp;oacute; nghĩa l&amp;agrave; bạn n&amp;ecirc;n &amp;aacute;p dụng &lt;b&gt;SQL Server Service Pack&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;14. K&amp;eacute;o &lt;b&gt;WorkItem.WorkItemType&lt;/b&gt;
từ &lt;b&gt;Dataset Tree&lt;/b&gt; v&amp;agrave;o cửa sổ truy vấn
ch&amp;iacute;nh v&amp;agrave; thả n&amp;oacute; ở ph&amp;iacute;a trước cột t&amp;iacute;nh work item. Bạn c&amp;oacute; thể nh&amp;igrave;n thấy &lt;b&gt;System_WorkItemType&lt;/b&gt; thay v&amp;igrave; l&amp;agrave; &lt;b&gt;WorkItem.WorkItemType&lt;/b&gt;, nếu l&amp;agrave; trường hợp
n&amp;oacute; vẫn c&amp;ograve;n hoạt động, nhưng c&amp;oacute; nghĩa l&amp;agrave; bạn n&amp;ecirc;n &amp;aacute;p dụng &amp;nbsp;SQL Server Service Pack 2.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;15. Trong &lt;b&gt;Dimensions
Grid&lt;/b&gt;, click v&amp;agrave;o &amp;ocirc; &amp;nbsp;&lt;b&gt;Filter Expression&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; chọn loại &lt;b&gt;Risk. &lt;/b&gt;Điều n&amp;agrave;y sẽ lọc ra c&amp;aacute;c kết quả l&amp;agrave;
chỉ c&amp;aacute;c loại &lt;b&gt;Risk work item&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;16. Trong &lt;b&gt;Dataset Tree&lt;/b&gt;,h&amp;atilde;y
mở rộng k&amp;iacute;ch thước &lt;b&gt;Date.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;17. K&amp;eacute;o gi&amp;aacute; trị k&amp;iacute;ch thước &lt;b&gt;Date&lt;/b&gt; v&amp;agrave;o cửa sổ truy vấn ch&amp;iacute;nh; thả n&amp;oacute; trước cột loại work item. &lt;/p&gt;
&lt;p&gt;18. Click v&amp;agrave;o &lt;b&gt;Layout
tab. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;19. H&amp;atilde;y mở cửa số &lt;b&gt;Toolbox
&lt;/b&gt;window. &lt;/p&gt;
&lt;p&gt;20. K&amp;eacute;o &lt;b&gt;Chart&lt;/b&gt; từ &lt;b&gt;Toolbox&lt;/b&gt; v&amp;agrave;o layout grid. &lt;/p&gt;
&lt;p&gt;21. Chỉnh sửa k&amp;iacute;ch thước của chart cho ph&amp;ugrave; hợp. &lt;/p&gt;
&lt;p&gt;22. Click phải l&amp;ecirc;n chart v&amp;agrave; sau đ&amp;oacute; chọn &lt;b&gt;Chart Type&amp;shy; Line&amp;shy; Smooth Line&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;23.&amp;nbsp; H&amp;atilde;y mở &lt;b&gt;Datasets Pane. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;24.&amp;nbsp; Mở rộng data set của
bạn, th&amp;iacute; dụ, &lt;b&gt;TestDataSet. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;25.&amp;nbsp; Highlight đồ thị để
&lt;b&gt;Data, Series &lt;/b&gt;v&amp;agrave;&lt;b&gt; Category&lt;/b&gt; xuất hiện. &lt;/p&gt;
&lt;p&gt;26.&amp;nbsp; Thả &lt;b&gt;Current_Work_Item_Count &lt;/b&gt;v&amp;agrave;o &lt;b&gt;Drop Data Fields Here&lt;/b&gt; drop target box. &lt;/p&gt;
&lt;p&gt;27.&amp;nbsp; Thả &lt;b&gt;Work_Item_Type&lt;/b&gt; v&amp;agrave;o &lt;b&gt;Drop Series Fields Here&lt;/b&gt; drop target box. &lt;/p&gt;
&lt;p&gt;28.&amp;nbsp; Thả &lt;b&gt;Date&lt;/b&gt; v&amp;agrave;o &lt;b&gt;Drop Category Fields Here&lt;/b&gt; drop target box. &lt;/p&gt;
&lt;p&gt;29.&amp;nbsp; Click chuột phải
v&amp;agrave;o đồ thị v&amp;agrave; sau đ&amp;oacute; chọn &lt;b&gt;Properties. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;30.&amp;nbsp; Nhập một chủ đề
cho đồ thị của bạn v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;OK&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;31.&amp;nbsp; Click v&amp;agrave;o thẻ &lt;b&gt;Preview&lt;/b&gt; để xem những report n&amp;agrave;o trong
như vậy. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Bước 5 -
Triển khai Report đến Team Foundation Server của bạn&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Sau khi bạn đ&amp;atilde; tạo &lt;b&gt;Risk
over Time &lt;/b&gt;report, bạn c&amp;oacute; thể triển khai n&amp;oacute; đến reporting portal của dự &amp;aacute;n
nh&amp;oacute;m của bạn bằng c&amp;aacute;ch thực hiện c&amp;aacute;c bước sau: &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong &lt;b&gt;Solution Explorer&lt;/b&gt;, click chuột phải
tr&amp;ecirc;n report project v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Properties&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; H&amp;atilde;y chắc l&amp;agrave; &lt;b&gt;OverwriteDataSources&lt;/b&gt; được c&amp;agrave;i đặt l&amp;agrave; &lt;b&gt;false&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Chỉnh sửa &lt;b&gt;TargetDataSourceFolder &lt;/b&gt;để &amp;aacute;nh xạ đ&amp;uacute;ng
t&amp;ecirc;n của dự &amp;aacute;n bạn; th&amp;iacute; dụ &lt;b&gt;TargetDataSourceFolder
= TestProject. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Chỉnh sửa &lt;b&gt;TargetReportFolder &lt;/b&gt;&amp;nbsp;để &amp;aacute;nh xạ đ&amp;uacute;ng t&amp;ecirc;n của dự &amp;aacute;n bạn; th&amp;iacute; dụ &lt;b&gt;TargetDataSourceFolder = TestProject. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Chỉnh sửa &lt;b&gt;TargetDataSourceFolder&lt;/b&gt; th&amp;agrave;nh &lt;b&gt;http://&amp;lt;data-tier
servername&amp;gt;/reportserver;&lt;/b&gt; th&amp;iacute; dụ: &lt;b&gt;TargetDataSourceFolder
= http://tfsrtm/reportserver. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Click &lt;b&gt;OK&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; Trong &lt;b&gt;Solution Explorer&lt;/b&gt;, h&amp;atilde;y click phải l&amp;ecirc;n tạp
tin &amp;nbsp;&lt;b&gt;.rdl
&lt;/b&gt;v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Deploy. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;8.&amp;nbsp; Quan s&amp;aacute;t &lt;b&gt;Output Pane &lt;/b&gt;để x&amp;aacute;c nhận l&amp;agrave; ho&amp;agrave;n th&amp;agrave;nh
th&amp;agrave;nh c&amp;ocirc;ng. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Bước 6 - Kiểm
thử report &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Sau khi đ&amp;atilde; xuất bản report đến server chứa c&amp;aacute;c report của dự
&amp;aacute;n nh&amp;oacute;m của bạn, bạn c&amp;oacute; thể kiểm thử để chắc l&amp;agrave; c&amp;aacute;c report đ&amp;oacute; được triển khai một
c&amp;aacute;ch th&amp;agrave;nh c&amp;ocirc;ng:&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong &lt;b&gt;Team Explorer&lt;/b&gt; mở rộng n&amp;uacute;t dự &amp;aacute;n nh&amp;oacute;m của
bạn, click chuột phải l&amp;ecirc;n &lt;b&gt;Reports&lt;/b&gt; v&amp;agrave;
sau đ&amp;oacute; h&amp;atilde;y chọn &lt;b&gt;Show Report Site. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Tr&amp;ecirc;n trang report
site, h&amp;atilde;y chọn report m&amp;agrave; bạn vừa tạo. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; H&amp;atilde;y x&amp;aacute;c nhận xem l&amp;agrave;
report m&amp;agrave; bạn tạo như bạn mon muốn. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;M&amp;atilde; nguồn bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m c&amp;aacute;c hướng
dẫn giải th&amp;iacute;ch l&amp;agrave;m thế n&amp;agrave;o để l&amp;agrave;m việc với c&amp;aacute;c dự &amp;aacute;n b&amp;aacute;o c&amp;aacute;o,h&amp;atilde;y xem &amp;quot;Reporting
Services Tutorials&amp;quot; tại đ&amp;acirc;y&lt;a href="http://msdn2.microsoft.com/en-us/library/ms170246.aspx"&gt; http://msdn2.microsoft.com/en-us/library/ms170246.aspx&lt;/a&gt; &amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; Đối với MSDN article
về chỉnh sửa c&amp;aacute;c report, h&amp;atilde;y xem &amp;quot;How to: Edit Reports in Report Designer&amp;quot; tại
đ&amp;acirc;y&lt;a href="http://msdn2.microsoft.com/en-us/library/ms244655%28VS.80%29.aspx"&gt; http://msdn2.microsoft.com/en-us/library/ms244655(VS.80).aspx&lt;/a&gt; &amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về c&amp;aacute;c quy tắc bảo mật trong tầng data, h&amp;atilde;y xem &amp;quot;Securing Access Through
Analysis Services&amp;quot; tại đ&amp;acirc;y&lt;a href="http://msdn2.microsoft.com/en-us/library/ms174839.aspx"&gt; http://msdn2.microsoft.com/en-us/library/ms174839.aspx&lt;/a&gt; &amp;nbsp; &amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về c&amp;aacute;c quy tắc bảo mật trong tầng application,h&amp;atilde;y xem &amp;quot;Securing Reporting
Services&amp;quot; tại đ&amp;acirc;y&lt;a href="http://msdn2.microsoft.com/en-us/library/ms157198.aspx"&gt; http://msdn2.microsoft.com/en-us/library/ms157198.aspx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Làm Thế Nào Để:  Tạo Một Custom Report Cho Visual Studio Team Foundation Server </title><link>http://msdnvietnam.net/wikis/tfs/l-224-m-th-n-224-o-t-o-m-t-custom-report-cho-visual-studio-team-foundation-server/revision/0.aspx</link><pubDate>Sun, 21 Feb 2010 20:18:37 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:147</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to TFS - Team Foundation System by Nguyễn Thị Như Quỳnh on 2/22/2010 4:18:37 AM&lt;br /&gt;
&lt;p&gt;&lt;b&gt;Được &amp;aacute;p dụng
cho&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Microsoft&amp;reg; Visual
Studio&amp;reg; 2005 Team Foundation Server (TFS) &lt;/li&gt;
&lt;li&gt; Microsoft Visual
Studio Team System &lt;/li&gt;
&lt;li&gt; Microsoft SQL
Server&lt;sup&gt;TM&lt;/sup&gt; Reporting Services &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;T&amp;oacute;m tắt
&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Đề t&amp;agrave;i L&amp;agrave;m thế n&amp;agrave;o n&amp;agrave;y sẽ dẫn bạn đi qua quy tr&amp;igrave;nh tạo mới một
custom report v&amp;agrave; chuyển n&amp;oacute; v&amp;agrave;o team reporting portal trong Team Foundation
Server. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nội dung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Chủ đề &lt;/li&gt;
&lt;li&gt; Xem trước&lt;/li&gt;
&lt;li&gt; T&amp;oacute;m tắt c&amp;aacute;c bước &lt;/li&gt;
&lt;li&gt; Trước khi bạn bắt đầu
&lt;/li&gt;
&lt;li&gt; Bước 1 - Tạo mới một
Reporting Project &lt;/li&gt;
&lt;li&gt; Bước 2 - Tạo data
sources &lt;/li&gt;
&lt;li&gt; Bước 3 - Tạo mới một
report trong project của bạn&lt;/li&gt;
&lt;li&gt; Bước 4 - Chỉnh sửa
report &lt;/li&gt;
&lt;li&gt; Bước 5 - Triển khai
c&amp;aacute;c report đến Team Foundation Server của bạn&lt;/li&gt;
&lt;li&gt; Bước 6 - Kiểm thử
report &lt;/li&gt;
&lt;li&gt; M&amp;atilde; nguồn bổ sung &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Chủ đề&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; T&amp;igrave;m hiểu l&amp;agrave;m thế n&amp;agrave;o
để tạo một reporting project trong Visual Studio &lt;/li&gt;
&lt;li&gt; T&amp;igrave;m hiểu l&amp;agrave;m thế n&amp;agrave;o
để tạo một b&amp;aacute;o c&amp;aacute;o t&amp;ugrave;y &amp;yacute; mới trong reporting project &lt;/li&gt;
&lt;li&gt; T&amp;igrave;m hiểu l&amp;agrave;m thế n&amp;agrave;o
để xuất bản một b&amp;aacute;o c&amp;aacute;o mới đến report
server &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Xem trước&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Những b&amp;aacute;o c&amp;aacute;o đi k&amp;egrave;m với VSTS l&amp;agrave; c&amp;aacute;c b&amp;aacute;o c&amp;aacute;o SQL Server
Reporting Services. Bạn c&amp;oacute; thể chỉnh sửa những b&amp;aacute;o c&amp;aacute;o n&amp;agrave;y cho tốt hơn hay l&amp;agrave; tạo
c&amp;aacute;c b&amp;aacute;o c&amp;aacute;o theo &amp;yacute; bạn bằng c&amp;aacute;ch sử dụng SQL Server 2005 Reporting Services
Designer b&amp;ecirc;n trong Visual Studio (Business Intelligence Development Studio), m&amp;agrave;
đi k&amp;egrave;m với c&amp;aacute;c c&amp;ocirc;ng cụ của SQL Server 2005 client. Để tạo một b&amp;aacute;o c&amp;aacute;o t&amp;ugrave;y &amp;yacute;, bạn
tạo một dự &amp;aacute;n b&amp;aacute;o c&amp;aacute;o trong Visual Studio, v&amp;agrave; sau đ&amp;oacute; tạo data sources để kết nối
đến cơ sở dữ liệu TFS c&amp;oacute; li&amp;ecirc;n quan v&amp;agrave; cơ sở dữ liệu Online Analytical
Processing (OLAP) database. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;oacute;m tắt c&amp;aacute;c
bước&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Bước 1 - Tạo mới một
Reporting Project &lt;/li&gt;
&lt;li&gt; Bước 2 - Tạo data
sources &lt;/li&gt;
&lt;li&gt; Bước 3 - Tạo mới một
report trong project của bạn&lt;/li&gt;
&lt;li&gt; Bước 4 - Chỉnh sửa
report &lt;/li&gt;
&lt;li&gt; Bước 5 - Triển khai
c&amp;aacute;c report đến Team Foundation Server của bạn&lt;/li&gt;
&lt;li&gt; Bước 6 - Kiểm thử
report &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Trước khi bạn
bắt đầu &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Trước khi bạn c&amp;oacute; thể t&amp;ugrave;y chỉnh một b&amp;aacute;o c&amp;aacute;o report cho Team
Foundation Server, bạn phải đảm bảo l&amp;agrave; bạn c&amp;oacute; c&amp;aacute;c y&amp;ecirc;u cầu cần thiết sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Bạn phải c&amp;oacute; &lt;b&gt;Business Intelligence Development Studio&lt;/b&gt;
được c&amp;agrave;i đặt tr&amp;ecirc;n m&amp;aacute;y m&amp;agrave; bạn sẽ sử dụng để t&amp;ugrave;y chỉnh report. Để kiểm tra đ&amp;atilde; được c&amp;agrave;i đặt chưa, h&amp;atilde;y kiểm
tra xem Visual Studio để thấy nếu bạn c&amp;oacute; loại &lt;b&gt;Business Intelligence Project&lt;/b&gt; khi bạn tạo một dự &amp;aacute;n mới.&lt;/li&gt;
&lt;li&gt; T&amp;agrave;i khoản người d&amp;ugrave;ng
của bạn phải l&amp;agrave; một th&amp;agrave;nh vi&amp;ecirc;n của nh&amp;oacute;m Microsoft Analysis Server
TfsWarehouseDataReaders security role tr&amp;ecirc;n server của tầng data. &lt;/li&gt;
&lt;li&gt; T&amp;agrave;i khoản người d&amp;ugrave;ng
của bạn phải c&amp;oacute; quyền quản trị cơ sở dữ liệu TFSWarehouse database tr&amp;ecirc;n tầng
data. &lt;/li&gt;
&lt;li&gt; T&amp;agrave;i khoản người d&amp;ugrave;ng
của bạn phải l&amp;agrave; th&amp;agrave;nh vi&amp;ecirc;n của nh&amp;oacute;m SQL Server Reporting Services Publisher
role tr&amp;ecirc;n server của tầng application.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Bước 1 - Tạo
mới một Reporting Project &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Tạo mới một reporting project để bạn c&amp;oacute; thể th&amp;ecirc;m một report mới
v&amp;agrave;o project v&amp;agrave; t&amp;ugrave;y chỉnh n&amp;oacute;. Thực hiện theo c&amp;aacute;c bước sau để tạo một reporting
project mới trong Visual Studio: &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong &lt;b&gt;Visual Studio&lt;/b&gt;, click &lt;b&gt;File&lt;/b&gt;, sau đ&amp;oacute; click &lt;b&gt;New&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Project&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Chọn loại &lt;b&gt;Business Intelligence Project&lt;/b&gt; type. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Chọn mẫu &lt;b&gt;Report Server Project&lt;/b&gt; template. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Đặt t&amp;ecirc;n v&amp;agrave; vị tr&amp;iacute;
cho dự &amp;aacute;n(project&amp;#39;s &lt;b&gt;Name and Location&lt;/b&gt;)
v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;OK&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Bước 2 - Tạo
data sources &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Để chỉnh sửa v&amp;agrave; xuất bản c&amp;aacute;c report theo &amp;yacute; bạn, bạn cần th&amp;ecirc;m
c&amp;aacute;c data source cho kho dữ liệu Team Foundation Server data warehouse v&amp;agrave; OLAP
cube.&amp;nbsp; Mỗi lần c&amp;aacute;c data source n&amp;agrave;y được
th&amp;ecirc;m v&amp;agrave;o dự &amp;aacute;n Visual Studio project th&amp;igrave; b&amp;aacute;o c&amp;aacute;o report c&amp;oacute; thể đẩy dữ liệu l&amp;ecirc;n
server. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để tạo kho
data source: &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong &lt;b&gt;Visual Studio Solution Explorer&lt;/b&gt;, click
chuột phải l&amp;ecirc;n Shared Data Sources v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Add New Data Source&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Tr&amp;ecirc;n thẻ
tab &lt;b&gt;General&lt;/b&gt;, h&amp;atilde;y điền &lt;b&gt;TfsReportDS&lt;/b&gt; v&amp;agrave;o &amp;ocirc; &lt;b&gt;Name&lt;/b&gt; text box.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Chọn &lt;b&gt;Microsoft SQL Server&lt;/b&gt; từ hộp danh s&amp;aacute;ch &lt;b&gt;Type&lt;/b&gt; combo box. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Click v&amp;agrave;o &lt;b&gt;Edit&lt;/b&gt;... button. &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Điền t&amp;ecirc;n
server tầng data của bạn.&lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Chọn cơ sở
dữ liệu &lt;b&gt;TFSWarehouse &lt;/b&gt;database.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; Click v&amp;agrave;o &amp;nbsp;&lt;b&gt;OK&lt;/b&gt;
button hai lần để th&amp;ecirc;m data source.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để tạo OLAP
data source: &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong
Solution Explorer, click chuột phải v&amp;agrave;o &lt;b&gt;Shared
Data Sources &lt;/b&gt;v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Add New
Data Source. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Tr&amp;ecirc;n thẻ &lt;b&gt;General&lt;/b&gt; tab, điền &lt;b&gt;TfsOlapReportDS&lt;/b&gt; v&amp;agrave;o &amp;ocirc; &lt;b&gt;Name&lt;/b&gt;
text box.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; H&amp;atilde;y chọn &lt;b&gt;Microsoft SQL Server Analysis Services&lt;/b&gt; từ
&lt;b&gt;Type &lt;/b&gt;combo box. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Click v&amp;agrave;o &lt;b&gt;Edit...&lt;/b&gt; button. &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Điền t&amp;ecirc;n
server tầng data của bạn.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Chọn cơ sở
dữ liệu l&amp;agrave; &lt;b&gt;TFSWarehouse&lt;/b&gt;
database.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; Click v&amp;agrave;o &lt;b&gt;OK&lt;/b&gt; button hai lần để th&amp;ecirc;m data source. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Bước 3 - Tạo
mới một report trong project của bạn &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;B&amp;acirc;y giờ th&amp;igrave; c&amp;aacute;c data sources đ&amp;atilde; được th&amp;ecirc;m v&amp;agrave;o dự &amp;aacute;n của bạn,
bạn c&amp;oacute; thể th&amp;ecirc;m một b&amp;aacute;o c&amp;aacute;o report mới. &lt;/p&gt;
&lt;p&gt;Thực hiện c&amp;aacute;c bước sau để th&amp;ecirc;m mới một report v&amp;agrave;o dự &amp;aacute;n của bạn
v&amp;agrave; t&amp;ugrave;y chỉnh n&amp;oacute;:&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong &lt;b&gt;Solution Explorer&lt;/b&gt;, click chuột phải v&amp;agrave;o
&lt;b&gt;Reports&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Add-&amp;gt;New Item&lt;/b&gt;... &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Chọn &lt;b&gt;Report &lt;/b&gt;template. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Đặt t&amp;ecirc;n
cho report v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;OK&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Bước 4 - Chỉnh
sửa report &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Sau khi bạn đ&amp;atilde; th&amp;ecirc;m một b&amp;aacute;o c&amp;aacute;o report v&amp;agrave;o project, bạn c&amp;oacute; thể
chỉnh sửa n&amp;oacute; như sau: &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Nếu &lt;b&gt;Report Designer&lt;/b&gt; kh&amp;ocirc;ng tự động mở, h&amp;atilde;y mở
report để chỉnh sửa bằng c&amp;aacute;ch click đ&amp;ocirc;i v&amp;agrave;o n&amp;oacute; trong &lt;b&gt;Solution Explorer&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Click v&amp;agrave;o &lt;b&gt;Dataset&lt;/b&gt; trong danh s&amp;aacute;ch thả xuống v&amp;agrave;
sau đ&amp;oacute; chọn &lt;b&gt;&amp;lt;New Dataset...&amp;gt; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Đặt t&amp;ecirc;n
cho dataset, th&amp;iacute; dụ &lt;b&gt;TestDataSet. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Chọn &lt;b&gt;TFSOlapReportDS (shared). &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Click &lt;b&gt;OK&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Click the &lt;b&gt;... &lt;/b&gt;button kế b&amp;ecirc;n &lt;b&gt;Build &lt;/b&gt;(b&amp;ecirc;n dưới danh s&amp;aacute;ch thả xuống Dataset) v&amp;agrave; sau đ&amp;oacute; chọn &lt;b&gt;Team System&lt;/b&gt;.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;B&amp;acirc;y giờ bạn c&amp;oacute; thể chỉnh sửa b&amp;aacute;o c&amp;aacute;o report bằng c&amp;aacute;ch k&amp;eacute;o c&amp;aacute;c
k&amp;iacute;ch thước từ c&amp;acirc;y &lt;b&gt;Dataset&lt;/b&gt; tree v&amp;agrave;o bảng
&lt;b&gt;Query Pane&lt;/b&gt; v&amp;agrave; bảng &lt;b&gt;Filter Pane&lt;/b&gt;. Bạn c&amp;oacute; thể chỉnh sửa c&amp;aacute;c
layout của report bằng c&amp;aacute;ch click v&amp;agrave;o thẻ &lt;b&gt;Layout&lt;/b&gt;
tab. Bạn c&amp;oacute; thể xem trước report của bạn bằng c&amp;aacute;ch click v&amp;agrave;o thẻ &lt;b&gt;Preview&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Bước 5 -
Triển khai c&amp;aacute;c report đến Team Foundation Server của bạn&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Sau khi bạn đ&amp;atilde; chỉnh sửa report, bạn c&amp;oacute; thể triển khai n&amp;oacute; đến
team project&amp;#39;s reporting portal của bạn bằng c&amp;aacute;ch thực hiện theo c&amp;aacute;c bước sau:&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong &lt;b&gt;Solution Explorer&lt;/b&gt;, click tr&amp;ecirc;n report
project v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Properties&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; H&amp;atilde;y chắc
l&amp;agrave; &lt;b&gt;OverwriteDataSources&lt;/b&gt; được g&amp;aacute;n l&amp;agrave; &lt;b&gt;false&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; H&amp;atilde;y chỉnh
sửa &lt;b&gt;TargetDataSourceFolder&lt;/b&gt; để &amp;aacute;nh xạ
t&amp;ecirc;n dự &amp;aacute;n nh&amp;oacute;m của bạn; th&amp;iacute; dụ: &lt;/p&gt;
&lt;p&gt;&lt;b&gt;TargetDataSourceFolder
= TestProject&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Chỉnh sửa &lt;b&gt;TargetReportFolder&lt;/b&gt; để &amp;aacute;nh xạ t&amp;ecirc;n dự &amp;aacute;n
nh&amp;oacute;m của bạn; th&amp;iacute; dụ: &lt;/p&gt;
&lt;p&gt;&lt;b&gt;TargetDataSourceFolder
= TestProject&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Chỉnh sửa &lt;b&gt;TargetDataSourceFolder&lt;/b&gt; đến &lt;b&gt;http://&amp;lt;data-tier
servername&amp;gt;/reportserver&lt;/b&gt;. Th&amp;iacute; dụ: &lt;b&gt;TargetDataSourceFolder
= http://tfsrtm/reportserver&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Click &lt;b&gt;OK&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; Trong &lt;b&gt;Solution Explorer&lt;/b&gt;, click chuột phải l&amp;ecirc;n
tập tin &lt;b&gt;rdl&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Deploy&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;8.&amp;nbsp; Xem phần &lt;b&gt;Output Pane&lt;/b&gt; để x&amp;aacute;c nhận ho&amp;agrave;n th&amp;agrave;nh
th&amp;agrave;nh c&amp;ocirc;ng.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Bước 6 - Kiểm
thử report&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Sau khi bạn đ&amp;atilde; xuất bản b&amp;aacute;o c&amp;aacute;o của bạn đến m&amp;aacute;y chủ team
project&amp;#39;s report server bạn c&amp;oacute; thể kiểm thử n&amp;oacute; để chắc l&amp;agrave; n&amp;oacute; được triển khai một
c&amp;aacute;ch th&amp;agrave;nh c&amp;ocirc;ng: &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong &lt;b&gt;Team Explorer&lt;/b&gt; h&amp;atilde;y mở rộng team project
node của bạn, click phải l&amp;ecirc;n &lt;b&gt;Reports&lt;/b&gt;
v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Show Report Site&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Trong
trang report site, h&amp;atilde;y chọn report m&amp;agrave; bạn vừa tạo. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; X&amp;aacute;c nhận
l&amp;agrave; report giống như bạn mong muốn. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;M&amp;atilde; nguồn bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Về c&amp;aacute;c hướng dẫn giải
th&amp;iacute;ch th&amp;ecirc;m l&amp;agrave;m c&amp;aacute;ch n&amp;agrave;o để l&amp;agrave;m việc với c&amp;aacute;c reporting projects, h&amp;atilde;y xem
&amp;quot;Reporting Services Tutorials&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms170246.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms170246.aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để đọc c&amp;aacute;c chủ đề
tr&amp;ecirc;n Microsoft MSDN&amp;reg; chỉnh sửa c&amp;aacute;c
report, h&amp;atilde;y xem &amp;quot;How to: Edit Reports in Report Designer&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms244655%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms244655(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về c&amp;aacute;c quy tắc bảo mật tr&amp;ecirc;n tầng data, h&amp;atilde;y xem &amp;quot;Securing Access Through
Analysis Services&amp;quot; tại đ&amp;acirc;y &lt;a href="http://msdn2.microsoft.com/en-us/library/ms174839.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms174839.aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về c&amp;aacute;c quy tắc bảo mật tr&amp;ecirc;n tầng application, h&amp;atilde;y xem &amp;quot;Securing Reporting
Services&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms157198.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms157198.aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Làm thế nào: Tự động chạy Code Analysis với Team Build trong Visual Studio Team Foundation Server</title><link>http://msdnvietnam.net/wikis/tfs/l-224-m-th-n-224-o-t-ng-ch-y-code-analysis-v-i-team-build-trong-visual-studio-team-foundation-server/revision/0.aspx</link><pubDate>Sun, 21 Feb 2010 20:17:48 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:146</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to TFS - Team Foundation System by Nguyễn Thị Như Quỳnh on 2/22/2010 4:17:48 AM&lt;br /&gt;
&lt;p&gt;&lt;b&gt;Được &amp;aacute;p dụng
cho&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Microsoft&amp;reg; Visual
Studio&amp;reg; 2005 Team Foundation Server (TFS) &lt;/li&gt;
&lt;li&gt; Microsoft Visual
Studio Team System &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;T&amp;oacute;m tắt&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Đề t&amp;agrave;i L&amp;agrave;m thế n&amp;agrave;o n&amp;agrave;y sẽ dẫn bạn đi qua qu&amp;aacute; tr&amp;igrave;nh cấu h&amp;igrave;nh Team
Build gồm c&amp;oacute; ph&amp;acirc;n t&amp;iacute;ch m&amp;atilde; code analysis như l&amp;agrave; m&amp;ocirc;t bước của qu&amp;aacute; tr&amp;igrave;nh build. N&amp;oacute;
sẽ chạy tự động ph&amp;acirc;n t&amp;iacute;ch m&amp;atilde; code analysis như một phần của qu&amp;aacute; tr&amp;igrave;nh team
build v&amp;agrave; sẽ b&amp;aacute;o c&amp;aacute;o kết quả của sự ph&amp;acirc;n t&amp;iacute;ch trong c&amp;aacute;c kết quả của quy tr&amp;igrave;nh
build.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nội dung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Chủ đề&lt;/li&gt;
&lt;li&gt; Xem trước &lt;/li&gt;
&lt;li&gt; T&amp;oacute;m tắt c&amp;aacute;c bước &lt;/li&gt;
&lt;li&gt; Trước khi bạn bắt đầu
&lt;/li&gt;
&lt;li&gt; Bước 1 - Kiểm thử
Build &lt;/li&gt;
&lt;li&gt; Bước 2 - K&amp;iacute;ch hoạt
chế độ Ph&amp;acirc;n T&amp;iacute;ch M&amp;atilde; Code Analysis cho qu&amp;aacute; tr&amp;igrave;nh Build &lt;/li&gt;
&lt;li&gt; Bước 3 - Kiểm thử sự
Ph&amp;acirc;n T&amp;iacute;ch M&amp;atilde; Code Analysis &lt;/li&gt;
&lt;li&gt; M&amp;atilde; nguồn bổ sung &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Chủ đề&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Chạy ph&amp;acirc;n t&amp;iacute;ch m&amp;atilde;
như một phần của qu&amp;aacute; tr&amp;igrave;nh build để xem
x&amp;eacute;t chất lượng m&amp;atilde;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Xem trước&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Visual Studio Team System Team Build cho ph&amp;eacute;p bạn x&amp;aacute;c định
c&amp;aacute;c loại build cho dự &amp;aacute;n của bạn để cho ph&amp;eacute;p một build server bi&amp;ecirc;n dịch ứng dụng
của bạn v&amp;agrave; thực hiện mạng chia sẻ cho n&amp;oacute;. Bạn c&amp;oacute; thể k&amp;iacute;ch hoạt chế độ ph&amp;acirc;n t&amp;iacute;ch
m&amp;atilde; cho team build để mỗi build được thực hiện ph&amp;acirc;n t&amp;iacute;ch m&amp;atilde; v&amp;agrave; b&amp;aacute;o c&amp;aacute;o kết quả một
c&amp;aacute;ch tự động c&amp;aacute;c &amp;nbsp;đến c&amp;aacute;c trang b&amp;aacute;o c&amp;aacute;o kết
quả build. Đề t&amp;agrave;i L&amp;agrave;m thế n&amp;agrave;o n&amp;agrave;y sẽ dẫn bạn đi qua quy tr&amp;igrave;nh cấu h&amp;igrave;nh Team
Build để ph&amp;acirc;n t&amp;iacute;ch m&amp;atilde; như l&amp;agrave; một bước để build.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;oacute;m tắt c&amp;aacute;c
bước&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Bước 1 - Kiểm thử
Build &lt;/li&gt;
&lt;li&gt; Bước 2 - K&amp;iacute;ch hoạt
chế độ Ph&amp;acirc;n T&amp;iacute;ch M&amp;atilde; Code Analysis cho qu&amp;aacute; tr&amp;igrave;nh Build &lt;/li&gt;
&lt;li&gt; Bước 3 - Kiểm thử sự
Ph&amp;acirc;n T&amp;iacute;ch M&amp;atilde; Code Analysis &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Trước khi bắt
đầu&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Trước khi bạn c&amp;oacute; thể k&amp;iacute;ch hoạt chế độ ph&amp;acirc;n t&amp;iacute;ch m&amp;atilde; cho Team
Build, bạn phải đảm bảo l&amp;agrave; bạn c&amp;oacute; c&amp;aacute;c y&amp;ecirc;u cầu cần thiết sau:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;bull;&amp;nbsp; User ID Team Foundation của bạn phải được cho
ph&amp;eacute;p để quản l&amp;yacute; một build. H&amp;atilde;y y&amp;ecirc;u cầu nh&amp;agrave; quản trị của bạn nếu bạn đảm bảo l&amp;agrave;
c&amp;aacute;c quyền được cho ph&amp;eacute;p của bạn.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Một team build phải
c&amp;oacute; sẵn trong dự &amp;aacute;n nh&amp;oacute;m của bạn. Bạn cũng c&amp;oacute; thể kiểm tra điều n&amp;agrave;y bằng c&amp;aacute;ch
nh&amp;igrave;n v&amp;agrave;o Team Build trong cửa sổ Visual Studio Team Explorer. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Bước 1 - Kiểm
thử Build &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Bắt đầu bằng kiểm thử team build của bạn để đảm bảo l&amp;agrave; khong
c&amp;oacute; bất cứ vấn đề g&amp;igrave; trước khi k&amp;iacute;ch hoạt chế độ Ph&amp;acirc;n T&amp;iacute;ch m&amp;atilde;. Bạn c&amp;oacute; thể l&amp;agrave;m điều
n&amp;agrave;y bằng c&amp;aacute;ch theo c&amp;aacute;c bước sau:&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong Visual
Studio, h&amp;atilde;y mở Team Explorer trong Visual Studio&amp;nbsp; &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Mở rộng node cho
team project của bạn&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Mở rộng Team Builds
node &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Click chuột l&amp;ecirc;n một
team build đ&amp;atilde; c&amp;oacute; v&amp;agrave; sau đ&amp;oacute; chọn Build Team Project &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; H&amp;atilde;y đảm bảo l&amp;agrave; quy
tr&amp;igrave;nh build được thực hiện th&amp;agrave;nh c&amp;ocirc;ng. Nếu quy tr&amp;igrave;nh build bị thất bại hay
kh&amp;ocirc;ng thể ho&amp;agrave;n th&amp;agrave;nh, h&amp;atilde;y sửa c&amp;aacute;c lỗi trước khi chuyển sang bước kế tiếp.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Bước 2 -
K&amp;iacute;ch hoạt chế độ Ph&amp;acirc;n T&amp;iacute;ch M&amp;atilde; Code Analysis cho qu&amp;aacute; tr&amp;igrave;nh Build &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Một khi bạn đả x&amp;aacute;c nhận l&amp;agrave; quy tr&amp;igrave;nh build đang l&amp;agrave;m việc tốt,
bạn c&amp;oacute; thể k&amp;iacute;ch hoạt chế độ ph&amp;acirc;n t&amp;iacute;ch code. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Sử dụng c&amp;aacute;c
bước sau để k&amp;iacute;ch hoạt chế độ ph&amp;acirc;n t&amp;iacute;ch m&amp;atilde;:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; H&amp;atilde;y mở &lt;b&gt;Source Control Explorer. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Trong &lt;b&gt;Source Control Explorer&lt;/b&gt;, h&amp;atilde;y mở thư mục
dự &amp;aacute;n nh&amp;oacute;m của bạn.&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Mở rộng thư mục &lt;b&gt;TeamBuildTypes&lt;/b&gt; folder. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Chọn thư mục team
build m&amp;agrave; bạn muốn k&amp;iacute;ch hoạt chế độ ph&amp;acirc;n t&amp;iacute;ch m&amp;atilde;. &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Check out tập tin &lt;b&gt;TFSBuild.proj&lt;/b&gt; từ source control. Bạn c&amp;oacute;
thể cần thực hiện một hoạt động &lt;b&gt;Get
Latest Version&lt;/b&gt; tr&amp;ecirc;n thư mục trước.&lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Trong &lt;b&gt;Source Control Explorer&lt;/b&gt;, click đ&amp;ocirc;i v&amp;agrave;o
tập tin &lt;b&gt;TFSBuild.Proj&lt;/b&gt; để mở n&amp;oacute; ra.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; Nếu bạn muốn tất cả
c&amp;aacute;c dự &amp;aacute;n đều chạy ph&amp;acirc;n t&amp;iacute;ch m&amp;atilde;, &amp;nbsp;bất kể
c&amp;aacute;c c&amp;agrave;i đặt của dự &amp;aacute;n, h&amp;atilde;y thay đổi gi&amp;aacute; trị thẻ &lt;b&gt;&amp;lt;RunCodeAnalysis&amp;gt; &lt;/b&gt;th&amp;agrave;nh &lt;b&gt;Always&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;8.&amp;nbsp; Nếu bạn muốn chạy
ph&amp;acirc;n t&amp;iacute;ch m&amp;atilde; tr&amp;ecirc;n từng dự &amp;aacute;n dựa tr&amp;ecirc;n c&amp;aacute;c c&amp;agrave;i đặt của dự &amp;aacute;n, h&amp;atilde;y thay đổi gi&amp;aacute;
trị thẻ &lt;b&gt;&amp;lt;RunCodeAnalysis&amp;gt;&lt;/b&gt; th&amp;agrave;nh
&lt;b&gt;Default. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;9.&amp;nbsp; Nếu bạn đang sử dụng
c&amp;aacute;c thiết lập của từng dự &amp;aacute;n một v&amp;agrave; muốn k&amp;iacute;ch hoạt ph&amp;acirc;n t&amp;iacute;ch m&amp;atilde; cho một dự &amp;aacute;n:&lt;/p&gt;
&lt;p&gt;a.&amp;nbsp;
Mở solution trong &lt;b&gt;Visual Studio&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;b.&amp;nbsp;
Trong &lt;b&gt;Solution Explorer&lt;/b&gt;, click
chuột phải l&amp;ecirc;n project. &lt;/p&gt;
&lt;p&gt;c.&amp;nbsp;
H&amp;atilde;y chọn &lt;b&gt;Properties&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;d.&amp;nbsp;
Click tr&amp;ecirc;n &lt;b&gt;Code Analysis&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;e.&amp;nbsp;
H&amp;atilde;y chọn &lt;b&gt;Enable Code Analysis&lt;/b&gt;
check box. &lt;/p&gt;
&lt;p&gt;f.&amp;nbsp;
Check out tập tin &lt;b&gt;.csproj &lt;/b&gt;cho
project từ source control. &lt;/p&gt;
&lt;p&gt;g.&amp;nbsp;
Lưu lại tập tin bằng c&amp;aacute;ch click v&amp;agrave;o biểu tượng &lt;b&gt;Save&lt;/b&gt; tr&amp;ecirc;n thanh c&amp;ocirc;ng cụ toolbar trong khi cửa sổ thuộc t&amp;iacute;nh xuất hiện.&lt;/p&gt;
&lt;p&gt;h.&amp;nbsp;
Check tập tin &lt;b&gt;.csproj&lt;/b&gt; của project
lại trong source control. &lt;/p&gt;
&lt;p&gt;10. Lưu tập tin &lt;b&gt;TFSBuild.proj&lt;/b&gt;
v&amp;agrave; check n&amp;oacute; trở lại trong source control. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Bước 3 - Kiểm
thử sự Ph&amp;acirc;n T&amp;iacute;ch M&amp;atilde; Code Analysis &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Mỗi lần bạn k&amp;iacute;ch hoạt ph&amp;acirc;n t&amp;iacute;ch m&amp;atilde; cho một team build, bạn c&amp;oacute;
thể kiểm thử để chắc l&amp;agrave; n&amp;oacute; l&amp;agrave;m việc ổn thỏa trơn tru. Sử dụng c&amp;aacute;c bước sau để
kiểm thử c&amp;aacute;c Ph&amp;acirc;n t&amp;iacute;ch m&amp;atilde; cho quy tr&amp;igrave;nh build của bạn:&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong &lt;b&gt;Team Explorer&lt;/b&gt;, click chuột phải tr&amp;ecirc;n loại
build type v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Build Team
Project&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Khi qu&amp;aacute; tr&amp;igrave;nh build
ho&amp;agrave;n th&amp;agrave;nh, h&amp;atilde;y click v&amp;agrave;o đường link đến tập tin build log &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Bạn n&amp;ecirc;n thấy một số
c&amp;aacute;c cảnh b&amp;aacute;o về Ph&amp;acirc;n t&amp;iacute;ch m&amp;atilde; ở cuối tập tin build log. Cảnh b&amp;aacute;o c&amp;aacute;c IDs sẽ bắt
đầu với &amp;quot;CA&amp;quot;, như l&amp;agrave; v&amp;iacute; dụ sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
MSBUILD : warning : CA2209 : Microsoft.Usage : No valid permission
requests were found for assembly &amp;#39;HelloWorldTest&amp;#39;. You should always specify
the minimum security permissions using SecurityAction.RequestMinimum. &lt;/li&gt;
&lt;li&gt;
MSBUILD : warning : CA2210 : Microsoft.Design : Sign &amp;#39;HelloWorldTest&amp;#39;
with a strong name key. &lt;/li&gt;
&lt;li&gt;
MSBUILD : warning : CA1014 : Microsoft.Design : &amp;#39;HelloWorldTest&amp;#39; should
be marked with CLSCompliantAttribute and its value should be true. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;M&amp;atilde; nguồn bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về c&amp;aacute;c c&amp;ocirc;ng cụ ph&amp;acirc;n t&amp;iacute;ch m&amp;atilde;, h&amp;atilde;y xem &amp;quot;Guidelines for Using Code Analysis Tools&amp;quot;
tại đ&amp;acirc;y &lt;a href="http://msdn2.microsoft.com/en-us/library/ms182023%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms182023(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;bull;&amp;nbsp; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;aacute;c team builds, h&amp;atilde;y
xem &amp;quot;Overview of Team Foundation Build&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181710%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms181710(VS.80).aspx&lt;/a&gt;&lt;/p&gt;
&amp;nbsp;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Làm thế nào để:  Thêm một Lập Trình Viên mới vào Project của bạn trong Visual Studio 2005 Team Foundation Server </title><link>http://msdnvietnam.net/wikis/tfs/l-224-m-th-n-224-o-th-234-m-m-t-l-p-tr-236-nh-vi-234-n-m-i-v-224-o-project-c-a-b-n-trong-visual-studio-2005-team-foundation-server/revision/0.aspx</link><pubDate>Sun, 21 Feb 2010 20:16:48 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:145</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to TFS - Team Foundation System by Nguyễn Thị Như Quỳnh on 2/22/2010 4:16:48 AM&lt;br /&gt;
&lt;p&gt;&lt;b&gt;Được &amp;aacute;p dụng
cho&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Microsoft&amp;reg;
Visual Studio&amp;reg; 2005 Team Foundation Server (TFS) &lt;/li&gt;
&lt;li&gt; Microsoft
Visual Studio Team System &lt;/li&gt;
&lt;li&gt; Microsoft
SQL Server&lt;sup&gt;TM&lt;/sup&gt; Reporting Services &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;T&amp;oacute;m tắt&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Đề t&amp;agrave;i &lt;b&gt;L&amp;agrave;m thế n&amp;agrave;o&lt;/b&gt;
n&amp;agrave;y sẽ dẫn bạn đi qua quy tr&amp;igrave;nh của việc th&amp;ecirc;m một nh&amp;agrave; ph&amp;aacute;t triển mới v&amp;agrave;o dự &amp;aacute;n
nh&amp;oacute;m của bạn ở trong Team Foundation Server.&amp;nbsp;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nội dung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Chủ đề&lt;/li&gt;
&lt;li&gt; Xem trước &lt;/li&gt;
&lt;li&gt; Tổng kết c&amp;aacute;c bước&lt;/li&gt;
&lt;li&gt; Bước 1 - Cấp quyền
truy cập đến Team Project &lt;/li&gt;
&lt;li&gt; Bước 2 - Cấp quyền
truy cập đến Microsoft Office SharePoint&amp;reg; project site &lt;/li&gt;
&lt;li&gt; Bước 3 - Cấp quyền
truy cập đến SQL Server Reporting Services &lt;/li&gt;
&lt;li&gt; M&amp;atilde; nguồn bổ sung &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Chủ đề&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Cho ph&amp;eacute;p một nh&amp;agrave;
ph&amp;aacute;t triển truy cập đến dự &amp;aacute;n nh&amp;oacute;m&lt;/li&gt;
&lt;li&gt; Cấp cho một nh&amp;agrave; ph&amp;aacute;t
triển quyền truy cập Read v&amp;agrave; Contributor đến SharePoint &lt;/li&gt;
&lt;li&gt; Cho ph&amp;eacute;p một nh&amp;agrave;
ph&amp;aacute;t triển xem v&amp;agrave; m&amp;ocirc; tả c&amp;aacute;c b&amp;aacute;o c&amp;aacute;o &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Xem trước&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Bất cứ khi n&amp;agrave;o bạn th&amp;ecirc;m một nh&amp;agrave; ph&amp;aacute;t triển mới v&amp;agrave;o một dự &amp;aacute;n,
bạn cần cấp cho nh&amp;agrave; ph&amp;aacute;t triển đ&amp;oacute; c&amp;aacute;c quyền ph&amp;ugrave; hợp để truy cập v&amp;agrave;o dự &amp;aacute;n nh&amp;oacute;m
team foundation project v&amp;agrave; c&amp;aacute;c trang dự &amp;aacute;n SharePoint li&amp;ecirc;n quan đến n&amp;oacute;. T&amp;agrave;i khoản
của nh&amp;agrave; ph&amp;aacute;t triển mới cũng phải c&amp;oacute; đủ quyền với c&amp;aacute;c dịch vụ SQL Server
Reporting Services để c&amp;oacute; thể xem c&amp;aacute;c b&amp;aacute;o c&amp;aacute;o như l&amp;agrave; những tr&amp;igrave;nh b&amp;agrave;y của team
site portal. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Tổng kết
c&amp;aacute;c bước&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Bước 1 - Cấp quyền
truy cập đến Team Project &lt;/li&gt;
&lt;li&gt; Bước 2 - Cấp quyền
truy cập đến Microsoft Office SharePoint&amp;reg; project site &lt;/li&gt;
&lt;li&gt; Bước 3 - Cấp quyền
truy cập đến SQL Server Reporting Services &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Bước 1 - Cấp
quyền truy cập đến Team Project &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Trong bước n&amp;agrave;y bạn cấp cho c&amp;aacute;c th&amp;agrave;nh vi&amp;ecirc;n mới của nh&amp;oacute;m quyền
truy cập đến Team Foundation Server. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;Để cấp quyền truy cập
đến dự &amp;aacute;n nh&amp;oacute;m:&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; H&amp;atilde;y đăng nhập v&amp;agrave;o &lt;b&gt;Visual Studio&lt;/b&gt; với một t&amp;agrave;i khoản l&amp;agrave; một
th&amp;agrave;nh vi&amp;ecirc;n của nh&amp;oacute;m &lt;b&gt;Team Foundation
Administrators application group&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Th&amp;ecirc;m dự &amp;aacute;n được y&amp;ecirc;u
cầu v&amp;agrave;o &lt;b&gt;Team Explorer&lt;/b&gt; (nếu n&amp;oacute; c&amp;oacute; sẵn
trong danh s&amp;aacute;ch) &lt;/p&gt;
&lt;p&gt;3. Trong &lt;b&gt;Team Explorer&lt;/b&gt;
h&amp;atilde;y click chuột phải v&amp;agrave;o dự &amp;aacute;n nh&amp;oacute;m, h&amp;atilde;y trỏ đến &lt;b&gt;Team Project Settings&lt;/b&gt; v&amp;agrave; click &lt;b&gt;Group
Membership&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;4. Chọn &lt;b&gt;Project\Contributors&lt;/b&gt;
v&amp;agrave; click &lt;b&gt;Properties&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; th&amp;ecirc;m
t&amp;agrave;i khoản của lập tr&amp;igrave;nh vi&amp;ecirc;n mới v&amp;agrave;o group n&amp;agrave;y.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Lưu &amp;yacute; l&amp;agrave; c&amp;aacute;c th&amp;agrave;nh vi&amp;ecirc;n trong nh&amp;oacute;m &lt;b&gt;Contributors&lt;/b&gt; group được cấp tập c&amp;aacute;c quyền cơ bản m&amp;agrave; một lập tr&amp;igrave;nh
vi&amp;ecirc;n y&amp;ecirc;u c&amp;agrave;u, gồm c&amp;oacute; khả năng th&amp;ecirc;m, sửa v&amp;agrave; x&amp;oacute;a c&amp;aacute;c mục trong dự &amp;aacute;n nh&amp;oacute;m v&amp;agrave; thực
hiện c&amp;aacute;c build. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Bước 2 - Cấp
quyền truy cập đến Microsoft Office SharePoint&amp;reg; project site &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Trong bước n&amp;agrave;y bạn cấp quyền cho c&amp;aacute;c th&amp;agrave;nh vi&amp;ecirc;n mới của nh&amp;oacute;m
truy cập đến trang SharePoint project site.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Đẻ cấp quyền
truy cập đến trang SharePoint project site: &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Truy cập đến trang
dự &amp;aacute;n nh&amp;oacute;m với một t&amp;agrave;i khoản account l&amp;agrave; th&amp;agrave;nh vi&amp;ecirc;n của nh&amp;oacute;m SharePoint
Administrator site group.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Lưu &amp;yacute; l&amp;agrave; trang dự &amp;aacute;n n&amp;agrave;y cho một dự &amp;aacute;n t&amp;ecirc;n l&amp;agrave; &lt;b&gt;YourProject&lt;/b&gt; được đặt mặc định tại đ&amp;acirc;y &lt;a href="http://server/sites/YourProject/default.aspx"&gt;http://server/sites/YourProject/default.aspx&lt;/a&gt;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;2. Click &lt;b&gt;Site Settings&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;3. B&amp;ecirc;n duối ti&amp;ecirc;u đề &lt;b&gt;Administration
&lt;/b&gt;, h&amp;atilde;y click &lt;b&gt;Manage Users&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;4. Click &lt;b&gt;Add Users&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Điền t&amp;ecirc;n t&amp;agrave;i khoản
của t&amp;agrave;i khoản của lập tr&amp;igrave;nh vi&amp;ecirc;n mới trong form &lt;b&gt;domain\useraccount&lt;/b&gt; của developer&amp;#39;s account, chọn &lt;b&gt;Contributor &lt;/b&gt;&amp;nbsp;v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Next&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Điền địa chỉ&amp;nbsp; e-mail của lập tr&amp;igrave;nh vi&amp;ecirc;n mới v&amp;agrave;o trường
address field, v&amp;agrave; t&amp;ugrave;y chọn một loại tin nhắn để ch&amp;agrave;o mừng khi truy cập v&amp;agrave;o
trang web.&lt;/p&gt;
&lt;p&gt;7. Click &lt;b&gt;Finish&lt;/b&gt;.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Lưu &amp;yacute; l&amp;agrave; th&amp;agrave;nh vi&amp;ecirc;n đ&amp;oacute; thuộc về nh&amp;oacute;m &lt;b&gt;Contributors &lt;/b&gt;group cho ph&amp;eacute;p c&amp;aacute;c lập tr&amp;igrave;nh vi&amp;ecirc;n xem v&amp;agrave; th&amp;ecirc;m nội dung
v&amp;agrave;o thư viện v&amp;agrave; danh s&amp;aacute;ch c&amp;aacute;c t&amp;agrave;i liệu đ&amp;atilde; c&amp;oacute;. Th&amp;agrave;nh vi&amp;ecirc;n trong &lt;b&gt;Reader&lt;/b&gt; group, được cấp quyền &lt;b&gt;read only &lt;/b&gt;khi truy cập v&amp;agrave;o trang
web,&amp;nbsp; c&amp;oacute; khả năng phụ thuộc nhiều v&amp;agrave;o nhu
cầu của lập tr&amp;igrave;nh vi&amp;ecirc;n mới. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Bước 3 - Cấp
quyền truy cập đến SQL Server Reporting Services &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Trong bước n&amp;agrave;y bạn cấp quyền truy cập cho th&amp;agrave;nh vi&amp;ecirc;n mới của
nh&amp;oacute;m đến SQL Report Services.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để cấp quyền
truy cập đến SQL Server Reporting Services &lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; H&amp;atilde;y đăng nhập v&amp;agrave;o &lt;b&gt;SQL Server Reporting Services
administration Web site &lt;/b&gt;tại đ&amp;acirc;y &lt;a href="http://server/reports"&gt;http://server/reports&lt;/a&gt; &amp;nbsp;bằng c&amp;aacute;ch sử dụng một t&amp;agrave;i khoản administrator
account. . &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Click v&amp;agrave;o t&amp;ecirc;n dự &amp;aacute;n
nh&amp;oacute;m của bạn. &lt;/p&gt;
&lt;p&gt;3. Click v&amp;agrave;o thẻ &lt;b&gt;Properties&lt;/b&gt;
tab. &lt;/p&gt;
&lt;p&gt;4. Click v&amp;agrave;o thẻ &lt;b&gt;Security&lt;/b&gt;
tab. &lt;/p&gt;
&lt;p&gt;5. Click &lt;b&gt;New Role
Assignment&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Điền t&amp;ecirc;n t&amp;agrave;i khoản &amp;nbsp;Microsoft Windows&amp;reg; của lập tr&amp;igrave;nh vi&amp;ecirc;n mới, chọn
&lt;b&gt;Browser&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;OK&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Lưu &amp;yacute; l&amp;agrave; th&amp;agrave;nh vi&amp;ecirc;n trong nh&amp;oacute;m &lt;b&gt;Browser&lt;/b&gt; group cho ph&amp;eacute;p c&amp;aacute;c lập tr&amp;igrave;nh vi&amp;ecirc;n xem v&amp;agrave; m&amp;ocirc; tả c&amp;aacute;c b&amp;aacute;o c&amp;aacute;o &lt;/p&gt;
&lt;p&gt;&lt;b&gt;M&amp;atilde; nguồn bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; một sự giải
th&amp;iacute;ch về l&amp;agrave;m thế n&amp;agrave;o để thiết lập c&amp;aacute;c quyền permission trong SQL Server
Reporting Services, h&amp;atilde;y xem &amp;quot;Setting Permissions in Reporting Services&amp;quot; tại đ&amp;acirc;y
&lt;a href="http://msdn2.microsoft.com/en-us/library/aa337491.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa337491.aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về c&amp;aacute;c quy tắc bảo mật security roles trong tầng application, h&amp;atilde;y xem &amp;quot;Securing
Reporting Services&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms157198.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms157198.aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để xem t&amp;agrave;i liệu hướng
dẫn SharePoint Administrators Guide to &amp;quot;Managing Site and Group Permissions&amp;quot;, h&amp;atilde;y
xem &lt;a href="http://www.microsoft.com/resources/documentation/wss/2/all/adminguide/en-us/stsf03.mspx?mfr=true"&gt;http://www.microsoft.com/resources/documentation/wss/2/all/adminguide/en-us/stsf03.mspx?mfr=true&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về quản l&amp;yacute; c&amp;aacute;c quyền permissions trong TFS h&amp;atilde;y xem &amp;quot;Managing Permissions&amp;quot; tại
đ&amp;acirc;y &lt;a href="http://msdn2.microsoft.com/en-us/library/ms253094%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms253094(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Câu hỏi và Trả lời:  Team Foundation Server Source Control and Versioning </title><link>http://msdnvietnam.net/wikis/tfs/c-226-u-h-i-v-224-tr-l-i-team-foundation-server-source-control-and-versioning/revision/0.aspx</link><pubDate>Sun, 21 Feb 2010 20:09:30 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:144</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to TFS - Team Foundation System by Nguyễn Thị Như Quỳnh on 2/22/2010 4:09:30 AM&lt;br /&gt;
&lt;p&gt;&lt;b&gt;Bao gồm c&amp;aacute;c phần&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Accessing Version Control &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; MSSCCI Provider l&amp;agrave; g&amp;igrave; v&amp;agrave; khi n&amp;agrave;o n&amp;oacute; được sử dụng?
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; C&amp;aacute;c IDE n&amp;agrave;o kh&amp;aacute;c hỗ trợ TFS? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; &lt;/i&gt;&lt;i&gt;Khi n&amp;agrave;o t&amp;ocirc;i n&amp;ecirc;n sử dụng c&amp;ocirc;ng cụ&lt;/i&gt;&lt;i&gt; Team Foundation Server Power Tool? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; C&amp;aacute;c version control thường được sử dụng để mở
rộng c&amp;aacute;c kịch bản l&amp;agrave; g&amp;igrave;?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; &lt;/i&gt;&lt;i&gt;L&amp;agrave;m việc với&lt;/i&gt;&lt;i&gt; version control &lt;/i&gt;&lt;i&gt;từ&lt;/i&gt;&lt;i&gt; command line&lt;/i&gt;&lt;i&gt; như thế n&amp;agrave;o&lt;/i&gt;&lt;i&gt;? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Administration &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để cấp quyền cho một tập tin
trong một thư mục c&amp;oacute; thừa kế c&amp;aacute;c quyền? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; T&amp;ocirc;i n&amp;ecirc;n l&amp;agrave;m g&amp;igrave; khi một lập tr&amp;igrave;nh vi&amp;ecirc;n rởi khỏi
dự &amp;aacute;n?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để quản l&amp;yacute; c&amp;aacute;c lập tr&amp;igrave;nh vi&amp;ecirc;n thực
tập v&amp;agrave; những người kh&amp;aacute;c m&amp;agrave; kh&amp;ocirc;ng tin tưởng để thực hiện c&amp;aacute;c check-ins? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; T&amp;ocirc;i n&amp;ecirc;n chỉnh sửa c&amp;aacute;c permission như thế n&amp;agrave;o
sau khi ứng dụng của t&amp;ocirc;i đ&amp;atilde; được trao đi? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Branch/Label/Merge &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Khi n&amp;agrave;o t&amp;ocirc;i n&amp;ecirc;n sử dụng c&amp;aacute;c labels? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; C&amp;aacute;c TFS label kh&amp;aacute;c với c&amp;aacute;c VSS label như thế
n&amp;agrave;o? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Branching l&amp;agrave; g&amp;igrave;? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Khi n&amp;agrave;o t&amp;ocirc;i n&amp;ecirc;n xem x&amp;eacute;t ph&amp;acirc;n nh&amp;aacute;nh branching?
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;iacute; do g&amp;igrave; để kh&amp;ocirc;ng thực hiện ph&amp;acirc;n nh&amp;aacute;nh
branch? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng ph&amp;acirc;n nh&amp;aacute;nh branching như thế n&amp;agrave;o để
ph&amp;aacute;t h&amp;agrave;nh ứng dụng của t&amp;ocirc;i?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng branching như thế n&amp;agrave;o để bảo tr&amp;igrave; ứng
dụng của t&amp;ocirc;i? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng branching như thế n&amp;agrave;o để giảm xung đột
giữa c&amp;aacute;c teams? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng branching như thế n&amp;agrave;o để giảm xung đột
giữa c&amp;aacute;c chức năng?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull; &amp;nbsp;Chứng minh c&amp;aacute;c b&amp;agrave;i tập về branching v&amp;agrave; merging
l&amp;agrave; g&amp;igrave;? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sự kh&amp;aacute;c nhau giữa branching v&amp;agrave; labeling l&amp;agrave; g&amp;igrave;?
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; M&amp;ocirc; h&amp;igrave;nh &amp;quot;path space&amp;quot; branching l&amp;agrave;
g&amp;igrave;? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; TFS promotion model l&amp;agrave;m việc như thế n&amp;agrave;o? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; T&amp;ocirc;i sẽ merge hai ph&amp;acirc;n nh&amp;aacute;nh như thế n&amp;agrave;o? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; &lt;/i&gt;&lt;i&gt;T&amp;ocirc;i c&amp;oacute; thể &lt;/i&gt;&lt;i&gt;merge &lt;/i&gt;&lt;i&gt;ngang qua c&amp;aacute;c &lt;/i&gt;&lt;i&gt;team project&lt;/i&gt;&lt;i&gt; kh&amp;ocirc;ng&lt;/i&gt;&lt;i&gt;? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; &lt;/i&gt;&lt;i&gt;Một&lt;/i&gt;&lt;i&gt; baseless merge&lt;/i&gt;&lt;i&gt; l&amp;agrave; g&amp;igrave;&lt;/i&gt;&lt;i&gt;? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; &lt;/i&gt;&lt;i&gt;C&lt;/i&gt;&lt;i&gt;ode promotion model&lt;/i&gt;&lt;i&gt; l&amp;agrave; g&amp;igrave;&lt;/i&gt;&lt;i&gt;? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; C&amp;aacute;c ph&amp;acirc;n nh&amp;aacute;nh logic v&amp;agrave; ph&amp;acirc;n nh&amp;aacute;nh vật l&amp;yacute;
kh&amp;aacute;c nhau như thế n&amp;agrave;o?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Nếu t&amp;ocirc;i sử dụng code promotion model, thường
th&amp;igrave; t&amp;ocirc;i phải merge như thế n&amp;agrave;o? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Check-ins and Check-in Policies &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; &lt;/i&gt;&lt;i&gt;Một&lt;/i&gt;&lt;i&gt; changeset&lt;/i&gt;&lt;i&gt; l&amp;agrave; g&amp;igrave;&lt;/i&gt;&lt;i&gt;?&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;nbsp;&amp;bull;&amp;nbsp; &lt;/i&gt;&lt;i&gt;Một&lt;/i&gt;&lt;i&gt; check-in policy&lt;/i&gt;&lt;i&gt; l&amp;agrave; g&amp;igrave;&lt;/i&gt;&lt;i&gt;? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; &lt;/i&gt;&lt;i&gt;Khi n&amp;agrave;o v&amp;agrave; t&amp;ocirc;i c&amp;oacute; thể &lt;/i&gt;&lt;i&gt;override &lt;/i&gt;&lt;i&gt;một&lt;/i&gt;&lt;i&gt; check-in policy&lt;/i&gt;&lt;i&gt; như thế n&amp;agrave;o&lt;/i&gt;&lt;i&gt;? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m c&amp;aacute;ch n&amp;agrave;o để thực thi một policy? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; &lt;/i&gt;&lt;i&gt;L&amp;agrave;m thế n&amp;agrave;o t&amp;ocirc;i sử dụng một hệ thống
kiểm tra c&amp;aacute;c check-in(&lt;/i&gt;&lt;i&gt;check-in
verification system&lt;/i&gt;&lt;i&gt;)&lt;/i&gt;&lt;i&gt;? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Nếu t&amp;ocirc;i chỉnh sửa t&amp;ecirc;n tập tin hay x&amp;oacute;a c&amp;aacute;c tập
tin tr&amp;ecirc;n ổ đĩa, c&amp;oacute; phải l&amp;agrave; version control sẽ bất đồng bộ kh&amp;ocirc;ng? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để&amp;nbsp; giải quyết c&amp;aacute;c xung đột một c&amp;aacute;ch tự động? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để giải quyết c&amp;aacute;c xung đột bằng tay?
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tr&amp;aacute;nh c&amp;aacute;c xung đột? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Checkout, Get, and Lock&amp;nbsp; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để t&amp;igrave;m ra lập tr&amp;igrave;nh vi&amp;ecirc;n cuối
c&amp;ugrave;ng chỉnh sửa một tập tin?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; C&amp;acirc;u lệnh &lt;b&gt;get&lt;/b&gt;
l&amp;agrave;m việc như thế n&amp;agrave;o? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; &lt;/i&gt;&lt;i&gt;Sự kh&amp;aacute;c nhau giữa c&amp;aacute;c&lt;/i&gt;&lt;i&gt; shared &lt;/i&gt;&lt;i&gt;checkout v&amp;agrave;&lt;/i&gt;&lt;i&gt; exclusive checkout? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Khi n&amp;agrave;o t&amp;ocirc;i n&amp;ecirc;n sử dụng lệnh &lt;b&gt;lock &lt;/b&gt;command? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Loại &lt;b&gt;lock
&lt;/b&gt;&amp;nbsp;n&amp;agrave;o được TFS hỗ trợ? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Distributed/Remote Development &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; &lt;/i&gt;&lt;i&gt;L&amp;agrave;m thế n&amp;agrave;o để&lt;/i&gt;&lt;i&gt; work offline? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tối ưu h&amp;oacute;a việc ph&amp;acirc;n chia ph&amp;aacute;t
triển đội ngũ?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; TFS Version Control proxy&lt;/i&gt;&lt;i&gt; l&amp;agrave; g&amp;igrave;&lt;/i&gt;&lt;i&gt;? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tối ưu h&amp;oacute;a năng suất của TFS
Version Control proxy? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Migration&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; TFS version control kh&amp;aacute;c với VSS như thế n&amp;agrave;o?
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; M&amp;ocirc; h&amp;igrave;nh &amp;nbsp;checkout model kh&amp;aacute;c với VSS như thế n&amp;agrave;o? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; T&amp;ocirc;i n&amp;ecirc;n di chuyển source từ &amp;nbsp;VSS đến TFS như thế n&amp;agrave;o? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; &lt;/i&gt;&lt;i&gt;T&amp;ocirc;i n&amp;ecirc;n di chuyển &lt;/i&gt;&lt;i&gt;source &lt;/i&gt;&lt;i&gt;từ &lt;/i&gt;&lt;i&gt;version-control
system&lt;/i&gt;&lt;i&gt; kh&amp;aacute;c như thế n&amp;agrave;o&lt;/i&gt;&lt;i&gt;? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Project/Workspace Management &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; T&amp;ocirc;i n&amp;ecirc;n tổ chức c&amp;aacute;c team project của t&amp;ocirc;i như
thế n&amp;agrave;o? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; T&amp;ocirc;i n&amp;ecirc;n quản l&amp;yacute; c&amp;aacute;c phụ thuộc giữa c&amp;aacute;c project
như thế n&amp;agrave;o? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Workspace l&amp;agrave; g&amp;igrave;? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c workspace để c&amp;ocirc; lập c&amp;ocirc;ng việc của
một nh&amp;agrave; ph&amp;aacute;t triển như thế n&amp;agrave;o?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; C&amp;aacute;c kiểm chứng thực tiễn đối với workspace
mapping l&amp;agrave; g&amp;igrave;? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; C&amp;aacute;c kiểm chứng thực tiễn đối với quản l&amp;yacute; c&amp;aacute;c shared
components v&amp;agrave; code l&amp;agrave; g&amp;igrave;? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Khi n&amp;agrave;o t&amp;ocirc;i n&amp;ecirc;n tạo một team project mới so với
một ph&amp;acirc;n nh&amp;aacute;nh branch mới? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; T&amp;ocirc;i n&amp;ecirc;n quản l&amp;yacute; source code m&amp;agrave; được chia sẻ
tr&amp;ecirc;n nhiều project như thế n&amp;agrave;o? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; T&amp;ocirc;i n&amp;ecirc;n quản l&amp;yacute; c&amp;aacute;c tập tin binary m&amp;agrave; được
chia sẻ tr&amp;ecirc;n nhiều project như thế n&amp;agrave;o? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; &lt;/i&gt;&lt;i&gt;T&amp;ocirc;i n&amp;ecirc;n quản l&amp;yacute;&lt;/i&gt;&lt;i&gt; source tree&lt;/i&gt;&lt;i&gt; như thế n&amp;agrave;o&lt;/i&gt;&lt;i&gt;? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Shelving &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; &lt;/i&gt;&lt;i&gt;S&lt;/i&gt;&lt;i&gt;helving&lt;/i&gt;&lt;i&gt; l&amp;agrave; g&amp;igrave;&lt;/i&gt;&lt;i&gt;? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; &lt;/i&gt;&lt;i&gt;Một S&lt;/i&gt;&lt;i&gt;helveset&lt;/i&gt;&lt;i&gt; l&amp;agrave; g&amp;igrave;&lt;/i&gt;&lt;i&gt;? &lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; &lt;/i&gt;&lt;i&gt;Khi n&amp;agrave;o t&amp;ocirc;i thường sử dụng&lt;/i&gt;&lt;i&gt; shelving? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; T&amp;ocirc;i sẽ sử dụng shelving để back up c&amp;ocirc;ng việc
của t&amp;ocirc;i như thế n&amp;agrave;o? &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; &lt;/i&gt;&lt;i&gt;Tại sao t&amp;ocirc;i sẽ muốn&lt;/i&gt;&lt;i&gt; unshelve &lt;/i&gt;&lt;i&gt;một&lt;/i&gt;&lt;i&gt; shelveset?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Accessing
Version Control &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; MSSCCI Provider l&amp;agrave; g&amp;igrave; v&amp;agrave; khi n&amp;agrave;o n&amp;oacute; được sử dụng?
&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; C&amp;aacute;c IDE n&amp;agrave;o kh&amp;aacute;c hỗ trợ TFS? &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Khi n&amp;agrave;o t&amp;ocirc;i n&amp;ecirc;n sử dụng c&amp;ocirc;ng cụ Team
Foundation Server Power Tool? &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull; &amp;nbsp;Đ&amp;acirc;u L&amp;agrave; Những Kịch Bản Mở Rộng của c&amp;aacute;c Version
Control Phổ Biến/ Th&amp;ocirc;ng Thường? &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; &lt;/b&gt;&lt;b&gt;L&amp;agrave;m việc với&lt;/b&gt;&lt;b&gt; version control &lt;/b&gt;&lt;b&gt;từ&lt;/b&gt;&lt;b&gt; command line&lt;/b&gt;&lt;b&gt; như thế n&amp;agrave;o&lt;/b&gt;&lt;b&gt;? &lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;MSSCCI Provider L&amp;agrave; G&amp;igrave; V&amp;agrave; Khi N&amp;agrave;o N&amp;oacute; Được Sử Dụng?&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The Microsoft&amp;reg; Source Code Control Interface (MSSCCI)
provider được sử dụng để cung cấp một version
control t&amp;iacute;ch hợp user
experience với c&amp;aacute;c
sản phẩm kh&amp;ocirc;ng được hỗ trợ Microsoft
Visual Studio&amp;reg; Team Explorer. Th&amp;iacute; dụ, nếu bạn sử dụng Visual Studio 6.0, th&amp;igrave; bạn
c&amp;oacute; thể sử dụng MSSCCI client hay command line để tương t&amp;aacute;c với Microsoft Visual
Studio Team System (VSTS) Team Foundation Version Control.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;C&amp;aacute;c client sau c&amp;oacute; thể l&amp;agrave;m việc trực tiếp với Team Foundation
Version Control bằng c&amp;aacute;ch sử dụng MSSCCI provider: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Microsoft Visual Studio .NET 2003 &lt;/li&gt;
&lt;li&gt; Microsoft Visual C++&amp;reg; 6 Service Pack 6 (SP6) &lt;/li&gt;
&lt;li&gt; Microsoft Visual Basic&amp;reg; 6.0 SP6 &lt;/li&gt;
&lt;li&gt; Microsoft Visual FoxPro&amp;reg; 9.0 SP1 &lt;/li&gt;
&lt;li&gt; Microsoft Access 2003 SP2 &lt;/li&gt;
&lt;li&gt; Microsoft SQL Server&lt;sup&gt;TM&lt;/sup&gt; Management Studio &lt;/li&gt;
&lt;li&gt; Sparx Systems Enterprise Architect 6.1 &lt;/li&gt;
&lt;li&gt; Sybase PowerBuilder 105 &lt;/li&gt;
&lt;li&gt; Toad for SQL Server 2.0 &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;The MSSCCI Provider hoạt động kh&amp;aacute;c với Team Foundation Version Control trong Visual Studio 2005 trong c&amp;aacute;c phương thức sau: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Checkout cũng thực hiện một h&amp;agrave;nh động &lt;b&gt;GetLatest&lt;/b&gt;. &lt;/li&gt;
&lt;li&gt; Một check-in lock mở rộng được &amp;aacute;p dụng khi checkout. &lt;/li&gt;
&lt;li&gt; T&amp;ugrave;y chọn &lt;b&gt;Open from
Source Control&lt;/b&gt; v&amp;agrave; &lt;b&gt;Save to Source Control&lt;/b&gt; hoạt động tương tự Microsoft Visual SourceSafe&amp;reg;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;M&amp;atilde; nguồn bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để đọc th&amp;ecirc;m về MSSCCI tr&amp;ecirc;n Microsoft MSDN&amp;reg;, h&amp;atilde;y
xem &amp;quot;The Microsoft Source-Code Control Interface&amp;quot;tại &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcug98/html/_asug_the_microsoft_source_code_control_interface.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcug98/html/_asug_the_microsoft_source_code_control_interface.asp&lt;/a&gt; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để đọc th&amp;ecirc;m về MSSCCI Provider, h&amp;atilde;y xem
&amp;quot;Update on the TFS MSSCCI Provider&amp;quot; tại &lt;a href="http://blogs.msdn.com/bharry/archive/2006/03/24/559876.aspx"&gt;http://blogs.msdn.com/bharry/archive/2006/03/24/559876.aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; The MSSCCI add-in l&amp;agrave; một TFS Power Tool đ&amp;atilde; được
ph&amp;aacute;t triển nhưng kh&amp;ocirc;ng được hỗ trợ ch&amp;iacute;nh thức từ Microsoft. Để tải c&amp;ocirc;ng cụ về từ
MSDN, h&amp;atilde;y đến &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=87E1FFBD-A484-4C3A-8776-D560AB1E6198&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=87E1FFBD-A484-4C3A-8776-D560AB1E6198&amp;amp;displaylang=en&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;C&amp;aacute;c IDE n&amp;agrave;o kh&amp;aacute;c hỗ trợ TFS?&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Team Foundation Server c&amp;oacute; thể
được sử dụng cho bất k&amp;igrave; ấn bản n&amp;agrave;o của Visual Studio 2005 m&amp;agrave; c&amp;oacute; c&amp;agrave;i Team
Explorer . Bạn cũng c&amp;oacute; thể chạy Team Explorer c&amp;ugrave;ng&amp;nbsp; với bất k&amp;igrave; &amp;nbsp;non-Visual Studio 2005 integrated development
environment (IDE) để l&amp;agrave;m việc với c&amp;aacute;c team project v&amp;agrave; quản l&amp;yacute; c&amp;aacute;c work item.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;C&amp;aacute;c client sau c&amp;oacute; c&amp;aacute;c integration
solution được cung cấp bởi c&amp;aacute;c nh&amp;agrave; cung cấp kh&amp;aacute;c:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Eclipse &lt;/li&gt;
&lt;li&gt; Linux client &lt;/li&gt;
&lt;li&gt; Apple Macintosh client &lt;/li&gt;
&lt;li&gt; Hypertext Markup Language (HTML) Web client &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;Nếu bạn muốn truy cập Team Foundation Version
Control từ Eclipse IDE, Linux, hay Macintosh clients, h&amp;atilde;y c&amp;acirc;n nhắc việc c&amp;agrave;i đặt
Teamprise suite of client applications, c&amp;oacute; tại &lt;a href="http://www.teamprise.com/"&gt;http://www.teamprise.com/&lt;/a&gt; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Nếu bạn muốn chỉ l&amp;agrave; truy cập
read-only đến Team Foundation Version Control from the Web, h&amp;atilde;y xem x&amp;eacute;t c&amp;agrave;i đặt
Team System Web Access, c&amp;oacute; sẵn tại &lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/bb676728.aspx"&gt;http://msdn2.microsoft.com/en-us/teamsystem/bb676728.aspx&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;M&amp;atilde; nguồn bổ sung &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;aacute;ch sử dụng Team
Explorer, h&amp;atilde;y xem &amp;quot;Working with Older Visual Studio Projects or Other Code
Projects&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms242912%28vs.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms242912(vs.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về Teamprise, h&amp;atilde;y xem &lt;a href="http://www.teamprise.com/"&gt;http://www.teamprise.com&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về Team System Web
Access, h&amp;atilde;y xem &lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/bb676728.aspx"&gt;http://msdn2.microsoft.com/en-us/teamsystem/bb676728.aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Khi N&amp;agrave;o T&amp;ocirc;i N&amp;ecirc;n Sử Dụng C&amp;ocirc;ng Cụ&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt; Team
Foundation Server Power Tool? &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The Team Foundation Power Tool (TFPT) cung cấp c&amp;aacute;c chức năng version-control m&amp;agrave; kh&amp;ocirc;ng c&amp;oacute; sẵn trong Visual Studio 2005 user
interface (UI). Th&amp;iacute; dụ, bạn c&amp;oacute; thể sử dung TFPT để hỗ trợ l&amp;agrave;m việc working
offline, hay để thực hiện c&amp;aacute;c h&amp;agrave;nh động rollback để undo check-ins của một
changeset. H&amp;atilde;y xem x&amp;eacute;t sử dụng TFPT nếu bạn cần thực hiện bất k&amp;igrave; h&amp;agrave;nh động n&amp;agrave;o
sau đ&amp;acirc;y:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;b&gt;Unshelve &lt;/b&gt;- Hoạt động &lt;b&gt;unshelve
&lt;/b&gt;được hỗ trợ bởi TFS kh&amp;ocirc;ng cho ph&amp;eacute;p shelve c&amp;aacute;c thay đổi change v&amp;agrave; c&amp;aacute;c thay đổi
cục bộ local change được hợp nhất với nhau. Khi bạn sử dụng TFPT để unshelve một
thay đổi từ một changeset, nếu một item trong local workspace của bạn c&amp;oacute; một pending change l&amp;agrave;
một edit, v&amp;agrave; shelved change cũng l&amp;agrave; một edit, th&amp;igrave; sau đ&amp;oacute; TFPT c&amp;oacute; thể merge c&amp;aacute;c
change bằng c&amp;aacute;ch thực hiện một merge 3 c&amp;aacute;ch. &lt;/li&gt;
&lt;li&gt; &lt;b&gt;Roll back&lt;/b&gt; - Khả năng undo một check-in của
một changeset kh&amp;ocirc;ng được hỗ trợ trực tiếp
trong TFS. Bằng c&amp;aacute;ch sử dụng lệnh TFPT &lt;b&gt;rollback&lt;/b&gt;,
bạn c&amp;oacute; thể thực hiện undo bất k&amp;igrave; change n&amp;agrave;o được tạo ra trong một changeset cụ
thể. Kh&amp;ocirc;ng phải tất cả c&amp;aacute;c thay đổi change đều c&amp;oacute; thể roll back, nhưng hầu như
c&amp;oacute; thể rollback cho hầu hết c&amp;aacute;c t&amp;igrave;nh huống. &lt;/li&gt;
&lt;li&gt; &lt;b&gt;Work offline&lt;/b&gt; - C&amp;ocirc;ng cụ TFPT online tool cho ph&amp;eacute;p bạn l&amp;agrave;m việc m&amp;agrave;
kh&amp;ocirc;ng kết nối với server trong một khoảng thời gian bằng c&amp;aacute;ch cung cấp c&amp;aacute;c chức
năng th&amp;ocirc;ng b&amp;aacute;o cho server về c&amp;aacute;c thay đổi changes m&amp;agrave; bạn đ&amp;atilde; tạo ra trong kh&amp;ocirc;ng
gian l&amp;agrave;m việc cục bộ workspace của bạn. &lt;/li&gt;
&lt;li&gt; &lt;b&gt;Get a changeset&lt;/b&gt; - Lệnh TFPT &lt;b&gt;GetCS&lt;/b&gt;
cho ph&amp;eacute;p bạn lấy tất cả c&amp;aacute;c item được liệt k&amp;ecirc; trong một changeset dựa tr&amp;ecirc;n c&amp;aacute;c changeset
version. Điều n&amp;agrave;y sẽ c&amp;oacute; &amp;iacute;ch nếu một đồng nghiệp check in một thay đổi change m&amp;agrave;
bạn cần c&amp;oacute; trong workspace của bạn, nhưng bạn kh&amp;ocirc;ng thể cập nhật to&amp;agrave;n bộ
workspace l&amp;ecirc;n version mới nhất. &lt;/li&gt;
&lt;li&gt; &lt;b&gt;Remove pending edits&lt;/b&gt; - Lệnh TFPT &lt;b&gt;UU&lt;/b&gt; (Undo Unchanged) x&amp;oacute;a bỏ c&amp;aacute;c pending edits từ c&amp;aacute;c files chưa thực
sự được chỉnh sửa. Điều n&amp;agrave;y hữu &amp;iacute;ch trong một t&amp;igrave;nh huống m&amp;agrave; bạn check out một số
lượng lớn c&amp;aacute;c file để chỉnh sửa, nhưng chỉ l&amp;agrave;m thay đổi một số &amp;iacute;t c&amp;aacute;c tập tin. Bạn
c&amp;oacute; thể lấy ra c&amp;aacute;c chỉnh sửa của bạn tr&amp;ecirc;n c&amp;aacute;c tập tin kh&amp;ocirc;ng thể thay đổi bằng c&amp;aacute;ch chạy lệnh TFPT &lt;b&gt;UU&lt;/b&gt;, lệnh n&amp;agrave;y sẽ so s&amp;aacute;nh c&amp;aacute;c dữ liệu hỏng
hash của c&amp;aacute;c tập tin tr&amp;ecirc;n workspace cục bộ với c&amp;aacute;c tập tin hỏng hash tr&amp;ecirc;n
server để x&amp;aacute;c định xem l&amp;agrave; c&amp;aacute;c tập tin đ&amp;oacute; c&amp;oacute; thực sự được chỉnh sửa hay kh&amp;ocirc;ng &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bạn c&amp;oacute; thể chạy từng lệnh n&amp;agrave;y từ cửa sổ d&amp;ograve;ng lệnh bằng c&amp;aacute;ch sử
dụng Tfpt.exe.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;M&amp;atilde; nguồn bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để download TFPT, h&amp;atilde;y
đến &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7324c3db-658d-441b-8522-689c557d0a79&amp;amp;DisplayLang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=7324c3db-658d-441b-8522-689c557d0a79&amp;amp;DisplayLang=en&lt;/a&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để xem một forum thảo
luận về TFPT, h&amp;atilde;y đến &lt;a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=930&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=930&amp;amp;SiteID=1&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Đ&amp;acirc;u L&amp;agrave; Những Kịch Bản Mở Rộng của c&amp;aacute;c Version Control Phổ Biến/ Th&amp;ocirc;ng Thường?
&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Những kịch bản mở rộng của c&amp;aacute;c version control phổ biến l&amp;agrave;
t&amp;ugrave;y chỉnh&amp;nbsp; một ch&amp;iacute;nh s&amp;aacute;ch check-in policy
để thực thi c&amp;aacute;c ti&amp;ecirc;u chuẩn v&amp;agrave;o l&amp;uacute;c check-in. Để tạo c&amp;aacute;c custom policy plug-in
m&amp;agrave; xuất hiện trong hộp thoại &lt;b&gt;Add Checkin
Policy&lt;/b&gt; , h&amp;atilde;y sử dụng c&amp;aacute;c chức năng mở rộng được cung cấp trong Visual
Studio Team Foundation Server Software Development Kit (SDK). Bạn c&amp;oacute; thể tải TFS
SDK về từ &lt;a href="http://go.microsoft.com/fwlink/?linkid=68586"&gt;http://go.microsoft.com/fwlink/?linkid=68586&lt;/a&gt; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Mặc d&amp;ugrave; kh&amp;ocirc;ng phải l&amp;agrave; phổ biến, n&amp;oacute; cho ph&amp;eacute;p viết một layer
t&amp;iacute;ch hợp để cho ph&amp;eacute;p một client kh&amp;ocirc;ng phải l&amp;agrave; Visual Studio 2005 l&amp;agrave;m việc với Team
Foundation Version Control. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;M&amp;atilde; nguồn bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu l&amp;agrave;m thế n&amp;agrave;o t&amp;ugrave;y chỉnh một check-in
policy, h&amp;atilde;y xem
&amp;quot;Walkthrough: Customizing Check-in Policies and Notes&amp;quot; tại đ&amp;acirc;y &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181281%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms181281(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để xem c&amp;aacute;c đoạn code
đơn giản m&amp;agrave; kh&amp;ocirc;ng cho ph&amp;eacute;p chọn c&amp;aacute;c mẫu tr&amp;ecirc;n check-in, h&amp;atilde;y xem &amp;quot;Checkin Policy
to Disallow Certain Patterns&amp;quot; tại &lt;a href="http://blogs.msdn.com/jmanning/archive/2006/02/02/523125.aspx"&gt;http://blogs.msdn.com/jmanning/archive/2006/02/02/523125.aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&amp;bull;&amp;nbsp; Để xem c&amp;aacute;c đoạn code đơn giản buộc phải comments c&amp;aacute;c check-in, h&amp;atilde;y xem &amp;quot;Sample
Checkin Policy: Make Sure the Comment Isn&amp;#39;t Empty&amp;quot; tại &lt;a href="http://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx"&gt;http://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx&lt;/a&gt; &amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu l&amp;agrave;m thế n&amp;agrave;o đăng k&amp;iacute; một check-in
policy mới, h&amp;atilde;y xem &amp;quot;I&amp;#39;ve Made
a New Check-In Policy! How Do I Add It?&amp;quot; tại &lt;a href="http://blogs.msdn.com/jmanning/archive/2006/02/07/526778.aspx"&gt;http://blogs.msdn.com/jmanning/archive/2006/02/07/526778.aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để download the TFS SDK, h&amp;atilde;y đến &lt;a href="http://go.microsoft.com/fwlink/?linkid=68586"&gt;http://go.microsoft.com/fwlink/?linkid=68586&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu th&amp;ecirc;m về Team Foundation
Version Control extensibility, h&amp;atilde;y xem &amp;quot;Walkthru:
The Version Control Object Model&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/bb187335%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/bb187335(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;L&amp;agrave;m Việc Với&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt; Version
Control &lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;Từ&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt; Command
Line&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt; Như Thế N&amp;agrave;o&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;?&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Team Foundation Server cung cấp
c&amp;ocirc;ng cụ TF command line tool (Tf.exe) để cho ph&amp;eacute;p bạn thực hiện c&amp;aacute;c hoạt động source
control. Th&amp;iacute; dụ, bạn c&amp;oacute; thể sử dụng d&amp;ograve;ng lệnh để l&amp;ecirc;n kế hoạch cho c&amp;aacute;c hoạt động
bằng c&amp;aacute;ch sử dụng Microsoft Windows&amp;reg; Task Scheduler.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Để đảm bảo l&amp;agrave; c&amp;aacute;c đường dẫn
ph&amp;ugrave; hợp v&amp;agrave; c&amp;aacute;c m&amp;ocirc;i trường kh&amp;aacute;c được thiết lập, bạn h&amp;atilde;y chạy c&amp;ocirc;ng cụ từ Visual
Studio 2005 Command Prompt window, hay l&amp;agrave; chạy &amp;nbsp;tập tin Vsvars32 batch file, thường được đặt
trong DriveLetter:\Program Files\Microsoft Visual Studio 8\Common7\Tools. The
command line hỗ trợ hầu hết c&amp;aacute;c lệnh source control, gồm c&amp;oacute; Checkin, Checkout,
Get, History, Shelve, Branch, Merge, Label, Status, Undelete, v&amp;agrave; Undo.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Sau đ&amp;acirc;y l&amp;agrave; c&amp;aacute;c hoạt động th&amp;ocirc;ng
thường m&amp;agrave; bạn c&amp;oacute; thể muốn thực thi từ command line: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Đồng bộ c&amp;aacute;c tập tin từ server đến m&amp;aacute;y t&amp;iacute;nh của
bạn - &lt;b&gt;tf get&lt;/b&gt; &lt;/li&gt;
&lt;li&gt; Th&amp;ecirc;m một tập tin đến server - &lt;b&gt;tf add&lt;/b&gt; &lt;/li&gt;
&lt;li&gt; Check out một tập tin để chỉnh sửa - &lt;b&gt;tf checkout&lt;/b&gt; &lt;/li&gt;
&lt;li&gt; Check in c&amp;aacute;c thay đổi đang chờ xử l&amp;yacute; pending
changes - &lt;b&gt;tf checkin&lt;/b&gt; &lt;/li&gt;
&lt;li&gt; Retrieve một tập changeset cụ thể từ server -
&lt;b&gt;tf get /version&lt;/b&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;C&amp;aacute;c hoạt động sau chỉ c&amp;oacute; thể
được thực thi từ command line: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; X&amp;oacute;a workspace của một user - &lt;b&gt;tf workspace /delete&lt;/b&gt; &lt;/li&gt;
&lt;li&gt; Undo lại check-in của một user - &lt;b&gt;tf undo&lt;/b&gt; &lt;/li&gt;
&lt;li&gt; Unlock lại c&amp;aacute;c lock của một user - &lt;b&gt;tf lock&lt;/b&gt; &lt;/li&gt;
&lt;li&gt; X&amp;aacute;c định label scope - &lt;b&gt;tf label&lt;/b&gt; &lt;/li&gt;
&lt;li&gt; Thực hiện một baseless merge - &lt;b&gt;tf merge&lt;/b&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;M&amp;atilde; nguồn bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về l&amp;agrave;m việc với c&amp;aacute;c lệnh
Tf.exe commands, h&amp;atilde;y xem &amp;quot;MSDN: Walkthrough: Working with Team Foundation
Source Control from Command Line&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/zthc5x3f.aspx"&gt;http://msdn2.microsoft.com/en-us/library/zthc5x3f.aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;aacute;c lệnh c&amp;oacute; sẵn từ command
line, h&amp;atilde;y xem &amp;quot;Operations Available Only From the Command-Line (Team Foundation
Source Control)&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms194957%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms194957(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;T&amp;agrave;i liệu ho&amp;agrave;n chỉnh của phần n&amp;agrave;y bạn c&amp;oacute; thể download tại đ&amp;acirc;y:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cid-c756261140cf0eb3.skydrive.live.com/self.aspx/GT/Cau%20hoi%20va%20Tra%20loi.doc"&gt;http://cid-c756261140cf0eb3.skydrive.live.com/self.aspx/GT/Cau%20hoi%20va%20Tra%20loi.doc&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Bài tập : Source Control </title><link>http://msdnvietnam.net/wikis/tfs/b-224-i-t-p-source-control/revision/0.aspx</link><pubDate>Sun, 21 Feb 2010 19:59:52 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:143</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to TFS - Team Foundation System by Nguyễn Thị Như Quỳnh on 2/22/2010 3:59:52 AM&lt;br /&gt;
&lt;p&gt;&lt;b&gt;C&amp;aacute;c mục&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Accessing Version Control &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng c&amp;aacute;c phi&amp;ecirc;n bản version
control từ c&amp;aacute;c client kh&amp;ocirc;ng c&amp;oacute; Visual Studio &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tự động h&amp;oacute;a c&amp;aacute;c task của
version-control chung&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để work offline &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Administration &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để th&amp;ecirc;m một lập tr&amp;igrave;nh vi&amp;ecirc;n mới
v&amp;agrave;o dự &amp;aacute;n của bạn &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để loại bỏ đi một lập tr&amp;igrave;nh vi&amp;ecirc;n
sẽ rời khỏi dự &amp;aacute;n của bạn&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để cấp quyền trong source tree của
bạn&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để si chuyển Team Foundation
Server Version Control của bạn đến &amp;nbsp;server kh&amp;aacute;c&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Branch/Label/Merge &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng c&amp;aacute;c
label &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để branch &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để l&amp;ecirc;n kế hoạch
cho cấu tr&amp;uacute;c branch của bạn&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng
branching để hỗ trợ một release &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng
branching để bảo tr&amp;igrave; một previous release &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng
branching để ổn định sự ph&amp;aacute;t triển của bạn v&amp;agrave; build process &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng
branching để ổn định c&amp;aacute;c chức năng ph&amp;aacute;t triển của bạn &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng
branching để ổn định sự ph&amp;aacute;t triển giữa c&amp;aacute;c nh&amp;oacute;m&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng
branching để t&amp;aacute;ch ri&amp;ecirc;ng c&amp;aacute;c phụ thuộc mở rộng &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để bỏ một phi&amp;ecirc;n bản(release)
cũ&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để thực hiện một sự
hợp nhất merge &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để thực hiện một
baseless merge &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để giả quyết xung đột
trong khi hợp nhất(merge conflicts )&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Builds &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng TFS để thực thi c&amp;aacute;c
Continuous Integration builds &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Check-ins and Check-in Policies &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để l&amp;agrave;m việc với c&amp;aacute;c tập thay đổi
trong source control &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để thực thi c&amp;aacute;c ti&amp;ecirc;u chuẩn về m&amp;atilde; trước
khi check-in &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để ghi đ&amp;egrave; một check-in policy &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để kh&amp;ocirc;i phục một check-in &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để giải quyết một xung đột &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tr&amp;aacute;nh c&amp;aacute;c xung đột&amp;nbsp; &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tạo một check-in policy t&amp;ugrave;y &amp;yacute;
bạn về Checkout, Get, and Lock &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để đồng bộ h&amp;oacute;a m&amp;aacute;y t&amp;iacute;nh của bạn với
TFS &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để chuẩn bị một file để chỉnh sửa
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Checkout, Get, and Lock &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để đồng bộ m&amp;aacute;y t&amp;iacute;nh của bạn với
TFS &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để chuẩn bị một tập tin để chỉnh
sửa&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Code Sharing &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để share code &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để quản l&amp;yacute; c&amp;aacute;c tập tin nhị ph&amp;acirc;n
chia sẻ shared binaries &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Dependencies &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để quản l&amp;yacute; c&amp;aacute;c &amp;nbsp;Web service dependencies &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để quản l&amp;yacute; c&amp;aacute;c database
dependencies &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Distributed/Remote Development &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để truy cập đến TFS qua Internet &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tối ưu h&amp;oacute;a năng suất TFS
Version Control proxy performance &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Migration &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để di chuyển source của bạn từ Visual
SourceSafe &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để di chuyển source của bạn từ
c&amp;aacute;c version-control system kh&amp;aacute;c&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Project/Workspace Management &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để chọn một team project trong
nhiều team projects &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tổ chức source tree của bạn&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để x&amp;aacute;c định c&amp;aacute;c workspace
mappings &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng c&amp;aacute;c workspace để t&amp;aacute;ch
ri&amp;ecirc;ng c&amp;aacute;c code change tr&amp;ecirc;n m&amp;aacute;y của bạn &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Security &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để secure the channel between a
developer workstation and TFS&amp;nbsp; &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Shelving &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng shelving để back up c&amp;aacute;c
pending work &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng shelving để share code
với một team member&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Accessing
Version Control &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng c&amp;aacute;c phi&amp;ecirc;n bản version
control từ c&amp;aacute;c client kh&amp;ocirc;ng c&amp;oacute; Visual Studio &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tự động h&amp;oacute;a c&amp;aacute;c task của
version-control chung&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để work offline &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;L&amp;agrave;m Thế N&amp;agrave;o Để Sử Dụng
C&amp;aacute;c Phi&amp;ecirc;n Bản Version Control Từ C&amp;aacute;c Client Kh&amp;ocirc;ng C&amp;oacute; Visual Studio&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Bạn c&amp;oacute; thể truy cập đến Microsoft&amp;reg; Visual Studio&amp;reg; 2005 Team
System (VSTS) Team Foundation Server (TFS) Version Control từ c&amp;aacute;c client kh&amp;aacute;c bằng
c&amp;aacute;ch sử dụng một trong c&amp;aacute;c phương thức tiếp cận sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Microsoft
Source Code Control Interface (MSSCCI) integration &lt;/li&gt;
&lt;li&gt; Third-party
integration &lt;/li&gt;
&lt;li&gt; Custom
integration&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;MSSCCI
Integration&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;C&amp;aacute;c client sau c&amp;oacute; thể l&amp;agrave;m việc trực tiếp với TFS
Version Control bằng c&amp;aacute;ch sử dụng MSSCCI provider: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Microsoft
Visual Studio .NET 2003 &lt;/li&gt;
&lt;li&gt; Microsoft
Visual C++&amp;reg; 6 SP6 &lt;/li&gt;
&lt;li&gt; Microsoft
Visual Basic&amp;reg; 6 SP6 &lt;/li&gt;
&lt;li&gt; Microsoft
Visual FoxPro&amp;reg; 9 SP1 &lt;/li&gt;
&lt;li&gt; Microsoft
Access&lt;sup&gt;TM&lt;/sup&gt; 2003 SP2 &lt;/li&gt;
&lt;li&gt; Microsoft
SQL Server&lt;sup&gt;TM&lt;/sup&gt; Management Studio &lt;/li&gt;
&lt;li&gt; Sparx
Systems Enterprise Architect 61 &lt;/li&gt;
&lt;li&gt; Sybase
PowerBuilder 105 &lt;/li&gt;
&lt;li&gt; Toad for
SQL Server 2.0&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;MSSCCI provider vận h&amp;agrave;nh kh&amp;aacute;c với TFS Version
Control trong Visual Studio 2005 theo c&amp;aacute;c c&amp;aacute;ch thức sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Checkout cũng
thực hiện một h&amp;agrave;nh động &lt;b&gt;GetLatest .&lt;/b&gt;&lt;/li&gt;
&lt;li&gt; Một
check-in lock d&amp;agrave;nh ri&amp;ecirc;ng được &amp;aacute;p dụng tại l&amp;uacute;c checkout. &lt;/li&gt;
&lt;li&gt; Open từ
source control v&amp;agrave; save v&amp;agrave;o source control hoạt động giống như trong Microsoft
Visual SourceSafe&amp;reg; (VSS). &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bạn c&amp;oacute; thể tải MSSCCI provider từ Microsoft MSDN&amp;reg; tại
đ&amp;acirc;y&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=87E1FFBD-A484-4C3A-8776-D560AB1E6198&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=87E1FFBD-A484-4C3A-8776-D560AB1E6198&amp;amp;displaylang=en&lt;/a&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;MSSCCI provider kh&amp;ocirc;ng được Microsoft hỗ trợ. Nếu bạn
c&amp;oacute; c&amp;acirc;u hỏi, h&amp;atilde;y tham khảo &amp;yacute; kiến tại MSDN forums ở đ&amp;acirc;y&lt;/p&gt;
&lt;p&gt;&lt;a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=22&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=22&amp;amp;SiteID=1&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Third-Party
Integration&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;C&amp;aacute;c client sau c&amp;oacute; c&amp;aacute;c intergration solutions được cung
cấp bởi c&amp;aacute;c nh&amp;agrave; cung cấp kh&amp;aacute;c: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Eclipse &lt;/li&gt;
&lt;li&gt; Linux
client &lt;/li&gt;
&lt;li&gt; Apple
Macintosh client &lt;/li&gt;
&lt;li&gt; HTML Web
client &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nếu bạn muốn truy cập đến c&amp;aacute;c TFS Version Control từ
c&amp;aacute;c client Eclipse IDE, Linux, hay Macintosh , h&amp;atilde;y xem x&amp;eacute;t việc c&amp;agrave;i đặt Teamprise
từ &lt;a href="http://www.teamprise.com/"&gt;http://www.teamprise.com/&lt;/a&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Nếu bạn chỉ muốn truy cập với quyền read-only đến
TFS Version Control từ Internet, h&amp;atilde;y xem x&amp;eacute;t sử dụng Team System Web Access từ &lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/bb676728.aspx"&gt;http://msdn2.microsoft.com/en-us/teamsystem/bb676728.aspx&lt;/a&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Custom
Integration&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;C&amp;aacute;c client kh&amp;aacute;c hiện kh&amp;ocirc;ng c&amp;oacute; sẵn c&amp;aacute;c integration
solution. Bạn c&amp;oacute; thể truy cập đến TFS Version Control cả từ command line hay build
c&amp;aacute;c integration solution của ri&amp;ecirc;ng bạn.&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;Để t&amp;igrave;m hiểu th&amp;ecirc;m về l&amp;agrave;m việc với TFS Version
Control, h&amp;atilde;y xem &amp;quot;Walkthrough: Working with Team Foundation Source Control from
Command Line&amp;quot; tr&amp;ecirc;n trang MSDN Web site ở đ&amp;acirc;y &lt;a href="http://msdn2.microsoft.com/en-us/library/zthc5x3f%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/zthc5x3f(VS.80).aspx&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Bạn c&amp;oacute; thể sử dụng c&amp;aacute;c script điều khiển v&amp;agrave; c&amp;aacute;c command
file dể tự động h&amp;oacute;a việc sử dụng của c&amp;aacute;c d&amp;ograve;ng lệnh.&lt;/p&gt;
&lt;p&gt;Để t&amp;igrave;m hiểu th&amp;ecirc;m về c&amp;aacute;ch l&amp;agrave;m việc với c&amp;aacute;c script điều
khiển v&amp;agrave; c&amp;aacute;c command file, h&amp;atilde;y xem &amp;quot;Team Foundation Source Control Scripts and
Command Files&amp;quot; tr&amp;ecirc;n trang MSDN Web site tại đ&amp;acirc;y &lt;a href="http://msdn2.microsoft.com/en-us/library/1az5ay5c%28VS80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/1az5ay5c(VS80).aspx&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;M&amp;atilde; nguồn bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để download the MSSCCI provider từ MSDN, h&amp;atilde;y đến&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=87E1FFBD-A484-4C3A-8776-D560AB1E6198&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=87E1FFBD-A484-4C3A-8776-D560AB1E6198&amp;amp;displaylang=en&lt;/a&gt; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Nếu bạn muốn
truy cập đến TFS Version Control từ c&amp;aacute;c Eclipse IDE, Linux, hay Macintosh
clients, h&amp;atilde;y c&amp;acirc;n nhắc đến việc c&amp;agrave;i đặt Teamprise ở trang &lt;a href="http://www.teamprise.com/"&gt;http://www.teamprise.com/&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Nếu bạn muốn
truy cập đến TFS Version Control từ Internet, h&amp;atilde;y c&amp;acirc;n nhắc đến việc c&amp;agrave;i đặt Team
System Web Access ở đ&amp;acirc;y &lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/bb676728.aspx"&gt;http://msdn2.microsoft.com/en-us/teamsystem/bb676728.aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu
th&amp;ecirc;m về c&amp;aacute;ch l&amp;agrave;m việc TFS Version Control, h&amp;atilde;y xem &amp;quot;Walkthrough: Working with
Team Foundation Source Control from Command Line&amp;quot; tại đ&amp;acirc;y &lt;a href="http://msdn2.microsoft.com/en-us/library/zthc5x3f%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/zthc5x3f(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu
th&amp;ecirc;m về c&amp;aacute;ch l&amp;agrave;m việc control scripts v&amp;agrave; command files, h&amp;atilde;y xem &amp;quot;Team Foundation
Source Control Scripts and Command Files&amp;quot; tại đ&amp;acirc;y &lt;a href="http://msdn2.microsoft.com/en-us/library/1az5ay5c%28VS80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/1az5ay5c(VS80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu
th&amp;ecirc;m về c&amp;aacute;ch l&amp;agrave;m việc TFS Version Control extensibility, h&amp;atilde;y xem &amp;quot;Walkthrough:
The Version Control Object Model&amp;quot; tại đ&amp;acirc;y &lt;a href="http://msdn2.microsoft.com/en-us/library/bb187335%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/bb187335(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;L&amp;agrave;m Thế N&amp;agrave;o Để Tự Động H&amp;oacute;a C&amp;aacute;c Task Của Version-Control Chung&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Để tự động h&amp;oacute;a c&amp;aacute;c version-control task chung, h&amp;atilde;y sử dụng
c&amp;ocirc;ng cụ d&amp;ograve;ng lệnh của Team Foundation (tf.exe). Với c&amp;ocirc;ng cụ n&amp;agrave;y, bạn c&amp;oacute; thể l&amp;agrave;m
tất cả mọi thứ m&amp;agrave; bạn c&amp;oacute; thể l&amp;agrave;m việc với Source Control Explorer, gồm c&amp;oacute; c&amp;aacute;c
h&amp;agrave;nh động trong source control &amp;nbsp;(add,
check-in, checkout, get, lock, label, v&amp;agrave; nhiều hơn), branching, shelving,
workspace manipulation, v&amp;agrave; tạo ra c&amp;aacute;c administration task.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;L&amp;yacute; do ch&amp;iacute;nh để sử dụng c&amp;ocirc;ng cụ d&amp;ograve;ng lệnh l&amp;agrave; tự động ho&amp;aacute; c&amp;aacute;c
hoạt động lặp đi lặp lại l&amp;agrave; l&amp;ecirc;n lịch c&amp;aacute;c hoạt động để chạy tại c&amp;aacute;c thời điểm cụ
thể hay tr&amp;ecirc;n c&amp;aacute;c sự kiện cụ thể bằng c&amp;aacute;ch sử dụng Microsoft Windows&amp;reg; Task
Scheduler. C&amp;aacute;c lệnh sau cũng c&amp;oacute; sẵn từ d&amp;ograve;ng lệnh:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Delete c&amp;aacute;c workspace
của c&amp;aacute;c user kh&amp;aacute;c&lt;/li&gt;
&lt;li&gt; Undo c&amp;aacute;c checkout của c&amp;aacute;c user kh&amp;aacute;c&lt;/li&gt;
&lt;li&gt; Unlock c&amp;aacute;c lock của
c&amp;aacute;c user kh&amp;aacute;c&lt;/li&gt;
&lt;li&gt; X&amp;aacute;c định phạm vi của
c&amp;aacute;c label &lt;/li&gt;
&lt;li&gt; Thực hiện một
baseless merge &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;Để đảm bảo l&amp;agrave; c&amp;aacute;c đường
dẫn ph&amp;ugrave; hợp v&amp;agrave; c&amp;aacute;c biến m&amp;ocirc;i trường được c&amp;agrave;i đặt, h&amp;atilde;y chọn c&amp;ocirc;ng cụ d&amp;ograve;ng lệnh từ
cửa sổ Visual Studio 2005 Command Prompt window, hay chạy Vsvars32 batch file, l&amp;agrave;
tập tin được đặt trong &lt;i&gt;DriveLetter:\&lt;/i&gt;Program
Files\Microsoft Visual Studio 8\Common7\Tools.&amp;nbsp;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;Tf.exe được c&amp;agrave;i đặt như một phần của TFS client v&amp;agrave; được đặt mặc
định trong thư mục sau: C:\Program Files\Microsoft Visual Studio 8\Common
7\IDE.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Để chạy c&amp;ocirc;ng cụ d&amp;ograve;ng lệnh, bạn phải x&amp;aacute;c định t&amp;ecirc;n vớ &lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;/s&lt;/b&gt; switch. D&amp;ograve;ng
lệnh sau hiển thị bằng c&amp;aacute;ch n&amp;agrave;o để xem c&amp;aacute;c tập tin trong source control tr&amp;ecirc;n
server c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;YourTFSServer:&lt;/b&gt;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;tf.exe dir /s:YourTFSServer&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;M&amp;atilde; nguồn bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin,
h&amp;atilde;y xem &amp;quot;Walkthrough: Working with Team Foundation Source Control from Command
Line&amp;quot; tr&amp;ecirc;n trang MSDN Web site tại đ&amp;acirc;y &lt;a href="http://msdn2.microsoft.com/en-us/library/zthc5x3f%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/zthc5x3f(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin,
h&amp;atilde;y xem &amp;quot;MSDN Team Foundation Source Control Command-Line Reference&amp;quot; tại đ&amp;acirc;y &lt;a href="http://msdn2.microsoft.com/en-us/library/cc31bk2e%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/cc31bk2e(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;L&amp;agrave;m Thế N&amp;agrave;o Để Work Offline &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Offline working kh&amp;ocirc;ng được hỗ trợ mặc định trong TFS Version
Control.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Để work offline, bạn cần sử dụng nghi&amp;ecirc;m ngặt c&amp;aacute;c quy tr&amp;igrave;nh
workflow sau:&lt;/p&gt;
&lt;p&gt;1&lt;b&gt;.&amp;nbsp; Remove bằng tay c&amp;aacute;c cờ đ&amp;aacute;nh dấu read-only.&lt;/b&gt;
Mặc định, tất cả c&amp;aacute;c tập tin trong workspace kh&amp;ocirc;ng được check out được đ&amp;aacute;nh dấu
l&amp;agrave; read-only. Khi bạn l&amp;agrave;m việc m&amp;agrave; kh&amp;ocirc;ng kết nối với một server, bạn phải remove
bằng tay c&amp;aacute;c cờ đ&amp;aacute;nh dấu read-only từ c&amp;aacute;c tập tin trước khi chỉnh sửa hay l&amp;agrave;
x&amp;oacute;a ch&amp;uacute;ng. Để thực hiện điều n&amp;agrave;y, h&amp;atilde;y click phải l&amp;ecirc;n tập in trong &lt;b&gt;Windows Explorer&lt;/b&gt;, click &lt;b&gt;Properties&lt;/b&gt;, x&amp;oacute;a dấu chọn &lt;b&gt;Read-only&lt;/b&gt; check box, v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;OK&lt;/b&gt;. Ngo&amp;agrave;i ra, bạn c&amp;oacute; thể sử dụng DOS
command &lt;b&gt;attrib -r&lt;/b&gt;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; &lt;b&gt;Chỉnh sửa c&amp;aacute;c tập tin.&lt;/b&gt; Bạn b&amp;acirc;y giờ c&amp;oacute;
thể chỉnh sửa bất cứ tập tin n&amp;agrave;o m&amp;agrave; bạn đ&amp;atilde; remove c&amp;aacute;c cờ đ&amp;aacute;nh dấu read-only.&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; &lt;b&gt;Th&amp;ecirc;m hoặc chỉnh sửa c&amp;aacute;c tập tin.&lt;/b&gt; Bạn c&amp;oacute;
thể th&amp;ecirc;m hay x&amp;oacute;a c&amp;aacute;c tập tin m&amp;agrave; bạn đ&amp;atilde; remove c&amp;aacute;c cờ đ&amp;aacute;nh dấu read-only. Đừng rename
file, bởi v&amp;igrave; c&amp;ocirc;ng cụ TFPT online tool kh&amp;ocirc;ng thể ph&amp;acirc;n biệt một h&amp;agrave;nh động rename từ
một cặp h&amp;agrave;nh động x&amp;oacute;a với một h&amp;agrave;nh động th&amp;ecirc;m.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;Lưu &amp;yacute;:&lt;/span&gt;&lt;/i&gt; Bạn phải
x&amp;aacute;c định một t&amp;ugrave;y chọn đến TFPT online command để lấy n&amp;oacute; để t&amp;igrave;m kiếm c&amp;aacute;c sự x&amp;oacute;a
bỏ v&amp;igrave; đ&amp;acirc;y l&amp;agrave; một h&amp;agrave;nh động tốn thời gian hơn. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; &lt;b&gt;Chạy TFPT online command.&lt;/b&gt; Khi bạn online
trở lại, h&amp;atilde;y chạy TFPT online command bằng c&amp;aacute;ch đ&amp;aacute;nh chữ TFPT online bằng d&amp;ograve;ng
lệnh. Lệnh n&amp;agrave;y sẽ qu&amp;eacute;t workspace của bạn đối với c&amp;aacute;c tập tin ghi được v&amp;agrave; x&amp;aacute;c định
những thay đổi n&amp;agrave;o cần được pended tr&amp;ecirc;n server. Nếu bạn đ&amp;atilde; x&amp;oacute;a bất k&amp;igrave; một tập
tin n&amp;agrave;o, h&amp;atilde;y sử dụng &lt;b&gt;/delete&lt;/b&gt; switch.
N&amp;oacute; sẽ n&amp;oacute;i cho c&amp;ocirc;ng cụ n&amp;agrave;y biết l&amp;agrave; để qu&amp;eacute;t đối với c&amp;aacute;c tập tin bị x&amp;oacute;a trong workspace
của bạn. Sau đ&amp;oacute; c&amp;ocirc;ng cụ n&amp;agrave;y sẽ hiển thị cửa sổ online window m&amp;agrave; bạn c&amp;oacute; thể chọn
c&amp;aacute;c thay đổi để được pend v&amp;agrave;o workspace.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;Quan trọng:&lt;/span&gt;&lt;/i&gt;&lt;/b&gt; Bạn kh&amp;ocirc;ng n&amp;ecirc;n rename bất k&amp;igrave; tập tin n&amp;agrave;o trong khi bạn
offline. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;M&amp;atilde; nguồn bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để download c&amp;ocirc;ng cụ
TFPT tool từ MSDN, h&amp;atilde;y đến&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7324C3DB-658D-441B-8522-689C557D0A79&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=7324C3DB-658D-441B-8522-689C557D0A79&amp;amp;displaylang=en&lt;/a&gt; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu về c&amp;ocirc;ng
cụ Visual Studio Team Foundation Power Tool, h&amp;atilde;y xem &amp;quot;Power Toy: tfptexe&amp;quot; tại &lt;a href="http://blogs.msdn.com/buckh/archive/2005/11/16/493401.aspx"&gt;http://blogs.msdn.com/buckh/archive/2005/11/16/493401.aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;T&amp;agrave;i liệu ho&amp;agrave;n chỉnh của phần n&amp;agrave;y c&amp;aacute;c bạn c&amp;oacute; thể download tại đ&amp;acirc;y:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cid-c756261140cf0eb3.skydrive.live.com/self.aspx/GT/Source%20Control.doc"&gt;http://cid-c756261140cf0eb3.skydrive.live.com/self.aspx/GT/Source%20Control.doc&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Bài tập :  Reporting </title><link>http://msdnvietnam.net/wikis/tfs/b-224-i-t-p-reporting/revision/0.aspx</link><pubDate>Sun, 31 Jan 2010 17:52:47 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:142</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to TFS - Team Foundation System by Nguyễn Thị Như Quỳnh on 2/1/2010 1:52:47 AM&lt;br /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;C&amp;aacute;c mục&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Administration &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m sao để c&amp;agrave;i đặt một report
dashboard &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m sao để thiết lập c&amp;aacute;c
permission tr&amp;ecirc;n c&amp;aacute;c report&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Creation / Customization &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m sao để t&amp;ugrave;y chỉnh một
report đ&amp;atilde; c&amp;oacute;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m sao để tạo một report mới
trong Visual Studio &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m sao để tạo một report mới
trong Excel &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m sao để tạo một scheduled
report snapshot &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m sao để tạo một report
subscription &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m sao để th&amp;ecirc;m một report mới
đến một process template đ&amp;atilde; c&amp;oacute;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Viewing &lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để ph&amp;acirc;n t&amp;iacute;ch t&amp;igrave;nh
trạng của một dự &amp;aacute;n&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để ph&amp;acirc;n t&amp;iacute;ch chất
lượng của ứng dụng &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để xem c&amp;aacute;c c&amp;ocirc;ng việc
c&amp;ograve;n lại &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để xem t&amp;igrave;nh trạng
build &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để xem c&amp;aacute;c bug v&amp;agrave;
c&amp;aacute;c kết quả kiểm thử &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để xem c&amp;aacute;c c&amp;ocirc;ng việc
theo lịch tr&amp;igrave;nh so với c&amp;ocirc;ng việc thực tế tr&amp;ecirc;n một iteration &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để x&amp;aacute;c định người
chỉnh sửa cuối c&amp;ugrave;ng của một tập tin&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để ph&amp;aacute;t hiện tất cả
c&amp;aacute;c sự thay đổi code được thực hiện bởi một lập tr&amp;igrave;nh vi&amp;ecirc;n&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để ph&amp;aacute;t hiện tất cả
c&amp;aacute;c thay đổi của code được thực hiện cho một tập tin &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để ph&amp;aacute;t hiện tất cả
c&amp;aacute;c thay đổi của code li&amp;ecirc;n quan đến một work item cụ thể &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tạo c&amp;aacute;c code
churn metrics &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tạo c&amp;aacute;c workspace
metrics như l&amp;agrave; số lượng c&amp;aacute;c tập tin, số d&amp;ograve;ng m&amp;atilde;, v&amp;agrave; số dự &amp;aacute;n&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Administration &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m sao để c&amp;agrave;i đặt một report
dashboard &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m sao để thiết lập c&amp;aacute;c
permission tr&amp;ecirc;n c&amp;aacute;c report&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;L&amp;agrave;m thế n&amp;agrave;o để C&amp;agrave;i đặt một Report Dashboard&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Chỉnh sửa trang team project portal Microsoft Office
SharePoint&amp;reg; site dể tạo một report dashboard m&amp;agrave; c&amp;oacute; thể cung cấp nhiều th&amp;ocirc;ng tin
dự &amp;aacute;n tại một vị tr&amp;iacute;.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Th&amp;iacute; dụ, một reporting dashboard hữu &amp;iacute;ch c&amp;oacute; thể chứa
c&amp;aacute;c report sau: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Remaining
Work &lt;/li&gt;
&lt;li&gt; Quality
Indicators &lt;/li&gt;
&lt;li&gt; Bug Rates &lt;/li&gt;
&lt;li&gt; Project
Velocity &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bạn c&amp;oacute; thể th&amp;ecirc;m mới c&amp;aacute;c report đến trang SharePoint portal của
bạn bằng c&amp;aacute;ch th&amp;ecirc;m một Report Viewer Web Part cho từng report m&amp;agrave; bạn muốn hiển
thị tr&amp;ecirc;n trang đ&amp;oacute;. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để chỉnh sửa
team project portal v&amp;agrave; tạo một reporting dashboard &lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; C&amp;agrave;i đặt Report
Viewer Web part tr&amp;ecirc;n report server của bạn bằng c&amp;aacute;ch sử dụng c&amp;ocirc;ng cụ &lt;b&gt;stsadm.exe &lt;/b&gt;tool v&amp;agrave; &lt;b&gt;RSWebParts.cab&lt;/b&gt;, gồm c&amp;oacute; Microsoft Office SharePoint v&amp;agrave; Report
Services installation package.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;o&amp;nbsp; STSADM.EXE c&amp;oacute; thể được t&amp;igrave;m thấy theo đường dẫn
sau: C:\Program Files\Common Files\Microsoft Shared\web server
extensions\60\BIN &lt;/p&gt;
&lt;p&gt;o&amp;nbsp; RSWebParts.Cab c&amp;oacute; thể được t&amp;igrave;m thấy theo đường
dẫn sau: C:\ Program &lt;/p&gt;
&lt;p&gt;Files\Microsoft SQL
Server\90\Tools\Reporting Services\SharePoint&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;Example: STSADM.EXE -o
addwppack -filename &amp;quot;C:\ Program &lt;/p&gt;
&lt;p&gt;Files\Microsoft SQL
Server\90\Tools\Reporting &lt;/p&gt;
&lt;p&gt;Services\SharePoint\RSWebParts.cab&amp;quot;
-globalinstall &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Trong &lt;b&gt;Team Explorer&lt;/b&gt;, click phải tr&amp;ecirc;n dự &amp;aacute;n của
bạn v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Show Project Portal.
&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Click &lt;b&gt;Modify Shared Page&lt;/b&gt;, trỏ đến &lt;b&gt;Browse&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Add Web Parts&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Click &lt;b&gt;Virtual Server Gallery&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Từ &lt;b&gt;Web Part List&lt;/b&gt;, h&amp;atilde;y chọn &lt;b&gt;Report Viewer. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Click &lt;b&gt;Add&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; Nhập t&amp;ecirc;n &lt;b&gt;Report Manager&lt;/b&gt; name, như l&amp;agrave; &lt;b&gt;http://&amp;lt;report server&amp;gt;/reports. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;8.&amp;nbsp; Nhập đường
dẫn cho dự &amp;aacute;n m&amp;agrave; bạn muốn hiển thị, như l&amp;agrave; &lt;b&gt;&amp;lt;my
project&amp;gt;/Quality Indicators. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;M&amp;atilde; nguồn bổ sung &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về th&amp;ecirc;m một Report Viewer Web Part, h&amp;atilde;y xem &amp;quot;Viewing Reports with SharePoint
2.0 Web Parts&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms159772%28SQL.90%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms159772(SQL.90).aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về team project portal, h&amp;atilde;y xem &amp;quot;Using the Team Project Portal&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms242883%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms242883(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;L&amp;agrave;m Sao Để Thiết Lập C&amp;aacute;c Permission Tr&amp;ecirc;n C&amp;aacute;c Report&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Bạn c&amp;oacute; thể chỉnh sửa c&amp;aacute;c report permissions để x&amp;aacute;c định ai c&amp;oacute;
thể chỉnh sửa v&amp;agrave; xem c&amp;aacute;c report. Bạn phải l&amp;agrave; một th&amp;agrave;nh vi&amp;ecirc;n của Microsoft SQL
Server&lt;sup&gt;TM&lt;/sup&gt; Reporting Services Content Manager role để c&amp;oacute; thể được thiết lập c&amp;aacute;c report
permissions.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để thiết lập
c&amp;aacute;c permissions cho tất cả c&amp;aacute;c report trong team project của bạn&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong Team
Explorer, h&amp;atilde;y mở rộng node của team project của bạn.&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Click phải
l&amp;ecirc;n &lt;b&gt;Reports&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Show Report Site. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Click the &lt;b&gt;Properties tab&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Click &lt;b&gt;Security&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Click &lt;b&gt;Edit Item Security&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Nếu bạn muốn
chỉnh sửa security tr&amp;ecirc;n một role đ&amp;atilde; được x&amp;aacute;c định trước cho report, h&amp;atilde;y click &lt;b&gt;Edit&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; Nếu bạn muốn
x&amp;aacute;c định security cho một role m&amp;agrave; kh&amp;ocirc;ng được liệt k&amp;ecirc; ra, h&amp;atilde;y click &lt;b&gt;New Role Assignment.&lt;/b&gt;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để thiết lập
c&amp;aacute;c permissions tr&amp;ecirc;n một single report &lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong Team
Explorer, h&amp;atilde;y mở rộng node của team project của bạn.&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Click phải
l&amp;ecirc;n &lt;b&gt;Reports&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Show Report Site. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Tr&amp;ecirc;n trang report
site, h&amp;atilde;y chọn report m&amp;agrave; bạn muốn thiết lập c&amp;aacute;c permission. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Click v&amp;agrave;o &lt;b&gt;Properties tab&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Click &lt;b&gt;Security&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Click &lt;b&gt;Edit Item Security.&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; Nếu bạn muốn chỉnh
sửa security tr&amp;ecirc;n một role m&amp;agrave; đ&amp;atilde; được x&amp;aacute;c định cho một report, h&amp;atilde;y click &lt;b&gt;Edit. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;8.&amp;nbsp; Nếu bạn muốn x&amp;aacute;c định
security cho một role m&amp;agrave; kh&amp;ocirc;ng được liệt k&amp;ecirc; ra, h&amp;atilde;y click &lt;b&gt;New Role Assignment.&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;M&amp;atilde; nguồn bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về thiết lập c&amp;aacute;c report permissions, h&amp;atilde;y xem &amp;quot;How to: Set Permissions for a
Report&amp;quot; tại đ&amp;acirc;y &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181645%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms181645(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Creation / Customization &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m sao để t&amp;ugrave;y chỉnh một
report đ&amp;atilde; c&amp;oacute;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m sao để tạo một report mới
trong Visual Studio &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m sao để tạo một report mới
trong Excel &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m sao để tạo một scheduled
report snapshot &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m sao để tạo một report
subscription &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m sao để th&amp;ecirc;m một report mới
đến một process template đ&amp;atilde; c&amp;oacute;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;L&amp;agrave;m Sao Để T&amp;ugrave;y Chỉnh Một Report Đ&amp;atilde; C&amp;oacute;&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Bạn c&amp;oacute; thể chỉnh sửa c&amp;aacute;c report bằng c&amp;aacute;ch sử dụng SQL Server
2005 Reporting Services Designer b&amp;ecirc;n trong Visual Studio (Business Intelligence
Development Studio), c&amp;ograve; cả c&amp;aacute;c c&amp;ocirc;ng cụ SQL Server 2005 client. Chỉnh sửa một
report c&amp;oacute; sẵn thường dễ hơn l&amp;agrave; tạo một &amp;nbsp;report mới.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để t&amp;ugrave;y chỉnh
một report đ&amp;atilde; c&amp;oacute; trong TFS &lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Tạo một reporting
project như sau: &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;a.&amp;nbsp;
Trong Visual Studio, click &lt;b&gt;File&lt;/b&gt;,
click &lt;b&gt;New&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Project&lt;/b&gt;. &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;b.&amp;nbsp;
Chọn loại &lt;b&gt;Business Intelligence
Project &lt;/b&gt;type. &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;c.&amp;nbsp;
Chọn mẫu l&amp;agrave; &lt;b&gt;Report Server Project&lt;/b&gt;
template. &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;d.&amp;nbsp;
Điền t&amp;ecirc;n v&amp;agrave; chọn vị tr&amp;iacute; v&amp;agrave;o phần &lt;b&gt;Name
&lt;/b&gt;v&amp;agrave; &lt;b&gt;Location&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;OK&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Export b&amp;aacute;o c&amp;aacute;o
report m&amp;agrave; bạn muốn t&amp;ugrave;y chỉnh như sau: &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;a.&amp;nbsp;
Click phải l&amp;ecirc;n team project của bạn v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Show Project Portal. &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;b.&amp;nbsp;
Trong thanh &lt;b&gt;Quick Launch &lt;/b&gt;ở phần
b&amp;ecirc;n tr&amp;aacute;i của portal Web site, click &lt;b&gt;Reports.&lt;/b&gt;
&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;c.&amp;nbsp;
Click v&amp;agrave;o report m&amp;agrave; bạn muốn t&amp;ugrave;y chỉnh. &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;d.&amp;nbsp;
Click &lt;b&gt;Properties&lt;/b&gt;. &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;e.&amp;nbsp;
H&amp;atilde;y chọn &lt;b&gt;Edit&lt;/b&gt;. &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;f.&amp;nbsp;
Lưu tập tin &lt;b&gt;report .rdl&lt;/b&gt; trong
thư mục reporting project m&amp;agrave; bạn đ&amp;atilde; tạo trong bước 1. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Th&amp;ecirc;m c&amp;aacute;c
data sources như sau: &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;a.&amp;nbsp; Để tạo kho warehouse data source: &lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;i.&amp;nbsp; Trong Visual Studio Solution Explorer, click
phải &lt;b&gt;Shared Data Sources&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute;
click &lt;b&gt;Add New Data Source&lt;/b&gt;. &lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;ii.&amp;nbsp; Tr&amp;ecirc;n thẻ &lt;b&gt;General&lt;/b&gt;
tab, trong &amp;ocirc; &lt;b&gt;Name&lt;/b&gt; text box, h&amp;atilde;y điền&lt;b&gt;TfsReportDS&amp;nbsp;
&lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;iii.&amp;nbsp; Trong &lt;b&gt;Type&lt;/b&gt;
combo box, h&amp;atilde;y chọn &lt;b&gt;Microsoft SQL
Server. &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;iv.&amp;nbsp; Click &lt;b&gt;Edit&lt;/b&gt;.
&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;v.&amp;nbsp; Điền t&amp;ecirc;n server tầng data của bạn.&amp;nbsp; &lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;vi.&amp;nbsp; Chọn &lt;b&gt;TFSWarehouse
&lt;/b&gt;database.&amp;nbsp; &lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;vii.&amp;nbsp; Click v&amp;agrave;o n&amp;uacute;t &lt;b&gt;OK &lt;/b&gt;hai lần để th&amp;ecirc;m data source. &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;b.&amp;nbsp; Để tạo OLAP data source: &lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;i.&amp;nbsp; Trong Solution Explorer, click phải &lt;b&gt;Shared Data Sources&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Add New Data Source. &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;ii.&amp;nbsp; Tr&amp;ecirc;n thẻ &lt;b&gt;General&lt;/b&gt;
tab, trong &amp;ocirc; &lt;b&gt;Name&lt;/b&gt; text box,nhập t&amp;ecirc;n
như sau &lt;b&gt;TfsOlapReportDS &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;iii.&amp;nbsp; Trong &lt;b&gt;Type&lt;/b&gt;
combo box, chọn&lt;b&gt; Microsoft SQL Server Analysis
Services. &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;iv.&amp;nbsp; Click &lt;b&gt;Edit.&lt;/b&gt;
&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;v.&amp;nbsp; Điền t&amp;ecirc;n server tầng data của bạn.&amp;nbsp; &lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;vi. Chọn &lt;b&gt;TFSWarehouse &lt;/b&gt;database.&amp;nbsp; &lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;vii. Click v&amp;agrave;o n&amp;uacute;t &lt;b&gt;OK &lt;/b&gt;hai lần để th&amp;ecirc;m data source.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Th&amp;ecirc;m report vừa tạo
v&amp;agrave;o project của bạn như sau: &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;a.&amp;nbsp;
Trong Solution Explorer, click phải l&amp;ecirc;n &lt;b&gt;Reports&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; click &amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;b&gt;Add -&amp;gt;Existing Item. &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;b.&amp;nbsp;
Browse đến tập tin &lt;b&gt;rdl&lt;/b&gt; m&amp;agrave; bạn
đ&amp;atilde; export trong bước 2.&lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Chỉnh sửa report như
sau: &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;a.&amp;nbsp;
Chỉnh sửa c&amp;aacute;c c&amp;acirc;u lệnh truy vấn trong &lt;b&gt;Data Pane. &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;b.&amp;nbsp;
K&amp;eacute;o c&amp;aacute;c số liệu hoặc c&amp;aacute;c th&amp;agrave;nh phần v&amp;agrave;o &lt;b&gt;Data Pane. &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;c.&amp;nbsp;
Chỉnh sửa report layout trong &lt;b&gt;Layout
Pane&lt;/b&gt;.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Lưu &amp;yacute;:&lt;/b&gt; Mặc d&amp;ugrave; bạn
c&amp;oacute; thể sử dụng &lt;b&gt;Report Builder&lt;/b&gt; c&amp;oacute; sẵn
trong trang team reporting site, nhưng c&amp;ocirc;ng cụ n&amp;agrave;y kh&amp;ocirc;ng hỗ trợ tốt cho c&amp;aacute;c Visual
Studio reporting scenarios v&amp;agrave; v&amp;igrave; vậy m&amp;agrave; kh&amp;ocirc;ng được khuyến kh&amp;iacute;ch sử dụng.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;M&amp;atilde; nguồn bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin,
hay xem &amp;quot;How To - Customize a Report in Visual Studio Team Foundation Server&amp;quot; trong
t&amp;agrave;i liệu.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;L&amp;agrave;m Sao Để Tạo Một Report Mới Trong Visual Studio&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Bạn c&amp;oacute; thể tạo c&amp;aacute;c report bằng c&amp;aacute;ch sử dụng SQL Server 2005
Reporting Services Designer ở trong Visual Studio (Business Intelligence
Development Studio), c&amp;ugrave;ng với c&amp;aacute;c c&amp;ocirc;ng cụ SQL Server 2005 client.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Tạo một report mới nếu kh&amp;ocirc;ng c&amp;oacute; sẵn một report n&amp;agrave;o c&amp;oacute; thể chỉnh
sửa để đ&amp;aacute;p ứng cho nhu cầu của bạn. Chỉnh sửa một report đ&amp;atilde; c&amp;oacute; thường dễ hơn l&amp;agrave;
tạo một report mới.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để tạo một
report mới trong TFS &lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Tạo một reporting
project như sau: &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;a.&amp;nbsp;
Trong Visual Studio, click &lt;b&gt;File&lt;/b&gt;,
click &lt;b&gt;New&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Project&lt;/b&gt;. &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;b.&amp;nbsp;
Chọn loại &lt;b&gt;Business Intelligence
Project &lt;/b&gt;type. &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;c.&amp;nbsp;
Chọn mẫu l&amp;agrave; &lt;b&gt;Report Server Project&lt;/b&gt;
template. &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;d.&amp;nbsp;
Điền t&amp;ecirc;n v&amp;agrave; chọn vị tr&amp;iacute; v&amp;agrave;o phần &lt;b&gt;Name
&lt;/b&gt;v&amp;agrave; &lt;b&gt;Location&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;OK&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Th&amp;ecirc;m c&amp;aacute;c data
sources như sau: &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;a.&amp;nbsp;
Để tạo kho warehouse data source: &lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;i.&amp;nbsp;
Trong Visual Studio Solution Explorer, click phải &lt;b&gt;Shared Data Sources&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Add New Data Source&lt;/b&gt;. &lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;ii.&amp;nbsp;
Tr&amp;ecirc;n thẻ &lt;b&gt;General&lt;/b&gt; tab, trong &amp;ocirc;
&lt;b&gt;Name&lt;/b&gt; text box, h&amp;atilde;y điền&lt;b&gt;TfsReportDS&amp;nbsp;
&lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;iii.&amp;nbsp; Trong &lt;b&gt;Type&lt;/b&gt;
combo box, h&amp;atilde;y chọn &lt;b&gt;Microsoft SQL
Server. &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;iv.&amp;nbsp;
Click &lt;b&gt;Edit&lt;/b&gt;. &lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;v. &amp;nbsp;Điền t&amp;ecirc;n server tầng data của bạn.&amp;nbsp; &lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;vi.&amp;nbsp;
Chọn &lt;b&gt;TFSWarehouse &lt;/b&gt;database.&amp;nbsp; &lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;vii.&amp;nbsp; Click v&amp;agrave;o n&amp;uacute;t &lt;b&gt;OK &lt;/b&gt;hai lần để th&amp;ecirc;m data source. &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;b.&amp;nbsp;
Để tạo OLAP data source: &lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;i.&amp;nbsp;
Trong Solution Explorer, click phải &lt;b&gt;Shared
Data Sources&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Add New
Data Source. &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;ii.&amp;nbsp;
Tr&amp;ecirc;n thẻ &lt;b&gt;General&lt;/b&gt; tab, trong &amp;ocirc;
&lt;b&gt;Name&lt;/b&gt; text box,nhập t&amp;ecirc;n như sau &lt;b&gt;TfsOlapReportDS &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;iii.&amp;nbsp; Trong &lt;b&gt;Type&lt;/b&gt;
combo box, chọn&lt;b&gt; Microsoft SQL Server
Analysis Services. &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;iv.&amp;nbsp;
Click &lt;b&gt;Edit.&lt;/b&gt; &lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;v.&amp;nbsp;
Điền t&amp;ecirc;n server tầng data của bạn.&amp;nbsp;
&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;vi. Chọn &lt;b&gt;TFSWarehouse &lt;/b&gt;database.&amp;nbsp; &lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;vii. Click v&amp;agrave;o n&amp;uacute;t &lt;b&gt;OK &lt;/b&gt;hai lần để th&amp;ecirc;m data source.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Tạo một report mới
như sau: &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;a.&amp;nbsp;
Trong Solution Explorer, click phải v&amp;agrave;o &lt;b&gt;Reports&lt;/b&gt;, trỏ đến &lt;b&gt;Add&lt;/b&gt;, v&amp;agrave;
sau đ&amp;oacute; click &lt;b&gt;New Item. &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;b.&amp;nbsp;
H&amp;atilde;y chọn template cho &lt;b&gt;Report&lt;/b&gt;.
&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;c.&amp;nbsp;
Đặt t&amp;ecirc;n cho report v&amp;agrave; sau đ&amp;oacute; click&lt;b&gt;
OK&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Chỉnh sửa report như
sau: &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;a.&amp;nbsp;
Nếu &lt;b&gt;Report Designer&lt;/b&gt; kh&amp;ocirc;ng tự
động mở ra, h&amp;atilde;y mở report để chỉnh sửa bằng c&amp;aacute;ch click đ&amp;ocirc;i v&amp;agrave;o n&amp;oacute; trong
Solution Explorer. &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;b.&amp;nbsp;
Trong danh s&amp;aacute;ch &lt;b&gt;Dataset&lt;/b&gt;
drop-down list, h&amp;atilde;y chọn &lt;b&gt;&amp;lt;New
Dataset...&amp;gt;. &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;c.&amp;nbsp;
Đặt t&amp;ecirc;n cho dataset; th&amp;iacute; dụ &lt;b&gt;TestDataSet.
&lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;d.&amp;nbsp;
Chọn &lt;b&gt;TFSOlapReportDS (shared). &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;e.&amp;nbsp;
Click&lt;b&gt; OK&lt;/b&gt;. &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;f.&amp;nbsp;
Click v&amp;agrave;o n&amp;uacute;t ellipsis (...) button kế b&amp;ecirc;n &lt;b&gt;Build&lt;/b&gt; (ở b&amp;ecirc;n dưới danh s&amp;aacute;ch &lt;b&gt;Dataset
&lt;/b&gt;drop-down list), v&amp;agrave; sau đ&amp;oacute; chọn &lt;b&gt;Team
System.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;B&amp;acirc;y giờ bạn c&amp;oacute; thể chỉnh sửa report của bạn bằng c&amp;aacute;ch thay đổi
k&amp;eacute;o c&amp;aacute;c số liệu v&amp;agrave; c&amp;aacute;c k&amp;iacute;ch cỡ (measures and dimensions) từ c&amp;acirc;y &lt;b&gt;Dataset &lt;/b&gt;tree v&amp;agrave;o &lt;b&gt;Query Pane&lt;/b&gt; v&amp;agrave; &lt;b&gt;Filter Pane&lt;/b&gt;.
Bạn c&amp;oacute; thể chỉnh sửa layout của report bằng c&amp;aacute;ch click v&amp;agrave;o thẻ &lt;b&gt;Layout &lt;/b&gt;tab. Bạn c&amp;oacute; thể xem trước report
của bạn bằng c&amp;aacute;ch click v&amp;agrave;o thẻ &lt;b&gt;Preview&lt;/b&gt;
tab.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Lưu &amp;yacute;:&lt;/b&gt; Mặc d&amp;ugrave; bạn
c&amp;oacute; thể sử dụng &lt;b&gt;Report Builder&lt;/b&gt; c&amp;oacute; sẵn
từ trang team reporting site, nhưng c&amp;ocirc;ng cụ n&amp;agrave;y kh&amp;ocirc;ng được hỗ trợ tốt cho c&amp;aacute;c
Visual Studio reporting scenarios v&amp;agrave; v&amp;igrave; thế n&amp;ecirc;n kh&amp;ocirc;ng được khuyến kh&amp;iacute;ch sử dụng.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;M&amp;atilde; nguồn bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng
tin, h&amp;atilde;y xem &amp;quot;How To - Create a Custom Report for Visual Studio Team Foundation
Server&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;L&amp;agrave;m Thế N&amp;agrave;o Để Tạo Mới Một Report Trong Excel &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Bạn c&amp;oacute; thể c&amp;aacute;c report ph&amp;ugrave; hợp bằng c&amp;aacute;ch kết nối Microsoft
Office Excel&amp;reg; trực tiếp đến TFS Reporting OLAP cube. Bằng c&amp;aacute;ch sử dụng Excel, bạn
c&amp;oacute; thể hiển thị report data trong form của pivot tables hay c&amp;aacute;c pivot chart. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để tạo một
Excel pivot table report&amp;nbsp; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; H&amp;atilde;y đảm bảo l&amp;agrave; bạn
đ&amp;atilde; c&amp;agrave;i đặt Microsoft SQL Server 2005 Analysis Services 9.0 OLE DB Provider. Bạn
c&amp;oacute; thể c&amp;agrave;i đặt n&amp;oacute; từ &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=d09c1d60-a13c-4479-9b91-9e8b9d835cdc"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=d09c1d60-a13c-4479-9b91-9e8b9d835cdc&lt;/a&gt; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Khởi động &lt;b&gt;Excel&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; H&amp;atilde;y chọn worksheet m&amp;agrave;
bạn muốn để th&amp;ecirc;m c&amp;aacute;c pivot table report. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Ở tr&amp;ecirc;n &lt;b&gt;Data &lt;/b&gt;menu, h&amp;atilde;y chọn &lt;b&gt;PivotTable&lt;/b&gt; v&amp;agrave; &lt;b&gt;PivotChart Report&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; H&amp;atilde;y chọn &lt;b&gt;External Data Source. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Click &lt;b&gt;Next.&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; Click &lt;b&gt;Get Data.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;8.&amp;nbsp; Click v&amp;agrave;o thẻ &lt;b&gt;OLAP Cubes&lt;/b&gt; tab. &lt;/p&gt;
&lt;p&gt;9.&amp;nbsp; Chọn &lt;b&gt;&amp;lt;New Data Source&amp;gt; &lt;/b&gt;v&amp;agrave; sau đ&amp;oacute; click
&lt;b&gt;OK&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;10. Đặt một t&amp;ecirc;n cho data source. &lt;/p&gt;
&lt;p&gt;11. H&amp;atilde;y chọn Microsoft SQL Server 2005 Analysis Services 9.0
OLE DB provider. &lt;/p&gt;
&lt;p&gt;12. Click &lt;b&gt;Connect&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;13. Chọn &lt;b&gt;Analysis
Server.&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;14. Điền t&amp;ecirc;n của reporting server của bạn; th&amp;iacute; dụ, &lt;b&gt;TFSRTM.&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;15. Click &lt;b&gt;Next.&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;16. Chọn &lt;b&gt;TFSWarehouse&lt;/b&gt;
v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Finish&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;17. Chọn cube m&amp;agrave; bạn muốn build một report (v&amp;iacute; dụ, &lt;b&gt;Code Churn, Work Items&lt;/b&gt;, v&amp;agrave; &lt;b&gt;Test Result&lt;/b&gt;) v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;OK.&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;18. Click &lt;b&gt;OK&lt;/b&gt; againmột
lần nữa để trở về &lt;b&gt;Pivot Table &lt;/b&gt;v&amp;agrave;&lt;b&gt; Pivot Chart Wizard&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;19. Click &lt;b&gt;Finish &lt;/b&gt;để
th&amp;ecirc;m pivot table v&amp;agrave;o worksheet.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Sử dụng &amp;nbsp;&lt;b&gt;PivotTable Field List&lt;/b&gt; để k&amp;eacute;o v&amp;agrave; thả c&amp;aacute;c
column v&amp;agrave; c&amp;aacute;c measure v&amp;agrave;o pivot table. Th&amp;iacute; dụ, để xem một line count cho từng
Team Project tr&amp;ecirc;n server của bạn:&amp;nbsp; &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Chọn &lt;b&gt;Code Churn&lt;/b&gt; cube trong bước 17 ở tr&amp;ecirc;n.&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; K&amp;eacute;o &lt;b&gt;TeamProject.TeamProject&lt;/b&gt; v&amp;agrave;o phần &lt;b&gt;Column Fields &lt;/b&gt;của pivot table.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; K&amp;eacute;o &lt;b&gt;Total Lines&lt;/b&gt; v&amp;agrave;o phần &lt;b&gt;Data Items&lt;/b&gt; của pivot table.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;M&amp;atilde; nguồn bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về sử dụng Excel để tạo c&amp;aacute;c report th&amp;iacute;ch hợp, h&amp;atilde;y xem &amp;quot;Using Microsoft Excel
for Team Foundation Server Reporting&amp;quot; tại&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms244713%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms244713(VS.80).aspx&lt;/a&gt; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; C&amp;agrave;i đặt Microsoft
SQL Server 2005 Analysis Services 9.0 OLE DB Provider từ đ&amp;acirc;y &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=d09c1d60-a13c-4479-9b91-9e8b9d835cdc"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=d09c1d60-a13c-4479-9b91-9e8b9d835cdc&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;L&amp;agrave;m thế n&amp;agrave;o để Tạo một
Scheduled Report Snapshot&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Bạn c&amp;oacute; thể sử dụng scheduled report snapshots để hiểu r&amp;otilde; hơn
c&amp;aacute;c xu hướng theo thời gian, hay để nhớ c&amp;aacute;c mốc dữ liệu quan trọng th&amp;ocirc;ng qua
duration của project của bạn.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để tạo một
scheduled report snapshot &lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong Team
Explorer, click phải l&amp;ecirc;n &lt;b&gt;Reports&lt;/b&gt; đối
với team project của bạn v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Show
Report Site.&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Mở một report từ
trang report site. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Click thẻ &lt;b&gt;Properties&lt;/b&gt; tab. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Click v&amp;agrave;o &lt;b&gt;History link&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; C&amp;agrave;i đặt một schedule
khi m&amp;agrave; bạn muốn chạy snapshot.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Sau khi schedule được c&amp;agrave;i đặt, bạn c&amp;oacute; thể t&amp;igrave;m c&amp;aacute;c snapshot
tr&amp;ecirc;n thẻ &lt;b&gt;History&lt;/b&gt; cho report đ&amp;oacute;. Bạn
cũng c&amp;oacute; thể tạo c&amp;aacute;c snapshot bằng tay tr&amp;ecirc;n thẻ &lt;b&gt;History&lt;/b&gt; tab.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;L&amp;agrave;m thế n&amp;agrave;o để Tạo một
Report Subscription &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Bạn c&amp;oacute; thể sử dụng c&amp;aacute;c report subscriptions để tạo c&amp;aacute;c
reports v&amp;agrave; export ch&amp;uacute;ng th&amp;agrave;nh một tạp tin để chia sẻ cho c&amp;aacute;c người kh&amp;aacute;c sử dụng.
Bạn c&amp;oacute; thể c&amp;agrave;i đặt c&amp;aacute;c subscription để ghi đ&amp;egrave; l&amp;ecirc;n c&amp;aacute;c report cũ, hay bạn c&amp;oacute; thể
build một tạp c&amp;aacute;c report theo thời gian để xem c&amp;aacute;c snapshot của dữ liệu của dự
&amp;aacute;n. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để tạo một
report subscription &lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong Team
Explorer, click phải l&amp;ecirc;n &lt;b&gt;Reports&lt;/b&gt; đối
với team project của bạn v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Show
Report Site.&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Mở một report từ
trang report site. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Click v&amp;agrave;o thẻ&lt;b&gt; Subscriptions&lt;/b&gt; tab. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Click &lt;b&gt;New Subscription &lt;/b&gt;để&lt;b&gt; &lt;/b&gt;&amp;nbsp;tạo report subscription.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;L&amp;agrave;m thế n&amp;agrave;o để Th&amp;ecirc;m một
Report Mới cho một Process Template đ&amp;atilde; c&amp;oacute;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Bạn c&amp;oacute; thể sử dụng c&amp;ocirc;ng cụ &lt;b&gt;Process Editor&lt;/b&gt; tool, c&amp;oacute; sẵn trong phi&amp;ecirc;n bản mới nhất của &lt;b&gt;Team Foundation Server Power Tool&lt;/b&gt;, để
th&amp;ecirc;m một report mới cho một process template đ&amp;atilde; c&amp;oacute;. Bạn c&amp;oacute; thể tại c&amp;ocirc;ng cụ &lt;b&gt;Team Foundation Server Power Tool &lt;/b&gt;từ
đ&amp;acirc;y &lt;a href="http://msdn2.microsoft.com/en-us/vstudio/aa718351.aspx"&gt;http://msdn2.microsoft.com/en-us/vstudio/aa718351.aspx&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Để th&amp;ecirc;m c&amp;aacute;c report mới &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Tải process
template m&amp;agrave; ph&amp;ugrave; hợp với c&amp;aacute;c y&amp;ecirc;u cầu của bạn nhất như sau:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;a.&amp;nbsp; Trong
Visual Studio, click Team v&amp;agrave; sau đ&amp;oacute; chọn &lt;b&gt;Team
Foundation Server Settings. &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;b.&amp;nbsp;
Click &lt;b&gt;Process Template Manager.&lt;/b&gt;
&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;c.&amp;nbsp;
Trong hộp thoại &lt;b&gt;Process Template
Manager&lt;/b&gt; dialog box, h&amp;atilde;y chọn process template m&amp;agrave; bạn muốn chỉnh sửa v&amp;agrave; sau
đ&amp;oacute; click &lt;b&gt;Download&lt;/b&gt;. &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;d.&amp;nbsp;
Trong hộp thoại &lt;b&gt;Download Process
Template &lt;/b&gt;dialog box, h&amp;atilde;y chọn vị tr&amp;iacute; thư mục tr&amp;ecirc;n ổ đĩa của m&amp;aacute;y của bạn, v&amp;agrave;
sau đ&amp;oacute; click &lt;b&gt;Save&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; H&amp;atilde;y mở &lt;b&gt;Process Template&lt;/b&gt; trong &lt;b&gt;Process Editor&lt;/b&gt; như sau: &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;a. Trong Visual Studio, click v&amp;agrave;o &lt;b&gt;Team &lt;/b&gt;menu. &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;b.&amp;nbsp;
Click &lt;b&gt;Process Editor&lt;/b&gt;, v&amp;agrave; sau
đ&amp;oacute; click &lt;b&gt;Open Process Template&lt;/b&gt;.&amp;nbsp; &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;c.&amp;nbsp;
Trong hộp thoại &lt;b&gt;Open Process
Template fileset &lt;/b&gt;dialog box, h&amp;atilde;y chọn process template để tải về v&amp;agrave; sau đ&amp;oacute;
click &lt;b&gt;Open.&lt;/b&gt;&amp;nbsp; &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;V&amp;agrave; n&amp;oacute; sẽ mở ra tập tin &lt;b&gt;ProcessTemplate.xml&lt;/b&gt; trong &lt;b&gt;Visual Studio. &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;d.&amp;nbsp;
Đặt t&amp;ecirc;n &lt;b&gt;Name &lt;/b&gt;template m&amp;agrave; bạn
muốn t&amp;ugrave;y chỉnh.&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Trong &lt;b&gt;Process Template Explorer&lt;/b&gt;, click &lt;b&gt;Reports.&lt;/b&gt;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Tr&amp;ecirc;n thanh toolbar,
click &lt;b&gt;Add.&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Trong hộp thoại &lt;b&gt;Report &lt;/b&gt;dialog box, tr&amp;ecirc;n thẻ &lt;b&gt;Report Detail&lt;/b&gt; tab, điền t&amp;ecirc;n cho
report.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Browse đến tập tin &lt;b&gt;.rdl &lt;/b&gt;m&amp;agrave; bạn muốn th&amp;ecirc;m trong trường &lt;b&gt;File Name &lt;/b&gt;field. H&amp;atilde;y để c&amp;aacute;c trường kh&amp;aacute;c
mặc định v&amp;agrave; kh&amp;ocirc;ng thực hiện bất k&amp;igrave; thay đổi dữ liệu n&amp;agrave;o tr&amp;ecirc;n c&amp;aacute;c thẻ &lt;b&gt;Properties&lt;/b&gt; v&amp;agrave; thẻ &lt;b&gt;Parameters&lt;/b&gt; tabs. &lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; Tr&amp;ecirc;n thẻ &lt;b&gt;DataSources &lt;/b&gt;tab, nhập t&amp;ecirc;n của data
sources tương ứng.&amp;nbsp; Data sources mặc định
đối vơi c&amp;aacute;c process template c&amp;oacute; trong TFS l&amp;agrave;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;/TfsOlapReportDS and /TfsReportDS. &lt;/p&gt;
&lt;p&gt;8.&amp;nbsp; Click &lt;b&gt;OK.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;M&amp;atilde; nguồn bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Bạn c&amp;oacute; thể download c&amp;ocirc;ng
cụTeam Foundation Server Power Tool từ &lt;a href="http://msdn2.microsoft.com/en-us/vstudio/aa718351.aspx"&gt;http://msdn2.microsoft.com/en-us/vstudio/aa718351.aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về c&amp;aacute;ch sử dụng c&amp;ocirc;ng cụ Process Editor tool để t&amp;ugrave;y chỉnh c&amp;aacute;c work item types, h&amp;atilde;y
xem &amp;quot;How To - Customize a Process Template in Visual Studio Team Foundation
Server&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;T&amp;agrave;i liệu ho&amp;agrave;n chỉnh của phần n&amp;agrave;y bạn c&amp;oacute; thể download tại đ&amp;acirc;y:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cid-c756261140cf0eb3.skydrive.live.com/self.aspx/GT/B%C3%A0i%20t%E1%BA%ADp%20Reporting.docx"&gt;B&amp;agrave;i Tập Reporting&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Bài tập :  Project Management </title><link>http://msdnvietnam.net/wikis/tfs/b-224-i-t-p-project-management/revision/0.aspx</link><pubDate>Sun, 31 Jan 2010 17:45:31 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:141</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to TFS - Team Foundation System by Nguyễn Thị Như Quỳnh on 2/1/2010 1:45:31 AM&lt;br /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;C&amp;aacute;c mục&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Check-in Policies &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để c&amp;agrave;i đặt c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch
check-in policy để thực thi c&amp;aacute;c ti&amp;ecirc;u chuẩn về chất lượng m&amp;atilde;. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để c&amp;agrave;i đặt c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch check-in
policy để đảm bảo l&amp;agrave; c&amp;aacute;c lập tr&amp;igrave;nh vi&amp;ecirc;n sẽ li&amp;ecirc;n kết c&amp;aacute;c work item với c&amp;aacute;c
check-in.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để c&amp;agrave;i đặt c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch check-in
policy để thực thi c&amp;aacute;c ti&amp;ecirc;u chuẩn về m&amp;atilde;.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;b&gt;Project Management&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng Microsoft Project để
quản l&amp;yacute; dự &amp;aacute;n của bạn &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng Microsoft Excel để quản
l&amp;yacute; dự &amp;aacute;n của bạn&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tạo một mẫu quy tr&amp;igrave;nh tối thiểu&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để t&amp;ugrave;y chỉnh c&amp;aacute;c quy tr&amp;igrave;nh mẫu &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để t&amp;ugrave;y chỉnh một loại work item với
m&amp;ocirc;t quy tr&amp;igrave;nh mẫu &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để t&amp;ugrave;y chỉnh một loại work item với
một dự &amp;aacute;n nh&amp;oacute;m đ&amp;atilde; c&amp;oacute; &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tạo một iteration &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tạo một area &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để th&amp;ecirc;m một th&amp;ocirc;ng b&amp;aacute;o cho sự kiện
check-in &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để thiết lập một report dashboard
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tạo c&amp;aacute;c thư mục trong kho
source control của bạn&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để x&amp;oacute;a một dự &amp;aacute;n từ Team
Foundation Server&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Check-in Policies &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để c&amp;agrave;i đặt c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch
check-in policy để thực thi c&amp;aacute;c ti&amp;ecirc;u chuẩn về chất lượng m&amp;atilde;. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để c&amp;agrave;i đặt c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch
check-in policy để đảm bảo l&amp;agrave; c&amp;aacute;c lập tr&amp;igrave;nh vi&amp;ecirc;n sẽ li&amp;ecirc;n kết c&amp;aacute;c work item với
c&amp;aacute;c check-in.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để c&amp;agrave;i đặt c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch
check-in policy để thực thi c&amp;aacute;c ti&amp;ecirc;u chuẩn về m&amp;atilde;.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;L&amp;agrave;m Thế N&amp;agrave;o Để C&amp;agrave;i Đặt
C&amp;aacute;c Ch&amp;iacute;nh S&amp;aacute;ch Check-In Policy Để Thực Thi C&amp;aacute;c Ti&amp;ecirc;u Chuẩn Về Chất Lượng M&amp;atilde;&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng một sự li&amp;ecirc;n kết của ch&amp;iacute;nh s&amp;aacute;ch ph&amp;acirc;n t&amp;iacute;ch m&amp;atilde; code
analysis v&amp;agrave; ch&amp;iacute;nh s&amp;aacute;ch kiểm thử để thi h&amp;agrave;nh một ti&amp;ecirc;u chuẩn chất lượng m&amp;atilde;. Th&amp;iacute; dụ,
sử dụng ch&amp;iacute;nh s&amp;aacute;ch kiểm thử c&amp;oacute; sẵn trong out-of-box với VSTS, để đảm bảo l&amp;agrave; c&amp;aacute;c
kiểm thử cụ thể được thực thi v&amp;agrave; th&amp;ocirc;ng qua trước khi cho ph&amp;eacute;p source được check
trong Microsoft&amp;reg; Visual Studio&amp;reg; 2005 Team Foundation Server (TFS) source
control. Bạn cũng c&amp;oacute; thẻ cấu h&amp;igrave;nh một ch&amp;iacute;nh s&amp;aacute;ch ph&amp;acirc;n t&amp;iacute;ch m&amp;atilde; để gi&amp;uacute;p đảm bảo
l&amp;agrave; m&amp;atilde; của bạn đ&amp;aacute;p ứng được ti&amp;ecirc;u chuẩn chất lượng bằng c&amp;aacute;ch đảm bảo về c&amp;aacute;c quy tắc
bảo mật, hiệu suất, t&amp;iacute;nh tiện lợi, bảo tr&amp;igrave; v&amp;agrave; độ tin cậy được th&amp;ocirc;ng qua. &lt;/p&gt;
&lt;p&gt;Bằng c&amp;aacute;ch thực thi loại ch&amp;iacute;nh s&amp;aacute;ch check-in policy n&amp;agrave;y ngo&amp;agrave;i
việc thi h&amp;agrave;nh ch&amp;iacute;nh s&amp;aacute;ch thực thi c&amp;aacute;c ti&amp;ecirc;u chuẩn chất lượng của m&amp;atilde;, bạn c&amp;ograve;n phải
đảm bảo l&amp;agrave; m&amp;atilde; của bạn đ&amp;aacute;p ứng được một cổng chất lượng m&amp;atilde; cụ thể.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để thực thi
một ch&amp;iacute;nh s&amp;aacute;ch code analysis check-in policy cho một team project &lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong &lt;b&gt;Team Explorer&lt;/b&gt;, click phải l&amp;ecirc;n team
project của bạn, trỏ đến &lt;b&gt;Team Project
Settings&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Source
Control.&amp;nbsp; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Click v&amp;agrave;o thẻ &lt;b&gt;Check-in Policy&lt;/b&gt; tab.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Click &lt;b&gt;Add&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; chọn v&amp;agrave; cấu h&amp;igrave;nh ch&amp;iacute;nh
s&amp;aacute;ch tương ứng.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;M&amp;atilde; nguồn bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về tạo v&amp;agrave; sử dụng một check-in policy t&amp;ugrave;y &amp;yacute;, h&amp;atilde;y xem &amp;quot;How To - Step Through
Creating Custom Check-in Policies for TFS&amp;quot; trong t&amp;agrave;i liệu hướng dẫn n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu l&amp;agrave;m thế
n&amp;agrave;o để t&amp;ugrave;y chỉnh một ch&amp;iacute;nh s&amp;aacute;ch check-in policy, h&amp;atilde;y xem&amp;quot;Walkthrough:
Customizing Check-in Policies and Notes&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181281%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms181281(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để xem c&amp;aacute;c đoạn m&amp;atilde;
đơn giản m&amp;agrave; kh&amp;ocirc;ng cho ph&amp;eacute;p chọn c&amp;aacute;c pattern tr&amp;ecirc;n check-in, h&amp;atilde;y xem &amp;quot;Checkin
Policy to Disallow Certain Patterns&amp;quot; tại&lt;a href="http://blogs.msdn.com/jmanning/archive/2006/02/02/523125.aspx"&gt; http://blogs.msdn.com/jmanning/archive/2006/02/02/523125.aspx&lt;/a&gt; &amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; Để xem c&amp;aacute;c đoạn m&amp;atilde;
đơn giản m&amp;agrave; sẽ thực thi c&amp;aacute;c comment tr&amp;ecirc;n check-in,h&amp;atilde;y xem &amp;quot;Sample Checkin
Policy: Make Sure the Comment Isn&amp;#39;t Empty&amp;quot; tại&lt;a href="http://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx"&gt; http://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx&lt;/a&gt; &amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu l&amp;agrave;m thế
n&amp;agrave;o để đăng k&amp;iacute; một ch&amp;iacute;nh s&amp;aacute;ch check-in policy mới, h&amp;atilde;y xem &amp;quot;I&amp;#39;ve Made a New
Check-In Policy! How Do I Add It?&amp;quot; tại&lt;a href="http://blogs.msdn.com/jmanning/archive/2006/02/07/526778.aspx"&gt; http://blogs.msdn.com/jmanning/archive/2006/02/07/526778.aspx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;T&amp;agrave;i liệu ho&amp;agrave;n chỉnh c&amp;oacute; thể download tại đ&amp;acirc;y:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cid-c756261140cf0eb3.skydrive.live.com/self.aspx/GT/B%C3%A0i%20t%E1%BA%ADp%20Project%20Management.docx"&gt;B&amp;agrave;i Tập: Project Management&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Bài tập : Team Build </title><link>http://msdnvietnam.net/wikis/tfs/b-224-i-t-p-team-build/revision/0.aspx</link><pubDate>Sun, 31 Jan 2010 17:41:03 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:140</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to TFS - Team Foundation System by Nguyễn Thị Như Quỳnh on 2/1/2010 1:41:03 AM&lt;br /&gt;
&lt;p&gt;&lt;b&gt;C&amp;aacute;c mục&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Administration &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o đảm bảo an to&amp;agrave;n cho build server của
bạn&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m sao để x&amp;oacute;a đi một build &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để x&amp;oacute;a một loại build type &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Kết nối một work item với một build như thế
n&amp;agrave;o&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Check-in Policies &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch
check-in policy để cải thiện chất lượng c&amp;aacute;c check-in&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch
check-in policy để kết nối c&amp;aacute;c work item với c&amp;aacute;c build &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Continuous Integration Builds &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tự động chạy c&amp;aacute;c Continuous
Integration (CI) builds &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để x&amp;aacute;c định nếu bạn cần một
rolling build &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để x&amp;aacute;c định c&amp;aacute;c khoảng thời gian
rolling build của bạn&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Customization &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để chỉnh sửa build number&amp;nbsp; &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để c&amp;agrave;i đặt workspace mapping để
nhận v&amp;agrave; build một tập con của c&amp;acirc;y&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để build một dự &amp;aacute;n với c&amp;aacute;c phụ
thuộc tr&amp;ecirc;n c&amp;aacute;c team project kh&amp;aacute;c&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để thay đổi c&amp;aacute;c cấu h&amp;igrave;nh build
(release/debug) &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Deployment &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để c&amp;agrave;i đặt một build server&amp;nbsp; &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để x&amp;aacute;c định nếu bạn cần nhiều
build server &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;General &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để build v&amp;agrave; triển khai một ứng dụng
ASP.NET với Team Build &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để build một ứng dụng Microsoft&amp;reg;
.NET 1.1 với Team Build &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để build c&amp;agrave;i đặt v&amp;agrave; triển khai
c&amp;aacute;c project với Team Build &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tạo một team build &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tạo nhiều loại build &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tạo một team build cho một
project m&amp;agrave; tham chiếu reference đến c&amp;aacute;c assemblies từ một project kh&amp;aacute;c&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để m&amp;ocirc; tả những sự kiện build
e-mail event&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để nhận c&amp;aacute;c th&amp;ocirc;ng b&amp;aacute;o khi một
build bị thất bại&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để khởi động một build &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để x&amp;aacute;c nhận l&amp;agrave; build th&amp;agrave;nh c&amp;ocirc;ng&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để xem một build output&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để thay đổi vị tr&amp;iacute; của build
server location &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để thay đổi vị tr&amp;iacute; đầu ra của
build output location &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để x&amp;aacute;c định những tập thay đổi
n&amp;agrave;o l&amp;agrave; một phần của qu&amp;aacute; tr&amp;igrave;nh build &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để thay đổi chất lượng c&amp;aacute;c build
đ&amp;atilde; được b&amp;aacute;o c&amp;aacute;o&amp;nbsp; &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Projects &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng chiến thuật
single-solution&amp;nbsp; &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng chiến thuật một
partitioned-solution &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng chiến thuật một &amp;nbsp;multiple-solution&amp;nbsp; &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Reporting &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để xem chất lượng build &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để xem tất cả c&amp;aacute;c check-in cho một
build &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để xem c&amp;aacute;c work item hay c&amp;aacute;c bug kết
th&amp;uacute;c một build &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để xem mở c&amp;aacute;c work item hay c&amp;aacute;c
bug cho một build &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để theo d&amp;otilde;i tiến độ từ một build đến
một build &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để theo d&amp;otilde;i c&amp;aacute;c trường hợp kiểm
thử được pass/fail results đối với một build &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để xem t&amp;igrave;nh trạng build status
(BVT results) &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Scheduled Builds &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để chạy tự động c&amp;aacute;c nightly
builds &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để x&amp;aacute;c định tần số build v&amp;agrave; loại build
cho dự &amp;aacute;n của bạn&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Test-Driven Development &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để tạo một &amp;quot;hello world&amp;quot;
acceptance test &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để chạy c&amp;aacute;c kiểm thử một c&amp;aacute;ch tự
động như một phần của quy tr&amp;igrave;nh build &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để chạy code analysis như một phần
của quy tr&amp;igrave;nh build &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để lấy c&amp;aacute;c failed tests để fail một
build&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Administration
&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o đảm bảo an to&amp;agrave;n cho build server
của bạn&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m sao để x&amp;oacute;a đi một build &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để x&amp;oacute;a một loại build type &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Kết nối một work item với một build như thế
n&amp;agrave;o&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;L&amp;agrave;m thế n&amp;agrave;o đảm bảo an to&amp;agrave;n cho build server của bạn&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để đảm bảo
an to&amp;agrave;n cho build server của bạn&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Triển khai c&amp;aacute;c
build service tr&amp;ecirc;n một server ri&amp;ecirc;ng, thay v&amp;igrave; chia sẻ một server với tầng
application hay tầng data của Microsoft Visual Studio&amp;reg; 2005 Team Foundation
Server (TFS). &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Cấp quyền truy cập read/write
c&amp;aacute;c build process trong thư mục build. H&amp;atilde;y đảm bảo l&amp;agrave; t&amp;agrave;i khoản đang chạy c&amp;aacute;c
build được ph&amp;eacute;p truy cập đến thư mục n&amp;agrave;y.&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Cấp quyền truy cập read/write
c&amp;aacute;c build process đến c&amp;aacute;c build drop network share. Hảy đảm bảo l&amp;agrave; t&amp;agrave;i khoản
đan chạy c&amp;aacute;c build được cấp ph&amp;eacute;p cho sự chia sẻ n&amp;agrave;y.&lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Hảy đảm bảo l&amp;agrave; t&amp;agrave;i
khoản được sử dụng để chạy c&amp;aacute;c team build l&amp;agrave; một th&amp;agrave;nh vi&amp;ecirc;n của nh&amp;oacute;m Team
Project&amp;#39;s Build Services group.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Để n&amp;acirc;ng cao sự bảo mật của Team Foundation Server security, bạn
n&amp;ecirc;n c&amp;agrave;i đặt build server tr&amp;ecirc;n m&amp;aacute;y tinh ri&amp;ecirc;ng của n&amp;oacute; thay v&amp;igrave; l&amp;agrave; tr&amp;ecirc;n tầng application
hay tầng data. &amp;nbsp;H&amp;atilde;y chỉ r&amp;otilde; l&amp;agrave; c&amp;aacute;c bước
triển khai hay build &amp;nbsp;c&amp;oacute; thể đ&amp;ograve;i hỏi c&amp;aacute;c
đặc quyền cao; th&amp;iacute; dụ, h&amp;atilde;y tạo một thư mục ảo để triển khai một ứng dụng Web
y&amp;ecirc;u cầu c&amp;aacute;c quyền quản trị tr&amp;ecirc;n build server. Điều n&amp;agrave;y c&amp;oacute; nghĩa l&amp;agrave; t&amp;agrave;i khoản Microsoft
Windows&amp;reg; account đang chạy c&amp;aacute;c build y&amp;ecirc;u cầu c&amp;aacute;c quyền n&amp;agrave;y. Nếu m&amp;aacute;y t&amp;iacute;nh d&amp;ugrave;ng để
build l&amp;agrave; ở tầng application, th&amp;igrave; t&amp;agrave;i khản build n&amp;agrave;y sẽ đại diện cho một nguy cơ
bảo mật(security risk). Tương tự, nếu m&amp;aacute;y t&amp;iacute;nh d&amp;ugrave;ng để build l&amp;agrave; ở tầng data,
th&amp;igrave; t&amp;agrave;i khoản build n&amp;agrave;y c&amp;oacute; thể truy cập v&amp;agrave; thay đổi cơ sở dữ liệu tr&amp;ecirc;n tầng đ&amp;oacute;.
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Lưu &amp;yacute;:&lt;/b&gt; V&amp;igrave; l&amp;iacute; do bảo
mật, đừng th&amp;ecirc;m bất k&amp;igrave; t&amp;agrave;i khoản account n&amp;agrave;o đang chạy tr&amp;ecirc;n team build đến nh&amp;oacute;m SERVER\
Service Accounts group. C&amp;aacute;c th&amp;agrave;nh vi&amp;ecirc;n của nh&amp;oacute;m n&amp;agrave;y c&amp;oacute; đủ quyền quản trị tr&amp;ecirc;n TFS.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về c&amp;aacute;c nh&amp;oacute;m v&amp;agrave; quyền TFS(TFS groups and permissions), h&amp;atilde;y xem &amp;quot;Team Foundation
Server Default Groups, Permissions, and Roles&amp;quot; tại đ&amp;acirc;y &lt;a href="http://msdn2.microsoft.com/en-us/library/ms253077%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms253077(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;L&amp;agrave;m sao để
x&amp;oacute;a đi một build&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Để x&amp;oacute;a một build, bạn sử dụng c&amp;ocirc;ng cụ TFSBuild command-line. X&amp;aacute;c
định địa chỉ của TFS server, t&amp;ecirc;n của team project, v&amp;agrave; t&amp;ecirc;n của build; th&amp;iacute; dụ: &lt;/p&gt;
&lt;p align="center"&gt;&lt;i&gt;TfsBuild delete &lt;span style="text-decoration:underline;"&gt;http://mytfsserver:8080&lt;/span&gt; myproject build20070606.4&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về việc x&amp;oacute;a một build đ&amp;atilde; ho&amp;agrave;n th&amp;agrave;nh, h&amp;atilde;y xem &amp;quot;How to: Delete a Completed Build&amp;quot;
tại &lt;a href="http://msdn2.microsoft.com/en-us/library/aa337656%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa337656(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về lệnh x&amp;oacute;a, h&amp;atilde;y xem &amp;quot;Delete Command (Team Foundation Build)&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms244360%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms244360(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;L&amp;agrave;m thế n&amp;agrave;o
để x&amp;oacute;a một loại build type&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Bạn kh&amp;ocirc;ng thể x&amp;oacute;a c&amp;aacute;c loại Team Build types bằng c&amp;aacute;ch sử dụng
Team Explorer. Thay v&amp;agrave;o đ&amp;ograve;, bạn n&amp;ecirc;n x&amp;oacute;a bỏ c&amp;aacute;c build type từ source
control.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để x&amp;oacute;a một
build type đ&amp;atilde; c&amp;oacute;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; H&amp;atilde;y mở &lt;b&gt;Source Control Explorer. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;2. &amp;nbsp;Ở trong
Source Control Explorer, h&amp;atilde;y mở rộng thư mục team project folder của bạn. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Mở rộng
TeamBuildTypes folder. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Click chuột
phải l&amp;ecirc;n Team Build folder đại diện cho Team Build type m&amp;agrave; bạn muốn x&amp;oacute;a v&amp;agrave; sau
đ&amp;oacute; click &lt;b&gt;Delete&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Click chuột
phải l&amp;ecirc;n Team Build folder một lần nữa v&amp;agrave; sau đ&amp;oacute; &amp;nbsp;click &lt;b&gt;Check
In Pending &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Changes... &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; H&amp;atilde;y mở
Team Explorer. &lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; Click chuột
phải l&amp;ecirc;n Team Builds folder v&amp;agrave; sau đ&amp;oacute; click Refresh. &lt;/p&gt;
&lt;p&gt;8.&amp;nbsp; Mở rộng
thư mục Team Builds folder v&amp;agrave; x&amp;aacute;c nhận l&amp;agrave; Team Build đ&amp;atilde; được x&amp;oacute;a.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m
th&amp;ocirc;ng tin về Team Build, h&amp;atilde;y xem &amp;quot;Overview of Team Foundation Build&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181710%28vs.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms181710(vs.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Kết nối một
work item với một build như thế n&amp;agrave;o&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng hộp thoại &lt;b&gt;Check
In&lt;/b&gt; đế kết nối c&amp;aacute;c work item với một check-in. Hộp thoại n&amp;agrave;y sẽ kết nối tự động
kết nối những work item n&amp;agrave;y với build tiếp theo.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để kết nối
một work item với một build &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; H&amp;atilde;y thay đổi m&amp;atilde; c&amp;aacute;c
bạn muốn c&amp;oacute; ở trong c&amp;aacute;c build v&amp;agrave; sẽ được li&amp;ecirc;n kết với một work item. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; &lt;b&gt;Check in&lt;/b&gt; c&amp;aacute;c pending changes. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Trong hộp thoại &lt;b&gt;Check In&lt;/b&gt;, click Work Items. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; H&amp;atilde;y chọn c&amp;aacute;c work
item(s) m&amp;agrave; bạn muốn kết nối với check-in n&amp;agrave;y.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;Tất cả c&amp;aacute;c tập thay đổi changeset m&amp;agrave; xảy ra từ lần build
th&amp;agrave;nh c&amp;ocirc;ng cuối c&amp;ugrave;ng sẽ được kết nối với lần build tiếp theo. Sau lần build tiếp
theo, Team Build sẽ liệt k&amp;ecirc; danh s&amp;aacute;ch c&amp;aacute;c changeset n&amp;agrave;y trong c&amp;aacute;c tập changeset
kết nối đối với build v&amp;agrave; sẽ gồm c&amp;oacute; c&amp;aacute;c work item được chọn đang được kết nối với
changeset. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về checking in pending changes, h&amp;atilde;y xem &amp;quot;How to: Check In Pending Changes&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181411%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms181411(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Check-in
Policies &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch
check-in policy để cải thiện chất lượng c&amp;aacute;c check-in&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; L&amp;agrave;m thế n&amp;agrave;o để sử dụng c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch
check-in policy để kết nối c&amp;aacute;c work item với c&amp;aacute;c build &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;L&amp;agrave;m Thế N&amp;agrave;o Để Sử Dụng C&amp;aacute;c Ch&amp;iacute;nh S&amp;aacute;ch Check-In Policy Để Cải Thiện Chất
Lượng C&amp;aacute;c Check-In&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng một sự kết hợp giữa c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch ph&amp;acirc;n t&amp;iacute;ch code v&amp;agrave;
ch&amp;iacute;nh s&amp;aacute;ch kiểm thử(code analysis and testing policies) để cải thiện chất lượng
của c&amp;aacute;c check-in. Th&amp;iacute; dụ, sử dụng c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch kiểm thử check-in mặc định để
đảm bảo l&amp;agrave; c&amp;aacute;c kiểm thử cụ thể được thực thi v&amp;agrave; th&amp;ocirc;ng qua trước khi cho ph&amp;eacute;p phần
source được check trong TFS source control. Bạn cũng c&amp;oacute; thể cấu h&amp;igrave;nh một ch&amp;iacute;nh
s&amp;aacute;ch code analysis policy để gi&amp;uacute;p đảm bảo l&amp;agrave; phần code của bạn đ&amp;aacute;p ứng được c&amp;aacute;c
ti&amp;ecirc;u chuẩn chất lượng bằng c&amp;aacute;ch đảm bảo về bảo mật, hiệu suất, bảo tr&amp;igrave; v&amp;agrave; c&amp;aacute;c
quy tắc về độ tin cậy được th&amp;ocirc;ng qua. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để thi h&amp;agrave;nh
một ch&amp;iacute;nh s&amp;aacute;ch code analysis check-in policy cho một dự &amp;aacute;n nh&amp;oacute;m&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong &lt;b&gt;Team Explorer&lt;/b&gt;, click chuột phải l&amp;ecirc;n
team project của bạn, h&amp;atilde;y chọn &lt;b&gt;Team
Project Settings&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Source
Control&lt;/b&gt; .&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Click v&amp;agrave;o tab &lt;b&gt;Check-in Policy&lt;/b&gt; . &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Click &lt;b&gt;Add &lt;/b&gt;v&amp;agrave; sau đ&amp;oacute; chọn v&amp;agrave; cấu h&amp;igrave;nh c&amp;aacute;c
ch&amp;iacute;nh s&amp;aacute;ch code analysis and testing policies.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về tạo v&amp;agrave; sử dụng một ch&amp;iacute;nh s&amp;aacute;ch custom check-in policy, h&amp;atilde;y xem&amp;quot;How To - Step
Through Creating Custom Check-in Policies for TFS&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu l&amp;agrave;m c&amp;aacute;ch
n&amp;agrave;o để t&amp;ugrave;y chỉnh một check-in policy, h&amp;atilde;y xem &amp;quot;Walkthrough: Customizing
Check-in Policies and Notes&amp;quot; tại đ&amp;acirc;y&lt;a href="http://msdn2.microsoft.com/en-us/library/ms181281%28VS.80%29.aspx"&gt; http://msdn2.microsoft.com/en-us/library/ms181281(VS.80).aspx&lt;/a&gt; &amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; Để xem sample code m&amp;agrave;
kh&amp;ocirc;ng cho ph&amp;eacute;p chọn c&amp;aacute;c patterns tr&amp;ecirc;n check-in, h&amp;atilde;y xem &amp;quot;Checkin Policy to
Disallow Certain Patterns&amp;quot; tại đ&amp;acirc;y&lt;a href="http://blogs.msdn.com/jmanning/archive/2006/02/02/523125.aspx"&gt; http://blogs.msdn.com/jmanning/archive/2006/02/02/523125.aspx&lt;/a&gt; &amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; Để xem sample code sẽ
thực thi c&amp;aacute;c comments tr&amp;ecirc;n check-in, h&amp;atilde;y xem &amp;quot;Sample Checkin Policy: Make Sure
the Comment Isn&amp;#39;t Empty&amp;quot; tại đ&amp;acirc;y&lt;a href="http://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx"&gt; http://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx&lt;/a&gt; &amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu l&amp;agrave;m c&amp;aacute;ch
n&amp;agrave;o để đăng k&amp;iacute; một ch&amp;iacute;nh s&amp;aacute;ch check-in
policy mới, h&amp;atilde;y xem &amp;quot;I&amp;#39;ve Made a New Check-In Policy! How Do I Add It?&amp;quot; tại đ&amp;acirc;y&lt;a href="http://blogs.msdn.com/jmanning/archive/2006/02/07/526778.aspx"&gt; http://blogs.msdn.com/jmanning/archive/2006/02/07/526778.aspx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;L&amp;agrave;m Thế N&amp;agrave;o Để Sử Dụng C&amp;aacute;c Ch&amp;iacute;nh S&amp;aacute;ch Check-In Policy Để Kết Nối C&amp;aacute;c Work
Item Với C&amp;aacute;c Build&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng một ch&amp;iacute;nh s&amp;aacute;ch check-in policy để thi h&amp;agrave;nh từng check-in
c&amp;oacute; li&amp;ecirc;n kết với c&amp;aacute;c work items. C&amp;aacute;c lập tr&amp;igrave;nh vi&amp;ecirc;n sử dụng hộp thoại &lt;b&gt;Check In&lt;/b&gt; để li&amp;ecirc;n kết c&amp;aacute;c work item với
một check-in. Hộp thoại n&amp;agrave;y sẽ lien kết tự động những work item n&amp;agrave;y với c&amp;aacute;c
build tiếp theo. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để c&amp;agrave;i đặt ch&amp;iacute;nh
s&amp;aacute;ch work item check-in policy để buộc c&amp;aacute;c lập tr&amp;igrave;nh vi&amp;ecirc;n li&amp;ecirc;n kết c&amp;aacute;c check-in
của họ với một work item&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong Team
Explorer, click chuột phải l&amp;ecirc;n dự &amp;aacute;n nh&amp;oacute;m của bạn, h&amp;atilde;y chọn &lt;b&gt;Team Project Settings&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Source Control&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Click v&amp;agrave;o tab &lt;b&gt;Check-in Policy&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Click &lt;b&gt;Add &lt;/b&gt;v&amp;agrave; sau đ&amp;oacute; chọn v&amp;agrave; cấu h&amp;igrave;nh ch&amp;iacute;nh
s&amp;aacute;ch &lt;b&gt;Work Item check-in policy&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về việc tạo v&amp;agrave; sử dụng một custom check-in policy, h&amp;atilde;y xem &amp;quot;How To - Step
Through Creating Custom Check-in Policies for TFS&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu l&amp;agrave;m thế
n&amp;agrave;o để t&amp;ugrave;y chỉnh một ch&amp;iacute;nh s&amp;aacute;ch check-in policy, h&amp;atilde;y xem &amp;quot;Walkthrough:
Customizing Check-in Policies and Notes&amp;quot; tại đ&amp;acirc;y&lt;a href="http://msdn2.microsoft.com/en-us/library/ms181281%28VS.80%29.aspx"&gt; http://msdn2.microsoft.com/en-us/library/ms181281(VS.80).aspx&lt;/a&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;T&amp;agrave;i liệu ho&amp;agrave;n chỉnh c&amp;oacute; thể download tại đ&amp;acirc;y:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cid-c756261140cf0eb3.skydrive.live.com/self.aspx/GT/B%C3%A0i%20t%E1%BA%ADp.doc"&gt;B&amp;agrave;i Tập: Team Build&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Hướng dẫn: Source Control </title><link>http://msdnvietnam.net/wikis/tfs/h-ng-d-n-source-control/revision/0.aspx</link><pubDate>Sun, 31 Jan 2010 17:33:43 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:139</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to TFS - Team Foundation System by Nguyễn Thị Như Quỳnh on 2/1/2010 1:33:43 AM&lt;br /&gt;
&lt;p&gt;&lt;b&gt;Hướng dẫn: Source Control&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;C&amp;aacute;c mục&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Accessing Version Control &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Xem x&amp;eacute;t sử dụng c&amp;aacute;c c&amp;ocirc;ng cụ command-line
tool. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng Microsoft&amp;reg; Visual Studio&amp;reg; 2005 Team
Foundation Power Tools (TFPT) để unshelve một sự thay đổi change. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng Team Foundation Power Tools để phục hồi
một thay đổi change. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng Team Foundation Power Tools để l&amp;agrave;m việc
offline. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng Team Foundation Power Tools để lấy một
changeset. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng Team Foundation Power Tools để remove
c&amp;aacute;c pending edit. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Administration &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Tắt c&amp;aacute;c quyền kế thừa permission
tr&amp;ecirc;n c&amp;aacute;c nh&amp;aacute;nh maintenance branche. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Từ chối(deny) c&amp;aacute;c check-in
permission cho c&amp;aacute;c lập tr&amp;igrave;nh vi&amp;ecirc;n m&amp;agrave; bạn chưa tin tưởng để thực hiện c&amp;aacute;c thay đổi
phần source của bạn. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Branch / Label / Merge &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c label để đ&amp;aacute;nh dấu c&amp;aacute;c
build m&amp;agrave; bạn cần phải return.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c branche để ph&amp;acirc;n chia
c&amp;aacute;c bản ph&amp;aacute;t h&amp;agrave;nh(release) được hỗ trợ. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Kế hoạch cấu tr&amp;uacute;c branch của bạn dựa
v&amp;agrave;o c&amp;aacute;c đường dẫn merge(merge path). &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Branch tại một high level, gồm c&amp;oacute; c&amp;aacute;c file cấu
h&amp;igrave;nh v&amp;agrave; file source.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Kh&amp;ocirc;ng thực hiện branch qu&amp;aacute; s&amp;acirc;u.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Kh&amp;ocirc;ng branch nếu bạn kh&amp;ocirc;ng cần thiết.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Tr&amp;aacute;nh c&amp;aacute;c merge kh&amp;ocirc;ng c&amp;oacute; cơ sở nếu c&amp;oacute; thể. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; C&amp;aacute;c full merge được ưa th&amp;iacute;ch hơn l&amp;agrave; c&amp;aacute;c
&amp;quot;cherry-pick&amp;quot; merge. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Merge một c&amp;aacute;ch thường xuy&amp;ecirc;n. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Lu&amp;ocirc;n tạo một thư mục top-level folder cho một
team project mới để được xử l&amp;yacute; như l&amp;agrave; một main branch. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Xem x&amp;eacute;t sử dụng candidate switch hay preview
switch để double-check trước khi merging. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Khi c&amp;aacute;c rename l&amp;agrave; một phần của merge, h&amp;atilde;y ch&amp;uacute;
&amp;yacute; đến c&amp;aacute;c path m&amp;agrave; c&amp;aacute;c tool đề nghị.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Cẩn thận khi giải quyết c&amp;aacute;c xung đột trong việc
merge.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Kiểm tra c&amp;aacute;c kết quả của một việc merge tại một
thời điểm.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Build v&amp;agrave; run c&amp;aacute;c test sau khi merge v&amp;agrave; trước
khi check-in. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Check-ins and Check-in Policies &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Chỉ check in phần code của bạn khi bạn đ&amp;atilde; sẵn
s&amp;agrave;ng để share.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c shelveset để back up hay l&amp;agrave; share
c&amp;aacute;c pending change. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Giải quyết một work item tr&amp;ecirc;n một check-in. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch check-in policy để thực
thi c&amp;aacute;c ti&amp;ecirc;u chuẩn code.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch check-in policy để thực
thi một cổng chất lượng code(code quality gate).&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Ph&amp;aacute;t hiện khi một policy bị ghi đ&amp;egrave;.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; L&amp;ecirc;n kế hoạch để tr&amp;aacute;nh c&amp;aacute;c xung đột. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Checkout, Get, and Lock &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Lấy c&amp;aacute;c source mới nhất trức khi thực hiện
c&amp;aacute;c thay đổi.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c lệnh lock command t&amp;ugrave;y &amp;yacute;.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Giao tiếp với c&amp;aacute;c cộng sự khi kh&amp;oacute;a lock c&amp;aacute;c
file.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Dependencies &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c project reference bất cứ khi n&amp;agrave;o
c&amp;oacute; thể.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c file reference chỉ nơi n&amp;agrave;o cần
thiết.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng copy local = true cho c&amp;aacute;c project
references v&amp;agrave; file references. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c URL động khi reference c&amp;aacute;c Web
service. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Distributed / Remote Development &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; H&amp;atilde;y đảm bảo l&amp;agrave; bạn nhận một ổ đĩa disk drive
c&amp;oacute; k&amp;iacute;ch cỡ ph&amp;ugrave; hợp với proxy của bạn. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Tạo một scheduled task để lấy(pull) c&amp;aacute;c file
mới nhất định k&amp;igrave;.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Gi&amp;aacute;m s&amp;aacute;t định k&amp;igrave; c&amp;aacute;c proxy performance
counter v&amp;agrave; event log. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Cấu h&amp;igrave;nh thực hiện Timeout dựa tr&amp;ecirc;n k&amp;iacute;ch cỡ
file v&amp;agrave; bandwidth. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Disable proxy nếu n&amp;oacute; sắp bị down trong một
khoảng thời gian d&amp;agrave;i.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Xem x&amp;eacute;t c&amp;aacute;c workspace cloak để giảm thiểu việc
chuyển(transfer) c&amp;aacute;c file kh&amp;ocirc;ng cần thiết. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Migration &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng VSS converter để di chuyển(migrate) đến
Team Foundation Server Source Control. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Di chuyển(migrate) từ c&amp;aacute;c source-control
system kh&amp;aacute;c đến Team Foundation Server Source Control. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Project / Workspace Management &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; T&amp;aacute;ch một nh&amp;agrave; ph&amp;aacute;t triển đơn(single developer)
sử dụng c&amp;aacute;c workspace chứ kh&amp;ocirc;ng phải l&amp;agrave; c&amp;aacute;c&amp;nbsp;
branche. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Delete v&amp;agrave; rename c&amp;aacute;c file bằng c&amp;aacute;ch sử dụng
source control, chứ kh&amp;ocirc;ng phải l&amp;agrave; Microsoft Windows&amp;reg; Explorer. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Chỉ delete v&amp;agrave; rename với solution open của bạn.
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Tạo một team project tr&amp;ecirc;n một application nếu
bạn muốn di chuyển c&amp;aacute;c asset của bạn giữa c&amp;aacute;c phi&amp;ecirc;n bản của ứng dụng. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Tạo một&amp;nbsp;
team project tr&amp;ecirc;n một version nếu bạn muốn bắt đầu một c&amp;aacute;ch mới ho&amp;agrave;n
to&amp;agrave;n với từng phi&amp;ecirc;n bản của ứng dụng. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng branchđể share c&amp;aacute;c code v&amp;agrave; binaries
m&amp;agrave; c&amp;oacute; y&amp;ecirc;u cầu kiểm thử integration testing. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Tr&amp;aacute;nh c&amp;aacute;c workspace mapping để hỗ trợ c&amp;aacute;c phụ
thuộc qua lại giữa c&amp;aacute;c project.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Tạo một workspace mapping tại team project
root level. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng một đường dẫn local folder path duy
nhất tr&amp;ecirc;n c&amp;aacute;c shared computer. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Cấn nhắc việc chỉ &amp;aacute;nh xạ(map) c&amp;aacute;c một phần của
source tree. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Cấu tr&amp;uacute;c source tree của bạn để hỗ trợ
branching. Shelving &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng shelving để share c&amp;aacute;c pending change
cho việc xem x&amp;eacute;t hoặc b&amp;agrave;n giao.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng shelving để back up c&amp;aacute;c pending
change cho server. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng shelving nếu bị gi&amp;aacute;n đoạn bởi c&amp;aacute;c
c&amp;ocirc;ng việc ưu ti&amp;ecirc;n hơn.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Accessing Version Control &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Xem x&amp;eacute;t sử dụng c&amp;aacute;c c&amp;ocirc;ng cụ command-line
tool. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng Team Foundation Power Tools để phục hồi
một thay đổi change. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng Team Foundation Power Tools để l&amp;agrave;m việc
offline. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng Team Foundation Power Tools để lấy một
changeset. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng Team Foundation Power Tools để remove
c&amp;aacute;c pending edit. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Xem x&amp;eacute;t sử dụng c&amp;aacute;c c&amp;ocirc;ng cụ command-line tool&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Đối với c&amp;aacute;c hoạt động kh&amp;ocirc;ng c&amp;oacute; sẵn trong Visual Studio, nếu bạn cần l&amp;ecirc;n
kế hoạch c&amp;aacute;c hoạt động, h&amp;atilde;y xem x&amp;eacute;t việc sử dụng c&amp;aacute;c c&amp;ocirc;ng cụ command-line tool
như l&amp;agrave; Team Foundation Power Tools (Tfpt.exe) được cung cấp c&amp;ugrave;ng với Team
Foundation Server (TFS). C&amp;aacute;c c&amp;ocirc;ng cụ Tfpt.exe tool c&amp;oacute; sẵn như một phần download
ri&amp;ecirc;ng. Bạn c&amp;oacute; thể sử dụng c&amp;aacute;c c&amp;ocirc;ng cụ command-line tool n&amp;agrave;y để l&amp;ecirc;n kế hoạch c&amp;aacute;c
hoạt động bằng c&amp;aacute;ch sử dụng Windows Task Scheduler.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Để đảm bảo l&amp;agrave; c&amp;aacute;c đường dẫn path ph&amp;ugrave; hợp v&amp;agrave; c&amp;aacute;c m&amp;ocirc;i trường kh&amp;aacute;c
nhau(environment variable) được c&amp;agrave;i đặt, h&amp;atilde;y chạy Tf.exe từ Visual Studio 2005
Command Prompt window, hay chạy file Vsvars32 batch file, thường được đặt tại
DriveLetter:\Program Files\Microsoft Visual Studio 8\Common7\Tools. C&amp;ocirc;ng cụ
Tf.exe tool hỗ trợ hầu hết c&amp;aacute;c lệnh source control như l&amp;agrave; &lt;b&gt;Checkin, Checkout, Get, History, Shelve, Branch, Merge, Label, Status,
Undelete, &lt;/b&gt;v&amp;agrave;&lt;b&gt; Undo.&lt;/b&gt;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Sau đ&amp;acirc;y l&amp;agrave; c&amp;aacute;c hoạt động th&amp;ocirc;ng thường m&amp;agrave; bạn c&amp;oacute; thể muốn thực thi từ
command line bằng c&amp;aacute;ch sử dụng Tf.exe: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Đồng bộ h&amp;oacute;a c&amp;aacute;c file từ server
đến m&amp;aacute;y của bạn - &lt;b&gt;tf get&lt;/b&gt; &lt;/li&gt;
&lt;li&gt; Th&amp;ecirc;m một file v&amp;agrave;o server - &lt;b&gt;tf add&lt;/b&gt; &lt;/li&gt;
&lt;li&gt; Check out một file để chỉnh sửa
- &lt;b&gt;tf checkout&lt;/b&gt; &lt;/li&gt;
&lt;li&gt; Check in c&amp;aacute;c pending change - &lt;b&gt;tf checkin&lt;/b&gt; &lt;/li&gt;
&lt;li&gt; Lấy một changeset cụ thể từ
server - &lt;b&gt;tf get /version&lt;/b&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;C&amp;oacute; một số hoạt động m&amp;agrave; bạn chỉ c&amp;oacute; thể được thực hiện từ command line:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Delete workspace của user kh&amp;aacute;c
- &lt;b&gt;tf workspace /delete&lt;/b&gt; &lt;/li&gt;
&lt;li&gt; Undo một h&amp;agrave;nh động check-in của
user - &lt;b&gt;tf undo&lt;/b&gt; &lt;/li&gt;
&lt;li&gt; Unlock một h&amp;agrave;nh động lock của
user - &lt;b&gt;tf lock&lt;/b&gt; &lt;/li&gt;
&lt;li&gt; Định nghĩa label scope - &lt;b&gt;tf label&lt;/b&gt; &lt;/li&gt;
&lt;li&gt; Thực hiện một merge kh&amp;ocirc;ng c&amp;oacute; cơ
sở(baseless merge) - &lt;b&gt;tf merge&lt;/b&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin, h&amp;atilde;y xem
&amp;quot;Walkthrough: Working with Team Foundation Source Control from Command Line&amp;quot; on
the Microsoft MSDN&amp;reg; Web site tại &lt;a href="http://msdn2.microsoft.com/en-us/library/zthc5x3f.aspx"&gt;http://msdn2.microsoft.com/en-us/library/zthc5x3f.aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;aacute;c
command m&amp;agrave; chỉ c&amp;oacute; sẵn từ command line, h&amp;atilde;y xem &amp;quot;Operations Available Only From
the Command-Line (Team Foundation Source Control)&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms194957%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms194957(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng Team Foundation Power Tools để phục hồi
một thay đổi change&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The Team Foundation Power Tools (TFPT) cung cấp c&amp;aacute;c chức năng
version-control functionality m&amp;agrave; kh&amp;ocirc;ng c&amp;oacute; sẵn trong Visual Studio. Th&amp;iacute; dụ, bạn
c&amp;oacute; thể sử dụng TFPT để gi&amp;uacute;p hỗ trợ c&amp;aacute;c offline work hay để thực hiện c&amp;aacute;c h&amp;agrave;nh động
rollback để undo c&amp;aacute;c check-in của một changeset.&amp;nbsp; H&amp;atilde;y xem x&amp;eacute;t sử dụng TFPT nếu bạn cần unshelve
một change.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Hoạt động unshelve operation được TFS hỗ trợ, kh&amp;ocirc;ng cho ph&amp;eacute;p c&amp;aacute;c shelved
change v&amp;agrave; c&amp;aacute;c local change được merge với nhau. Bằng c&amp;aacute;ch sử dụng TFPT để
unshelve một change từ một changeset, nếu một item trong local workspace của bạn
c&amp;oacute; một pending change l&amp;agrave; một edit, v&amp;agrave; shelved change cũng l&amp;agrave; một edit, sau đ&amp;oacute;
TFPT c&amp;oacute; thể merge c&amp;aacute;c change với một c&amp;aacute;ch merge thứ ba.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Bạn chạy command từ command line bằng c&amp;aacute;ch sử dụng &lt;b&gt;Tfpt.exe&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để download Team Foundation
Power Tools, h&amp;atilde;y đến&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=7324C3DB-658D-441B-8522-689C557D0A79&amp;amp;displaylang=en"&gt;&amp;nbsp; http://www.microsoft.com/downloads/details.aspx?familyid=7324C3DB-658D-441B-8522-689C557D0A79&amp;amp;displaylang=en&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; Để xem một forum thảo luận về
Team Foundation Power Tools, h&amp;atilde;y xem&lt;a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=930&amp;amp;SiteID=1"&gt; http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=930&amp;amp;SiteID=1&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử Dụng Team Foundation Power Tools Để Roll
Back C&amp;aacute;c Change&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Xem x&amp;eacute;t sử dụng TFPT nếu bạn cần roll back một change. Khả năng undo một
check-in của một changeset kh&amp;ocirc;ng được hỗ trợ trực tiếp trong TFS. Bằng c&amp;aacute;ch sử
dụng TFPT rollback command, bạn c&amp;oacute; thể cố gắng undo bất k&amp;igrave; change n&amp;agrave;o được thực
hiện trong một changeset&amp;nbsp; cụ thể. Kh&amp;ocirc;ng
phải tất cả c&amp;aacute;c change đều được roll back, nhưng c&amp;aacute;c rollback được thực hiện
trong hầu hết c&amp;aacute;c scenario. &lt;/p&gt;
&lt;p&gt;Bạn chạy d&amp;ograve;ng lệnh n&amp;agrave;y từ command line bằng c&amp;aacute;ch sử dụng Tfpt.exe. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để download Team Foundation
Power Tools, h&amp;atilde;y đến&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=7324C3DB-658D-441B-8522-689C557D0A79&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=7324C3DB-658D-441B-8522-689C557D0A79&amp;amp;displaylang=en&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để xem một forum đang thảo luận
về Team Foundation Power Tools, h&amp;atilde;y xem&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=930&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=930&amp;amp;SiteID=1&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng Team Foundation Power Tools để l&amp;agrave;m việc
offline&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Offline working kh&amp;ocirc;ng được hỗ trợ trong TFS. Nếu bạn muốn work offline,
bạn phải tu&amp;acirc;n thủ nghi&amp;ecirc;m ngặt c&amp;aacute;c workflow sau đ&amp;acirc;y:&amp;nbsp; &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Remove bằng tay c&amp;aacute;c read-only
flag. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Edit c&amp;aacute;c file.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;3.&amp;nbsp; Add hay delete c&amp;aacute;c file &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Run the TFPT online command. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Mỗi bước được m&amp;ocirc; tả chi tiết dưới đ&amp;acirc;y.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Quan trọng:&lt;/b&gt; Bạn phải
rename bất k&amp;igrave; file n&amp;agrave;o trong khi bạn offline.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1.&amp;nbsp; Remove bằng tay c&amp;aacute;c read-only flag. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Mặc định, tất cả c&amp;aacute;c file trong workspace m&amp;agrave; kh&amp;ocirc;ng được check out sẽ được
đ&amp;aacute;nh dấu l&amp;agrave; read-only. Khi bạn l&amp;agrave;m việc m&amp;agrave; kh&amp;ocirc;ng c&amp;oacute; một server connection, bạn
phải remove bằng tay c&amp;aacute;c read-only flag khỏi c&amp;aacute;c file trước khi chỉnh sửa hay
x&amp;oacute;a ch&amp;uacute;ng. Để l&amp;agrave;m điều n&amp;agrave;y, h&amp;atilde;y click chuột phải v&amp;agrave;o file trong Windows
Explorer, click Properties, x&amp;oacute;a đi &lt;b&gt;Read-only&lt;/b&gt;
check box, v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;OK&lt;/b&gt;. Ngo&amp;agrave;i
ra, bạn c&amp;oacute; thể sử dụng&amp;nbsp; DOS command &lt;b&gt;attrib -r&lt;/b&gt;.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;2.&amp;nbsp; Edit c&amp;aacute;c file.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;B&amp;acirc;y giờ bạn c&amp;oacute; thể chỉnh sửa edit bất k&amp;igrave; file n&amp;agrave;o m&amp;agrave; bạn đ&amp;atilde; remove đi
read-only flag. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;3.&amp;nbsp; Add hay delete c&amp;aacute;c file &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Bạn c&amp;oacute; thể th&amp;ecirc;m hay x&amp;oacute;a c&amp;aacute;c file m&amp;agrave; bạn đ&amp;atilde; remove đi read-only flag. Đừng
rename c&amp;aacute;c file, bởi v&amp;igrave; c&amp;ocirc;ng cụ TFPT online tool kh&amp;ocirc;ng ph&amp;acirc;n biệt được một h&amp;agrave;nh
động rename từ một h&amp;agrave;nh động x&amp;oacute;a được gh&amp;eacute;p với một h&amp;agrave;nh động th&amp;ecirc;m.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;Lưu &amp;yacute;:&lt;/span&gt; Bạn phải x&amp;aacute;c định một lựa chọn
Tfpt online command để c&amp;oacute; được n&amp;oacute; để t&amp;igrave;m kiếm c&amp;aacute;c h&amp;agrave;nh động x&amp;oacute;a,&amp;nbsp; v&amp;igrave; đ&amp;acirc;y l&amp;agrave; thời gian d&amp;agrave;nh cho c&amp;aacute;c hoạt động. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;4.&amp;nbsp; Run the TFPT online command. &lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Khi bạn quay lại online, h&amp;atilde;y chạy lệnh TFPT online command bằng c&amp;aacute;ch
đ&amp;aacute;nh c&amp;aacute;c&amp;nbsp; lệnh TFPT online ở trong
command line. Lệnh n&amp;agrave;y sẽ scan workspace của bạn đối với c&amp;aacute;c file c&amp;oacute; thể ghi được
v&amp;agrave; x&amp;aacute;c định những thay đổi n&amp;agrave;o n&amp;ecirc;n được treo(chưa quyết định) tr&amp;ecirc;n server. Nếu
bạn đ&amp;atilde; x&amp;oacute;a bất k&amp;igrave; file n&amp;agrave;o, h&amp;atilde;y sử dụng chuyển đổi&amp;nbsp; &lt;b&gt;/delete
&lt;/b&gt;switch. Lệnh n&amp;agrave;y n&amp;oacute;i cho tool l&amp;agrave;&amp;nbsp; đế
scan đối với c&amp;aacute;c file đ&amp;atilde; delete trong workspace của bạn. C&amp;ocirc;ng cụ tool sẽ hiển
thị cửa sổ online window m&amp;agrave; bạn c&amp;oacute; thể chọn những thay đổi để&amp;nbsp; pend trong workspace. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để download Team Foundation
Power Tools, h&amp;atilde;y đến &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=7324C3DB-658D-441B-8522-689C557D0A79&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=7324C3DB-658D-441B-8522-689C557D0A79&amp;amp;displaylang=en&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để xem một forum đang thảo luận
về Team Foundation Power Tools, h&amp;atilde;y xem tại &lt;a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=930&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=930&amp;amp;SiteID=1&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử Dụng Team Foundation Power Tools Để Lấy Một
Changeset&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Xem x&amp;eacute;t sử dụng TFPT nếu bạn cần lấy một changeset. The TFPT GetCS
command cho ph&amp;eacute;p bạn nhận tất cả c&amp;aacute;c item được liệt k&amp;ecirc; trong một changeset&amp;nbsp; tại thời điểm của changeset version. Điều n&amp;agrave;y
c&amp;oacute; &amp;iacute;ch nếu một đồng nghiệp đ&amp;atilde; kiểm tra một change m&amp;agrave; bạn cần c&amp;oacute; trong workspace
của bạn, nhưng bạn kh&amp;ocirc;ng thể thay đổi to&amp;agrave;n bộ workspace cho version mới nhất.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Bạn chạy lệnh n&amp;agrave;y từ command line bằng c&amp;aacute;ch sử dụng Tfpt.exe. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để download Team Foundation
Power Tools, h&amp;atilde;y đến &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=7324C3DB-658D-441B-8522-689C557D0A79&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=7324C3DB-658D-441B-8522-689C557D0A79&amp;amp;displaylang=en&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để xem một forum đang thảo luận
về Team Foundation Power Tools, h&amp;atilde;y xem tại&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=930&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=930&amp;amp;SiteID=1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử Dụng Team Foundation Power Tools Để Remove
C&amp;aacute;c Pending Edit&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Xem x&amp;eacute;t sử dụng TFPT nếu bạn cần remove c&amp;aacute;c pending edit từ c&amp;aacute;c file.
The TFPT Undo Unchanged command remove c&amp;aacute;c pending edit từ c&amp;aacute;c file m&amp;agrave;
kh&amp;ocirc;ng&amp;nbsp; chưa thực sự được edit. Điều n&amp;agrave;y
c&amp;oacute; &amp;iacute;ch trong một scenario nơi m&amp;agrave; bạn check out một số lượng lớn c&amp;aacute;c file cho việc
edit, nhưng chỉ thực hiện c&amp;aacute;c thay đổi thực sự đến một số lượng nhỏ c&amp;aacute;c file. Bạn
c&amp;oacute; thể undo c&amp;aacute;c edit của bạn tr&amp;ecirc;n c&amp;aacute;c file chưa được thay đổi bằng c&amp;aacute;ch chạy
TFPT UU tool, m&amp;agrave; so s&amp;aacute;nh c&amp;aacute;c hash của c&amp;aacute;c file trong local workspace để hash
tr&amp;ecirc;n server để x&amp;aacute;c định c&amp;aacute;c file c&amp;oacute; thực sự được edit hay kh&amp;ocirc;ng.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Bạn chạy lệnh n&amp;agrave;y từ command line
bằng c&amp;aacute;ch sử dụng Tfpt.exe. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để download Team Foundation
Power Tools, h&amp;atilde;y đến &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=7324C3DB-658D-441B-8522-689C557D0A79&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=7324C3DB-658D-441B-8522-689C557D0A79&amp;amp;displaylang=en&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để xem một forum đang thảo luận
về Team Foundation Power Tools, h&amp;atilde;y xem tại&lt;a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=930&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=930&amp;amp;SiteID=1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Administration &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; &lt;/i&gt;&lt;b&gt;Kh&amp;ocirc;ng cho ph&amp;eacute;p c&amp;aacute;c quyền kế thừa permission tr&amp;ecirc;n c&amp;aacute;c nh&amp;aacute;nh maintenance
branche. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Từ chối(deny) c&amp;aacute;c check-in permission cho c&amp;aacute;c
lập tr&amp;igrave;nh vi&amp;ecirc;n m&amp;agrave; bạn chưa tin tưởng để thực hiện c&amp;aacute;c thay đổi phần source của
bạn. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Kh&amp;ocirc;ng Cho Ph&amp;eacute;p C&amp;aacute;c Quyền Kế Thừa Permission
Tr&amp;ecirc;n C&amp;aacute;c Nh&amp;aacute;nh Maintenance Branche. &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Mỗi một branch được bảo tr&amp;igrave;- th&amp;iacute; dụ, sau khi bạn chuyển một version của
phần mềm của bạn- bạn c&amp;oacute; thể tắt c&amp;aacute;c inherite permission để lock down c&amp;aacute;i c&amp;acirc;y
tree. Sau khi thực hiện điều n&amp;agrave;y, bạn c&amp;oacute; thể cấp cho c&amp;aacute; nh&amp;acirc;n c&amp;aacute;c user quyền
PendChange v&amp;agrave; Checkin permission khi cần thiết để sữa chữa kịp l&amp;uacute;c.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về
removing permissions, h&amp;atilde;y xem &amp;quot;How to: Remove Access to Source Control Files&amp;quot; tại&lt;a href="http://msdn2.microsoft.com/en-us/library/ms400718%28VS.80%29.aspx"&gt;&lt;span style="text-decoration:underline;"&gt;&amp;nbsp; &lt;/span&gt;http://msdn2.microsoft.com/en-us/library/ms400718(VS.80).aspx&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;/li&gt;
&lt;/ul&gt;
&amp;nbsp;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Từ Chối(Deny) C&amp;aacute;c Check-In Permission Cho C&amp;aacute;c
Lập Tr&amp;igrave;nh Vi&amp;ecirc;n M&amp;agrave; Bạn Chưa Tin Tưởng Để Thực Hiện C&amp;aacute;c Thay Đổi Phần Source Của
Bạn&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Bạn c&amp;oacute; thể từ chối deny c&amp;aacute;c check-in permission tr&amp;ecirc;n source tree đối với
c&amp;aacute;c lập tr&amp;igrave;nh vi&amp;ecirc;n m&amp;agrave; bạn chưa t&amp;iacute;n nhiệm, như l&amp;agrave; nh&amp;acirc;n vi&amp;ecirc;n mới thu&amp;ecirc; hay c&amp;aacute;c nh&amp;acirc;n
vi&amp;ecirc;n thực tập. H&amp;atilde;y chắc l&amp;agrave; bạn đ&amp;atilde; thiết lập c&amp;aacute;c permission mong muốn của bạn (kể
cả c&amp;aacute;c permission cho account của bạn) trước khi tắt chế độ inheritance. Thay
v&amp;igrave; check in một c&amp;aacute;ch trực tiếp, họ c&amp;oacute; thể thực hiện c&amp;aacute;c pending change v&amp;agrave; sau
đ&amp;oacute; shelve những thay đổi n&amp;agrave;y. Một lập tr&amp;igrave;nh vi&amp;ecirc;n c&amp;oacute; th&amp;ecirc;m nhiều kinh nghiệm sau
khi unshelve c&amp;aacute;c thay đổi change, review lại, v&amp;agrave; kiểm tra check in ch&amp;uacute;ng. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về remove
c&amp;aacute;c permission, h&amp;atilde;y xem &amp;quot;How to: Remove Access to Source Control Files&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms400718%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms400718(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;T&amp;agrave;i liệu ho&amp;agrave;n chỉnh của phần n&amp;agrave;y bạn c&amp;oacute; thể download tại đ&amp;acirc;y:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cid-c756261140cf0eb3.skydrive.live.com/self.aspx/GT/H%C6%B0%E1%BB%9Bng%20d%E1%BA%ABn.doc"&gt;Hướng dẫn: Source Control &lt;/a&gt;&lt;/p&gt;</description></item><item><title>Hướng dẫn:  Reporting </title><link>http://msdnvietnam.net/wikis/tfs/h-ng-d-n-reporting/revision/0.aspx</link><pubDate>Mon, 21 Dec 2009 06:25:31 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:136</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to TFS - Team Foundation System by Nguyễn Thị Như Quỳnh on 12/21/2009 2:25:31 PM&lt;br /&gt;
&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Mục &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Administration &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Đảm bảo l&amp;agrave; c&amp;aacute;c user ở trong c&amp;aacute;c nh&amp;oacute;m security
group một c&amp;aacute;ch ch&amp;iacute;nh x&amp;aacute;c. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Tạo một report dashboard để xem t&amp;igrave;nh trạng
project status v&amp;agrave; c&amp;aacute;c số liệu chất lượng tại một vị tr&amp;iacute;.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Creating /
Customizing &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; H&amp;atilde;y chắc l&amp;agrave; server name phải đ&amp;uacute;ng khi triển
khai c&amp;aacute;c report. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Tạo c&amp;aacute;c scheduled report snapshots m&amp;agrave; bạn c&amp;oacute;
thể xem theo thời gian. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Chỉnh sửa c&amp;aacute;c report đ&amp;atilde; c&amp;oacute; để truy cập được đến
c&amp;aacute;c data bổ sung. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Viewing &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; H&amp;atilde;y chắc l&amp;agrave; warehouse Web service đ&amp;atilde; chạy nếu
bạn muốn c&amp;oacute; data mới nhất.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Administration &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Đảm bảo l&amp;agrave; c&amp;aacute;c user ở trong c&amp;aacute;c nh&amp;oacute;m security
group một c&amp;aacute;ch ch&amp;iacute;nh x&amp;aacute;c. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Tạo một report dashboard để xem t&amp;igrave;nh trạng
project status v&amp;agrave; c&amp;aacute;c số liệu chất lượng tại một vị tr&amp;iacute;.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Đảm bảo l&amp;agrave; c&amp;aacute;c user ở trong c&amp;aacute;c nh&amp;oacute;m security group một c&amp;aacute;ch ch&amp;iacute;nh x&amp;aacute;c&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Nếu bạn muốn một
user c&amp;oacute; thể triển khai c&amp;aacute;c reports, h&amp;atilde;y chắc l&amp;agrave; user đ&amp;oacute; được ph&amp;acirc;n c&amp;ocirc;ng report
server&amp;#39;s Content Manager Role. The Content Manager role l&amp;agrave; một Report Services
role được x&amp;aacute;c định trước cho c&amp;aacute;c user m&amp;agrave; triển khai v&amp;agrave; quản l&amp;yacute; c&amp;aacute;c report v&amp;agrave;
c&amp;aacute;c kết nối đến data source ở tr&amp;ecirc;n Web server. Đối với một Microsoft&amp;reg; Visual
Studio&amp;reg; 2005 Team Foundation Server (TFS) user c&amp;oacute; thể triển khai c&amp;aacute;c report đến
report server, th&amp;igrave; user phải l&amp;agrave; một th&amp;agrave;nh vi&amp;ecirc;n c&amp;oacute; vai tr&amp;ograve; n&amp;agrave;y. &lt;/p&gt;
&lt;p&gt;Để th&amp;ecirc;m một user
v&amp;agrave;o Content Manager role&amp;nbsp; &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Mở trang report site cho project. Ở trong
Team Explorer, right-click v&amp;agrave;o &lt;b&gt;Reports &lt;/b&gt;entry
cho team project của bạn v&amp;agrave; sau đ&amp;oacute; chọn &lt;b&gt;Show
Report Site. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Tr&amp;ecirc;n đầu của cửa sổ window, click v&amp;agrave;o thẻ tab
&lt;b&gt;Properties&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Ph&amp;iacute;a b&amp;ecirc;n tr&amp;aacute;i của cửa sổ window, click &lt;b&gt;Security&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Click &lt;b&gt;New
Role Assignment&lt;/b&gt;.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Trong &lt;b&gt;Group
or user name&lt;/b&gt;: field, điền t&amp;ecirc;n của user hay group m&amp;agrave; bạn muốn để th&amp;ecirc;m &lt;b&gt;Content Manager role&amp;nbsp; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Chọn &lt;b&gt;Content
Manager&lt;/b&gt; check box. &lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; Click &lt;b&gt;OK.&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về Content Manager role,
h&amp;atilde;y xem &amp;quot;Content Manager Role&amp;quot; tại &lt;a href="http://technet.microsoft.com/en-us/library/ms159693%28SQL.90%29.aspx"&gt;http://technet.microsoft.com/en-us/library/ms159693(SQL.90).aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;aacute;c security role
trong tầng data tier, h&amp;atilde;y xem &amp;quot;Securing Access Through Analysis Services&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms174839.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms174839.aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;aacute;c security roles ở
tầng application tier, h&amp;atilde;y xem &amp;quot;Securing Reporting Services&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms157198.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms157198.aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Tạo Một Report Dashboard Để Xem T&amp;igrave;nh Trạng Project Status V&amp;agrave; C&amp;aacute;c Số Liệu
Chất Lượng Tại Một Vị Tr&amp;iacute;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Một reporting
dashboard cho ph&amp;eacute;p bạn v&amp;agrave; nh&amp;oacute;m của bạn truy cập một c&amp;aacute;ch nhanh ch&amp;oacute;ng c&amp;aacute;c th&amp;ocirc;ng
tin project quan trọng tr&amp;ecirc;n một single page. Trang Microsoft Office SharePoint&amp;reg;
portal page mặc định cho Microsoft Solution Framework (MSF) cho c&amp;aacute;c dự &amp;aacute;n Agile
Software Development (MSF Agile) projects chứa một single report cũng như li&amp;ecirc;n
kết đến c&amp;aacute;c c&amp;aacute;i kh&amp;aacute;c. Để tạo một single repository cho th&amp;ocirc;ng tin của dự &amp;aacute;n
project information, bạn c&amp;oacute; thể chỉnh sửa trang portal page đối với MS Agile
hay MSF cho c&amp;aacute;c CMMI&amp;reg; (MS CMMI) project để gồm c&amp;oacute; rất nhiều report ở tr&amp;ecirc;n trang
m&amp;agrave; bạn muốn. &lt;/p&gt;
&lt;p&gt;Th&amp;iacute; dụ, một
reporting dashboard c&amp;oacute; &amp;iacute;ch c&amp;oacute; thể chứa c&amp;aacute;c report sau: &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Remaining Work &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Quality Indicators &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Bug Rates &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Project Velocity &lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Bạn c&amp;oacute; thể th&amp;ecirc;m
c&amp;aacute;c report mới v&amp;agrave;o trang SharePoint portal của bạn bằng c&amp;aacute;ch th&amp;ecirc;m một Report
Viewer Web Part cho từng report m&amp;agrave; bạn muốn hiển thị l&amp;ecirc;n trang đ&amp;oacute;. &lt;/p&gt;
&lt;p&gt;Để chỉnh sửa team
project portal v&amp;agrave; tạo một reporting dashboard &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Install the Report Viewer Web Part tr&amp;ecirc;n
report server của bạn sử dụng c&amp;ocirc;ng cụ stsadm.exe tool v&amp;agrave; RSWebParts.cab, cả hai
đều được t&amp;iacute;ch hợp với SharePoint v&amp;agrave; Report Services installation package.&amp;nbsp; &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; STSADM.EXE c&amp;oacute; thể được t&amp;igrave;m thấy theo đường dẫn
sau: C:\Program Files\Common Files\Microsoft Shared\web server
extensions\60\BIN &lt;/li&gt;
&lt;li&gt; RSWebParts.Cab c&amp;oacute; thể được t&amp;igrave;m thấy theo đường
dẫn sau: C:\ Program Files\Microsoft SQL Server\90\Tools\Reporting
Services\SharePoint Example: STSADM.EXE
-o addwppack -filename &amp;quot;C:\ Program Files\Microsoft SQL Server\90\Tools\Reporting
Services\SharePoint\RSWebParts.cab&amp;quot; -globalinstall &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2.&amp;nbsp; Trong &lt;b&gt;Team
Explorer&lt;/b&gt;, right-click v&amp;agrave;o project của bạn. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Click &lt;b&gt;Show
Project Portal&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Click &lt;b&gt;Modify
Shared Page&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Trỏ đến&amp;nbsp;
&lt;b&gt;Browse&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Add Web Parts&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Click &lt;b&gt;Virtual
Server Gallery&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; Ở trong &lt;b&gt;Web
Part List&lt;/b&gt;, h&amp;atilde;y chọn &lt;b&gt;Report Viewer. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;8.&amp;nbsp; Click &lt;b&gt;Add&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;9.&amp;nbsp; Điền t&amp;ecirc;n &lt;b&gt;Report
Manager&lt;/b&gt; name, như l&amp;agrave; http://&amp;lt;&lt;i&gt;report
server&lt;/i&gt;&amp;gt;/reports. &lt;/p&gt;
&lt;p&gt;10. Điền đường dẫn
path cho report m&amp;agrave; bạn muốn hiển thị, như l&amp;agrave; &lt;i&gt;&amp;lt;my project&amp;gt;&lt;/i&gt;/Quality Indicators. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về th&amp;ecirc;m một Report
Viewer Web Part, h&amp;atilde;y xem &amp;quot;Viewing Reports with SharePoint 2.0 Web Parts&amp;quot; tại &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms159772%28SQL.90%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms159772(SQL.90).aspx&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về team project portal,
h&amp;atilde;y xem &amp;quot;Using the Team Project Portal&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms242883%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms242883(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Creating /
Customizing&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; H&amp;atilde;y chắc l&amp;agrave; server name phải đ&amp;uacute;ng khi triển
khai c&amp;aacute;c report. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Tạo c&amp;aacute;c scheduled report snapshots m&amp;agrave; bạn c&amp;oacute;
thể xem theo thời gian. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Chỉnh sửa c&amp;aacute;c report đ&amp;atilde; c&amp;oacute; để truy cập được đến
c&amp;aacute;c data bổ sung. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;H&amp;atilde;y Chắc L&amp;agrave; Server Name Phải Đ&amp;uacute;ng Khi Triển Khai C&amp;aacute;c Report&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Nếu cả report
server&amp;#39;s Uniform Resource Locator (URL) hay Target Folder Name được x&amp;aacute;c định
kh&amp;ocirc;ng ch&amp;iacute;nh x&amp;aacute;c, th&amp;igrave; report của bạn c&amp;oacute; thể kh&amp;ocirc;ng được triển khai đến report
server. Khi bạn triển khai một report từ Visual Studio 2005, h&amp;atilde;y x&amp;aacute;c định URL của
server m&amp;agrave; report n&amp;ecirc;n được triển khai v&amp;agrave; t&amp;ecirc;n của team project m&amp;agrave; report l&amp;agrave; một
phần của n&amp;oacute;. URL của report server m&amp;agrave; report được triển khai l&amp;agrave; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;http://TeamServerName/ReportServer&lt;/b&gt;, l&amp;agrave; nơi m&amp;agrave;
ReportServer l&amp;agrave; điểm cuối của Report Server Web service. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;X&amp;aacute;c định t&amp;ecirc;n của
team project ở trong TargetReportFolder field của hộp thoại deployment
properties dialog box. Gi&amp;aacute; trị n&amp;agrave;y l&amp;agrave; case-sensitive; nếu bạn nhận được c&amp;aacute;c
case sai, report sẽ được triển khai nhưng kh&amp;ocirc;ng xuất hiện trong danh s&amp;aacute;ch của
c&amp;aacute;c report d&amp;agrave;nh cho team project của bạn ở trong Team Explorer. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;agrave;i đặt c&amp;aacute;c thuộc
t&amp;iacute;nh deployment properties, h&amp;atilde;y xem &amp;quot;How to: Set Deployment Properties (Report
Designer)&amp;quot; tại &lt;a href="http://technet.microsoft.com/en-us/library/ms155802%28SQL.90%29.aspx"&gt;http://technet.microsoft.com/en-us/library/ms155802(SQL.90).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Tạo C&amp;aacute;c Scheduled Report Snapshots M&amp;agrave; Bạn C&amp;oacute; Thể Xem Theo Thời Gian&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng report
history để build c&amp;aacute;c snapshot của&amp;nbsp;
project data tại những khoảng thời gian đều đặn. Bạn c&amp;oacute; thể xem những
snapshots&amp;nbsp; n&amp;agrave;y qua một giai đoạn thời
gian cũ thể để hiểu r&amp;otilde; hơn về c&amp;aacute;c xu hướng, hay l&amp;agrave; để nhớ c&amp;aacute;c điểm data quan trọng
trong suốt thời gian m&amp;agrave; project của bạn thực hiện.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Để tạo một
scheduled report snapshot &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Mở một report từ report portal. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Click the &lt;b&gt;Properties tab&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Click the &lt;b&gt;History link&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; C&amp;agrave;i đặt một lịch tr&amp;igrave;nh để khi n&amp;agrave;o bạn muốn
snapshot chạy. &lt;/p&gt;
&lt;p&gt;Sau khi c&amp;agrave;i đặt một
lịch tr&amp;igrave;nh trước, bạn c&amp;oacute; thể t&amp;igrave;m thấy c&amp;aacute;c snapshot ở tr&amp;ecirc;n tab History cho
report đ&amp;oacute;. Bạn cũng c&amp;oacute; thể tạo c&amp;aacute;c snapshot bằng tay tr&amp;ecirc;n History tab.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Chỉnh Sửa C&amp;aacute;c Report Đ&amp;atilde; C&amp;oacute; Để Truy Cập Được Đến C&amp;aacute;c Data Bổ Sung&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Chỉnh sửa c&amp;aacute;c
report bằng c&amp;aacute;ch sử dụng Microsoft SQL Server&lt;sup&gt;TM&lt;/sup&gt; 2005 Reporting Services Designer
inside Visual Studio (Business Intelligence Development Studio), m&amp;agrave; được&amp;nbsp; chuyển với c&amp;aacute;c SQL Server 2005 client
tool.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;T&amp;ugrave;y chỉnh một
report cho ph&amp;eacute;p bạn th&amp;ecirc;m c&amp;aacute;c chức năng của một report đ&amp;atilde; c&amp;oacute; m&amp;agrave; kh&amp;ocirc;ng cần phải
build một report mới. Nếu một report m&amp;agrave; bạn cần tương tự như một report đ&amp;atilde; c&amp;oacute;,
h&amp;atilde;y t&amp;ugrave;y chỉnh c&amp;aacute;i đ&amp;atilde; c&amp;oacute; để tiết kiệm thời gian. Để t&amp;ugrave;y chỉnh một report đ&amp;atilde; c&amp;oacute;,
bạn phải export n&amp;oacute; từ report server, th&amp;ecirc;m n&amp;oacute; v&amp;agrave;o một report project đ&amp;atilde; c&amp;oacute; trong
Visual Studio, v&amp;agrave; triển khai n&amp;oacute; lại đến reporting portal sau khi đ&amp;atilde; được thay đổi.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;b&gt;Lưu &amp;yacute;:&lt;/b&gt;
Mặc d&amp;ugrave; bạn c&amp;oacute; thể sử dụng Report Builder c&amp;oacute; sẵn từ trang team reporting site,
nhưng c&amp;ocirc;ng cụ n&amp;agrave;y kh&amp;ocirc;ng được hỗ trợ tốt cho c&amp;aacute;c kịch bản Visual Studio
reporting scenarios v&amp;agrave; v&amp;igrave; thế m&amp;agrave; kh&amp;ocirc;ng khuyến kh&amp;iacute;ch sử dụng.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m chi tiết về How To article, h&amp;atilde;y
xem &amp;quot;How To - Customize a Report in Visual Studio Team Foundation Server&amp;quot; trong
t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về reporting, h&amp;atilde;y xem &amp;quot;Chương
15 - Reporting Explained&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m c&amp;aacute;c tutorial giải th&amp;iacute;ch về l&amp;agrave;m thế
n&amp;agrave;o để l&amp;agrave;m việc với c&amp;aacute;c reporting projects, h&amp;atilde;y xem &amp;quot;Reporting Services
Tutorials&amp;quot; tại&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms170246.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms170246.aspx&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để đọc một Microsoft MSDN&amp;reg; article about
editing reports, h&amp;atilde;y xem &amp;quot;How to: Edit Reports in Report Designer&amp;quot; tại&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms244655%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms244655(VS.80).aspx&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Viewing &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; H&amp;atilde;y chắc l&amp;agrave; warehouse Web service đ&amp;atilde; chạy nếu
bạn muốn c&amp;oacute; data mới nhất.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;H&amp;atilde;y Chắc L&amp;agrave; Warehouse Web Service Đ&amp;atilde; Chạy Nếu Bạn Muốn C&amp;oacute; Data Mới Nhất&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Chạy c&amp;aacute;c
warehouse Web service bằng tay nếu bạn muốn đảm bảo l&amp;agrave; c&amp;aacute;c report của bạn c&amp;oacute;
c&amp;aacute;c th&amp;ocirc;ng tin dữ liệu mới nhất. Mặc định, warehouse Web service chạy một lần mỗi
giờ để tạo c&amp;aacute;c data cho report của bạn.Nếu bạn chạy một report v&amp;agrave; muốn đảm bảo
l&amp;agrave; c&amp;aacute;c report của bạn chứa c&amp;aacute;c dữ liệu mới nhất, bạn c&amp;oacute; thể chạy c&amp;aacute;c service bằng
tay.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Để chạy c&amp;aacute;c warehouse service bằng tay: &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Mở
Internet Information Services (IIS) Manager. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Chọn phần &lt;b&gt;Team Foundation Server Web site&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Với Web site, h&amp;atilde;y mở &lt;i&gt;Warehouse\v1.0 directory&lt;/i&gt;.&amp;nbsp; N&amp;oacute;
sẽ hiển thị một trang với một danh s&amp;aacute;ch c&amp;aacute;c operation c&amp;oacute; sẵn trong warehouse. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Right-click &lt;b&gt;warehousecontroller.asmx&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Browse&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Click &lt;b&gt;Run&lt;/b&gt;
v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Invoke&lt;/b&gt;.&amp;nbsp; Thực hiện điều n&amp;agrave;y sẽ mở ra một browser
window thứ hai hiển thị t&amp;igrave;nh trạng của run request. N&amp;oacute; n&amp;ecirc;n hiển thị gi&amp;aacute; trị
true. &lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Trở lại browser window đầu ti&amp;ecirc;n v&amp;agrave; navigate
back c&amp;aacute;c operations page. &lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; H&amp;atilde;y chọn &lt;b&gt;GetwareHouseStatus&lt;/b&gt;
v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Invoke&lt;/b&gt;.&amp;nbsp; Điều n&amp;agrave;y sẽ hiển thị c&amp;aacute;c t&amp;igrave;nh trạng hiện tại
của c&amp;aacute;c warehouse Web service. Một gi&amp;aacute; trị của idle chỉ ra l&amp;agrave; warehouse đ&amp;atilde; chạy.
C&amp;aacute;c gi&amp;aacute; trị kh&amp;aacute;c hiển thị t&amp;igrave;nh trạng của service. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về troubleshooting the warehouse, h&amp;atilde;y xem
&amp;quot;Troubleshooting the Data Warehouse&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms244674%28vs.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms244674(vs.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Team Foundation
Reporting Resources&amp;nbsp; &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về reporting, h&amp;atilde;y xem&amp;quot;Team Foundation Server
Reporting&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms194922%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms194922(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Hướng dẫn: Project Management (phần 2)</title><link>http://msdnvietnam.net/wikis/tfs/h-ng-d-n-project-management-ph-n-2/revision/0.aspx</link><pubDate>Mon, 21 Dec 2009 06:23:20 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:135</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to TFS - Team Foundation System by Nguyễn Thị Như Quỳnh on 12/21/2009 2:23:20 PM&lt;br /&gt;
&lt;p&gt;&lt;b&gt;Team Projects&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Tạo một team project tr&amp;ecirc;n một ứng dụng nếu bạn
muốn di chuyển c&amp;aacute;c work item v&amp;agrave; c&amp;aacute;c&amp;nbsp; phần
kh&amp;aacute;c giữa c&amp;aacute;c version(phi&amp;ecirc;n bản) của ứng dụng.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Tạo một team project tr&amp;ecirc;n một version nếu bạn
muốn khởi động với c&amp;aacute;c work item mới v&amp;agrave; c&amp;aacute;c asset kh&amp;aacute;c với từng version(phi&amp;ecirc;n bản)
của ứng dụng.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Chỉ cấp c&amp;aacute;c permission được y&amp;ecirc;u cầu tr&amp;ecirc;n c&amp;aacute;c
project assets.&amp;nbsp; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Cấu tr&amp;uacute;c source tree của bạn để hộ trợ
branching. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Tạo Một Team
Project Tr&amp;ecirc;n Một ứng Dụng Nếu Bạn Muốn Di Chuyển C&amp;aacute;c Work Item V&amp;agrave; C&amp;aacute;c&amp;nbsp; Phần Kh&amp;aacute;c Giữa C&amp;aacute;c Version(Phi&amp;ecirc;n Bản) Của ứng
Dụng&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Nếu bạn muốn thực
hiện chuyển tiếp kh&amp;ocirc;ng chỉ l&amp;agrave; source code m&amp;agrave; c&amp;ograve;n l&amp;agrave; c&amp;aacute;c work item v&amp;agrave; c&amp;aacute;c TFS
asset kh&amp;aacute;c giữa c&amp;aacute;c bản ph&amp;aacute;t h&amp;agrave;nh release, h&amp;atilde;y xem x&amp;eacute;t sử dụng một team project
tr&amp;ecirc;n một ứng dụng. Khi bạn sử dụng một single team project cho nhiều version của
ứng dụng, tất cả c&amp;aacute;c TFS asset đều được chuyển tiếp một c&amp;aacute;ch tự động cho c&amp;aacute;c bản
ph&amp;aacute;t h&amp;agrave;nh kế tiếp. Khi bạn đ&amp;atilde; sẵn s&amp;agrave;ng để ph&amp;aacute;t h&amp;agrave;nh một version mới của ứng dụng
của bạn, bạn c&amp;oacute; thể tạo một branch với project để đại diện cho c&amp;aacute;c bản ph&amp;aacute;t
h&amp;agrave;nh release v&amp;agrave; t&amp;aacute;ch ri&amp;ecirc;ng phần code đ&amp;oacute;.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;H&amp;atilde;y nhớ c&amp;aacute;c điểm
ch&amp;iacute;nh sau khi sử dụng một project tr&amp;ecirc;n một application: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; C&amp;aacute;c bản ph&amp;aacute;t h&amp;agrave;nh song song buộc phải chia sẻ
c&amp;aacute;c sơ đồ work items schema, check in policies, v&amp;agrave; c&amp;aacute;c hướng dẫn về quy tr&amp;igrave;nh.&lt;/li&gt;
&lt;li&gt; C&amp;aacute;c b&amp;aacute;o c&amp;aacute;o report th&amp;igrave; kh&amp;oacute; hơn; bởi v&amp;igrave; c&amp;aacute;c
report mặc định cho to&amp;agrave;n bộ dự &amp;aacute;n project, bạn phải th&amp;ecirc;m filter bằng c&amp;aacute;c
release.&lt;/li&gt;
&lt;li&gt; Nếu bạn c&amp;oacute; h&amp;agrave;ng trăm ứng dụng, từng project
ri&amp;ecirc;ng, bạn sẽ khởi động dựa v&amp;agrave;o giới hạn về hiệu suất v&amp;agrave; tỉ lệ của TFS.&lt;/li&gt;
&lt;li&gt; Bạn sẽ t&amp;iacute;ch lũy &amp;#39;baggage&amp;#39; qua nhiều bản ph&amp;aacute;t
h&amp;agrave;nh release. C&amp;aacute;ch dễ nhất để ghi nhận lại vấn đề n&amp;agrave;y l&amp;agrave; tạo mới một project v&amp;agrave;
branch phần code m&amp;agrave; bạn muốn thực hiện chuyển tiếp v&amp;agrave;o project đ&amp;oacute;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về sử dụng c&amp;aacute;c team
project, h&amp;atilde;y xem &amp;quot;When to use Team Projects&amp;quot; tại&lt;a href="http://blogs.msdn.com/ericlee/archive/2006/08/09/when-to-use-team-projects.aspx"&gt; http://blogs.msdn.com/ericlee/archive/2006/08/09/when-to-use-team-projects.aspx&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Tạo một team project tr&amp;ecirc;n một version nếu bạn muốn khởi động với c&amp;aacute;c
work item mới v&amp;agrave; c&amp;aacute;c asset kh&amp;aacute;c với từng version(phi&amp;ecirc;n bản) của ứng dụng&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Nếu bạn muốn mỗi
bản ph&amp;aacute;t h&amp;agrave;nh bắt đầu một c&amp;aacute;ch mới ho&amp;agrave;n to&amp;agrave;n m&amp;agrave; kh&amp;ocirc;ng thực hiện chuyển tiếp c&amp;aacute;c
work item v&amp;agrave; c&amp;aacute;c TFS asset kh&amp;aacute;c, th&amp;igrave; h&amp;atilde;y xem x&amp;eacute;t sử dụng một project tr&amp;ecirc;n một
release. Khi bạn sử dụng một project mới cho từng release, bạn c&amp;oacute; thể chỉnh sửa
work item schema, workflow, check-in policies, v&amp;agrave; c&amp;aacute;c asset kh&amp;aacute;c m&amp;agrave; kh&amp;ocirc;ng ảnh
hưởng đến c&amp;aacute;c bản ph&amp;aacute;t h&amp;agrave;nh release cũ. Điều n&amp;agrave;y c&amp;oacute; thể đặc biệt hữu dụng nếu bản
ph&amp;aacute;t h&amp;agrave;nh cũ sẽ kh&amp;ocirc;ng được bảo tr&amp;igrave; bởi một nh&amp;oacute;m ri&amp;ecirc;ng n&amp;agrave;o đ&amp;oacute; như l&amp;agrave; một nh&amp;oacute;m kĩ
sư được duy tr&amp;igrave; li&amp;ecirc;n tục m&amp;agrave; c&amp;oacute; thể c&amp;oacute; một quy tr&amp;igrave;nh v&amp;agrave; tiến tr&amp;igrave;nh c&amp;ocirc;ng việc
workflow kh&amp;aacute;c so với nh&amp;oacute;m ph&amp;aacute;t triển ch&amp;iacute;nh của bạn.&lt;/p&gt;
&lt;p&gt;H&amp;atilde;y nhớ c&amp;aacute;c điểm
ch&amp;iacute;nh sau khi sử dụng một project tr&amp;ecirc;n một bản ph&amp;aacute;t h&amp;agrave;nh release: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Mặc d&amp;ugrave; dễ d&amp;agrave;ng để di chuyển source code từ một
project sang project kh&amp;aacute;c, nhưng lại kh&amp;oacute; di chuyển c&amp;aacute;c work item v&amp;agrave; c&amp;aacute;c TFS
asset kh&amp;aacute;c từ một project sang project kh&amp;aacute;c. Bởi v&amp;igrave; c&amp;aacute;c work item chỉ c&amp;oacute; thể được
copy tại một thời điểm đến project kh&amp;aacute;c, nếu bạn muốn copy một tập c&amp;aacute;c work
item, bạn sẽ cần viết tiện &amp;iacute;ch của ri&amp;ecirc;ng bạn.&lt;/li&gt;
&lt;li&gt; Nếu bạn c&amp;oacute; h&amp;agrave;ng trăm c&amp;aacute;c ứng dụng v&amp;agrave; bản ph&amp;aacute;t
h&amp;agrave;nh, mỗi c&amp;aacute;i ở trong project của ri&amp;ecirc;ng n&amp;oacute;, bạn sẽ khởi động dựa tr&amp;ecirc;n c&amp;aacute;c giới
hạn về hiệu suất v&amp;agrave; tỉ lệ của TFS(TFS
performance and scale limit). &lt;/li&gt;
&lt;li&gt; H&amp;atilde;y chọn một cấu tr&amp;uacute;c m&amp;agrave; bạn c&amp;oacute; thể tương t&amp;aacute;c
l&amp;agrave;m việc trong một thời gian d&amp;agrave;i bởi v&amp;igrave; cấu tr&amp;uacute;c lại c&amp;aacute;c team project rất kh&amp;oacute;
khăn.&lt;/li&gt;
&lt;li&gt; Source c&amp;oacute; thể dễ d&amp;agrave;ng được chia sẻ giữa c&amp;aacute;c
team project như sau:&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote style="padding-left:30px;"&gt;o &amp;nbsp;Branch
source từ một project n&amp;agrave;y đến project kh&amp;aacute;c.&lt;br /&gt;o&amp;nbsp; Map source
từ project kh&amp;aacute;c v&amp;agrave;o workspace của bạn.&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt; Team Foundation Server c&amp;oacute; thể đạt đến tỉ lệ
~500 project bằng c&amp;aacute;ch sử dụng quy tr&amp;igrave;nh mẫu MSF Agile process template hay l&amp;agrave;
250 project bằng c&amp;aacute;ch sử dụng quy tr&amp;igrave;nh mẫu MSF CMMI process template. Nếu bạn
tạo quy tr&amp;igrave;nh mẫu của ri&amp;ecirc;ng m&amp;igrave;nh hay l&amp;agrave; t&amp;ugrave;y chỉnh một quy tr&amp;igrave;nh mẫu đ&amp;atilde; c&amp;oacute;, h&amp;atilde;y
nhớ l&amp;agrave; c&amp;aacute;c work item schema c&amp;oacute; ảnh hưởng lớn nhất đến khả năng mở rộng server. Một schema phức
tạp sẽ trả về kết quả trong một server
c&amp;oacute; khả năng hỗ trợ một số &amp;iacute;t c&amp;aacute;c project.&lt;/li&gt;
&lt;li&gt; Bạn sẽ phải thực hiện tr&amp;ecirc;n tất cả c&amp;aacute;c area từ
project gốc; v&amp;agrave; cũng c&amp;oacute; lẽ thay đổi c&amp;aacute;c
permission ở trong source control.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về việc sử dụng c&amp;aacute;c team
project, h&amp;atilde;y xem &amp;quot;When to use Team Projects&amp;quot; tại &lt;a href="http://blogs.msdn.com/ericlee/archive/2006/08/09/when-to-use-team-projects.aspx"&gt;http://blogs.msdn.com/ericlee/archive/2006/08/09/when-to-use-team-projects.aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Chỉ cấp c&amp;aacute;c permission được y&amp;ecirc;u cầu tr&amp;ecirc;n c&amp;aacute;c project assets&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Khi tạo c&amp;aacute;c team
project, h&amp;atilde;y xem lại c&amp;aacute;c security group mặc định được tạo bởi c&amp;aacute;c quy tr&amp;igrave;nh, v&amp;agrave;
nếu cần, h&amp;atilde;y tạo c&amp;aacute;c security group với c&amp;aacute;c permission ph&amp;ugrave; hợp. Sau đ&amp;oacute; bạn ph&amp;acirc;n
chia c&amp;aacute;c th&amp;agrave;nh vi&amp;ecirc;n của dự &amp;aacute;n v&amp;agrave;o c&amp;aacute;c group tương ứng để đảm bảo l&amp;agrave; mỗi th&amp;agrave;nh vi&amp;ecirc;n
sẽ chỉ nhận c&amp;aacute;c permission m&amp;agrave; anh ta hay c&amp;ocirc; ta y&amp;ecirc;u cầu tr&amp;ecirc;n c&amp;aacute;c project
asset.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về cấp ph&amp;aacute;t c&amp;aacute;c
permission, h&amp;atilde;y xem &amp;quot;How To - Manage Projects in Visual Studio Team Foundation
Server&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Cấu tr&amp;uacute;c source tree của bạn để hộ trợ branching&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Khi tạo cấu tr&amp;uacute;c
c&amp;acirc;y source tree của bạn, h&amp;atilde;y đảm bảo l&amp;agrave; n&amp;oacute; hỗ trợ branching. H&amp;atilde;y giữ c&amp;aacute;c folder
d&amp;agrave;nh ri&amp;ecirc;ng cho source v&amp;agrave; cho c&amp;aacute;c project asset kh&amp;aacute;c, để nếu c&amp;aacute;c ph&amp;aacute;t triển
isolation development được y&amp;ecirc;u cầu trong tương lai, bạn c&amp;oacute; thể branch một c&amp;aacute;ch
đơn giản source folder. V&amp;agrave; cũng hảy đảm b&amp;atilde;o l&amp;agrave; bạn duy tr&amp;igrave; c&amp;aacute;c folder d&amp;agrave;nh
ri&amp;ecirc;ng cho từng th&amp;agrave;nh phần với source folder, để partial branching c&amp;oacute; thể được
thực thi nếu c&amp;oacute; y&amp;ecirc;u cầu. &lt;/p&gt;
&lt;p&gt;H&amp;atilde;y chia c&amp;aacute;c thực
thể kh&amp;aacute;c ra như l&amp;agrave; shared code, unit tests, library dependencies, v&amp;agrave; vv... bằng
c&amp;aacute;ch sử dụng c&amp;aacute;c folder m&amp;agrave; ch&amp;uacute;ng c&amp;oacute; thể được loại trừ hoặc gồm c&amp;oacute; trong suốt
qu&amp;aacute; tr&amp;igrave;nh branch theo y&amp;ecirc;u cầu. &lt;/p&gt;
&lt;p&gt;Sau đ&amp;acirc;y l&amp;agrave; một
th&amp;iacute; dụ của một cấu tr&amp;uacute;c source tree m&amp;agrave; c&amp;oacute; hỗ trợ branching:&lt;/p&gt;
&lt;p&gt;&lt;img style="border:0;" src="http://farm3.static.flickr.com/2629/4200407628_716faea5fe_o.png" width="624" border="0" height="269" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về source tree
structure, h&amp;atilde;y xem &amp;quot;Chương 5 - Defining Your Branching and Merging Strategy&amp;quot;
trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Work Items&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Nắm bắt c&amp;aacute;c kịch bản/t&amp;igrave;nh huống của bạn ngay
l&amp;uacute;c bắt đầu dự &amp;aacute;n project của bạn.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; X&amp;aacute;c định c&amp;aacute;c y&amp;ecirc;u cầu Quality of Service một
c&amp;aacute;ch th&amp;iacute;ch hợp. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Ph&amp;acirc;n chia c&amp;aacute;c kịch bản scenarios th&amp;agrave;nh c&amp;aacute;c
task quản l&amp;yacute;, m&amp;ocirc;- đun task ph&amp;aacute;t triển. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Thiết lập từng ti&amp;ecirc;u chuẩn cơ bản cho từng
task.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Li&amp;ecirc;n kết c&amp;aacute;c requirement v&amp;agrave; c&amp;aacute;c task cho c&amp;aacute;c
kịch bản.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng Microsoft Excel để chỉnh sửa một số
lượng lớn c&amp;aacute;c work item.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Nắm bắt c&amp;aacute;c kịch bản/t&amp;igrave;nh huống của bạn ngay l&amp;uacute;c bắt đầu dự &amp;aacute;n project của
bạn&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Tạo v&amp;agrave; nắm bắt một
tập c&amp;aacute;c kịch bản dự &amp;aacute;n(project scenarios) v&amp;agrave;o l&amp;uacute;c bắt đầu project cảu bạn. Điều
n&amp;agrave;y gi&amp;uacute;p bạn đạt được một bức tranh tổng thể về project của bạn v&amp;agrave; sau n&amp;agrave;y c&amp;oacute;
thể được sử dụng để theo d&amp;otilde;i c&amp;aacute;c&amp;nbsp; tiến bộ
của dự &amp;aacute;n của bạn. Trong suốt qu&amp;aacute; tr&amp;igrave;nh ph&amp;aacute;t triển, bạn c&amp;oacute; thể chỉnh sửa c&amp;aacute;c kịch
bản đ&amp;atilde; c&amp;oacute; hay th&amp;ecirc;m mới c&amp;aacute;c kịch bản để mi&amp;ecirc;u tả tr&amp;igrave;nh b&amp;agrave;y cho những g&amp;igrave; m&amp;agrave; bạn học
được theo thời gian.&lt;/p&gt;
&lt;p&gt;Để nắm bắt c&amp;aacute;c kịch
bản v&amp;agrave;o l&amp;uacute;c bắt đầu dự &amp;aacute;n &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Sử dụng project back log (PBL) document, l&amp;agrave;
c&amp;aacute;c document được y&amp;ecirc;u cầu dựa tr&amp;ecirc;n đầu v&amp;agrave;o từ c&amp;aacute;c stakeholder kh&amp;aacute;c nhau (bao gồm
c&amp;aacute;c customers, business analysts, end users, v&amp;agrave; c&amp;aacute;c product managers), v&amp;agrave; phạm
vi của c&amp;aacute;c&amp;nbsp; kịch bản cho project của bạn.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Ở trong &lt;b&gt;Team
Explorer&lt;/b&gt;, h&amp;atilde;y mở rộng n&amp;uacute;t project node, right-click v&amp;agrave;o Work Items folder,
trỏ đến phần &lt;b&gt;Add Work Item&lt;/b&gt;, v&amp;agrave; sau
đ&amp;oacute; click &lt;b&gt;Scenario&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Ở trong trang mới &lt;b&gt;New Scenario&lt;/b&gt; page, h&amp;atilde;y enter c&amp;aacute;c chi tiết cho scenario. H&amp;atilde;y chắc
l&amp;agrave;&amp;nbsp; để thiết lập Iteration đến Iteration
999.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Save kịch bản scenario mới của bạn.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Lặp lại c&amp;aacute;c bước tr&amp;ecirc;n cho tất cả c&amp;aacute;c kịch bản
scenarios m&amp;agrave; bạn đ&amp;atilde; x&amp;aacute;c định cho project.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về capturing scenarios,
h&amp;atilde;y xem &amp;quot;How To - Manage Projects in Visual Studio Team Foundation Server&amp;quot;
trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;X&amp;aacute;c định c&amp;aacute;c y&amp;ecirc;u cầu Quality of Service một c&amp;aacute;ch th&amp;iacute;ch hợp&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;H&amp;atilde;y x&amp;aacute;c định c&amp;aacute;c
y&amp;ecirc;u cầu Quality of Service (QoS) requirement cho từng kịch bản scenarios để được
l&amp;agrave;m việc trong suốt chu k&amp;igrave; lặp iteration cycle. Điều n&amp;agrave;y gi&amp;uacute;p định nghĩa c&amp;aacute;c
ti&amp;ecirc;u chuẩn được chấp nhận cho kịch bản scenario. Những đầu v&amp;agrave;o input cho c&amp;aacute;c
QoS requirement&amp;nbsp; l&amp;agrave; từ c&amp;aacute;c mục đ&amp;iacute;ch của
poject v&amp;agrave; c&amp;aacute;c y&amp;ecirc;u cầu v&amp;agrave; c&amp;aacute;c t&amp;agrave;i liệu cụ thể, nếu c&amp;oacute; sẵn. &lt;/p&gt;
&lt;p&gt;Để x&amp;aacute;c định c&amp;aacute;c
y&amp;ecirc;u cầu QoS requirement của bạn: &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Right-click v&amp;agrave;o mục &lt;b&gt;project&amp;#39;s Work Items folder&lt;/b&gt;, trỏ đến phần &lt;b&gt;Add Work Item&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; click v&amp;agrave;o &lt;b&gt;Quality of Service Requirements. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Tr&amp;ecirc;n trang &lt;b&gt;New Quality of Service Requirements&lt;/b&gt; page, th&amp;ecirc;m v&amp;agrave;o c&amp;aacute;c chi tiết
sau:&amp;nbsp; &lt;/p&gt;
&lt;p&gt;a.&amp;nbsp; G&amp;aacute;n &lt;b&gt;Type&lt;/b&gt; cho một gi&amp;aacute; trị th&amp;iacute;ch hợp như l&amp;agrave;
performance, scalability, stress, hay security.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;b.&amp;nbsp; G&amp;aacute;n &lt;b&gt;Iteration&lt;/b&gt; th&amp;agrave;nh current iteration
cycle. &lt;/p&gt;
&lt;p&gt;c.&amp;nbsp; Từ tab &lt;b&gt;Links&lt;/b&gt;, li&amp;ecirc;n kết QoS đến một kịch bản
scenario cụ thể để truy t&amp;igrave;m nguồn gốc dễ d&amp;agrave;ng hơn.&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Save y&amp;ecirc;u cầu QoS requirement mới. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Tạo một&amp;nbsp;
QoS requirement cho từng quy tắc hay từng loại y&amp;ecirc;u cầu chất lượng, v&amp;agrave;
h&amp;atilde;y nhớ l&amp;agrave; mỗi kịch bản scenario c&amp;oacute; thể c&amp;oacute; nhiểu y&amp;ecirc;u cầu QoS requirements. &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; H&amp;atilde;y chắc l&amp;agrave; bạn tạo c&amp;aacute;c y&amp;ecirc;u cầu QoS
requirements cho tất cả c&amp;aacute;c kịch bản scenarios đang được l&amp;agrave;m việc trong suốt
c&amp;aacute;c v&amp;ograve;ng lặp cụ thể(iteration cycle) &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Quan trọng:&lt;/b&gt; Sau n&amp;agrave;y bạn c&amp;oacute; thể
ph&amp;acirc;n chia c&amp;aacute;c y&amp;ecirc;u cầu QoS requirements th&amp;agrave;nh c&amp;aacute;c test task.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về x&amp;aacute;c định c&amp;aacute;c y&amp;ecirc;u cầu
QoS requirements, h&amp;atilde;y xem &amp;quot;How To - Manage Projects in Visual Studio Team
Foundation Server&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;aacute;c work item , h&amp;atilde;y
xem &amp;quot;Managing Team Foundation Work &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Items&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181314%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms181314(VS.80).aspx&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Ph&amp;acirc;n chia c&amp;aacute;c kịch bản scenarios th&amp;agrave;nh c&amp;aacute;c task quản l&amp;yacute;, m&amp;ocirc;- đun task
ph&amp;aacute;t triển.&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Trong qu&amp;aacute; tr&amp;igrave;nh lập
kế hoạch iteration, h&amp;atilde;y chia c&amp;aacute;c kịch bản của bạn th&amp;agrave;nh c&amp;aacute;c c&amp;acirc;u chuyện của người
d&amp;ugrave;ng v&amp;agrave; sau đ&amp;oacute; ph&amp;acirc;n chia c&amp;aacute;c c&amp;acirc;u chuyện của người d&amp;ugrave;ng th&amp;agrave;nh c&amp;aacute;c t&amp;aacute;c vụ ph&amp;aacute;t
triển development task. H&amp;atilde;y chắc l&amp;agrave; c&amp;aacute;c t&amp;aacute;c vụ ph&amp;aacute;t triển development task m&amp;agrave; bạn
tạo ra c&amp;oacute; thể quản l&amp;yacute; được v&amp;agrave; ph&amp;acirc;n chia th&amp;agrave;nh c&amp;aacute;c modul. C&amp;aacute;c t&amp;aacute;c vụ task kh&amp;ocirc;ng
n&amp;ecirc;n l&amp;agrave; cuối c&amp;ugrave;ng nhiều hơn một hoặc hai ng&amp;agrave;y. Nếu ch&amp;uacute;ng nhiều hơn, bạn cần phải
ph&amp;acirc;n chia c&amp;aacute;c t&amp;aacute;c vụ task th&amp;agrave;nh c&amp;aacute;c t&amp;aacute;c vụ task nhỏ hơn hay c&amp;aacute;c sub-task. Việc
l&amp;agrave;m n&amp;agrave;y tạo n&amp;ecirc;n c&amp;aacute;c kế hoạch linh hoạt v&amp;agrave; cải thiện quản l&amp;yacute; dự &amp;aacute;n. &lt;/p&gt;
&lt;p&gt;Để chia c&amp;aacute;c kịch
bản scenarios th&amp;agrave;nh c&amp;aacute;c t&amp;aacute;c vụ ph&amp;aacute;t triển c&amp;oacute; thể quản l&amp;yacute; được v&amp;agrave; theo từng
modul: &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Chia c&amp;aacute;c kịch bản scenario đ&amp;atilde; chọn th&amp;agrave;nh c&amp;aacute;c
developer stories. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Chia nhỏ c&amp;aacute;c developer stories th&amp;agrave;nh c&amp;aacute;c t&amp;aacute;c
vụ developer task. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Nắm bắt c&amp;aacute;c t&amp;aacute;c vụ developer task trong TFS
như l&amp;agrave; c&amp;aacute;c task work item như sau:&lt;/p&gt;
&lt;p&gt;a. Trong Team Explorer, b&amp;ecirc;n dưới project node của bạn,
right-click v&amp;agrave;o Work Items folder, trỏ đến &lt;b&gt;Add
Work Item&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;Task&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;b.&amp;nbsp; Tr&amp;ecirc;n
trang New Task page, th&amp;ecirc;m c&amp;aacute;c chi tiết sau: &lt;/p&gt;
&lt;p&gt;i.&amp;nbsp; G&amp;aacute;n &lt;b&gt;Discipline&lt;/b&gt; th&amp;agrave;nh &lt;b&gt;Development&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;ii.&amp;nbsp; G&amp;aacute;n &lt;b&gt;Iteration&lt;/b&gt; th&amp;agrave;nh iteration cycle hiện
c&amp;oacute;. &lt;/p&gt;
&lt;p&gt;iii.&amp;nbsp; Tr&amp;ecirc;n
tab&lt;b&gt; Links&lt;/b&gt;, li&amp;ecirc;n kết task với c&amp;aacute;c
scenario cụ thể để truy t&amp;igrave;m nguồn gốc dễ hơn. Tr&amp;ecirc;n tab n&amp;agrave;y, c&amp;ugrave;ng với sự m&amp;ocirc; tả,
bạn c&amp;oacute; thể nắm bắt c&amp;aacute;c ti&amp;ecirc;u chuẩn chấp nhận được cho t&amp;aacute;c vụ task, m&amp;agrave; c&amp;oacute; thể x&amp;aacute;c
định nếu t&amp;aacute;c vụ được ho&amp;agrave;n th&amp;agrave;nh th&amp;agrave;nh c&amp;ocirc;ng.&lt;/p&gt;
&lt;p&gt;iv.&amp;nbsp; G&amp;aacute;n &lt;b&gt;Assigned to&lt;/b&gt; field cho lập tr&amp;igrave;nh vi&amp;ecirc;n m&amp;agrave;
sẽ l&amp;agrave;m t&amp;aacute;c vụ đ&amp;oacute;.&lt;/p&gt;
&lt;p&gt;c.&amp;nbsp; Save task
mới. &lt;/p&gt;
&lt;p&gt;d.&amp;nbsp; Lặp lại
c&amp;aacute;c bước tr&amp;ecirc;n cho tất cả c&amp;aacute;c task đ&amp;atilde; x&amp;aacute;c định. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Lặp lại c&amp;aacute;c bước tr&amp;ecirc;n cho tất cả c&amp;aacute;c scenario
đ&amp;atilde; x&amp;aacute;c định đối với iteration.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;aacute;c kịch bản
scenarios, h&amp;atilde;y xem &amp;quot;How To - Manage Projects in Visual Studio Team Foundation
Server&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;aacute;c work items, h&amp;atilde;y
xem &amp;quot;Managing Team Foundation Work Items&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181314%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms181314(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Thiết Lập Từng Ti&amp;ecirc;u Chuẩn Cơ Bản Cho Từng Task&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;C&amp;aacute;c t&amp;aacute;c vụ ph&amp;aacute;t
triển development task, khi x&amp;aacute;c định, n&amp;ecirc;n gồm c&amp;oacute; c&amp;aacute;c ti&amp;ecirc;u chuẩn chấp nhận được
để cho ph&amp;eacute;p một lập tr&amp;igrave;nh vi&amp;ecirc;n quyết định khi t&amp;aacute;c vụ task được ho&amp;agrave;n th&amp;agrave;nh. Dựa
tr&amp;ecirc;n c&amp;aacute;c quy tr&amp;igrave;nh mẫu m&amp;agrave; bạn đang sử dụng, th&amp;igrave; c&amp;oacute; thể thực hiện được theo 2
c&amp;aacute;ch: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;b&gt;MSF
Agile&lt;/b&gt; - Nếu bạn đang sử dụng MSF Agile m&amp;agrave; kh&amp;ocirc;ng c&amp;oacute; một y&amp;ecirc;u cầu loại work
item ch&amp;iacute;nh thức, tốt nhất l&amp;agrave; h&amp;atilde;y bao gồm
c&amp;aacute;c ti&amp;ecirc;u chuẩn chấp nhận được(acceptance criteria) như l&amp;agrave; text trong ch&amp;iacute;nh c&amp;aacute;c
work item. H&amp;atilde;y bắt đầu với một danh s&amp;aacute;ch với c&amp;aacute;c gạch đầu d&amp;ograve;ng v&amp;agrave; th&amp;ecirc;m nhiều
chi tiết hơn nếu cần thiết.&lt;/li&gt;
&lt;li&gt; &lt;b&gt;MSF
CMMI&lt;/b&gt; - Nếu bạn đang sử dụng MSF CMMI, bạn c&amp;oacute; thể sử dụng c&amp;aacute;c y&amp;ecirc;u cầu
formal để x&amp;aacute;c định c&amp;aacute;c acceptance criteria cho một task. Bước đầu ti&amp;ecirc;n
l&amp;agrave; x&amp;aacute;c định c&amp;aacute;c y&amp;ecirc;u cầu của bạn. Sau đ&amp;oacute; bạn c&amp;oacute; thể tạo c&amp;aacute;c development task m&amp;agrave;
sẽ được sử dụng để thực thi những y&amp;ecirc;u cầu n&amp;agrave;y v&amp;agrave; li&amp;ecirc;n kết c&amp;aacute;c task với c&amp;aacute;c y&amp;ecirc;u
cầu để c&amp;aacute;c lập tr&amp;igrave;nh vi&amp;ecirc;n c&amp;oacute; thể kiểm tra dựa v&amp;agrave;o đ&amp;oacute; v&amp;agrave; để c&amp;oacute; sự truy t&amp;igrave;m nguồn
gốc từ c&amp;aacute;c y&amp;ecirc;u cầu đến c&amp;aacute;c task. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;C&amp;aacute;c ti&amp;ecirc;u chuẩn chấp
nhận được acceptance criteria thường hầu hết được x&amp;aacute;c định như l&amp;agrave; một y&amp;ecirc;u cầu
kinh nghiệm người d&amp;ugrave;ng trong một form của một mini-scenario hay một y&amp;ecirc;u cầu về
QoS(QoS requirement). Sau khi acceptance criteria đ&amp;atilde; được đ&amp;aacute;p ứng, c&amp;aacute;c lạp
tr&amp;igrave;nh vi&amp;ecirc;n c&amp;oacute; thể đ&amp;aacute;nh dấu c&amp;aacute;c task đ&amp;atilde; ho&amp;agrave;n th&amp;agrave;nh v&amp;agrave; chuyển sang task tiếp
theo.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;aacute;c work items, h&amp;atilde;y
xem &amp;quot;Managing Team Foundation Work Items&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181314%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms181314(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Li&amp;ecirc;n Kết C&amp;aacute;c Requirement V&amp;agrave; C&amp;aacute;c Task Cho C&amp;aacute;c Kịch Bản&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Khi tạo mới c&amp;aacute;c
work item như l&amp;agrave; c&amp;aacute;c tasks, bugs, issues, hay c&amp;aacute;c QoS requirements, h&amp;atilde;y chắc l&amp;agrave;
bạn li&amp;ecirc;n kết những work item n&amp;agrave;y đến c&amp;aacute;c scenario m&amp;agrave; điều khiển c&amp;aacute;c sự khởi tạo
của ch&amp;uacute;ng. Điều n&amp;agrave;y gi&amp;uacute;p đả bảo l&amp;agrave; mỗi work item được điều khiển bởi một kịch bản
người d&amp;ugrave;ng thật sự(real user scenario) v&amp;agrave; c&amp;oacute; thể được sử dụng để theo d&amp;otilde;i tiến
độ ho&amp;agrave;n th&amp;agrave;nh kịch bản trong suốt qu&amp;aacute; tr&amp;igrave;nh development iteration của bạn.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Để li&amp;ecirc;n kết c&amp;aacute;c
tasks, bugs, issues, hay c&amp;aacute;c QoS work item mới đến kịch bản scenarios&amp;nbsp; &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong trang &lt;b&gt;New work item&lt;/b&gt; page, click v&amp;agrave;o tab &lt;b&gt;Links &lt;/b&gt;, tr&amp;ecirc;n tab &lt;b&gt;Links&lt;/b&gt;
h&amp;atilde;y click v&amp;agrave;o buton &lt;b&gt;Add&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Trong hộp thoại &lt;b&gt;Add Link&lt;/b&gt; dialog box, b&amp;ecirc;n dưới &lt;b&gt;Link
Type&lt;/b&gt;, h&amp;atilde;y chọn &lt;b&gt;Scenario&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Click v&amp;agrave;o &lt;b&gt;Browse &lt;/b&gt;để t&amp;igrave;m kiếm c&amp;aacute;c kịch bản scenarios ở trong team project của
bạn. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Trong danh s&amp;aacute;ch list, h&amp;atilde;y chọn scenario m&amp;agrave; bạn
muốn li&amp;ecirc;n kết đến v&amp;agrave; sau đ&amp;oacute; click &lt;b&gt;OK&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Trong &lt;b&gt;&amp;nbsp;Comment box&lt;/b&gt;, h&amp;atilde;y đ&amp;aacute;nh một comment để giải
th&amp;iacute;ch c&amp;aacute;c work item li&amp;ecirc;n quan đến như thế n&amp;agrave;o. Hộp &lt;b&gt;Description box&lt;/b&gt; được điền một c&amp;aacute;ch tự động. &lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Click OK.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin, h&amp;atilde;y xem &amp;quot;How To -
Manage Projects in Visual Studio Team Foundation Server&amp;quot;trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;aacute;c work items, h&amp;atilde;y
xem &amp;quot;Managing Team Foundation Work Items&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181314%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms181314(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử Dụng Microsoft Excel Để Chỉnh Sửa Một Số Lượng Lớn C&amp;aacute;c Work Item&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Team Foundation
Server kh&amp;ocirc;ng hỗ trợ việc chỉnh sửa work item số lượng lớn. Thay v&amp;agrave;o đ&amp;oacute;, bạn phải
chỉnh sửa từng work item một c&amp;aacute;ch ri&amp;ecirc;ng lẻ. Nếu bạn cần chỉnh sửa một số lượng
lớn c&amp;aacute;c work item trong một thời gian ngắn-th&amp;iacute; dụ, trong một cuộc họp ph&amp;acirc;n loại-h&amp;atilde;y
c&amp;acirc;n nhắc việc sử dụng Microsoft Office Excel&amp;reg;&amp;nbsp;
để giảm bớt c&amp;aacute;c task. C&amp;aacute;c work item c&amp;oacute; thể được export từ TFS đến Excel,
chỉnh sửa , v&amp;agrave; sau đ&amp;oacute; import trở lại v&amp;agrave;o TFS để giữ lại bất k&amp;igrave; sự thay đổi m&amp;agrave; bạn
đ&amp;atilde; thực hiện. &lt;/p&gt;
&lt;p&gt;Để tạo một danh
s&amp;aacute;ch c&amp;aacute;c work item list trong Excel v&amp;agrave; chỉnh sửa ch&amp;uacute;ng: &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong &lt;b&gt;Microsoft
Office Excel,&lt;/b&gt; tr&amp;ecirc;n &lt;b&gt;Team&lt;/b&gt; menu,
click &lt;b&gt;New List&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; B&amp;ecirc;n dưới &lt;b&gt;Connect
to a Team Foundation Server&lt;/b&gt;, h&amp;atilde;y chọn server để kếtnối đến, hay l&amp;agrave; click
v&amp;agrave;o &lt;b&gt;Servers&lt;/b&gt; để enter v&amp;agrave;o th&amp;ocirc;ng tin của
server.&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; B&amp;ecirc;n dưới &lt;b&gt;Team
Projects&lt;/b&gt;, h&amp;atilde;y chọn team project tr&amp;ecirc;n Team Foundation Server m&amp;agrave; bạn muốn
l&amp;agrave;m.&amp;nbsp; T&amp;agrave;i liệu n&amp;agrave;y sẽ bị r&amp;agrave;ng buộc với
team project n&amp;agrave;y. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Click &lt;b&gt;OK&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Chọn loại danh s&amp;aacute;ch m&amp;agrave; bạn muốn. Để tạo một
danh s&amp;aacute;ch truy vấn query list, h&amp;atilde;y chọn &lt;b&gt;Query
List option&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; chọn một team query từ danh s&amp;aacute;ch drop-down &lt;b&gt;Select a Query&lt;/b&gt; drop-down list. &lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; H&amp;atilde;y chọn c&amp;aacute;c column m&amp;agrave; bạn muốn n&amp;oacute; xuất hiện
trong danh s&amp;aacute;ch mới c&amp;aacute;c work item.&lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; Import c&amp;aacute;c work item m&amp;agrave; bạn muốn. Để c&amp;oacute; th&amp;ecirc;m
th&amp;ocirc;ng tin, h&amp;atilde;y xem How to: Import Work Items in Microsoft Excel or Microsoft
Project tại &lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms181676%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms181676(VS.80).aspx&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;8.&amp;nbsp; B&amp;acirc;y giờ bạn c&amp;oacute; thể chỉnh sửa c&amp;aacute;c work item v&amp;agrave;
sau đ&amp;oacute; publish c&amp;aacute;c work item đ&amp;atilde; cập nhật v&amp;agrave;o work item database bằng c&amp;aacute;ch click
v&amp;agrave;o &lt;b&gt;Publish Changes &lt;/b&gt;&amp;nbsp;ở tr&amp;ecirc;n &lt;b&gt;Team
&lt;/b&gt;menu.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về việc sử dụng Microsoft
Office Excel cho c&amp;aacute;c project-management
tasks, h&amp;atilde;y xem &amp;quot;Working with Work Item Lists in Microsoft Excel&amp;quot; tại&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms181694%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms181694(VS.80).aspx&lt;/a&gt; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Team Foundation
Project Management Resources &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về MSF process
templates, h&amp;atilde;y xem &amp;quot;Process Templates&amp;quot; tại&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/aa718801.aspx"&gt;http://msdn2.microsoft.com/en-us/teamsystem/aa718801.aspx&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Hướng dẫn:  Project Management </title><link>http://msdnvietnam.net/wikis/tfs/h-ng-d-n-project-management/revision/0.aspx</link><pubDate>Mon, 21 Dec 2009 06:17:04 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:134</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to TFS - Team Foundation System by Nguyễn Thị Như Quỳnh on 12/21/2009 2:17:04 PM&lt;br /&gt;
&lt;p&gt;&lt;b&gt;Mục&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Areas and Iterations &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c area để truy nguy&amp;ecirc;n nguồn gốc tốt
hơn. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c iteration để đại diện cho c&amp;aacute;c sự
kiện quan trọng ở trong project của bạn. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Tạo một Separate Iteration cho c&amp;aacute;c nhiệm vụ
task v&amp;agrave; c&amp;aacute;c kịch bản scenario kh&amp;ocirc;ng x&amp;aacute;c định.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; X&amp;aacute;c định thời gian chu k&amp;igrave; lặp(iteration cycle
duration) th&amp;iacute;ch hợp. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Check-in Policies &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c check-in policies để thực thi c&amp;aacute;c
quy định về chất lượng code.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c check-in policies để đảm bảo l&amp;agrave;
c&amp;aacute;c lập tr&amp;igrave;nh vi&amp;ecirc;n kết nối c&amp;aacute;c work item với c&amp;aacute;c check-in. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Tại c&amp;aacute;c check-in policies để thi h&amp;agrave;nh c&amp;aacute;c
ti&amp;ecirc;u chuẩn về code.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; C&amp;agrave;i đặt c&amp;aacute;c lưu &amp;yacute; để th&amp;ocirc;ng b&amp;aacute;o cho bạn khi
c&amp;aacute;c lập tr&amp;igrave;nh vi&amp;ecirc;n bỏ qua c&amp;aacute;c check-in policies. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Process Templates &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng quy tr&amp;igrave;nh mẫu MSF Agile khi đang l&amp;agrave;m
việc tr&amp;ecirc;n c&amp;aacute;c project m&amp;agrave; chỉ y&amp;ecirc;u cầu một quy tr&amp;igrave;nh &amp;iacute;t quan trọng hay kh&amp;ocirc;ng
ch&amp;iacute;nh thức.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng quy tr&amp;igrave;nh mẫu MSF CMMI khi l&amp;agrave;m việc
tr&amp;ecirc;n c&amp;aacute;c project y&amp;ecirc;u cầu một quy tr&amp;igrave;nh ch&amp;iacute;nh thức hay sự ph&amp;ugrave; hợp với c&amp;aacute;c ti&amp;ecirc;u
chuẩn CMMI.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Xem x&amp;eacute;t sử dụng một quy tr&amp;igrave;nh mẫu tối giản(minimal
process template). &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Chỉnh sửa một quy tr&amp;igrave;nh mẫu đ&amp;atilde; c&amp;oacute; cho ph&amp;ugrave; hợp
với quy tr&amp;igrave;nh của nh&amp;oacute;m bạn.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Security Groups and Permissions &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Tạo c&amp;aacute;c security group để cấp một loạt c&amp;aacute;c
permission cụ thể. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Ph&amp;acirc;n chia c&amp;aacute;c team member v&amp;agrave;o c&amp;aacute;c security
group th&amp;iacute;ch hợp. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Team Projects &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Tạo một team project tr&amp;ecirc;n một ứng dụng nếu bạn
muốn di chuyển c&amp;aacute;c work item v&amp;agrave; c&amp;aacute;c&amp;nbsp; phần
kh&amp;aacute;c giữa c&amp;aacute;c version(phi&amp;ecirc;n bản) của ứng dụng.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Tạo một team project tr&amp;ecirc;n một version nếu bạn
muốn khởi động với c&amp;aacute;c work item mới v&amp;agrave; c&amp;aacute;c asset kh&amp;aacute;c với từng version(phi&amp;ecirc;n bản)
của ứng dụng.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Chỉ cấp c&amp;aacute;c permission được y&amp;ecirc;u cầu tr&amp;ecirc;n c&amp;aacute;c
project assets.&amp;nbsp; &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Cấu tr&amp;uacute;c source tree của bạn để hộ trợ
branching. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Work Items &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Nắm bắt c&amp;aacute;c kịch bản/t&amp;igrave;nh huống của bạn ngay
l&amp;uacute;c bắt đầu dự &amp;aacute;n project của bạn.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; X&amp;aacute;c định c&amp;aacute;c y&amp;ecirc;u cầu Quality of Service một
c&amp;aacute;ch th&amp;iacute;ch hợp. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Ph&amp;acirc;n chia c&amp;aacute;c kịch bản scenarios th&amp;agrave;nh c&amp;aacute;c
task quản l&amp;yacute;, m&amp;ocirc;- đun task ph&amp;aacute;t triển. &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Thiết lập từng ti&amp;ecirc;u chuẩn cơ bản cho từng
task.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Li&amp;ecirc;n kết c&amp;aacute;c requirement v&amp;agrave; c&amp;aacute;c task cho c&amp;aacute;c
kịch bản.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;bull;&amp;nbsp; Sử dụng Microsoft Excel để chỉnh sửa một số
lượng lớn c&amp;aacute;c work item.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Areas and
Iterations&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c area để truy nguy&amp;ecirc;n nguồn gốc tốt
hơn. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c iteration để đại diện cho c&amp;aacute;c sự
kiện quan trọng ở trong project của bạn. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Tạo một iteration ri&amp;ecirc;ng biệt cho c&amp;aacute;c nhiệm vụ
task v&amp;agrave; c&amp;aacute;c kịch bản scenario kh&amp;ocirc;ng x&amp;aacute;c định.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; X&amp;aacute;c định thời gian cho c&amp;aacute;c iteration th&amp;iacute;ch hợp.
&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;&amp;nbsp;Sử Dụng C&amp;aacute;c Area Để Truy Nguy&amp;ecirc;n
Nguồn Gốc Tốt Hơn. &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng c&amp;aacute;c area
trong team project của bạn để tố chức c&amp;aacute;c project tasks, bugs, requirements, v&amp;agrave;
c&amp;aacute;c work item. Bạn cũng c&amp;oacute; thể đặt c&amp;aacute;c permission tr&amp;ecirc;n c&amp;aacute;c area để hạn chế quyền
truy cập của c&amp;aacute;c bộ phận kh&amp;aacute;c nhau của team project của bạn. &lt;/p&gt;
&lt;p&gt;Sử dụng c&amp;aacute;c area
để đại diện cho c&amp;aacute;c th&amp;agrave;nh phần logic hay physic , v&amp;agrave; sau đ&amp;oacute; tạo c&amp;aacute;c&amp;nbsp; sub-area để đại diện cho c&amp;aacute;c chức năng cụ thể.
Cấu tr&amp;uacute;c n&amp;agrave;y gi&amp;uacute;p bạn tổ chức c&amp;aacute;c work item v&amp;agrave; cải thiện t&amp;iacute;nh truy
nguy&amp;ecirc;n(traceability) bởi c&amp;aacute;c th&amp;agrave;nh phần hay c&amp;aacute;c chức năng.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để tạo c&amp;aacute;c area cho
project của bạn &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1. Trong cửa sổ &lt;b&gt;Team Explorer&lt;/b&gt;, click v&amp;agrave;o &lt;b&gt;team project&lt;/b&gt; của bạn.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Tr&amp;ecirc;n &lt;b&gt;Team
menu&lt;/b&gt;, trỏ đến phần &lt;b&gt;Team Project
Settings&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; click v&amp;agrave;o &lt;b&gt;Areas
and Iterations. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Trong c&amp;aacute;c &lt;b&gt;Areas and Iterations&lt;/b&gt; dialog box, click v&amp;agrave;o Area tab. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Click v&amp;agrave;o &lt;b&gt;Add a child node&lt;/b&gt; toolbar button. &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Right-click v&amp;agrave;o new node, click &lt;b&gt;Rename&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; đ&amp;aacute;nh v&amp;agrave;o area name bạn
muốn. &lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Click v&amp;agrave;o &lt;b&gt;Area&lt;/b&gt; node. &lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; Lặp lại bước 2, 3, v&amp;agrave; 4 để tạo th&amp;ecirc;m c&amp;aacute;c area
v&amp;agrave; để tạo một hierarchy cho cấu tr&amp;uacute;c project structure của bạn.&lt;/p&gt;
&lt;p&gt;H&amp;atilde;y cẩn thận khi
tạo cấu tr&amp;uacute;c area structure qu&amp;aacute; phức tạp, trong khi c&amp;aacute;c area cho ph&amp;eacute;p bạn để
ph&amp;acirc;n v&amp;ugrave;ng c&amp;aacute;c work items permission, c&amp;oacute; c&amp;aacute;c tạp ph&amp;iacute; li&amp;ecirc;n kết với việc quản l&amp;iacute;
c&amp;aacute;c permission n&amp;agrave;y đối với c&amp;aacute;c c&amp;acirc;y tree phức tạp. N&amp;oacute; cũng c&amp;oacute; thể c&amp;oacute; vấn đề về
copy qua c&amp;aacute;c structure/ permissions đến c&amp;aacute;c Team projects kh&amp;aacute;c.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về sử dụng c&amp;aacute;c areas,
h&amp;atilde;y xem &amp;quot;How To - Manage Projects in Visual Studio Team Foundation Server&amp;quot;
trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử Dụng C&amp;aacute;c Iteration Để Đại Diện Cho C&amp;aacute;c Sự Kiện Quan Trọng ở Trong
Project Của Bạn&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng c&amp;aacute;c
iteration(lặp) để x&amp;aacute;c định xem bao nhi&amp;ecirc;u lần team của bạn sẽ lặp lại một tập
c&amp;aacute;c hoạt động ch&amp;iacute;nh cụ thể ( như l&amp;agrave; planning, implementation, hay testing)
trong suốt qu&amp;aacute; tr&amp;igrave;nh ph&amp;aacute;t triển ứng dụng. Tập c&amp;aacute;c hoạt động ch&amp;iacute;nh n&amp;agrave;y n&amp;ecirc;n đại
diện một sự kiện quan trọng cho project với một kết quả được định trước như l&amp;agrave;
sự ho&amp;agrave;n th&amp;agrave;nh c&amp;aacute;c chức năng hay c&amp;aacute;c th&amp;agrave;nh phần.&lt;/p&gt;
&lt;p&gt;Để tạo một
iteration&amp;nbsp; &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong Team Explorer, click v&amp;agrave;o team project của
bạn.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Ở tr&amp;ecirc;n menu Team, trỏ đến &lt;b&gt;Team Project Settings&lt;/b&gt;, sau đ&amp;oacute; click v&amp;agrave;o
&lt;b&gt;Areas and &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Iterations. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Trong hộp thoại &lt;b&gt;Areas and Iterations&lt;/b&gt; dialog box, click v&amp;agrave;o thẻ tab &lt;b&gt;Iteration&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Click v&amp;agrave;o toolbar button&amp;nbsp; &lt;b&gt;Add a
child node&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Right-click v&amp;agrave;o new node, click &lt;b&gt;Rename&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; h&amp;atilde;y đ&amp;aacute;nh t&amp;ecirc;n của
iteration.&lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Click v&amp;agrave;o &lt;b&gt;Iteration&lt;/b&gt; node. &lt;/p&gt;
&lt;p&gt;7.&amp;nbsp; Lặp lại c&amp;aacute;c bước 2, 3, v&amp;agrave; 4 để tạo th&amp;ecirc;m c&amp;aacute;c
iteration được x&amp;aacute;c định cho project của bạn. &lt;/p&gt;
&lt;p&gt;8.&amp;nbsp; Click &lt;b&gt;Close&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Lưu &amp;yacute;:&lt;/b&gt; The Microsoft&amp;reg;
Solutions Framework (MSF) cho quy tr&amp;igrave;nh mẫu Agile Software Development (MSF
Agile) process template gồm c&amp;oacute; 3 iteration được x&amp;aacute;c định trước. Dựa tr&amp;ecirc;n c&amp;aacute;c
y&amp;ecirc;u cầu cụ thể của bạn, bạn c&amp;oacute; thể delete những iteration n&amp;agrave;y, rename ch&amp;uacute;ng
thay v&amp;igrave; tạo những c&amp;aacute;i mới, hay kh&amp;ocirc;ng thay đổi ch&amp;uacute;ng.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về sử dụng c&amp;aacute;c
iterations, h&amp;atilde;y xem &amp;quot;L&amp;agrave;m thế n&amp;agrave;o - Quản l&amp;yacute; c&amp;aacute;c Project trong Visual Studio Team
Foundation Server&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Tạo Một Separate Iteration Cho C&amp;aacute;c Nhiệm Vụ Task V&amp;agrave; C&amp;aacute;c Kịch Bản
Scenario Kh&amp;ocirc;ng X&amp;aacute;c Định&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Tạo một iteration
ri&amp;ecirc;ng biệt m&amp;agrave; bạn c&amp;oacute; thể chỉ định tất cả c&amp;aacute;c kịch bản scenarios v&amp;agrave; c&amp;aacute;c task m&amp;agrave;
chưa được ph&amp;acirc;n định cho bất cứ iteration n&amp;agrave;o. Điều n&amp;agrave;y gi&amp;uacute;p bạn dễ d&amp;agrave;ng x&amp;aacute;c định
c&amp;aacute;c scenarios v&amp;agrave; c&amp;aacute;c task m&amp;agrave; đang chờ được giải quyết khi l&amp;ecirc;n kế hoạch c&amp;aacute;c
iteration của bạn.&lt;/p&gt;
&lt;p&gt;Để tạo một
separate iteration&amp;nbsp; &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Trong &lt;b&gt;Team
Explorer&lt;/b&gt;, click v&amp;agrave;o team project của bạn.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Ở tr&amp;ecirc;n &lt;b&gt;Team
menu&lt;/b&gt;, trỏ đến phần &lt;b&gt;Team Project
Settings&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; click v&amp;agrave;o &lt;b&gt;Areas
and Iterations. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Trong hộp thoại &lt;b&gt;Areas and Iterations&lt;/b&gt; dialog box, click v&amp;agrave;o tab &lt;b&gt;Iteration&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Click v&amp;agrave;o toolbar button &lt;b&gt;Add a child node.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Right-click v&amp;agrave;o new node, click Rename, v&amp;agrave;
sau đ&amp;oacute; đ&amp;aacute;nh t&amp;ecirc;n của iteration l&amp;agrave; &lt;b&gt;Iteration
999 &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;6.&amp;nbsp; Click &lt;b&gt;Close.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về việc tạo c&amp;aacute;c
iterations, h&amp;atilde;y xem &amp;quot;L&amp;agrave;m thế n&amp;agrave;o - Quản l&amp;yacute; c&amp;aacute;c Project trong Visual Studio Team
Foundation Server&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;X&amp;aacute;c Định Thời Gian cho c&amp;aacute;c Iteration Th&amp;iacute;ch Hợp&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Khi thiết lập
team project của bạn, h&amp;atilde;y x&amp;aacute;c định thời gian chu k&amp;igrave; lặp(&lt;b&gt;&lt;i&gt;iteration cycle duration&lt;/i&gt;&lt;/b&gt;)
ph&amp;ugrave; hợp dựa tr&amp;ecirc;n k&amp;iacute;ch cỡ v&amp;agrave; độ phức tạp của dự &amp;aacute;n của bạn. &lt;/p&gt;
&lt;p&gt;H&amp;atilde;y nhớ c&amp;aacute;c điểm
ch&amp;iacute;nh sau khi x&amp;aacute;c định &lt;b&gt;&lt;i&gt;iteration cycle duration&lt;/i&gt;&lt;/b&gt;:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;bull; Chu k&amp;igrave; lặp(iteration cycle) n&amp;ecirc;n đủ d&amp;agrave;i để
cho ph&amp;eacute;p c&amp;aacute;c th&amp;agrave;nh vi&amp;ecirc;n của đội nhận được những c&amp;ocirc;ng việc l&amp;agrave;m đ&amp;aacute;ng kể, v&amp;agrave; n&amp;ecirc;n
bao gồm &amp;iacute;t nhất một v&amp;agrave;i kịch bản kh&amp;aacute;c nhau.&amp;nbsp;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Chu k&amp;igrave; lặp(iteration cycle) n&amp;ecirc;n đủ ngắn để
th&amp;iacute;ch nghi một c&amp;aacute;ch linh hoạt với những sự thay đổi v&amp;agrave; ưu ti&amp;ecirc;n. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Trong thực h&amp;agrave;nh,
những c&amp;ocirc;ng việc c&amp;oacute; chu k&amp;igrave; lặp 2 tuần d&amp;agrave;nh cho hầu hết c&amp;aacute;c project.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;aacute;c iteration cycle
duration, h&amp;atilde;y xem &amp;quot;How To - Manage Projects in Visual Studio Team Foundation
Server&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về iteration cycle
duration, h&amp;atilde;y xem &amp;quot;Chương 11 - Project Management Explained&amp;quot; trong t&amp;agrave;i liệu
n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Check-in Policies&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c check-in policies để thực thi c&amp;aacute;c
quy định về chất lượng code.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c check-in policies để đảm bảo l&amp;agrave;
c&amp;aacute;c lập tr&amp;igrave;nh vi&amp;ecirc;n kết nối c&amp;aacute;c work item với c&amp;aacute;c check-in. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Tạo c&amp;aacute;c check-in policies để thi h&amp;agrave;nh c&amp;aacute;c
ti&amp;ecirc;u chuẩn về code.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; C&amp;agrave;i đặt c&amp;aacute;c lưu &amp;yacute; để th&amp;ocirc;ng b&amp;aacute;o cho bạn khi
c&amp;aacute;c lập tr&amp;igrave;nh vi&amp;ecirc;n bỏ qua c&amp;aacute;c check-in policies. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử Dụng C&amp;aacute;c Check-In Policies Để Thực Thi C&amp;aacute;c Quy Định Về Chất Lượng
Code&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng một sự kết
hợp giữa code analysis v&amp;agrave; testing policies để cải thiện chất lượng check-in cho
project của bạn. Th&amp;iacute; dụ, sử dụng c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch testing policy được cung cấp để
đảm b&amp;aacute;o l&amp;agrave; c&amp;aacute;c test cũ thể được thực thi v&amp;agrave; th&amp;ocirc;ng qua trước khi cho ph&amp;eacute;p source
được kiểm tra ở trong Microsoft Visual Studio&amp;reg; 2005 Team Foundation Server
(TFS) source control. Bạn cũng c&amp;oacute; thể cấu h&amp;igrave;nh một ch&amp;iacute;nh s&amp;aacute;ch code analysis
policy để gi&amp;uacute;p đảm bảo l&amp;agrave; phần code của bạn đ&amp;aacute;p ứng được c&amp;aacute;c ti&amp;ecirc;u chuẩn chất lượng
cơ bản bằng c&amp;aacute;ch đảm bảo về security, performance(hiệu suất), portability(t&amp;iacute;nh
tiện dụng), maintainability(bảo tr&amp;igrave;), v&amp;agrave; c&amp;aacute;c reliability rules(quy luật về độ
tin cậy) được th&amp;ocirc;ng qua. &lt;/p&gt;
&lt;p&gt;Bằng c&amp;aacute;ch thi
h&amp;agrave;nh loại ch&amp;iacute;nh s&amp;aacute;ch check-in policy n&amp;agrave;y th&amp;ecirc;m v&amp;agrave;o c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch policy m&amp;agrave; thực
thi c&amp;aacute;c ti&amp;ecirc;u chuẩn về code v&amp;agrave; những phần hướng dẫn, chắc chắn l&amp;agrave; phần code của
bạn đ&amp;aacute;p ứng một ti&amp;ecirc;u chuẩn về chất lượng cụ thể.&lt;/p&gt;
&lt;p&gt;Để thực h&amp;agrave;nh code
analysis check-in policy cho một team project&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Ở trong &lt;b&gt;Team
Explorer&lt;/b&gt;, right-click l&amp;ecirc;n team project của bạn, trỏ đến phần &lt;b&gt;Team Project Settings&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; click
v&amp;agrave;o phần &lt;b&gt;Source Control&lt;/b&gt;.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Click v&amp;agrave;o tab &lt;b&gt;Check-in Policy&lt;/b&gt; tab, click &lt;b&gt;Add&lt;/b&gt;,
v&amp;agrave; sau đ&amp;oacute; chọn v&amp;agrave; cấu h&amp;igrave;nh ch&amp;iacute;nh s&amp;aacute;ch policy th&amp;iacute;ch hợp. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về việc tạo v&amp;agrave; sử dụng một
ch&amp;iacute;nh s&amp;aacute;ch check-in policy t&amp;ugrave;y chỉnh, h&amp;atilde;y xem &amp;quot;How To - Step Through Creating
Custom Check-in Policies for TFS&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử Dụng C&amp;aacute;c Check-In Policies Để Đảm Bảo L&amp;agrave; C&amp;aacute;c Lập Tr&amp;igrave;nh Vi&amp;ecirc;n Kết Nối
C&amp;aacute;c Work Item Với C&amp;aacute;c Check-In.&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Thiết lập c&amp;aacute;c
Work Items check-in policy để buộc c&amp;aacute;c nh&amp;agrave; ph&amp;aacute;t triển li&amp;ecirc;n kết phần check-in của
họ với một work item. Nếu một build bị break, điều quan trọng l&amp;agrave; bạn biết được
tập c&amp;aacute;c thay đổi n&amp;agrave;o được li&amp;ecirc;n kết với việc build đ&amp;oacute;, v&amp;agrave; c&amp;aacute;c work item n&amp;agrave;o m&amp;agrave;
những tập c&amp;aacute;c thay đổi đ&amp;oacute; được li&amp;ecirc;n kết đến, để bạn c&amp;oacute; thể x&amp;aacute;c định tr&amp;aacute;ch nhiệm
của nh&amp;agrave; ph&amp;aacute;t triển n&amp;agrave;o đối với việc kiểm tra trong phần code n&amp;agrave;y v&amp;agrave; nh&amp;agrave; ph&amp;aacute;t
triển đang l&amp;agrave;m việc tr&amp;ecirc;n khu vực area n&amp;agrave;o của project.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để c&amp;agrave;i đặt c&amp;aacute;c Work
Items check-in policy để buộc c&amp;aacute;c nh&amp;agrave; ph&amp;aacute;t triển li&amp;ecirc;n kết phần check-in của họ
với một work item:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Ở trong &lt;b&gt;Team
Explorer&lt;/b&gt;, right-click l&amp;ecirc;n team project của bạn, chọn phần &lt;b&gt;Team Project Settings&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; click
v&amp;agrave;o phần &lt;b&gt;Source Control&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Click v&amp;agrave;o tab &lt;b&gt;Check-in Policy&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Click &lt;b&gt;Add&lt;/b&gt;
v&amp;agrave; sau đ&amp;oacute; chọn v&amp;agrave; cấu h&amp;igrave;nh &lt;b&gt;Work Item
check-in policy&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;aacute;c check-ins, h&amp;atilde;y
xem &amp;quot;How to: Check In Pending Changes&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181411%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms181411(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;aacute;c work items v&amp;agrave; c&amp;aacute;c
tập thay đổi changesets, h&amp;atilde;y xem &amp;quot;How to: Associate Work Items with Changesets&amp;quot;
tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181410%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms181410(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Tạo C&amp;aacute;c Check-In Policies Để Thi H&amp;agrave;nh C&amp;aacute;c Ti&amp;ecirc;u Chuẩn Về Code&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Project m&amp;agrave; bạn
đang l&amp;agrave;m việc c&amp;oacute; thể y&amp;ecirc;u cầu c&amp;aacute;c ti&amp;ecirc;u chuẩn về code m&amp;agrave; kh&amp;ocirc;ng bao gồm c&amp;aacute;c ch&amp;iacute;nh
s&amp;aacute;ch ph&amp;acirc;n t&amp;iacute;ch code tỉnh static code analysis policy hay bằng c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch
check-in policy đ&amp;atilde; c&amp;oacute;. Th&amp;iacute; dụ, project của bạn c&amp;oacute; thể y&amp;ecirc;u cầu phần code của bạn
kh&amp;ocirc;ng bao giờ được sử dụng k&amp;iacute; tự tab character, hay tất cả c&amp;aacute;c check-in y&amp;ecirc;u cầu
c&amp;aacute;c &amp;yacute; kiến(comment). Bạn c&amp;oacute; thể tạo mới c&amp;aacute;c check-in policy&amp;nbsp; để kiểm so&amp;aacute;t c&amp;aacute;c kịch bản scenarios n&amp;agrave;y.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để thi h&amp;agrave;nh một ch&amp;iacute;nh
s&amp;aacute;ch code analysis check-in policy cho một team project &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Ở trong Team Explorer, right-click l&amp;ecirc;n team
project của bạn, trỏ đến phần Team Project Settings, v&amp;agrave; sau đ&amp;oacute; click v&amp;agrave;o phần
Source Control. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Click v&amp;agrave;o tab Check-in Policy v&amp;agrave; sau đ&amp;oacute; click
Add. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Ở trong hộp thoại Add Check-in Policy dialog
box, h&amp;atilde;y chọn Code Analysis v&amp;agrave; sau đ&amp;oacute; click OK. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Trong phần Code Analysis Policy Editor, chọn
cả Enforce C/C++ Code Analysis &lt;/p&gt;
&lt;p&gt;(/analyze) hay
Enforce Code Analysis For Managed Code. Chọn cả hai nếu project của bạn c&amp;oacute; một
sự kết hợp của phần code được quản l&amp;yacute; v&amp;agrave; phần code kh&amp;ocirc;ng được quản l&amp;yacute;. &lt;/p&gt;
&lt;p&gt;5.&amp;nbsp; Nếu bạn chọn managed code analysis, h&amp;atilde;y cấu
h&amp;igrave;nh c&amp;aacute;c thiết lập quy luật y&amp;ecirc;u cầu (required rule setting) cho phần managed
code analysis dựa tr&amp;ecirc;n y&amp;ecirc;u cầu về c&amp;aacute;c&amp;nbsp;
ti&amp;ecirc;u chuẩn&amp;nbsp; code.&amp;nbsp; Điều n&amp;agrave;y sẽ x&amp;aacute;c định một c&amp;aacute;ch ch&amp;iacute;nh x&amp;aacute;c l&amp;agrave;
c&amp;aacute;c quy luật rule n&amp;agrave;o được thi h&amp;agrave;nh.&lt;/p&gt;
&lt;p&gt;Bạn cũng c&amp;oacute; thể tạo
một custom check-in policy để thực hiện c&amp;aacute;c kiểm tra m&amp;agrave; kh&amp;ocirc;ng tồn tại sẵn. Th&amp;iacute;
dụ, bạn c&amp;oacute; thể kh&amp;ocirc;ng cho ph&amp;eacute;p c&amp;aacute;c mẫu code pattern như l&amp;agrave; cấm c&amp;aacute;c việc gọi c&amp;aacute;c
application programming interface (API) calls, hay bạn c&amp;oacute; thể viết một ch&amp;iacute;nh
s&amp;aacute;ch policy để thi h&amp;agrave;nh c&amp;aacute;c phong c&amp;aacute;ch hướng dẫn code cụ thể của nh&amp;oacute;m bạn(team&amp;#39;s
specific coding style guideline), như l&amp;agrave; vị tr&amp;iacute; của những dấu ngoặc n&amp;ecirc;n được đặt
với source code của bạn.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về việc tạo c&amp;aacute;c check-in
policies, h&amp;atilde;y xem &amp;quot;How To - Create Custom Check-in Policies in Visual Studio
Team Foundation Server&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;C&amp;agrave;i Đặt C&amp;aacute;c Lưu &amp;Yacute; Để Th&amp;ocirc;ng B&amp;aacute;o Cho Bạn Khi C&amp;aacute;c Lập Tr&amp;igrave;nh Vi&amp;ecirc;n Bỏ Qua C&amp;aacute;c
Check-In Policies&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Team Foundation
Server Version Control kh&amp;ocirc;ng ngăn cản bạn ghi đ&amp;egrave; override một check-in policy.
Tuy nhi&amp;ecirc;n, bạn c&amp;oacute; thể sử dụng c&amp;aacute;c bước sau để kh&amp;aacute;m ph&amp;aacute; thử nếu một ch&amp;iacute;nh s&amp;aacute;ch
check-in policy đ&amp;atilde; bị override hay chưa: &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Sử dụng Team Foundation Server Eventing
Service (từ Team Foundation Core Services API) để hook c&amp;aacute;c check-in event. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Viết một&amp;nbsp;
Notify method m&amp;agrave; parse c&amp;aacute;c chi tiết của tập changeset v&amp;agrave; sau đ&amp;oacute; phản ứng
với n&amp;oacute; nếu một sự override xảy ra. &lt;/p&gt;
&lt;p&gt;Ngo&amp;agrave;i ra, bạn c&amp;oacute;
thể scanmột c&amp;aacute;ch thủ c&amp;ocirc;ng&amp;nbsp; changeset
history để kh&amp;aacute;m ph&amp;aacute; c&amp;aacute;c policy override.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu nhiều về overriding một check-in
policy, h&amp;atilde;y xem &amp;quot;How to: Override a Check-in Policy&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms245460%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms245460(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Process Templates&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng quy tr&amp;igrave;nh mẫu MSF Agile khi đang l&amp;agrave;m
việc tr&amp;ecirc;n c&amp;aacute;c project m&amp;agrave; chỉ y&amp;ecirc;u cầu một quy tr&amp;igrave;nh &amp;iacute;t quan trọng hay kh&amp;ocirc;ng
ch&amp;iacute;nh thức.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng quy tr&amp;igrave;nh mẫu MSF CMMI khi l&amp;agrave;m việc
tr&amp;ecirc;n c&amp;aacute;c project y&amp;ecirc;u cầu một quy tr&amp;igrave;nh ch&amp;iacute;nh thức hay sự ph&amp;ugrave; hợp với c&amp;aacute;c ti&amp;ecirc;u
chuẩn CMMI.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Xem x&amp;eacute;t sử dụng một quy tr&amp;igrave;nh mẫu tối giản(minimal
process template). &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Chỉnh sửa một quy tr&amp;igrave;nh mẫu đ&amp;atilde; c&amp;oacute; cho ph&amp;ugrave; hợp
với quy tr&amp;igrave;nh của nh&amp;oacute;m bạn.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử Dụng Quy Tr&amp;igrave;nh Mẫu MSF Agile Khi Đang L&amp;agrave;m Việc Tr&amp;ecirc;n C&amp;aacute;c Project M&amp;agrave; Chỉ
Y&amp;ecirc;u Cầu Một Quy Tr&amp;igrave;nh &amp;Iacute;t Quan Trọng Hay Kh&amp;ocirc;ng Ch&amp;iacute;nh Thức&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Khi sử dụng
Test-Driven Development (TDD) hay c&amp;aacute;c&amp;nbsp;
phương ph&amp;aacute;p agile kh&amp;aacute;c, bạn n&amp;ecirc;n sử dụng quy tr&amp;igrave;nh mẫu MSF for Agile
Software Development (MSF Agile) process template. Đ&amp;acirc;y l&amp;agrave; một quy tr&amp;igrave;nh &amp;iacute;t quan
trọng cho c&amp;aacute;c agile software project. Bạn n&amp;ecirc;n sử dụng quy tr&amp;igrave;nh project n&amp;agrave;y như
l&amp;agrave; lựa chọn đầu ti&amp;ecirc;n, nếu đặc biệt bạn kh&amp;ocirc;ng cần c&amp;aacute;c chức năng cải tiến của c&amp;aacute;c
quy tr&amp;igrave;nh th&amp;ecirc;m được cung cấp bởi&amp;nbsp; MSF for
CMMI Software Development (MSF CMMI) process template. Bạn c&amp;oacute; thể dễ d&amp;agrave;ng chỉnh
sửa quy tr&amp;igrave;nh mẫu của MSF Agile v&amp;agrave; thay đổi để ph&amp;uacute; hợp với c&amp;aacute;c y&amp;ecirc;u cầu quy
tr&amp;igrave;nh của bạn.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin, h&amp;atilde;y xem &amp;quot;Chương 11 -
Project Management Explained&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về MSF Agile process
template, h&amp;atilde;y xem &amp;quot;Chương 13 - MSF for Agile Software Development Projects&amp;quot;
trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về việc t&amp;ugrave;y chỉnh c&amp;aacute;c
process template, h&amp;atilde;y xem &amp;quot;How To - Customize a Process Template in Visual
Studio Team Foundation Server&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng quy tr&amp;igrave;nh mẫu MSF CMMI khi l&amp;agrave;m việc tr&amp;ecirc;n c&amp;aacute;c project y&amp;ecirc;u cầu một
quy tr&amp;igrave;nh ch&amp;iacute;nh thức hay sự ph&amp;ugrave; hợp với c&amp;aacute;c ti&amp;ecirc;u chuẩn CMMI&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Khi sử dụng một
quy tr&amp;igrave;nh ph&amp;aacute;t triển phần mềm ch&amp;iacute;nh thức(formal software development process)
nhằm cải thiện c&amp;aacute;c quy tr&amp;igrave;nh hiện c&amp;oacute;, bạn n&amp;ecirc;n sử dụng c&amp;aacute;c quy tr&amp;igrave;nh mẫu của MSF
for CMMI Software Development (MS CMMI) process template.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Bạn c&amp;oacute; thể dễ
d&amp;agrave;ng chỉnh sửa v&amp;agrave; thay đổi quy tr&amp;igrave;nh mẫu process template n&amp;agrave;y cho ph&amp;ugrave; hợp với
c&amp;aacute;c y&amp;ecirc;u cầu quy tr&amp;igrave;nh của bạn.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin, h&amp;atilde;y xem &amp;quot;Chương 11 -
Project Management Explained&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về t&amp;ugrave;y chỉnh template,
h&amp;atilde;y xem &amp;quot;How To - Customize a Process Template in Visual Studio Team Foundation
Server&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Xem x&amp;eacute;t sử dụng một quy tr&amp;igrave;nh mẫu tối giản(minimal process template)&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Rất nhiều team
kh&amp;ocirc;ng y&amp;ecirc;u cầu hỗ trợ cho tất cả những phần của một ti&amp;ecirc;u chuẩn dự &amp;aacute;n nh&amp;oacute;m team
project. Th&amp;iacute; dụ, rất nhiều team muốn sử dụng source control portion của một
team project nhưng kh&amp;ocirc;ng l&amp;agrave; Microsoft Office SharePoint&amp;reg; portal. Những mẫu team
project template c&amp;oacute; thể được chỉnh sửa thay đổi, v&amp;agrave; c&amp;oacute; thể remove một số phần của
những template m&amp;agrave; bạn kh&amp;ocirc;ng cần. Khi bạn chỉnh sửa template, bạn sẽ cần giữ lại
những phần như Group Permissions and Classifications sections; tuy nhi&amp;ecirc;n, bạn
c&amp;oacute; thể giữ lại hay l&amp;agrave; remove những phần kh&amp;aacute;c nếu bạn thấy ph&amp;ugrave; hợp. &lt;/p&gt;
&lt;p&gt;Để tạo một
minimal process template, bạn sử dụng Process Template Manager để&lt;/p&gt;
&lt;p&gt;download phần
template đến m&amp;aacute;y t&amp;iacute;nh của bạn, chỉnh sửa template để remove những phần m&amp;agrave; bạn sẽ
kh&amp;ocirc;ng sử dụng, v&amp;agrave; sau đ&amp;oacute; upload trở lại template đến server. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về process templates,
h&amp;atilde;y xem &amp;quot;Chương 13 - Process Templates Explained&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về t&amp;ugrave;y chỉnh c&amp;aacute;c process
templates, h&amp;atilde;y xem &amp;quot;How To - Customize a Process Template in Visual Studio Team
Foundation Server&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về t&amp;ugrave;y chỉnh c&amp;aacute;c process
templates, h&amp;atilde;y xem &amp;quot;Customizing Process Templates&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms243782%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms243782(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về sử dụng một minimal
process template h&amp;atilde;y xem, &amp;quot;How to use TFS for source control only&amp;quot; tại &lt;a href="http://blogs.msdn.com/richardb/archive/2007/05/10/how-to-use-tfs-for-source-control-only.aspx"&gt;http://blogs.msdn.com/richardb/archive/2007/05/10/how-to-use-tfs-for-source-control-only.aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Chỉnh sửa một quy tr&amp;igrave;nh mẫu đ&amp;atilde; c&amp;oacute; cho ph&amp;ugrave; hợp với quy tr&amp;igrave;nh của nh&amp;oacute;m bạn&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Dự &amp;aacute;n project m&amp;agrave;
bạn đang l&amp;agrave;m việc c&amp;oacute; thể kh&amp;ocirc;ng ph&amp;ugrave; hợp với c&amp;aacute;c quy tr&amp;igrave;nh mẫu out-of-box process
templates được cung cấp với Microsoft Visual Studio Team System (VSTS). Bạn c&amp;oacute;
thể cần một loại work item kh&amp;aacute;c, hay bạn c&amp;oacute; thể sử dụng một phương ph&amp;aacute;p quy
tr&amp;igrave;nh ho&amp;agrave;n to&amp;agrave;n kh&amp;aacute;c. Trong trường hợp n&amp;agrave;y, bạn n&amp;ecirc;n thay đổi c&amp;aacute;c mẫu quy tr&amp;igrave;nh
đ&amp;atilde; c&amp;oacute;. H&amp;atilde;y chọn c&amp;aacute;c quy tr&amp;igrave;nh mẫu process template m&amp;agrave; hầu như đ&amp;aacute;p ứng được tốt
nhất c&amp;aacute;c y&amp;ecirc;u cầu quy tr&amp;igrave;nh của bạn v&amp;agrave; sau đ&amp;oacute; chỉnh sửa c&amp;aacute;c template nếu cần thiết.
&lt;/p&gt;
&lt;p&gt;Những phần sau của
c&amp;aacute;c quy tr&amp;igrave;nh mẫu process template thường cần được chỉnh sửa:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Groups and Permissions &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Work Item Types &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Source Control Check-in Notes and Policies &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Areas and Iterations &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Reports &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Team Portal &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Process Guidance &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về process templates,
h&amp;atilde;y xem &amp;quot;Chương 13 - Process Template Explained&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về t&amp;ugrave;y chỉnh c&amp;aacute;c
template, h&amp;atilde;y xem &amp;quot;How To - Customize a Process Template in Visual Studio Team
Foundation Server&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Security Groups
and Permissions&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Tạo c&amp;aacute;c security group để cấp một loạt c&amp;aacute;c
permission cụ thể. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Ph&amp;acirc;n chia c&amp;aacute;c team member v&amp;agrave;o c&amp;aacute;c security
group th&amp;iacute;ch hợp. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Tạo c&amp;aacute;c security group để cấp một loạt c&amp;aacute;c permission cụ thể&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Khi bạn tạo một
project trong Team Foundation Server, 4 nh&amp;oacute;m mặc định được tạo cho project đ&amp;oacute; bất
kể lựa chọn của bạn về process template. Mặc định, từng group c&amp;oacute; một tập c&amp;aacute;c
permission được định nghĩa cho việc những g&amp;igrave; m&amp;agrave; c&amp;aacute;c th&amp;agrave;nh vi&amp;ecirc;n của c&amp;aacute;c nh&amp;oacute;m đ&amp;oacute;
được ph&amp;eacute;p l&amp;agrave;m. Bốn nh&amp;oacute;m đ&amp;oacute; l&amp;agrave;:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Project Administrator &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Contributor &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Reader &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Build Services.&amp;nbsp; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Bạn c&amp;oacute; thể tạo c&amp;aacute;c security group cho team
project của bạn đ&amp;aacute;p ứng tốt hơn c&amp;aacute;c y&amp;ecirc;u cầu security của tổ chức của bạn. Tạo một
security group l&amp;agrave; một c&amp;aacute;ch hiệu quả để cấp một tập c&amp;aacute;c permission cụ thể đến một
group c&amp;aacute;c user tr&amp;ecirc;n team project của bạn. H&amp;atilde;y chắc l&amp;agrave; bạn chỉ cho ph&amp;eacute;p c&amp;aacute;c
permission cần thiết tối thiểu cho group, v&amp;agrave; chỉ th&amp;ecirc;m c&amp;aacute;c user hay c&amp;aacute;c group m&amp;agrave;
phải thuộc về team project group mới.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Ngo&amp;agrave;i ra h&amp;atilde;y sử dụng
c&amp;aacute;c hướng dẫn sau đ&amp;acirc;y: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Kh&amp;ocirc;ng thay đổi c&amp;aacute;c permission tr&amp;ecirc;n c&amp;aacute;c group
mặc định (hoặc nếu bạn l&amp;agrave;m, h&amp;atilde;y l&amp;agrave;m tr&amp;ecirc;n mọi project với c&amp;ugrave;ng một c&amp;aacute;ch giống
nhau) &lt;/li&gt;
&lt;li&gt; Sử dụng c&amp;aacute;c Active Directory (AD) group chỉ
cho c&amp;aacute;c th&amp;agrave;nh vi&amp;ecirc;n tr&amp;ecirc;n level server. &lt;/li&gt;
&lt;li&gt; Sử dụng c&amp;aacute;c TFS group cho c&amp;aacute;c thiết lập
permission(hơn l&amp;agrave; c&amp;aacute;c AD group) &lt;/li&gt;
&lt;li&gt; Đừng bao giờ deny bất cứ điều g&amp;igrave; (lu&amp;ocirc;n lu&amp;ocirc;n
deny nghĩa l&amp;agrave; ph&amp;acirc;n v&amp;ugrave;ng m&amp;agrave; bạn sử dụng sẽ &amp;iacute;t hơn rất nhiều); h&amp;atilde;y chắc l&amp;agrave; nguy&amp;ecirc;n
nh&amp;acirc;n của bạn l&amp;agrave; đ&amp;uacute;ng đắn khi bạn thực hiện điều g&amp;igrave; đ&amp;oacute;. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về việc tạo c&amp;aacute;c security
groups, h&amp;atilde;y xem &amp;quot;How To - Manage Projects in Visual Studio Team Foundation
Server&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về TFS permissions, h&amp;atilde;y
xem &amp;quot;Team Foundation Server Permissions&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms252587%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms252587(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Ph&amp;acirc;n chia c&amp;aacute;c team member v&amp;agrave;o c&amp;aacute;c security group th&amp;iacute;ch hợp&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;H&amp;atilde;y x&amp;aacute;c định c&amp;aacute;c
team member sẽ l&amp;agrave;m việc tr&amp;ecirc;n project v&amp;agrave; những vai tr&amp;ograve; của họ, v&amp;agrave; ph&amp;acirc;n chia những
team member n&amp;agrave;y v&amp;agrave;o TFS bằng c&amp;aacute;ch sử dụng c&amp;aacute;c team project group ,c&amp;aacute;c
server-level group đ&amp;atilde; c&amp;oacute;, hay c&amp;aacute;c custom security group m&amp;agrave; bạn tạo ra. &lt;/p&gt;
&lt;p&gt;Khi ph&amp;acirc;n chia c&amp;aacute;c
member v&amp;agrave;o một security group, chỉ ph&amp;acirc;n chia c&amp;aacute;c member m&amp;agrave; cần c&amp;aacute;c permission
c&amp;oacute; sẵn cho security group đ&amp;oacute;. Nếu cần thiết, bạn c&amp;oacute; thể tạo c&amp;aacute;c custom security
group với c&amp;aacute;c security permission ph&amp;ugrave; hợp v&amp;agrave; sau đ&amp;oacute; ph&amp;acirc;n chia c&amp;aacute;c userv&amp;agrave;o c&amp;aacute;c
security group đ&amp;oacute;. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;aacute;c security group,
h&amp;atilde;y xem &amp;quot;How To - Manage Projects in Visual Studio Team Foundation Server&amp;quot;
trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Hướng dẫn: Team Build</title><link>http://msdnvietnam.net/wikis/tfs/h-ng-d-n-team-build/revision/0.aspx</link><pubDate>Tue, 15 Dec 2009 05:37:53 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:132</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to TFS - Team Foundation System by Nguyễn Thị Như Quỳnh on 12/15/2009 1:37:53 PM&lt;br /&gt;
&lt;h2&gt;Hướng dẫn: Team Build&lt;/h2&gt;
&lt;p&gt;Đ&amp;acirc;y l&amp;agrave; phần hướng dẫn sẽ gồm c&amp;aacute;c mục sau:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;C&amp;aacute;c mục&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Strategy &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Sử dụng một
scheduled build để tạo ra c&amp;aacute;c regular builds. &lt;/li&gt;
&lt;li&gt; Sử dụng một
Continuous Integration (CI) build để nhận c&amp;aacute;c feedback một c&amp;aacute;ch nhanh ch&amp;oacute;ng
tr&amp;ecirc;n c&amp;aacute;c check-ins. &lt;/li&gt;
&lt;li&gt; Sử dụng một rolling
build nếu c&amp;aacute;c CI builds ảnh hưởng bất lợi đến &lt;span style="background: SpringGreen;"&gt;hiệu&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;suất&lt;/span&gt; build server &lt;span style="text-decoration: line-through; color: red;"&gt;performance&lt;/span&gt;.&lt;/li&gt;
&lt;li&gt; Sử dụng branching để
giảm c&amp;aacute;c build breaks. &lt;/li&gt;
&lt;li&gt; Sử dụng check-in
policies để cải thiện chất lượng check-in. &lt;/li&gt;
&lt;li&gt; Sử dụng build
notification alerts để t&amp;igrave;m hiểu khi n&amp;agrave;o c&amp;aacute;c build ho&amp;agrave;n th&amp;agrave;nh.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Branching &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Sử dụng Team Build
Types mới khi tạo một phần branch. &lt;/li&gt;
&lt;li&gt; Chỉnh sửa c&amp;aacute;c path để
giải quyết trong TFSBuild.proj files, khi tạo một branch ho&amp;agrave;n chỉnh.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Continuous
Integration Builds &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Sử dụng một CI build
để nhận nhanh ch&amp;oacute;ng c&amp;aacute;c feedback tr&amp;ecirc;n c&amp;aacute;c check-in. &lt;/li&gt;
&lt;li&gt; Sử dụng một rolling
build nếu c&amp;aacute;c CI build c&amp;oacute; ảnh hưởng xấu đến &lt;span style="background: SpringGreen;"&gt;hiệu&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;suất&lt;/span&gt; build server&lt;span style="text-decoration: line-through; color: red;"&gt;performance&lt;/span&gt;. &lt;/li&gt;
&lt;li&gt; H&amp;atilde;y đảm bảo l&amp;agrave; tần số
của c&amp;aacute;c rolling build của bạn thường &amp;iacute;t hơn c&amp;aacute;c build times.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Customization
&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Sử dụng một custom
post-build step để build một installer project. &lt;/li&gt;
&lt;li&gt; Sử dụng MS Build
Toolkit Extras để build c&amp;aacute;c Microsoft .NET 1.1 applications. &lt;/li&gt;
&lt;li&gt; Sử dụng
TFSBuild.proj để chỉnh sửa c&amp;aacute;c build của bạn. &lt;/li&gt;
&lt;li&gt; Sử dụng một custom
pre-build step để build một project c&amp;oacute; phụ thuộc đến c&amp;aacute;c team project kh&amp;aacute;c.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Deployment &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Tr&amp;ecirc;n c&amp;aacute;c team lớn,
install c&amp;aacute;c build services tr&amp;ecirc;n một &lt;span style="text-decoration: line-through; color: red;"&gt;separate&lt;/span&gt; server &lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;ri&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;ecirc;ng.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Performance
&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Sử dụng c&amp;aacute;c incremental
builds để cải thiện hiệu suất.&lt;/li&gt;
&lt;li&gt; Tr&amp;aacute;nh việc đồng bộ
h&amp;oacute;a c&amp;aacute;c folder dự ph&amp;ograve;ng trong c&amp;aacute;c build của bạn. &lt;/li&gt;
&lt;li&gt; Sử dụng c&amp;aacute;c
workspaces để tr&amp;aacute;nh check out c&amp;aacute;c file v&amp;agrave; project kh&amp;ocirc;ng mong muốn khi đang thực
hiện một Team Build. &lt;/li&gt;
&lt;li&gt; Xem x&amp;eacute;t sử dụng c&amp;aacute;c
multiple build machines để n&amp;acirc;ng cao hiệu suất.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Projects &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Tr&amp;aacute;nh c&amp;aacute;c phụ thuộc
qua lại giữa c&amp;aacute;c team project với nhau. &lt;/li&gt;
&lt;li&gt; Sử dụng c&amp;aacute;c project
references thay v&amp;igrave; c&amp;aacute;c file references. &lt;/li&gt;
&lt;li&gt; Sử dụng Web
Deployment Project cho c&amp;aacute;c Web applications. &lt;/li&gt;
&lt;li&gt; Sử dụng một
single-solution strategy nếu bạn đang l&amp;agrave;m việc tr&amp;ecirc;n một team project nhỏ. &lt;/li&gt;
&lt;li&gt; Sử dụng một
partitioned-solution strategy nếu bạn đang l&amp;agrave;m việc tr&amp;ecirc;n một team project lớn với
nhiều project con độc lập nhau.&lt;/li&gt;
&lt;li&gt; Sử dụng một
multiple-solution strategy nếu bạn đang l&amp;agrave;m việc tr&amp;ecirc;n một team project rất lớn
m&amp;agrave; y&amp;ecirc;u cầu đến h&amp;agrave;ng chục project con độc lập nhau.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Scheduled
Builds &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Sử dụng một
scheduled build để tạo c&amp;aacute;c regular builds.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Test-Driven
Development &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Run code analysis tr&amp;ecirc;n
từng build. &lt;/li&gt;
&lt;li&gt; Run automated tests tr&amp;ecirc;n
từng build. &lt;/li&gt;
&lt;li&gt; Xem x&amp;eacute;t g&amp;aacute;n c&amp;aacute;c
build th&amp;agrave;nh fail khi c&amp;aacute;c automated test bị fail. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Work Items &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Sử dụng c&amp;aacute;c work
items để theo d&amp;otilde;i c&amp;aacute;c build breaks.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Strategy &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng một scheduled build để tạo c&amp;aacute;c
regular builds. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng CI build để lấy nhanh ch&amp;oacute;ng c&amp;aacute;c
feedback tr&amp;ecirc;n c&amp;aacute;c check-in. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng một rolling build nếu c&amp;aacute;c CI build c&amp;oacute;
t&amp;aacute;c động xấu đến &lt;span style="background: SpringGreen;"&gt;năng&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;suất&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;của&lt;/span&gt; server&lt;span style="text-decoration: line-through; color: red;"&gt;performance&lt;/span&gt;. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng branching để giảm thiểu c&amp;aacute;c build
breaks. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c check-in policy để cải thiện chất
lượng check-in quality. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng build notification alerts để t&amp;igrave;m hiểu
khi n&amp;agrave;o c&amp;aacute;c build được ho&amp;agrave;n th&amp;agrave;nh.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng một scheduled build để tạo c&amp;aacute;c regular builds &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng một scheduled build để tạo ra c&amp;aacute;c builds một c&amp;aacute;ch thường
xuy&amp;ecirc;n, dự b&amp;aacute;o c&amp;aacute;c khoảng c&amp;aacute;ch. &lt;/p&gt;
&lt;p&gt;Nh&amp;igrave;n chung, c&amp;aacute;c build cung cấp cho test team của bạn v&amp;agrave; những
nh&amp;oacute;m kh&amp;aacute;c để tin cậy v&amp;agrave; n&amp;ecirc;n thực hiện sẵn tại một mức thời gian cố định, để c&amp;aacute;c
feedback tr&amp;ecirc;n c&amp;aacute;c build c&amp;oacute; thể được thu thập một c&amp;aacute;ch kịp thời. &lt;/p&gt;
&lt;p&gt;The Team Build feature in Microsoft&amp;reg; Visual Studio&amp;reg; 2005 Team
Foundation Server (TFS) kh&amp;ocirc;ng support c&amp;aacute;c scheduled build từ giao diện người
d&amp;ugrave;ng(user interface). Thay v&amp;agrave;o đ&amp;oacute;, bạn c&amp;oacute; thể sử dụng Microsoft Windows&amp;reg; Task
Scheduler để chạy TFSBuild command-line utility để bắt đầu c&amp;aacute;c build tại một thời
điểm x&amp;aacute;c định trước.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để tạo một&lt;/b&gt;&lt;b&gt; scheduled
build &lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Tạo một TFSBuild
command line như sau:&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;TfsBuild
start &amp;lt;&amp;lt;TeamFoundationServer&amp;gt;&amp;gt; &amp;lt;&amp;lt;TeamProject&amp;gt;&amp;gt;
&amp;lt;&amp;lt;BuildTypeName&amp;gt;&amp;gt; &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;2.&amp;nbsp; Đặt c&amp;aacute;c command line trong một batch file. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Tạo một Windows
Scheduled Task để chạy c&amp;aacute;c batch file tại khoảng thời gian mong muốn của bạn.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về thiết lập c&amp;aacute;c scheduled build với Team Build, h&amp;atilde;y xem&amp;quot;Chương 9: C&amp;agrave;i đặt một
Scheduled Build với Team Build&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về thiết lập c&amp;aacute;c scheduled build với
TFS, h&amp;atilde;y xem &amp;quot;L&amp;agrave;m thế n&amp;agrave;o - C&amp;agrave;i đặt một Scheduled Build trong Visual Studio
Team Foundation Server&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng CI build
để lấy nhanh ch&amp;oacute;ng c&amp;aacute;c feedback tr&amp;ecirc;n c&amp;aacute;c check-in&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Bạn n&amp;ecirc;n sử dụng c&amp;aacute;c CI build để cung cấp cho nh&amp;oacute;m ph&amp;aacute;t triển
của bạn c&amp;aacute;c feedback nhanh về bất k&amp;igrave; sự thay đổi breaking change n&amp;agrave;o v&amp;agrave; về chất
lượng của c&amp;aacute;c build sau mỗi check-in. Điều n&amp;agrave;y gi&amp;uacute;p cho c&amp;aacute;c nh&amp;oacute;m ph&amp;aacute;t triển sữa
chữa c&amp;aacute;c vấn đề build một c&amp;aacute;ch nhanh ch&amp;oacute;ng v&amp;agrave; c&amp;oacute; thể được sử dụng như l&amp;agrave; một
tool để cải thiện chất lượng code của bạn. &lt;/p&gt;
&lt;p&gt;Mặc d&amp;ugrave; Team Foundation Server 2005 kh&amp;ocirc;ng cung cấp một CI
solution out of box, n&amp;oacute; đ&amp;atilde; cung cấp framework cho bạn để thực thi CI build
solution của ri&amp;ecirc;ng bạn.&lt;/p&gt;
&lt;p&gt;Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về thiết lập một CI build với TFS, h&amp;atilde;y
xem &amp;quot;How To - Set Up a Continuous Integration Build in Visual Studio Team
Foundation Server.&amp;quot; Đề t&amp;agrave;i How To article n&amp;agrave;y sử dụng the solution được cung cấp
bởi the Microsoft Visual Studio Team System (VSTS) development team. The
solution sẽ c&amp;agrave;i đặt một Web service chạy b&amp;ecirc;n dưới một account that đ&amp;atilde; truy cập
đến TFS server. Team Foundation Server c&amp;oacute; thể send một e-mail message hay call một
Web service khi c&amp;aacute;c &amp;nbsp;event cụ thể xảy ra.
Cơ chế event n&amp;agrave;y được sử dụng bởi CI solution để đăng k&amp;iacute; một Web service với
CheckinEvent event, để bất cứ khi n&amp;agrave;o một check-in xảy ra, the Web service khởi
động một Team Build.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin,
h&amp;atilde;y xem &amp;quot;Chapter 8: Setting Up a Continuous Integration Build with Team Build&amp;quot; trong
t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về c&amp;agrave;i đặt một CI build, h&amp;atilde;y xem &amp;quot;How To
- Set Up a Scheduled Build with Visual Studio Team Foundation Server&amp;quot; trong t&amp;agrave;i
liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về l&amp;agrave;m c&amp;aacute;ch n&amp;agrave;o để sử dụng VSTS CI solution, h&amp;atilde;y xem &amp;quot;Continuous Integration
Using Team Foundation Build&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms364045%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms364045(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để download the VSTS
CI solution MSI, h&amp;atilde;y đến &lt;a href="http://download.microsoft.com/download/6/5/e/65e300ce-22fc-4988-97de-0e81d3de2482/ci.msi"&gt;&lt;i&gt;http://download.microsoft.com/download/6/5/e/65e300ce-22fc-4988-97de-0e81d3de2482/ci.msi&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về agile development v&amp;agrave; CI in TFS, h&amp;atilde;y xem &amp;quot;Extend Team Foundation Server To
Enable Continuous Integration&amp;quot; tại &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/03/TeamSystem/default.aspx"&gt;&lt;i&gt;http://msdn.microsoft.com/msdnmag/issues/06/03/TeamSystem/default.aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng một
rolling build nếu c&amp;aacute;c CI build c&amp;oacute; t&amp;aacute;c động xấu đến &lt;span style="background: SpringGreen;"&gt;hiệu&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;suất&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;của&lt;/span&gt; server&lt;span style="text-decoration: line-through; color: red;"&gt;performance&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Build ngay lập tức ngay sau khi mọi check-in l&amp;agrave; chiến &lt;span style="text-decoration: line-through; color: red;"&gt;thuật(strategy&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;)&lt;/span&gt;
&lt;span style="background: SpringGreen;"&gt;thuật&lt;/span&gt;
CI đơn giản nhất v&amp;agrave; nh&amp;igrave;n chung cung cấp cho bạn hầu hết c&amp;aacute;c feedback nhanh
ch&amp;oacute;ng. Tuy nhi&amp;ecirc;n, nếu c&amp;aacute;c check-in xảy ra một c&amp;aacute;ch nhanh ch&amp;oacute;ng đủ để l&amp;agrave;m qu&amp;aacute; &lt;span style="text-decoration: line-through; color: red;"&gt;tải(overwhelm&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;)&lt;/span&gt;
&lt;span style="background: SpringGreen;"&gt;tải&lt;/span&gt;
build server của bạn, &lt;span style="background: SpringGreen;"&gt;th&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;igrave;&lt;/span&gt; bạn n&amp;ecirc;n sử dụng một phương ph&amp;aacute;p rolling build&lt;span style="text-decoration: line-through; color: red;"&gt;approach&lt;/span&gt; &amp;nbsp; nơi
bạn build sau một số &lt;span style="background: SpringGreen;"&gt;lần&lt;/span&gt; c&amp;aacute;c check-in cụ thể hay sau một số giai đoạn thời gian. Để
quyết định nếu bạn cần sử dụng một rolling build, &lt;span style="background: SpringGreen;"&gt;th&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;igrave;&lt;/span&gt; h&amp;atilde;y x&amp;aacute;c định những điều sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Độ d&amp;agrave;i của Team
Build của bạn theo ph&amp;uacute;t&lt;/li&gt;
&lt;li&gt; Tần số trung b&amp;igrave;nh của
c&amp;aacute;c check-in theo ph&amp;uacute;t.&lt;/li&gt;
&lt;li&gt; Time window trong suốt
c&amp;aacute;c check-in thường xuy&amp;ecirc;n xảy ra&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nếu chiều d&amp;agrave;i build d&amp;agrave;i hơn tần số trung b&amp;igrave;nh của c&amp;aacute;c check-in,
c&amp;aacute;c build của bạn sẽ chạy li&amp;ecirc;n tục bởi v&amp;igrave; build đầu ti&amp;ecirc;n sẽ ho&amp;agrave;n th&amp;agrave;nh trước
khi check-in tiếp theo xảy ra, l&amp;agrave; check-in sẽ bắt đầu một build kh&amp;aacute;c. Nếu c&amp;aacute;c check-in
tiếp tục xảy ra trước mỗi build được ho&amp;agrave;n th&amp;agrave;nh, điều n&amp;agrave;y ảnh hưởng đến hiệu suất
của build server v&amp;agrave; sẽ block c&amp;aacute;c build kh&amp;aacute;c (như l&amp;agrave; c&amp;aacute;c scheduled build) đang
được bắt đầu. Xem lại cửa sổ &lt;span style="background: SpringGreen;"&gt;thời&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;gian&lt;/span&gt; time window trong suốt &lt;span style="text-decoration: line-through; color: red;"&gt;khi&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;qu&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;aacute;&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;tr&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;igrave;nh&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;xảy&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;ra&lt;/span&gt; c&amp;aacute;c check-in &lt;span style="text-decoration: line-through; color: red;"&gt;xảy&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;ra&lt;/span&gt; một
c&amp;aacute;ch thường xuy&amp;ecirc;n v&amp;agrave; x&amp;aacute;c định nếu c&amp;aacute;c CI build sẽ ảnh hưởng đến sự ph&amp;acirc;n phối của
c&amp;aacute;c scheduled build hay c&amp;aacute;c Team Builds quan trọng kh&amp;aacute;c. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin,
h&amp;atilde;y xem &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;Chapter&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;&amp;quot;Chương&lt;/span&gt; 8 - &lt;span style="text-decoration: line-through; color: red;"&gt;Setting&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Up&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;a&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;Thiết&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;lập&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;một&lt;/span&gt; Continuous Integration Build &lt;span style="text-decoration: line-through; color: red;"&gt;with&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;với&lt;/span&gt; Team Build&amp;quot;
trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng branching
để giảm thiểu c&amp;aacute;c build breaks&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Để gi&amp;uacute;p tr&amp;aacute;nh c&amp;aacute;c build break, bạn n&amp;ecirc;n sử dụng một
Development branch cho c&amp;aacute;c hoạt động ph&amp;aacute;t triển v&amp;agrave; một Main branch cho
integration build của bạn.&lt;/p&gt;
&lt;p&gt;Sau đ&amp;acirc;y l&amp;agrave; một th&amp;iacute; dụ về cấu tr&amp;uacute;c branch phải ra sao sau khi
bạn tạo một &lt;b&gt;Development &lt;/b&gt;branch:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;b&gt;Development&lt;/b&gt; - Development Branch &lt;/li&gt;
&lt;/ul&gt;
&lt;p style="padding-left:60px;"&gt;o&amp;nbsp;
&lt;b&gt;Source &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;b&gt;Main &lt;/b&gt;- Integration Branch &lt;/li&gt;
&lt;/ul&gt;
&lt;p style="padding-left:60px;"&gt;o &lt;b&gt;&amp;nbsp;Source&lt;/b&gt; &lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;o&amp;nbsp;
&lt;b&gt;Other Assets folders&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;H&amp;atilde;y nhớ đến những lời đề nghị sau khi bạn l&amp;agrave;m việc với một
nh&amp;aacute;nh release branch:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;b&gt;Khi branch.&lt;/b&gt; Nếu bạn đang tạo c&amp;aacute;c daily build v&amp;agrave; đang c&amp;oacute; vấn đề với build
stabilization v&amp;agrave; integration, bạn n&amp;ecirc;n tạo cả một main v&amp;agrave; một development branch
để đảm bảo l&amp;agrave; c&amp;aacute;c daily build của bạn lớn hơn so với dự đo&amp;aacute;n. Bạn cũng c&amp;oacute; thể
muốn xem x&amp;eacute;t kĩ lưỡng nhiều hơn c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch về check-in policy để cải thiện
chất lượng của c&amp;aacute;c check-in.&lt;/li&gt;
&lt;li&gt; &lt;b&gt;Khi kh&amp;ocirc;ng branch.&lt;/b&gt; Nếu bạn chỉ tạo c&amp;aacute;c CI build, hay c&amp;aacute;c daily build
của bạn được dự đo&amp;aacute;n đ&amp;atilde; ổn định, bạn
kh&amp;ocirc;ng cần phải th&amp;ecirc;m chi ph&amp;iacute; của c&amp;aacute;c integration branch.&lt;/li&gt;
&lt;li&gt; &lt;b&gt;Permissions tr&amp;ecirc;n branch:&lt;/b&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;o&amp;nbsp;
The &lt;b&gt;Main &lt;/b&gt;branch permissions n&amp;ecirc;n
được read/write cho c&amp;aacute;c nh&amp;agrave; ph&amp;aacute;t triển chịu tr&amp;aacute;ch nhiệm về merging v&amp;agrave;
integration, nhưng read-only cho tất cả mọi người kh&amp;aacute;c.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;o &amp;nbsp;The &lt;b&gt;Dev&lt;/b&gt;
branch permissions n&amp;ecirc;n l&amp;agrave; read/write cho everyone.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;b&gt;Build frequency trong branch:&lt;/b&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;o&amp;nbsp;
Daily builds tr&amp;ecirc;n &lt;b&gt;Main&lt;/b&gt;
branch. &lt;/p&gt;
&lt;p&gt;o&amp;nbsp;
CI builds tr&amp;ecirc;n &lt;b&gt;Dev&lt;/b&gt; branch.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;b&gt;Testing focus on branch:&lt;/b&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;o&amp;nbsp;
Thực hiện kiểm thử t&amp;iacute;ch hợp, hiệu suất v&amp;agrave; bảo mật(integration,
performance, v&amp;agrave; security testing) tr&amp;ecirc;n &lt;b&gt;Main
&lt;/b&gt;branch.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;o&amp;nbsp;
Thực thi c&amp;aacute;c kiểm thử chức năng v&amp;agrave; phản hồi nhanh(feature and quick
feedback testing) tr&amp;ecirc;n &lt;b&gt;Dev&lt;/b&gt; branch.&lt;/p&gt;
&lt;p&gt;Sử dụng &lt;b&gt;Main&lt;/b&gt;
branch như l&amp;agrave; một staging area cho việc t&amp;iacute;ch hợp c&amp;aacute;c thay đổi(integrating
change) m&amp;agrave; cần được kiểm tra trong development branch. Thực hiện tất cả c&amp;aacute;c hoạt
động ph&amp;aacute;t triển(active development) trong &lt;b&gt;Dev&lt;/b&gt;
branch, v&amp;agrave; t&amp;iacute;ch hợp c&amp;aacute;c non-breaking changes trong &amp;nbsp;&lt;b&gt;Main &lt;/b&gt;branch.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về x&amp;aacute;c định một branching and merging strategy, h&amp;atilde;y xem &amp;quot;Chapter 5 - Defining
Your Branching and Merging Strategy&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; sự giới thiệu
về branching and merging, h&amp;atilde;y xem
&amp;quot;Branching and Merging Primer&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/aa730834%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/aa730834(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về branching, h&amp;atilde;y xem &amp;quot;How to: Branch Files and Folders&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181425%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms181425(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về merging, h&amp;atilde;y xem &amp;quot;How to: Merge Files and Folders&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181428%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms181428(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Đối với c&amp;aacute;c mi&amp;ecirc;u tả
th&amp;ecirc;m về l&amp;agrave;m c&amp;aacute;ch n&amp;agrave;o để branch v&amp;agrave; merge trong Visual Studio 2005, h&amp;atilde;y xem &amp;quot;Branching
and Merging Team Foundation Source Control&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181423%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms181423(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng c&amp;aacute;c
check-in policy để cải thiện chất lượng check-in quality&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Bạn n&amp;ecirc;n sử dụng một sự kết hợp code analysis policy với c&amp;aacute;c testing
policy để cải thiện chất lượng check-in quality. Th&amp;iacute; dụ, sử dụng c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch
testing policy được cung cấp để đảm bảo l&amp;agrave; c&amp;aacute;c test cụ thể được thực thi v&amp;agrave; &amp;nbsp;được th&amp;ocirc;ng qua trước khi cho ph&amp;eacute;p source được
kiểm tra trong TFS source control. Bạn cũng c&amp;oacute; thể cấu h&amp;igrave;nh một ch&amp;iacute;nh s&amp;aacute;ch code
analysis policy để gi&amp;uacute;p đảm bảo l&amp;agrave; code của bạn đ&amp;aacute;p ứng một số ti&amp;ecirc;u chuẩn chất
lượng bằng c&amp;aacute;ch đảm bảo c&amp;aacute;c quy tắc về security, performance, portability,
maintainability, v&amp;agrave; reliability rules được th&amp;ocirc;ng qua.&lt;/p&gt;
&lt;p&gt;Bằng c&amp;aacute;ch thi h&amp;agrave;nh c&amp;aacute;c loại ch&amp;iacute;nh s&amp;aacute;ch check-in policy n&amp;agrave;y,
th&amp;ecirc;m v&amp;agrave;o c&amp;aacute;c policy m&amp;agrave; thi h&amp;agrave;nh c&amp;aacute;c chuẩn code v&amp;agrave; hướng dẫn, bạn c&amp;oacute; thể test phần
code của bạn dựa v&amp;agrave;o c&amp;aacute;c vấn đề chất lượng code cụ thể.&lt;/p&gt;
&lt;p&gt;Để thi h&amp;agrave;nh một code analysis check-in policy cho một team
project, bạn click phải l&amp;ecirc;n team project của bạn trong Team Explorer, trỏ đến
Team Project Settings, v&amp;agrave; sau đ&amp;oacute; click v&amp;agrave;o Source Control. Click v&amp;agrave;o tab Check-in
Policy , click Add, v&amp;agrave; sau đ&amp;oacute; chọn v&amp;agrave; cấu h&amp;igrave;nh ch&amp;iacute;nh s&amp;aacute;ch ph&amp;ugrave; hợp.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về việc tạo v&amp;agrave; sử dụng một custom check-in policy, h&amp;atilde;y xem &amp;quot;How To - Step
Through Creating Custom Check-in Policies for TFS&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu về l&amp;agrave;m
c&amp;aacute;ch n&amp;agrave;o để t&amp;ugrave;y chỉnh một check-in policy, h&amp;atilde;y xem &amp;quot;Walkthrough: Customizing
Check-in Policies and Notes&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181281%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms181281(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để xem sample code m&amp;agrave;
sẽ kh&amp;ocirc;ng cho ph&amp;eacute;p chọn c&amp;aacute;c pattern tr&amp;ecirc;n check-in, h&amp;atilde;y xem &amp;quot;Checkin Policy to
Disallow Certain Patterns&amp;quot; tại &lt;a href="http://blogs.msdn.com/jmanning/archive/2006/02/02/523125.aspx"&gt;&lt;i&gt;http://blogs.msdn.com/jmanning/archive/2006/02/02/523125.aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để xem sample code sẽ
thi h&amp;agrave;nh c&amp;aacute;c comment tr&amp;ecirc;n check-in, h&amp;atilde;y xem &amp;quot;Sample Checkin Policy: Make Sure
the Comment Isn&amp;#39;t Empty&amp;quot; tại &lt;a href="http://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx"&gt;&lt;i&gt;http://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu l&amp;agrave;m thế
n&amp;agrave;o để đăng k&amp;iacute; mới một check-in policy, h&amp;atilde;y xem &amp;quot;I&amp;#39;ve Made a New Check-In
Policy! How Do I Add It?&amp;quot; tại &lt;a href="http://blogs.msdn.com/jmanning/archive/2006/02/07/526778.aspx"&gt;&lt;i&gt;http://blogs.msdn.com/jmanning/archive/2006/02/07/526778.aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng build
notification alerts để t&amp;igrave;m hiểu khi n&amp;agrave;o c&amp;aacute;c build được ho&amp;agrave;n th&amp;agrave;nh&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&amp;nbsp; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Để theo d&amp;otilde;i build process của bạn, bạn c&amp;oacute; thể tạo c&amp;aacute;c alert
m&amp;agrave; gửi e-mail messages đến cho bạn hay c&amp;aacute;c người kh&amp;aacute;c khi một build được ho&amp;agrave;n
th&amp;agrave;nh.&lt;/p&gt;
&lt;p&gt;Điều n&amp;agrave;y quan trọng v&amp;igrave; n&amp;oacute; cung cấp xoay v&amp;ograve;ng nhanh ch&amp;oacute;ng giữa
c&amp;aacute;c nh&amp;oacute;m. Th&amp;iacute; dụ, nếu test team được th&amp;ocirc;ng b&amp;aacute;o qua e-mail của một build đ&amp;atilde; ho&amp;agrave;n
th&amp;agrave;nh, ch&amp;uacute;ng c&amp;oacute; thể khởi động test pass của ch&amp;uacute;ng &amp;nbsp;m&amp;agrave; kh&amp;ocirc;ng phải đợi c&amp;aacute;c hướng dẫn sử dụng.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về build notifications, h&amp;atilde;y xem &amp;quot;How to: Receive Build Notification E-Mail&amp;quot; tại
&lt;a href="http://msdn2.microsoft.com/en-us/library/ms181725%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms181725(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về build notifications, h&amp;atilde;y xem &amp;quot;How to: Add or Edit Alerts&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181335%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms181335(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Branching&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c Team Build Types mới khi tạo một
partial branch.&amp;nbsp; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Chỉnh sửa c&amp;aacute;c path để giải quyết trong
TFSBuild.proj files, khi tạo một complete branch.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng c&amp;aacute;c Team Build Types mới khi tạo một partial branch&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Khi bạn tạo một branch m&amp;agrave; chứa một tập con c&amp;aacute;c solution trong
team project của bạn, bạn cần phải tạo mới c&amp;aacute;c build type để build th&amp;agrave;nh c&amp;ocirc;ng.&lt;/p&gt;
&lt;p&gt;C&amp;oacute; hai loại partial branches: &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; &lt;b&gt;Một partial branch kh&amp;ocirc;ng bao gồm &amp;nbsp;branching của bất cứ loại build type n&amp;agrave;o.&lt;/b&gt; Điều
n&amp;agrave;y sẽ xảy ra trong một team project, v&amp;agrave; sẽ l&amp;agrave; branch solution v&amp;agrave; c&amp;aacute;c source
file đơn giản nhưng sẽ kh&amp;ocirc;ng branch bất k&amp;igrave; TeamBuildTypes folder n&amp;agrave;o trong c&amp;aacute;c
folder mới.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; &lt;b&gt;Một partial branch bao gồm branching của
c&amp;aacute;c loại build type.&lt;/b&gt; This Điều n&amp;agrave;y sẽ xảy ra trong một team project, v&amp;agrave; sẽ
branch một số&amp;nbsp; subfolders của
TeamBuildTypes (tức l&amp;agrave;, c&amp;aacute;c loại build type) ngo&amp;agrave;i ra để c&amp;aacute;c folders chứa c&amp;aacute;c
solution v&amp;agrave; source file li&amp;ecirc;n quan nhau.&lt;/p&gt;
&lt;p&gt;Nếu bạn tạo một partial branch m&amp;agrave; kh&amp;ocirc;ng bao gồm Team Build
Types tất cả của c&amp;aacute;c Team Build đ&amp;atilde; c&amp;oacute; sẽ tiếp tục l&amp;agrave;m việc, nhưng bạn sẽ c&amp;agrave;n tạo
mới Team Build Type nếu bạn muốn build branch. Tạo mới c&amp;aacute;c build types bằng
c&amp;aacute;ch sử dụng Team Build Wizard để build code trong c&amp;aacute;c branch mới. &amp;nbsp;Những loại build type mới n&amp;agrave;y sẽ trỏ đến branch
location cũng c&amp;oacute; thể trỏ đến parent location cho bất k&amp;igrave; solution n&amp;agrave;o m&amp;agrave; phải được
bao gồm trong build nhưng kh&amp;ocirc;ng được branch.&lt;/p&gt;
&lt;p&gt;Nếu bạn tạo một partial branch gồm c&amp;oacute; c&amp;aacute;c Team Build Types, c&amp;aacute;c
build type m&amp;agrave; được copy qua branch sẽ chỉ đến c&amp;aacute;c original, parent branch
locations v&amp;agrave; v&amp;igrave; thế m&amp;agrave; sẽ kh&amp;ocirc;ng cho ph&amp;eacute;p bạn build branch mới. Chỉnh sửa c&amp;aacute;c branched
build types để ch&amp;uacute;ng chỉ đến c&amp;aacute;c branched code location mới.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về l&amp;agrave;m thế n&amp;agrave;o để update c&amp;aacute;c build type của bạn, h&amp;atilde;y xem &amp;quot;How to: Update Build
Types on Branched Team Projects&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms252500%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms252500(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Chỉnh sửa c&amp;aacute;c path để giải quyết trong TFSBuild.proj files, khi tạo một
complete branch&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Khi bạn tạo mới một branch, gồm c&amp;oacute; c&amp;aacute;c Team Build Types, c&amp;aacute;c
đường dẫn path trong c&amp;aacute;c build types vẫn c&amp;ograve;n trỏ đến c&amp;aacute;c location trước. Để cho
c&amp;aacute;c build l&amp;agrave;m việc tr&amp;ecirc;n branch mới, bạn phải update c&amp;aacute;c path trong c&amp;aacute;c build
type project file để ch&amp;uacute;ng reference đến c&amp;aacute;c path location mới tạo sau khi branch
hoạt động.&lt;/p&gt;
&lt;p&gt;Khi bạn tạo một full branch, bạn cũng branch c&amp;aacute;c build type. C&amp;aacute;c
build types chứa c&amp;aacute;c reference đến c&amp;aacute;c folder từ c&amp;aacute;c original source control
tree. Để c&amp;oacute; những build type n&amp;agrave;y refer đến c&amp;aacute;c branch folders, bạn phải edit c&amp;aacute;c
folder references ở trong những file n&amp;agrave;y.&lt;/p&gt;
&lt;p&gt;Để thực thi update, check out c&amp;aacute;c build type từ c&amp;aacute;c branch m&amp;agrave;
bạn muốn chỉnh sửa modify, &amp;aacute;p dụng c&amp;aacute;c update, v&amp;agrave; sau đ&amp;oacute; commit c&amp;aacute;c thay đổi đến
c&amp;aacute;c branch.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về l&amp;agrave;m thế n&amp;agrave;o để update c&amp;aacute;c build type, h&amp;atilde;y xem &amp;quot;How to: Update Build Types on
Branched Team Projects&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms252500%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms252500(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Check-in
Policies &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c check-in policies để n&amp;acirc;ng cao
check-in quality. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng check-in policies để li&amp;ecirc;n kết c&amp;aacute;c
work items với việc build.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng c&amp;aacute;c check-in policies để n&amp;acirc;ng cao check-in quality&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng sự li&amp;ecirc;n kết giữa c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch ph&amp;acirc;n t&amp;iacute;ch v&amp;agrave; kiểm thử
code(code analysis and testing policies) để n&amp;acirc;ng cao chất lượng của c&amp;aacute;c check-in(check-in
quality). Th&amp;iacute; dụ, sử dụng c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch kiểm thử được cung cấp(supplied
testing policy) để đảm bảo l&amp;agrave; c&amp;aacute;c specific test được thực hiện v&amp;agrave; th&amp;ocirc;ng qua trước
khi cho ph&amp;eacute;p c&amp;aacute;c source được kiểm tra ở trong TFS source control. Bạn cũng c&amp;oacute;
thể cấu h&amp;igrave;nh một &lt;i&gt;code analysis policy&lt;/i&gt;
để gi&amp;uacute;p đảm bảo l&amp;agrave; code của bạn đ&amp;aacute;p ứng được ti&amp;ecirc;u chuẩn chất lượng nhất định bằng
việc đảm bảo về kh&amp;iacute;a cạnh security(bảo mật), performance(hiệu suất),
portability(t&amp;iacute;nh linh động), maintainability(bảo tr&amp;igrave;), v&amp;agrave; c&amp;aacute;c nguy&amp;ecirc;n tắc tin cậy(reliability
rules) được th&amp;ocirc;ng qua.&lt;/p&gt;
&lt;p&gt;Bằng c&amp;aacute;c sử dụng loại check-in policy n&amp;agrave;y th&amp;ecirc;m v&amp;agrave;o c&amp;aacute;c policy
m&amp;agrave; được&amp;nbsp; thi h&amp;agrave;nh c&amp;aacute;c ti&amp;ecirc;u chuẩn v&amp;agrave; hướng
dẫn code, bạn c&amp;oacute; thể test phần code của bạn dựa tr&amp;ecirc;n c&amp;aacute;c vấn đề chất lượng code
cụ thể(specific code quality issues).&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về việc tạo v&amp;agrave; sử dụng một custom check-in policy, h&amp;atilde;y xem &amp;quot;How To: Step
Through Creating Custom Check-in Policies for TFS&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu l&amp;agrave;m c&amp;aacute;ch
n&amp;agrave;o để t&amp;ugrave;y chỉnh một check-in policy, h&amp;atilde;y xem &amp;quot;Walkthrough: Customizing
Check-in Policies and Notes&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181281%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms181281(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để xem c&amp;aacute;c phần code
đơn giản m&amp;agrave; sẽ disallow c&amp;aacute;c selected patterns trong check-in, h&amp;atilde;y xem &amp;quot;Check-in
Policy to Disallow Certain Patterns&amp;quot; tại &lt;a href="http://blogs.msdn.com/jmanning/archive/2006/02/02/523125.aspx"&gt;&lt;i&gt;http://blogs.msdn.com/jmanning/archive/2006/02/02/523125.aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&amp;bull;&amp;nbsp; Để xem c&amp;aacute;c phần code đơn giản m&amp;agrave; sẽ enforce c&amp;aacute;c
comment tr&amp;ecirc;n check-in, h&amp;atilde;y xem &amp;quot;Sample Check-in Policy: Make Sure the Comment
Isn&amp;#39;t Empty&amp;quot; tại &lt;a href="http://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx"&gt;http://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx&lt;/a&gt; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu l&amp;agrave;m thế
n&amp;agrave;o để đăng k&amp;iacute; một check-in policy mới, h&amp;atilde;y xem &amp;quot;I&amp;#39;ve Made a New Check-In Policy!
How Do I Add It?&amp;quot; tại &lt;a href="http://blogs.msdn.com/jmanning/archive/2006/02/07/526778.aspx"&gt;http://blogs.msdn.com/jmanning/archive/2006/02/07/526778.aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng check-in policies để li&amp;ecirc;n kết c&amp;aacute;c work items với việc build&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Thiết lập c&amp;aacute;c Work Items check-in policy để buộc c&amp;aacute;c lập
tr&amp;igrave;nh vi&amp;ecirc;n phải li&amp;ecirc;n kết c&amp;aacute;c check-in của họ với một work item.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Nếu một build bị break, điều quan trọng l&amp;agrave; bạn phải biết được
tập c&amp;aacute;c thay đổi(change set) n&amp;agrave;o li&amp;ecirc;n quan đến build n&amp;agrave;y v&amp;agrave; c&amp;aacute;c work item n&amp;agrave;o
li&amp;ecirc;n quan đến tập c&amp;aacute;c thay đổi(change set) đ&amp;oacute;. Bằng sự hiểu biết n&amp;agrave;y, bạn c&amp;oacute; thể
x&amp;aacute;c định được lập tr&amp;igrave;nh vi&amp;ecirc;n n&amp;agrave;o chịu tr&amp;aacute;ch nhiệm kiểm tra trong phần code bị
thay đổi v&amp;agrave; area của dự &amp;aacute;n m&amp;agrave; anh ta hay c&amp;ocirc; ta đang l&amp;agrave;m việc. &lt;/p&gt;
&lt;p&gt;Đối với một build được li&amp;ecirc;n kết với một tập c&amp;aacute;c work item đ&amp;atilde;
ho&amp;agrave;n th&amp;agrave;nh, mỗi check-in phải được li&amp;ecirc;n kết với một work item. Những check-in
n&amp;agrave;y được ti&amp;ecirc;u biểu như c&amp;aacute;c change set li&amp;ecirc;n kết với một build, v&amp;agrave; c&amp;oacute; thể theo
d&amp;otilde;i từ build đến change set đến work item.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về việc tạo v&amp;agrave; sử dụng một custom check-in policy, see &amp;quot;How To: Step Through
Creating Custom Check-in Policies for TFS&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu l&amp;agrave;m thế
n&amp;agrave;o để t&amp;ugrave;y chỉnh một check-in policy, see &amp;quot;Walkthrough: Customizing check-in
Policies and Notes&amp;quot; tại &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms181281%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms181281(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Continuous
Integration Builds &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng một CI build để lấy c&amp;aacute;c feedback nhanh
ch&amp;oacute;ng tr&amp;ecirc;n c&amp;aacute;c check-ins. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng một rolling build nếu c&amp;aacute;c CI build c&amp;oacute;
ảnh hưởng kh&amp;ocirc;ng tốt đến hiệu suất của build server performance. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Đảm bảo l&amp;agrave; tần số(frequency) của c&amp;aacute;c rolling
build của bạn thường nhỏ hơn số build times.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng một CI build để lấy c&amp;aacute;c feedback nhanh ch&amp;oacute;ng tr&amp;ecirc;n c&amp;aacute;c check-ins&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Bạn n&amp;ecirc;n sử dụng c&amp;aacute;c &lt;b&gt;Continuous
Integration builds&lt;/b&gt; để cung cấp cho development team của bạn c&amp;aacute;c rapid
feedback tr&amp;ecirc;n bất k&amp;igrave; breaking change n&amp;agrave;o v&amp;agrave; chất lượng của build sau mỗi check-in.
Điều n&amp;agrave;y gi&amp;uacute;p c&amp;aacute;c development team sữa c&amp;aacute;c vấn đề thiết kế(build issues) một
c&amp;aacute;ch kịp thời v&amp;agrave; c&amp;oacute; thể được sử dụng như một c&amp;ocirc;ng cụ tool để cải thiện chất lượng
code của bạn. &lt;/p&gt;
&lt;p&gt;Mặc d&amp;ugrave; Visual Studio 2005 Team Foundation Server kh&amp;ocirc;ng cung cấp
một CI solution out of the box, n&amp;oacute; đ&amp;atilde; cung cấp framework cho bạn để thực thi CI
build solution của bạn.&lt;/p&gt;
&lt;p&gt;Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;agrave;i đặt một CI build với TFS, h&amp;atilde;y xem
&amp;quot;How To: Set Up a Continuous Integration Build in Visual Studio Team Foundation
Server.&amp;quot; Đề t&amp;agrave;i &lt;b&gt;How To article&lt;/b&gt; sử dụng
solution được cung cấp bởi VSTS development team. The solution install một Web
service m&amp;agrave; chạy b&amp;ecirc;n dưới một account m&amp;agrave; account đ&amp;oacute; đ&amp;atilde; truy cập đến TFS server.
Team Foundation Server c&amp;oacute; thể send một e-mail message hay gọi một Web service khi
c&amp;aacute;c event cụ thể xảy ra. Cơ chế event n&amp;agrave;y được sử dụng bởi CI solution để đăng
k&amp;iacute; một Web service với CheckinEvent event, để bất cứ khi n&amp;agrave;o một check-in xảy
ra, Web service khởi động một Team Build.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m c&amp;aacute;c th&amp;ocirc;ng
tin về c&amp;aacute;c CI build, h&amp;atilde;y xem &amp;quot;Chapter 8 - Setting Up a Continuous Integration
Build with Team Build&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m c&amp;aacute;c th&amp;ocirc;ng
tin về c&amp;agrave;i đặt một CI build, h&amp;atilde;y xem &amp;quot;How To - Set Up a Continuous Integration
Build with Visual Studio Team Foundation Server&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m c&amp;aacute;c th&amp;ocirc;ng
tin về l&amp;agrave;m thế n&amp;agrave;o để sử dụng VSTS CI solution, h&amp;atilde;y xem &amp;quot;Continuous Integration
Using Team Foundation Build&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms364045%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms364045(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để download the
Visual Studio Team System CI solution MSI, h&amp;atilde;y đến &lt;a href="http://download.microsoft.com/download/6/5/e/65e300ce-22fc-4988-97de-0e81d3de2482/ci.msi"&gt;&lt;i&gt;http://download.microsoft.com/download/6/5/e/65e300ce-22fc-4988-97de-0e81d3de2482/ci.msi&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m c&amp;aacute;c th&amp;ocirc;ng
tin về agile development v&amp;agrave; CI trong TFS, h&amp;atilde;y xem &amp;quot;Extend Team Foundation
Server to Enable Continuous Integration&amp;quot; tại &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/03/TeamSystem/default.aspx"&gt;&lt;i&gt;http://msdn.microsoft.com/msdnmag/issues/06/03/TeamSystem/default.aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng một rolling build nếu c&amp;aacute;c CI build c&amp;oacute; ảnh hưởng kh&amp;ocirc;ng tốt đến hiệu
suất của build server performance&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Building ngay sau khi tất cả c&amp;aacute;c check-in xảy ra l&amp;agrave; chiến lược
CI đơn giản nhất v&amp;agrave; thường sẽ cho bạn hầu hết c&amp;aacute;c feedback nhanh. Tuy nhi&amp;ecirc;n, nếu
c&amp;aacute;c check-in xảy ra một c&amp;aacute;ch nhanh ch&amp;oacute;ng đủ để l&amp;agrave;m tr&amp;agrave;n build server của bạn, bạn
n&amp;ecirc;n sử dụng một phương ph&amp;aacute;p rolling build ở nơi bạn build sau khi một số c&amp;aacute;c
check-in cụ thể hay sau một giai đoạn thời gian cụ thể. Để quyết định nếu bạn cần
sử dụng một rolling build, h&amp;atilde;y x&amp;aacute;c định c&amp;aacute;c điều sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Chiều d&amp;agrave;i của Team
Build được t&amp;iacute;nh bằng ph&amp;uacute;t.&lt;/li&gt;
&lt;li&gt; Tần số trung b&amp;igrave;nh của
c&amp;aacute;c check-in được t&amp;iacute;nh bằng ph&amp;uacute;t.&lt;/li&gt;
&lt;li&gt; Time window during
which frequent check-ins occur &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Nếu độ d&amp;agrave;i của c&amp;aacute;c build l&amp;acirc;u hơn tần số trung b&amp;igrave;nh của c&amp;aacute;c check-in,
c&amp;aacute;c build của bạn sẽ chạy li&amp;ecirc;n tục bởi v&amp;igrave; build đầu ti&amp;ecirc;n sẽ kh&amp;ocirc;ng ho&amp;agrave;n th&amp;agrave;nh
trước khi check-in tiếp theo xảy ra, sẽ khởi động build kh&amp;aacute;c. Nếu c&amp;aacute;c check-in
tiếp tục xảy ra trước mỗi build ho&amp;agrave;n th&amp;agrave;nh, n&amp;oacute; sẽ ảnh hưởng đến hiệu suất của build
server của bạn v&amp;agrave; sẽ tr&amp;igrave; ho&amp;atilde;n c&amp;aacute;c build kh&amp;aacute;c, như l&amp;agrave; c&amp;aacute;c scheduled builds. Xem
lại time window trong suốt thời gian c&amp;aacute;c check-in xảy ra v&amp;agrave; x&amp;aacute;c định nếu c&amp;aacute;c CI
build ảnh hưởng đến sự ph&amp;acirc;n phối của c&amp;aacute;c scheduled build hay c&amp;aacute;c Team Build
quan trọng kh&amp;aacute;c.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về c&amp;agrave;i đặt c&amp;aacute;c CI build, h&amp;atilde;y xem &amp;quot;Chapter 8 - Setting Up an Continuous
Integration Build with Team Build&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;H&amp;atilde;y chắc l&amp;agrave; tần số của c&amp;aacute;c Rolling Build của bạn nhỏ hơn số lần Build
Times &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;X&amp;aacute;c định khoảng thời gian rolling build để đảm bảo cho một
quy tr&amp;igrave;nh build process hiệu quả th&amp;igrave; quan trọng. Nếu tần số của c&amp;aacute;c rolling
build nhỏ hơn thời gian để ho&amp;agrave;n th&amp;agrave;nh một build, n&amp;oacute; đảm bảo l&amp;agrave; build machine của
bạn sẽ sẵn s&amp;agrave;ng cho c&amp;aacute;c build type kh&amp;aacute;c ở giữa c&amp;aacute;c khoảng thời gian rolling
build của bạn. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Để x&amp;aacute;c định khoảng thời gian rolling build l&amp;yacute; tưởng, h&amp;atilde;y chia
tần số trung b&amp;igrave;nh của c&amp;aacute;c check-in theo độ d&amp;agrave;i của build của bạn. V&amp;iacute; dụ, nếu bạn
c&amp;oacute; một build m&amp;agrave; mất 10 ph&amp;uacute;t v&amp;agrave; bạn trung b&amp;igrave;nh một check-in l&amp;agrave; 5 ph&amp;uacute;t, bạn c&amp;oacute; thể
g&amp;aacute;n một khoảng thời gian check-in của hai check-in v&amp;agrave; một khoảng thời gian chờ
l&amp;agrave; 10 ph&amp;uacute;t. Điều n&amp;agrave;y đảm bảo l&amp;agrave; c&amp;aacute;c build sẽ được ho&amp;agrave;n th&amp;agrave;nh trước khi build kế
tiếp được k&amp;iacute;ch hoạt. Nếu bạn nhận thấy l&amp;agrave; c&amp;oacute; việc load qu&amp;aacute; tải tr&amp;ecirc;n build
server của bạn, bạn c&amp;oacute; thể tăng c&amp;aacute;c gi&amp;aacute; trị n&amp;agrave;y.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về c&amp;aacute;c CI build, h&amp;atilde;y xem &amp;quot;Chapter 8 - Setting Up a Continuous Integration Build
with Team Build&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Hướng dẫn: Team Build</title><link>http://msdnvietnam.net/wikis/tfs/h-ng-d-n-team-build/revision/1.aspx</link><pubDate>Mon, 14 Dec 2009 20:31:05 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:127</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Revision 1 posted to TFS - Team Foundation System by Nguyễn Thị Như Quỳnh on 12/15/2009 4:31:05 AM&lt;br /&gt;
&lt;p&gt;Đ&amp;acirc;y l&amp;agrave; phần hướng dẫn sẽ gồm c&amp;aacute;c mục sau:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;C&amp;aacute;c mục&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Strategy &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Sử dụng một
scheduled build để tạo ra c&amp;aacute;c regular builds. &lt;/li&gt;
&lt;li&gt; Sử dụng một
Continuous Integration (CI) build để nhận c&amp;aacute;c feedback một c&amp;aacute;ch nhanh ch&amp;oacute;ng
tr&amp;ecirc;n c&amp;aacute;c check-ins. &lt;/li&gt;
&lt;li&gt; Sử dụng một rolling
build nếu c&amp;aacute;c CI builds ảnh hưởng bất lợi đến build server performance. &lt;/li&gt;
&lt;li&gt; Sử dụng branching để
giảm c&amp;aacute;c build breaks. &lt;/li&gt;
&lt;li&gt; Sử dụng check-in
policies để cải thiện chất lượng check-in. &lt;/li&gt;
&lt;li&gt; Sử dụng build
notification alerts để t&amp;igrave;m hiểu khi n&amp;agrave;o c&amp;aacute;c build ho&amp;agrave;n th&amp;agrave;nh.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Branching &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Sử dụng Team Build
Types mới khi tạo một phần branch. &lt;/li&gt;
&lt;li&gt; Chỉnh sửa c&amp;aacute;c path để
giải quyết trong TFSBuild.proj files, khi tạo một branch ho&amp;agrave;n chỉnh.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Continuous
Integration Builds &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Sử dụng một CI build
để nhận nhanh ch&amp;oacute;ng c&amp;aacute;c feedback tr&amp;ecirc;n c&amp;aacute;c check-in. &lt;/li&gt;
&lt;li&gt; Sử dụng một rolling
build nếu c&amp;aacute;c CI build c&amp;oacute; ảnh hưởng xấu đến build server performance. &lt;/li&gt;
&lt;li&gt; H&amp;atilde;y đảm bảo l&amp;agrave; tần số
của c&amp;aacute;c rolling build của bạn thường &amp;iacute;t hơn c&amp;aacute;c build times.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Customization
&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Sử dụng một custom
post-build step để build một installer project. &lt;/li&gt;
&lt;li&gt; Sử dụng MS Build
Toolkit Extras để build c&amp;aacute;c Microsoft .NET 1.1 applications. &lt;/li&gt;
&lt;li&gt; Sử dụng
TFSBuild.proj để chỉnh sửa c&amp;aacute;c build của bạn. &lt;/li&gt;
&lt;li&gt; Sử dụng một custom
pre-build step để build một project c&amp;oacute; phụ thuộc đến c&amp;aacute;c team project kh&amp;aacute;c.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Deployment &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Tr&amp;ecirc;n c&amp;aacute;c team lớn,
install c&amp;aacute;c build services tr&amp;ecirc;n một separate server.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Performance
&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Sử dụng c&amp;aacute;c incremental
builds để cải thiện hiệu suất.&lt;/li&gt;
&lt;li&gt; Tr&amp;aacute;nh việc đồng bộ
h&amp;oacute;a c&amp;aacute;c folder dự ph&amp;ograve;ng trong c&amp;aacute;c build của bạn. &lt;/li&gt;
&lt;li&gt; Sử dụng c&amp;aacute;c
workspaces để tr&amp;aacute;nh check out c&amp;aacute;c file v&amp;agrave; project kh&amp;ocirc;ng mong muốn khi đang thực
hiện một Team Build. &lt;/li&gt;
&lt;li&gt; Xem x&amp;eacute;t sử dụng c&amp;aacute;c
multiple build machines để n&amp;acirc;ng cao hiệu suất.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Projects &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Tr&amp;aacute;nh c&amp;aacute;c phụ thuộc
qua lại giữa c&amp;aacute;c team project với nhau. &lt;/li&gt;
&lt;li&gt; Sử dụng c&amp;aacute;c project
references thay v&amp;igrave; c&amp;aacute;c file references. &lt;/li&gt;
&lt;li&gt; Sử dụng Web
Deployment Project cho c&amp;aacute;c Web applications. &lt;/li&gt;
&lt;li&gt; Sử dụng một
single-solution strategy nếu bạn đang l&amp;agrave;m việc tr&amp;ecirc;n một team project nhỏ. &lt;/li&gt;
&lt;li&gt; Sử dụng một
partitioned-solution strategy nếu bạn đang l&amp;agrave;m việc tr&amp;ecirc;n một team project lớn với
nhiều project con độc lập nhau.&lt;/li&gt;
&lt;li&gt; Sử dụng một
multiple-solution strategy nếu bạn đang l&amp;agrave;m việc tr&amp;ecirc;n một team project rất lớn
m&amp;agrave; y&amp;ecirc;u cầu đến h&amp;agrave;ng chục project con độc lập nhau.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Scheduled
Builds &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Sử dụng một
scheduled build để tạo c&amp;aacute;c regular builds.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Test-Driven
Development &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Run code analysis tr&amp;ecirc;n
từng build. &lt;/li&gt;
&lt;li&gt; Run automated tests tr&amp;ecirc;n
từng build. &lt;/li&gt;
&lt;li&gt; Xem x&amp;eacute;t g&amp;aacute;n c&amp;aacute;c
build th&amp;agrave;nh fail khi c&amp;aacute;c automated test bị fail. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Work Items &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Sử dụng c&amp;aacute;c work
items để theo d&amp;otilde;i c&amp;aacute;c build breaks.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Strategy &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng một scheduled build để tạo c&amp;aacute;c
regular builds. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng CI build để lấy nhanh ch&amp;oacute;ng c&amp;aacute;c
feedback tr&amp;ecirc;n c&amp;aacute;c check-in. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng một rolling build nếu c&amp;aacute;c CI build c&amp;oacute;
t&amp;aacute;c động xấu đến server performance. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng branching để giảm thiểu c&amp;aacute;c build
breaks. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c check-in policy để cải thiện chất
lượng check-in quality. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng build notification alerts để t&amp;igrave;m hiểu
khi n&amp;agrave;o c&amp;aacute;c build được ho&amp;agrave;n th&amp;agrave;nh.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng một scheduled build để tạo c&amp;aacute;c regular builds &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng một scheduled build để tạo ra c&amp;aacute;c builds một c&amp;aacute;ch thường
xuy&amp;ecirc;n, dự b&amp;aacute;o c&amp;aacute;c khoảng c&amp;aacute;ch. &lt;/p&gt;
&lt;p&gt;Nh&amp;igrave;n chung, c&amp;aacute;c build cung cấp cho test team của bạn v&amp;agrave; những
nh&amp;oacute;m kh&amp;aacute;c để tin cậy v&amp;agrave; n&amp;ecirc;n thực hiện sẵn tại một mức thời gian cố định, để c&amp;aacute;c
feedback tr&amp;ecirc;n c&amp;aacute;c build c&amp;oacute; thể được thu thập một c&amp;aacute;ch kịp thời. &lt;/p&gt;
&lt;p&gt;The Team Build feature in Microsoft&amp;reg; Visual Studio&amp;reg; 2005 Team
Foundation Server (TFS) kh&amp;ocirc;ng support c&amp;aacute;c scheduled build từ giao diện người
d&amp;ugrave;ng(user interface). Thay v&amp;agrave;o đ&amp;oacute;, bạn c&amp;oacute; thể sử dụng Microsoft Windows&amp;reg; Task
Scheduler để chạy TFSBuild command-line utility để bắt đầu c&amp;aacute;c build tại một thời
điểm x&amp;aacute;c định trước.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để tạo một&lt;/b&gt;&lt;b&gt; scheduled
build &lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Tạo một TFSBuild
command line như sau:&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;TfsBuild
start &amp;lt;&amp;lt;TeamFoundationServer&amp;gt;&amp;gt; &amp;lt;&amp;lt;TeamProject&amp;gt;&amp;gt;
&amp;lt;&amp;lt;BuildTypeName&amp;gt;&amp;gt; &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;2.&amp;nbsp; Đặt c&amp;aacute;c command line trong một batch file. &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Tạo một Windows
Scheduled Task để chạy c&amp;aacute;c batch file tại khoảng thời gian mong muốn của bạn.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về thiết lập c&amp;aacute;c scheduled build với Team Build, h&amp;atilde;y xem&amp;quot;Chương 9: C&amp;agrave;i đặt một
Scheduled Build với Team Build&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về thiết lập c&amp;aacute;c scheduled build với
TFS, h&amp;atilde;y xem &amp;quot;L&amp;agrave;m thế n&amp;agrave;o - C&amp;agrave;i đặt một Scheduled Build trong Visual Studio
Team Foundation Server&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng CI build
để lấy nhanh ch&amp;oacute;ng c&amp;aacute;c feedback tr&amp;ecirc;n c&amp;aacute;c check-in&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Bạn n&amp;ecirc;n sử dụng c&amp;aacute;c CI build để cung cấp cho nh&amp;oacute;m ph&amp;aacute;t triển
của bạn c&amp;aacute;c feedback nhanh về bất k&amp;igrave; sự thay đổi breaking change n&amp;agrave;o v&amp;agrave; về chất
lượng của c&amp;aacute;c build sau mỗi check-in. Điều n&amp;agrave;y gi&amp;uacute;p cho c&amp;aacute;c nh&amp;oacute;m ph&amp;aacute;t triển sữa
chữa c&amp;aacute;c vấn đề build một c&amp;aacute;ch nhanh ch&amp;oacute;ng v&amp;agrave; c&amp;oacute; thể được sử dụng như l&amp;agrave; một
tool để cải thiện chất lượng code của bạn. &lt;/p&gt;
&lt;p&gt;Mặc d&amp;ugrave; Team Foundation Server 2005 kh&amp;ocirc;ng cung cấp một CI
solution out of box, n&amp;oacute; đ&amp;atilde; cung cấp framework cho bạn để thực thi CI build
solution của ri&amp;ecirc;ng bạn.&lt;/p&gt;
&lt;p&gt;Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về thiết lập một CI build với TFS, h&amp;atilde;y
xem &amp;quot;How To - Set Up a Continuous Integration Build in Visual Studio Team
Foundation Server.&amp;quot; Đề t&amp;agrave;i How To article n&amp;agrave;y sử dụng the solution được cung cấp
bởi the Microsoft Visual Studio Team System (VSTS) development team. The
solution sẽ c&amp;agrave;i đặt một Web service chạy b&amp;ecirc;n dưới một account that đ&amp;atilde; truy cập
đến TFS server. Team Foundation Server c&amp;oacute; thể send một e-mail message hay call một
Web service khi c&amp;aacute;c &amp;nbsp;event cụ thể xảy ra.
Cơ chế event n&amp;agrave;y được sử dụng bởi CI solution để đăng k&amp;iacute; một Web service với
CheckinEvent event, để bất cứ khi n&amp;agrave;o một check-in xảy ra, the Web service khởi
động một Team Build.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin,
h&amp;atilde;y xem &amp;quot;Chapter 8: Setting Up a Continuous Integration Build with Team Build&amp;quot; trong
t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về c&amp;agrave;i đặt một CI build, h&amp;atilde;y xem &amp;quot;How To
- Set Up a Scheduled Build with Visual Studio Team Foundation Server&amp;quot; trong t&amp;agrave;i
liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về l&amp;agrave;m c&amp;aacute;ch n&amp;agrave;o để sử dụng VSTS CI solution, h&amp;atilde;y xem &amp;quot;Continuous Integration
Using Team Foundation Build&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms364045%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms364045(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để download the VSTS
CI solution MSI, h&amp;atilde;y đến &lt;a href="http://download.microsoft.com/download/6/5/e/65e300ce-22fc-4988-97de-0e81d3de2482/ci.msi"&gt;&lt;i&gt;http://download.microsoft.com/download/6/5/e/65e300ce-22fc-4988-97de-0e81d3de2482/ci.msi&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về agile development v&amp;agrave; CI in TFS, h&amp;atilde;y xem &amp;quot;Extend Team Foundation Server To
Enable Continuous Integration&amp;quot; tại &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/03/TeamSystem/default.aspx"&gt;&lt;i&gt;http://msdn.microsoft.com/msdnmag/issues/06/03/TeamSystem/default.aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng một
rolling build nếu c&amp;aacute;c CI build c&amp;oacute; t&amp;aacute;c động xấu đến server performance&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Build ngay lập tức ngay sau khi mọi check-in l&amp;agrave; chiến thuật(strategy)
CI đơn giản nhất v&amp;agrave; nh&amp;igrave;n chung cung cấp cho bạn hầu hết c&amp;aacute;c feedback nhanh
ch&amp;oacute;ng. Tuy nhi&amp;ecirc;n, nếu c&amp;aacute;c check-in xảy ra một c&amp;aacute;ch nhanh ch&amp;oacute;ng đủ để l&amp;agrave;m qu&amp;aacute; tải(overwhelm)
build server của bạn, bạn n&amp;ecirc;n sử dụng một phương ph&amp;aacute;p rolling build approach nơi
bạn build sau một số c&amp;aacute;c check-in cụ thể hay sau một số giai đoạn thời gian. Để
quyết định nếu bạn cần sử dụng một rolling build, h&amp;atilde;y x&amp;aacute;c định những điều sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Độ d&amp;agrave;i của Team
Build của bạn theo ph&amp;uacute;t&lt;/li&gt;
&lt;li&gt; Tần số trung b&amp;igrave;nh của
c&amp;aacute;c check-in theo ph&amp;uacute;t.&lt;/li&gt;
&lt;li&gt; Time window trong suốt
c&amp;aacute;c check-in thường xuy&amp;ecirc;n xảy ra&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nếu chiều d&amp;agrave;i build d&amp;agrave;i hơn tần số trung b&amp;igrave;nh của c&amp;aacute;c check-in,
c&amp;aacute;c build của bạn sẽ chạy li&amp;ecirc;n tục bởi v&amp;igrave; build đầu ti&amp;ecirc;n sẽ ho&amp;agrave;n th&amp;agrave;nh trước
khi check-in tiếp theo xảy ra, l&amp;agrave; check-in sẽ bắt đầu một build kh&amp;aacute;c. Nếu c&amp;aacute;c check-in
tiếp tục xảy ra trước mỗi build được ho&amp;agrave;n th&amp;agrave;nh, điều n&amp;agrave;y ảnh hưởng đến hiệu suất
của build server v&amp;agrave; sẽ block c&amp;aacute;c build kh&amp;aacute;c (như l&amp;agrave; c&amp;aacute;c scheduled build) đang
được bắt đầu. Xem lại cửa sổ time window trong suốt khi c&amp;aacute;c check-in xảy ra một
c&amp;aacute;ch thường xuy&amp;ecirc;n v&amp;agrave; x&amp;aacute;c định nếu c&amp;aacute;c CI build sẽ ảnh hưởng đến sự ph&amp;acirc;n phối của
c&amp;aacute;c scheduled build hay c&amp;aacute;c Team Builds quan trọng kh&amp;aacute;c. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin,
h&amp;atilde;y xem &amp;quot;Chapter 8 - Setting Up a Continuous Integration Build with Team Build&amp;quot;
trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng branching
để giảm thiểu c&amp;aacute;c build breaks&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Để gi&amp;uacute;p tr&amp;aacute;nh c&amp;aacute;c build break, bạn n&amp;ecirc;n sử dụng một
Development branch cho c&amp;aacute;c hoạt động ph&amp;aacute;t triển v&amp;agrave; một Main branch cho
integration build của bạn.&lt;/p&gt;
&lt;p&gt;Sau đ&amp;acirc;y l&amp;agrave; một th&amp;iacute; dụ về cấu tr&amp;uacute;c branch phải ra sao sau khi
bạn tạo một &lt;b&gt;Development &lt;/b&gt;branch:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;b&gt;Development&lt;/b&gt; - Development Branch &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;o&amp;nbsp;
&lt;b&gt;Source &lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;b&gt;Main &lt;/b&gt;- Integration Branch &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;o &lt;b&gt;&amp;nbsp;Source&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;o&amp;nbsp;
&lt;b&gt;Other Assets folders&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;H&amp;atilde;y nhớ đến những lời đề nghị sau khi bạn l&amp;agrave;m việc với một
nh&amp;aacute;nh release branch:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;b&gt;Khi branch.&lt;/b&gt; Nếu bạn đang tạo c&amp;aacute;c daily build v&amp;agrave; đang c&amp;oacute; vấn đề với build
stabilization v&amp;agrave; integration, bạn n&amp;ecirc;n tạo cả một main v&amp;agrave; một development branch
để đảm bảo l&amp;agrave; c&amp;aacute;c daily build của bạn lớn hơn so với dự đo&amp;aacute;n. Bạn cũng c&amp;oacute; thể
muốn xem x&amp;eacute;t kĩ lưỡng nhiều hơn c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch về check-in policy để cải thiện
chất lượng của c&amp;aacute;c check-in.&lt;/li&gt;
&lt;li&gt; &lt;b&gt;Khi kh&amp;ocirc;ng branch.&lt;/b&gt; Nếu bạn chỉ tạo c&amp;aacute;c CI build, hay c&amp;aacute;c daily build
của bạn được dự đo&amp;aacute;n đ&amp;atilde; ổn định, bạn
kh&amp;ocirc;ng cần phải th&amp;ecirc;m chi ph&amp;iacute; của c&amp;aacute;c integration branch.&lt;/li&gt;
&lt;li&gt; &lt;b&gt;Permissions tr&amp;ecirc;n branch:&lt;/b&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;o&amp;nbsp;
The &lt;b&gt;Main &lt;/b&gt;branch permissions n&amp;ecirc;n
được read/write cho c&amp;aacute;c nh&amp;agrave; ph&amp;aacute;t triển chịu tr&amp;aacute;ch nhiệm về merging v&amp;agrave;
integration, nhưng read-only cho tất cả mọi người kh&amp;aacute;c.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;o &amp;nbsp;The &lt;b&gt;Dev&lt;/b&gt;
branch permissions n&amp;ecirc;n l&amp;agrave; read/write cho everyone.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;b&gt;Build frequency trong branch:&lt;/b&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;o&amp;nbsp;
Daily builds tr&amp;ecirc;n &lt;b&gt;Main&lt;/b&gt;
branch. &lt;/p&gt;
&lt;p&gt;o&amp;nbsp;
CI builds tr&amp;ecirc;n &lt;b&gt;Dev&lt;/b&gt; branch.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;b&gt;Testing focus on branch:&lt;/b&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;o&amp;nbsp;
Thực hiện kiểm thử t&amp;iacute;ch hợp, hiệu suất v&amp;agrave; bảo mật(integration,
performance, v&amp;agrave; security testing) tr&amp;ecirc;n &lt;b&gt;Main
&lt;/b&gt;branch.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;o&amp;nbsp;
Thực thi c&amp;aacute;c kiểm thử chức năng v&amp;agrave; phản hồi nhanh(feature and quick
feedback testing) tr&amp;ecirc;n &lt;b&gt;Dev&lt;/b&gt; branch.&lt;/p&gt;
&lt;p&gt;Sử dụng &lt;b&gt;Main&lt;/b&gt;
branch như l&amp;agrave; một staging area cho việc t&amp;iacute;ch hợp c&amp;aacute;c thay đổi(integrating
change) m&amp;agrave; cần được kiểm tra trong development branch. Thực hiện tất cả c&amp;aacute;c hoạt
động ph&amp;aacute;t triển(active development) trong &lt;b&gt;Dev&lt;/b&gt;
branch, v&amp;agrave; t&amp;iacute;ch hợp c&amp;aacute;c non-breaking changes trong &amp;nbsp;&lt;b&gt;Main &lt;/b&gt;branch.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về x&amp;aacute;c định một branching and merging strategy, h&amp;atilde;y xem &amp;quot;Chapter 5 - Defining
Your Branching and Merging Strategy&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; sự giới thiệu
về branching and merging, h&amp;atilde;y xem
&amp;quot;Branching and Merging Primer&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/aa730834%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/aa730834(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về branching, h&amp;atilde;y xem &amp;quot;How to: Branch Files and Folders&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181425%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms181425(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về merging, h&amp;atilde;y xem &amp;quot;How to: Merge Files and Folders&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181428%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms181428(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Đối với c&amp;aacute;c mi&amp;ecirc;u tả
th&amp;ecirc;m về l&amp;agrave;m c&amp;aacute;ch n&amp;agrave;o để branch v&amp;agrave; merge trong Visual Studio 2005, h&amp;atilde;y xem &amp;quot;Branching
and Merging Team Foundation Source Control&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181423%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms181423(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng c&amp;aacute;c
check-in policy để cải thiện chất lượng check-in quality&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Bạn n&amp;ecirc;n sử dụng một sự kết hợp code analysis policy với c&amp;aacute;c testing
policy để cải thiện chất lượng check-in quality. Th&amp;iacute; dụ, sử dụng c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch
testing policy được cung cấp để đảm bảo l&amp;agrave; c&amp;aacute;c test cụ thể được thực thi v&amp;agrave; &amp;nbsp;được th&amp;ocirc;ng qua trước khi cho ph&amp;eacute;p source được
kiểm tra trong TFS source control. Bạn cũng c&amp;oacute; thể cấu h&amp;igrave;nh một ch&amp;iacute;nh s&amp;aacute;ch code
analysis policy để gi&amp;uacute;p đảm bảo l&amp;agrave; code của bạn đ&amp;aacute;p ứng một số ti&amp;ecirc;u chuẩn chất
lượng bằng c&amp;aacute;ch đảm bảo c&amp;aacute;c quy tắc về security, performance, portability,
maintainability, v&amp;agrave; reliability rules được th&amp;ocirc;ng qua.&lt;/p&gt;
&lt;p&gt;Bằng c&amp;aacute;ch thi h&amp;agrave;nh c&amp;aacute;c loại ch&amp;iacute;nh s&amp;aacute;ch check-in policy n&amp;agrave;y,
th&amp;ecirc;m v&amp;agrave;o c&amp;aacute;c policy m&amp;agrave; thi h&amp;agrave;nh c&amp;aacute;c chuẩn code v&amp;agrave; hướng dẫn, bạn c&amp;oacute; thể test phần
code của bạn dựa v&amp;agrave;o c&amp;aacute;c vấn đề chất lượng code cụ thể.&lt;/p&gt;
&lt;p&gt;Để thi h&amp;agrave;nh một code analysis check-in policy cho một team
project, bạn click phải l&amp;ecirc;n team project của bạn trong Team Explorer, trỏ đến
Team Project Settings, v&amp;agrave; sau đ&amp;oacute; click v&amp;agrave;o Source Control. Click v&amp;agrave;o tab Check-in
Policy , click Add, v&amp;agrave; sau đ&amp;oacute; chọn v&amp;agrave; cấu h&amp;igrave;nh ch&amp;iacute;nh s&amp;aacute;ch ph&amp;ugrave; hợp.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về việc tạo v&amp;agrave; sử dụng một custom check-in policy, h&amp;atilde;y xem &amp;quot;How To - Step
Through Creating Custom Check-in Policies for TFS&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu về l&amp;agrave;m
c&amp;aacute;ch n&amp;agrave;o để t&amp;ugrave;y chỉnh một check-in policy, h&amp;atilde;y xem &amp;quot;Walkthrough: Customizing
Check-in Policies and Notes&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181281%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms181281(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để xem sample code m&amp;agrave;
sẽ kh&amp;ocirc;ng cho ph&amp;eacute;p chọn c&amp;aacute;c pattern tr&amp;ecirc;n check-in, h&amp;atilde;y xem &amp;quot;Checkin Policy to
Disallow Certain Patterns&amp;quot; tại &lt;a href="http://blogs.msdn.com/jmanning/archive/2006/02/02/523125.aspx"&gt;&lt;i&gt;http://blogs.msdn.com/jmanning/archive/2006/02/02/523125.aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để xem sample code sẽ
thi h&amp;agrave;nh c&amp;aacute;c comment tr&amp;ecirc;n check-in, h&amp;atilde;y xem &amp;quot;Sample Checkin Policy: Make Sure
the Comment Isn&amp;#39;t Empty&amp;quot; tại &lt;a href="http://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx"&gt;&lt;i&gt;http://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu l&amp;agrave;m thế
n&amp;agrave;o để đăng k&amp;iacute; mới một check-in policy, h&amp;atilde;y xem &amp;quot;I&amp;#39;ve Made a New Check-In
Policy! How Do I Add It?&amp;quot; tại &lt;a href="http://blogs.msdn.com/jmanning/archive/2006/02/07/526778.aspx"&gt;&lt;i&gt;http://blogs.msdn.com/jmanning/archive/2006/02/07/526778.aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng build
notification alerts để t&amp;igrave;m hiểu khi n&amp;agrave;o c&amp;aacute;c build được ho&amp;agrave;n th&amp;agrave;nh&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&amp;nbsp; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Để theo d&amp;otilde;i build process của bạn, bạn c&amp;oacute; thể tạo c&amp;aacute;c alert
m&amp;agrave; gửi e-mail messages đến cho bạn hay c&amp;aacute;c người kh&amp;aacute;c khi một build được ho&amp;agrave;n
th&amp;agrave;nh.&lt;/p&gt;
&lt;p&gt;Điều n&amp;agrave;y quan trọng v&amp;igrave; n&amp;oacute; cung cấp xoay v&amp;ograve;ng nhanh ch&amp;oacute;ng giữa
c&amp;aacute;c nh&amp;oacute;m. Th&amp;iacute; dụ, nếu test team được th&amp;ocirc;ng b&amp;aacute;o qua e-mail của một build đ&amp;atilde; ho&amp;agrave;n
th&amp;agrave;nh, ch&amp;uacute;ng c&amp;oacute; thể khởi động test pass của ch&amp;uacute;ng &amp;nbsp;m&amp;agrave; kh&amp;ocirc;ng phải đợi c&amp;aacute;c hướng dẫn sử dụng.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về build notifications, h&amp;atilde;y xem &amp;quot;How to: Receive Build Notification E-Mail&amp;quot; tại
&lt;a href="http://msdn2.microsoft.com/en-us/library/ms181725%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms181725(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về build notifications, h&amp;atilde;y xem &amp;quot;How to: Add or Edit Alerts&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181335%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms181335(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Branching&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c Team Build Types mới khi tạo một
partial branch.&amp;nbsp; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Chỉnh sửa c&amp;aacute;c path để giải quyết trong
TFSBuild.proj files, khi tạo một complete branch.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng c&amp;aacute;c Team Build Types mới khi tạo một partial branch&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Khi bạn tạo một branch m&amp;agrave; chứa một tập con c&amp;aacute;c solution trong
team project của bạn, bạn cần phải tạo mới c&amp;aacute;c build type để build th&amp;agrave;nh c&amp;ocirc;ng.&lt;/p&gt;
&lt;p&gt;C&amp;oacute; hai loại partial branches: &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; &lt;b&gt;Một partial branch kh&amp;ocirc;ng bao gồm &amp;nbsp;branching của bất cứ loại build type n&amp;agrave;o.&lt;/b&gt; Điều
n&amp;agrave;y sẽ xảy ra trong một team project, v&amp;agrave; sẽ l&amp;agrave; branch solution v&amp;agrave; c&amp;aacute;c source
file đơn giản nhưng sẽ kh&amp;ocirc;ng branch bất k&amp;igrave; TeamBuildTypes folder n&amp;agrave;o trong c&amp;aacute;c
folder mới.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; &lt;b&gt;Một partial branch bao gồm branching của
c&amp;aacute;c loại build type.&lt;/b&gt; This Điều n&amp;agrave;y sẽ xảy ra trong một team project, v&amp;agrave; sẽ
branch một số&amp;nbsp; subfolders của
TeamBuildTypes (tức l&amp;agrave;, c&amp;aacute;c loại build type) ngo&amp;agrave;i ra để c&amp;aacute;c folders chứa c&amp;aacute;c
solution v&amp;agrave; source file li&amp;ecirc;n quan nhau.&lt;/p&gt;
&lt;p&gt;Nếu bạn tạo một partial branch m&amp;agrave; kh&amp;ocirc;ng bao gồm Team Build
Types tất cả của c&amp;aacute;c Team Build đ&amp;atilde; c&amp;oacute; sẽ tiếp tục l&amp;agrave;m việc, nhưng bạn sẽ c&amp;agrave;n tạo
mới Team Build Type nếu bạn muốn build branch. Tạo mới c&amp;aacute;c build types bằng
c&amp;aacute;ch sử dụng Team Build Wizard để build code trong c&amp;aacute;c branch mới. &amp;nbsp;Những loại build type mới n&amp;agrave;y sẽ trỏ đến branch
location cũng c&amp;oacute; thể trỏ đến parent location cho bất k&amp;igrave; solution n&amp;agrave;o m&amp;agrave; phải được
bao gồm trong build nhưng kh&amp;ocirc;ng được branch.&lt;/p&gt;
&lt;p&gt;Nếu bạn tạo một partial branch gồm c&amp;oacute; c&amp;aacute;c Team Build Types, c&amp;aacute;c
build type m&amp;agrave; được copy qua branch sẽ chỉ đến c&amp;aacute;c original, parent branch
locations v&amp;agrave; v&amp;igrave; thế m&amp;agrave; sẽ kh&amp;ocirc;ng cho ph&amp;eacute;p bạn build branch mới. Chỉnh sửa c&amp;aacute;c branched
build types để ch&amp;uacute;ng chỉ đến c&amp;aacute;c branched code location mới.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về l&amp;agrave;m thế n&amp;agrave;o để update c&amp;aacute;c build type của bạn, h&amp;atilde;y xem &amp;quot;How to: Update Build
Types on Branched Team Projects&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms252500%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms252500(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Chỉnh sửa c&amp;aacute;c path để giải quyết trong TFSBuild.proj files, khi tạo một
complete branch&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Khi bạn tạo mới một branch, gồm c&amp;oacute; c&amp;aacute;c Team Build Types, c&amp;aacute;c
đường dẫn path trong c&amp;aacute;c build types vẫn c&amp;ograve;n trỏ đến c&amp;aacute;c location trước. Để cho
c&amp;aacute;c build l&amp;agrave;m việc tr&amp;ecirc;n branch mới, bạn phải update c&amp;aacute;c path trong c&amp;aacute;c build
type project file để ch&amp;uacute;ng reference đến c&amp;aacute;c path location mới tạo sau khi branch
hoạt động.&lt;/p&gt;
&lt;p&gt;Khi bạn tạo một full branch, bạn cũng branch c&amp;aacute;c build type. C&amp;aacute;c
build types chứa c&amp;aacute;c reference đến c&amp;aacute;c folder từ c&amp;aacute;c original source control
tree. Để c&amp;oacute; những build type n&amp;agrave;y refer đến c&amp;aacute;c branch folders, bạn phải edit c&amp;aacute;c
folder references ở trong những file n&amp;agrave;y.&lt;/p&gt;
&lt;p&gt;Để thực thi update, check out c&amp;aacute;c build type từ c&amp;aacute;c branch m&amp;agrave;
bạn muốn chỉnh sửa modify, &amp;aacute;p dụng c&amp;aacute;c update, v&amp;agrave; sau đ&amp;oacute; commit c&amp;aacute;c thay đổi đến
c&amp;aacute;c branch.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về l&amp;agrave;m thế n&amp;agrave;o để update c&amp;aacute;c build type, h&amp;atilde;y xem &amp;quot;How to: Update Build Types on
Branched Team Projects&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms252500%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms252500(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Check-in
Policies &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c check-in policies để n&amp;acirc;ng cao
check-in quality. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng check-in policies để li&amp;ecirc;n kết c&amp;aacute;c
work items với việc build.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng c&amp;aacute;c check-in policies để n&amp;acirc;ng cao check-in quality&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng sự li&amp;ecirc;n kết giữa c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch ph&amp;acirc;n t&amp;iacute;ch v&amp;agrave; kiểm thử
code(code analysis and testing policies) để n&amp;acirc;ng cao chất lượng của c&amp;aacute;c check-in(check-in
quality). Th&amp;iacute; dụ, sử dụng c&amp;aacute;c ch&amp;iacute;nh s&amp;aacute;ch kiểm thử được cung cấp(supplied
testing policy) để đảm bảo l&amp;agrave; c&amp;aacute;c specific test được thực hiện v&amp;agrave; th&amp;ocirc;ng qua trước
khi cho ph&amp;eacute;p c&amp;aacute;c source được kiểm tra ở trong TFS source control. Bạn cũng c&amp;oacute;
thể cấu h&amp;igrave;nh một &lt;i&gt;code analysis policy&lt;/i&gt;
để gi&amp;uacute;p đảm bảo l&amp;agrave; code của bạn đ&amp;aacute;p ứng được ti&amp;ecirc;u chuẩn chất lượng nhất định bằng
việc đảm bảo về kh&amp;iacute;a cạnh security(bảo mật), performance(hiệu suất),
portability(t&amp;iacute;nh linh động), maintainability(bảo tr&amp;igrave;), v&amp;agrave; c&amp;aacute;c nguy&amp;ecirc;n tắc tin cậy(reliability
rules) được th&amp;ocirc;ng qua.&lt;/p&gt;
&lt;p&gt;Bằng c&amp;aacute;c sử dụng loại check-in policy n&amp;agrave;y th&amp;ecirc;m v&amp;agrave;o c&amp;aacute;c policy
m&amp;agrave; được&amp;nbsp; thi h&amp;agrave;nh c&amp;aacute;c ti&amp;ecirc;u chuẩn v&amp;agrave; hướng
dẫn code, bạn c&amp;oacute; thể test phần code của bạn dựa tr&amp;ecirc;n c&amp;aacute;c vấn đề chất lượng code
cụ thể(specific code quality issues).&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về việc tạo v&amp;agrave; sử dụng một custom check-in policy, h&amp;atilde;y xem &amp;quot;How To: Step
Through Creating Custom Check-in Policies for TFS&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu l&amp;agrave;m c&amp;aacute;ch
n&amp;agrave;o để t&amp;ugrave;y chỉnh một check-in policy, h&amp;atilde;y xem &amp;quot;Walkthrough: Customizing
Check-in Policies and Notes&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181281%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms181281(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để xem c&amp;aacute;c phần code
đơn giản m&amp;agrave; sẽ disallow c&amp;aacute;c selected patterns trong check-in, h&amp;atilde;y xem &amp;quot;Check-in
Policy to Disallow Certain Patterns&amp;quot; tại &lt;a href="http://blogs.msdn.com/jmanning/archive/2006/02/02/523125.aspx"&gt;&lt;i&gt;http://blogs.msdn.com/jmanning/archive/2006/02/02/523125.aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&amp;bull;&amp;nbsp; Để xem c&amp;aacute;c phần code đơn giản m&amp;agrave; sẽ enforce c&amp;aacute;c
comment tr&amp;ecirc;n check-in, h&amp;atilde;y xem &amp;quot;Sample Check-in Policy: Make Sure the Comment
Isn&amp;#39;t Empty&amp;quot; tại &lt;a href="http://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx"&gt;http://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx&lt;/a&gt; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu l&amp;agrave;m thế
n&amp;agrave;o để đăng k&amp;iacute; một check-in policy mới, h&amp;atilde;y xem &amp;quot;I&amp;#39;ve Made a New Check-In Policy!
How Do I Add It?&amp;quot; tại &lt;a href="http://blogs.msdn.com/jmanning/archive/2006/02/07/526778.aspx"&gt;http://blogs.msdn.com/jmanning/archive/2006/02/07/526778.aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng check-in policies để li&amp;ecirc;n kết c&amp;aacute;c work items với việc build&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Thiết lập c&amp;aacute;c Work Items check-in policy để buộc c&amp;aacute;c lập
tr&amp;igrave;nh vi&amp;ecirc;n phải li&amp;ecirc;n kết c&amp;aacute;c check-in của họ với một work item.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Nếu một build bị break, điều quan trọng l&amp;agrave; bạn phải biết được
tập c&amp;aacute;c thay đổi(change set) n&amp;agrave;o li&amp;ecirc;n quan đến build n&amp;agrave;y v&amp;agrave; c&amp;aacute;c work item n&amp;agrave;o
li&amp;ecirc;n quan đến tập c&amp;aacute;c thay đổi(change set) đ&amp;oacute;. Bằng sự hiểu biết n&amp;agrave;y, bạn c&amp;oacute; thể
x&amp;aacute;c định được lập tr&amp;igrave;nh vi&amp;ecirc;n n&amp;agrave;o chịu tr&amp;aacute;ch nhiệm kiểm tra trong phần code bị
thay đổi v&amp;agrave; area của dự &amp;aacute;n m&amp;agrave; anh ta hay c&amp;ocirc; ta đang l&amp;agrave;m việc. &lt;/p&gt;
&lt;p&gt;Đối với một build được li&amp;ecirc;n kết với một tập c&amp;aacute;c work item đ&amp;atilde;
ho&amp;agrave;n th&amp;agrave;nh, mỗi check-in phải được li&amp;ecirc;n kết với một work item. Những check-in
n&amp;agrave;y được ti&amp;ecirc;u biểu như c&amp;aacute;c change set li&amp;ecirc;n kết với một build, v&amp;agrave; c&amp;oacute; thể theo
d&amp;otilde;i từ build đến change set đến work item.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về việc tạo v&amp;agrave; sử dụng một custom check-in policy, see &amp;quot;How To: Step Through
Creating Custom Check-in Policies for TFS&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để t&amp;igrave;m hiểu l&amp;agrave;m thế
n&amp;agrave;o để t&amp;ugrave;y chỉnh một check-in policy, see &amp;quot;Walkthrough: Customizing check-in
Policies and Notes&amp;quot; tại &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms181281%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms181281(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Continuous
Integration Builds &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng một CI build để lấy c&amp;aacute;c feedback nhanh
ch&amp;oacute;ng tr&amp;ecirc;n c&amp;aacute;c check-ins. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng một rolling build nếu c&amp;aacute;c CI build c&amp;oacute;
ảnh hưởng kh&amp;ocirc;ng tốt đến hiệu suất của build server performance. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Đảm bảo l&amp;agrave; tần số(frequency) của c&amp;aacute;c rolling
build của bạn thường nhỏ hơn số build times.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng một CI build để lấy c&amp;aacute;c feedback nhanh ch&amp;oacute;ng tr&amp;ecirc;n c&amp;aacute;c check-ins&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Bạn n&amp;ecirc;n sử dụng c&amp;aacute;c &lt;b&gt;Continuous
Integration builds&lt;/b&gt; để cung cấp cho development team của bạn c&amp;aacute;c rapid
feedback tr&amp;ecirc;n bất k&amp;igrave; breaking change n&amp;agrave;o v&amp;agrave; chất lượng của build sau mỗi check-in.
Điều n&amp;agrave;y gi&amp;uacute;p c&amp;aacute;c development team sữa c&amp;aacute;c vấn đề thiết kế(build issues) một
c&amp;aacute;ch kịp thời v&amp;agrave; c&amp;oacute; thể được sử dụng như một c&amp;ocirc;ng cụ tool để cải thiện chất lượng
code của bạn. &lt;/p&gt;
&lt;p&gt;Mặc d&amp;ugrave; Visual Studio 2005 Team Foundation Server kh&amp;ocirc;ng cung cấp
một CI solution out of the box, n&amp;oacute; đ&amp;atilde; cung cấp framework cho bạn để thực thi CI
build solution của bạn.&lt;/p&gt;
&lt;p&gt;Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;agrave;i đặt một CI build với TFS, h&amp;atilde;y xem
&amp;quot;How To: Set Up a Continuous Integration Build in Visual Studio Team Foundation
Server.&amp;quot; Đề t&amp;agrave;i &lt;b&gt;How To article&lt;/b&gt; sử dụng
solution được cung cấp bởi VSTS development team. The solution install một Web
service m&amp;agrave; chạy b&amp;ecirc;n dưới một account m&amp;agrave; account đ&amp;oacute; đ&amp;atilde; truy cập đến TFS server.
Team Foundation Server c&amp;oacute; thể send một e-mail message hay gọi một Web service khi
c&amp;aacute;c event cụ thể xảy ra. Cơ chế event n&amp;agrave;y được sử dụng bởi CI solution để đăng
k&amp;iacute; một Web service với CheckinEvent event, để bất cứ khi n&amp;agrave;o một check-in xảy
ra, Web service khởi động một Team Build.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m c&amp;aacute;c th&amp;ocirc;ng
tin về c&amp;aacute;c CI build, h&amp;atilde;y xem &amp;quot;Chapter 8 - Setting Up a Continuous Integration
Build with Team Build&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m c&amp;aacute;c th&amp;ocirc;ng
tin về c&amp;agrave;i đặt một CI build, h&amp;atilde;y xem &amp;quot;How To - Set Up a Continuous Integration
Build with Visual Studio Team Foundation Server&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m c&amp;aacute;c th&amp;ocirc;ng
tin về l&amp;agrave;m thế n&amp;agrave;o để sử dụng VSTS CI solution, h&amp;atilde;y xem &amp;quot;Continuous Integration
Using Team Foundation Build&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms364045%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms364045(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để download the
Visual Studio Team System CI solution MSI, h&amp;atilde;y đến &lt;a href="http://download.microsoft.com/download/6/5/e/65e300ce-22fc-4988-97de-0e81d3de2482/ci.msi"&gt;&lt;i&gt;http://download.microsoft.com/download/6/5/e/65e300ce-22fc-4988-97de-0e81d3de2482/ci.msi&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m c&amp;aacute;c th&amp;ocirc;ng
tin về agile development v&amp;agrave; CI trong TFS, h&amp;atilde;y xem &amp;quot;Extend Team Foundation
Server to Enable Continuous Integration&amp;quot; tại &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/03/TeamSystem/default.aspx"&gt;&lt;i&gt;http://msdn.microsoft.com/msdnmag/issues/06/03/TeamSystem/default.aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng một rolling build nếu c&amp;aacute;c CI build c&amp;oacute; ảnh hưởng kh&amp;ocirc;ng tốt đến hiệu
suất của build server performance&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Building ngay sau khi tất cả c&amp;aacute;c check-in xảy ra l&amp;agrave; chiến lược
CI đơn giản nhất v&amp;agrave; thường sẽ cho bạn hầu hết c&amp;aacute;c feedback nhanh. Tuy nhi&amp;ecirc;n, nếu
c&amp;aacute;c check-in xảy ra một c&amp;aacute;ch nhanh ch&amp;oacute;ng đủ để l&amp;agrave;m tr&amp;agrave;n build server của bạn, bạn
n&amp;ecirc;n sử dụng một phương ph&amp;aacute;p rolling build ở nơi bạn build sau khi một số c&amp;aacute;c
check-in cụ thể hay sau một giai đoạn thời gian cụ thể. Để quyết định nếu bạn cần
sử dụng một rolling build, h&amp;atilde;y x&amp;aacute;c định c&amp;aacute;c điều sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Chiều d&amp;agrave;i của Team
Build được t&amp;iacute;nh bằng ph&amp;uacute;t.&lt;/li&gt;
&lt;li&gt; Tần số trung b&amp;igrave;nh của
c&amp;aacute;c check-in được t&amp;iacute;nh bằng ph&amp;uacute;t.&lt;/li&gt;
&lt;li&gt; Time window during
which frequent check-ins occur &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Nếu độ d&amp;agrave;i của c&amp;aacute;c build l&amp;acirc;u hơn tần số trung b&amp;igrave;nh của c&amp;aacute;c check-in,
c&amp;aacute;c build của bạn sẽ chạy li&amp;ecirc;n tục bởi v&amp;igrave; build đầu ti&amp;ecirc;n sẽ kh&amp;ocirc;ng ho&amp;agrave;n th&amp;agrave;nh
trước khi check-in tiếp theo xảy ra, sẽ khởi động build kh&amp;aacute;c. Nếu c&amp;aacute;c check-in
tiếp tục xảy ra trước mỗi build ho&amp;agrave;n th&amp;agrave;nh, n&amp;oacute; sẽ ảnh hưởng đến hiệu suất của build
server của bạn v&amp;agrave; sẽ tr&amp;igrave; ho&amp;atilde;n c&amp;aacute;c build kh&amp;aacute;c, như l&amp;agrave; c&amp;aacute;c scheduled builds. Xem
lại time window trong suốt thời gian c&amp;aacute;c check-in xảy ra v&amp;agrave; x&amp;aacute;c định nếu c&amp;aacute;c CI
build ảnh hưởng đến sự ph&amp;acirc;n phối của c&amp;aacute;c scheduled build hay c&amp;aacute;c Team Build
quan trọng kh&amp;aacute;c.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về c&amp;agrave;i đặt c&amp;aacute;c CI build, h&amp;atilde;y xem &amp;quot;Chapter 8 - Setting Up an Continuous
Integration Build with Team Build&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;H&amp;atilde;y chắc l&amp;agrave; tần số của c&amp;aacute;c Rolling Build của bạn nhỏ hơn số lần Build
Times &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;X&amp;aacute;c định khoảng thời gian rolling build để đảm bảo cho một
quy tr&amp;igrave;nh build process hiệu quả th&amp;igrave; quan trọng. Nếu tần số của c&amp;aacute;c rolling
build nhỏ hơn thời gian để ho&amp;agrave;n th&amp;agrave;nh một build, n&amp;oacute; đảm bảo l&amp;agrave; build machine của
bạn sẽ sẵn s&amp;agrave;ng cho c&amp;aacute;c build type kh&amp;aacute;c ở giữa c&amp;aacute;c khoảng thời gian rolling
build của bạn. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Để x&amp;aacute;c định khoảng thời gian rolling build l&amp;yacute; tưởng, h&amp;atilde;y chia
tần số trung b&amp;igrave;nh của c&amp;aacute;c check-in theo độ d&amp;agrave;i của build của bạn. V&amp;iacute; dụ, nếu bạn
c&amp;oacute; một build m&amp;agrave; mất 10 ph&amp;uacute;t v&amp;agrave; bạn trung b&amp;igrave;nh một check-in l&amp;agrave; 5 ph&amp;uacute;t, bạn c&amp;oacute; thể
g&amp;aacute;n một khoảng thời gian check-in của hai check-in v&amp;agrave; một khoảng thời gian chờ
l&amp;agrave; 10 ph&amp;uacute;t. Điều n&amp;agrave;y đảm bảo l&amp;agrave; c&amp;aacute;c build sẽ được ho&amp;agrave;n th&amp;agrave;nh trước khi build kế
tiếp được k&amp;iacute;ch hoạt. Nếu bạn nhận thấy l&amp;agrave; c&amp;oacute; việc load qu&amp;aacute; tải tr&amp;ecirc;n build
server của bạn, bạn c&amp;oacute; thể tăng c&amp;aacute;c gi&amp;aacute; trị n&amp;agrave;y.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về c&amp;aacute;c CI build, h&amp;atilde;y xem &amp;quot;Chapter 8 - Setting Up a Continuous Integration Build
with Team Build&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Hướng dẫn: Team Build( phần 2)</title><link>http://msdnvietnam.net/wikis/tfs/h-ng-d-n-team-build-ph-n-2/revision/0.aspx</link><pubDate>Mon, 14 Dec 2009 20:38:07 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:133</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to TFS - Team Foundation System by Nguyễn Thị Như Quỳnh on 12/15/2009 4:38:07 AM&lt;br /&gt;
&lt;p&gt;&lt;b&gt;Customization
&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng một bước post-build t&amp;ugrave;y chỉnh để &amp;nbsp;build một installer project. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng MS Build Toolkit Extras để build
Microsoft .NET 1.1 applications. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng TFSBuild.proj để chỉnh sửa build của
bạn. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng một bước pre-build t&amp;ugrave;y chỉnh để &amp;nbsp;build một project c&amp;oacute; sự phụ thuộc đến team
project kh&amp;aacute;c.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng một bước post-build t&amp;ugrave;y chỉnh để&amp;nbsp;
build một installer project&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;V&amp;igrave; Team Build mặc định kh&amp;ocirc;ng hỗ trợ c&amp;aacute;c setup project, bạn
n&amp;ecirc;n sử dụng một bước post-build t&amp;ugrave;y chỉnh để bi&amp;ecirc;n dịch &amp;nbsp;setup project v&amp;agrave; copy c&amp;aacute;c tập tin binary đến
c&amp;aacute;c vị tr&amp;iacute; build drop location.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin,
h&amp;atilde;y xem &amp;quot;Walkthrough: Configuring Team Foundation Build to Build a Visual
Studio Setup Project&amp;quot; tại &amp;nbsp; &lt;a href="http://msdn2.microsoft.com/en-us/library/ms404859%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms404859(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng MS Build Toolkit Extras để build Microsoft .NET 1.1 applications&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Team Build mặc định kh&amp;ocirc;ng hỗ trợ c&amp;aacute;c ứng dụng .NET 1.1
applications. Bộ MSBuild Extras - Toolkit d&amp;agrave;nh cho .NET 1.1 (MSBee) cho ph&amp;eacute;p
c&amp;aacute;c build trong .NET 1.1 &amp;nbsp;nhưng lại đ&amp;ograve;i hỏi
rằng c&amp;aacute;c project của bạn v&amp;agrave; c&amp;aacute;c solution phải được upgraded đến Visual Studio
2005. Nếu bạn kh&amp;ocirc;ng thể upgrade đến Visual Studio 2005 projects and solutions, bạn
c&amp;oacute; thể sử dụng một custom post-build step để bi&amp;ecirc;n dịch c&amp;aacute;c &amp;nbsp;.NET 1.1 applications.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để download MSBee, tại
đ&amp;acirc;y &lt;a href="http://www.codeplex.com/MSBee"&gt;&lt;i&gt;http://www.codeplex.com/MSBee&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về việc tạo một custom post-build step(bước post-build t&amp;ugrave;y &amp;yacute; bạn) để bi&amp;ecirc;n dịch
một .NET 1.1 application, h&amp;atilde;y xem tại Nagaraju&amp;#39;s blog entry ở đ&amp;acirc;y&lt;a href="http://blogs.msdn.com/nagarajp/archive/2005/10/26/485368.aspx"&gt;&amp;nbsp; http://blogs.msdn.com/nagarajp/archive/2005/10/26/485368.aspx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng TFSBuild.proj để chỉnh sửa build của bạn &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Để chỉnh sửa th&amp;ocirc;ng tin về build-như l&amp;agrave; build server, drops
location, hay &amp;nbsp;build directory-bạn c&amp;oacute; thể
chỉnh sửa file TFSBuild.proj.&lt;/p&gt;
&lt;p&gt;File TFSBuild.proj chứa rất nhiều th&amp;ocirc;ng tin cần thiết d&amp;ugrave;ng để
thực thi một Team Build. Th&amp;ocirc;ng tin n&amp;agrave;y gồm c&amp;oacute; c&amp;aacute;c build location v&amp;agrave; những g&amp;igrave; m&amp;agrave;
build n&amp;ecirc;n thực thi ph&amp;acirc;n t&amp;iacute;ch code tĩnh(static code analysis) v&amp;agrave; c&amp;aacute;c unit
test(kiểm thử đơn vị). Để chỉnh sửa build, bạn chỉnh sửa file TFSBuild.proj.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để chỉnh sửa
TFSBuild.proj file &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;1.&amp;nbsp; Kiểm tra c&amp;aacute;c file từ source control. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Cập nhật c&amp;aacute;c th&amp;ocirc;ng
tin build trong c&amp;aacute;c file.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Kiểm tra lại c&amp;aacute;c
file, cam kết thay đổi. &lt;/p&gt;
&lt;p&gt;Lần tiếp theo khi m&amp;agrave; build được thực thi, n&amp;oacute; sẽ sử dụng build
data đ&amp;atilde; sữa chữa. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về t&amp;ugrave;y chỉnh Team Foundation Build, h&amp;atilde;y xem &amp;quot;Customizing Team Foundation Build&amp;quot;
tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms400688%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms400688(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng một bước pre-build t&amp;ugrave;y chỉnh để&amp;nbsp;
build một project c&amp;oacute; sự phụ thuộc đến team project kh&amp;aacute;c.&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Team Build kh&amp;ocirc;ng hỗ trợ build c&amp;aacute;c solution ngang qua giữa c&amp;aacute;c
team project. Để cho ph&amp;eacute;p điều n&amp;agrave;y xảy ra, bạn phải t&amp;ugrave;y chỉnh file TFSBuild.proj
để kiểm tra phần code bạn cần từ c&amp;aacute;c project kh&amp;aacute;c m&amp;agrave; c&amp;aacute;c build của bạn phụ thuộc
v&amp;agrave;o.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin,
h&amp;atilde;y xem &amp;quot;Working with multiple team projects in Team Build&amp;quot; tại &lt;a href="http://blogs.msdn.com/manishagarwal/archive/2005/12/22/506635.aspx"&gt;http://blogs.msdn.com/manishagarwal/archive/2005/12/22/506635.aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về t&amp;ugrave;y chỉnh c&amp;aacute;c Team Foundation Build, h&amp;atilde;y xem &amp;quot;Customizing Team Foundation
Build&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms400688%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms400688(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Deployment
: Triển Khai&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Tr&amp;ecirc;n c&amp;aacute;c team lớn, install c&amp;aacute;c build service
tr&amp;ecirc;n một separate server(server ri&amp;ecirc;ng biệt).&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Tr&amp;ecirc;n c&amp;aacute;c Team lớn, Install c&amp;aacute;c Build Services tr&amp;ecirc;n một Separate Server &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Build( bi&amp;ecirc;n dịch chương tr&amp;igrave;nh) cho c&amp;aacute;c đội( team) lớn mất rất
nhiều thời gian v&amp;agrave; cần sử dụng kh&amp;aacute; lớn nguồn t&amp;agrave;i nguy&amp;ecirc;n của server. Nếu bạn chạy
c&amp;aacute;c build của bạn tr&amp;ecirc;n Team TFS server, điều n&amp;agrave;y ảnh hưởng đến đ&amp;ocirc; tin cậy, hiệu
suất, v&amp;agrave; khả năng mở rộng của server. &lt;/p&gt;
&lt;p&gt;Để cải thiện hiệu suất build của bạn v&amp;agrave; giảm việc &amp;nbsp;load tr&amp;ecirc;n tầng application của bạn, bạn n&amp;ecirc;n chạy
c&amp;aacute;c build tr&amp;ecirc;n một server ri&amp;ecirc;ng biệt d&amp;ugrave;ng để build.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để download bộ Team
Foundation Installation Guide, hay c&amp;oacute; th&amp;ecirc;m nhiều th&amp;ocirc;ng tin về việc installing
TFS and Team Build, h&amp;atilde;y đến &amp;nbsp; &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E54BF6FF-026B-43A4-ADE4-A690388F310E&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=E54BF6FF-026B-43A4-ADE4-A690388F310E&amp;amp;displaylang=en&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Performance
&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c incremental build để n&amp;acirc;ng cao hiệu
suất.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Tr&amp;aacute;nh đồng bộ h&amp;oacute;a c&amp;aacute;c folder dự ph&amp;ograve;ng trong
việc build của bạn. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c workspace để tr&amp;aacute;nh việc kiểm tra
c&amp;aacute;c file v&amp;agrave; c&amp;aacute;c project kh&amp;ocirc;ng mong muốn khi đang thực hiện một Team Build &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Xem x&amp;eacute;t việc sử dụng nhiều build machine để
n&amp;acirc;ng cao hiệu suất.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng c&amp;aacute;c incremental build để n&amp;acirc;ng cao hiệu suất&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Mặc định, Team Build dọn dẹp c&amp;aacute;c thư mục m&amp;agrave; n&amp;oacute; sử dụng để thực
hiện việc build trước khi n&amp;oacute; kiểm tra c&amp;aacute;c c&amp;acirc;y source control ho&amp;agrave;n to&amp;agrave;n cần thiết
cho việc build. Team Build cũng x&amp;oacute;a bỏ v&amp;agrave; khởi động lại c&amp;aacute;c workspace được sử dụng
để kiểm tra c&amp;aacute;c source cho việc build. Để n&amp;acirc;ng cao hiệu suất, bạn c&amp;oacute; thể thiết
lập cho Team Vuild chỉ lấy c&amp;aacute;c source đ&amp;atilde; thay đổi kể từ lần Team Build cuối
c&amp;ugrave;ng &lt;/p&gt;
&lt;p&gt;&amp;nbsp;Nếu số lượng c&amp;aacute;c
source cần thiết cho một build lớn v&amp;agrave; build server th&amp;igrave; xa từ TFS server, th&amp;igrave; việc
kiểm tra c&amp;aacute;c source code c&amp;oacute; thể mất nhiều thời gian để thực hiện. Trong trường
hợp đ&amp;oacute;, bạn n&amp;ecirc;n xem x&amp;eacute;t sử dụng một incremental build. Để thực hiện incremental
build, bạn cần thiết lập một v&amp;agrave;i c&amp;aacute;c gi&amp;aacute; trị trong tập tin TFSBuild.proj của bạn
th&amp;agrave;nh gi&amp;aacute; trị true. Bạn cần l&amp;agrave;m: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Stop Team Build từ
việc dọn dẹp c&amp;aacute;c thư mục build cục bộ v&amp;agrave; c&amp;aacute;c thư mục source.&lt;/li&gt;
&lt;li&gt; Stop Team Build từ
việc tạo lại c&amp;aacute;c workspace được sử dụng cho việc build. &lt;/li&gt;
&lt;li&gt; Cấu h&amp;igrave;nh Team Build để
chỉ lấy c&amp;aacute;c source đ&amp;atilde; được thay đổi từ source control.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Để thực hiện
một incremental build &lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Tạo mới một build
type để đại diện cho incremental build. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; Kiểm tra để chỉnh sửa
tập tin TFSBuild.proj li&amp;ecirc;n quan đến c&amp;aacute;c incremental build type m&amp;agrave; bạn vừa tạo.&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Th&amp;ecirc;m phần sau
&amp;lt;PropertyGroup&amp;gt; ngay trước khi phần tử &amp;nbsp;&amp;lt;/project&amp;gt; đ&amp;oacute;ng trong TFSBuild.proj:&amp;nbsp; &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;b&gt;&amp;lt;PropertyGroup&amp;gt; &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;SkipClean&amp;gt;true&amp;lt;/SkipClean&amp;gt; &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;SkipInitializeWorkspace&amp;gt;true&amp;lt;/SkipInitializeWorkspace&amp;gt; &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ForceGet&amp;gt;false&amp;lt;/ForceGet&amp;gt; &lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;b&gt;&amp;lt;/ PropertyGroup&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;C&amp;aacute;c c&amp;agrave;i đặt n&amp;agrave;y thực hiện như sau: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;b&gt;SkipClean.&lt;/b&gt; Thiết lập cho &lt;b&gt;SkipClean&lt;/b&gt;
th&amp;agrave;nh &lt;b&gt;true&lt;/b&gt; để đảm bảo l&amp;agrave; việc build sẽ
kh&amp;ocirc;ng dọn dẹp c&amp;aacute;c local build v&amp;agrave; sources folder. &lt;/li&gt;
&lt;li&gt; &lt;b&gt;SkipInitializeWorkspace.&lt;/b&gt; Thiết lập cho &lt;b&gt;SkipInitializeWorkspace&lt;/b&gt; th&amp;agrave;nh &lt;b&gt;true
&lt;/b&gt;để đảm bảo l&amp;agrave; build sẽ ra khỏi workspace đ&amp;atilde; c&amp;oacute; trong build machine. &lt;/li&gt;
&lt;li&gt; &lt;b&gt;ForceGet.&lt;/b&gt; Thiết lập cho &lt;b&gt;ForceGet&lt;/b&gt;
th&amp;agrave;nh &lt;b&gt;false &lt;/b&gt;để đảm bảo l&amp;agrave; việc build
sẽ chỉ nhận c&amp;aacute;c source đ&amp;atilde; được cập nhật, hơn l&amp;agrave; nhận tất cả c&amp;aacute;c source cho
workspace.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin,
h&amp;atilde;y xem &amp;quot;Practices at a Glance - Team Build&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y. &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; thếm th&amp;ocirc;ng tin
về việc cấu h&amp;igrave;nh một incremental build, h&amp;atilde;y xem &amp;quot;How to: Configure Team
Foundation Build for an Incremental Build&amp;quot; tại&amp;nbsp; &lt;a href="http://msdn2.microsoft.com/en-us/library/aa833876%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa833876(VS.80).aspx&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Tr&amp;aacute;nh đồng bộ h&amp;oacute;a c&amp;aacute;c folder dự ph&amp;ograve;ng trong việc build của bạn&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Bạn n&amp;ecirc;n giảm workspace mapping của bạn xuống hay c&amp;aacute;c cloak
folder m&amp;agrave; kh&amp;ocirc;ng cần thiết như một phần của qu&amp;aacute; tr&amp;igrave;nh build. &lt;/p&gt;
&lt;p&gt;Khi bạn thực thi một Team Build, server truy t&amp;igrave;m tất cả c&amp;aacute;c
file m&amp;agrave; n&amp;oacute; cần từ source control. Tất cả file m&amp;agrave; được truy t&amp;igrave;m, được x&amp;aacute;c định bởi
c&amp;aacute;c workspace d&amp;ugrave;ng để tạo c&amp;aacute;c Team Build Type. Một số file được map(&amp;aacute;nh xạ) v&amp;agrave;o
trong workspace c&amp;oacute; lẽ kh&amp;ocirc;ng cần thiết. Bạn c&amp;oacute; thể thay đổi định nghĩa workspace
definition của bạn để giảm c&amp;aacute;c folder được bao gồm trong đ&amp;oacute;, hay bạn c&amp;oacute; thể cloak
c&amp;aacute;c file kh&amp;ocirc;ng cần thiết để ch&amp;uacute;ng kh&amp;ocirc;ng được truy t&amp;igrave;m như một phần của qu&amp;aacute;
tr&amp;igrave;nh build. &lt;/p&gt;
&lt;p&gt;Th&amp;iacute; dụ, mặc định sự mapping cho một project mới l&amp;agrave; &amp;nbsp;$/TeamProject. Nếu tất cả source file của bạn
được nằm dưới $/TeamProject/foo/bar/foobar/sources, bạn n&amp;ecirc;n chỉ map thư mục đ&amp;oacute;.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Để &amp;nbsp;cloak c&amp;aacute;c file ở
b&amp;ecirc;n dưới workspace mapping của bạn, bạn c&amp;oacute; thể chỉnh sửa tập tin WorkspaceMapping.xml
m&amp;agrave; được tạo khi Team Build Type được tạo v&amp;agrave; được sử dụng để x&amp;aacute;c định c&amp;aacute;c folder
m&amp;agrave; được truy t&amp;igrave;m khi đang thực hiện việc build. Bạn c&amp;oacute; thể cloak c&amp;aacute;c file v&amp;agrave;
c&amp;aacute;c folder kh&amp;ocirc;ng cần thiết như một phần của quy tr&amp;igrave;nh build. Folder cloaking được
ưa chuộng hơn v&amp;igrave; việc cloak c&amp;aacute;c individual file c&amp;oacute; thể giới thiệu chi ph&amp;iacute; bảo
tr&amp;igrave;.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Để cloak c&amp;aacute;c
folder&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; H&amp;atilde;y kiểm tra tập
tin WorkspaceMapping.xml từ source control. &lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; V&amp;agrave; th&amp;ecirc;m c&amp;aacute;c mục cloak
th&amp;iacute;ch hợp v&amp;agrave;o file n&amp;agrave;y.&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; Kiểm tra tập tin
WorkspaceMapping.xml.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Th&amp;iacute; dụ sau đảm bảo l&amp;agrave; documentation folder sẽ kh&amp;ocirc;ng được truy
t&amp;igrave;m từ source control trong suốt một Team Build:&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;lt;Mappings&amp;gt; &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;
&amp;lt;InternalMapping ServerItem=&amp;quot;$/MyTeamProject&amp;quot; &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;LocalItem=&amp;quot;c:\projects\teamproject&amp;quot;
Type=&amp;quot;Map&amp;quot; /&amp;gt; &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;
&amp;lt;InternalMapping ServerItem=&amp;quot;$/MyTeamProject/documentation&amp;quot;
Type=&amp;quot;Cloak&amp;quot; &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;/&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;/Mappings&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về c&amp;aacute;c cloaking folder trong một workspace, h&amp;atilde;y xem &amp;quot;How to: Cloak and Decloak
Folders in a Workspace&amp;quot; tại&amp;nbsp; &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181378%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms181378(VS.80).aspx&lt;/a&gt; &amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về việc tạo Team Build loại bỏ c&amp;aacute;c folder, h&amp;atilde;y xem &amp;quot;How to make &amp;#39;Team Build&amp;#39;
skip getting certain folders?&amp;quot; tại&lt;a href="http://blogs.msdn.com/manishagarwal/archive/2005/10/13/480584.aspx"&gt; http://blogs.msdn.com/manishagarwal/archive/2005/10/13/480584.aspx&lt;/a&gt; &amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về WorkspaceMapping schema, h&amp;atilde;y xem
&amp;quot;Schema for the WorkspaceMapping.xml file&amp;quot; tại &lt;a href="http://blogs.msdn.com/buckh/archive/2007/02/28/schema-for-the-workspacemapping-xml-file.aspx"&gt;http://blogs.msdn.com/buckh/archive/2007/02/28/schema-for-the-workspacemapping-xml-file.aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng c&amp;aacute;c workspace để tr&amp;aacute;nh việc kiểm tra c&amp;aacute;c file v&amp;agrave; c&amp;aacute;c project
kh&amp;ocirc;ng mong muốn khi đang thực hiện một Team Build&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Team Build kiểm tra c&amp;aacute;c source của bạn để thực thi qu&amp;aacute; tr&amp;igrave;nh build.
Nếu bạn c&amp;oacute; một c&amp;acirc;y source tree cho một project, việc kiểm tra c&amp;aacute;c source c&amp;oacute; thể
&amp;nbsp;rất tốn thời gian. Nếu bạn chỉ build một
phần của team project, bạn n&amp;ecirc;n đảm bảo l&amp;agrave; chỉ c&amp;aacute;c source cần thiết được kiểm
tra. &lt;/p&gt;
&lt;p&gt;Nếu bạn c&amp;oacute; một team project lớn, n&amp;oacute; sẽ chứa nhiều Visual
Studio solutions, mỗi solution được sử dụng để build một phần ri&amp;ecirc;ng biệt của team
project. Khi bạn tạo một Team Build Type, bạn x&amp;aacute;c định solution m&amp;agrave; Team Build sẽ
sử dụng. Nếu bạn x&amp;aacute;c định một solution file m&amp;agrave; kh&amp;ocirc;ng x&amp;aacute;c định một workspace,
Team Build sẽ kiểm tra tất cả c&amp;aacute;c source ở trong team project trước khi thực hiện
một qu&amp;aacute; tr&amp;igrave;nh build.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Để chỉ kiểm tra những source m&amp;agrave; bạn cần, đầu ti&amp;ecirc;n bạn phải
x&amp;aacute;c định một workspace. Trước khi tạo Team Build Type, đầu ti&amp;ecirc;n bạn x&amp;aacute;c định một
workspace v&amp;agrave; chỉ map solution m&amp;agrave; bạn muốn để build workspace đ&amp;oacute;. Khi bạn x&amp;aacute;c định
Team Build Type, h&amp;atilde;y chọn workspace m&amp;agrave; bạn đ&amp;atilde; x&amp;aacute;c định v&amp;agrave; sau đ&amp;oacute; chọn solution.
Bằng c&amp;aacute;ch n&amp;agrave;y, chỉ c&amp;aacute;c những source đ&amp;atilde; được x&amp;aacute;c định trong workspace sẽ được kiểm
tra.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về việc tạo một Team Build Type, h&amp;atilde;y xem &amp;quot;Walkthrough: Creating a Build Type in
Team Foundation Build&amp;quot; tại đ&amp;acirc;y&amp;nbsp; &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181286%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms181286(VS.80).aspx&lt;/a&gt; &amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin
về tại c&amp;aacute;c Team Build kiểm tra tất cả source code trong một workspace, h&amp;atilde;y xem
&amp;quot;Why does Team Build sync all sources in spite of my selecting only a subset of
solutions?&amp;quot; tại đ&amp;acirc;y &lt;a href="http://blogs.msdn.com/anutthara/archive/2005/12/07/500923.aspx"&gt;http://blogs.msdn.com/anutthara/archive/2005/12/07/500923.aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Xem x&amp;eacute;t việc sử dụng nhiều build machine để n&amp;acirc;ng cao hiệu suất&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Nếu bạn c&amp;oacute; nhiều build type m&amp;agrave; tất cả đều đang thực thi tr&amp;ecirc;n
một single build server, th&amp;igrave; server c&amp;oacute; thể bị tr&amp;agrave;n(overwhelmed). Trong t&amp;igrave;nh huống
như thế, bạn n&amp;ecirc;n xem x&amp;eacute;t việc thực thi c&amp;aacute;c build type kh&amp;aacute;c nhau tr&amp;ecirc;n c&amp;aacute;c build
server kh&amp;aacute;c nhau.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Một qu&amp;aacute; tr&amp;igrave;nh build c&amp;oacute; thể mất nhiều thời gian để thực thi, đặc
biệt nếu build đ&amp;oacute; l&amp;agrave; d&amp;agrave;nh cho một project lớn. Nếu bạn đang sử dụng CI hay c&amp;aacute;c frequent
scheduled build, th&amp;igrave; build server c&amp;oacute; thể kh&amp;ocirc;ng c&amp;oacute; khả năng giữ một khối lượng build
đang được khởi tạo. &lt;/p&gt;
&lt;p&gt;Bạn c&amp;oacute; thể install nhiều build server để &amp;nbsp;ph&amp;acirc;n phối việc load giữa c&amp;aacute;c server kh&amp;aacute;c nhau.
H&amp;atilde;y chỉ định c&amp;aacute;c build type kh&amp;aacute;c nhau cho từng server đến thậm ch&amp;iacute; c&amp;aacute;c build
load. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n
bổ sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin,
h&amp;atilde;y xem &amp;quot;Chương 7 - Giải th&amp;iacute;ch Team Build&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Projects &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Tr&amp;aacute;nh sự phụ thuộc qua lại giữa c&amp;aacute;c team
project. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng c&amp;aacute;c project reference thay v&amp;igrave; c&amp;aacute;c
file reference. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng Web Deployment Project cho c&amp;aacute;c Web
application. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng một chiến lược single-solution
strategy nếu bạn đang l&amp;agrave;m việc tr&amp;ecirc;n một team project nhỏ. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng một chiến lược partitioned-solution
strategy nếu bạn đang l&amp;agrave;m việc tr&amp;ecirc;n một team project lớn với nhiều project nhỏ
độc lập nhau. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;bull;&amp;nbsp; Sử dụng một chiến lược multiple-solution
strategy nếu bạn đang l&amp;agrave;m việc tr&amp;ecirc;n một team project rất lớn m&amp;agrave; y&amp;ecirc;u cầu đến
h&amp;agrave;ng chục c&amp;aacute;c project nhỏ độc lập.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Tr&amp;aacute;nh sự phụ thuộc qua lại giữa c&amp;aacute;c Team Project. &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Th&amp;ocirc;ng thường, bạn
n&amp;ecirc;n tr&amp;aacute;nh sự phụ thuộc qua lại giữa c&amp;aacute;c team project v&amp;agrave; h&amp;atilde;y cố gắng để giữ cho
tất c&amp;aacute;c c&amp;aacute;c c&amp;aacute;c solutions/projects c&amp;oacute; li&amp;ecirc;n quan hay độc lập nhau ở b&amp;ecirc;n dưới của
c&amp;ugrave;ng một team project. Điều n&amp;agrave;y giảm sự cần thiết của việc t&amp;ugrave;y chỉnh c&amp;aacute;c build
script. Nếu bạn c&amp;oacute; một phụ thuộc dependency n&amp;agrave;o đ&amp;oacute;,h&amp;atilde;y sử dụng c&amp;aacute;c project
references để x&amp;aacute;c định n&amp;oacute;, hay branch c&amp;aacute;c dependency từ một shared project ở
trong project của bạn. Bạn n&amp;ecirc;n tr&amp;aacute;nh c&amp;aacute;c file references bởi v&amp;igrave; quản l&amp;yacute; ch&amp;uacute;ng rất
kh&amp;oacute; khăn.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về tạo một workspace,
h&amp;atilde;y xem &amp;quot;How to: Create a Workspace&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181384%28VS.80%29.aspx"&gt;&lt;i&gt;http://msdn2.microsoft.com/en-us/library/ms181384(VS.80).aspx&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về chỉnh sửa một
workspace, h&amp;atilde;y xem &amp;quot;How to: Edit a Workspace&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms245466%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms245466(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về branching, h&amp;atilde;y xem
&amp;quot;How to: Branch Files and Folders&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181425%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms181425(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng c&amp;aacute;c project reference thay v&amp;igrave; c&amp;aacute;c file reference&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Nếu bạn cần
reference c&amp;aacute;c assembly kh&amp;aacute;c trong c&amp;ugrave;ng một Visual Studio solution, bạn n&amp;ecirc;n sử dụng
một Visual Studio project reference. Bằng c&amp;aacute;ch sử dụng c&amp;aacute;c project reference, bạn
k&amp;iacute;ch hoạt Visual Studio để l&amp;agrave;m một v&amp;agrave;i việc tự động cho bạn, như l&amp;agrave; giữ sự cấu
h&amp;igrave;nh build bất đồng bộ (debug/release) v&amp;agrave; theo d&amp;otilde;i c&amp;aacute;c version v&amp;agrave; build lại c&amp;aacute;c
th&amp;agrave;nh phần cần thiết khi r&amp;aacute;p lại c&amp;aacute;c versions change.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về c&amp;aacute;c project
references, h&amp;atilde;y xem &amp;quot;Project References&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/library/ez524kew%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ez524kew(VS.80).aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng Web Deployment Project cho c&amp;aacute;c Web application&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;C&amp;aacute;c web
deployment project c&amp;oacute; li&amp;ecirc;n kết với một Visual Studio Web Site project hay Web
Application project. Ch&amp;uacute;ng cho ph&amp;eacute;p bạn quản l&amp;yacute; c&amp;aacute;c thiết lập build cũng như l&amp;agrave;
một loạt c&amp;aacute;c thiết lập phổ biến kh&amp;aacute;c đến c&amp;aacute;c ASP.NET Web applications. Th&amp;iacute; dụ,
deployment project (triển khai dự &amp;aacute;n) cho bạn một c&amp;aacute;ch thức truy cập dễ d&amp;agrave;ng đến
Web.config, connection strings, v&amp;agrave; c&amp;aacute;c thư mục virtual directories, v&amp;agrave; cho ph&amp;eacute;p
bạn triển khai dễ d&amp;agrave;ng hơn&amp;nbsp; c&amp;aacute;c ứng dụng
bi&amp;ecirc;n dịch Web đến c&amp;aacute;c hosting server.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin, h&amp;atilde;y xem &amp;quot;Visual Studio
2005 Web Deployment Projects&amp;quot; tại &lt;a href="http://msdn2.microsoft.com/en-us/asp.net/aa336619.aspx"&gt;http://msdn2.microsoft.com/en-us/asp.net/aa336619.aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng một chiến lược single-solution strategy nếu bạn đang l&amp;agrave;m việc
tr&amp;ecirc;n một team project nhỏ. &lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Nếu bạn l&amp;agrave;m việc
với một team nhỏ, h&amp;atilde;y xem x&amp;eacute;t sử dụng một single Visual Studio solution để chứa
tất cả c&amp;aacute;c project của bạn. Cấu tr&amp;uacute;c n&amp;agrave;y đơn giản h&amp;oacute;a việc ph&amp;aacute;t triển v&amp;igrave; tất cả
c&amp;aacute;c phần code c&amp;oacute; sẵn khi bạn mở solution. Chiến thuật n&amp;agrave;y cũng dễ d&amp;agrave;ng để thiết
lập c&amp;aacute;c reference, bởi v&amp;igrave; tất cả c&amp;aacute;c reference ở giữa c&amp;aacute;c project trong
solution của bạn. Bạn c&amp;oacute; thể vẫn c&amp;ograve;n cần sử dụng c&amp;aacute;c file reference để
reference đến c&amp;aacute;c assembly ở b&amp;ecirc;n cung cấp thứ ba, như l&amp;agrave; c&amp;aacute;c th&amp;agrave;nh phần được
mua, m&amp;agrave; ở b&amp;ecirc;n ngo&amp;agrave;i solution của bạn.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;T&amp;agrave;i nguy&amp;ecirc;n bổ
sung&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin, h&amp;atilde;y xem &amp;quot;Chương 3 - Cấu
tr&amp;uacute;c Projects v&amp;agrave; Solutions trong Source Control&amp;quot; trong t&amp;agrave;i liệu n&amp;agrave;y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;Sử dụng một chiến lược partitioned-solution strategy nếu bạn đang l&amp;agrave;m việc
tr&amp;ecirc;n một team project lớn với nhiều project nhỏ độc lập nhau.&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Nếu bạn l&amp;agrave;m việc
tr&amp;ecirc;n một đội lớn, h&amp;atilde;y xem x&amp;eacute;t sử dụng nhiều solution, mỗi c&amp;aacute;i đại diện cho một
hệ thống con trong ứng dụng của bạn. C&amp;aacute;c nh&amp;agrave; ph&amp;aacute;t triển c&amp;oacute; thể sử dụng những
solution n&amp;agrave;y để l&amp;agrave;m việc tr&amp;ecirc;n c&amp;aacute;c phần nhỏ hơn của hệ thống m&amp;agrave; kh&amp;ocirc;ng c&amp;oacute; load tất
cả c&amp;aacute;c code giữa c&amp;aacute;c project. Bạn n&amp;ecirc;n thiết kế cấu tr&amp;uacute;c solution của bạn để bất
k&amp;igrave; project n&amp;agrave;o m&amp;agrave; c&amp;oacute; c&amp;aacute;c sự phụ thuộc được nh&amp;oacute;m lại với nhau. &lt;/p&gt;
&lt;p&gt;Điều n&amp;agrave;y cho ph&amp;eacute;p
bạn sử dụng c&amp;aacute;c project reference hơn l&amp;agrave; c&amp;aacute;c file reference. H&amp;atilde;y xem x&amp;eacute;t việc tạo
một master solution file m&amp;agrave; chứa tất cả c&amp;aacute;c project, nếu bạn muốn sử dụng file
n&amp;agrave;y để build to&amp;agrave;n bộ ứng dụng.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Lưu &amp;yacute;: Nếu bạn
đang build với Team Build (m&amp;agrave; dựa v&amp;agrave;o MSBuild),&amp;nbsp;
c&amp;oacute; thể tạo c&amp;aacute;c cấu tr&amp;uacute;c solution m&amp;agrave; kh&amp;ocirc;ng bao gồm c&amp;aacute;c referenced
project. Miễn l&amp;agrave; to&amp;agrave;n bộ solution được build đầu ti&am
