博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Nancy On .Net Core Docker] 轻量级的web框架
阅读量:6502 次
发布时间:2019-06-24

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

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

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

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

      

 

      这和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
() .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 ,这样就可以很轻松的集群或者部署。

 

  git地址:

 

  如果你觉得对你有帮助,请不要吝啬你的star ,谢谢:)

转载于:https://www.cnblogs.com/codefish/p/5924481.html

你可能感兴趣的文章
利用ZYNQ SOC快速打开算法验证通路(5)——system generator算法IP导入IP integrator
查看>>
指针和引用的区别
查看>>
运行PHP出现No input file specified错误解决办法
查看>>
【重建】从FJOI2016一试谈起
查看>>
selenium之frame操作
查看>>
php 引入其他文件中的变量
查看>>
MYSQL体系结构-来自期刊
查看>>
mysql的基本知识
查看>>
webpack入门(二)what is webpack
查看>>
UnitOfWork以及其在ABP中的应用
查看>>
学习C语言必须知道的理论知识(第一章)
查看>>
for语句内嵌例题与个人理解
查看>>
眠眠interview Question
查看>>
[转]CSS hack大全&详解
查看>>
RPC-client异步收发核心细节?
查看>>
#define WIN32_LEAN_AND_MEAN 的作用
查看>>
仿余额宝数字跳动效果 TextCounter
查看>>
简化代码的微小修改
查看>>
你必须知道的.net学习总结
查看>>
Axure8.0 网页 or App 鼠标滚动效果
查看>>