首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET MVC 3是否为业务应用程序做好了准备

ASP.NET MVC 3是否为业务应用程序做好了准备
EN

Stack Overflow用户
提问于 2011-05-25 20:41:28
回答 2查看 2.4K关注 0票数 17

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

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

我主要关心的是,我听说MVC在呈现网格或列表等内容方面很好,但在数据输入和用户交互方面就不太好了。

我们的应用程序将有许多控件,用户可以在这些控件中输入数据、处理列表、文本框、复选框等。

MVC中的一切都是绝对可能的,还是经典的Webforms和视图状态模型更合适?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-02 06:28:23

从1.0测试版和MVC1、2和3开始,我使用过WebForms的每个版本,我相信MVC1、MVC2和MVC3已经完全可以投入生产使用了。

您必须考虑到,2的开发方法有很大的不同:

MVC要求您学习更多基本web技术的低级细节: HTML、CSS、JS、HTTP (如果您还不具备这些技术,我相信您应该学习它们)。

WebForms试图对其中的大部分内容进行抽象,并且可以认为将一些简单的页面组合在一起会更有效率。但这是一个漏洞百出的抽象,当你变得更加熟练时,缺乏控制可能会让你沮丧--如果你是web开发的新手,一开始更容易;当你获得经验时,更难改变。当页面变得更加复杂时,生产力的提升开始消失。这种抽象更有可能导致性能问题,并破坏自动化页面测试的能力(使用Selenium或等效工具进行单元和UI级别测试)。

示例1:在MVC中,您很可能需要了解表单字段是如何处理的,以便通过HTTP将POST与application/ form -url-encoded组合在一起,否则您可能会在模型绑定方面遇到困难。在WebForms中,您可以构建大型应用程序,而不必为此担心。

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

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

与其他人不同,我不相信说MVC比WebForms更有效率。不要低估WebForms快速交付数据驱动的业务应用程序的能力。在管理了大量使用两者的人之后,我的观点是MVC需要更熟练的程序员才能变得更有效率。但是,如果这是您的情况,您可能会发现,在那些熟练的人手中,MVC是一个更有趣、更强大的平台。

票数 8
EN

Stack Overflow用户

发布于 2011-12-17 00:17:04

是的,ASP.NET MVC3Razor绝对已经为商业应用做好了准备。我正在用MVC3RazorFramewor构建一个大型的企业级C#应用程序,我在MVC和实体Framewor上投入的复杂性越高,他们就越能处理好。让我给你一个代码例子。假设我们想要创建一个混合了HTML、Razor C#代码和数据的动态表。使用web窗体和ASP.NET Web控件,这不是一项简单的任务

代码语言:javascript
复制
<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控件来执行相同的任务需要什么。

MVC3有一个学习曲线,但在我看来这是值得的。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6124598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档