我是奥文和卡塔纳的新手。我真的不明白为什么我应该使用OWIN,而我可以使用IIS。简单来说,我的问题是:如果我跳过学习OWIN而在我的网站上使用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接口,而不是服务于请求的Web服务器
作为回报,应用程序可以更容易地在主机和整个平台/操作系统之间进行移植。例如,在控制台或任何进程中托管应用程序的能力允许Mono不费力地托管它。。。(覆盆子)
第二个方面是它作为一个管道工作
您可以在Web服务器和应用程序之间插入任何中间件(以及任意数量的中间件)。
这允许更多的模块化解决方案。您可以开发可再发行的中间件,这些中间件可能会影响应用程序的请求/响应,但要将这些模块与应用程序代码分开
为了让自己相信这种模块化方法的好处,请查看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