Microsoft.Owin.Host.SystemWeb和Microsoft.Owin.Host.IIS有什么区别?

4
据我所知,Microsoft.Owin.Host.SystemWeb允许我在IIS上运行OWIN应用程序,但今天我发现了另一个名为Microsoft.Owin.Host.IIS的软件包(从它的名称中可以理解)也有类似的目的。
实际上,我认为我错了,这两个包非常不同。
因此,以下是问题:
1.这两个软件包之间的区别是什么?
2.在什么情况下应该使用其中之一?
3.最后(可选):有人能给我提供一个链接,以便深入了解所有这些ASP.NET 5的混乱吗? (微软创建新的平台/框架/功能比文档更快,所以现在我感到相当迷惑...)
2个回答

6
回答您的可选问题:
System.Web存在的问题在于它过于臃肿且与IIS紧密耦合。例如,您无法在控制台窗口中托管MVC网站,必须在IIS中运行。OWIN倡议旨在通过添加抽象来模块化和解耦Web堆栈。
实质上,整个Web堆栈被简化为一个中间件组件的管道(类似于node.js的方式)。中间件组件或AppFunc(Func, Task>)是一个函数,它接受一个上下文(包含请求、响应和其他内容...),并对其进行一些操作(请求解析、路由、呈现视图、记录日志等)。整个堆栈随后变成一系列中间件组件:每个组件调用链中的下一个组件,或通过不调用下一个组件来终止执行。
ASP.NET 5在演进方面是自然而然的,因为它基于OWIN构建,从而实现了模块化并消除了对System.Web(和IIS)的依赖。现在所有内容都是选择加入的,并且您甚至可以使用.NET Core跨平台运行应用程序。没有OWIN,这是不可能的。

谢谢,我其实已经知道了(即我知道ASP.NET 5的主要目标),只是想要更详细的解释。顺便说一句,我认为那个答案是正确的,对其他人可能也有用。 - rtf_leg
您期望的详细程度是什么? :) - mstaessen
有点像一篇巨大的博客文章(可能是由某位微软架构师撰写),描述了整个ASP.NET 5生态系统。从常见概念开始,详细描述每个相关包的内容。我认为应该是这样的。是的,实际上它应该是一本书 :-) 但不用担心我,正如我所说,你的答案是完全正确的 - 的确 - 微软对于完全解耦的系统有一个梦想,并且他们在每个ASP.NET 5的演示中都提到了这一点... - rtf_leg
坏处是:我找不到详尽的文档来解释所有这些创新。我完全理解OWIN(以及MS的实现称为Katana),但我无法掌握所有ASP.NET 5的更改。最后一次尝试是大约三、四个月前,但没有成功——我当然找到了一些答案,但仍有许多重要问题没有得到回答——仍然有太多魔法——仍然不能自信地开始使用它。 - rtf_leg
1
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - mstaessen

3

微软比记录新平台/框架/功能的速度更快

MVC 6、Katana(OWIN)和ASP.NET 6的并行开发并没有真正帮助澄清所有正在进行的事情之间的混乱。

据我所知:

Microsoft.Owin.Host.IIS 命名空间、程序集和包是为 Helios,在此博客文章中介绍 而创建的。基本上,它旨在在IIS中运行托管代码,而不需要ASP.NET,以提供自己的OWIN中间件。

因此,您似乎需要 Microsoft.Owin.Host.SystemWeb 来满足您的需求。这形成了一个OWIN主机,允许您的中间件使用 System.Web


1
据我了解,Helios允许完全删除集成管道,因此不再需要事件绑定(http://www.asp.net/aspnet/overview/owin-and-katana/owin-middleware-in-the-iis-integrated-pipeline)或其他棘手的修复方法。只有中间件、中间件、中间件——纯粹 :-) 我一定要立刻尝试Helios。 - rtf_leg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接