I know on this list that this question will seem obvious to most, but what is a framework? I have been developing with Java for two years. I started when I got a job at a college to help with the web site. The Senior Web Developer had been using Java for years and years and he had me make basic updates and prepare JavaServer Pages. He introduced me to Java. I hated it for a long time. Now, I'm in my third position and am learning more and more every day, but unfortunately for me, I am working alone and not on a team with experienced developers. I do what I can to get the job accomplished. I have worked on a web application that used Struts, but I never really figured out what that meant. I developed pages the same as usual so I'm not sure what the purpose is. Please explain. Thanks!
Early on in the process of building a house, a skeleton of the house is laid out. This skeleton is what the rest of the house is built on. The process is called "framing" the house and the skeleton is called the framework. Similarly in software, a framework is a set of components that you can use to build upon. The framework provides the basic structure of the application. All you have to do is provide the things that go on top of it. In terms of anatomy, the framework is the skeleton and your application-specific GUI objects, business objects, database objects, etc. are the "meat".
Building reusable code is what good developers do. If you can build it once and reuse it over and over, you have to build less and less over time. The whole short history of software development is an exploration of layers of abstractions to make building applications easier. Once you have a collection of pre-built, generic parts, you have the beginnings of a framework. A framework is a set of related classes and other supporting elements that make application development easier by supplying pre-built parts. Frameworks provide infrastructure for application development.