使用Nancy和Simple.Data兩個輕量級的框架打造一個分布式開發系統(一)


   可能有的人看到這個標題覺得是噱頭,那是因為你還不了解Nancy是干嘛的。如果一個國外的人說,大部分微軟平台的開發人員如果選擇開發框架只能是在ASP.NET和ASP.NET MVC兩個之間選擇。 而Nancy是不依賴於這兩個框架的獨立的一個框架。它更多的是借鑒了Ruby的一些特性。

image

先看個例子說明如何使用NancyFX:

創建一個ASP.NET(MVC)的空解決方案。如果是ASP.NET MVC類別的空解決方案,記得在Global.asax文件中把路由注釋掉,Nancy有自己的一套路由機制。

使用Nancy,它在配置文件中添加了自己的HttpHandler。

 

image

 

接下來我們看如何通過不同的URL請求通過Nancy返回不同的結果。

 

1.沒有任何參數URL的情況下:

 

首先創建一個DefaultModule.cs繼承NancyModule這個基類。

image

 

編譯后運行,結果如下:

image

 

下面來看看一些復雜的URL請求情況下,如何獲取到這些參數:

設定我們的請求為url+/Fristname/lastname,那么定義一個Nancy Module來解析這個url並返回信息:

創建一個名為WelcomeModule.cs的類:

image

通過URL+/firstname/lastname請求,結果如下:

image

 

當然這只是簡單的返回一些字符,而且URL都是比較簡單的。除了這些簡單的URL格式,Nancy也支持正則表達式的URL請求。

除了這些,Nancy還能夠支持Razor視圖引擎。它是在Razor的基礎上擴展了View的渲染方式。

 

類似於ASP.NET MVC,不過這里是通過Module來渲染View。現在我們定義一個Model是Person,有FirstName和LastName兩個屬性,如何通過Nancy來把這個Model綁定到頁面呢?

首先需要定義一個Model:

image

 

定義一個PersonModule,繼承NancyModule;

image

 

定義的頁面是Person.cshtml,所以我們添加一個Razor頁面,並動態綁定person到頁面中:

image

 

以上介紹的請求都是Get,Nancy也是支持Post等其他的HTTP請求,如果遇到大數據的返回等其他情況還是需要用Post請求的。

 

除了Nancy,就是Simple.Data了,我之前有介紹過這個輕量級的ORM工具(其實都算不上ORM 微笑)。

我最喜歡的ORM工具—Simple Data

 

 

 

 

 

 

 

 

 

 

 

 

這兩個輕量級的框架有一個共同的特點,就是讓一些基本的處理都能夠獨立開來。所以很適合打造分布式開發的。 比如Nancy可以讓我們的路由不再去不停地配置,或者是統一的配置,而是每個模塊都可以單獨去寫自己的路由。

Simple.Data由於似乎是用Dynamic特性,所以每個模塊的數據庫交互都可以很獨立。

 

以上是介紹了我需要用到的框架,接下來第二篇文章,我們將來說明整個分布開發的基礎模塊如何建立。

 


免責聲明!

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



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