Вот мои 2 цента о MVC для веб-приложений. Для приложений с графическим интерфейсом, для которых изначально предназначался MVC, требовался код «слушателя», чтобы пользовательский интерфейс мог обновляться, когда события изменяли данные модели.
В MVC для веб-сайтов это не нужно, вы получаете своего слушателя бесплатно: веб-сервер и HTTP-запрос - это событие. Так что на самом деле MVC для веба должен быть еще проще. В самом деле, это может быть сведено к шаблону посредника, где контроллер является посредником между моделью и представлением.
Есть две вещи, в которых много путаницы. Независимо от общепринятой "мудрости":
Рамки! = MVC
База данных! = "Модель"
Фреймворки веб-разработки "полного стека" обычно добавляют множество функций и могут или не могут быть ориентированы на MVC по своей сути. Одна из функций, которую добавляют многие фреймворки, - это доступ к базе данных или функциональность реляционного сопоставления объектов, а также из-за того, что фреймворки и MVC запутываются, данные базы данных и аспект модели MVC также путаются. Модель обычно можно рассматривать как базовые данные для приложения, но она НЕ ДОЛЖНА поступать из базы данных. Хорошим примером может служить вики, в которой базовая модель / данные состоят из данных редакции файла, например, из RCS.
Надеюсь, это поможет, и я уверен, что у других будет много чего добавить.