Application framework
Encyclopedia
In computer programming
, an application framework consists of a software framework
used by software developer
s to implement the standard structure of an application
for a specific development environment (such as an operating system
or a web application
).
Application frameworks became popular with the rise of graphical user interfaces (GUIs)
, since these tended to promote a standard structure for applications. Programmers find it much simpler to create automatic GUI creation tools when using a standard framework, since this defines the underlying code structure of the application in advance. Developers usually use object-oriented programming techniques to implement frameworks such that the unique parts of an application can simply inherit from pre-existing classes in the framework.
developed one of the first commercial application frameworks, MacApp
(first released in 1985), for the Macintosh. Originally written in an extended (object-oriented) version of Pascal, it later appeared rewritten in C++
. Other popular frameworks for the Mac include Metrowerks' PowerPlant
and MacZoop
(both based on Carbon). Cocoa for Mac OS X
offers a different approach to an application framework, one based upon the OPENSTEP
framework developed at NeXT
.
Free-software frameworks exist as part of the Mozilla
, OpenOffice.org
, GNOME
, KDE
, and Eclipse
projects.
Microsoft
markets a framework for developing Windows
applications in C++ called the Microsoft Foundation Class Library
.
A number of frameworks can build cross-platform applications for Linux
, Macintosh, and Windows from the same source code, such as Qt, the widget toolkit
s wxWidgets
, FOX toolkit
, or Eclipse RCP
.
Oracle Application Development Framework
(Oracle ADF) aids in producing Java-oriented systems.
Computer programming
Computer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. This source code is written in one or more programming languages. The purpose of programming is to create a program that performs specific operations or exhibits a...
, an application framework consists of a software framework
Software framework
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software...
used by software developer
Software developer
A software developer is a person concerned with facets of the software development process. Their work includes researching, designing, developing, and testing software. A software developer may take part in design, computer programming, or software project management...
s to implement the standard structure of an application
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...
for a specific development environment (such as an operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
or a web application
Web application
A web application is an application that is accessed over a network such as the Internet or an intranet. The term may also mean a computer software application that is coded in a browser-supported language and reliant on a common web browser to render the application executable.Web applications are...
).
Application frameworks became popular with the rise of graphical user interfaces (GUIs)
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...
, since these tended to promote a standard structure for applications. Programmers find it much simpler to create automatic GUI creation tools when using a standard framework, since this defines the underlying code structure of the application in advance. Developers usually use object-oriented programming techniques to implement frameworks such that the unique parts of an application can simply inherit from pre-existing classes in the framework.
Examples
Apple ComputerApple Computer
Apple Inc. is an American multinational corporation that designs and markets consumer electronics, computer software, and personal computers. The company's best-known hardware products include the Macintosh line of computers, the iPod, the iPhone and the iPad...
developed one of the first commercial application frameworks, MacApp
MacApp
MacApp was Apple Computer's primary object oriented application framework for the Mac OS for much of the 1990s. First released in 1985, it is arguably the first such system to be widely used, notably on a microcomputer platform...
(first released in 1985), for the Macintosh. Originally written in an extended (object-oriented) version of Pascal, it later appeared rewritten in C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
. Other popular frameworks for the Mac include Metrowerks' PowerPlant
PowerPlant
PowerPlant is an object-oriented GUI toolkit, application framework and set of class libraries for Mac OS, created by Metrowerks. The framework was fairly popular at the height of the Classic Mac OS era, and was primarily used with CodeWarrior...
and MacZoop
MacZoop
MacZoop was a popular application framework for the Apple Macintosh, based on Carbon. Written exclusively in C++, it was designed as a much smaller and manageable alternative to the popular, but now defunct Think Class Library from Symantec, and later, PowerPlant framework from Metrowerks. MacZoop...
(both based on Carbon). Cocoa for Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
offers a different approach to an application framework, one based upon the OPENSTEP
OpenStep
OpenStep was an object-oriented application programming interface specification for an object-oriented operating system that used a non-NeXTSTEP operating system as its core, principally developed by NeXT with Sun Microsystems. OPENSTEP was a specific implementation of the OpenStep API developed...
framework developed at NeXT
NeXT
Next, Inc. was an American computer company headquartered in Redwood City, California, that developed and manufactured a series of computer workstations intended for the higher education and business markets...
.
Free-software frameworks exist as part of the Mozilla
Mozilla application framework
The Mozilla application framework is a collection of cross-platform software components that make up the Mozilla applications. It was originally known as XPFE, an abbreviation of cross-platform front end. It was also known as XPToolkit...
, OpenOffice.org
OpenOffice.org
OpenOffice.org, commonly known as OOo or OpenOffice, is an open-source application suite whose main components are for word processing, spreadsheets, presentations, graphics, and databases. OpenOffice is available for a number of different computer operating systems, is distributed as free software...
, GNOME
GNOME
GNOME is a desktop environment and graphical user interface that runs on top of a computer operating system. It is composed entirely of free and open source software...
, KDE
KDE
KDE is an international free software community producing an integrated set of cross-platform applications designed to run on Linux, FreeBSD, Microsoft Windows, Solaris and Mac OS X systems...
, and Eclipse
Eclipse (software)
Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...
projects.
Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
markets a framework for developing Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
applications in C++ called the Microsoft Foundation Class Library
Microsoft Foundation Class Library
The Microsoft Foundation Class Library is a library that wraps portions of the Windows API in C++ classes, including functionality that enables them to use a default application framework...
.
A number of frameworks can build cross-platform applications for Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, Macintosh, and Windows from the same source code, such as Qt, the widget toolkit
Widget toolkit
In computing, a widget toolkit, widget library, or GUI toolkit is a set of widgets for use in designing applications with graphical user interfaces...
s wxWidgets
WxWidgets
wxWidgets is a widget toolkit for creating graphical user interfaces for cross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with minimal or no code changes...
, FOX toolkit
FOX toolkit
The FOX toolkit is an open source, cross-platform widget toolkit, that is, a library of basic elements for building a graphical user interface...
, or Eclipse RCP
Eclipse (software)
Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...
.
Oracle Application Development Framework
Oracle Application Development Framework
In computing, Oracle Application Development Framework, usually called Oracle ADF, provides a commercial Java framework for building enterprise applications. It provides visual and declarative approaches to Java EE development...
(Oracle ADF) aids in producing Java-oriented systems.