Fre*_*red 20 owin-middleware asp.net-core
据我了解,app.UseOwin()除了自己的本机中间件外,ASP.NET Core还支持OWIN中间件(via ).
ASP.NET Core中间件和OWIN中间件有什么区别?
在设计新的中间件时,我如何知道是否应将其设计为ASP.NET Core中间件或OWIN中间件?
Ral*_*ing 17
你的问题让我很好奇,我想分享一下,到目前为止我学到了什么.
Katana是OWIN规范的实现.在Katana 3.0版之后,这项技术已经完全集成到我们今天称为ASP.NET Core的Web堆栈中.
虽然这种转变与OWIN规格保持相似.虽然已经做了一些改变.为了在ASP.NET Core中使用现有的OWIN中间件,通过可选功能(" app.UseOwin()")支持OWIN .
如果您希望使用中间件ASP.NET应用程序和ASP.NET核心应用程序,那么我将使用OWIN中间件.如果您希望为ASP.NET Core开发人员提供一流的公民体验,那么ASP.NET核心中间件将被认为更"合适".
有关ASP.NET Core中间件和OWIN中间件之间关系的一些信息可以在这里找到:
我是这样理解的;ASP.NET Core 中间件的级别高于 OWIN 中间件,后者处于较低级别。
ASP.NET Core 中间件的优势在于,当您传入HttpContext可以使用的中间件时,可以更轻松地开发中间件。缺点是你开发的中间件依赖于 ASP.NET Core。
OWIN 处于较低级别,您将获得一个 OWIN 环境,它是IDictionary<string, object>. 优点是它不依赖于 ASP.NET,因此可以在任何 OWIN 服务器(例如 Nowin)上运行。缺点是需要更多的编码工作,因为您必须从 OWIN 环境构建自己的上下文或直接使用 OWIN 环境字典并跟踪所有OWIN 键和对象。
编辑:您不必自己跟踪 OWIN 密钥,您可以使用OwinEnvironment该类来获得强类型环境。
var environment = new OwinEnvironment(HttpContext);
var features = new OwinFeatureCollection(environment);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6470 次 |
| 最近记录: |