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

來源:互聯網
上載者:User

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

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

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

使用Nancy,它在設定檔中添加了自己的HttpHandler。

 

 

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

 

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

 

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

 

編譯後運行,結果如下:

 

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

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

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

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

 

當然這隻是簡單的返回一些字元,而且URL都是比較簡單的。除了這些簡單的URL格式,Nancy也支援Regex的URL請求。

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

 

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

首先需要定義一個Model:

 

定義一個PersonModule,繼承NancyModule;

 

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

 

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

 

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

我最喜歡的ORM工具—Simple Data

 

 

 

 

 

 

 

 

 

 

 

 

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

Simple.Data由於似乎是用Dynamic特性,所以每個模組的資料庫互動都可以很獨立。

 

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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.