微軟在2014年5月12日的TechEd大會上宣布將會發布下一代ASP.NET框架ASP.NET vNext的預覽。此次發布的ASP.NET框架與以前相比發生了根本性的變化,凸顯了微軟“雲優先”(cloud-first)的新戰略思想。Scott Hanselman發布博客對ASP.NET vNext進行了簡要介紹。而且ASP.NET入駐Github 下一代ASP.NET將全部開源,寫下本文記錄下這個時刻。
微軟在今年的Build大會上成立.NET開源基金會和以下這些產品的發布:
.NET Native - 提前編譯.NET代碼。一切都變得更快了。
.NET編譯器平台(Roslyn) - 嶄新的C#以及VB編譯器,新的語言特性,編譯即服務(compiler-as-a-service),以及,它是開源的。
Nextgen JIT - 為最新處理器優化的嶄新的即時編譯器(Just-in-time-compiler)
ASP.NET vNext的出現,將會把一切推上更高層次。今天,你用來運行ASP.NET的通用語言運行庫(CLR)與桌面應用所使的是完全相同的。微軟.NET團隊正在做的事情是:增加針對雲計算環境進行優化的CLR版本。優化時考慮的場景包括“低內存消耗”以及“高吞吐量”等等。
ASP.NET vNext 使得你能夠為每一個應用部署定制化的.NET框架。一個使用新版本代碼庫(library)的應用不會和部署在同一服務器上使用該代碼庫的不同版本的應用打架。不同的應用甚至可以有不同優化側重點的個性化的CLR。CLR以及針對雲環境優化的代碼庫都成為了可自由選擇和搭配的NuGet包。開發者可以為其應用部署單獨的.NET框架,同一服務器上兩個使用不同版本庫的應用不會彼此影響,並且應用可以使用針對其雲計算環境進行優化的CLR版本。開發以可以把應用依賴定制的CLR以及雲優化的.NET框架構建為一個NuGet包。
ASP.NET vNext將packages.config、NuGet 配置(nuspec)以及項目文件(csprojs)合並到統一的項目依賴配置文件project.json中。在輸入類庫或者NuGet包時,開發者可以看到完整的智能提示,並且NuGet包會被自動下載到開發環境中。
Scott Hanselman博客上對 ASP.NET vNext的介紹告訴我們下一代的ASP.NET 是:
針對雲環境和服務器環境進行了優化
ASP.NET MVC以及WebAPI被統一到了同一個編程模型(programming model)中
低延時的開發者體驗
自帶依賴注入(Dependency Injection out of box)
“並存”(side by side)——每個應用都有自己的運行時(runtime)以及框架隨之部署
一切都來自NuGet——即使是運行時(runtime)也一樣
完全通過.NET Foundation開源,並且接受外部開發者的貢獻
ASP.NET vNext(還有Roslyn)可以在Mac和Linux上的Mono平台上運行。微軟與Mono團隊合作。將Mono加入到我們的測試矩陣(test matrix)裡。將來我們在Mono上部署ASP.NET程序就和Windows上一樣了,不會和現在一樣有很多坑要注意。
本文引用: 兼容Mono的下一代雲環境Web開發框架ASP.NET vNext