Basically, MVC serves well when you have an application that needs separation of the data(model), the data crunching(controller), and the presentation of the data(view) . This also serves well in an application where the data source and/or data presentation can change at any time.