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