zoukankan      html  css  js  c++  java
  • Ruby on Rails

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

      主要特点 

    当然了,所有的 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

  • 相关阅读:
    使用CSS3美化复选框checkbox
    MYSQL select时锁定记录问题
    SQL Server中的锁
    T-SQL查询进阶—理解SQL Server中的锁
    SQL:查找被锁的表,以及锁表的SQL语句(重点推荐)
    Mac 常用的手势
    Mac 常用的快捷键
    Mac上的学习神器:Marginnote
    Mac 常用命令介绍
    Mac 上的传奇效率神器 Alfred 3
  • 原文地址:https://www.cnblogs.com/hibernation/p/3342589.html
Copyright © 2011-2022 走看看