Подтвердить что ты не робот

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

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

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

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

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

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

спасибо.

4b9b3361

Ответ 1

Я использовал каждую версию 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 - это более приятная и мощная платформа в этих умных руках.

Ответ 2

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

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

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

Ответ 3

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