Некоторые из больших, которые я узнал в своем движении:
1) Представления должны иметь очень ограниченную логику. Если вы обнаружите, что у вас много операторов <% if (...) {%>, вам нужно добавить дополнительную информацию в свои модели и / или создать методы расширения HtmlHelper, которые обрабатывают эту логику.
2) Классы вашего контроллера должны интерпретировать только пользовательский ввод и запрашивать данные из ваших моделей. Если необходимо принять решение о данных, контролер должен передать информацию, необходимую для принятия этих решений, в модели.
3) Модели должны хранить всю вашу бизнес-логику, связанную с данными. Частичные занятия - твои друзья здесь. Множество генераторов DAL позволяют вам использовать партиалы для добавления логики к вашим сгенерированным моделям (таким как Linq to Sql и Subsonic).
4) Государство - враг. Это не просто MVC; Мне просто нравится указывать, что чем больше состояния требует ваш дизайн, тем легче он ломается.