MonoRail模板引擎——NVelocity

MonoRail是什么?
MonoRail是一个.NET的MVC web开发轻型开源框架。

MVC是一个架构模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
1.通过把项目分成model view和controller,使得复杂项目更加容易维护。
2.没有使用view state和服务器表单控件,可以更方便的控制应用程序的行为
3.应用程序通过controller来控制程序请求,可以提供丰富的url重写。
4.对单元测试的支持更加出色
5.在团队开发模式下表现更出众

MonoRail的开发模式和传统的webform有很大区别:
     webform属于PageController模式, 每一个页面对应一个Controller, 通常情况下, 这个Controller就是根据url相对应的,而MonoRail是FrontController模式, 由Castle.MonoRail.Framework.MonoRailHttpHandler接管所有请求, 然后根据请求的url创建相应的controller, controller再调用相应的action, 最后调用模板引擎输出内容. 默认情况下, 一个url的结构是Controller/action.(每个url不一定有相应的view)

MonoRail 做什么?
1.提交表单时 ,会自动将数据绑定到([DataBind]Info info),在controller里面使用info对象。
2.可以定义Filter, 在action之前和/或之后执行,可以用于权限验证, 日志等方面, 提高了逻辑代码的复用.
3. 模板可以嵌套,例如:分页layout可以在多个页面使用, 提高了界面的复用.
4.逻辑和界面完全分离, 便于维护和测试.


MonoRail实现的模板引擎有3个

1.AspNetViewEngine
用传统的.aspx文件做模板, 可以照常使用aspx语法和服务器控件, 但是由于Webform的生命周期和
MonoRail完全不同, 有时候会让人觉得别扭, 有部分特性也受到了限制.

2.NVelocityViewEngine
用NVelocity做模板引擎, 需要学习VTL语法, 但是使用很简单, 特别是很多java程序员已经熟悉velocity. 简单的语法也强迫程序员把逻辑和界面很好的分离开来, 方便跟美工配合.

3.BrailViewEngine
基于Boo的模板引擎, Boo是一种语法类似python的.NET语言, 据MonoRail的参考说, Brail引擎是功能最强, 性能最好的选择, 但Boo是一种陌生的语言, 这成了Brail引擎应用的最大障碍.


综合各种因素, MonoRail推荐使用的模板引擎是NVelocity


NVelocity 是什么?

是从java编写的Velocity移植的.NET版本,基于.NET的模板引擎(template engine)。它允许使用拥有完善的、丰富的模板语言(VTL,Velocity Template Language 如流程控制语句、数学运算、关系和逻辑操作符、函数定义、注释等等)来引用.NET代码定义的对象。

VTL语言是什么?
VTL使用引用(references )这种方式将dynamic content(动态内容,一般指数据绑定对象)加入到你的web site中。
在VTL中有三种类型的references:变量(variables)、属性(properties)、方法(methods)。
用$字符开始的references用于得到什么;使用#字符开始的directives(指令)用于作些什么。

VTL语言包含知识点:(详见Velocity帮助文档或者Velocity基本语法(文件下载))
  变量绑定、循环、条件语句、注释、逻辑关系、stop、宏(函数)、转义字符。


下载NVelocity 手册:

Nvelocity帮助手册与基本语法.rar

 

 

posted @ 2011-07-27 11:26  365lei  阅读(1386)  评论(12编辑  收藏  举报