2008-09-03 3 views
21

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

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

+0

Также см. Http://stackoverflow.com/questions/102558/biggest-advantage-to-using-asp-net-mvc-vs-web-forms?lq=1 – nawfal 2014-05-04 17:21:16

ответ

40

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

Итак, начните с MVC, и вы сможете легко перемещаться в WebForms, если это необходимо.

+2

начать с MVC, а затем перейти к WebForms? так глупо . его как пойти 1 шаг forwrad и 3 назад – Zakos 2014-02-17 16:54:02

4

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

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

1

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

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

1

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

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

+2

Я не согласен на аргумент образцов кода. MVC - это HTML/Javascript, работающий против методов C#. Материал webcontrol извлекается оттуда и не заменяется * на что-то еще. Поскольку каждая веб-технология работает с HTML и может (должна) работать с javascript, я нашел решения для своих задач намного быстрее, чем выяснение того, как что-то сделать с помощью элемента управления asp.net. – 2009-05-21 09:10:24

8

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

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

2

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

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

Мое личное чувство заключается в том, что веб-формы будут работать уже несколько лет. У многих людей есть время и энергия, вложенные в них. Тем не менее, я думаю, что люди будут медленно (или, может быть, не так медленно!) Мигрировать. Webforms всегда был всего лишь способом получить перетаскивание VB4 morts, чтобы думать о веб-разработке. Это было хорошо, но это отняло много контроля.

0

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

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

2

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 полностью!