О модели ASP.NET MVC и ее веб-формах - PullRequest
0 голосов
/ 15 января 2011

У меня пока нет реального понимания модели или архитектуры MVC, но я читаю и вижу, что она разделяет «Проблемы», которые представляют собой пользовательский интерфейс презентации и логический код, верно? Но я знаю, что в архитектуре WebForms также есть модель кода, которая затем разделяет код и пользовательский интерфейс.

Есть ли еще что-то еще в MVC, которое еще больше разделяет вещи вокруг?

Ответы [ 4 ]

1 голос
/ 15 января 2011

Основное различие между MVC и WebForms заключается в том, что в WebForms это представление получает запрос (/foo.aspx), а в MVC это контроллер (/controller), который будет манипулировать моделью и выбирать соответствующий вид.оказывать.Другое важное отличие состоит в том, что весь стек HTTP-контекста (Request, Response, Session, ...) был абстрагирован от абстрактных классов и интерфейсов в ASP.NET MVC, что обеспечивает лучшее разделение проблем и тестируемость модулей в изоляции.Вы также имеете гораздо больший контроль над сгенерированной разметкой в ​​ASP.NET MVC, в отличие от WebForms, где разметка по существу генерируется элементами управления на стороне сервера.

1 голос
/ 15 января 2011

Кодовое выделение - это именно то, что делает UI тесно связанным с бизнес-логикой в ​​WebForms - выделение кода является частью пользовательского интерфейса.

Использование контроллеров вместо выделенного кода является одним из основных способовкакой MVC разделяет эти проблемы.

0 голосов
/ 17 января 2011

Кодовое выделение - это именно то, что делает UI тесно связанным с бизнес-логикой в ​​WebForms - выделение кода является частью пользовательского интерфейса.

Только если вы разрешите это.

Бизнес-логика не будет связана с пользовательским интерфейсом, если вы решите использовать отдельный бизнес-уровень / уровень и внедрить соответствующий шаблон уровня пользовательского интерфейса, такой как MVP / MVC / MVVM.Я бы сказал, что n-слойный дизайн с шаблоном MVP в веб-формах может предложить еще большее разделение проблем, чем asp.net MVC, но требует гораздо более предварительного проектирования.

Asp.Net MVC обеспечивает лучшее разделение из коробки.Его запекли в него.Это хорошо для разработчиков, которые могут не знать ничего лучшего.С веб-формами это полностью зависит от архитектора / разработчика, чтобы выбрать необходимый уровень sepearion, обоюдоострый меч, потому что если у вас есть опыт работы с платформой, может сделать что-то отличное, но если вы новичок в этом или из классического жерехаСтиль разработки вы можете сделать из этого беспорядок без какого-либо руководства.

Самый большой плюс, который я вижу для asp.net MVC над веб-формами, это не соц, или тестируемость (как их можно получить в веб-формах), это способность лучше контролировать разметку (если она вам нужна) и более веб-ориентированныйфокус (опять же, если это то, что вам нужно).

0 голосов
/ 15 января 2011

Самый простой способ думать об этом - это то, что .aspx и код позади - это, по сути, два разных представления одного и того же компонента, пользовательского интерфейса. С MVC вполне возможно использовать кодовый код (если вы используете движок представления веб-форм), но как вид, так и код сзади считаются частью пользовательского интерфейса. Контроллер является отдельным объектом, как и модель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...