小编典典

我什么时候应该使用 OWIN Katana?

all

我是 OWIN 和 Katana 的新手。我真的不明白为什么我应该使用 OWIN,而我可以使用IIS. 为了简化,我的问题是:如果我跳过学习 OWIN
并在我的网站上使用 IIS,我会失去什么?


阅读 78

收藏
2022-05-09

共1个答案

小编典典

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 提供程序添加对登录的支持成为基础架构问题(中间件),不再需要成为应用程序代码的一部分:

或者,如果您想用可爱的猫图片自动替换您网站上的所有图片,您也可以透明地执行此操作:

https://github.com/serbrech/Owin.Catify

编辑:它现在可以作为一个 nuget
包使用:Owin.Catify

2022-05-09