Log in / create account | Login with OpenID
DocForge
Programmer's Wiki

Framework

From DocForge

A software framework is a set of code or libraries which provide functionality common to a whole class of applications. While one library will usually provide one specific piece of functionality, frameworks will offer a broader range which are all often used by one type of application. Rather than rewriting commonly used logic, a programmer can leverage a framework which provides often used functionality, limiting the time required to build an application and reducing the possibility of introducing new bugs.

For example, a web application framework may provide user session management, data storage, and a templating system. A desktop application framework may provide user interface functionality and widgets (common GUI elements).

There are many different types of frameworks, even within one classification of applications. Some offer little more than individual utility routines. Others offer what is basically a shell of an application and require strict code organization and other rules. Choosing the best framework for a project often requires a programmer to balance how much functionality they get from the framework against the flexibility they are left with.

[edit] Advantages

Application frameworks offer a variety of advantages:

  • Using code which has already been built, tested, and used by other programmers increases reliability and reduces programming time.
  • Frameworks often help enforce platform-specific best practices and rules. A desktop GUI, framework, for example, may automatically build toolbars and buttons common to local operating system. A web application framework may assist with encrypting user passwords or payment processing.
  • Upgrades to a framework can enhance application functionality without extra programming by the final application programmer. If, for example, an e-commerce framework offers a new payment method, that option may automatically become available to the end user with no extra programming by the application developer.

[edit] Disadvantages

There can be negative consequences to using a framework:

  • Performance can sometimes degrade when common code is used. This sometimes occurs when a framework must check for the various scenarios in which it is used to determine a path of action. Performance degradation, though, is often offset by the enhanced speed of development and quality of the final application.
  • Frameworks often require a significant education to use efficiently and correctly. Therefore specific frameworks very often become more valuable to individual programmers as they are used on more projects.
  • Functionality which needs to bypass or work around deficiencies in a framework can cause more programming issues than developing the full functionality in the first place. Good frameworks provide utility and structure while still leaving enough flexibility to not get in the way of the programmer.
  • Bugs in a framework can affect every application using that framework.

[edit] Frameworks

Do you have information or insights to contribute to this article? Please feel free to edit this page. Ask questions or contribute to the discussion on this article's talk page.