2012年11月4日 星期日

使用 Team Foundation Service

很多 .NET 開發人員聽過或是有用過 Team Foundation Server(TFS),這不只是一套版本控管的產品,TFS 也涵蓋了軟體開發管理的功能,如果只是把 TFS 單純當做版控工具來使用就大材小用了,而這一篇文章所要講的則是「Team Foundation Service」,簡單來說,Team Foundation Service 是 TFS 的雲端線上版,為何要加上「雲端」這名詞呢?原本的 TFS 就有提供線上版的功能,不過只存在於各自建置的 TFS 服務上,但是 Team Foundation Service 所強調的是「可以從任何地方進行存取,且支援各平台的開發環境及開發工具。

不久前 Microsoft Build 2012 (2012-10-31) 發佈了這一項 Team Foundation Service 的更新,這一項服務在去年的 Build conference 就可以經推出了預覽版(preview),一開始是採用「邀請碼」的機制,只有獲得邀請的人才有機會體驗這一項服務(就像一開始的 Gmail 與 Google Plus 一樣),到了今年的六月時就取消了邀請制,而讓這一項服務成為公開預覽版,任何人都可以試用,而現在這項服務更新為正式版本。

Team Foundation Service updates - Oct 31

Team Foundation Service 正式推出後就勢必會有費用上的考量,現在的收費方案還不是很明朗,如何收費以及什麼樣的費用可以使用到什麼樣的服務內容,這些要等到 2013 年時才會正式的發佈,現階段只知道對 MSDN 訂閱者是完全免費,不過 Team Foundation Service 卻蠻佛心的提供了免費使用的方案,這個免費方案(Free Plan)是可以讓五個以下的 User 而且是沒有限制專案數量的使用,是不是看了很心動呢?

 


2013-11-18 更新

在 2013-11-13 的 Visual Studio Launch 已經正式發表了「Visual Studio Online」的服務,Visual Studio Online 也就是這篇文章所說的 Team Foundation Service,並且公佈服務的收費方式,但仍然維持 Visual Studio Online Basic 的五人以下使用免費的方案,詳細內容可以查看以下文章:

Visual Studio Online

 

Team Foundation Service

https://tfs.visualstudio.com/en-us/

image

 

為什麼要用 TFService 呢?單純使用版控也可以自行架設 SVN Server 來做管理,又或者也是可以使用 GitHub 呀!

可以自行建立 Team Foundation Server,  SVN Server 或是 Git 來做版本管理,但必須另外準備機器並且要自行進行安裝與設定管理,如果是公司行號或是稍具規模的開發團隊就比較適合這樣的方式,但如果是小型團隊或是只有一個人呢?想必沒有多餘條件可以進行這樣的建置。

尤其是一個人開發,有些人會在開發電腦上自行建置 SVN Server,這也是可以,但是開發環境與版控 Server 都在同一台電腦上,這樣的風險就很高,萬一有個閃失,開發的程式碼與版控的原始碼都付諸流水,這樣的原始檔版本控管一點意義也沒有呀(小弟本人就有這樣的經歷)。

至於 GitHub,也是很多人的選擇,但是免費方案的使用則是必須將原始碼公開,對於單純只想要對開發專案做版本控管就不適合,除非你選擇付費,而像這類型的線上版本控管服務也是有很多,甚至有些服務也是有提供免費方案,但就會有很多的限制,例如使用人數只限一人或是有限制簽入的專案數量等,限制東限制西,無非就是要你掏錢出來買服務,但「使用者付費」是理所當然的,無論如何只要記住一句話「免費的,最貴」!

而微軟所推出的 Team Foundation Service 雖然不是個免費的服務,但是卻提供了不錯的免費使用方案,

Free Plan:https://tfs.visualstudio.com/en-us/pricing/information/

image

Free Plan 是提供五人以下團隊來使用,且沒有專案數量的限制,除了基本的版本控管之外,也提供了 Work Item 的追蹤記錄功能,每個專案也可以選擇使用何種開發方式(Scurm or Aglie or CMMI)等,光是看到沒有專案數量限制這一點就很吸引人了。

image

可以使用 TFService 的開發工具為 Visual Studio 2012(Ultimate, Premium, Professional),另外使用 Visual Studio Express 2012(for Window 8 , Windows Desktop, Windows Phone, Web)也都可以使用 TFService 的服務,而 Visual Studio 2010 同樣也可以使用(我的 VS2010 有更新到 SP1),另外除了 Visual Studio 2012, 2010 外也有支援 Eclipse 與 XCode。

image

其餘相關資訊就請各位到 TFService 的網頁上看個仔細囉。

 

至於 Team Foundation Service 有些什麼樣的功能呢?我建議各位可以先詳細閱讀網站上的「fetures」,

https://tfs.visualstudio.com/en-us/home/features/feature-tour/

在「features」的頁面裡用以下的主題來說明 Team Foundation Service 的功能,

  • Cloud-powered source code management
  • Team collaboration and agile planning
  • Build, Test, Deploy!

    image

    image

    image

     

    看了這麼多之後一定會有人躍躍欲試,但怎麼入門呢?別擔心,在網站有「LEARN」這個單元,在這個單元中鉅細靡遺地教你怎麼使用,

    https://tfs.visualstudio.com/en-us/learn/start/get-started/

    image

    如果還沒有申請使用 TFService 的朋友進入到 TFService 時應該會看到如下圖所標示的「Sign up for free」,

    image

    只要你有 Windows Live ID 帳號就可以申請使用 TFService,而 Windows Live ID 最常見的就是 hotmail 帳號,很多人一開始使用 MSN 時就有註冊,

    https://accountservices.passport.net/ppnetworkhome.srf?lc=1028&mkt=ZH-TW

    image

    註冊 Windows Live ID

    如果你已經有了 Windows Live ID 後就可以申請使用 TFService 服務,以下為建立帳號的畫面,在 Account URL 的欄位中填入一個日後你想要使用的名稱,這個名稱可以跟你的 Windows Live ID 不同,可以選個比較好記或是適合開發團隊的名稱,

    image

    因為現階段一組 Windows Live ID 只能申請一次 TFService 的服務,所以就會出現以下的畫面,而在以後的收費服務方案正式公布之後或許會有所調整,

    image

    輸入你所想要的 TFService Account URL 名稱後再按下 Create Account,大約不到一分鐘的時間(看你的網路速度而定)就完成建立並且將頁面轉到個人的TFService 服務入口網頁,

    image

    至於怎麼使用的話,我會建議各位先看「Beginner's guide」

    「Beginner's guide」的內容是預設連結到「Connect Visual Studio to TFS」,

    image

     

     

    建立 Team Project 並在 Visual Studio 2012 中簽入專案原始碼

    在「Beginner's guide」的「Create a team project」說明中就很清楚說明了如何在 TFService 建立一個新的 Team Project,所以這邊就不再重複說一次,但是在下一個單元「Upload your code」這邊就有可能會讓人摸不著頭緒,對於曾經使用過 TFS 的開發人員還可以自行摸索出來,但對於沒有接觸過 TFS 的開發人員就會搞不懂了,所以我就特別說明一下這一個步驟。

    首先我這裡先建立好一個 Team Project,

    image

    image

    接著就是開啟 Visual Studio(我這邊所使用的是 VS2012)並且開啟建立好的專案,

    image

    再來就是要把這個專案加入到 TFService 中,

    image

    接下來會跳出「連接到 Team Foundation Server」的視窗

    SNAGHTML66e84ab

    按下「伺服器」的 Button

    SNAGHTML689fb70

    接著出現「新增/移除 Team Foundation Server」的視窗,假如你之前沒有使用過 TFS,那麼清單就會是空空的,

    SNAGHTML68b6411

    接下來選擇「加入」Button

    SNAGHTML6920c42

    出現「加入 Team Foundation Server」視窗

    SNAGHTML692737c

    這邊就填入一開始我們所申請的 TFService Account URL,

    「https://你所使用的名稱.visualstudio.com/DefaultCollection」「https://你所使用的名稱.visualstudio.com/」,記得前面的「https://」是需要的,

    SNAGHTML6983fef

    填寫完成之後就按下「確定」Button,接著就會出現「登入 Team Foundation Server」視窗,在這邊就輸入你申請 TFService 時所使用的 Windows Live ID,

    image

    完成加入 Team Foundation Server,完成加入 TFS 之後就可以點選「關閉」Button

    SNAGHTML69e59b6

    回到「連接到 Team Foundation Server」視窗,可以看到已經選擇了剛剛加入的 TFS 並載入 Team Project 清單,這當中也包含了我們所建立的「MVC_First」,

    image

    此時就勾選「MVC_First」項目並且點選「連接」Button,

    image

    再來會出現「將方案 MVC_First 加入至原始檔控制」視窗,這邊是要確定我們的程式原始碼方案要放在 Team Project 下的那一個地方,依據我的習慣,我會把程式碼的方案給另外建立一個「Solution」資料夾,專門放置程式碼方案,建立好資料夾之後並反白選擇「Solution」資料夾,

    SNAGHTML6b9064a

    按下「確定」Button 後就結束了為 Solution 加入原始檔控制的設定,此時原本的「將方案 MVC_First 加入至原始檔控制」視窗會關閉,接著可以在 VS2012 的方案總管中看到每個檔案旁邊多了綠色「+」符號圖示,這表示檔案已經加入原始檔控制,但是還沒有把檔案給簽入到 TFS 上,

    image

    要知道有多少的程式檔還沒有被簽入,可以開啟「Team Explorer - 暫存的變更」就可以看得到,

    如果沒有開啟「Team Explorer」,可以在「檢視 > Team Explorer」點選開啟,

    image

    「Team Explorer」會跟方案總管出現在同個顯示區裡的其中一個頁籤,

    image

    最後我們就先做第一次的簽入,這邊提醒一下大家,把原始檔簽入到 TFS 的時候最好填寫「註解」,這樣才可以知道每次簽入的目的,而簽入原始檔也不要累積了一堆變更後才做一次的簽入,這樣就失去了版本控管的意義,把簽入變更的範圍縮小,如此各個版本的變化也才能夠做清楚的辨識,

    image

    確定好要簽入的變更以及填寫好簽入註解之後就點選上方「簽入」的 Button,這樣就把原始碼簽入到 TFService 了,

    簽入前的確認

    SNAGHTML6cff3c4

    開始簽入

    image

    簽入中

    image

    完成簽入

    image

    回到「方案總管」可以看到原本每個檔案的旁邊都有綠色「+」符號圖示都已經變成了藍色鎖頭的圖示了,

    image

    接著回到 Team Foundation Service 的 Account 入口,進入「SOURCE」中就可以看到剛剛我們所簽入的原始碼,

    image

     

    好了,就說到這裡吧,TFS 的管理並不是三言兩語或是一篇文章就可以清楚說明的,所以 Team Foundation Service 網站中的「LEARN」教學單元就需要好好地仔細看看,在「Visual Studio」的教學項目中以幾個基礎的操作來做說明:

  • Connect Visual Studio to TFS
  • Upload your code
  • Check files in and out
  • Get your code reviewed
  • Create a unit test
  • Run unit tests
  • Run unit tests automatically with local builds
  • Use other unit test frameworks
  • Use Git and Visual Studio with TFS

    希望大家可以好好的詳細閱讀並了解。

     


    這一篇就說到這裡為止吧!現在的開發人員大多數都已經有版本控管的觀念了,而 TFS 所提供的並不只有版本控管這一個功能而已,還包括了軟體開發的管理、單元測試、Build、Code Review 等,當專案開發規模越來越大的時候就必考慮到上述的種種環節,對於小型開發團隊來說,自行架設 TFS 就不是一件容易的事情,更何況還要管理與使用了,現在微軟提供了這麼好的一個服務,尤其對小型開發團隊來說真的是一大福音,無論是不是要進行軟體開發管理或是單元測試,但至少可以使用 Team Foundation Service 來做程式原始碼的版本控管,這麼好的服務是真的要好好利用!

     

    延伸閱讀

    Team Foundation Service 使用 Git 與 TortoiseGit

     

    以上

  • 7 則留言:

    提醒

    千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。