Я также прочитал первую версию Сандерсона его книги, и это было фантастически - очень простой способ взять и начать использовать ASP.NET MVC.К сожалению, вы не можете сразу перейти от концепций его книги к написанию большого поддерживаемого приложения.Одним из самых больших препятствий является выяснение того, куда поместить вашу бизнес-логику и другие проблемы, которые лежат между пользовательским интерфейсом и постоянным хранилищем (концепция, называемая разделением проблем или SOC).
Если вам интересно, рассмотрите возможность прочтенияна домене, управляемом дизайном.Я не буду предполагать, что знаю это отлично, но служит хорошим переходом от примеров приложений Сандерсона к чему-то, что успешно разделяет проблемы пользовательского интерфейса, бизнес-логику и проблемы хранения.
Мое решение имеет отдельный уровень обслуживания.Контроллеры связываются с сервисным уровнем (используя Dependency Injection - Ninject).Сервисный уровень имеет доступ к моим доменным объектам / бизнес-логике и моим репозиториям (NHibernate - также запущен с Ninject).У меня очень мало логики в моих представлениях или контроллерах - контроллеры служат в качестве координатора, и я стараюсь поддерживать свои действия контроллера как можно более тонкими.
Мой уровень домена (сущности, бизнес-логика и т. Д.) Имеетнет зависимостей.В нем нет ссылок на мой веб-проект или на мой репозиторий.Это то, что часто называют POCO или обычными старыми объектами C # / CLR.
РЕДАКТИРОВАТЬ: я заметил в одном из ваших комментариев, что вы используете EF.EF не поддерживает POCO без использования того, что называется Code First (находился в состоянии предварительного просмотра Community Technology Preview, когда я проверял это в августе прошлого года).Просто к вашему сведению.