使用 Visual Studio 2010 撰寫更簡潔的程式碼
Doug Turnure
Microsoft 自首次推出 Visual Studio 至今已有 13 年,Visual Studio 是 Microsoft 長期經營、整合了開發環境的旗艦產品。它在 1997 年首次發表之時,便開始將第 5 版的 Visual Basic 和 Visual C++ 組合成一般 IDE。它內含一組包括 Visual InterDev、Microsoft Transaction Server 和 Visual SourceSafe 5.0 在內、曾經頗負盛名的科技產品企業版。當年發表該組合產品的主要目的,是為了協助開發人員將分散式應用程式與元件建置為主從式應用程式和 Web 應用程式。
到目前為止我們在開發人員的工作上已經有了很大的進展。雖然經過改良的主從式架構和 Web 架構仍然主導程式碼的編寫,但是這些應用程式的範圍和需求,已經遠遠超出同質系統以及強勢型態的物件對物件呼叫的範圍了。
代表性狀態傳輸 (Representational State Transfer,REST) 和相關技術現在已經成為主流基本通訊機制。應用程式開始將主力擺在雲端式架構,而將延展性、可靠性和資料安全性交給協力廠商負責。Web 應用程式模式也逐漸向商品化的樣式和標準靠攏。就連硬體也在不斷改變,處理器速度因為挾帶目前晶片技術的威力,已經接近理論性高峰,而多核心系統則是幫助您從電腦壓榨更多效能的另一種新手段。
Visual Studio 2010 已經背負它對軟體和軟體開發人員前所未有的要求,正式進入這個世界。它以豐富嶄新的功能,準備在這個跨越平台、核心、樣式及標準的世界中,沉著迎接針對軟體與日俱增的要求。本文將介紹 Visual Studio 2010 迎接現今挑戰的幾種不凡的表現,看看它如何協助開發人員建置解決方案,在他們置身的複合式產業中茁壯成長。本文著重側寫開發人員能夠立即應用在日常工作的部分功能,而不會概括全述所有的功能。如果您需要完整的功能清單,請參閱產品文件。
Visual Studio IDE 改良功能
由於軟體開發愈來愈複雜,開發人員經常必須面臨提高工作效率的壓力。Visual Studio 2010 在編輯器本身增加了許多新的視覺化功能,有助於您提升工作效率。我會在本節詳細討論其中三項功能。
Visual Studio 2010 IDE 其中一個較簡單的改良功能,是將子視窗拖曳到 IDE 父視窗之外。由於監視器已經成為大家負擔得起的消費品,開發人員多半能在工作運用兩部以上的監視器,而這項功能就是讓您將編碼和設計視窗擴展到多個螢幕。
用法 只要按一下視窗的索引標籤,將它拖曳到 Visual Studio IDE 視窗外面即可。如果要重新固定視窗,只要按一下標題列,將它拖回 IDE 區,再將標題列對齊其他視窗的索引標籤即可。在重新固定視窗時,當您妥善對齊視窗之後,就會收到一則視覺提示:視窗會呈現陰影,表示只要您一放手,視窗便能重新固定。**[圖 1]**顯示程式碼視窗被拉出 IDE 所含的視窗之外。
[圖 1] 從 IDE 解開一個視窗
Visual Studio 2010 編輯器另一個不錯的新功能是方塊選取,然後編輯一個垂直區塊的文字。有時候您必須將編輯功能套用到冗長的項目清單,做著做著就會發現自己一直在按著熟悉的快速重複鍵盤 (例如,反覆按「n+向下鍵+向後鍵」)。雖然這可能不是您最常碰到的問題,不過偶爾一次也夠您受了,許多開發人員都希望自己可以選取整個垂直區塊,然後把相同的變更一次套用到所有的字行上。Visual Studio 2010 正可提供這種區塊編輯功能。
用法 按住 Alt 鍵,然後選擇您要編輯的垂直區塊。反白標示的區域就像一行編輯區,只是編輯動作是在所有選取的編輯行上同時複製,如 **[圖 2]**所示。
[圖 2] 方塊選取
另外還有一項程式碼參照用的反白標示功能也非常有用。當您在編輯器中按一下變數、物件、方法、內容、類型或其他符號時,程式碼中所有對該符號的參照都會全部反白標示出來,讓您快速找到該項目目前應用的地方。
用法選擇一個類型/變數/方法/任何項目,只要按一下這個項目,其他執行個體就會全部反白顯示。 **[圖 3]**是一個名為 jumpList 的變數,請注意,按一下滑鼠選取它之後,程式碼中所有用到它的地方全部都會呈現灰色陰影。
[圖 3] 反白顯示的符號
平行程式設計的支援
接下來我要進一步深入介紹的重要 IDE 新功能,是對平行程式設計的支援。Visual Studio 2010 附隨診斷工具,可以幫助您偵錯和分析平行應用程式。不過在講解工具之前,我先簡短討論一下什麼是平行程式設計,這樣您才能了解執行階段和程式庫如何實作這些新功能。
現在許多標準開發人員都採用多核心機器 (也就是說,都有兩個以上的個別處理器),而且目前的趨勢也傾向具有多個核心的機器。除了純粹創新之外,減少耗電量以及時脈速度、耗電量、熱量的現實限制等因素,都會影響多核心系統的趨勢。有些產業領導人預言未來幾年內,主流機器將會增加到 50 個以上的核心。
這就牽涉到一個特有的問題。在多核心革命之前,機器速度較快,代表應用程式的執行速度較快。但是仰賴單核心的軟體 (就像當前大多軟體一樣) 就無法充分利用這種新架構。因此發展多核心架構就成為當務之急。在 Visual Studio 2010 和 .NET Framework 4 之前,要撰寫可以使用多核心的程式碼是很困難的。為了面對這項挑戰,此版本對執行階段做了一些更新 — 以及一些新的型別、工具和程式庫 — 以協助開發人員充分發揮多核心系統的優點。
.NET Framework 4 包含了 Parallel Extensions,當中共有三個元件:一個新 Task Parallel Library (TPL)、一個新 PLINQ Execution Engine 以及少數的新 Coordination Data Structures (CDS)。TPL 有兩個主要類別。其中一個是 System.Threading.Tasks.Parallel,它含有平行版 For 和 ForEach 方法等平行建構。PLINQ Execution Engine 則正如其名,是一個平行處理版的 LINQ to Objects,它以 ParallelEnumerable 類別取代 LINQ 的 Enumerable 類別。PLINQ 與 LINQ to Objects 的用法類似,但不盡相同。最後,CDS 包含一組安全執行緒集合以及同步處理原始物件,目的在簡化平行處理案例。CDS 包含您在安全執行緒集合 (例如 ConcurrentDictionary、ConcurrentQueue 和 ConcurrentStack) 以及同步處理類型 (SemaphoreSlim、SpinLock、SpinWait 等) 中預期的常見播放程式。
Visual Studio 2010 是透過新的平行堆疊視窗 (Parallel Stacks Window)、平行工作視窗 (Parallel Tasks Window) 和並行處理視覺化檢視 (Concurrency Visualizer),產生對 Parallel Extensions 的支援。這些視窗的目的是讓您更加了解各種作業在某個指定時間的執行位置。平行堆疊視窗主要在示範多個工作如何透過其專用路徑及工作的顯示呼叫堆疊來運作。您可以選擇將它視為一種工作抽象化概念,也可以直接將它視為執行緒。[圖 4] 是在執行階段,顯示工作抽象化檢視選項的平行堆疊視窗。
[圖 4] Visual Studio 2010 中的平行堆疊視窗
平行堆疊視窗是專門為支援新的工作型程式撰寫模型而新增的。當應用程式在中斷模式時,您就可以利用這個視窗查看工作清單、每個工作的目前執行方法、隸屬的執行緒、應用程式網域、工作識別碼等項目。這個視窗不只是一個靜態檢視,您還可以按一下特定的工作,接著 IDE 便會將目前執行的程式碼調到前景,顯示其狀態。[圖 5] 是針對一個範例應用程式示範這個視窗。只要將它和平行堆疊視窗並排使用,執行中的程式碼立即一目瞭然。
[圖 5] Visual Studio 2010 中的平行工作視窗
最後,如果您要再深入分析平行應用程式,還可以利用 Visual Studio 2010 一種新的並行處理視覺化檢視。不過這個視窗比其他兩種視窗複雜得多,而且目前不支援 Web 專案。其目的是讓您深入了解在多核心和多執行緒案例當中,應用程式與其環境的互動。其中有三個檢視:
- [CPU 使用率] 檢視內容是處理器活動。
- [執行緒] 檢視內容是應用程式中執行緒的互動方式。
- [核心] 檢視內容則特別解說執行緒跨越核心移轉的方式。
並行處理視覺化檢視有賴於 Windows 事件追蹤,也就是說,它需要在 Windows Vista 以上的版本執行。這些檢視 (自基本文字到完整的圖形化顯示畫面都有) 會找出因為 CPU 間負載分配不佳、執行瓶頸、爭用和其他潛在的效能抑制因素,而使程式碼缺乏效率的情形。[圖 6] 是並行處理視覺化檢視針對分析的應用程式顯示其執行緒使用率。
[圖 6] Visual Studio 2010 的並行處理視覺化檢視
Web 更新
除了我先前討論過的一般更新之外,還有一些重要的改良功能適合改用 Visual Studio 2010 的 Web 開發人員使用。當然,新的模型檢視控制器 (Model-View-Controller,MVC) 程式撰寫模型工具是新加入的功能,我將在下一節說明。除此之外,它還提升了用戶端和伺服器端 Web 技術的 Web 開發體驗,並且加入新的單鍵 Web 開發模型。不過我要先從 ASP.NET AJAX 和 IDE 相關的新功能開始講起。
其實 ASP.NET AJAX 工具早在 Visual Studio 2008 起就已經附隨在 Visual Studio 了。但是以伺服器為中心的範本一直讓部分開發人員覺得它對於用戶端開發並沒有太大的助益。用戶端功能早已存在多時,只是 Visual Studio 2010 另外加入其他支援,才讓 ASP.NET AJAX 的用戶端和伺服器端功能真正浮上檯面。用戶端範本和控制項是新功能清單中相當重要的一部分,因為它們可讓您充分利用改良的用戶端資料存取功能,但是其他還有許多新的項目 (例如 jQuery 整合) 也很值得一提。
在 Visual Studio 2010 和 .NET Framework 4 之前,如果您要使用軟體下載以及整合 Microsoft AJAX Library 與 Visual Studio,必須在加入 ScriptManager 時,把所有內容全部插入網頁中。但是這一版不但結合了 Microsoft AJAX Library 和 AJAX Control Toolkit,同時 Microsoft AJAX 小組也將程式庫重整一番,因此現在您可以只取需要的部分,而不必被迫面對不是一無所有就是照單全收的兩難。您可以指定一個模式,要求 Microsoft AJAX Library 所有的內容、什麼都不要求,或是只要求指定的部分。
用法 您只要在 ScriptManager 標記中加入 AjaxFrameworkMode 屬性即可。您可以將它設為 Disabled (停用)、Enabled (啟用) 或 Explicit (明確):
<asp:ScriptManager ... AjaxFrameworkMode="Disabled"/>
Disabled 表示您不要載入 Microsoft AJAX Frameworks。Enabled 表示您要保留舊版現有的操作方式 (載入完整的程式庫)。Explicit 則可以指定您要載入哪些 Microsoft AJAX Library 檔案。您可以在執行階段,以 [檢視原始檔] 在載入的網頁檢查這一點。
同樣的,新的 Content Delivery Network (CDN) 屬性也可以使用最新版的指令碼庫。之前您在專案中加入的是 jQuery 或 Microsoft AJAX 等指令碼庫,而且您所加入的版本,是該版次被迫使用的版本。不過現在您可以要求從 Web 下載最新版本,而不只是受限於一種固定版本。
用法 您可以在 asp:ScriptManager 標記中加入 EnableCdn 屬性,將它設為 “true”:
<asp:ScriptManager ... EnableCdn="true"/>
ASP.NET AJAX 4.0 也可以讓您純粹定義用戶端範本。您設定一個預留位置 <ItemTemplate>,然後讓用戶端根據執行階段值 (例如,受限於 JSON 的物件) 進行轉換工作。執行階段會代替您執行個體化,您不必為了讓它運作而進行 DOM 編碼。
在 ASP.NET AJAX 4.0 中最有用的新功能之一,是改良後的用戶端資料存取,它採用新的 DataView 控制項和用戶端範本,在用戶端提供方便的存取方式以及雙向資料繫結。它是專為使用 ASMX Web 服務、WCF 服務、WCF 資料服務、MVC 控制站或是任何會傳回 JSON 的任何服務而設計,而且完全從用戶端程式碼完成這個動作。
DataView 控制項是支援用戶端範本的主要控制項。其功能與 ListView 控制項相仿,只不過它完全在用戶端程式碼中實作。它讓您在用戶端定義範本、在執行階段提取資料,然後在顯示記錄時套用格式化。
用法 您可以利用一種非常基本的設定來做準備:在 Northwind SQL 資料庫上建立一個實體資料模型,並且採用一種普通的 WCF 資料服務直接使用資料,不做任何修改,也就是說「員工」表格應該是可供查詢的。您可以配合這些條件,選擇您希望作為範本的控制項,賦予它一個 ID 屬性以及一個 class=“sys-template” 的屬性。當您建立資料檢視時,ID 是代表繫結所用資料的目的地。您可以手動繫結,不過也可以使用語法,以大括弧直接將欄位名稱括在標記中,欄位名稱則會在擷取和繫結資料時更換新值。雖然其他多種語法都能撰寫您要執行的指令碼和標記,但其中較清晰易懂的方式還是使用雙大括弧,如 [圖 7] 所示。
[圖 7] 以 DataView 控制項改良存取資料的方式
...
<script type="text/javascript">
Sys.require([Sys.components.dataView,
Sys.components.adoNetServiceProxy], function () {
var adoNetDataServiceProxy =
new Sys.Data.AdoNetServiceProxy('NWDataService.svc');
Sys.create.dataView("#employeetemplate", {
dataProvider: adoNetDataServiceProxy,
fetchOperation: "Employees",
autoFetch: true
});
});
</script>
</head>
<body>
<div id="employeetemplate" class="sys-template">
<span>{{ FirstName }}</span><br/>
</div>
</body>
另外還有一個值得注意的 ASP.NET AJAX 項目是,它與 jQuery 的整合更加密切。為了讓 jQuery 開發人員充分利用 ASP.NET AJAX 中的控制項,所有的 AJAX Control Toolkit 控制項現在都自動以 jQuery 外掛程式的形式出現。換句話說,jQuery 開發人員可以直接使用這些控制項,而不必更改它們的開發樣式。您其實可以把它們視為 jQuery 的擴充功能。
除了 ASP.NET AJAX 之外,其他還有幾種不錯的 ASP.NET 程式設計加強功能。以 Web Form 進行 URL 路由,可以讓外界對 URL 形成一種清晰邏輯的印象,亦即 URL 比以往更方便搜尋引擎最佳化 (SEO),以及更方便解讀。您可以在 global.asax 檔案定義路由,將要求對應到適當的資源。這樣不僅可以協助改善 SEO,網頁也可以採用使用者能夠預測的路徑,如 [圖 8] 所示。
[圖 8] Visual Studio 2010 的 URL 路由改良
New URL Routing Format:
/CurrentPosition/Bob/Tester
Old URL Style:
/CurrentPositions.aspx?name="Bob"&role="Tester"
雖然還有許多像是入門網站、更簡潔的 HTML 以及更小型的組態檔等與 Web 相關的加強功能值得一提,但礙於篇幅所限,無法在此一一討論,所以接下來就直接講解 MVC 工具的新增功能。
MVC 整合
許多人喜歡採用 MVC 架構模式來建置方便維護和測試的 Web 應用程式,這些應用程式具有完整定義的界限,並且依照功能將程式碼明確分門別類。MVC 是 ASP.NET 程式設計的一種樣式,可以充分發揮 ASP.NET 架構的優點。它是 Web Form 之外的另一種選擇,但是不能取而代之,這兩種模型都非常適合特定的案例和技術使用。開發人員現在已經可以選擇 Web 應用程式的程式撰寫模型,這兩種模型都是以 ASP.NET 為基礎,而且完全受到 Visual Studio 2010 的支援。
第 2 版的 MVC 及其附屬工具 (建置於 Visual Studio 前後版本之間) 已經連同兩個專案範本一起整合到 Visual Studio 2010 IDE 中,如 [圖 9] 所示。
[圖 9] Visual Studio 2010 中的 MVC 專案範本
Visual Studio 2010 的 MVC 程式撰寫模型著重在三種主要改良功能。第一種改良功能是能夠更清楚的區隔問題。也就是說,您可以透過新的 RenderAction 方法 (用來撰寫商務邏輯區隔),以及 Area (讓您建立「子應用程式」來分割應用程式的功能) 等功能,寫出更容易維護的程式碼。第二種改良功能是透過資料註解簡化驗證作業,以及加強對用戶端的驗證規則反昇。最後一種改良功能是改善 協助程式。現在協助程式有強型別和範本化兩種,可讓您自動產生實體的 UI。
用法 RenderAction 可以更方便的讓多個控制站共用同一個邏輯。如果要從您的檢視呼叫 RenderAction 方法,請使用下面這段指令碼 (該指令碼會在 HRController 內呼叫 NewEmployee 動作):
<% Html.RenderAction("NewEmployee" "HRController"); %>
SharePoint 整合
另一個將工具整合到 Visual Studio 2010 的重要功能,是加入 SharePoint Foundation (前身是 Windows SharePoint Services) 的範本。Visual Studio 2010 附隨了 12 個 SharePoint Foundation 的新範本,另外還有 SharePoint 2007 Sequential 和 State Machine Workflow 範本 (範圍從 Visual Studio Tools for Office 增益集到 Visual Studio 2008 應有盡有)。這些範本強調生產力和彈性部署,將 SharePoint 的開發提高至頂級狀態。
SharePoint Foundation 本身的核心使用率已經逐漸轉變,它以站台模型、使用者管理及清單基礎結構等元件,從您可以擴充的單純入口網站,轉移為從頭開始建置應用程式用的平台,在資料存取、工作流程和企業營運應用程式整合方面都有長足的進步。另外,部署模型也比以往更有彈性。現在許多公司都大量安裝 SharePoint,因此在進行新 SharePoint 應用程式的臨機操作部署時必須更加小心。有了新的彈性部署模型之後,您就可以練習將新的安裝架構安裝到特定群組,而不要求它們必須部署到完整的 SharePoint 生態系統上。
Visual Studio 2010 已經大幅改善建置 SharePoint 應用程式的工具選項。沒錯,這項強大的功能不是今天才有,只是剛開始的學習過程相當困難。但是本版工具為您內建了絕佳的 SharePoint 支援,其中包括完整的整合式偵錯、彈性部署工具以及 Business Connectivity Services (BCS)、工作流程、LINQ to SharePoint 和視覺 Web 組件的改良式設計支援。另外,從 SharePoint Designer 工具匯入項目到 Visual Studio 2010 的作業也比以往更加順利。
用法 在具有全新設計介面的 Visual Studio 2010 上建置視覺 Web 組件,可達事半功倍之效。一開始請先選擇啟動一個新專案,然後選擇 [SharePoint] | [視覺 Web 組件],如**[圖 10]**所示。
[圖 10] Visual Studio 2010 中的 SharePoint 視覺 Web 組件範本
請注意,雖然還是得將 SharePoint 安裝在開發人員機器上,不過已經不如以往那麼困難。如果您是使用 Windows Vista SP1 (或更新版) 或 Windows 7,現在就可以將 SharePoint 直接安裝在該部機器上,而不必擔心需要安裝 Windows Server 或設定 VM。
系統會出現提示要您告訴 Visual Studio 2010 要將解決方案安裝在哪裡進行偵錯。開啟編輯器之後,您可以按一下左下角的 [設計] 索引標籤,開始視覺化建構您的 Web 組件,方法很簡單,只要把控制項拖放到介面上即可。請注意,如果工具箱還沒有顯示出來,您可能需要開啟它 ([檢視] 功能表 | [工具箱])。
Windows 7 開發
由於 Windows 7 大受使用者喜愛,開發人員也許會開始在他們的應用程式增加一些功能,以充分發揮這該平台豐富的使用體驗。開發人員可以用許多方法來增加 Windows 7 專屬功能。其中最熱門的新功能之一就是新的工作列:由於使用者從早期就開始使用它,再加上它很容易程式化,因此很適合搭配 Windows 7 專用的應用程式使用。
在舊版的 Windows 上,工作列取代了 [快速啟動] 工作列。工作列是沿著 Windows 7 畫面底端 (預設) 執行,並且可在上面「釘選」應用程式。除此之外,它還容許應用程式整合捷徑清單 (這些清單是快速連結,可以在固定圖示上按一下滑鼠右鍵取得) 與工作列預覽 (應用程式開啟視窗的縮圖) 等元素。工作列很容易程式化,無論是從 Managed (透過 Windows 7 API Code Pack) 及 Unmanaged 程式碼都一樣,而且它正好落在希望充分利用建置 Windows 7 應用程式的開發人員的交叉線上。
用法 使用者可以在工作列上釘選和取消釘選應用程式,方法很簡單,只要在 [開始] 功能表、檔案總管或工作列本身,以滑鼠右鍵按一下圖示即可。如果您要釘選應用程式,請在應用程式 (不是文件,而是應用程式本身) 圖示按一下滑鼠右鍵,然後選 [釘選到工作列]。如果要從工作列移除它,也是採取同樣的動作,只是要選 [將此程式從工作列取消釘選]。
工作列改善了應用程式的外觀和功能。任何執行中或未執行的程式都可以釘選到工作列。釘選的圖示可以啟動應用程式,也可以代表最小化的視窗。應用程式執行時,如果您將游標移到工作列的圖示上面,就會出現一種漂亮的視覺效果,稱為熱追蹤。熱追蹤會採用顯眼的圖示顏色,並且用它反白顯示圖示。當然,您也會在釘選的圖示上方看到應用程式執行個體的預覽畫面。
工作列也有一個稱為 Aero Peek 的功能。要查看此功能,可以將游標移到視窗預覽上方,所選預覽的視窗就會跳到前方,其他視窗則全部變成暗灰色。這樣使用者就可以快速看到隱藏或最小化的視窗,不需轉移焦點,也不需按任何按鍵,相當方便。
追蹤應用程式時,執行中應用程式的執行個體會取得一個應用程式識別碼,並且對齊它們在工作列中的應用程式圖示。如果您是開發人員,可以使用 TaskbarManager 和 JumpList 類別,透過程式設計的方式與您應用程式的 Taskbar 互動。請注意,要使用這些類別,必須從 code.msdn.microsoft.com/WindowsAPICodePack 下載和參照免費 Windows 7 API Code Pack 的組件。
這個 Code Pack 是由 Windows SDK 小組建置,可讓您透過程式設計的方式使用工作列。它同時也包含好幾個具有 Windows 7 增強功能的範例應用程式。您實際上是在程式碼中,對編輯好的組件設定參考 (在這個例子當中是瀏覽工作列專案)。
您也可以針對一個應用程式的多個執行個體,提供相同的應用程式識別碼或不重複的應用程式識別碼,讓您在工作列上將它們加以組合或區隔。如果要對一個應用程式的不同執行個體提供不重複的應用程式識別碼,必須在呼叫 Application.Run 之前,先設定應用程式識別碼。如果您只想在工作列提供子視窗它們自己的圖示,可以隨時變更它們的應用程式識別碼。
用法 如果要在工作列提供子視窗它自己的圖示,請使用 JumpList 類別並呼叫靜態方法 CreateJumpListForIndividualWindow,傳遞子視窗應用程式識別碼和該視窗的控制代碼。程式碼如下所示:
childWindowJumpList = JumpList.CreateJumpListForIndividualWindow(
childWindowApplicationId, this.Handle);
Windows Azure 整合
雲端運算是一種快速掘起的解決方案,是傳統內部和虛擬主機服務架構解決方案的替代選擇。簡單的說,它是採用部分或所有的軟體解決方案,讓公司以隨選縮放以及高度可靠性來控管大型資料中心的所有內容。Windows Azure 平台是 Microsoft 的雲端運算與服務平台。它是由三組服務所構成:Windows Azure、SQL Azure 和 Windows Azure Platform AppFabric。
Windows Azure 是裝載應用程式的環境,您可以將它視為雲端中的作業系統。SQL Azure 基本上是雲端中的資料庫。而 Windows Azure AppFabric 則是一組常見的建置區塊,由裝載在雲端中的應用程式所使用。Windows Azure AppFabric 目前包含兩種服務:存取控制服務 (用於同盟驗證和宣告型授權) 和 服務匯流排 (用於雲端解決方案和內部解決方案之間的連線)。
Visual Studio 2010 包含了多個建置 Windows Azure 平台解決方案用的專案範本。對於 VB.NET 和 C# 來說,Web 角色用的範本有四個,工作者角色用的範本有一個。還有一個 F# 的工作者角色專案範本。VB.NET 和 C# 的 Web 角色範本包括 ASP.NET、MVC with ASP.NET、WCF 服務和 CGI 各一個範本。
在 Visual Studio 2010 使用 Windows Azure 平台專案的一個特點,就是您在建立專案時,可以為它選擇多個角色。例如,您可以利用 ASP.NET MVC Web 角色,以 C# 建立新專案,也可以利用工作者角色,以 VB.NET 建立新專案。這正是為什麼 [新增] | [專案] 在操作上與雲端應用程式不太一樣的原因;您實際上是從對話方塊選取角色,而不是透過您在大部分其他專案範本所看到的單個選擇原型。
用法 如果要在 Visual Studio 2010 針對 Windows Azure 平台建立專案,可以從 [已安裝的範本] 清單選取 [雲端],如**[圖 11]**所示。
[圖 11] 在 Visual Studio 2010 選取一個雲端專案類型
接著畫面會出現一個對話方塊,您可以在這裡選取所要的角色,每一個角色都可能代表不同的型別和 (或) 語言。**[圖 12]**示範的是一個 ASP.NET MVC Web 角色、兩個 VB.NET 工作者角色以及一個 F# 工作者角色的新 Windows Azure 雲端服務專案。
[圖 12] 以多個角色和語言設定雲端服務專案
多版本開發
其實多版本開發 (Multi-targeting) 本身並不是 Visual Studio 2010 的全新功能,但它有一項新的擴充性功能倒是值得一提。令人多少有點訝異的是,有許多人並不了解多版本開發的優點,以及多版本開發如何能夠讓他們使用 Visual Studio 2010 來建置在舊版 .NET Framework 執行的解決方案。多版本開發 (含進階偵錯及改良式編輯器功能) 適合有心利用最新工具但還尚未準備好將它們的程式碼 (或是客戶) 移到 .NET Framework 4 的開發小組使用。您可以利用多版本功能,選擇以 .NET Framework 2.0、3.0、3.5 或第 4 版為目標來建置應用程式。
用法 在啟動新專案時,只要在下拉式清單選取目標架構即可,如**[圖 13]**所示。
[圖 13] 透過多版本開發選取目標架構版本
名為「其他架構…」的新選項 (請注意 [圖 13] 中圈起來的下拉式選單的最後一項) 可以擴充支援的目標架構。這項功能不但可以擴充未來版本的架構,說不定有一天也能夠擴充其他的 .NET Framework 設定檔。這類新增功能很有可能透過 MSI 加以安裝,不過最後還是可能以 XML 描述檔案手動新增,然後將架構組件直接複製到機器上。
還有更多功能
Visual Studio 2010 還有其他許多新功能,多到本文無法一一涵蓋。像是可自訂的起始網頁就很難不注意到,因為它提供了絕佳的機會讓公司使用公司專屬的資源。它有 C++/ANSI 更新、不斷更新的說明、新的 F# 程式設計語言、Entity Framework 增強功能、程式碼視覺化,以及其他許多值得一學的新功能。這些功能讓 Visual Studio 2010 得以提供業界期待的軟體,進一步使它成為最受矚目的開發工具。走筆至此,希望您對 Visual Studio 2010 的功能已有更清楚的了解。如果您想親自體驗看看,請在 microsoft.com/vstudio 下載評估版。
Doug Turnure 在 Microsoft 擔任 Visual Studio 小組的專案經理,主要工作是整理與採納客戶的意見。他曾經擔任過開發人員、作者、培訓講師、推特人、市場行銷人員以及不定期的會議發言人。Turnure 多年來一直信誓旦旦表示絕不移居西雅圖,目前已在西雅圖安居樂業。
感謝以下協助校閱本篇文章的技術專家:Miguel Castro、Mark Dunn 和 Jim Wooley