MzBlog分析

早上衣明志 在QQ群里说他的博客开源了,地址在
https://github.com/qihangnet/MZBlog,基于南茜(Nancy)FX和MongoDB开发的。博客内容需要采纳
MarkDown
举行编制。Nancy框架是ASP.NET之外用.NET开发Web
App的一种选拔,而且也是一种很粗略的选用。所以本文本着学习南希(Nancy)框架的剖析了下衣三弟的代码,下图是个脑图:

图片 1

1、MongoDB:数据存储采纳NoSQL MongoDB,采取官方的驱动
mongocsharpdriver。

2、主题库的测试项目MZBlog.Core.Tests:项目利用xUnit.NET测试框架,xUnit.net成立者是吉姆Newkirk和布拉德(Brad)威尔逊(Wilson)从包括NUnit及其他单元测试框架的采用经验中总括出来的一个新框架,相相比较于NUnit,xUnit.net和其它框架的相比较可参考《xuint和任何的单元测试框架的可比》。此外FluentAssertions,非凡棒的测试断言。很是吻合人的思索格局。

3、项目分层:项目拔取DDD(领域模型)的典型层次,包括了展现层,应用层,领域层和基础设备层,MZBlog.Core其实对应着功底设备层,然则这里的并不是指世界模型中的基础设备,更适用的说应该是有些一般档次的主导层,封装一些常用的工具和劳务,例如缓存、MongoDB操作。

图片 2

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,定义了拔取的生命周期,继承了南希(Nancy)Bootstrapper类后可以重写基类的不少办法,比如ApplicationStartup
  2. Security: Nancy的身份验证组件——Nancy.Authentication.Forms,你可以到nuget上获得。由于Nancy的运行机制跟ASP.NET几乎没有关联,到可以移步到Forms authentication with nancyfx看看它是怎么实现的。
  3. Responses:Http响应,项目中有个RssResponse,封装了博客的RSS功用。
  4. Modules:南希 Web
    App的为主,继承南希Module这多少个基类,然后在协会里一向定义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: 南茜帮助Razor,
    斯帕克(Spark),
    dotLiquid等视图引擎,开发人士可以按照自己的喜好,选拔不同的视图引擎。MZBlog用的是Razor视图引擎,你的ASP.NET
    MVC的学问可以无缝嫁接。
  7. ErrorHandling:非凡处理,可以依照不同的http状态码举行处理,具体可以参考
    Consistent error handling with
    Nancy
  8. TinyIoC:Nancy集成了TinyIoCTinyIoC是一个跨各类手机平台的轻量级开源Ioc框架(TinyIoC),该框架相当小,只有一个cs文件就能使用,使用后觉得效果还不易,基本容器效率都补助了。git开源项目地址:https://github.com/grumpydev/TinyIoC

5、Bootstrap是Twitter知名的一个妙不可言的web前端框架,它让不太懂设计的web程序员们也能做出相比赏心悦目的UI来。Bootstrap3默认使用当下流行的扁平化设计,会让你的web显得很时髦.

6、Markdown
是一种轻量级标记语言,创办人为约翰·格鲁伯(John
Gruber)和亚伦·斯沃茨(AaronSwartz)。它同意人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档”。这种语言吸收了众多在电子邮件中已有的纯文本标记的表征。马克(Mark)down
语法可参考 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

网站地图xml地图