首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET核心中间件还是OWIN中间件?

ASP.NET核心中间件还是OWIN中间件?
EN

Stack Overflow用户
提问于 2016-09-10 18:11:36
回答 2查看 9.9K关注 0票数 33

据我所知,ASP.NET Core除了支持自己的本地中间件之外,还支持OWIN中间件(通过app.UseOwin())。

ASP.NET核心中间件和OWIN中间件有什么区别?

在设计新的中间件时,我如何知道应该将其设计为ASP.NET核心中间件还是自带中间件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-11 10:35:26

你的问题让我很好奇,我想和大家分享一下,到目前为止我学到了什么。

Katana是OWIN规范的实现。在Katana 3.0版本之后,这项技术已经完全集成到我们今天所知道的ASP.NET核心的web堆栈中。

虽然这种转换与自有规范有很大的相似之处。虽然已经做了一些改变。为了在ASP.NET核心中使用现有的OWIN中间件,通过一个可选的特性("app.UseOwin()")来支持OWIN。

如果您想以您的中间件ASP.NET应用程序和ASP.NET核心应用程序为目标,那么我将使用OWIN中间件。如果您希望为ASP.NET核心开发人员提供一流的公民体验,那么ASP.NET核心中间件将被认为更“合适”。

有关ASP.NET核心中间件和OWIN中间件之间关系的一些信息可以在这里找到:

票数 29
EN

Stack Overflow用户

发布于 2016-09-27 12:25:53

我已经了解到这一点: ASP.NET核心中间件的级别高于在较低级别上的OWIN中间件。

ASP.NET核心中间件的优点是当您在可以使用的HttpContext中传递时,开发中间件要容易得多。缺点是您开发的中间件依赖于ASP.NET核心。

OWIN在一个较低的级别上,您将得到一个OWIN环境,即IDictionary<string, object>。优点是它没有绑定到ASP.NET,因此可以在任何OWIN服务器上运行(比如现在)。缺点是编写代码需要付出更多的努力,因为您必须从OWIN环境构建自己的上下文,或者直接使用OWIN环境字典,并跟踪所有主键和对象。

编辑:您不必自己跟踪OWIN键,您可以使用OwinEnvironment类获得强类型的环境。

代码语言:javascript
复制
var environment = new OwinEnvironment(HttpContext);
var features = new OwinFeatureCollection(environment);
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39429122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档