OWIN初探

OWIN初探前言 OWIN在.NET Web Servers与Web Application之间定义了一套标准接口,OWIN的目标是用于解耦Web Server和Web Application。基于此标准,鼓励开发者开发简单、灵活的模块,从而推进.NET Web Development开源生态系统的发展。Ope

前言

     OWIN在.NET Web Servers与Web Application之间定义了一套标准接口,OWIN的目标是用于解耦Web Server和Web Application。基于此标准,鼓励开发者开发简单、灵活的模块,从而推进.NET Web Development开源生态系统的发展。Open Web Server Interface for .NET的首字母缩写即:OWIN

     更多关于OWIN的定义可访问百度百科

一、OWIN

      目前微软为OWIN提供了一套解决方案即ASP.NET – Katana 项目,Katana项目依赖于OWIN.dll的类库,其中OWIN.dll类只有非常小的45k,以下为OWIN.dll的代码:

复制代码
using System;
using System.Collections.Generic;
namespace Owin
{
    public interface IAppBuilder
    {
        IDictionary<string, object> Properties
        {
            get;
        }
        IAppBuilder Use(object middleware, params object[] args);
        object Build(Type returnType);
        IAppBuilder New();
    }
}
复制代码

     所以OWIN.dll只是定义了基础的接口,如何实现还需要依赖其他解决方案才能实现一个简单的Hello Word示例。所以OWIN是一套解耦Web Server和Web Application的标准,让开发者能居于该标准实现更多的底层架构。

     国内的大牛也居于OWIN标准开发了一套OWIN的Web Server,TinyFox

二、用Katana实现一个自服务的OWIN的Hello Word

     需要引用一下程序集(可通过Nuget获取)。

     1、Owin.dll

     2、Microsoft.Owin.dll

     3、Microsoft.Owin.Hosting.dll

     4、Microsoft.Owin.Host.HttpListener.dll

    创建一个控制台程序

    新建一个Startup.cs文件,代码如下:

复制代码
public class Startup
{
     public void Configuration(IAppBuilder app)
     {
         app.Run(HandleRequest);
     }

     static Task HandleRequest(IOwinContext context)
     {
         context.Response.ContentType = "text/plain";
         return context.Response.WriteAsync("Hello, world!");
     }
}
复制代码

其中IAppBuilder接口定义于OWIN.dll,IOwinContext定义于Microsoft.Owin.dll.

     修改Program.cs文件,代码如下:

复制代码
static void Main(string[] args)
{
     var url = "http://localhost:8080/";
     var startOpts = new StartOptions(url);
     using (WebApp.Start<Startup>(startOpts))
     {
         Console.WriteLine("第一个Owin自服务" + url);
         Console.ReadLine();
     }
}
复制代码

、意义

     owin编写的自服务,可以运行于windows、Linux、FreeBSD。为C#的夸平台提供了可行的方案。在Windows上我们有强大的IIS,简易的部署方式。但是将NET程序部署至Linux、FreeBSD总是存在不同的坑,在Linux上部署Web应用,国内大部分使用的是Jexus。

     个人认为OWIN最大的进步是将owin + Web API + docker打包将Linux的环境部署的“坑”进一步可控,每次更新将一个稳定的Docker程序发布即可。为NET的跨平台商业应用必须从编码–>测试–>发布–>运维的生命周期内可控。

 
**********************转摘:
https://www.cnblogs.com/maydear/p/4695944.html
 

今天的文章OWIN初探分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/55566.html

(0)
编程小号编程小号
上一篇 2023-08-27 18:30
下一篇 2023-08-27 19:06

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注