Tro*_*yvs 10 obsolete owin visual-studio-2015 .net-core asp.net-core
我注意到在使用C#构建一个较旧的MVC项目时,有很多对OWIN库的引用.但是在VS2015 SP3中创建.NET Core Web应用程序时,似乎没有对它的引用.
这个图书馆已经过时了吗?
Nat*_*ini 13
OWIN不是一个库,它是一个规范.从文档中,
OWIN定义了.NET Web服务器和Web应用程序之间的标准接口.
OWIN的"大创意"是,如果每个人都可以就可以使用的通用接口达成一致,则可以将应用程序与其运行的服务器分离.实际上,兼容OWIN的服务器可以运行任何与OWIN兼容的应用程序.这是对我们过去的紧密耦合的改进(应用程序只能在IIS上运行,就是这样).
许多OWIN规范致力于描述各种属性的名称.一个OWIN兼容服务器将传入请求转换一个Dictionary<string, object>包含了一堆像钥匙的owin.RequestBody和owin.ResponseBody.如果传递请求的应用程序或中间件知道如何读取这些键,则它可以处理请求.而已!
有是 OWIN库(比如OWIN和Microsoft.Owin),这是混乱的公共源极.这些库只是OWIN接口的类型安全实现,或者是帮助更容易与OWIN兼容的组件进行交互的帮助程序.
正如@Murray和@Tseng指出的那样,ASP.NET Core不是基于OWIN构建的,而是与OWIN兼容的.或者,ASP.NET Core运行的服务器(Kestrel,WebListener,IIS)与OWIN兼容.ASP.NET Core是对低级请求("OWIN级别")的进一步抽象,可以轻松构建控制器和服务器呈现页面等内容.
由于ASP.NET Core 与 OWIN兼容,因此可以轻松插入任何与OWIN兼容的中间件.该Microsoft.AspNetCore.Owin包暴露了一种UseOwin方法:
app.UseOwin(pipeline =>
{
pipeline(next => OwinHello);
// where OwinHello is a compatible middleware function
});
Run Code Online (Sandbox Code Playgroud)
有关将OWIN中间件添加到ASP.NET Core管道的更多示例,请参阅文档.
| 归档时间: |
|
| 查看次数: |
2085 次 |
| 最近记录: |