Areas - Tarostar/SimpleNetBlog GitHub Wiki
To divide the code into modules it can be organised with sub-folders, e.g.:
Controllers->Module1 Controllers->Module2 Models->Module1 Models->Module2 Views->Module1 Views->Module2
The drawback is that we then need a sub-folder for each top-level folder.
A more elegant way is to use Area where all resources for a module are kept in an area, e.g.:
Areas->Admin->Controllers Areas->Admin->Models Areas->Admin->Views
Shared resources are put in the top level folders (i.e. Controllers, Models and Views).
Namespaces are used to avoid naming conflicts between controllers.
This article is a brief introduction to Areas.