用Nancy和Simple.Data創建一個圖片博客 第一部分:開始一個工程


這是用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真的非常直觀方便。


免責聲明!

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



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