Ruby on Rails

Ruby on Rails 是一个可使你开发,部署,维护 web 应用程序变得简单的框架。在2004年7月,由Rails的创始人大卫·海纳梅尔·韩森从37signals公司的项目管理工具Basecamp里面分离出来,而且以开源方式发布。java

  主要特色 web

固然了,全部的 web 框架都有一样的目标。是什么使得 Rails 如此不一样呢?咱们能够经过几个途径来回答这个问题。 
第一是看 架构。在过去的时间里,许多开发者在严谨的 web  应用程序上使用 MVC 架构。他们发现 MVC 架构可使他们的程序变得更清晰,在 java 中像 Tapestry 和 Struts 这些框架都是基于 MVC 。 Rails 也是一个 MVC 框架。当你使用 Rails进行开发,应用程序的全部代码以一种标准方式互相做用。在开始开发以前,整个应用程序的骨架已经搭好了。 
第二个是看 编程语言。 Rails 程序是使用 Ruby 编写的,它是一门现代,面向对象的脚本语言。 Ruby 简洁,不难理解。它可让你快速地用代码天然 , 清晰表达想法。让你的程序能很简单被编写而且在几个月后还能很容易读懂。 
Ruby on Rails是一个 Web  应用程序框架,是一个相对较新的 Web 应用程序框架,构建在 Ruby 语言之上。它被宣传为现有企业框架的一个替代,而它的目标,简而言之,就是让生活,至少是 Web 开发方面的生活,变得更轻松。 
J2EE是一种利用Java平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java平台的标准版,J2EE体系结构提供中间层集成框架用来知足无需太多费用而又须要高可用性能高可靠性以及可扩展性的应用的需求。 
Java平台有3个版本,它们是适用于小型设备和智能卡的Java平台Micro版(Java 2 Platform Micro Edition,J2ME)、适用于桌面系统的Java平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于建立服务器应用程序和服务的Java平台企业版(Java 2 Platform Enterprise Edition,J2EE)。 
Ruby on Rails和 J2EE  堆栈的比较 
能够看到,Rails 堆栈和构成普通的基于 J2EE 的 Web  应用程序的组件之间的基本区别很小。二者都有用来执行应用程序代码的容器;都有帮助分离应用程序的模型、视图和控件的 MVC  框架;以及持久存储数据的机制。 
习惯约定优于配置 
这个思想贯穿了 Rails 设计的始终。举个例子,一般咱们写java web  应用程序,都会按照 MVC 来给对应类作区分,我我的喜欢将 Controller 类放在 web 目录中,将 View 类放在 view 目录中,将 model 类放在 domain 目录中。可是不一样的人有不一样的设置,不一样的命名,如何让框架知道这些不一样的目录呢, java 框架的解决之道,只能是经过 xml 配置文件让它了解这些信息。而 rails 的解决方式就是: 目录结构我来定义,你只要在我定义好的目录中放东西就能够了。这也就是为何 rails 中不多有配置文件(但不是没有)的一个重要缘由。虽然思想很简单,可是它带来的好处就是,Rails 的开发效率是 java 开发的 10 倍(这是 rails 的 fans 宣称的,不过我相信这点,相信看完这篇文章你也必定会的)。那么光这点就能让 rails 开发比采用 java 更快了吗?不彻底是这样,由于这还得益于 rails 的另一个设计理念:更少的代码。并非任何语言都能那么宣称的,rails 实现这点彻底得益于它的设计语言 Ruby 。使用 Ruby 你的确能用不多的语言写不少的功能,这是其余语言所没法实现的。想要掌握Rails,你必定要了解 Ruby。
生成器 
ruby on rails使用的实时映射技术和元编程技术,免去了开发人员在开发过程当中编写大量样板文件代码的烦恼。在少数须要使用样板文件代码的时候,开发人员能够经过ruby on rails内建的生成器脚本实时建立,而再也不是经过手工编写。rails的这个特色可使开发人员更专一于系统的逻辑结构,而没必要为一些琐碎的细节所烦扰。 

网站应用程式架构

 

ASP.NET
 ASP.NET MVC  BFC  DotNetNuke  MonoRail
 Umbraco      
 
ColdFusion
 ColdSpring  Fusebox  Mach-II  Model-Glue
 onTap  on Wheels    
 
Common Lisp
 ABCL-web  blow  BKNR  SymbolicWeb
 UnCommon Web      
 
C++
 CppCMS      
 
Java
 Apache Struts  AppFuse  Flexive  GWT
 Grails  Vaadin  ItsNat  JavaServer Faces
 Makumba  OpenXava  Reasonable Server Faces  RIFE
 Restlet  Seam  Spring  Stripes
 Tapestry  WebWork  Wicket  ZK
 
Perl
 Catalyst  Interchange  Mason  
 
PHP
 Agavi  Akelos  CakePHP  Chisimba
 CodeIgniter  Garden  Horde  Kohana
 Kolibri  KumbiaPHP  Midgard  Orinoco Framework
 PHPonTrax  Seagull  Simplicity  Symfony
 WASP  Yii Framework  Zend  Zoop
 
Python
 Bottle  CherryPy  Django  Flask
 Gork  Pyjamas  Pylons  Pyramid
 Tornado  TurboGears  web2py  Zope
 
Ruby
 Ruby on Rails  Merb  Sinatra  
 
Scala
 Lift      
 
Smalltalk
 AIDA/Web  Seaside    
 
Other languages
 Application Express  Fusebox  OpenACS  Yaws
 HAppS  SproutCore  

  

来源:http://baike.baidu.com/link?url=0AadnMDxce2m-YOEoZZoGMlx4nfTVNUlz53fGk_78c_0fmcXVKd7C6mhLjjbON44编程