2010年1月12日 星期二

自訂 Visual Studio Project Template (1)

開發的初期,如果能自訂一個開發用的 Project template,之後所有的專案都能使用該 template,就能產出類似的產品。因此,會有相當的效益。

而在 Visual Studio 2008 上製作一個 Project Template 可以說是極為簡單的。

基本

現在來看一下已經存在的Project template 會在哪裡呢?請到 C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp\Web\1033 下尋找。我的是 Windows 7 x64 + 且裝Visual Studio 2008 英文版。我習慣使用c#,此範例將 study web application,故路徑可能與讀者的不同。

下圖列出的,就是使用 Visual Studio 2008 開發 Web 時所出現的項目
image image

將其中一個最新的 MVC 2.0 的 MvcWebApplicationProjectTemplatev2.0.cs.zip 來解壓出來看一下吧。毫不意外地,裡頭是 MVC 2.0 習慣看到的檔案,外加一個 vstemplate 檔。

image

將這個 vstemplate 檔案以 notepad 打開來看一下,發現是一個簡單易懂的 xml 檔。詳細的 schema 可參考 Visual Studio Template Schema Reference。再打開 Global.asax.cs,裡頭的程式碼就是我們平常看到的 mvc RegisterRoutes 。注意一下反白的 $globalclassname$ 這個參數。原來以 Project template 產生一個 Project 時, Visual Studio 只是以很簡單的方式將一些參數置換掉而已。預設可以使用的參數請參考Template Parameters

image

實作

要產生一個 project template 也真的很簡單,Visual Studio 已經幫我們想到了。

首先新增一個 WebApplication 專案,並且增加一個Vender.aspx 網頁,裡頁寫公司的名稱。

image image
我的美工能力當然不在話下啦!嗚。
現在我們就把這樣的內容要製作成 project template 了。使用 File/Export Template,選擇 Project template

image image

修改Template name 為  CCWebApplication後,按 Finish 鍵。
image

接著,Visual Studio 會產生一個 CCWebApplication.zip 到

Documents\Visual Studio 2008\Templates\ProjectTemplates\ 下,此處為正式的位置,同時也會產生一份到 Documents\Visual Studio 2008\My Exported Templates 下。

之後,新增 Project 時就可以在 MyTemplate 下找到 CCWebApplication了。

image

新增專案後,就是一個一模一樣的專案了。

結論

這樣的過程,可以很快地產生一個Project。 但是很可惜的是,無法產出一個 solution,這是將來要努力的地方。

沒有留言:

Share with Facebook