Application framework
In computer programming, an application framework[1] consists of a software framework used by software developers to implement the standard structure of an application.[2]
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.
Examples
Apple Computer 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 (All 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, NetBeans and Eclipse projects.
Microsoft markets a framework for developing Windows applications in C++ called the Microsoft Foundation Class Library, and a similar framework for developing applications with Visual Basic or C#, called .NET Framework.
A number of frameworks can build cross-platform applications for Linux, Macintosh, and Windows from the same source code, such as Qt, the widget toolkits wxWidgets, FOX toolkit, or Eclipse RCP.
Oracle Application Development Framework (Oracle ADF) aids in producing Java-oriented systems.
Silicon Laboratories is offering an embedded application framework for developing wireless applications on its portfolio of wireless chips.
MARTHA (layout engine) is a proprietary Java framework that all of the RealObjects software is built on.