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

相关文章:

  • 让我们Core在一起:ASP.NET Core & .NET Core

  • ASP.NET Core Docker部署

  • docker4dotnet #3 .net猿和小鲸鱼的苹果山之旅

  • Nancy Web框架

  • ASP.NET Core开发-使用Nancy框架

  • Nancy之基于Nancy.Hosting.Aspnet 的小Demo

  • 使用Nancy打造TaskManager2.0管理系统

  • Nancy之结合tinyfox给我们的应用提供简单的数据服务 

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


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/328322.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git使用中的一些奇技淫巧

转载自 Git使用中的一些奇技淫巧Git作为当今最流行的分布式代码版本管理系统&#xff0c;它的出现改变了软件的开发流程&#xff0c;大大地提高了开发流畅度。 本人使用Git也有一段时间了&#xff0c;一直都只是使用一些最最基本的几个命令&#xff0c;对于不复杂的代码工程来…

oracle 更新参数,Oracle动态、静态参数参数修改规则

首先&#xff0c;查看要修改的oracle参数的属性(动态or静态)SQL> select name,value,isses_modifiable,issys_modifiable from V$PARAMETER where namemax_dump_file_size;注&#xff1a;isses_modifiable 为Y&#xff0c;session级别修改的参数&#xff0c;SQL>alter se…

银行营业网点管理系统——entity类(CityArea)

package BranchesMgr.entity; /*** 城区表* author Administrator**/ public class CityArea {private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id id;}public String getName() {return name;}public void setName(Stri…

漫画:如何用Zookeeper实现分布式锁?

转载自 漫画&#xff1a;如何用Zookeeper实现分布式锁&#xff1f;什么是临时顺序节点&#xff1f;让我们来回顾一下Zookeeper节点的概念&#xff1a;Zookeeper的数据存储结构就像一棵树&#xff0c;这棵树由节点组成&#xff0c;这种节点叫做Znode。Znode分为四种类型&#…

使用CoreProfiler/NanoProfiler实现跨平台amp;应用的整合性能调试

NanoProfiler是一个开源.NET性能调试类库&#xff0c;CoreProfiler是其.NET Core版本的实现。在之前的一些文章中&#xff0c;我曾介绍过NanoProfiler的主要使用方式&#xff0c;以及如何为生产环境&#xff0c;基于ELK对应用性能进行调试和监控。不过&#xff0c;对于一般的用…

oracle授权序列,oracle 第二集序列

方案一&#xff1a;直接授权法1.用happyy2165登录&#xff0c;之后&#xff0c;授权grant select on HAPPYY2165.STUDENT to scott2.用scott登录&#xff0c;用如下代码去访问Student表select * from HAPPYY2165.student方式二&#xff1a;通过角色去控制1.自定义角色 role_tes…

两种播放m3u8链接的方法

两种播放m3u8链接的方法 置顶 2018年12月21日 10:38:10 Saddyの云 阅读数&#xff1a;15200 本文将提供两种方法介绍如何播放m3u8链接 第一种是添加浏览器插件 Native HLS Playback &#xff0c;此处以Firefox举例(谷歌浏览器也可以用这个插件&#xff0c;苹果电脑自带浏览器…

漫画:什么是ZooKeeper

转载自 漫画&#xff1a;什么是ZooKeeperZookeeper的数据模型Zookeeper的数据模型是什么样子呢&#xff1f;它很像数据结构当中的树&#xff0c;也很像文件系统的目录。树是由节点所组成&#xff0c;Zookeeper的数据存储也同样是基于节点&#xff0c;这种节点叫做Znode。但是&a…

异步性能:了解 Async 和 Await 的成本

异步编程长时间以来一直都是那些技能高超、喜欢挑战自我的开发人员涉足的领域 — 这些人愿意花费时间&#xff0c;充满热情并拥有心理承受能力&#xff0c;能够在非线性的控制流程中不断地琢磨回调&#xff0c;之后再回调。 随着 Microsoft .NET Framework 4.5 的推出&#xff…

什么叫做在oracle目录下,ORACLE directory 目录

Create directory让我们可以在Oracle数据库中灵活的对文件进行读写操作&#xff0c;极大的提高了Oracle的易用性和可扩展性。其语法为:CREATE [OR REPLACE] DIRECTORY directory AS pathname;本案例具体创建如下:create or replace directory exp_dir as /tmp;目录创建以后&…

银行营业网点管理系统——dao包(BaseDao)

package BranchesMgr.dao; /*** 数据库操作类* author Administrator**/ import java.sql.*; import java.util.List; public class BaseDao {Connection connnull;PreparedStatement psnull;ResultSet rsnull;public void getConnection(){try {Class.forName("com.micro…

netapp做内网穿透有问题

内网穿透 vue 返回 invalid host header 2019年03月17日 16:05:29 renzhehongyi 阅读数&#xff1a;1926收起 个人分类&#xff1a; 互联网Vue 问题&#xff1a;使用花生壳内网穿透只返回304&#xff0c;invalid host header 原因&#xff1a;新版的webpack-dev-server出于…

Visual Studio 15 Preview 5 发布 大幅提升性能

Visual Studio 15 Preview 5 发布了&#xff0c;该版本包括许多新的提升和 bug 修复。 微软发布了 Visual Studio 15 的第 5 个预览版本。据微软描述&#xff0c;Preview 5 的亮点是在性能和内存效率方面迈进了一大步&#xff0c;尤其是在加载一些插件方面&#xff0c;可以观看…

Spring Boot 单元测试详解+实战教程

转载自 Spring Boot 单元测试详解实战教程Spring Boot 的测试类库 Spring Boot 提供了许多实用工具和注解来帮助测试应用程序&#xff0c;主要包括以下两个模块。 spring-boot-test&#xff1a;支持测试的核心内容。spring-boot-test-autoconfigure&#xff1a;支持测试的自动…

oracle修改filesystem,(转):oracle、filesystem、backup日常巡检脚本

1.总脚本xunjian.codeexport PS1"hostname$"[$PWD] umask 022cd /u02/xunjian#######################xunjian check##################################################----1. filesystem check 文件系统检查rm -f /u02/xunjian/devdb2_xunjian.txtecho "1.fi…

华为校招2019

面试是在一个酒店里面的&#xff0c;人很多&#xff0c;面试和流水线一样有20-30个面试官同时进行&#xff0c;面试分成2轮一轮是技术面&#xff0c;一轮是主面。 一面是技术面是一个比较年轻的面试官&#xff0c;面试时间在30-60分钟&#xff0c;先自我介绍&#xff0c;问了…

EQueue 2.3.2版本发布(支持高可用)

前言 前段时间针对EQueue的完善终于告一段落了&#xff0c;实在值得庆祝&#xff0c;自己的付出和坚持总算有了成果。这次新版本主要为EQueue实现了集群功能&#xff0c;基本实现了Broker的高可用。另外还增加了很多实用的功能&#xff0c;对性能也做了很多优化。总之&#xff…

oracle spacial,Oracle Spacial(空间数据库)geometry元数据结构

geometry元数据内容每一维的名称、上下限和容差值存放在系统表中&#xff0c;用户不能直接访问&#xff0c;通过三个视图来存取&#xff1a;USER_SDO_GEOM_METADATA&#xff0c;可以更新ALL_SDO_GEOM_METADATA&#xff0c;只可以查询DBA_SDO_GEOM_METADATA&#xff0c;DBA可查询…

银行营业网点管理系统——dao包(BranchesDao)

package BranchesMgr.dao;import java.util.List;import BranchesMgr.entity.Branches;/*** 网点信息表的借口* author Administrator**/ public interface BranchesDao {//查询所有网点信息List<Branches> getBranches();//根据id查询指定的网点信息Branches BranchesIn…