Вот мои правила:
Контроллер
В основном Pageflow. Определяет, какой вид будет отображаться следующим.
Имеет доступ к Сервисам (т.е. productService.GetProduct (Model.ProductID))
Модель
У меня их 2.
POCO-классы - используются всеми слоями (BLL, DAL)
ViewModel - используется View и Controller для строго типизированных представлений.
Просмотр
Надеюсь, в основном, простой HTML
Я стараюсь сделать макет таким образом, чтобы над проектом работали разные люди: фронтенд и бэкэнд.
Бэкэнд парень будет делать Сервис и Хранилище.
Парень из Frontend будет выполнять Controller и Views. Он также делает AJAX.