What is software framework?

A software framework is an abstraction used in software development to provide generic functionality for application-specific needs. It is a programming platform, which contains common code with range of generic features, which might be selectively used, overridden or specialized by developers to suit their requirements for the particular application.

Once developer chooses the framework to work with, he has to follow the framework's guidelines and design methodologies. The framework will provide you with hooks and callbacks, so you can use it as a foundation for your own application - it will then call plugged-in code whenever it needs. This is what we call an Inversion of Control.

The purpose of framework is to simplify the process of software development, allowing developers to dedicate more of their time and efforts to the requirements and features of their concrete project, rather than writing hundreds of lines of code to create handmade groundwork for it. For example, rather than creating Web application from scratch, which would require tremendous amount of time and knowledge, developer, using a prepared framework, such as ASP.NET, can concentrate on implementing rich functionality and fancy UI for their Web application, without need to spend noticeable amount of effort implementing basic things like handling HTTP requests, authentication or template engine.

Software frameworks are not just code base, they might also include support programs, compilers, code libraries, tool sets that bring together all the different components to enable development of a software project.

Read about advantages of using a software framework here.

Short answer

  • A software framework is a platform used in software development to provide skeleton for future application. It dictates architecture of whole application.
  • Usage of framework simplifies and speeds up development process significantly.
  • Frameworks might be shipped with support programs, compilers, code libraries and tool sets.