Глядя на структуру MVC, кажется, что нам требуется больше классических знаний ASP, чем обратных передач ASP.NET и состояний просмотра. Мы движемся назад к сложной логике пользовательского интерфейса + кода в фактической HTML-разметке внешнего интерфейса?
Двигаемся ли мы к классическому ASP, используя структуру MVC в .Net 3.5?
Ответы (5)
Мы возвращаемся к тому, чтобы не пытаться абстрагироваться от фундаментальных понятий, таких как HTML и HTTP-запросы. Что касается пользовательского интерфейса, это приводит к тому, что представления более тесно интегрированы с выводом, что неплохо. классическая модель ASP трансформировалась в то, что все было тесно интегрировано с выходными данными, что плохо.
Можно утверждать, что парадигма MVC — это шаг назад, если вы считаете парадигму ASP.NET шагом вперед. Лично я всегда думал, что гораздо проще писать чистый разделенный код в классическом ASP, а не в .NET, где отображаемый текст обычно разбивается на блоки кода, к которым невозможно получить доступ с помощью стандартного HTML-редактора. Я всегда думал, что архитектура ASP.NET больше направлена на продвижение .NET, чем на улучшение общей структуры нашего приложения, так что в этом смысле MVC — это шаг вперед.
Забавно, что вы упомянули об этом ... У меня сегодня был такой же разговор с коллегой.
Это шаг назад? Я так не думаю... в то время как в классическом asp у вас была сложная логика в пользовательском интерфейсе, из того, что я вижу в MVC, сложная логика все еще должна быть в ваших бизнес-объектах, и любое сложное взаимодействие с объектом должно выполняться через Контроллер.
Цель, опять же, из того, что я вижу, состоит в том, чтобы сохранить пользовательский интерфейс аккуратным и подходящим, когда дело доходит до фактической бизнес-логики. Любое дополнительное раздувание будет вызвано тем, что пользовательский интерфейс станет более удобным для пользователя, например, AJAX и JQuery.
Это только мое первоначальное наблюдение относительно MVC. Это очень крутая технология, особенно учитывая то, как она расположена поверх REST, что упрощает работу с другими технологиями.
Я с нетерпением жду возможности попробовать это в паре будущих проектов!
Если вы видите сложную логику кода в представлении относительно моделей и контроллеров, то, возможно, вы подходите к ней неправильно.
В чистом смысле вы должны иметь возможность переключать представление (скажем, XML вместо HTML) с минимальными усилиями. Это может произойти только в том случае, если логика данных содержится в моделях, а бизнес-логика содержится в контроллерах.
Таким образом, если вы отображаете корзину для покупок, представление может иметь только код, который записывает количество продуктов и итоговые суммы. Класс(ы) модели будет содержать данные о продукте, а контроллер будет выполнять всю обработку, такую как добавление продуктов и проверка.
Весь смысл MVC в разделении кода. Модели должны содержать всю вашу бизнес-логику, представление должно просто обрабатывать вывод для пользователя, а контроллер должен склеивать эти две части вместе.