Традиционные веб-формы ASP.NET и MVC
Как у кого-то с некоторыми winforms и клиентскими приложениями, стоит ли возвращаться и учиться тому, как работают традиционные ASP.NET-страницы, или это нормально с перемещением прямо в ASP.NET MVC?
Я как бы искал подводные камни или ловушки, насколько мне известно об общем С#, о которых я не буду знать из серии screencast и вещей на сайте ASP.NET.
Ответы
Ответ 1
Вот что отличает MVC. Он работает ближе к базе фреймворка, чем обычные веб-формы ASP.NET. Поэтому, используя MVC и понимая это, вы сможете лучше понять, как работают WebForms. Проблема с WebForms заключается в том, что есть много волшебства и около 6 лет пытается заставить Web работать как Windows Forms, поэтому у вас есть иерархия дерева управления и все, что переводится в Интернет. С MVC вы получаете ядро без влияния WinForm.
Итак, начните с MVC, и вы легко сможете перейти к WebForms, если это необходимо.
Ответ 2
Я согласен с Ником: MVC намного ближе к реальной веб-парадигме, и, используя ее, вы столкнетесь с тем, как ваш сайт действительно работает. WebForms отвлекает большинство этих вещей от вас и, исходя из фона PHP, я считаю, что это действительно антиинтуитивно.
Я предлагаю вам сразу перейти к MVC и пропустить WebForms. Как сказано, вы сможете вернуться к нему, если потребуется.
Ответ 3
ASP.Net Webforms - это совершенно другая абстракция по базовой структуре, чем ASP.NET MVC. С MVC у вас есть больше контроля над тем, что происходит под обложками, чем с Web-форматами ASP.NET.
По-моему, изучение разных способов сделать что-то обычно делает вас лучшим программистом, но в этом случае может быть лучше, чтобы учиться.
Ответ 4
Это зависит от ваших побуждений. Если вы собираетесь продавать себя как разработчик ASP.NET, вам понадобятся оба.
Если это только для вашего собственного удовольствия, перейдите в MVC.
Мое личное чувство заключается в том, что веб-формы будут работать уже несколько лет. У многих людей есть время и энергия, вложенные в них. Тем не менее, я думаю, что люди будут медленно (или, может быть, не так медленно!) Мигрировать. Webforms всегда был всего лишь способом получить перетаскивание VB4 morts, чтобы думать о веб-разработке. Это хорошо работало, но оно отнимает много контроля.
Ответ 5
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 полностью!
Ответ 6
IMO, в сценариях обычных веб-форм больше ошибок, чем при использовании только MVC. Viewstate и привязка данных могут быть сложными время от времени.
Но для MVC это просто простая форма post/render вещи в старой школе. Не то чтобы это плохо, это просто другое, и более чистое тоже.
Ответ 7
Я не могу говорить технически о MVC и "традиционном", поскольку до сих пор я использовал только традиционную модель. Из того, что я прочитал, я не думаю, что он значительно превосходит другого. Я думаю, как только вы "получите", вы можете быть очень продуктивным в обоих.
Практически, однако, я бы принял во внимание, что большинство книг, примеры кода и существующие приложения там написаны для "традиционного" способа. У вас есть дополнительная помощь, и ваши навыки будут более полезны для работодателей с существующими приложениями, написанными на "традиционном" пути.
Ответ 8
Если вы не знаете, как или нет опыта работы с необработанным веб-запросом/ответом и необработанным html/css-рендерингом, то MVC будет хорошим местом для начала.
Затем вы лучше поймете плюсы и минусы как веб-форм, так и mvc. Они оба будут в будущем, так как оба адреса будут разными.
Хотя я скажу, что webforms - сильно злоупотребляемая и злоупотребляемая платформа.
Так что большая часть мусора "смотреть без кода" дает всем, кто использует это плохое имя.
Положите время, чтобы понять это и использовать его правильно, вы найдете его очень расширяемой и надежной платформой.