關於《Linux.NET學習手記(8)》的補充說明

早前的一兩天《Linux.NET學習手記(8)》發佈了,這一篇主要是講述OWIN框架與OwinHost之間如何根據OWIN協議進行通訊構成一套完整的系統。文中咱們還直接學習如何直接操做OWIN字典,從OwinHost中拿數據進行直接使用。html

不過文章發佈以後,有朋友提示我,文章出了點細節上的問題,我細細度量以後,發現果真出了狀況,而且還不是一個可有可無的小問題,本打算把那篇文章下線,待修改好以後再從新上線,網友「王爺」提醒到,能夠爲文章專門寫上一篇補充文,這樣很有手稿的感受。考量之下我接受了王爺的建議,「Linux.NET學習手記」本就是我的學習的記錄,也算得上是手稿的一種。因而就有了這一篇的補充文。框架

《Linux.NET學習手記(8)》中主要犯了如下這幾個錯誤:學習

  一、誤將「Microsoft.OWIN」當「OWIN」,使「OWIN」的概念擴大。htm

  二、「Middleware「其實並非OWIN必須的blog

  三、適配器不是這樣用的接口


一、「Microsoft.OWIN」不等於「OWIN」開發

《Linux.NET學習手記(8)》中,雖然文中並無任何一個地方指出「Microsoft.OWIN」是「OWIN」這麼一個說法,可是文章的寫做手法中,卻很是容易的把讀者引入歧途,讓讀者誤覺得「OWIN」其實就是「Microsoft.OWIN」。什麼是「OWIN」,"OWIN"說白了就是一個協議,一個字典,裏面包含了Environment,「OWIN.dll」其實也不過是一個接口,沒有更多。全部根據「OWIN」所派生出來的東西已經不是OWIN本身了。get

所以,在《Linux.NET學習手記(8)》應把全部的「OWIN」改成「Microsoft.OWIN」,指明這是針對「Microsoft.OWIN」所誕生出的東西。io

 

二、「Middleware」實際上是「Microsoft.OWIN」的東西im

在這裏,我須要上一個圖,說說爲何在現有的OWIN框架中以及我也爲什麼寫做時發生誤判:

如圖所示,雖然OWIN協議並不屬於任何的一方,可是出現得最先的關於OWIN協議的實現是微軟的」Microsoft.OWIN「,所以目前許多的OWIN框架都是基於」Microsoft.OWIN「來實現。而」Startup「、」Configuration「、」Middleware「等組件是」Microsoft.OWIN「所提出的知識點,所以這些OWIN框架也就天然而然的會出現這一類的事物來。

所以,咱們文中說到」轉動咱們的鑰匙「,實際上是轉動」Microsoft.OWIN「的鑰匙,而不是整個」OWIN「大門的鑰匙。

 

三、適配器的真正用法

上一節中已經說得很是清楚了,目前現存的OWIN框架都是針對「Microsoft.OWIN」所締造出來的框架,所以這些OWIN框架與Katana之間是無縫的鏈接,根本就無需適配器這一類型的玩意,而Jexus則不一樣,適配器這一說法是Jexus針對這些基於「Microsoft.OWIN」所實現出來的OWIN框架可以在Jexus.OwinHost中使用所誕生出的組件(感謝Jexus原做者的提醒),下面附上宇內流雲給出的概念圖:


雖然即便不瞭解OWIN自己,對於平常的開發沒有太大的影響(除非涉及到直接操做OWIN字典這方面),框架仍是照樣的用,項目仍是照樣的開發。可是,我我的對於知識的準確性要求比較高,須要作到一絲不苟。若是更多的朋友發現有其餘錯誤的,也歡迎指出更正。謝謝。

相關文章
相關標籤/搜索