- В чем принципиальные различия между двумя моделями?
WebForms пытаются имитировать разработку WinForms, позволяя вам многократно использовать множество готовых элементов управления, и подделывать состояние веб-приложения через скрытый механизм _VIEWSTATE.
MVC - это шаблон, разработанный для того, чтобы помочь вам разделить ваши данные (модель), бизнес-логику (контроллер) и представление (представление). Он больше соответствует истинной природе Интернета: RESTful URL, без сохранения состояния.
- В каком сценарии один лучше другого?
По моему мнению, для приложений интрасети, интенсивно использующих элементы управления, WebForms могут быть полезны для сокращения времени разработки, поскольку благодаря дизайнеру вы можете очень быстро создать свой пользовательский интерфейс и позволить инфраструктуре автоматически управлять состоянием приложения.
Для любого другого проекта, особенно публичного, даже небольшого, я думаю, MVC - это путь.
- Что такое ошибки с asp.net MVC (я знаю о проблемах с
WebForms)
Я бы сказал, что есть некоторая кривая обучения, чтобы полностью понять паттерн MVC и его мощность. Кроме того, поскольку инфраструктура все еще находится в бета-версии, можно ожидать, что API-интерфейс претерпит некоторые незначительные изменения перед выпуском.
Поскольку JavaScript не скрыт от вас в MVC, потребуется также некоторое время для изучения, если вы не знакомы с ним. JQuery значительно упрощает это.
- Для нашего примера приложения, что я получу, используя asp.net MVC вместо
WebForms?
Вы получите лучший контроль над HTML-разметкой и поведением Javascript, более четкое разделение проблем и некоторую легко тестируемую кодовую базу (даже если вы не заинтересованы в ее модульном тестировании).
- Для нашего примера приложения, что бы я потерял, используя asp.net MVC вместо
WebForms?
Вы бы потеряли быстрый способ создания ваших страниц и управления состоянием приложений.
- Возможно ли смешивать и сочетать модели в одном и том же маленьком
приложение?
В некотором смысле, да, кажется.
Я бы рекомендовал посмотреть этот доклад Фила Хаака, который дает хороший обзор фреймворка и предлагает Джеффу Этвуду рассказать о том, как он создал StackOverflow с ним.
Он объясняет, как SO использует некоторые элементы управления WebForms для CAPTCHA, которые отображаются в виде.