本文章是由機器翻譯。

Web 開發

適用於 Web 開發人員的 Visual Studio 2010 SP1

Scott Hanselman

Visual Studio 2010 SP1 已于 3 月發佈。此 Service Pack 解決了客戶在合作夥伴回饋和內部測試期間所發現的問題。在發佈 Visual Studio 2010 SP1 的同時,還推出了一些面向 Web 開發人員的新元件。本文將探討 Visual Studio 2010 SP1 中的 Web 開發改進。大多數改進都是為了將 Visual Studio SP1 與 Microsoft Web 平臺上新的產品及功能進行集成,這些新產品包括 IIS Express 7.5、SQL Server Compact Edition 4.0(為簡潔起見,後面簡稱為 SQL Server CE)、新 Razor 語法和 Web 平臺安裝程式 (Web PI) 等等。其他改進包括對可以進行 bin 部署的依賴項(例如 ASP.NET MVC 3)的支援,以及 Visual Studio 2010 SP1 自身中的 HTML5 和 CSS3 支援。

本文假定您已安裝 Visual Studio 2010 SP1。該產品可作為獨立安裝程式下載,也可以使用 Web PI 下載。有關該產品下載位置的詳細資訊可在bit.ly/hnU6mm中找到。

Web PI 是一種免費工具,使用它可以更輕鬆地獲取 Microsoft Web 平臺的最新元件。更多詳細資訊可在bit.ly/a6dLu中找到。

New Features Light Up in Visual Studio 2010 SP1

IIS Express 7.5、SQL Server CE、Visual Studio Tools for SQL Server CE 和 Razor 版 ASP.NET MVC 3 是在 Visual Studio 2010 SP1 之後安裝的單獨元件。實際上,對 Visual Studio 2010 SP1 中這些功能的支援一直處於休眠狀態,直到在電腦上安裝這些功能。

可以使用各種方法下載和安裝這些元件。有比較麻煩的方法,也有簡單的方法。您可以自行查找和下載每個獨立元件。也許這適合 Visual Studio 2010 SP1 的企業或受控部署。您可以使用 Web PI 單獨查找、下載和安裝每個套裝軟體,當您只需要特定的功能時,這會十分有用。我們稍後將討論各個安裝。不過,最簡單的方法就是在 Web PI 中使用一個包含所有這些功能的“捆綁包”。我們冒昧為您創建了下麵這個簡短的 URL,它可以啟動 Web PI,並自動為您選擇獲得一切的適當選項:hnsl.mn/VS2010SP1Bundle

Web PI 知道您的電腦上安裝了什麼。如果您的電腦上幾乎什麼都未安裝,也就是說未安裝任何開發工具,那麼這個連結將會自動安裝免費的 Visual Studio Web Developer Express SP1 及所有新功能。不過,如果您已安裝了任意版本的 Visual Studio,甚至已安裝了 Visual Studio 2010 SP1 及其中一些工具,那麼 Web PI 將會自動獲取更新到最新狀態所需的最少功能。這就是“獲得一切”連結。

在開始安裝之前,應確保已關閉 Visual Studio 的所有實例(記得在工作管理員中檢查 devenv.exe)。

您可能會發現打開的專案使用了未安裝的新元件。如果您打開的現有 Web 專案使用了其中一些新功能,Visual Studio 2010 SP1 將會自動檢測缺少的元件,並使用 Web PI 安裝這些元件。

Web PI Integration

在此部分中,我們將介紹 Visual Studio 2010 SP1 如何自動檢測 Web 專案所需的缺失 Web 元件,還將介紹 Web PI 工具列。

“缺少元件”對話方塊這是此 Service Pack 中引入的一個新對話方塊。當您打開使用 IIS 7.5 Express、SQL Server CE 或 ASP.NET MVC Razor 語法的現有 Web 專案時,如果電腦上未安裝其中任意元件,則會出現此對話方塊。該對話方塊用於使用 Web PI 下載和安裝由該 Web 專案使用的缺失元件。

例如,圖 1顯示了在未安裝 SQL Server CE 的情況下打開使用 SQL Server CE 資料庫的網站時,該對話方塊中所顯示的內容。

圖 1 缺少元件的相關警告以及獲取該元件的提示

此時,如果您按一下“是”,Visual Studio 2010 SP1 將會嘗試檢測您的電腦上是否已安裝 Web PI。如果未安裝,則至少會在流覽器視窗中打開下載頁面,供您獲取 Web PI。

如果已安裝 Web PI,則會啟動 Web PI,其中選中了缺少的元件。它只會下載您所需的元件。別擔心,這個工具很智慧化。它不會下載 Visual Studio 2010 SP1,因為您已安裝了這個產品!

圖 2說明了在“缺少元件”對話方塊上按一下“是”或“否”時所發生的情況(橙色圖表示需要使用者操作;藍色圖表示 Visual Studio 2010 SP1 所執行的步驟)。

圖 2顯示“缺少元件”對話方塊後所執行的步驟

Web PI 工具列。若要使用 Web PI 下載任何其他元件,還可以使用 Visual Studio 中新增的一個工具列,其中包含一個“安裝 Web 元件”按鈕。

按一下該按鈕時,將會啟動 Web PI;如果未安裝 Web PI,將會帶您進入下載頁面。如果尚未顯示該工具列,選擇“視圖”|“工具列”|“Web 平臺安裝程式”即可將其顯示出來。“工具”功能表下也有“安裝 Web 元件”選項。

IIS Express 7.5 支援

現在您已瞭解如何安裝各種元件,下麵我們來探討一下 Visual Studio 中的 IIS Express 7.5 功能。

IIS Express 7.5 是專門針對開發人員進行了優化的 IIS 輕型版本。更多詳細資訊可在 bit.ly/cOfrt4中找到。

IIS Express 7.5 是從與 IIS 7.5 相同的代碼庫構建的,因此它在開發框上為 Web 開發人員提供了 IIS 功能,例如 SSL、URL 重寫和 MIME 類型,這與完整版產品 Web 伺服器類似。

可以使用 Web PI (bit.ly/dfikKe) 或獨立安裝程式 (bit.ly/g5RMgc) 下載和安裝 IIS Express 7.5。

也許,您有一個現有網站或專案使用了 Visual Web Development Server(舊稱 Cassini 的小型 Web 伺服器)。您可以在解決方案資源管理器中右擊該 Web 專案,將該專案轉換為使用 IIS Express 7.5(請參見圖 3)。

圖 3 從 Visual Web Development Server 轉換為 IIS Express 7.5

Visual Studio 2010 SP1 會提示您進行確認,然後顯示該 Web 專案已成功設置為使用 IIS Express 7.5。

不過,一次又一次地將專案設置為使用 IIS Express 7.5 十分麻煩。如果需要,您可以通過“專案和解決方案”|“Web 專案”下的“工具”|“選項”對話方塊,將 IIS Express 7.5 設為所有專案的預設 Web 伺服器。選中“將 IIS Express 用於新的基於檔的網站和專案”選項(請參見圖 4)。

圖 4 將 IIS Express 7.5 設為預設 Web 伺服器

當然,您可以根據專案進行選擇,甚至可以從 IIS Express 7.5 轉換回 Visual Studio Web Development Server。這只需在解決方案資源管理器中右擊專案並將其轉換為使用 Visual Studio Web Development Server 即可。

IIS Express 7.5 與非管理員

要創建或打開現有 IIS 網站或 Web 專案,您需要以提升使用者身份(管理模式)運行 Visual Studio 2010 SP1。對於沒有這種身份的使用者來說,這有些麻煩。也許這是受到 IT 部門的限制,也許您只想儘量避免以管理員身份運行程式。

幸運的是,您現在可以將 IIS Express 7.5 用作 Web 專案的 Web 伺服器,而不需要在管理員帳戶上下文中運行 Visual Studio 2010 SP1。安裝後,任何使用者都能以非管理員身份使用 Visual Studio 2010 SP1 和 IIS Express 7.5。

IIS Express 7.5 屬性

IIS Express 7.5 提供了許多自訂屬性,可從屬性視窗為每個專案設置這些屬性(在解決方案資源管理器中選擇專案,然後按 F4 即可顯示屬性視窗)。圖 5顯示了屬性視窗。

圖 5 專案屬性視窗

下麵列出了 IIS Express 7.5 特定的屬性:

  1. 匿名身份驗證 — 啟用/禁用匿名身份驗證。匿名身份驗證不向用戶端流覽器提供使用者名和密碼質詢,允許任何使用者訪問網站。預設情況下啟用該屬性。

  2. 託管管道模式(可以為集成型或經典型):

    集成型 — ApplicationPool 物件將使用 IIS 7 和 ASP.NET 的集成請求處理管道來處理託管代碼的請求。

    經典型 — IIS 7 將通過 aspnet_isapi.dll 路由託管代碼的請求,處理請求的過程與在 IIS 6 中運行應用程式一樣。

  3. 已啟用 SSL — 將此屬性設置為 True 可以為網站啟用 SSL。

  4. SSL URL — SSL URL。

  5. URL — 網站的 URL。

  6. Windows 身份驗證 — 可以啟用或禁用此屬性;使用 Windows 身份驗證可以通過 Windows NT LAN Manager (NTLM) 或 Kerberos 協定進行身份驗證。

您在屬性工具列中更改的設置將存儲在“My Documents\IISExpress\config\applicationhost.config”中。請注意,這些設置不在“C:\Program Files”資料夾中。每個使用者都有其自己的 IIS Express 7.5 配置。由於這些配置是在本地 IIS Express 7.5 實例中嚴格設置的,並且設定檔未包含在解決方案檔中,不永久保存于原始程式碼管理之中,因此使用時應小心謹慎。

將 IIS Express 7.5 專案與 Visual Studio 2010 RTM 共用

假設您有一個專案在 localhost:20221 上使用了 IIS Express 7.5,您希望與仍在使用 Visual Studio 2010 RTM 的團隊夥伴共用該專案。只要這位團隊夥伴在框中打開該 Web 專案,就會引發一個類似“在本地電腦上找不到伺服器‘http://localhost:20221’”的錯誤。

這一錯誤背後的原因是 Visual Studio 2010 RTM 無法識別 IIS Express 並試圖查找 locahost:20221。

您可以在 Web 應用程式專案中變通解決此問題,方法是在屬性頁 |“Web”選項卡中取消選中“將伺服器設置應用到所有使用者(存儲在專案檔案中)”(請參見圖 6)。


(按一下進行縮放)

圖 6 按使用者進行伺服器選擇和相關設置

在解決方案管理器中右擊專案,然後從上下文功能表中選擇“屬性”以顯示屬性頁。

這會將伺服器選擇(Visual Web Development Server 或 IIS Express 7.5)及相關設置按使用者存儲在使用者檔而不是專案檔案中,從而導致伺服器選擇未永久存儲在原始程式碼管理中。

這使團隊中的 Visual Studio 2010 RTM 使用者仍可以使用 Visual Studio Development Server,而 Visual Studio 2010 SP1 使用者可以對同一專案使用 IIS Express 7.5。對於網站專案,團隊中的每個人都需要使用 Visual Studio 2010 SP1 才能共用專案並使用 IIS Express 7.5。

SQL Server CE 支援

Microsoft SQL Server CE 是一種免費的嵌入式資料庫,可用於構建 ASP.NET 網站和桌面應用程式。它屬於輕型資料庫,無需執行任何安裝。在生產伺服器上,將 SQL Server CE 資料庫引擎程式集放入 bin 資料夾後,Web 專案即可使用 SQL Server CE 資料庫。(要瞭解 Visual Studio 如何自動將所需程式集添加到 bin 資料夾中,請參見本文的“可部署的依賴項”部分。)

有關 SQL Server CE 的更多詳細資訊,請參見 bit.ly/dsWBbMbit.ly/hvgQQV。要在 Visual Studio 2010 SP1 中獲得 SQL Server CE 支援,可以使用 Web PI (bit.ly/maOfQX) 或通過獨立安裝程式下載元件。對於後一種方法,請安裝以下兩個元件:SQL Server CE 運行時 (bit.ly/f86AyF) 和 Visual Studio for SQL Server 工具 (bit.ly/kvxEQi)。

在此部分中,我們將探討安裝所需元件後啟動的 SQL Server CE 功能。

通過 Visual Studio 2010 SP1,現在可以使用新範本創建 SQL Server CE 資料庫(請參見圖 7)。(要顯示“添加新項”對話方塊,請在解決方案資源管理器中右擊專案並選擇“添加新項”)在向 Web 應用程式專案添加 .sdf 檔時,Visual Studio 2010 SP1 會自動添加對 System.Data.SqlServerCE 的引用;而對於網站,則會更新 web.config 以添加該程式集。


(按一下進行縮放)

圖 7 創建 SQL Server CE 資料庫

要使用 .sdf 檔執行各種任務,請在解決方案資源管理器中右擊該 .sdf 檔,這會打開伺服器資源管理器窗格(請參見圖 8)。

圖 8 右擊 .sdf 檔以執行各種任務

伺服器資源管理器可用於執行各種任務,例如創建新表、編輯現有表、編輯表架構、顯示表資料等等。

Visual Studio 2010 SP1 中的其他資料功能(例如鍵/索引管理、實體框架設計器以及伺服器/資料庫資源管理器)也已更新為支援 SQL Server CE 資料庫。

Razor 支援

在 Visual Studio 2010 SP1 中,對 Web 專案系統和 HTML 編輯器所做的更改支援新的 Razor 語法。這一新語法由 ASP.NET 網頁和 ASP.NET MVC 3 使用。

有關 ASP.NET MVC Razor 語法的更多內容可在bit.ly/aj0AuM中閱讀。

要在 Visual Studio 2010 SP1 中獲得 Razor 語法支援,需要下載 ASP.NET MVC 3。

用於下載 ASP.NET MVC 3 的 Web PI 連結是bit.ly/biXkTD。ASP.NET MVC 3 獨立安裝程式位於bit.ly/hd2LDs

下麵的文章說明了隨 ASP.NET MVC 3 一起安裝的元件:bit.ly/e7T4A3

現在為 Razor 語法增添了以下支援:

顏色設置。如果使用 Visual Studio 2010 SP1 和 ASP.NET MVC 3,則在您打開 Razor 檔(.cshtml 或 .vbhtml)時,Visual Studio 編輯器會為 HTML 以及 C# 或 Visual Basic 內容設置顏色。

此外,還可以通過在“工具”|“選項”對話方塊中選擇“環境”|“字體和顏色”,更改 Razor 代碼塊的預設背景色(請參見圖 9)。

圖 9 更改 Razor 代碼塊的預設背景色

IntelliSense。在 Razor 檔中提供了對 HTML 和 C#/Visual Basic 語言的完全 IntelliSense 支援。有關示例,請參見圖 10


(按一下進行縮放)

圖 10 對 Razor 代碼的 IntelliSense 支援

调试。與對其他語言檔的支援一樣,您也可以在 Razor 檔中添加中斷點,並可以使用 IDE 的所有調試功能(例如,逐過程執行和監視清單等)。

對於內嵌 Razor 運算式,不能通過按一下側邊添加中斷點。解決方案是將游標移到運算式上,然後按 F9(用於添加中斷點的快速鍵)。

可部署的依賴項

在前面的部分中,我們討論了如何下載、安裝和流覽 SQL Server CE、Razor 和 ASP.NET MVC 3 的功能。現在,我們希望將使用這些功能的 Web 專案發佈到遠端 Web 伺服器。我們不確定遠端伺服器是否安裝了 SQL Server CE、Razor 或 ASP.NET MVC 3,並且我們無法控制可在其中安裝哪些元件。Visual Studio 2010 SP1 實際上可使用“添加可部署的依賴項”功能,説明我們為這些元件進行二進位檔案“bin 部署”(請參見圖 11)。

圖 11 “添加可部署的依賴項”功能

bin 資料夾是 Web 專案中可由 ASP.NET 識別的特殊資料夾。bin 資料夾可包含在 Web 應用程式中所引用的自訂 ASP.NET 控制項、元件或其他代碼的已編譯器集。

這個 Web 應用程式可能依賴于某個元件(例如,SQL Server CE),而我們希望將網站發佈到未安裝此依賴項(即未安裝 SQL Server CE)的伺服器上。

“bin 部署”意味著在部署應用程式時將依賴項複製到該應用程式的 bin 資料夾中,而不是使用安裝程式將依賴項安裝到全域組件快取 (GAC) 中。

要顯示該對話方塊,請在解決方案資源管理器中右擊 Web 專案,然後選擇“添加可部署的依賴項…”

Visual Studio 2010 SP1 將顯示一個對話方塊,其中列出了電腦上已安裝的以及可部署的元件。該對話方塊將 ASP.NET MVC 顯示為僅用於 ASP.NET MVC 3 專案的附加選項。(请参见图 12)。

圖 12 用於執行 bin 部署的“添加可部署的依賴項”對話方塊

以下是按一下“確定”後所發生的情況。對於網站,所選元件的所需程式集將從框中的依賴項安裝位置複製到應用程式的 bin 資料夾中。現在,在將網站複製或發佈到 Web 伺服器時,這些元件會使用 bin 資料夾中的程式集運行。

在 Web 應用程式專案中,所選元件的程式集將複製到 _bin_deployableassemblies 資料夾中。在生成 Web 應用程式專案或將其打包以供部署時,二進位檔案會從 _bin_deployableassemblies 資料夾複製到 bin 資料夾。

如此一來,即使在自訂生成過程中從 bin 中刪除了檔,在發佈專案時仍會正確地從 _bin_deployableassemblies 資料夾重新複製依賴項。

HTML5 和 CSS3 支援

在 HTML 編輯器增添了對 HTML5 的初步支援,以便可獲取針對 HTML 元素和屬性的 IntelliSense 和驗證。未來版本的 Visual Studio 將提供帶來更全面 HTML5 體驗的完整版本。

要獲得 HTML5 支援,請轉至“工具”|“選項”,選擇“文字編輯器”|“HTML”|“驗證”,然後從下拉清單中選擇“HTML5”。或者,也可以從 HTML 源編輯工具列中選擇 HTML5(請參見圖 13)。要在編輯 HTML 或 Razor 檔時啟用工具列,請選擇“視圖”|“工具列”|“HTML 源編輯”。

圖 13 從 HTML 源編輯工具列中選擇 HTML5

在 Visual Studio 2010 SP1 中,有幾項對 CSS3 支援的改進,但這裡就不像 HTML5 那樣進行詳細介紹了。CSS 編輯器現在支援更高級的選擇器(例如 div:nth-child(2n+1))、新的顏色值 rgbahslhsla以及八位十六進位值。

總結

概括來說,Visual Studio 2010 SP1 在某些方面收緊了 Visual Studio 的功能,但通過新 Web 元件與 IIS Express 7.5、Razor 版 ASP.NET MVC 3、SQL Server CE 工具以及 HTML5/CSS3 等的協同工作(並與 Web PI 緊密結合),讓 Web 開發變得更加有趣。我們希望您能像我們一樣喜愛這些工具。

Scott Hanselman 是 Microsoft 在華盛頓地區雷蒙德市之外的首席社區架構師。 您可以在 Twitter twitter.com/shanselman, 上關注他,在 hanselman.com 閱讀他的博客,或者在 hanselminutes.com收聽他的播客。

Deepak Verma 在華盛頓地區雷蒙德市 Microsoft 總部擔任軟體發展測試工程師。 他的團隊的博客網址為 blogs.msdn.com/b/webdevtools