Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Articles
Search: 

What is an application framework?
Maurice De Beijer, January 1, 2001
An application framework is a set of reusable components with a reusable application design. This means that you not only get a lot of functional code but you also start with a design of how they work together. This means that an application framework can provide far more functionality that a librar...
Summary
An application framework is a set of reusable components with a reusable application design. This means that you not only get a lot of functional code but you also start with a design of how they work together. This means that an application framework can provide far more functionality that a library of functions as these are basically independent of each other.
Description
An application framework is a set of reusable components with a reusable application design. This means that you not only get a lot of functional code but you also start with a design of how they work together. This means that an application framework can provide far more functionality that a library of functions as these are basically independent of each other.

For a developer using an application framework differs from using a library in the way he writes the application. With a library the developer writes the code that calls the library functions. This means that he is responsible for the way the different components interact. Using an application framework the developer writes the code that is called by the application framework. This means that the application framework is responsible for the interaction between the components. While this may not seem a big advantage at first there is a significant gain from this approach. The application framework is reused in multiple applications by multiple developers. This means that the application framework is a proven concept and using it should lead to a more robust application.

Benefits of using an application framework

  • Reuse of a proven design.
    This means that a developer can focus his design efforts at the problem that the application should solve without having to worry about the technical design.

  • Reuse of a proven set of classes.
    The developer starts with a set of tested and proven classes. These classes don’t have to be designed, coded or debugged. This means that only the application specific code has to be designed, coded and tested. This could mean a big saving in time and effort.
  • The developer can work at a higher level of abstraction.
    Due to the fact that the developer is not involved in a lot of low level coding it becomes far easier to have a good overview of what the application is supposed to achieve.
Drawbacks of using a application framework

  • Learning curve.
    To use an application framework the developer has to learn the application framework and its design. Unlike a library, where the developer can just call a single function, it is usually difficult to use only part of an application framework. When a developer starts an application with an unknown application framework he will quite likely take longer and only on the second and later projects will he experience a significant gain.

  • Not always appropriate.
    An application framework is not always suitable for a particular application. Using an application framework that is not suitable for a given application is likely to make development difficult as the developer has to work around the limitations of the application framework instead of with it.
Application frameworks versus Application generators

When a developer uses an application generator he typically answers a number of questions about the application to be build. The application generator uses these answers as the parameters for the generation process. After the generation process the developer has the source code that can be compiled into an application. When the application has to be changed the developer has the choice between changing the generated code or the parameters and regenerating the code. If the developer decides to change the code he cannot at a later date regenerate the application without making the same identical changes and thus creating a maintenance problem. If, on the other hand, de developer decides to change the parameters and regenerate the code he will most likely not be able to fine tune the application.

Using an application framework on the other hand provides the developer with the option to override methods and properties to change the behavior. The developer uses the classes as high level building blocks at first in a similar fashion that he would with the parameters of an application generator. When he has to make small adjustments to one class he can do so without affecting the high level building blocks in other parts of the application.

Maurice De Beijer, ABL - The Problem Solver
Maurice de Beijer is an independent software developer and Beta tester based in the Netherlands. He specializes in Visual FoxPro, .NET, OOP and solving difficult technical issues.
More articles from this author
Maurice De Beijer, February 1, 2004
Last year I wrote an article about debugging Visual FoxPro COM servers. When I wrote the article I was using Windows 2000 myself and didn’t test the code on Windows XP. Normally this isn’t a problem as there is little difference between XP and 2000 when using Visual FoxPro, except for themes support...