gpt4 book ai didi

visual-studio-2015 - ASP.NET Core 是否仍使用 OWIN?

转载 作者:行者123 更新时间:2023-12-04 03:25:57 25 4
gpt4 key购买 nike

我注意到在使用 C# 构建较旧的 MVC 项目时,有很多对 OWIN 库的引用。但是在 VS2015 SP3 中创建 .NET Core Web 应用程序时,似乎没有提及它。

这个库过时了吗?

最佳答案

OWIN 不是库,它是 specification .从文档中,

OWIN defines a standard interface between .NET web servers and web applications.



OWIN 的“大创意”是您可以将应用程序与其运行的服务器解耦,前提是每个人都可以就使用的通用接口(interface)达成一致。实际上,兼容 OWIN 的服务器可以运行任何兼容 OWIN 的应用程序。这是对我们过去紧密耦合的改进(应用程序只能在 IIS 上运行,仅此而已)。

许多 OWIN 规范都致力于描述各种属性的名称。与 OWIN 兼容的服务器将传入请求转换为 Dictionary<string, object>包含一堆键,如 owin.RequestBodyowin.ResponseBody .如果将请求传递给的应用程序或中间件知道如何读取这些 key ,则它可以处理该请求。就是这样!

有 OWIN 库(如 OWINMicrosoft.Owin ),这是一个常见的混淆来源。这些库只是 OWIN 接口(interface)的类型安全实现,或者是使与 OWIN 兼容的组件交互变得更容易的帮助程序。

正如@Murray 和@Tseng 所指出的,ASP.NET Core 不是基于 OWIN 构建的,但它与 OWIN 兼容。或者,更确切地说,运行 ASP.NET Core 的服务器(Kestrel、WebListener、IIS)与 OWIN 兼容。 ASP.NET Core 是对低级请求(“OWIN 级别”)的进一步抽象,可以轻松构建 Controller 和服务器渲染页面等内容。

由于 ASP.NET Core 与 OWIN 兼容,因此很容易插入任何与 OWIN 兼容的中间件。 Microsoft.AspNetCore.Owin包暴露了 UseOwin方法:
app.UseOwin(pipeline =>
{
pipeline(next => OwinHello);
// where OwinHello is a compatible middleware function
});

documentation有关将 OWIN 中间件添加到 ASP.NET Core 管道的更多示例。

关于visual-studio-2015 - ASP.NET Core 是否仍使用 OWIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38713134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com