1. 程式人生 > >關於《Linux.NET學習手記(8)》的補充說明

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

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

不過文章釋出之後,有朋友提示我,文章出了點細節上的問題,我細細度量之後,發現果然出了情況,並且還不是一個無關緊要的小問題,本打算把那篇文章下線,待修改好之後再重新上線,網友“王爺”提醒到,可以為文章專門寫上一篇補充文,這樣頗有手稿的感覺。考量之下我接受了王爺的建議,“Linux.NET學習手記”本就是個人學習的記錄,也算得上是手稿的一種。於是就有了這一篇的補充文。

  1、誤將“Microsoft.OWIN”當“OWIN”,使“OWIN”的概念擴大。

  2、“Middleware“其實並不是OWIN必須的

  3、介面卡不是這樣用的

1、“Microsoft.OWIN”不等於“OWIN”

《Linux.NET學習手記(8)》中,雖然文中並沒有任何一個地方指出“Microsoft.OWIN”是“OWIN”這麼一個說法,但是文章的寫作手法中,卻非常容易的把讀者引入歧途,讓讀者誤以為“OWIN”其實就是“Microsoft.OWIN”。什麼是“OWIN”,"OWIN"說白了就是一個協議,一個字典,裡面包含了Environment,“OWIN.dll”其實也不過是一個介面,沒有更多。所有根據“OWIN”所派生出來的東西已經不是OWIN自己了。

因此,在《Linux.NET學習手記(8)》應把所有的“OWIN”改為“Microsoft.OWIN”,指明這是針對“Microsoft.OWIN”所誕生出的東西。

2、“Middleware”其實是“Microsoft.OWIN”的東西

在這裡,我需要上一個圖,說說為什麼在現有的OWIN框架中以及我也為何寫作時發生誤判:

如圖所示,雖然OWIN協議並不屬於任何的一方,但是出現得最早的關於OWIN協議的實現是微軟的”Microsoft.OWIN“,因此目前許多的OWIN框架都是基於”Microsoft.OWIN“來實現。而”Startup“、”Configuration“、”Middleware“等元件是”Microsoft.OWIN“所提出的知識點,因此這些OWIN框架也就自然而然的會出現這一類的事物來。

因此,我們文中說到”轉動我們的鑰匙“,其實是轉動”Microsoft.OWIN“的鑰匙,而不是整個”OWIN“大門的鑰匙。

3、介面卡的真正用法

上一節中已經說得非常清楚了,目前現存的OWIN框架都是針對“Microsoft.OWIN”所締造出來的框架,因此這些OWIN框架與Katana之間是無縫的連線,根本就無需介面卡這一型別的玩意,而Jexus則不同,介面卡這一說法是Jexus針對這些基於“Microsoft.OWIN”所實現出來的OWIN框架能夠在Jexus.OwinHost中使用所誕生出的元件(感謝Jexus原作者的提醒),下面附上宇內流雲給出的概念圖:

雖然即使不瞭解OWIN本身,對於日常的開發沒有太大的影響(除非涉及到直接操作OWIN字典這方面),框架還是照樣的用,專案還是照樣的開發。但是,我個人對於知識的準確性要求比較高,需要做到一絲不苟。如果更多的朋友發現有其他錯誤的,也歡迎指出更正。謝謝。