Ruby On Rails与Struts+Hibernate的比较
[ 2008-6-11 22:36:00 | By: 和水柔石 ]
 
0
  1. Ruby On Rails(ROR)是用于web程序快速开发的开源框架。建立在Ruby语言基础上,提供了完整的web程序开发的组件。Struts是Apache软件组织提供的一项开放源码项目,尤其适用于开发大型可扩展的Web应用。
  2. ROR和Struts一样,都是在“模型-视图-控制器(MVC)”模式的设计原则上开发的框架。
  3. Struts本身只提供控制层的实现,模型层是通过接口和其他的组件结合,比如JDBC、EJB、Hibernate或JDO,对于表现层,通过JSP来实现。而ROR集合了MVC的所有组成部分。
  4. 数据层:Struts本身并没有自己的数据层,而是通常和Hibernate或EJB相结合来实现内容的persistence;而在Rails中,这一部分是通过一个叫Active Record的组件来实现的,两者都是属于ORM模型。
ORM直接把运行系统中的物体和关系型数据库中的表对应粉盒而大大简化了数据库的操作和开发时间,并减少错误的可能性。
  1. 控制层:主要设计思想是前端控制层Front controller,这个层次有一个统一的分派者(dispatcher),它接受所有的HTTP请求,根据它们的URL和其它信息再把它们分配给不同的动作进行执行。在Struts中,ActionServlet担负了这样的作用,而在ROR中,DispatchServlet也执行了同样的功能。
  2. 表现层:大多数的Struts应用都采用JSP作为表现层;在Rails中,我们通过编写RHTML文件来实现表现层。RHTML是一个非常强大的页面模板引擎。
  3. ROR的开发速度比Struts+Hibernate的框架快10倍以上,而且代码缩小许多。