Прежде всего, я думаю, что программное обеспечение и шаблоны имеют тенденцию усложнять вещи. Как следует из названия ASP, основная идея фреймворка - Model-View-Controller (MVC). Вы можете быть в состоянии поместить много вещей между этими компонентами, включая БД, Сервисы, API и т. Д. Однако основная концепция шаблона Model-View-Controller довольно проста: разделите эти функции на модули, чтобы проект мог быть легче поддерживать
MVC может применяться для ЛЮБОГО программирования или написания сценариев. Даже для сценария оболочки MVC может быть полезным. Вот несколько примеров каждого из них:
- Просмотр - вот как пользователь взаимодействует. Это может быть веб-страница, форма Windows или интерфейс командной строки.
- Контроллер - Мозги программы, она должна знать обо всем, но должна быть довольно простой. Он в основном получает сообщения или события из представления и / или модели и решает, что делать. Хорошие контролеры - это в основном диспетчер событий. В зависимости от событий, это вызывает представление или методы модели. В ASP MVC контроллер предоставляет ActionResults для представления и взаимодействует с моделью.
- Модель - это, в основном, где данные. Это может быть БД, файловая система, веб-сессия или память.
Теперь хорошая часть. Контроллеру не важно, как View управляет взаимодействием с пользователем. Это может быть интерфейс командной строки или веб-форма. Контроллер не знает, как хранятся данные, не имеет значения, является ли это БД или файлом. Он просто запрашивает данные и передает их в View. Не его дело знать, как представление получает входные данные, или моделировать данные.
Тогда вопрос: какого черта мы хотим слишком усложнять вещи с помощью этого паттерна? Хорошо, представьте, что у вас есть приложение MVC, использующее БД MySQL, и вы знаете, что хотите использовать SQL Server. Какой модуль вы должны изменить? Очевидно, что модель является одной из затронутых. Контроллер и представление не должны иметь каких-либо серьезных последствий. Теперь представьте, что у вас есть другое приложение MVC, использующее Windows Forms, и теперь вы хотите изменить его на Web Forms? Ну, в основном это будет вид, который будет затронут (и некоторые части контроллера), но ваша Модель должна быть такой же.
Таким образом, MVC - отличный шаблон, и его следует использовать чаще. Тем не менее, я думаю, что есть некоторые проекты, которые не подходят для MVC из-за своей простоты. Это будет похоже на создание лазера, чтобы убивать мух. Конечно, вы их убьете, но это не стоит усилий во всех случаях.