Мое первое веб-приложение .NET - должно я переходить прямо к платформе MVC (c.f. ASP.net)

Я сделан некоторая работа WinForms в C#, но теперь перемещающийся для разработки фронтэнда веб-приложения в.NET (C#). У меня есть опыт при разработке веб-приложений в Ruby on Rails (и немного с Java со страницами JSP, и ходит с важным видом mvc).

Я должен перейти прямо к платформе MVC? (в противоположность идущему ASP.net), Который является с точки зрения будущего направления для Microsoft и также осторожно вводит то, чтобы расти от меня.

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

спасибо

8
задан tereško 9 October 2013 в 12:29
поделиться

7 ответов

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

3
ответ дан 5 December 2019 в 11:23
поделиться

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

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

0
ответ дан 5 December 2019 в 11:23
поделиться

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

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

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

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

2
ответ дан 5 December 2019 в 11:23
поделиться
7
ответ дан 5 December 2019 в 11:23
поделиться

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

0
ответ дан 5 December 2019 в 11:23
поделиться

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

2
ответ дан 5 December 2019 в 11:23
поделиться

Приходя из 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 Architecture и других хороших фреймворках (он считается демонстрационным проектом ASP.NET MVC с лучшими практиками)). ASP.NET MVC почти ничего не использует из пакета WebForms (единственное исключение, которое я нашел, это AntiForgeryToken), поэтому вы ничего не потеряете, если не знакомы с ASP.NET WebForms.

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

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

1
ответ дан 5 December 2019 в 11:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: