C# ASP.NET MVC 3是否已为业务应用程序做好准备

C# ASP.NET MVC 3是否已为业务应用程序做好准备,c#,asp.net,asp.net-mvc,razor,C#,Asp.net,Asp.net Mvc,Razor,我必须决定我们将在未来几年开发一个新的大企业应用程序,问题是我们是否应该开始使用MVC3或web表单 这已经在SO中讨论过了,但我看到了一个问题:在2008年被问到,现在很多事情可能已经改变了 我主要关心的是听说MVC对于呈现网格或列表之类的内容很好,而对于数据输入和用户交互则不太好 我们的应用程序将有很多控件,用户可以在其中输入数据并使用列表、文本框、复选框等 MVC中的一切都是绝对可能的吗?或者经典的Webforms和视图状态模型更合适 谢谢 ASP.NET MVC 3是否已为业务应用程序做

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

这已经在SO中讨论过了,但我看到了一个问题:在2008年被问到,现在很多事情可能已经改变了

我主要关心的是听说MVC对于呈现网格或列表之类的内容很好,而对于数据输入和用户交互则不太好

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

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

谢谢

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

在MVC中,一切都是绝对可能的吗


依我拙见;绝对100%是的。事实上,我认为MVC框架在功能和生产效率方面都比WebForms领先几光年。

是的,ASP.NET MVC 3 Razor绝对适合于商业应用程序。我正在用MVC 3 Razor C#构建一个大型的企业级web应用程序,我对MVC和实体Framewor的处理越复杂,它们处理得越好。让我给你一个代码示例。假设我们想要创建一个动态表,将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>

日期
名称
价格
量
托运人
@foreach(Model.Products中的eStore.Models.Product p)
{
@Html.Hidden(“Date”,p.Date.ToString())
@Html.Hidden(“productId”,p.productId)
@Html.Label(“价格”,p.Price)
@Html.Label(“数量”,p.Quantity)
@Html.Label(“发货人”,p.Shipper)
}
我创建了一个动态表,其中包含一个产品列表,并带有一个按钮,可以通过productId访问列表中每个产品的更多信息。这需要最少的代码和工作量。代码清晰易懂,易于编辑。现在想象一下,要执行相同的任务,传统的web表单和web控件需要什么


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

自1.0 beta版和MVC 1、2和3版以来,我已经使用了WebForms的每一个版本,并且相信MVC绝对可以投入生产使用

您必须考虑到,2的开发方法非常不同:

MVC要求您学习更多基本web技术的低级细节:HTML、CSS、JS、HTTP(我认为,如果您的技能还不具备这些技术,您无论如何都应该学习这些技术)

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

示例1:在MVC中,您很可能需要了解表单字段是如何处理的,以便通过HTTP编写一篇带有应用程序/表单url编码的文章,否则您可能会遇到模型绑定的问题。在WebForms中,您可以构建大型应用程序,而无需为此担心

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

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


与其他人不同,我不相信MVC比WebForms更高效的说法。不要低估WebForms快速交付数据驱动业务应用程序的能力。在使用这两种方法管理了很多人之后,我的观点是MVC需要更多熟练的程序员来提高生产率。但如果你是这样的话,你可能会发现MVC在那些熟练的人手中是一个更有趣、更强大的平台

ASP.NET MVC上的+1。当我不得不时不时地返回ASP.NET WebForms时,我的身体很痛苦。@Valentin-如果我不得不返回WebFroms,我想我可能身体不适。谢谢你的回答,你是否在应用程序中进行了大量的数据输入操作,例如在控件和服务器端处理之间进行拖放?你觉得MVC的第三方控件/扩展成熟吗?足够满足你的需要吗?@Davide-我做很多用户交互(表单填充)和显示。我的应用程序中有大量的服务器端处理。我不使用任何第三方控件。希望这能回答你的问题。同意。我们最近在MVC 3上开发了一个新产品(用于零售),在过去几年中,我定制了4个关键的企业业务系统(在物流和电子政务领域),运行在ASP.NET MVC 1和2中。在网络表单上度过8年后,我希望再也不会回头。但它与WebForms有很大不同,要为学习曲线做好准备。。。您决定使用ASP.NET MVC 3了吗?你能告诉我你对你所做的选择的看法吗?谢谢。我们将在一月份开始开发。最近发布的devxpress 2011.2库在控件方面给了我们信心,因为它们最终在MVC中添加了PivotGrid。考虑到计划的功能,关于MVC的技术和成熟度