轻量级的web框架[Nancy On .Net Core Docker]

 .net core现在已经有了大的发展,虽然笔者现在已经从事python开发,但是一直在关注.net的发展,在逛博客园的时候,发现有大家都会提到Nancy这个框架,在简单的使用之后,发现竟然是如此的简单而优雅

public  class  SampleModule : Nancy.NancyModule
{
     public  SampleModule()
     {
         Get[ "/" ] = _ =>  "Hello World!" ;
     }

}

 代码已经上传到git上,包含源代码和docker打包脚本,大家有兴趣可以自行研究

      https://github.com/BruceDone/webapi 

      这和python里面的flask 类似,都是简单好用。今天我们来做一个简单好用的.net core 版的nancy 应用,然后将程序打包到docker 并发布和使用。

  •  开发环境:Marc Pro

  •  IDE: vscode

  • .Net Core 

  • Docker

     在开发前请保证以上的环境都已经安装好了

  1.    创建文件夹webapi 执行命令         

    dotnet new   

           2.    执行完后将初使化一些必要的文件 ,打开package.json,将如下内容复制进去  

{

  "version": "1.0.0-*",

  "buildOptions": {

    "debugType": "portable",

    "emitEntryPoint": true

  },

  "dependencies": {

    "Microsoft.NETCore.App": {

      "version": "1.0.0",

      "type": "platform"

    },

    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",

    "Microsoft.AspNetCore.Owin": "1.0.0",

    "Nancy": "2.0.0-barneyrubble"

  },

  "commands": {

    "web": "Microsoft.AspNet.Server.Kestrel"

  },

  "frameworks": {

    "netcoreapp1.0": {}

  }

}

    3.    OK.保存的时候vscode 会自动导入相关的dll文件,引入成功后我们先创建StartUp.cs文件 

using Microsoft.AspNetCore.Builder;

using Nancy.Owin;


namespace NancyApplication

{

    public class Startup

    {

        public void Configure(IApplicationBuilder app)

        {

            app.UseOwin(x => x.UseNancy());

        }

    }

}

  4.    保存后创建HomeModel.cs 文件

using Nancy;

namespace NancyApplication

{

    public class HomeModule : NancyModule

    {

        public HomeModule()

        {

            Get("/", args => "Hello World, it's Nancy on .NET Core");

        }

    }



    public class PageModule : NancyModule

    {

        public PageModule()

        {

            Get("/person/{name}", args => new Person() { Name = args.name });

        }

    }



    public class Person

    {

        public string Name { get; set; }

    }

}

   路由与返回值都已经写好,我这里就不解释相关的代码了,有兴趣的可以自行深入了解

 

  4.    编辑Program.cs文件

using System.IO;

using Microsoft.AspNetCore.Builder;

using Microsoft.AspNetCore.Hosting;

 


namespace NancyApplication

{

    public class Program

    {

        public static void Main(string[] args)

        {

            var host = new WebHostBuilder()

                .UseContentRoot(Directory.GetCurrentDirectory())

                .UseKestrel()

                .UseUrls("http://*:5000")

                .UseStartup<Startup>()

                .Build();

 

            host.Run();

        }

    }

}

  

  5.    OK,必要的文件都已经准备好了,然后运行 dotnet run ,访问http://127.0.0.1:5000 就可以看到结果,    

     

 6.使用Docker来部署程序

 

 

访问我们的api地址:

± |master ?:1 ✗| → curl http://127.0.0.1:5000/person/bruce{"name":"bruce"}

   程序和代码我都已经打包到git 上了,里面有相关的说明 ,程序很方便的打包成了docker ,这样就可以很轻松的集群或者部署。

相关文章:

原文地址:http://www.cnblogs.com/codefish/p/5924481.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
什么是Nancy呢?如果你学习过Ruby的话,就会知道Ruby中有个框架叫做Sinatra,Nancy就是Sinatra的.Net版本。如果你感觉微软的MVC过于笨重、过于繁琐,那么Nancy可能就是你苦苦寻找的东西。Nancy是一个轻量级的独立的框架,下面是官网的一些介绍:Nancy 是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台,框架的目标是保持尽可能多的方式,并提供一个super-duper-happy-path所有交互。Nancy 设计用于处理  DELETE ,  GET ,  HEAD ,  OPTIONS ,  POST ,  PUT   和 PATCH  等请求方法,并提供简单优雅的 DSL 以返回响应。Nancy和Asp.net MVC原理相似,但有自己的一套路由机制,在使用上更加易用,可以用Nancy快速开发一些网站。Nancy并不依赖任何现有的框架,所以他可以运行在任何平台上面。官方网站 http://nancyfx.org/ 更详细的介绍参见 http://blog.spinthemoose.com/2011/07/18/nancy-a-micro-web-framework-for-net/ 顺便介绍个使用Nancy 做的Quartz.netweb控制台 https://quartznetwebconsole.codeplex.com/ 参考文章:使用Nancy和Simple.Data两个轻量级框架打造一个分布式开发系统(一)Frictionless .NET Web App Development with NancyFrictionless .NET Web App Development with Nancy Part II - Introducing a View EngineFrictionless .NET Web App Development with Nancy Part III - Introducing MongoDBFrictionless .NET Web App Development with Nancy Part IV – Hosting Slides from ANUG talk on Nancy扩展NoteService,支持NancyFx用Nancy和Simple.Data创建一个图片博客 第一部分:开始一个工程用Nancy和Simple.Data创建一个图片博客 第二部分:定义routes用Nancy和Simple.Data创建一个图片博客 第三部分:渲染一些ViewsIntegrating Nancy with protobuf-netBuild Simple Web UIs with the Nancy Framework轻量级MVC框架Nancy学习 标签:web框架

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值