近日花了一些时间把自己的博客内容和博客程序重新捣腾了一遍。把一些没什么实质内容的博文删除了,用 MarkDown 把幸存下的博文重新梳理了一遍,现在看起来干净了很多。博客的界面用了 Twitter 的 Bootstrap,程序则使用 NancyFx 框架重写的。
Nancy 是一个不错的轻量级开源 .NET Web 框架。如果想快速做个简单的 Web 应用,Nancy 是个不错的选择。个人喜欢她具备以下几个优点:
- 轻量: 不依赖于 ASP.NET 这个庞大的框架,只为简单的 Web 开发做最基础的准备,胳膊也没像微软那样伸得太长,对开发人员的干扰很少。
- 多样化的Host支持: 框架本身不依赖 ASP.NET 框架,并提供了 Host 所需的基础支撑,所以可以很轻松的 Host 在 ASP.NET、ASP.NET MVC、Console、WinForm、Windows Service、WCF 等应用上。这使得我们的 Web 应用部署方式,有多种选择,而不必局限于 IIS + ASP.NET 的环境下。
- 支持Mono: 框架组件对 Windows 的依赖几乎为 0,所以 Nancy 写的 Web 应用,自然也可以轻松部署在 Linux 上,而不必受服务器操作系统的限制。本博目前就是在 Linux 上跑着呢:)
- 性能可接受: 通过一些负载测试比较,用 Nancy 开发的 Web 应用性能还可以比较可以接受的,一些损失可以通过灵活的辅助方式对其进行弥补。
- 支持多种视图引擎: 支持 Razor, Spark, dotLiquid 等视图引擎,也提供了自带的 SuperSimpleViewEngine。开发人员可以根据自己的喜好,选用不同的视图引擎。
- 可测试性好: 内部自带了对测试的基础支撑组件,可以方便的进行各种单元测试。
- 干净轻量的路由机制: 路由机制简单轻量但不失强大,可以方便的通过正则表达式制定路由规则。而其直接可读性,某些角度上看比 ASP.NET MVC 更好一些。
还有其他的一些不错的特性,这里就不详细累述了。
在本文发表时,NancyFX 的版本号还仅仅是 0.17.1,所以可想而知,仍然还有不少问题需要解决和改善。本博系统的开发过程就稍微遭遇了几个牵绊的地方,只能先通过一些方式绕路实现。参考文档也不完善,很多内容没有及时跟上程序版本的步伐,所以不少内容需要开发者自己去尝试甚至阅读源代码。
总之,这是个不错的Web框架,可以在个人网站等轻量级项目上试用,但目前并不建议也不适合在正式项目中大规模使用。持续关注之!