ASP.NET Web Forms的改進

infoq發表於2014-05-21

  雖然ASP.NET Web Forms不是vNext計劃的一部分,但它並沒有被忽視。作為Visual Studio 2013 Update 2的一部分,它重新開始支援新工具、EF整合和Roslyn。

  為什麼Web Forms不是ASP.NET vNext的一部分

  作為開始,讓我們先為這個壞訊息做下解釋。為了改進效能和跨平臺可移植性,ASP.NET vNext正在消除對System.Web的依賴。與OWIN相比,它緩慢而龐大,使測試工作多了不必要的麻煩。

  雖然他們已經多次嘗試將其分離出來,但Web Forms與System.Web其它部分的聯絡實在是太緊密。那只是問題的開始。System.Web與System.Design有迴圈依賴,這種情況實在都不應該有出現的可能。更為複雜的是,System.Design還將System.Windows.Forms牽涉其中。

  總而言之,Web Forms的程式碼就像一團解不開的義大利麵。但它還會繼續使用,因此微軟目前還會對它提供支援。

  支援Roslyn

  作為其部署策略的一部分,Web Forms一直包含執行時編譯。這點沒有變化,但作為替代實現,開發人員可以切換到基於Roslyn的CodeDOM提供程式。(CodeDOM是Web Forms目前使用的編譯器框架)Pranav Rastogi寫道:

我們測試了一個大小和複雜度適中的應用程式(在\bin目錄下有600多個程式集,500多個使用者控制元件&頁面),在啟用了將在下面詳細說明的新的CodeDOM提供程式後,啟動/預編譯階段的執行時編譯成本由15分鐘左右降到了70秒左右。

  支援ASP.NET Identity 2.0

ASP.NET Identity是現代用於構建ASP.NET應用程式的新的成員資格管理系統。Identity使得增加使用者配置檔案、諸如Facebook、Twitter、微軟賬戶、Google等社會化登入、將持久層由SqlServer切換到Azure Table Storage等工作更簡單。它還增加了諸如賬戶確認、雙因素身份驗證、帳戶鎖定、從任何地點單點登入、密碼重置和許多其它安全相關的功能。

  在本次更新中,Web Forms模板經過修改包含了來自ASP.NET Identity 2.0的功能。

  支援Entity Framework 6

  為支援EF6,下面的元件已經更新:

  Web Forms腳手架

  腳手架是用在ASP.NET MVC模型中的基本CRUD操作的程式碼生成器,在Visual Studio 2013中進行了重寫。重寫的結果是,微軟現在可以為Web Forms提供腳手架支援。特別地,開發人員可以從一個模型物件生成建立、替換、更新和刪除檢視。

  讀者可以從.NET Web開發與工具部落格上讀到完整的Web Forms公告

  英文原文:Improvements for ASP.NET Web Forms

相關文章