Традиционный ASP.СЕТЕВЫЕ веб-формы против MVC

StackOverflow https://stackoverflow.com/questions/41712

  •  09-06-2019
  •  | 
  •  

Вопрос

Как человек, имеющий некоторый опыт работы с winforms и клиентскими приложениями - стоит ли вернуться и изучить, как работают традиционные страницы ASP .NET, или можно сразу перейти на ASP .NET MVC?

Я вроде как ищу подводные камни или ловушки в своих знаниях общего языка C #, о которых я не узнаю из серии скринкастов и прочего на сайте ASP .NET.

Это было полезно?

Решение

Вот самое замечательное в MVC.Он работает ближе к основанию фреймворка, чем обычные ASP.NET Веб-формы.Таким образом, используя MVC и понимая его, вы будете лучше понимать, как работают веб-формы.Проблема с WebForms в том, что здесь много магии и около 6 лет попыток заставить Веб работать как Windows Forms, так что у вас есть иерархия дерева управления и все переведено в Web.С MVC вы получаете ядро без влияния WinForm.

Итак, начните с MVC, и вы легко сможете перейти к WebForms, если потребуется.

Другие советы

Я согласен с Ником:MVC намного ближе к реальный веб-парадигма, и, используя ее, вы столкнетесь с тем, как на самом деле работает ваш веб-сайт.WebForms скрывает от вас большинство из этих вещей, и, исходя из опыта работы с PHP, я нашел это действительно антиинтуитивным.

Я предлагаю вам сразу перейти к MVC и пропустить WebForms.Как уже было сказано, вы сможете вернуться к нему, если потребуется.

ASP.Net Webforms - это совершенно иная абстракция над базовой платформой, чем ASP.NET MVC.С MVC у вас есть больше контроля над тем, что происходит под одеялом, чем с ASP.NET "веб-формы".

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

Это зависит от ваших мотиваций.Если вы собираетесь продавать себя как разработчика ASP.NET, вам понадобится и то, и другое.

Если это просто для вашего собственного удовольствия, то перейдите на MVC.

Мое личное ощущение таково, что webforms будут существовать еще довольно много лет.Так много людей вложили в них время и энергию.Однако я думаю, что люди будут медленно (а может быть, и не так медленно!) мигрировать.Webforms всегда были просто способом заставить пользователей drag-and-drop VB4 задуматься о веб-разработке.Это вроде как сработало, но это действительно отнимает много контроля.

ASP.NET MVC предназначен для разработчиков, которые хотят отделить клиентский код от серверного.Я хотел написать JavaScript, XHTML, CSS-клиенты, которые могут перемещаться с сервера на сервер (без учета серверных технологий).Установка и доработка клиентов отнимает много времени, поэтому вы хотели бы использовать их (и подкомпоненты) для как можно большего числа серверов.Также это разделение позволяет вашему серверу поддерживать любую клиентскую технологию, которая поддерживает HTTP и угловые скобки (и / или JSON), такие как WPF / Silverlight.Без ASP.NET MVC вы были вынуждены вступить во враждебные отношения со всей ASP.NET команда ---но Скотт Гатри - классный чувак и внедряет MVC после многих лет, когда его предшественники (и, возможно, сам Скотт) были почти полностью сосредоточены на том, чтобы заставить программистов Windows Forms писать веб-приложения.

До ASP.NET MVC я создавал ASP.NET приложения, в основном основанные на файлах ASHX -HTTP-обработчиках.Я могу заверить вас, что ни один "настоящий" магазин Microsoft не стал бы поощрять такое поведение.С точки зрения (мудрого) руководства проще предписать всем вашим разработчикам использовать рекомендованный поставщиком способ использования инструментов поставщика.Таким образом, ИТ-магазинам, которые отстают на один или два года, потребуется, чтобы вы знали способ ведения дел до MVC.Это также пригодится, если у вас есть "устаревшая" система для обслуживания.

Но для зеленого поля это полностью MVC!

ИМО, в обычных сценариях веб-форм больше подводных камней, чем просто в MVC.Viewstate и привязка к данным иногда могут быть сложными.

Но для MVC это просто простая форма для публикации / рендеринга вещей по старинке.Не то чтобы это плохо, просто по-другому, и к тому же чище.

Я действительно не могу говорить технически о сравнении MVC с "традиционным", поскольку до сих пор я использовал только традиционную модель.Однако из того, что я прочитал, я не думаю, что одно сильно превосходит другое.Я думаю, как только вы "поймете это", вы сможете быть очень продуктивными и в том, и в другом.

Однако с практической точки зрения я бы принял во внимание, что большинство книг, примеров кода и существующих приложений написаны "традиционным" способом.У вас будет больше доступной помощи, и ваши навыки будут более полезны работодателям, у которых уже есть заявки, написанные "традиционным" способом.

Если вы не знаете, как или у вас нет опыта работы с веб-запросами / ответами на уровне raw и рендерингом raw html / css, то MVC будет хорошим местом для начала.Тогда вы лучше поймете плюсы и минусы как webforms, так и mvc.Они оба будут присутствовать в будущем, поскольку оба удовлетворяют разные потребности.

Хотя я скажу, что webforms - это платформа, которой сильно злоупотребляют.Такая большая часть мусора типа "не смотри код" создает дурную славу всем, кто им пользуется.Потратьте время на то, чтобы понять это и использовать должным образом, и вы обнаружите, что это очень расширяемая и надежная платформа.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top