Готов ли ASP.NET MVC 3 для бизнес-приложений? - PullRequest
17 голосов
/ 25 мая 2011

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

Это уже обсуждалось здесь, в SO, но явидели вопрос: ASP.NET MVC, готовый для бизнес-приложений (интеграция сторонних элементов управления / компонентов)? был задан в 2008 году, и теперь многие вещи могли измениться.

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

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

все ли абсолютно возможно также в MVC или более подходящей была бы классическая модель Webforms и модели состояния просмотра?

спасибо.

Ответы [ 3 ]

26 голосов
/ 25 мая 2011

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

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

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

8 голосов
/ 02 мая 2012

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

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

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

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

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

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

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

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

6 голосов
/ 16 декабря 2011

Да, 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>

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...