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

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

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

OWIN 與 Katana 的關係

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

Open Web Interface for .NET (OWIN)web

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

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

Owin定義規範服務器

OWIN

  • 服務器 (Server)mvc

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

  • Web 框架 (Web Framework)框架

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

  • 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

相關文章
相關標籤/搜索