當咱們要接到一個新的項目的時候,咱們第一時間想到的是用微軟的MVC框架,可是你是否想過微軟的MVC是否是有點笨重?咱們這個項目用MVC是否是有點大材小用?有沒有能夠替代MVC的東西呢?看到這裏也許你會反問我,微軟的MVC到底什麼地方很差了?這個暫且不說,咱們先認識一下Nancy,來了解一下他和MVC的不一樣。html
什麼是Nancy呢?若是你學習過Ruby的話,就會知道Ruby中有個框架叫作Sinatra,Nancy就是Sinatra的.Net版本。若是你感受微軟的MVC過於笨重、過於繁瑣,那麼Nancy可能就是你苦苦尋找的東西。git
DELETE
, GET
, HEAD
, OPTIONS
, POST
, PUT
和 PATCH
等請求方法,並提供簡單優雅的 DSL 以返回響應。下面是官方文檔的一些說明:(我的表示E文很差,本身能夠看懂點,翻譯出來就感受不是那麼回事了,這裏就不獻醜了,你們簡單看看吧)github
關於super-duper-happy-path,官網也給出瞭解釋,下面是部份內容:瀏覽器
哪位英語好的,給你們翻譯下,分享一下哈~~我這裏就不廢話了!下面給出Nancy的官網地址,你們能夠看下:app
Nancy官網地址:http://nancyfx.org/框架
GitHub文檔地址:https://github.com/NancyFx/Nancy/wiki/Documentation函數
下面咱們來寫一個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/
聲明:本博客原創文字只表明本人工做中在某一時間內總結的觀點或結論,與本人所在單位沒有直接利益關係。非商業,未受權,貼子請以現狀保留,轉載時必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。