這是用Nancy和Simple.Data創建一個圖片博客的第一部分:
placeholder:目錄
前言:巴拉巴拉巴拉
步驟1:創建Visual Studio solution
創建一個空的ASP.NET Web應用,如何創建呢?首先去Github上的Nancy項目地址Accessories,下載到本機,然后找到Nancy.Empty.Web.Application.Template.Package.vsix,雙擊安裝后重啟Visual Studio。或者只下載這個模板。
重啟后就可以在新建項目中找到Nancy Empty Web Application這個模板,如果不好找,可以在搜索欄里搜索。如下圖:
這樣就會新建一個干凈優雅的項目作為基礎。此時可以打開root目錄下的Web.config看看,是不是很干凈。
下面是添加所需的Nancy 和Simple.Data庫。
步驟2:添加Simple.Data
使用Nuget Package Manager Console。輸入 Install-Package Simple.Data.SqlCompact40 回車執行,會自動下載並添加Simple.Data.SqlCompact40庫,以及Simple.Data.Core庫,后者作為前者依賴會被自動解析出來。
步驟3:添加Nancy
同樣使用Nuget Package Manager Console,添加Nancy,Nancy.Hosting.Aspnet,Nancy.Viewengines.Razor三個庫。
步驟4:配置Nancy
這時我們可以打開Web.config看看,發現里面已經自動寫入了Nancy的相關配置。如下圖:
沒錯,Nuget在不僅僅下載了Nancy庫,而且幫我們已經安裝和配置好了。是不是很酷!
如果你想手動添加配置的話,可以到Nancy項目主頁上閱讀她Wiki的相關頁面。
OK了,目前就這么多,准備Nancy之旅吧。Let's go!
步驟5:添加我們的第一個NancyModule
回憶下MVC的第一步是什么?要在Global.asax中設置Routes,創建一個Controller和至少一個Action 方法,保證Action方法和一個Route相關聯。使用Nancy,一切都變得簡潔了。一個NancyModule
代替了Controller,並且Action方法和route都整合在了NancyModule
里。
首先先創建一個簡單的NancyModule來驗證一切是否正常運行(暫時先不管Simple.Data)。
在root目錄添加一個類,我叫他MainModule。並且繼承於NancyModule
。
然后確保URL("/")返回一些東西給瀏覽器。參看下面的代碼修改。
1 namespace Web
2 {
3 public class MainModule:NancyModule
4 {
5 public MainModule()
6 {
7 Get["/"] = parameters =>
8 {
9 return "<h1>Welcome to My Photoblog!</h1><p>
10 Nothing to see here at the moment.</p>";
11 };
12 }
13 }
14 }
這樣就告訴Nancy監聽收到的和"/"有關的GET-request,並且返回一段字符串給瀏覽器。代碼看起來非常簡潔明了。可以Ctrl+F5試試看效果。
下面添加另一個route。這次我們加一個參數。參考下面的代碼修改MainModule類:
01 namespace Web
02 {
03 public class MainModule:NancyModule
04 {
05 public MainModule()
06 {
07 Get["/"] = parameters =>
08 {
09 return "<h1>Welcome to My Photoblog!</h1><p>
10 Nothing to see here at the moment.</p>";
11 };
12
13 Get["/photo/{slug}"] = parameters =>
14 {
15 return String.Format("<h1>I'm sorry</h1><p>
16 We're having some problems finding photo '{0}
17 ' for the moment.</p>", parameters.slug);
18 };
19 }
20 }
21 }
{slug}就是參數,用{}括起來。它告訴Nancy監聽收到的以"/photo/"開頭的GET-request。String.Format()里{0}就會顯示URL里的值。試試看!
結論
可以看出來,使用Nancy真的非常直觀方便。