A broad definition encapsulates the concept of a framework as a structure for supporting or enclosing something else, especially a skeletal support used as the basis for something being constructed.
In plain English
At is simplest, an application framework is a base “foundation” of core functions and toolsets that helps developers build enterprise software systems. A framework can be considered to be made up of core re-useable components (or building blocks) and processes that form the basis of an enterprise information system. It helps software developers to focus on the business aspect of the application and not have to worry about repeatedly building the mandatory features (infrastructure/plumbing) required by every system. (Eg security, user profiles)
So if you were to think of your enterprise computer systems as being like a house – you need good foundations and plumbing as well as the visible fittings and features.
At a technical level
At a more technical level an application framework is a holistic set of guidelines and specifications that provide platforms, tools, and programming environments for addressing the design, integration, performance, security, and reliability of distributed and multi-tiered applications. An application framework includes the presentation services, server-side processing, session management, business logic framework, application data caching, application logic, persistence, transactions, security, and logging services for applications.
The aim of the application framework is to provide a single and unified software infrastructure that reduces the number of enterprise software products to support, maintain, and integrate. An application framework generally provides the following key things:
-
Transaction Management
-
Scalability
-
Security
-
State Management
-
Application Integration Services
-
Administration Services
-
Run-time Services
-
Connection Services
-
Messaging Services
-
Application Development, Deployment, and Execution Platform
-
Web Services
-
Business Process Management Services
These support various graphical user interfaces including Web-browsers and Wireless Services while binding and accessing legacy systems, relational databases, data stores and customized or packaged enterprise applications.
In summary, application frameworks provide a platform for design, development, assembly deployment, execution and monitoring of applications built on mult-tiered distributed application model.