程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> [Nancy On .Net Core Docker] 輕量級的web框架,nancydocker

[Nancy On .Net Core Docker] 輕量級的web框架,nancydocker

編輯:關於.NET

[Nancy On .Net Core Docker] 輕量級的web框架,nancydocker


    .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

     在開發前請保證以上的環境都已經安裝好了

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 ,這樣就可以很輕松的集群或者部署。

 

  git地址:https://github.com/BruceDone/webapi

 

  如果你覺得對你有幫助,請不要吝啬你的star ,謝謝:)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved