可供選擇的32個Web開發框架
Ruby on Rails是一個 Web 應用程序框架,是一個相對較新的 Web 應用程序框架,構建在 Ruby 語言之上。它被宣傳為現有企業框架的一個替代,而它的目標,簡而言之,就是讓生活,至少是 Web 開發方面的生活,變得更輕松。J2EE是一種利用Java 2平臺來簡化企業解決方案的開發、部署和管理相關的復雜問題的體系結構。J2EE技術的基礎就是核心Java平臺或Java 2平臺的標準版,J2EE體系結構提供中間層集成框架用來滿足無需太多費用而又需要高可用性能高可靠性以及可擴展性的應用的需求。
Java 2平臺有3個版本,它們是適用于小型設備和智能卡的Java 2平臺Micro版(Java 2 Platform Micro Edition,J2ME)、適用于桌面系統的Java 2平臺標準版(Java 2 Platform Standard Edition,J2SE)、適用于創建服務器應用程序和服務的Java 2平臺企業版(Java 2 Platform Enterprise Edition,J2EE)。
Ruby on Rails和 J2EE 堆棧的比較 可以看到,Rails 堆棧和構成普通的基于 J2EE 的 Web 應用程序的組件之間的基本區別很小。兩者都有用來執行應用程序代碼的容器;都有幫助分離應用程序的模型、視圖和控件的 MVC 框架;以及持久存儲數據的機制。</pre>
Django框架的核心包括:一個 面向對象 的映射器,用作數據模型(以Python類的形式定義)和關聯性數據庫間的媒介;一個基于正則表達式的URL分發器;一個視圖系統,用于處理請求;以及一個模板系統。
核心框架中還包括:
- 一個輕量級的、獨立的Web服務器,用于開發和測試。
- 一個表單序列化及驗證系統,用于HTML表單和適于數據庫存儲的數據之間的轉換。
- 一個緩存框架,并有幾種緩存方式可供選擇。
- 中間件支持,允許對請求處理的各個階段進行干涉。
- 內置的分發系統允許應用程序中的組件采用預定義的信號進行相互間的通信。
- 一個序列化系統,能夠生成或讀取采用XML或JSON表示的Django模型實例。
- 一個用于擴展模板引擎的能力的系統。
Django 包含了很多應用在它的"contrib"包中,這些包括:
- 一個可擴展的認證系統
- 動態站點管理頁面
- 一組產生 RSS 和 Atom 的工具
- 一個靈活的評論系統
- 產生Google 站點地圖 (Google Sitemaps)的工具
- 防止跨站請求偽造(cross-site request forgery)的工具
- 一套支持輕量級標記語言(Textile和Markdown)的模板庫
- 一套協助創建地理信息系統(GIS)的基礎框架
Drupal Drupal是一個開源的內容管理系統(CMS) 平臺,它是用PHP寫成的。主要用于構造提供多種功能和服務的動態網站,這些功能包括用戶管理(UserAdministration)、發布工作流 (Publishing Workflow)、討論、新聞聚合(NewsAggregation)、元數據(Metadata)操作和用于內容共享的XML發布。Drupal有一
個優秀的模塊化結構,提供了許多模塊,包括短消息、個性化書簽、網站管理、Blog、日記、電子商務、電子出版、留言簿、Job、網上電影院、論壇、投票
等模塊。并且Drupal模塊的下載、安裝、定制非常方便。
</p>
CakePHP是一個開源的PHP on rails的full-stack framework。最開始從Ruby On Rails框架里得到靈感。程序員可使用它來快速創建的Web應用程序。我們的首要目的是使你以一種預置的快速且不失靈活性的方式開展工作。為什么是CakePHP? CakePHP有多個特點,這些特點讓CakePHP成為了快速開發框架中的佼佼者之一。
1.活躍友好的社區
2.靈活的許可協議(Licensing)
3.兼容PHP4和PHP5
4.數據庫交互和簡單查詢的集成
5.應用程序Scaffolding
6.MVC體系結構
7.友好的表現形式,自定義的URL的請求分配器(Request dispatcher)
8.內置驗證機制
9.快速靈活的模版(PHP語法,利用helper)
10.AJAX,JavaScript,HTML Form以及更多的View Helper..
11.安全,對話(Session),請求處理組件(Request Handling Components)
12.靈活的ACL機制
13.數據的清理(Data Sanitization)
14.靈活的視圖緩存(Flexible View Caching)
15.可在任何web站點的子目錄里工作,不需要改變Apache配置</pre>
CodeIgniter 是一個簡單快速的PHP MVC 框架。EllisLab 的工作人員發布了 CodeIgniter。許多企業嘗試體驗過所有 PHP MVC 框架之后,CodeIgniter 都成為贏家,主要是由于它為組織提供了足夠的自由支持,允許開發人員更迅速地工作。
自由意味著使用 CodeIgniter 時,您不必以某種方式命名數據庫表,也不必根據表命名模型。這使 CodeIgniter 成為重構遺留 PHP 應用程序的理想選擇,在此類遺留應用程序中,可能存在需要移植的所有奇怪的結構。
PHP Frameworks
DooPHP: DooPHP是一個用于開發高性能Web應用程序的PHP框架。它主要關注7個方面的特性:MVC,REST,URI路由,ORM,模板引擎,易于使用和 性能。該框架采用松耦合設計,方便開發人員修改和增加新功能。開發人員可以使用它來開發穩定快速的Web 2.0 應用程序。 DooPHP 的功能也是非常豐富的,支持一般Web框架具備的功能,例如MVC框架、RESTful API、REST 客戶端、URL路由、ORM映射工具、模型生成器以及 HTTP摘要認證,同時還提供一個靈活的模板系統、日志工具以及性能測試工具。
Horde: primed for use as an email client and groupware, comes with a modern library and a complete application stack.
Joomla!: Joomla!是一套獲得過多個獎項的內容管理系統(Content Management System, CMS)。Joomla!采用PHP+MySQL數據庫開發,可運行在Linux、Windows、MacOS、Solaris等 各種平臺上。Joomla!除了具有新聞/文章管理,文檔/圖片管理,網站布局設置,模板/主題管理等一些基本功能之外。還可通過其提供的上千個插件進行 功能擴展包括:電子商務與購物車引擎,論壇與聊天軟件,日歷,博客軟件,目錄分類管理,廣告管理系統,電子報,數據收集與報表工具,期刊訂閱服務等。
Kajona: PHP5 based it provides a great base for developing hooks and plugins.
Kohana: Kohana 是一款純 PHP5 的框架,基于 MVC 模式開發, 它的特點就是高安全性,輕量級代碼,容易使用。
Lithium: adhering to no nonsense philosophies Lithium wants you to build better applications without sacrificing quality.
Rain Framework是一個快速簡單的PHP5 MVC框架。該框架讓開發者與設計者能夠更好的專注于各自的工作,因為該框架的目標是將項目各個層分離。Rain Framework的主要特性有:
- 快速安裝與配置
- 易于學習
- 快速并節約內存資源
- 程序小
- 安全,數據過慮
- 有趣,因為寬松的API讓開發者可以用自己的風格寫代碼
- 可擴展外部程序庫
- 層分離讓團隊組織更簡單
- 所見即所得,模板基于相對路徑
- 開源社區支持

Symfony: symfony是一個開源的PHP Web框架。基于最佳Web開發實踐,已經有多個網站完全采用此框架開發,symfony的目的是加速Web應用的創建與維護。它的特點如下:

Yii: a framework that is quickly gaining traction, great for developing Web 2.0 applications.

Zend Framework: powering some of the world’s most trafficked sites, build applications of any size.

Java Frameworks
Apache Click: A free and opensource framework that is built on top of the Java Servlet API.

AppFuse: Build apps quickly with a large number out-of-the-box features.

Google Web Toolkit: Develop and maintain complex frontend Javascript applications in Java.

Play!: inspired by Rails and with scala support, harness the power of Java to build web applications.

Apache Sling: Bring back the fun to web development in the creation of content centric web applications.

ZK: code enterprise apps and slick looking user interfaces with no Javascript and little programming.

Python Frameworks
CherryPy: wants you to build object orientated applications as you would normally do in Python

CubicWeb: build applications quickly and efficiently with cubes.

Flask: a mircoframework which has a very simple core. Developers only add on what is necessary.

Grok: emphasizes agile web development, sutable for all levels of developers.

Nagare: a web framework dedicated to application development rather than content publishing.

Pylons: strongly influenced by Ruby on Rails, pylons gives you a near complete third party stack of schools with which to code.

web2py: originally a teaching tool, development and easy are key.

TurboGears:
built with a large number of components and libraries, TurboGears
attempts to make application developed easy, rapid and maintainable.

Ruby Frameworks
Camping: Ruby goodness in less than 4k, fully compatible with Rails if you ever out grow your tent.

Ramaze: keeping things straight forward and simple

Sinatra: dependent on the Rack web server interface, very flexible and allows you to create applications quickly.
