.NET轻量级MVC框架:Nancy入门教程(一)——初识Nancy

  当咱们要接到一个新的项目的时候,咱们第一时间想到的是用微软的MVC框架,可是你是否想过微软的MVC是否是有点笨重?咱们这个项目用MVC是否是有点大材小用?有没有能够替代MVC的东西呢?看到这里也许你会反问我,微软的MVC到底什么地方很差了?这个暂且不说,咱们先认识一下Nancy,来了解一下他和MVC的不一样。html

 

 1、Nancy简介

  什么是Nancy呢?若是你学习过Ruby的话,就会知道Ruby中有个框架叫作Sinatra,Nancy就是Sinatra的.Net版本。若是你感受微软的MVC过于笨重、过于繁琐,那么Nancy可能就是你苦苦寻找的东西。git

  • Nancy是一个轻量级的独立的框架,下面是官网的一些介绍:
  • Nancy 是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台,框架的目标是保持尽量多的方式,并提供一个super-duper-happy-path全部交互。
  • Nancy 设计用于处理 DELETEGETHEADOPTIONSPOSTPUT 和 PATCH 等请求方法,并提供简单优雅的 DSL 以返回响应。
  • Nancy和Asp.net MVC原理类似,但有本身的一套路由机制,在使用上更加易用,能够用Nancy快速开发一些网站。
  • Nancy并不依赖任何现有的框架,因此他能够运行在任何平台上面。

   下面是官方文档的一些说明:(我的表示E文很差,本身能够看懂点,翻译出来就感受不是那么回事了,这里就不献丑了,你们简单看看吧)github

     

  关于super-duper-happy-path,官网也给出了解释,下面是部份内容:浏览器

 

哪位英语好的,给你们翻译下,分享一下哈~~我这里就不废话了!下面给出Nancy的官网地址,你们能够看下:app

  Nancy官网地址:http://nancyfx.org/框架

  GitHub文档地址:https://github.com/NancyFx/Nancy/wiki/Documentation函数

 

 2、建立第一个Nancy项目

  下面咱们来写一个Nancy的Hello,world项目,来学习一下Nancy的简单使用,打开Visual Studio,新建空Web项目:学习

     

选择空模板,点击肯定,建好项目之后,接下来咱们开始经过Nuget安装Nancy,一共须要安装下面三个包,代码以下:网站

  Install-Package Nancy   //Nancyspa

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

  Install-Package Nancy.Viewengines.Razor //提供Razor视图支持,感受很意外吧,咱们还能够继续使用Razor

  安装完成后,咱们开始搭建项目的基本结构,首先Nancy也是有本身的规则的,Nancy工程中控制器的部分必须放在Modules文件夹中,视图部分必须放在Views文件夹中,因此在项目中添加两个文件夹Modules和Views,再分别添加HomeModule类和Razor页面Home,添加完成后项目结构如图:

View这里先不用,先建好准备着,下面咱们来显示Hello,world,打开HomeModule.cs,修改其代码以下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Nancy;

namespace NancyStudy.Modules
{
    public class HomeModule : NancyModule
    {
        //注意:这里是构造函数
        public HomeModule()
        {
            Get["/"] = parameters => "Hello World";
        }
    }

}

首先咱们引入Nancy的命名空间,而后咱们的类要继承自NancyModule,在ASP.NET MVC中全部控制器都继承Controller,在Nancy中,一样全部的‘控制器’都必须继承NancyModule类。

注意:在Nancy中,全部的的路由信息都是在构造方法中的,当程序运行时,会遍历全部全部的构造方法,若是出现路由信息相同时,默认选择最后遍历的那一个。

好了,就这么多代码,Views里面的东西先不去管它,咱们按F5,运行项目,编译经过,而后再浏览器中输入以下信息:

到这里,咱们就成功的写完了Nancy的Hello,world,是否是很简单啊~~

下面,咱们来显示刚刚新建的View,咱们修改Home.cshtml的内容,以下:

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Nancy</title>
</head>
<body>
    <div>
        <h1>Hello,Nancy!</h1>
    </div>
</body>
</html>

在修改咱们的构造方法,以下:

 public class HomeModule : NancyModule
    {
        //注意:这里是构造函数
        public HomeModule()
        {
            Get["/"] = p =>
            {
                return View["/Home"];
            };
        }
    }

好了,按F5运行,浏览器显示结果如图:

 

这里要注意的是浏览器地址栏,必定是网站根目录,不是指向咱们的Home.cshtml文件,不然会提示找不到页面,如图:

这是由于你在打开Home.cshtml的页面按下了F5,Visual Studio将页面指向了当前编辑页面,这个你们应该都知道的,在这里说明一下,不然在这里搞半天不知道错在哪,是件很郁闷的事。

好了,今天就先说到这里,下一篇继续咱们的Nancy学习~~

 

 做者:雲霏霏

 博客地址:http://www.cnblogs.com/yunfeifei/

 声明:本博客原创文字只表明本人工做中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未受权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文链接。

相关文章
相关标签/搜索