When using the MVC pattern, what criteria do you follow in deciding when to add a new model and when to add a new controller? For example, I am looking to build a website that has basic social networking and then 5 to 10 applications. I am storing all of the data in Azure table storage except images, files and videos, which I am storing in Azure blog storage. I expect to have about 100 pages for the whole website, with social networking plus the apps. Should I use one model and controller for the whole project and just add different views, or should I have a different model and controller for each application.