我什麼時候應該使用 OWIN Katana?
我是 OWIN 和 Katana 的新手。我真的不明白為什麼我應該使用 OWIN,而我可以使用
IIS. 為簡化起見,我的問題是:如果我跳過適配 OWIN 並在我的網站上使用 IIS,我會失去什麼?我用Google搜尋,但沒有一個簡單的解釋。這裡有一些資訊,但他們使用了一些行話,所以我無法理解。
在 asp.net WebApi v2 中,OWIN 管道成為預設值。它最終將成為任何 asp.net 項目下的標準管道。
我不能比這裡寫的更好:http ://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana
“ *.NET 的開放式 Web 界面 (OWIN)”*部分完美地解釋了 OWIN 的目標。
如果沒有 OWIN,asp.net 位將與 IIS 與應用程序通信的方式耦合。OWIN 抽象了 Web 伺服器和框架組件。這意味著您的應用程式碼現在將知道 OWIN 介面,但不知道為請求提供服務的網路伺服器。
作為回報,應用程序可以更容易地在主機和可能的整個平台/作業系統之間移植。例如,在控制台或任何程序中託管應用程序的能力允許 Mono 毫不費力地託管它……(Raspberry Pi 任何人)
第二個方面是它作為管道工作。
您可以在網路伺服器和您的應用程序之間插入任何中間件(以及任意數量的中間件)。
這允許更多的模組化解決方案。您可以開發可影響應用程序的請求/響應的可再分發中間件,但將這些模組與應用程式碼分開。
為了說服自己了解這種模組化方法的好處,請查看可用於 OWIN 的 nuget 包: http ://www.nuget.org/packages?q=owin
許多這些包以前是核心 asp.net 功能,並已被提取為中間件。
例如,使用各種 OAuth 提供程序添加對登錄的支持成為基礎架構問題(中間件),不再需要成為應用程式碼的一部分:
- <http://www.nuget.org/packages/Microsoft.Owin.Security.Google/>
- <http://www.nuget.org/packages/Microsoft.Owin.Security.Facebook/>
- <http://www.nuget.org/packages/Microsoft.Owin.Security.ActiveDirectory/>
…
或者,如果您想用可愛的貓圖片自動替換您網站上的所有圖片,您也可以透明地執行此操作:
<https://github.com/serbrech/Owin.Catify>
編輯:它現在可以作為一個 nuget 包使用:Owin.Catify!
