Welcome Nancy
這些指南將帶你快速瀏覽Nancy的一些功能,而不會存在太多細節。會有更多沒有遇見的事情.所以我們也邀請你去探索Nancy。
Nancy是一個輕量級的低成本框架,在.NET 和MONO上 用於構建基於HTTP的服務。框架的目標是盡可能的避開HTTP細節,為所有的交互提供一個 super-duper-happy-path。
這意味着Nancy的一切都設置成切合實際的默認值和約定,而不是讓你費勁力氣的去通過配置只為了啟動和運行。用Nancy 你確實可以用幾分鍾的時間從零來構建網站。
Nancy被設計用來處理 DELETE,GET.HEAD.OPTIONS,POST,PUT和PATCH請求,並提供一個簡單,優雅,領域特定語言(DSL)的返回,只需要幾個按鍵響應,讓你有更多的時間去關注代碼和應用程序重要的部分。
這一切都是由社區構建的,作為一個開源框架,意味着您可完全訪問源代碼,並根據MIT許可證獲得許可。
您可以通過Nuget,TeamCity服務(最新版本)獲取Nancy或者從GitHub下載源代碼。
構建在任何地方
Nancy的核心概念之一是主機。主機充當主機環境和Nancy的適配器,從而使Nancy能夠運行在現有的技術(如ASP.NET ,WCF和OWIN)上 ,或被集成到任何給定的應用程序中。
核心的Nancy框架並不提供特定的主機實現。他們被前面提到的來源提供單獨的實現,以及許多附加的功能如表單驗證,構建Nancy應用程序就像是在Web框架中挑選你最喜歡的部分!通常,在您構建一個Nancy服務時,核心框架和一個主機是必要的。
Super-Duper-Happy-Path
雖然很難准確的確定它是什么,但畢竟是一個非常感性的術語,但它背后的基本想法是:
它只是工作
新增一個新的模塊?
這是自動被發現的。
引進一個新的視圖引擎?所有的關聯都可以隨時准備,而無需執行任何其他的操作。
使您向模塊添加了新的依賴項,默認情況下,我們將找到並為其注入-無需配置
低儀式
在您的應用中所需要的"Nancy 代碼" 數量應該很少,在任何Nancy應用程序中最重要的部分是您的代碼-我們的代碼應該讓您的代碼構建出令人驚嘆的應用程序。
作為證明,實際上可以將功能性的Nancy應用程序安裝到單獨的Tweet中。
低干擾
當通過Nancy Api構建軟件時,可以幫助你獲得您想去的地方,而不是用你自己的方式。
命名應該是易於理解的,所有的配置都應該是最小化的,但當你需要時,功能和可擴展性依然存在。
輕松可定制
即使 "它只是工作" ,如果您想要使用其他組件的工作方式,則不應該存在阻礙自定義工作的障礙。
想要使用另一個容器?沒問題!
想要調整路由的選擇方式 ? 去吧!
通過我們的bootstrapper 方法,所有這些都變得小菜一碟。
最重要的是通過Nancy創建應用程序是快樂的,並有期望的樂趣!而不會犧牲您應用程序提高所需的功能和擴展性。
創建您的第一個 Nancy應用程序
足夠的談話,讓我們看看一些代碼!
們假定您已經安裝並使用 NuGet和Visual Studio 2010 ,然而對於Mono (使用 2.10.2或更高版本)和MonoDevelop也同樣適用。我們將使用Nancy和Nancy的 Asp.net主機構建無處不在的"Hello world"應用程序。
1. 如果使用visual studio 2012 或更高版本,請安裝 visual studio 的 SideWaffle模板包。visual studio 用戶可以安裝 Nancy 項目模板。
2. 如果使用sideWaffle 通過ASP.NET 主機創建一個新的Nancy 空項目,或者使用Nancy 項目模板創建一個空的Web 應用程序
3. 添加一個Nancy 模塊,它是一個標准的C#類,通過構造函數添加少量代碼為Web應用程序的跟路徑定義一個 路由處理程序
4. 編譯運行並查看結果!
5. 雖然建議但是並不必要,使用NuGet包管理器可以檢查任何更新。
Practice&Hello Nancy
先安裝上邊提到的方法,下載模板創建Nancy 項目 這里

之后創建 Nancy empty project with Asp.net host 項目

新建Module ,如上所述 這是一個 標准的C#類,讓我們新建的 C#類 繼承NancyModule,這樣一個Nancy模塊就產生了。

然后在Module的構造方法中,添加一個 對根路徑的處理程序,代碼很簡單,僅僅返回 'Hello Nancy'。
F5 運行

總結
事實上,當我第一次看到Nancy 主頁上 的這行幾行代碼,便對她產生了興趣。
1 Install 2 PM> Install-Package Nancy 3 Write 4 public class SampleModule : Nancy.NancyModule 5 { 6 public SampleModule() 7 { 8 Get["/"] = _ => "Hello World!"; 9 } 10 } 11 Go!
轉載請標明出自:本文地址
