ASP.NET vNext 概述



兼容Mono的下一代雲環境Web開發框架ASP.NET vNext 我們知道了ASP.NET vNext是一個全新的框架,是一個與時俱進的框架。這篇文章將深入討論在整體架構更多的細節,文檔參照 ASP.NET vNext Home,還有這篇文章 http://davidfowl.com/asp-net-vnext-architecture/

github庫之間的依賴關係可以看下面這個圖 :

vNext_graph2

這個圖不是所有的依賴關係,從這裏可以看出ASP.NET vNext的一個架構:

  • KRuntime - 包括SDK和運行時 (kvm, kpm和kre),引導到 CoreCLR, full CLR 和mono 的邏輯都在這裏了,它還包括一些和編輯器交互的代碼,比如 Visual Studio 智能提示,編譯錯誤等等。K Runtime Environment(KRE)這是一個命令行環境,將構建並運行(不再有真正的區別)從他們的新project.json。ASP.NET vNext將packages.config、NuGet 配置(nuspec)以及項目文件(csprojs)合併到統一的項目依賴配置文件project.json中。有個簡單的應用程序K Version Manager (KVM)負責安裝KRE,可以安裝多個版本的KRE,並可以在他們之間自由切換。另外一個亮點是修改代碼後,開發者無需編譯重啓即可查看修改後的結果,ASP.NET vNext在保證吞吐能力的同時,還爲開發者提供了Roslyn的“無編譯執行”特性。“無編譯”即可看到代碼修改後的結果這一特性也極大程度提到了開發體驗。
  • 橫切關注點- 包括Logging, DependencyInjection, FileSystem, 和 Configuration. 大多數項目以某種形式依賴於這些 (直接或者間接)。
  • HttpAbstractions - 這個庫包括新的Http抽象,包括但不限於 - HttpContext, HttpRequest,HttpResponse 和新的IBBuilder連接中間件. 也就是對 OWIN 的支持。
  • Hosting - 這個項目可以瞭解如何啓動Web應用程序。 所有的邏輯就是找到啓動類和調用配置入口,它還包括一個編寫Http 服務器所需要的接口,自己編寫一個ASP.NET vNext將是很容易的一件事。
  • Razor - Razor就不需要介紹了。新的Razor 有一個不再依賴於dom新的代碼生成模型,讓擴展它變得很簡單,同時確保新的Razor工具適用於其他使用Razor的框架 (Nancy, ServiceStack, SimpleWeb)。

    Mvc - 這事一個新的MVC/WebAPI/WebPages 相結合的框架,不過這裏依然沒有Webform的位置。 新的mvc的一些新東東:

    • 有更多的擴展點
    • 可以自宿主
    • 控制器不需要一個基類.
    • RazorViewEngine 是基於Roslyn的
    • *Everything* 都是異步的
  • SignalR-Server - 這個版本的功能和 https://github.com/SignalR/SignalR 相同,但是是基於新的http 堆棧和橫切關注點重構的。

ASP.NET vNext還在開發當中,還有很多變化的因數在裏面,指望在生成環境部署還尚早,如果你對他的代碼感興趣,參與它的開發,爲開源做貢獻,這篇文章給你帶來一個概貌。想閱讀一些代碼,下面這些鏈接是個很好的切入點:

The Roslyn compiler

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章