MVC is a software architecture which separates domain, application, business
and logic from the rest of the user interface. It does this by separating the
application into three parts: the model, the view, and the controller.
The model manages basic behaviours and data of the application. It can respond to requests for information, respond to instructions to change the state of its information, and even notify users when information changes. In short, it is the data and data-management of the application.
It was originally developed for desktop computing, but MVC has been widely adopted as an architecture for Internet applications in major programming languages. These software frameworks vary, mainly in the way that the MVC responsibilities are divided between the client and server.