博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OWIN初探(转)
阅读量:7135 次
发布时间:2019-06-28

本文共 1989 字,大约阅读时间需要 6 分钟。

 什么是 OWIN ?

   的全称是 "Open Web Interface for .NET", OWIN 在 .NET Web 服务器和 .NET Web 应用之间定义了一套标准的接口, 其目的是为了实现服务器与应用之间的解耦, 鼓励为 .NET Web 应用开发简单模块。

  OWIN 是一个开源开放的标准, 有助于建设 .NET 开发的开源生态环境,OWIN 定义了如下几个概念:

  • 服务器 (Server)

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

  • Web 框架 (Web Framework)

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

  • Web 应用 (Web Application)

    一个特定的 Web 应用, 通常构建在 Web 框架之上, 使用 OWIN 兼容的服务器运行。

  • 中间件 (Middleware)

    特定目的的服务器和应用之间的可插拔组件, 可以监视、 路由、 修改请求与响应。

  • 宿主 (Host)

    应用与服务器所在的进程, 主要负责应用的启动, 有些服务器自身也是宿主, 比如 Nowin 。

  为什么使用 OWIN

  正如上面所说, OWIN 定义了 .NET Web 服务器与 .NET Web 应用之间的标准接口, 将应用与服务器 解耦, 使得便携式 .NET Web 应用以及跨平台的愿望成为现实, 标准的 OWIN 应用可以在任何 OWIN 兼容的服务器上运行, 不再依赖与 Windows 和 IIS 。

  怎么使用 OWIN

  OWIN 通过 NuGet 包的形式发布, 获取和使用都非常方便。 下面就先建立一个最简单的 OWIN 应用:

  1. 打开 Xamarin Studio, 新建一个 C# 命令行程序, 如下图所示:

    OWIN Hello

  2. 然后打开项目属性, 确认目标框架设置为 Mono/.NET 4.5 , 如下图所示:

  3. 向项目中添加如下几个 NuGet 包:

    • Owin
    • Microsoft.Owin
    • Microsoft.Owin.Hosting
    • Microsoft.Owin.Host.HttpListener
  4. 添加一个 OWIN Startup 类, 代码如下:

    public class Startup {    public void Configuration(IAppBuilder appBuilder) {        appBuilder.Run(HandleRequest);    }    static Task HandleRequest(IOwinContext context) {        context.Response.ContentType = "text/plain";        return context.Response.WriteAsync("Hello, world!");    }}

    OWIN 约定的处理请求的代理类型是:

    Func
    handler

    对应上面 Startup 类的 HandleRequest 方法, 所以上面的 Startup 类就定义了一个最简单的 OWIN 应用, 向客户端输出 Hello, World!

  5. 在自动生成的 Program.cs 文件中的 Main 方法中添加如下代码, 来启动 OWIN 应用:

    class MainClass {    public static void Main(string[] args) {        var url = "http://localhost:8080/";        var startOpts = new StartOptions(url) {        };        using (WebApp.Start
    (startOpts)) { Console.WriteLine("Server run at " + url + " , press Enter to exit."); Console.ReadLine(); } }}
  6. 现在开始运行程序, 命令行显示如下:

    打开浏览器, 访问 http://localhost:8080/ , 得到的响应如下:

    OWIN Hello

  到目前为止, 没有 Windows , 更没有 IIS , OWIN 应用就能正常运行了。

转载地址:http://udcrl.baihongyu.com/

你可能感兴趣的文章
如何实现label长度固定,文字分散分布的效果
查看>>
视频去水印哪个好用,怎么一键去掉水印
查看>>
14. Longest Common Prefix
查看>>
Github 生成新的SSH密钥并添加至SSH-Agent
查看>>
JavaScript高级程序设计(第3版)第3章
查看>>
解决manjaro更新后"pacman: error while loading shared libraries"
查看>>
人工智能深度学习Caffe框架介绍,优秀的深度学习架构
查看>>
单例设计模式
查看>>
Mysql 使用 optimizer_trace 查看执行流程,分析、验证优化思路
查看>>
常用SQL汇总(Java开发)
查看>>
3.java类和对象
查看>>
传统软件行业与互联网行业对比
查看>>
简易RPC框架:序列化机制
查看>>
这部关于 AI 的纪录片,还是值得一看的
查看>>
ubuntu16:04 配置github 实现提交代码自动触发jenkins job
查看>>
使用postman调试jwt开发的接口
查看>>
ReactNative实现tab标签组合
查看>>
看图了解RocksDB
查看>>
[LeetCode] 384. Shuffle an Array
查看>>
VUE项目测试,移动端
查看>>