ASP.NET Core 與 .NET Core 演變與基礎概述


https://github.com/dotnet/core
https://github.com/aspnet/home

今天看到 .NET Core 的改名計划,感覺跨平台的時代快要來了,從之前的 ASP.NET NEXT,ASP.NET 5,ASP.NET Core 1.0 等概念一路演變過來,花了點時間總結一下幾個相關的概念。

OWIN 與 Katana 的關系

ASP.NET Core 1.0 的由來,要追溯到 Katana 這個項目, Katana 是 OWIN 定義規范的一個實現組件集合。

Open Web Interface for .NET (OWIN)

OWIN 是 Open Web Server Interface for .NET 首字母縮寫,OWIN 定義了 Web 服務器和應用程序組件之間的交互的規范(specifications); OWIN 在 .NET Web 服務器和 .NET Web 應用之間定義了一套標准的接口,其目的是為了實現服務器與應用之間的解耦。由於這一規范的目的是發展一個廣闊且充滿活力的、基於 Microsoft .NET Framework 的 Web 服務器和應用程序組件生態系統,因此它可以將服務器與應用程序之間的交互減少到一小部分類型和單個函數簽名,這個函數簽名被稱為應用程序委托(即 AppFunc)

using AppFunc = Func< IDictionary<string, object>, Task>;

Owin定義規范

OWIN

  • 服務器 (Server)

    HTTP 服務器直接與客戶端交互, 並用 OWIN 語義處理請求, 服務器需要一個適配層將客戶請求轉換成 OWIN 語義。 支持 OWIN 的服務器有 KatanaNowin

  • Web 框架 (Web Framework)

    構建在 OWIN 之上的自包含的獨立組件, 向 Web 應用提供可用的對象模型或者接口。 Web 框架可能需要一個適配層來轉換 OWIN 語義。 支持 OWIN 的 Web 框架有:

  • Nancy
  • SignalR
  • WebApi
  • FubuMVC
  • Simple.Web
  • DuoVia.Http
  • Web 應用 (Web Application)

    一個特定的 Web 應用, 通常構建在 Web 框架之上, 使用 OWIN 兼容的服務器運行。

  • 中間件 (Middleware)

    特定的目的的服務器和應用之間的可插拔組件, 可以監視、 路由、 修改請求與響應。

  • 宿主 (Host)

    應用與服務器所在的進程, 主要負責應用的啟動, 有些服務器自身也是宿主, 比如 Nowin 。

Katana

Katana 是 OWIN 規范定義實現的一個組件和框架集合,可以按其中每個層都能夠輕松替代的方式來解耦;OWIN 與 Katana 是 ASP.NET 5 之前東西,關於 host, server,middleware 相關實現的源碼可以在github上找到(https://github.com/aspnet/AspNetKatana),之前實現的 OAuth 2.0 認證授權 也都是基於 Microsoft.Owin.Security.OAuth 來實現的,不過現在 MS 已經不更新新的功能了(常規 fix bug); ASP.NET Core 是支持 OWIN 定義的實現的,也就是 ASP.NET Core 重新設計的 HttpAbstractions 子集,定義在 Microsoft.AspNetCore.Owin 包中。

KatanaASP.NET Core 對應關系

Many of the components, features, and models of Katana are now part of the ASP.NET Core project on GitHub. See https://github.com/aspnet/home for details. We still plan to release updates to Katana itself to address common problems and keeping it up-to-date.

Here is a list of Katana components and where you can find their ASP.NET Core counterparts:

ASP.NET 5 與 ASP.NET Core 1.0

如果還不曉得ASP.NET Next 與.NET Core是什么,可以先補充下知識

魅力 .NET:從 Mono、.NET Core 說起

vNext之旅(1):從概念和基礎開始

image

今天看到了 ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and .NET Core 1.0 ,雖然只是改名字,但是覺得微軟這次對.NET與 ASP.NET設計的非常好,之前命名的名詞與版本號確實太多總是感覺怪怪的[ASP.NET vNext => ASP.NET 5 => ASP.NET Core 1.0],晚上查了查相關文章,大致了解一下。之前偶爾https://docs.asp.net/en/latest/上面的文檔,以及http://www.asp.net/ 時常還有 ASP.NET vNext的影子,現在已經沒有了,按照線路圖的發展,估計在2016年3月份會RTM[時間暫定了]。

重新命名版本號

重新引入

CLI在MAC下安裝也很簡單,下載包NEXT即可,現還沒有CentOS的包。

ASP.NET Core 下有哪些包

https://docs.microsoft.com/zh-cn/aspnet/core/api/#namespaces-in-the-aspnet-core-class-library

REFER:
owin
http://owin.org/
Katana
https://github.com/aspnet/AspNetKatana
ASP.NET Core Schedule and Roadmap
https://github.com/aspnet/home/wiki/roadmap/
ASP.NET Core doc
https://docs.microsoft.com/zh-cn/aspnet/core/
Katana 項目入門
https://msdn.microsoft.com/zh-cn/magazine/dn451439.aspx
Exploring the new .NET "dotnet" Command Line Interface (CLI)
http://www.hanselman.com/blog/ExploringTheNewNETDotnetCommandLineInterfaceCLI.aspx
Announcing ASP.NET 5 Release Candidate 1
http://blogs.msdn.com/b/webdev/archive/2015/11/18/announcing-asp-net-5-release-candidate-1.aspx
ASP.NET 5 and .NET Core RC1 in context (Plus all the Connect 2015 News)
http://www.hanselman.com/blog/ASPNET5AndNETCoreRC1InContextPlusAllTheConnect2015News.aspx
ASP.NET 5 已終結,迎來 ASP.NET Core 1.0 和 .NET Core 1.0
http://www.oschina.net/news/70049/aspnet5-is-dead-introducing-aspnet-core-1-0-and-netcore-1-0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM