2010-05-15 2 views
8

Я работал над некоторыми работами WinForms на C#, но теперь мне нужно разработать интерфейс для веб-приложений в .NET (C#). , У меня есть опыт разработки веб-приложений в Ruby on Rails (& немного с Java с JSP-страницами & struts mvc).Мое первое сетевое приложение .net. Должен ли я перейти прямо к инфраструктуре MVC (cf ASP.net).

Должен ли я перейти прямо в рамки MVC? (в отличие от перехода ASP.net). Это с точки зрения будущего направления для Microsoft &, а также простота в наращивании себя.

Или, если хотите, учитывая мой опыт на сегодняшний день, какие плюсы/минусы для меня будут зависеть от MVC по сравнению с ASP.net?

благодаря

ответ

3

Если вам нужно работать очень близко к проводу, тогда 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 заявила, что планирует продолжить поддержку и разработку для обоих.

0

я должен ознакомиться с языком, прежде чем использовать «фантазии» вещи, как MVC, потому что это просто способ легче узнать, когда вы могли бы подумать, в (но это необязательно).

+0

Исходя из Ruby on Rails, ASP.NET Webforms «причудливый», а не вариант ASP.NET MVC – SztupY

+0

thats, что я предполагал SztupY - что вы думаете? – Greg

2

MVC является частью ASP.NET. Вы должны иметь в виду MVC vs Webform, на который будет отвечать ответ: исходя из фона Winform, вы найдете веб-форму проще в использовании. В будущем, перейдите к MVC.

1

Исходя из Ruby on Rails или других основанных на MVC фреймворков ASP.NET MVC - это почти лучший выбор. (ASP.NET MVC на самом деле является только частью VC, поэтому вам нужно добавить ORM по вашему выбору. EF и Linq to Sql - это способ Microsoft, NHibernate или другие ORM - это другой способ. Один хороший быстрый старт S#arp Architecture, который использует NHibernate как часть «M», или вы можете проверить WHCM, который представляет собой проект, построенный на архитектуре архитектуры S # arp и других хороших фреймворках (он рассматривается как демонстрационный проект лучшей практики ASP.NET MVC)). ASP.NET MVC почти ничего не использует в пакете WebForms (единственное, что я нашел, это AntiForgeryToken), поэтому вы ничего не потеряете, если не знакомы с ASP.NET WebForms.

Но, как вы сказали, вы также создали консольные приложения, которые ASP.NET WebForms больше похожи.

Если ваш проект является новым, я советую вам использовать ASP.NET MVC. Если ваш проект четко разделяет часть M-V-C (как в архитектуре S # arp, где они находятся в разных сборках), создание консольного приложения, использующего одну и ту же бизнес-логику, не должно быть слишком сложным. Если ваш текущий проект заключается в переносе приложения WinForms в Интернет, то может быть проще использовать WebForms.

0

Лошади для курсов. Если вы похлопываете друг с другом быстрое приложение для кого-то, веб-формы, вероятно, быстрее и проще.

Если вы создаете долгосрочное приложение для предприятий, MVC дает вам лучшую возможность тестирования SoC.

+0

Что вы имеете в виду, если лучше испытать SoC из любопытства Doobi? – Greg

+0

Doh, извините, опечатка: $ Я имел в виду Testability и SoC (Разделение проблем) http://msdn.microsoft.com/en-us/magazine/dd942838.aspx – Doobi

2

Я тоже работал на настольных приложениях и никогда не попадал в веб-материал. Я даже не (вздохнул!) Знал HTML (да, это был мой позор программистов). В моей новой работе мы собирались запустить новое приложение с использованием ASP.NET MVC, и я должен сказать вам, я люблю его. ОДНАКО Я думаю, что вы должны идти только с MVC, если вы или вы считаете кого-то с хорошими навыками дизайна html/css.

Html is easy Я знаю (я узнал, что это знаю!), Но я думаю, что его трудно сделать красивые проекты с html и css, особенно если вы сосать при проектировании, и вы, вероятно, могли бы сделать более красивые вещи, используя веб-формы, который немного проще/аналогичен winforms.

Кроме того, если вы пройдете путь MVC, убедитесь, что у вас есть достаточно времени, чтобы изучить его, так как вы собираетесь идти немного более низкоуровневым, вам нужно будет узнать больше о маленьких деталях, например о фактической разнице между post/get и все, что полностью скрыто в веб-формах. Я бы рекомендовал получить книгу, я использовал этот Pro Asp.net MVC и очень понравился.

Наконец, если ваша страница будет иметь интерактивные биты или вещи ajax-y, если вы перейдете по пути MVC, вам, скорее всего, придется изучать javascript/jQuery. Если вы перейдете к веб-формам, вы можете использовать включенные элементы управления ajax drag'n drop.

+0

Вы когда-нибудь сталкивались с проблемами WebForms, t довольно tweek вещи к как вы хотите их посмотреть? – Greg

+0

Я не слишком много работал с веб-формами, но в немногих вещах, которые я сделал, ну, вы вполне ограничены данными элементами управления и их действиями, так как id - это беспорядок. Кажется, это намного легче.net 4, так как теперь вы можете указать id, (таким образом, вы можете сделать jquery/ajaxy thingies намного проще –

Смежные вопросы