Если вам нужно работать очень близко к проводу, тогда MVC - отличный выбор. Под этим я имею в виду, если вам нужно иметь очень жесткий контроль над разметкой; в то время как с WebForms; с MVC намного проще. Это было бы распространено для приложений, предназначенных для публичной (например, интернет) аудитории, которая может иметь более богатый графический опыт. Напротив, если вы разрабатываете внутреннее (например, интрасеть) бизнес-приложение, где графическая презентация не так критична, то WebForms обладает множеством действительно хороших возможностей, позволяющих вам двигаться быстрее. Не поймите меня неправильно, вы можете заставить приложения WebForm выглядеть действительно красиво, но вы отказываетесь от контроля над разметкой.
Очень часто ViewState приходит в такое обсуждение. MVC не будет иметь никакого ViewState, поэтому на-проводной основе будет намного меньше, что в какой-то момент приведет к экономии скорости и пропускной способности. С другой стороны, создание приложений с поддержкой состояния с MVC может быть более болезненным. Напротив, WebForms по умолчанию будет иметь ViewState и по своей сути более сдержанно. Обычно это нормально для внутренних приложений. Имейте в виду, что ViewState не нужно отправлять по кабелю ... есть расширения, которые позволяют выгружать их в локальный кеш. Я не одобряю одно за другим, но вы должны знать, что каждый может сделать в этом отношении.
Если модульное тестирование важно для вас, тогда MVC также намного лучший выбор, так как это проще. Это абсолютно полезно в WebForms, но требует правильной настройки кода.
Безопасность не является основным фактором, поскольку большая часть настроек IPrinciple и IIdentity происходит в HTTP-конвейере через HttpModules, так что либо поступит в этом отношении.
Еще один важный фактор в выборе вашего выбора относится к вашим навыкам относительно времени, которое вы должны выполнить ... Если вы не привыкли работать без апатридов или кодировать стандартные веб-технологии (например, html, css, jquery , и т. д.). MVC займет у вас больше времени, чтобы делать очень простые вещи. С учетом сказанного, когда-то на месте это, вероятно, будет более чистым, меньшим, более проверяемым и быстрее. Если вам нужно двигаться очень быстро, вы можете сделать это быстрее в WebForms. WebForms также делает много тяжелой работы в отношении разметки, поэтому есть ряд деталей, которые вы можете оставить на ASP.NET.
На самом деле я использую оба варианта по разным причинам, и MS заявила, что планирует продолжить поддержку и разработку для обоих.
Исходя из Ruby on Rails, ASP.NET Webforms «причудливый», а не вариант ASP.NET MVC – SztupY
thats, что я предполагал SztupY - что вы думаете? – Greg