Является ли ASP.NET MVC 3 готовым для бизнес-приложений

17

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

Это уже обсуждалось здесь в SO, но я видел вопрос:

задан Davide Piras 25.05.2011 в 14:41
источник
  • Через несколько месяцев ... вы решили использовать ASP.NET MVC 3? Можете ли вы рассказать свое мнение о выбранном вами выборе? Благодарю. –  Nelson Reis 30.11.2011 в 18:56
  • Мы собираемся начать разработку в январе. недавний выпуск библиотеки devxpress 2011.2 дал нам уверенность в стороне управления, поскольку они, наконец, добавили PivotGrid в MVC. о технологии и зрелости MVC с учетом особенностей, запланированных для MVC 4, мы также уверены, что мы идем правильным путем. –  Davide Piras 30.11.2011 в 19:15

3 ответа

8

Я использовал каждую версию WebForms с 1.0 beta и MVC 1, 2 и 3 и считаю, что MVC определенно готов к использованию.

Вы должны принять во внимание, что подход к развитию 2 существенно отличается:

MVC требует, чтобы вы узнали более подробные сведения о базовых веб-технологиях: HTML, CSS, JS, HTTP (которые, как я полагаю, вам все равно, если они еще не установлены в ваших навыках).

WebForms пытается абстрагировать большинство из них и может считаться более продуктивным для сбрасывания нескольких простых страниц. Но это нечеткая абстракция, и отсутствие контроля может сорвать вас, когда вы становитесь более опытными - проще в начале, если вы новичок в веб-разработке; с трудом изгибаться, когда вы приобретаете опыт. Повышение производительности начинает исчезать, когда страницы становятся более сложными. Абстракция, скорее всего, вызовет проблемы с производительностью и подорвет способность автоматизировать тестирование ваших страниц (тестирование уровня единицы и UI с помощью Selenium или эквивалентных инструментов).

Пример 1: в MVC вам, скорее всего, нужно будет понять, как обрабатываются поля формы для составления POST через HTTP с применением / form-url-encoded, иначе вы можете столкнуться с привязкой к модели. В WebForms вы можете создавать большие приложения, не беспокоясь об этом.

Пример 2: В MVC вам нужно управлять большинством состояний вашей страницы по запросам. В WebForms легко сделать фреймворк для вас.

Приложения MVC, как правило, больше полагаются на компоненты javascript на стороне клиента для повторного использования виджетов, например, привязки данных JSON. WebForms поощряет использование элементов управления на стороне сервера, так как они прекрасно интегрируются в инфраструктурные системы управления государственным оборудованием.

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

ответ дан miguelv 02.05.2012 в 00:28
источник
  • +1, отметив, что WebForms МОЖЕТ быть продуктивным, в то время как MVC может делать больше, но сложнее. Мне нравится MVC, но мне также нравятся WebForms, и я не понимаю людей, говорящих: «MVC на несколько лет опережает WebForms». Правда, F1 bolid на несколько лет опережает мой семейный автомобиль, но неважно, хочу ли я только ездить в ближайший торговый центр с семьей. –  Wiktor Zychla 02.05.2012 в 00:56
26
  

Готовый ASP.NET MVC 3 для бизнес-приложений

     

все абсолютно возможно также в MVC

По моему скромному мнению; Абсолютно 100% да. На самом деле, я утверждаю, что структура MVC намного светлее впереди WebForms как по функциональности, так и по производительности.

    
ответ дан Jamiec 25.05.2011 в 15:00
источник
  • +1 на ASP.NET MVC. Когда мне приходится периодически возвращаться к ASP.NET WebForms, я физически страдаю. –  Valentin 25.05.2011 в 15:19
  • @ Valentin - Если мне когда-нибудь придется вернуться к WebFroms, я думаю, что я могу быть физически больным. –  Jamiec 25.05.2011 в 15:20
  • спасибо за ваш ответ, выполняете ли вы много операций ввода данных и, например, перетаскиваете элементы управления и обработку на стороне сервера в своих приложениях? Вы находите сторонние элементы управления / расширения для MVC зрелыми и достаточными для ваших нужд? –  Davide Piras 25.05.2011 в 15:55
  • @Davide - я много использую взаимодействие пользователя (заполнение формы), а также отображение. В моем приложении огромная обработка серверов. Я не использую никаких сторонних элементов управления. Надеюсь это ответит на твой вопрос. –  Jamiec 25.05.2011 в 16:04
  • Согласовано. Недавно мы создали новый продукт на MVC 3 (для розничной продажи), и за последние пару лет я разработал специально разработанные 4 критически важных бизнес-системы (в секторах логистики и электронного правительства), работающих в ASP.NET MVC 1 и 2. Проведя 8 лет в веб-формах, я надеюсь никогда не оглядываться назад. Но это сильно отличается от WebForms и быть готовым к кривой обучения. –  miguelv 04.07.2011 в 16:09
Показать остальные комментарии
6

Да, ASP.NET MVC 3 Razor определенно готов для бизнес-приложений. Я создаю большое веб-приложение корпоративного класса в MVC 3 Razor C #, и чем больше сложностей я бросаю в MVC и Entity Framewor, тем лучше они обрабатывают его. Позвольте мне привести пример кода. Допустим, мы хотим создать динамическую таблицу, которая смешивает HTML с кодом и данными Razor C #. Это небольшая задача, использующая веб-формы и веб-элементы управления ASP.NET.

<table>          
    <thead>
        <tr>
            <td>Date</td>
            <td>Name</td>
            <td>Price</td>
            <td>Quantity</td>
            <td>Shipper</td>
        </tr>
    </thead>
    @foreach (eStore.Models.Product p in Model.Products)
    {
        <tr>
            <td>@Html.Hidden("Date", p.Date.ToString())
                @Html.Hidden("productId", p.ProductId)
            <td><input type="submit" name="submitButton" value="@p.Name"/></td>
            <td>@Html.Label("Price", p.Price)</td>
            <td>@Html.Label("Quantity", p.Quantity)</td>
            <td>@Html.Label("Shipper", p.Shipper)</td>
        </tr>
    }
</table>

Я создал динамическую таблицу, содержащую список продуктов с кнопкой, которая может получить больше информации о каждом продукте в списке по продукту. Это потребовало минимального количества кода и усилий. Код понятен, понятен и прост в редактировании. Теперь представьте, что потребуется с обычными веб-формами и веб-элементами управления для выполнения одной и той же задачи.

Существует кривая обучения с MVC 3, но, на мой взгляд, это того стоит.

    
ответ дан wayne.blackmon 16.12.2011 в 17:17
источник
  • +1 Я не знаю, сколько это было для плаката, но не являлось MVCer. Я нашел ваш пример кода очень интересным и отличным примером возможностей MVC и что он может сделать. Я все еще не уверен, что это вписывается в мою идею о том, что делает шаблон дизайна MVC, хотя ... –  El Ronnoco 23.08.2012 в 12:17