Katana 專案是微軟基於 OWIN (Open Web Interface for .NET) 規範建立的元件集合,旨在解決傳統 ASP.NET 架構耦合度高、難以模組化、不適應雲端部署等問題。
OWIN 定義 Web 伺服器與應用程式元件的互動標準,核心只有兩個元素:
using AppFunc = Func<IDictionary<string, object>, Task>;IDictionary<string, object> 保存請求/回應/伺服器狀態,隨管線傳遞每個元件提供 AppFunc,串聯成管線,OWIN 伺服器推送請求通過管線處理。所有元件應為非同步(回傳 Task)。
OWIN 規範定義核心 HTTP 鍵值(如 owin.RequestScheme、owin.RequestMethod、owin.RequestPath、owin.RequestQueryString、owin.ResponseStatusCode 等),使不同框架元件可在同一管線互操作,不綁定特定物件模型(如 HttpContextBase)。

Katana 元件依架構堆疊分層:
