【问题标题】:Is ASP.NET MVC 3 ready for business applicationsASP.NET MVC 3 是否已准备好用于业务应用程序
【发布时间】:2011-09-01 17:57:38
【问题描述】:

我必须决定我们将在未来几年开发一个新的大型商业应用程序,问题是我们是否应该开始使用 MVC 3 或 Web 表单。

这已经在 SO 中讨论过,但我看到了这个问题:ASP.NET MVC ready for business applications (integrating 3rd party controls/components)? 在 2008 年被问到,现在很多事情可能已经改变了。

我主要担心的是听说 MVC 适合渲染网格或列表等内容,而不适合数据输入和用户交互。

我们的应用程序将有很多控件,用户可以在其中输入数据并使用列表和文本框、复选框等。

在 MVC 或经典的 Webforms 和视图状态模型中一切都是绝对可能的吗?

谢谢。

【问题讨论】:

  • 几个月后...您决定使用 ASP.NET MVC 3 了吗?你能说出你对你所做选择的看法吗?谢谢。
  • 我们正准备在一月份开始开发。最近发布的 devxpress 2011.2 库让我们对控件方面充满信心,因为他们最终在 MVC 中添加了 PivotGrid。关于 MVC 的技术和成熟度,考虑到为 MVC 4 计划的功能,我们也相信我们正朝着正确的方向前进。

标签: c# asp.net asp.net-mvc razor


【解决方案1】:

ASP.NET MVC 3 是否已准备好用于业务应用程序

在 MVC 中一切皆有可能

以我的拙见;绝对 100% 是的。事实上,我认为 MVC 框架在功能和生产力方面都领先于 WebForms。

【讨论】:

  • +1 在 ASP.NET MVC 上。当我不得不时不时地回到 ASP.NET WebForms 时,我的身体很痛苦。
  • @Valentin - 如果我必须回到 WebFroms,我想我可能身体生病了
  • 感谢您的回答,您是否在进行大量数据输入操作,例如在您的应用程序中的控件和服务器端处理之间进行拖放操作?您是否发现 MVC 的第三方控件/扩展成熟且足以满足您的需求?
  • @Davide - 我做了很多用户交互(表单填写)以及显示。我的应用程序中有大量的服务器端处理。我不使用任何第三方控件。希望能回答你的问题。
  • 同意。我们最近在 MVC 3(零售)上构建了一个新产品,在过去几年中,我定制开发了 4 个在 ASP.NET MVC 1 和 2 中运行的关键企业业务系统(在物流和电子政务领域)。在 Web 表单中度过了 8 年之后,我希望永远不要回头。但它与 WebForms 完全不同,请为学习曲线做好准备。
【解决方案2】:

是的,ASP.NET MVC 3 Razor 绝对可以用于业务应用程序。我正在使用 MVC 3 Razor C# 构建一个大型的企业级 Web 应用程序,我在 MVC 和实体框架中投入的复杂性越高,它们处理它的效果就越好。让我给你一个代码示例。假设我们要创建一个将 HTML 与 Razor C# 代码和数据混合的动态表。这不是使用 Web 表单和 ASP.NET Web 控件的小任务

<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 访问列表中每个产品的更多信息。这需要最少的代码和工作量。代码清晰、易懂且易于编辑。现在想象一下传统的 Web 表单和 Web 控件需要什么来执行相同的任务。

MVC 3 有一个学习曲线,但我认为它非常值得。

【讨论】:

  • +1 我不知道这对张贴者有多大用处,但不是 MVCer 我发现您的代码示例非常有趣,并且是 MVC 的强大功能及其可以做什么的一个很好的示例。我仍然不确定它是否符合我对 MVC 设计模式的想法......
【解决方案3】:

我使用了自 1.0 beta 和 MVC 1、2 和 3 以来的每个版本的 WebForms,我相信 MVC 绝对可以用于生产环境。

你必须考虑到2的开发方式是完全不同的:

MVC 要求您学习基本 Web 技术的更多低级细节:HTML、CSS、JS、HTTP(如果您还没有掌握这些技术,我相信您无论如何都应该学习)。

WebForms 尝试将其中的大部分内容抽象出来,并且可以认为将一些简单的页面放在一起更有效率。但这是一个有漏洞的抽象,随着您变得更加熟练,缺乏控制可能会让您感到沮丧 - 如果您是 Web 开发的新手,一开始会更容易;随着经验的积累,更难弯曲。 当页面变得更复杂时,生产力收益开始消失。抽象更有可能导致性能问题并破坏自动测试页面的能力(使用 Selenium 或等效工具进行单元和 UI 级别测试)。

示例 1:在 MVC 中,您很可能需要了解如何处理表单字段以使用 application/form-url-encoded 通过 HTTP 编写 POST,否则您可能会遇到模型绑定问题。在 WebForms 中,您可以构建大型应用程序而无需担心。

示例 2:在 MVC 中,您需要跨请求管理大部分页面状态。在 WebForms 中,框架很容易为您完成。

MVC 应用程序倾向于更多地依赖客户端 JavaScript 组件来获得可重用的小部件,例如绑定 JSON 数据。 WebForms 鼓励使用服务器端控件,因为它们很好地集成到框架状态管理设施中。

与其他人不同,我不相信 MVC 比 WebForms 更高效。不要低估 WebForms 快速交付数据驱动的业务应用程序的能力。管理过很多人同时使用这两种方法后,我认为 MVC 需要更多熟练的程序员才能提高工作效率。但是,如果这是您的情况,您可能会发现 MVC 对那些熟练的人来说是一个更令人愉快和强大的平台。

【讨论】:

  • +1 提到 WebForms 可以高效,而 MVC 可以做更多但更困难。我喜欢 MVC,但我也喜欢 WebForms,我无法理解人们说“MVC 比 WebForms 早几年”。诚然,F1 bolid 比我的家用车早了好几年,但如果我只想和家人一起开车去附近的商场也没关系。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多