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編程

相關文章
相關標籤/搜索