您好,登錄后才能下訂單哦!
近期微軟發布了ASP.NET 5.0,本次發布的新特性需求源于大量用戶的反饋和需求,例如靈活的跨平臺運行時和自主部署能力使ASP.NET應用不再受限于IIS、Cloud-ready環境配置降低了云端部署的門檻,另外源碼開放無疑也是一個重量級驚喜。這些更改會有助于創建易于開發、部署、維護和現代的Web應用程序。相信看到以上幾點作為.NET程序員的你已經迫不及待體驗ASP.NET 5 的新功能了,下面我們就來看下這些新特性。
ASP.NET 5 是用于創建Web應用的框架,相對于以前的版本它更加簡練、靈活,本次發布的版本徹底優化了應用開發框架,你可以輕松部署應用到云端或其他平臺,它包含了最小的模塊化組件,所以確保你在構建復雜解決方案的同時保持靈活性。
ASP.NET 5 包含以下特性:
·靈活的跨平臺運行時
·新的HTTP模塊請求管道
·Cloud-ready環境配置
·統一了包含 MVC、 Web API 和 Web 頁面的編程模型
·無需重新編譯即可查看更改效果
·并行的.NET Framework 版本
·自主部署或IIS部署能力
·內嵌于Visual Studio 2015中的新工具
·GitHub開放源碼
使用舊版本開發的應用程序不需要做任何修改,即可直接在 ASP.NET 5上運行。然而,如需使用ASP.NET 5 新功能,你需要將現有代碼移植到新的框架。ASP.NET 5 和早期 ASP.NET 版本基本相同,因此你只需要把精力集中到新功能開發上,節省了你的代碼遷移時間。
以上概括性的介紹了ASP.NET 5的新特性和增強功能。
為什么重新設計 ASP.NET ?
靈活的跨平臺運行時需求
靈活的部署環境
多Framework版本并行使用
簡化依賴關系管理
合并MVC、 Web API 和 Web 頁
增強HTTP性能
Cloud-ready 部署能力
集成依賴注入
開源
提供敏捷的開發環境
關于Web Forms
早期版本Framework開發應用兼容性
靈活的跨平臺運行時需求
早期 .NET Framework 版本一直作為單一且全面的整體進行安裝,每個新版本都包含了新功能和幾乎所有早期功能,而鮮有刪減,這就不可避免的造成Framework的體積的增長。這種模式確保了安裝了新版 Framework的Windows系統可以兼容所有早期版本的.NET 應用,但是也意味著每個應用都將運行在一個龐大冗余的框架上,即使很多功能在實際項目中沒有使用。
相信每位.NET程序員都遇到過以下尷尬的決策場景:當收到Framework有更新發布時的通知時,是放棄使用新增功能保持應用的靈活性還是使用新特性而忍痛讓你的Framework更加龐大!
為了應對以上場景。ASP.NET 5提供了三種運行時,你可以根據實際需要靈活選擇:
1. 全功能.NET CLR
全功能.NET CLR 是Visual Studio工程默認運行時狀態。它提供所有 API,是保持應用向下兼容性最佳選擇。
2. 核心CLR (cloud-optimized runtime)
核心 CLR 是精簡的完全模塊化運行時。這個CLR已經被重新設計成組件便于你僅包含項目中實際使用的的.NET特性。組件作為NuGet 包添加。一旦完成引用,你的應用僅依賴于所需的功能。通過分解運行時為組件,我們可以更快的更改每個組件,因為每個組件都有自我更新機制。核心CLR只有11M大小,相對于200M的全功能CLR無疑將使應用更加輕便。核心CLR可以伴隨應用一起部署并且不同的核心CLR可以并行運行。
3. 跨平臺CLR
微軟將發布針對于Linux 和 Mac OS X 發布跨平臺運行時。這意味著你的.NET應用具備了在Mac 和Linux 設備上運行的能力。微軟將和 Mono 社區合作完成這一新特性。在發布之前,你可以使用Mono CLR用于跨平臺開發。
新建 Visual Studio 工程默認使用全功能 .NET CLR,可以在工程屬性頁面更改為核心CLR。
ASP.NET 5 允許部署應用到 IIS,或脫離IIS進行獨立部署,當設置目標 Framework 為Core CLR時,即可以使用部署包中的依賴項來部署應用。因此,你的應用自成一體,再不依賴于全功能的.NET 版本。該應用可以在任何設備和平臺中運行應用。
這對.NET平臺開發人員無疑又是個驚喜,部署應用不在局限于IIS,當然微軟仍然推薦你使用IIS部署應用,但是如果需要在不兼容IIS的平臺部署應用,你就可以使用該新特性進行操作。
后續文章中我們會發布如何創建不依賴于IIS 的MVC6應用,敬請期待。
多版本.NET并行使用
早期版本的.NET Framework,你將時刻面臨是否更新版本的選擇,一方面你希望使用更新的功能,另一方面你將為舊版本開發的工程是否可以平滑遷移到新版 .NET Framework 而感到糾結。
微軟在 ASP.NET 5中改善了以上問題。在使用核心CLR前提下,你可以在部署包內定義依賴關系,所以你可以為每個應用程序指定.NET版本。 舊版應用可以平滑運行,同時你也可以使用新版本開發應用。因此在ASP.NET 5中多個版本的.NET應用是并行的。
ASP.NET 5 推出了一種全新的輕量級依賴關系管理機制。你不再需要在應用中添加引用,而是使用引用NuGet 包代替。你可以通過NuGet Package 管理器添加NuGet包,或者你可以編輯包含NuGet包列表和版本信息 JSON 文件(project.json)來實現引用。project.json 文件用于列舉應用使用的 NuGet 相關信息,如需添加其他引用,直接在該JSON文件中添加即可。
在 Visual Studio 2015中,根據智能提示可以快速的添加NuGet 包。
project.json 文件僅包含直接添加到工程中的 NuGet 包。如果添加引用文件外的包,這類依賴項將僅僅被加載,而不會顯示到project.json 文件中。這種機制可以使project.json 文件輕便易管理。
JSON格式文件使你可以在沒有安裝Visual Studio情況下,輕松管理引用。當然,可以使用任何文本編輯器打開和編輯project.json。
早期版本中, MVC、Web API 和Web 頁一直在使用著不同的方式實現著相同的功能,可以說是殊途同歸。例如, MVC 和Web API 都提供了路由,但是MVC routing 類在System.Web.Mvc.Routing 命名空間中,而Web API 中類似的類在System.Web.Http.Routing 命名空間中。再舉一個例子, Web 頁和 MVC 都是有Razor 語法, 但是仍然包含在相同功能的不同NuGet包中。
在 ASP.NET 5 中, MVC、Web API和and Web 頁將被整合到同一框架-MVC 6。這就意味著移除了重復功能模塊,使開發應用變得更簡單。
在預覽版本中, MVC and Web API 首先被合并到MVC 6中。 Web 頁面將后在后續發布版本中添加。
增強HTTP性能
ASP.NET 5 提供了一個精煉快速的HTTP 請求管道,該模塊化管道允許你僅添加需要的組件,通過減輕管道開銷,應用將有更好的吞吐量。
云部署能力
當你創建一個新的 ASP.NET 5 工程,這個工程默認就已經具備輕松部署到云端的結構。Visual Studio 2015 提供了全新的環境配置系統代替了Web.config 文件。新的系統允許使用多種文件類型(例如JSON, XML, or 或環境變量)存儲鍵值對,因此你可以在任意環境中輕松指定值或獲取這些值。
同時,ASP.NET 5提供了檢測和跟蹤已部署云應用問題的工具。
集成依賴注入
依賴注入被內置于ASP.NET 5中。你可以使用 IoC容器注冊依賴項。依賴關系的注入促進了正確服務環境的提供。
ASP.NET源碼已經發布到GitHub中。不僅僅提供了當前版本源代碼,微軟也承諾會同步更新GitHub中的源碼,你可以及時查看到ASP.NET 的變化,可以下載并且提交更改到GitHub上。
這有助于你了解ASP.NET 代碼及技術走向,同時你可以定制自己的ASP.NET。
提供敏捷的開發環境
Visual Studio 2015 提供了一個輕量級的ASP.NET 開發環境。無需重新編譯工程,只需要保存更改代碼,就可以在瀏覽器中查看最新結果。
你更改的代碼可以在Web工程或者由當前Web工程中引用的類庫中。
Visual Studio 使用 Roslyn 編譯器允許動態編譯。確保你擁有完整、強大的編譯框架的同時,擁有趨近于解釋語言的開發體驗。
每個Visual Studio 的用戶界面都具有對應的腳本,因此你可以輕松在UI界面和腳本之間切換。
最后,可以使用其他代碼編輯器編輯ASP.NET 5 工程。
微軟一直致力于提供給用戶新的功能去改善開發體驗,你仍舊可以開發Web Forms 應用,并且在Web Forms 4.6 添加了以下新特性:
HTTP 2
異步綁定模式
Roslyn CodeDOM 編譯器
早期版本開發的 Web Forms 應用無需任何更改可以直接在 IIS .NET 4.6框架下運行。不過,無法使用ASP.NET 5 核心CLR新特性。
例如當前有使用Web Forms、 MVC 5、 Web API 2、SignalR 2、 Web Pages 3 或 Entity Framework 6 開發的應用,你僅需設置當前運行時版本為全功能運行時,無需做出任何代碼級別修改即可在 ASP.NET 5中運行。 但是, 核心CRL是ASP.NET 5新特性,如果你希望應用具備該運行時的功能,那么需要做出一定的修改。微軟提供 API Portability Analyzer 工具可以判斷當前應用是否可以使用核心CRL。這個工具還可以分析當前應用可以運行在哪些平臺,以及哪些因素阻止其不能在特定平臺上運行。同時也會提示所需要的更改以及使用哪些新增接口來替換。
MVC 6 和 SignalR 3 應用使用新的HTTP管道,所以它們無法與使用System.Web 接口的應用兼容。如果需要升級已存在應用到MVC 6 或者 SignalR 3,你必須使用Visual Studio 2015 創建新工程,再導入原有工程,導入過程中需要修改不支持的代碼片段。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。