Nancy入門


Nancy入門

當我們要接到一個新的項目的時候,我們第一時間想到的是用微軟的MVC框架,但是你是否想過微軟的MVC是不是有點笨重?我們這個項目用MVC是不是有點大材小用?有沒有可以替代MVC的東西呢?看到這里也許你會反問我,微軟的MVC到底什么地方不好了?這個暫且不說,我們先認識一下Nancy,來了解一下他和MVC的不同。

 

 一、Nancy簡介

  什么是Nancy呢?如果你學習過Ruby的話,就會知道Ruby中有個框架叫做Sinatra,Nancy就是Sinatra的.Net版本。如果你感覺微軟的MVC過於笨重、過於繁瑣,那么Nancy可能就是你苦苦尋找的東西。

  • Nancy是一個輕量級的獨立的框架,下面是官網的一些介紹:
  • Nancy 是一個輕量級用於構建基於 HTTP 的 Web 服務,基於 .NET 和 Mono 平台,框架的目標是保持盡可能多的方式,並提供一個super-duper-happy-path所有交互。
  • Nancy 設計用於處理 DELETEGETHEADOPTIONSPOSTPUT 和 PATCH 等請求方法,並提供簡單優雅的 DSL 以返回響應。
  • Nancy和Asp.net MVC原理相似,但有自己的一套路由機制,在使用上更加易用,可以用Nancy快速開發一些網站。
  • Nancy並不依賴任何現有的框架,所以他可以運行在任何平台上面。

   下面是官方文檔的一些說明:(個人表示E文不好,自己可以看懂點,翻譯出來就感覺不是那么回事了,這里就不獻丑了,大家簡單看看吧)

      

  關於super-duper-happy-path,官網也給出了解釋,下面是部分內容:

 

哪位英語好的,給大家翻譯下,分享一下哈~~我這里就不廢話了!下面給出Nancy的官網地址,大家可以看下:

  Nancy官網地址:http://nancyfx.org/

  GitHub文檔地址:https://github.com/NancyFx/Nancy/wiki/Documentation

 

 二、創建第一個Nancy項目

  下面我們來寫一個Nancy的Hello,world項目,來學習一下Nancy的簡單使用,打開Visual Studio,新建空Web項目:

     

選擇空模板,點擊確定,建好項目以后,接下來我們開始通過Nuget安裝Nancy,一共需要安裝下面三個包,代碼如下:

  Install-Package Nancy   //Nancy

  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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM