MonoRail资源汇总
不知不觉已经用了两年多MonoRail了。当时是叶子(现在已经出国留学,研究工控技术和游戏外挂去了)介绍我用的,用上了就彻底抛弃webform并且鄙视之,其他用MonoRail的同事或朋友也有类似的感想。除非你对OOP / XHTML / Javacsript 深恶痛绝或者没有能力去学习这些基础知识,只要你熟悉了MonoRail,都会想跟webform划清界线的。
大概是两年前的这个时候,我花了一个下午的时间些有关MonoRail的Helper和ViewComponent的随笔,但是下班时竟然忘了保存 。。。受了这次打击后,我就再也没继续写了。现在Castle的文档已经很齐全了,所以我的随笔不写也罢。这里我列出一些重要的链接供大家参考:
- 官方网站
- Getting Started。教你怎样新建一个MonoRail项目。其中的Active Record部分不是必须的知识。MonoRail不依赖数据访问层,但是你应该用实体类来传递数据,用DataSet / DataReader会比较麻烦
http://www.castleproject.org/monorail/gettingstarted/index.html
- Castle安装包带有MonoRail的项目模板,提供了新建项目的向导。vs2005不支持Web Application类型的项目,必须要先装两个补丁,否则会出错
http://download.microsoft.com/download/6/3/c/63c69e5d-74c9-48ea-b905-30ac3831f288/VS80sp1-KB926601-X86-ENU.exe
http://download.microsoft.com/download/9/0/6/906064ce-0bd1-4328-af40-49dca1aef87c/WebApplicationProjectSetup.msi
- 详细的文档,我列出比较重要的部分
http://www.castleproject.org/monorail/documentation/v1rc2/index.html
- Reference Manual
- How MonoRail works
基本原理- Configuration Reference
配置详解- User's Guide
- Controller basics
controller的基本概念- Filters
Filter是可以在指定在action前后执行的组件- Working with Views
view的概念- Flash
Flash是session包装成的特殊容器,他的生命周期默认是两次请求。它在向导页面,出错重试页面里很实用- Rescues
Rescues是MonoRail用于显示错误信息的机制- Layouts
Layout类似MasterPage,可以定义公用的页面框架- SmartDispatcherController / More about SmartDispatcherController
Controller从SmartDispatcherController继承,就可以实现action参数的自动绑定- Reusing UI portions (ViewComponents)
ViewComponents是实现逻辑和界面复用的一种机制- View Engines
- NVelocity
MonoRail支持多种模板引擎,最常用的是NVelocity,这里有vtl模板语言参考
http://blog.csdn.net/javafound/archive/2007/05/14/1607935.aspx
还有一个模板文件高亮的vs2005插件。不过现在还不支持智能提示
http://using.castleproject.org/display/Contrib/Castle+Visual+Studio+Integration- Helpers
- Creating a custom helper
helper是可以在模板里调用,用于生成视图代码片段的类。MonoRail提供了多种内置helper用于生成ajax调用代码,页面特效代码,form元素验证代码等。但我认为这些helper都不值得用,熟悉xhtml和javascript才是正路- Integrations
- Windsor Container Integration
Windsor是Castle的Ioc容器,MonoRail集成了Windsor后,controller,filter和ViewComponent都可以受容器管理
- 相关项目
- Windsor
除了Ioc部分,还有一系列facility,实现NHibernate集成,ActiveRecord集成,log集成,事务的自动管理等。除了官方文档外,TerryLee的专题也是一个很好的学习资源 - ActiveRecord
Castle在NHibernate的基础上实现的ActiveRecord模式,使用起来比较简单,如果项目只需要简单的增删查改可以考虑使用 - NHibernate
懒得说了 - Prototype.js
没有webform控件不会死人的,熟悉了js和html后,利用prototype来进行web界面开发可是相当的容易
- Windsor
不了解MonoRail的朋友请看我的MonoRail专栏