国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

MzBlog分析

2019-11-15 02:26:28
字體:
來源:轉載
供稿:網友

MzBlog分析

早上衣明志 在QQ群里說他的博客開源了,地址在 https://github.com/qihangnet/MZBlog,基于NancyFX和MongoDB開發的。博客內容需要使用 MarkDown 進行編寫。Nancy框架是asp.net之外用.NET開發Web App的一種選擇,而且也是一種很簡單的選擇。所以本文本著學習Nancy 框架的分析了下衣大哥的代碼,下圖是個腦圖:

MzBlog分析

1、MongoDB:數據存儲采用NoSQL MongoDB,采用官方的驅動 mongocsharpdriver。

2、核心庫的測試項目MZBlog.Core.Tests:項目采用xUnit.NET測試框架,xUnit.net創造者是Jim Newkirk和Brad Wilson從包括NUnit及其它單元測試框架的使用經驗中總結出來的一個新框架,相比于NUnit,xUnit.net和其他框架的比較可參考《xuint和其他的單元測試框架的比較》。另外FluentAssertions,非常棒的測試斷言。非常符合人的思維模式。

3、項目分層:項目采用DDD(領域模型)的典型層次,包括了表現層,應用層,領域層和基礎設施層,MZBlog.Core其實對應著基礎設施層,不過這里的并不是指領域模型中的基礎設施,更恰當的說應該是一些普通項目的核心層,封裝一些常用的工具和服務,例如緩存、MongoDB操作。

MZBlog.Core的Documents、ViewPRojections、Commands 對應的是MongoDB的領域層,領域層進行細分,會出現一些專門對應的一些領域核心層,領域核心實體擴展層。

  1. 領域核心層:這個層專門用于進行對領域層的擴展:用于定義一些領域中常用模式的接口,屬于上層建筑。如ICommandInvoker,IViewProjection等,
  2. 領域核心擴展層:這個層專門用于對領域層中的實體進行擴展,如ViewProjections、Commands 等。

MZBlog.Web是應用層和表現層,同時也是對Nancy框架的一個應用的示例。

4、Nancy框架:Nancy是一個不錯的輕量級開源.NET Web框架,他是asp.net框架之外的另一個web開發框架,他完全不依賴于System.Web.只為簡單的Web開發做最基礎的準備,以Nancy寫的Web應用,可以輕松部署在linux上,而不必受服務器操作系統的限制,衣明志的博客 就是在Linux上跑的,Web服務器使用的Jexus。

  1. Bootstrapper,類似與ASP.Net項目里的Global.asax,定義了應用的生命周期,繼承了NancyBootstrapper類后可以重寫基類的許多方法,比如applicationStartup
  2. Security: Nancy的身份驗證組件——Nancy.Authentication.Forms,你可以到nuget上獲得。由于Nancy的運行機制跟ASP.NET幾乎沒有關聯,到可以移步到Forms authentication with nancyfx看看它是怎么實現的。
  3. Responses:Http響應,項目中有個rssResponse,封裝了博客的RSS功能。
  4. Modules:Nancy Web App的核心,繼承NancyModule這個基類,然后在構造里直接定義HTTP方法和路由即可,路由機制簡單輕量但不失強大,可以方便的通過正則表達式制定路由規則。和ASP.NET相比非常簡單吧,Nancy框架天生就是MVC結構,Modules類似于ASP.NET MVC的Controller。
  5. Modelbinding:類似于asp.net mvc的ModelBinding,具體參看https://github.com/NancyFx/Nancy/wiki/Model-binding,擔負起Modules和Views之間數據傳遞的橋梁。
  6. Views: Nancy支持Razor, Spark, dotLiquid等視圖引擎,開發人員可以根據自己的喜好,選用不同的視圖引擎。MZBlog用的是Razor視圖引擎,你的ASP.NET MVC的知識可以無縫嫁接。
  7. ErrorHandling:異常處理,可以根據不同的http狀態碼進行處理,具體可以參考 Consistent error handling with Nancy。
  8. TinyIoC:Nancy集成了TinyIoC,TinyIoC是一個跨各種手機平臺的輕量級開源Ioc框架(TinyIoC),該框架非常小,只有一個cs文件就能使用,使用后感覺效果還不錯,基本容器功能都支持了。git開源項目地址:https://github.com/grumpydev/TinyIoC

5、Bootstrap是Twitter出名的一個優秀的web前端框架,它讓不太懂設計的web程序員們也能做出比較好看的UI來。Bootstrap3默認采用時下流行的扁平化設計,會讓你的web顯得很時尚.

6、Markdown 是一種輕量級標記語言,創始人為約翰·格魯伯(John Gruber)和亞倫·斯沃茨(Aaron Swartz)。它允許人們“使用易讀易寫的純文本格式編寫文檔,然后轉換成有效的XHTML(或者HTML)文檔”。這種語言吸收了很多在電子郵件中已有的純文本標記的特性。Markdown 語法可參考 http://wowUbuntu.com/markdown/

xUnit.net runner for Visual Studio 2012 and 2013

Lift your Petticoats with Nancy....

Setting up a NancyFX website

From ASP.NET MVC to Nancy - Part 1

擴展NoteService,支持NancyFx


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 集安市| 保康县| 兴城市| 潮安县| 海南省| 岳西县| 广平县| 天等县| 苍溪县| 兴安盟| 莲花县| 蒙山县| 西乡县| 莆田市| 湖北省| 灌南县| 文成县| 涿州市| 罗源县| 华宁县| 岳阳县| 汪清县| 黄骅市| 彝良县| 梁山县| 新平| 蓝山县| 太保市| 浦江县| 确山县| 广州市| 舟曲县| 南和县| 盐山县| 千阳县| 贞丰县| 响水县| 广东省| 永仁县| 铁岭县| 巢湖市|