Nancy是一个基于.net 和Mono 构建的HTTP服务框架,是一个非常轻量级的web框架。

  设计用于处理 DELETE, GET, HEAD, OPTIONS, POST, PUT 和 PATCH 等请求方法,并提供简单优雅的 DSL 以返回响应。它提供了一个super-duper-happy-path的交互方式,无需定义各种复杂的路由规则,Nancy会根据你的请求路径自动匹配。Nancy和ASP.NET MVC不同,它更多的是借鉴了Ruby的一些特性。

  Nancy 的特点:
    1. 建立了自下而上的,而不是简单地DSL的现有框架。删除很多不必要的限制和特性,尽可能的只引用你需要的组件。使其保持简单。
    2. 随处运行。Nancy不是建立在任何特定的平台下的的,它可以在任何地方运行。Nancy支持运行在ASP.NET/IIS,WCF,自宿主和任何OWIN。
    3. 定义了非常轻量的 DELETE, GET, HEAD, OPTIONS, POST, PUT 和 PATCH 等请求。
    4. 集成了各种模板引擎(Razor, Spark, dotLiquid 和自带的SuperSimpleViewEngine)。
    5. 强大的请求路径匹配,包括先进的参数功能。路径匹配策略可以使用自定义实现您的各种具体需求。
    6. 简单的Response的语法,可以返回int、string、HttpStatusCode无需显式地转换或封装你的Response——你只是返回你的参数,其他的Nancy会帮你完成。
    7. 一个强大的、轻量级的、测试框架帮助您验证您的应用程序。

  官方网站 : http://nancyfx.org/
  Github : https://github.com/NancyFx/Nancy

  1. 安装Nancy

    PM> Install-Package Nancy

    PM> Install-Package Nancy.Hosting.Aspnet //Nancy For Asp.net

    PM> Install-Package Nancy.Viewengines.Razor

    注意:要安装三个Nancy相关的包。

      Nancy ,

      Nancy.Hosting.Aspnet ,  Nancy 的  Asp.net 环境

      Nancy.Viewengines.Razor  提供Razor视图支持,

  2. 创建一个空的MVC 项目, ASP.NET Hosting

  3. 定义一个Bootstrapper.cs 类,参考例子里面的bootstrapper.cs文件

    记得配置静态文件目录,Nancy 的路由机制,所有的请求包括静态文件,都得走路由。所以得在bootstrapper.cs 文件里面配置,否则,会访问不到。

  

 protected override void ConfigureConventions(Nancy.Conventions.NancyConventions nancyConventions)
{
base.ConfigureConventions(nancyConventions);
nancyConventions.StaticContentsConventions.Add(Nancy.Conventions.StaticContentConventionBuilder.AddDirectory("/", "public"));
}

    

    还有,cshtml 或者 html 的文件目录,也得在bootstrapper.cs 中配置,否则会报错找不到cshtml 文件。

    

  4. 创建一个Nancy Module
  

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

Nancy总结(一)Nancy一个轻量的MVC框架的更多相关文章

  1. 对 JDBC 做一个轻量封装,待完善。。。

    对 JDBC 做一个轻量地封装,顺便复习,熟悉sql,io,util,lang.Reflect等包的使用,泛型的使用,待完善... package com.webproj.utils; import ...

  2. vue-concise-slider 一个轻量的vue幻灯片组件

    vue-concise-slider 一个轻量的vue幻灯片组件 阅读 541 收藏 35 2017-07-03 原文链接:github.com 外卖订单处理有烦恼?试试美团点评餐饮开放平台吧,可实现 ...

  3. Day.js 是一个轻量的处理时间和日期的 JavaScript 库

    Day.js 是一个轻量的处理时间和日期的 JavaScript 库,和 Moment.js 的 API 设计保持完全一样. 如果您曾经用过 Moment.js, 那么您已经知道如何使用 Day.js ...

  4. Node.js简单介绍并实现一个简单的Web MVC框架

    编号:1018时间:2016年6月13日16:06:41功能:Node.js简单介绍并实现一个简单的Web MVC框架URL :https://cnodejs.org/topic/4f16442cca ...

  5. 从零开始实现一个简易的Java MVC框架(三)--实现IOC

    Spring中的IOC IoC全称是Inversion of Control,就是控制反转,他其实不是spring独有的特性或者说也不是java的特性,他是一种设计思想.而DI(Dependency ...

  6. 轻量型ORM框架Dapper的使用

    在真实的项目开发中,可能有些人比较喜欢写SQL语句,但是对于EF这种ORM框架比较排斥,那么轻量型的Dapper就是一个不错的选择,即让你写sql语句了,有进行了关系对象映射.其实对于EF吧,我说下我 ...

  7. 轻量的web框架Bottle

    简洁的web框架Bottle 简介 Bottle是一个非常简洁,轻量web框架,与django形成鲜明的对比,它只由一个单文件组成,文件总共只有3700多行代码,依赖只有python标准库.但是麻雀虽 ...

  8. 一个简单 Go Web MVC 框架实现思路

    需要的知识点 为了防止你的心里不适,需要以下知识点: Go 基本知识 Go 反射的深入理解 使用过框架 Go Web 服务器搭建 package main import ( "fmt&quo ...

  9. 自己写一个轻量的JqueryGrid组件

    接触mvc不久,突然没有了viewstate和服务端控件处处都觉得不顺手,很多在webform时不必要考虑的问题都出现在眼前,这其中分页时查询条件保持的问题又是最让我头疼的事情,权衡再三,决定用aja ...

随机推荐

  1. GridView多表关联

    有些时候,需要多表关联查询,使用SqlDataProvider比较灵活 Controller中 use yii\data\SqlDataProvider; $dataProvider = new Sq ...

  2. Xcode插件VVDocumenter Alcatraz KSImageNamed等安装

    今天安装VVDocumenter,总是不起作用...所以用Alcatraz...下面介绍下Alcatraz 一.Alcatraz Alcatraz 是一款 Xcode的插件管理工具,可以用来管理XCo ...

  3. 78. Android之 RxJava 详解

    转载:http://gank.io/post/560e15be2dca930e00da1083 前言 我从去年开始使用 RxJava ,到现在一年多了.今年加入了 Flipboard 后,看到 Fli ...

  4. 60.Android通用流行框架大全

    转载:https://segmentfault.com/a/1190000005073746 Android通用流行框架大全 1. 缓存 名称 描述 DiskLruCache Java实现基于LRU的 ...

  5. js-JavaScript高级程序设计学习笔记12

    第十五章 使用canvas绘图 1.要使用<canvas>元素,必须先设置其width和height属性. 2.要在这块画布上绘图,需要先取得绘图上下文,取得绘图上下文对象的引用,需要调用 ...

  6. js-JavaScript高级程序设计学习笔记3

    第五章 引用类型 1.使用new操作符和Date构造函数创建日期对象. 2.创建特定日期有两个方法--Date.parse()和Date.UTC().后者小时数为0时显示时间是8点,应该是因为本地是东 ...

  7. 【BZOJ-1692&1640】队列变换 后缀数组 + 贪心

    1692: [Usaco2007 Dec]队列变换 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1153  Solved: 482[Submit][St ...

  8. ubuntu 通过命令将数据复制到u盘

    自己现在也不好意思和别人说自己熟悉linux了,自己用linux,也是当做桌面系统用了,很少熟悉那些linux命令结果上次linux桌面图形界面进不去了只能用命令行,经过几个晚上的折腾终于弄好,现在记 ...

  9. 使用StyleCop进行代码审查

    使用StyleCop进行代码审查 工欲善其事,必先利其器,上篇简单介绍了怎样使用Astyle进行代码格式化,使编写的代码具有一致的风格.今天简单介绍下怎样使用StyleCop对原代码进行审查,看编写的 ...

  10. SQL Server配置管理器的“别名”功能好处,实现内外网统一以及加了端口号导致的限制

    这里主要有两个别名,经过研究,最好两个都配置成一样的,减少排查. 操作: 点击[别名],右键[新建别名] 这里的别名能实现比如我一台远程服务器,加了端口的,如果要实现在SQL登录的时候,使用计算机名来 ...