ASP.NET MVC Owin 基本理解

一、OWIN  

  OWIN(Open Web Interface for .Net),定义了一个服务器(IIS)和Web应用程序(MVC,Webform)通信的标准接口,并且通过抽象层使得这两个在微软平台结合紧密的组件彼此解耦。通过将Web服务器从应用程序解耦,使得为.NET Web开发创建中间件和移植Web应用程序到其他托管——比如,Window服务或其他进程的自我托管——变得更加容易,使得便携式 .NET Web 应用以及跨平台的愿望成为现实, 标准的 OWIN 应用可以在任何 OWIN 兼容的服务器上运行, 不再依赖与 Windows 和 IIS ,没有 Windows , 更没有 IIS , OWIN 应用就能正常运行。

  主要包括以下组件:

  服务器 (Server)

    HTTP 服务器直接与客户端交互, 并用 OWIN 语义处理请求,服务器需要一个适配层将客户请求转换 成 OWIN 语义。 支持 OWIN 的服务器有 Katana 和 Nowin ,

       Web 框架 (Web Framework)

    构建在 OWIN 之上的自包含的独立组件, 向 Web 应用提供可用的对象模型或者接口。 Web 框架可 能需要一个适配层来转换 OWIN 语义。 支持 OWIN 的 Web 框架有:

    • Nancy
    • SignalR
    • WebApi
    • FubuMVC
    • Simple.Web
    • DuoVia.Http

  Web 应用 (Web Application)
    一个特定的 Web 应用, 通常构建在 Web 框架之上, 使用 OWIN 兼容的服务器运行。
  中间件 (Middleware)
    特定目的的服务器和应用之间的可插拔组件, 可以监视、 路由、 修改请求与响应。
  宿主 (Host)
    应用与服务器所在的进程, 主要负责应用的启动, 有些服务器自身也是宿主, 比如 Nowin 。

二、Katana

  OWIN是一组规范,没有具体的实现,katana就是微软对OWIN规则的一组实现,其包含组件,包含了ASP.NET的Microsoft.Owin.Host.System.Web、自托管的环境(控制台,服务)的Microsoft.Owin.Host.HttpListenter 监听,还包括中间件模块主要有:

  Microsoft.Owin.Compression(压缩模块)

  Microsoft.Owin.Cors(跨源资源共享模块)

  Microsoft.Owin.Security.*(安全模块)

  Microsoft.Owin.StaiticFiles(静态文件访问模块)

  这些OWIN 组件都是通过通过 NuGet 包的形式发布,与.NET框架版本分离,不出现在添加引用的界面内。

  另外,OWIN的实现还有 Freya、ASP.NET vNext。

原文地址:https://www.cnblogs.com/shawnhu/p/8392067.html