在本文的兩個部分中,我將介紹Team Foundation Server的一些核心特征,重點介紹在本產品的日常應用中是怎樣將這些特性結合在一起使用的。
作為一名軟件開發者,在我的職業生涯中,我常常會用到支持軟件開發過程的大量開發工具,如版本號控制工具、漏洞跟蹤包、生成腳本語言、單元測試框架和需求分析工具等等。在.NET平臺上,大量的支持工具可以非常好地獨立工作,可是,為了使得各種工具之間都夠互相協作,還是常常須要一些手動工作。
隨著Visual Studio產品線中Team Foundation Server組件的公布,微軟使得開發團隊在僵化的軟件project實踐應用中取得了巨大進步。這并非由于該產品包括的各種新增特性一定是最好的,關鍵因素是它的集成性。
Team Foundation Server起步
Team Foundation Server(TFS)是這樣一種server產品,它須要部署到軟件開發環境中,這樣開發者就能夠使用它提供的各種服務。由于TFS是設計用于大規模團隊,因而有兩種拓撲結構供選擇:雙server和單server。
在單server部署中,TFS被安裝在Windous 2003 server上,且該機器上已安裝了SQL Server 2005數據庫server、WebserverIIS以及windows SharePoint Services。這樣的類型的安裝能夠滿足大量用戶需求,而且適用于大部分條件。
雙server部署將SQL Server 2005 的數據庫引擎和分析服務組件分開安裝在不同的機器上,這樣就能夠實現可擴展性(通過增大用于大量用戶注冊操作的空間以及將處理負載的不同數據倉庫安裝在不同的機器上實現,這樣的機器最大可達64位。)
安裝了TFSserver后,client能夠通過安裝Team Explorer來訪問server。Team Explorer是一組組件,它包含簡單版本號的Visual Studio 2005(假設是在已經安裝了Visual Studio 2005的機器上就不過再加入�很多其它功能)和大量用于微軟的Excel和Project的插件,利用Excel和project能夠訪問存儲在Team Foundation Server數據庫中的數據。
Team Explorer可用于訪問Team Foundation Server的下面特性:
- 過程引導
- 工作項跟蹤
- 版本號控制
- 自己主動生成
- 報告
創建一個團隊項目
在開發團隊能夠使用Team Foundation Server之前,必須先創建一個團隊項目,團隊項目代表了一個全部團隊活動都在這里發生的管理單元。為了創建一個團隊項目,Team Foundation Server管理員須要打開Visual Studio 2005和 Team Explorer工具窗體(從視圖菜單)。當打開Team Explorer 窗體后,就能夠建立一個到server的連接。
右鍵單擊樹狀視圖中的server節點,TFS管理員就能夠選擇“新建團隊項目”。其實,這個選項一般是隱藏的,可見須要新建一個團隊項目的情況是非常少的。絕大部分情況下,一個軟件開發團隊在一個大型軟件的生命周期中僅有一個團隊項目。
創建團隊項目時,開發小組須要做的第一件事情是決定使用那個開發模型。
選擇開發模型
Team Foundation Server同意開發小組選擇他們想要使用的不論什么特定軟件開發方法。以下的列表中提供了兩種開發模型:
- 敏捷模型驅動軟件開發
- 能力成熟度集成模型軟件開發
每一個開發模型都有一組特有的定制特性,包含定義工作項(要做的事情、要確定的事情、需求等等),過程管理和報告。下表顯示了兩個默認的開發模型中不同工作項的分解:
敏捷模型驅動軟件開發 | 能力成熟度集成模型軟件開發 ? |
漏洞 服務要求的質量 風險 場景 任務 | 漏洞 改變請求 問題 需求 回想 風險 任務 |
在這樣的情況下即使工作項的數目和名稱存在差異,也應該指明使用這兩種開發模型通用方法,而不是開發小組來猜測他們該怎樣使用這些工作項類型,開發模型能夠包括一些可選的過程管理頁面。
?
假設對話框中的模型不適合你的詳細要求,能夠訂制它們以滿足你的要求。其實,已經有大量能夠獲得的第三方開發模型,如Scrum and process MeNtOR。?
訪問工作項存儲器
創建了團隊項目后,開發小組須要做的第一件事是分解已經創建的初始工作項集。這些工作項幫助開發者完畢一系列能夠使得軟件項目成功開始的活動,而且根據不同的開發模型選擇不同的工作項。通過展開團隊項目節點,就能夠看到工作項目錄,繼續展開然后打開查詢目錄可看到所有或部分工作項。
書寫定制得工作項查詢
最后須要書寫一個新的工作項查詢列表。新定義的查詢能夠放在“團隊查詢”和“我的查詢”這兩個目錄的不論什么一個。團隊查詢是一個可被項目小組中的全部開發者訪問的全局可訪問容器,我的查詢是一個由每一個程序開發員全部的私有查詢集。
我常常使用的一個實用的查詢是Recycle Bin query,這個查詢可用于打開近期關閉又須要又一次打開的工作項(偶然關閉工作項的情況時有發生)。第一步是從工作項節點的背景菜單中選擇“加入�查詢”。
在查詢編輯器打開后,簡單的用戶接口就能夠基于某些簡單的表達式從工作項列表中過濾出須要的項目。在上面的情況中,查詢設置為返回當前狀態為關閉的團隊項目中的全部工作項。?
應用Team Foundation Server的版本號控制
訪問了工作項,就能夠應用Team Foundation Server中的版本號控制。像TFS中的其他特征一樣,版本號控制功能位于SQL Server 2005之上,用于提供良好的性能和可擴展性(實際上,宿主在TFS中的版本號控制存儲器的大小預計有千兆字節。開發小組可能遇到的第一個與版本號控制相關的工作項是遷移已經存在的源碼,這個工作項提供了在遷移源碼是須要做什么的具體視圖。
?
配置一個工作區
在程序猿將文件加入�到版本號控制存儲器之前,須要將版本號控制存儲器的邏輯結構映射到本地機器上的文件系統。Team Foundation Server 引入了工作區的概念。工作區是物理位置和文件系統間的一組映射,一個文件系統與一個特殊用戶和計算機組合相匹配。在文件上進行工作的程序猿,他們是邏輯的進出工作區。為了建立一個工作區,程序猿須要雙擊Team Explorer中的源代碼控制圖標,到工作區下拉菜單。
?
我發現將整個源碼樹的根映射到本地驅動器上的一個詳細位置并將其作為唯一映射是最簡單的方法。我自己的方法是在我的數據驅動器的根文件夾上創建一個“沙盒”文件夾,在它的下級有一個子文件夾,將其命名為我連接到的TFSserver的名字。(我連接到了多個TFSserver,因此一定要注意避免混淆)。
建立了映射之后,瀏覽源碼控制瀏覽器將會列出源碼樹上邏輯位置的本地路徑。至此你就能夠加入�源碼到這個容器中。
程序猿面對的一個局限是他們不能將文件加入�到版本號控制存儲器的根中($/),且全部以及目錄都直接和某個特定團隊項目相關。這里面的邏輯是,一個Team Foundation Server可用于大量項目,每一個項目應該在它們自己的區域內工作。?
?
加入�源碼到Team Foundation Server
在Team Foundation Server中安排源碼有無數的方式,你為什么選用這樣的而不用還有一種,具體的原因說明超出本文的范圍。以下選擇的方式僅是一個用于示例。特別的地方是,我選擇加入�了三個字目錄:Trunk, Branches 和Releases,例如以下圖。
目錄加入�到版本號控制系統后,其它的程序猿并不會馬上看到,他們必須像文件一樣進行注冊。在本例中,在注冊前我將加入�一組解決方式和項目文件到這個容器中,然后一起注冊。
?
除了增強了性能和擴展性外,TFS將其版本號控制系統安裝在SQL Server 2005上,這意味著,進行原子提交和注冊的方法是可能的。也就是說,要么所有注冊成功,要么所有失敗。注冊能夠在源碼控制瀏覽器或解決方式瀏覽器上運行(或者在強制改變工具窗體中進行)
版本號控制系統和工作項存儲器在注冊時集成在一起。當注冊時,能夠將其與一個或多個工作項關聯。比如,由于這是剛引入源碼,所以我能夠瀏覽注冊對話框中的工作項視圖,選擇工作項3387和它關聯。注意當關聯工作項時不管默認的選擇怎樣都要將注冊行為設定為 “解決”,這樣做的目的是防止任務關閉工作項,因此較早建立十分實用的Recycle Bin 查詢。
?
建立一個注冊,就叫做一個改變集,一個源碼容器只是是一系列不斷彼此堆積起來的改變集。由于在數據庫中改變集是一個能夠區分的實體,因此能夠將數據和它關聯在一起,所以上面建立的改變集和工作項3387的關系能夠在改變集中瀏覽或者在工作項中瀏覽。以下的屏幕截圖顯示了連到工作項的改變集。
新概念:擱置集
和Team Foundation Server中的版本號控制相關的一個新概念是擱置集。擱置集的思想是程序猿在過周末歇息時,能夠將在工作日做的改變放在某個安全的地方。建立一個擱置集相當簡單,首先,程序猿在解決方式瀏覽器中的背景菜單中選擇“擱置必要的改變”,然后出現以下的對話框。
程序猿能夠給擱置集一個名字,以便以后能夠查找和恢復它,和注冊對話框一樣,擱置集也能夠加入�評論和關聯工作項。擱置集僅包括改動過的文件,由于改變集版本號是從版本號控制存儲器引出的,所以創建他們的相當簡單。
為了恢復擱置集,能夠選擇背景菜單中的“解凍必要改變”選項,程序猿能夠查找由他們或其它程序猿建立的擱置集。
其實擱置集能夠共享,這意味著它們能夠非常好的運行代碼預覽,增強單注冊點策略,這對一個特別項目在封裝時可能非常十分實用。
在本文的下一部分,我將具體介紹擱置集,TFS中完好的分支支持,TFS是怎樣支持自己主動生成的并介紹一下報告功能提供的功能。
?
功能介紹一:微軟最新配置管理工具
在當今的環境下,公司業務越來越復雜,軟件開發復雜度也越來越高,此時發如今眾多項目中時有這種現象發生:文檔散落在不同地方,代碼缺失,代碼和文檔不一致,同一系統多個版本號,各項目採用不同配置管理工具、無統一的規范,隨著時間推移我們的項目管理風險不斷上升、項目實施難度不斷添加�、項目實施質量難以掌控。怎樣可以高速地構造出高質量的應用系統來滿足不斷變化的業務增長所帶來的需求?我們急須要建立一套完好的配置管理體系,來提高生產效率,提高產品質量,終于實現企業效益最大化。現階段配置管理面臨的挑戰是:功能介紹二:外包管理工具