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
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.