软件框架

概述

软件框架(Framework,框架,架构) 是组织和开发新软件的预定义好的支持性构架。一般包括一些支持性程序和代码库,脚本语言或其它软件,用以帮助新软件的开发并把项目的各组成粘合起来。

框架是为了促进软件开发而设计的,可让开发者更注重于满足软件需求,而不必陷于沉闷的底层系统构建。比如,一个使用Apache Struts开发银行网站的开发团队可以专注于如何实现帐户的撤销,而不用考虑如何无错地实现页面间的导航条。当然,过度使用框架也会造成代码臃肿(code bloat,Software bloat)。相反相成地,使用框架的开发者等于把原来花在机械性编程和设计的时间拿来花在了框架的学习上。

Framework也是PC机上第一个办公软件套件的名称,而Mac OS X frameworks是应用程序框架。 在计算机领域之外,Framework框架是为了解决一个复杂问题而使用的过程和技术,它是一个集成了各种对象以给出既定解决方案的一种纲要。

应用程序框架:

在计算机编程中,一个应用程序框架通常是指一系列库和类,用以实现在特定操作系统上的一个应用程序的标准架构。通过把大量的可复用的代码绑定到一个框架中,开发者可节省大量开发时间,因为他不需要对已经开发过的标准化的应用程序代码再重新编写一遍。应用程序框架是随着GUI(graphical user interface)的流行而兴起的,用以提供一个应用程序的标准架构,也可以用于更方便地创建GUI自动化工具。面向对象编程技术使得应用程序的通用部份可以从应用程序框架中现成的类中继承而来。

MacApp是Apple Computer为Apple Macintosh编写的,是最早的商业性应用程序框架之一,其它流行的Mac应用程序框架还有全部基于Carbon的Metrowerks Powerplant,ocoa等,免费开源的框架项目有MozillaOpenOffice.orgGNOME 和 KDE等项目。

Microsoft也开发了类似的服务于Windows应用程序的框架MFC(Microsoft Foundation Classes)。

还有一些可以为Linux, Macintosh,Windows从同样的源程序创建同样的应用程序的框架,如 widget toolkit,wxWidgets,FOX toolkit,XPAF

分类

1,ASP框架设计:

2, PHP框架设计:

3, Java

A, Spring ; Spring is a layered Java/J2EE application framework.

B, Struts ; The Struts framework is an open-source product for building Web applications based on the model-view-controller (MVC) design paradigm.

sails:阵营开始模仿 Ruby on Rails 的一个动作,只不过资历还很浅 http://trac.opensails.org/sails Java grails: 也是非常新的项目,尤其又是动用到尚不具说服力、前途未卜的 Groovy 语言(尽管 Groovy 有 JSR 241 加持)。这得看看曾死过一次、去年重生的 Groovy 是否能成得了气候吧。不过 Groovy 的头头 Guillaume Laforge 倒是很看好 Grails http://grails.codehaus.org/

MARF — an open source Java framework for audio/speech/voice and natural language processing

NetBeans — an open source Java framework from Sun Microsystems

RIFE — an open source web application framework written in Java

Sails framework — an open source web application framework written in Java

Spring framework — an open source framework which provides an MVC framework, transparent ways of integrating AOP into software and a well-structured exception hierarchy including automatic mapping from proprietary exception hierarchies

ThinWire - an open source Rich Internet application framework written in Java

Wicket — component-based Java web application framework

XINS — Java-based framework for web applications

ZK Framework — an open source Ajax/XUL web application framework written in Java

4, Javascript

A, Prototype ; Prototype is a JavaScript framework that aims to ease development of dynamic web applications.

B, JSVM

5, Python

A, Django ; Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.

B, Subway ; The Subway project aims to create a Web development stack combining the ideas and spirit of Ruby on Rails with a comprehensive suite of prewritten Python web libraries and tools.

Django — an open source web application framework written in Python

TurboGears — an open source web application framework written in Python

Zope — a Python-based application server

6, Ruby

* Ruby on Rails ; Rails is a full-stack, open-source web framework in Ruby for writing real-world applications.

Ruby on Rails — an open source web application framework written in Ruby

Nitro ; Nitro provides everything you need to develop professional Web applications using Ruby and Javascript.

7, Coldfusion

1, Fusebox ; Fusebox is a methodology, and framework that helps you work smarter & faster to build any conceivable web application.

2, Mach-II ; Mach-II is a web-application framework focused on easing software development and maintenance.

3, Model-Glue ; Model-Glue helps you build Object-Oriented ColdFusion applications based on the Model View Controller pattern.

Model-Glue — an open source object-oriented MVC web application framework for ColdFusion

8, Perl:

Catalyst — an open source web application framework written in Perl

Gantry — an open source web application framework written in Perl

Maypole framework — an open source web application framework written in Perl

9, 其它

.NET Framework — from Microsoft

Rational Unified Process — a process framework for developing software

Apache Cocoon — from Apache Software Foundation

Apache Struts — from Apache Software Foundation

BREW - from Qualcomm

Cocoa — from Apple Computer

Eclipse — from IBM

EVA cms — from EVA Soluções

Qt - an open-source C++ framework used in KDE project

参见

类设计原则

平台架构——体系结构

从设计到架构 第三回 设计的分寸

“项目 产品 平台”我的编程人生

框架的建议

框架设计经验谈

软件架构引言之项目管理的问题

Application framework

Content management framework

Multimedia framework

Software framework

Jini | Upnp | Salutation which have been called coordination frameworks.

框架大全

当Java遇见 PHP

Taking a look at ten different PHP frameworks

Rails-inspired PHP frameworks

ColdFusion MX 下 Mach-II 和 Fusebox 的比较

参见

  1. 公司为什么需要建立一套统一的开发框架?