我必须决定我们将在未来几年开发的一个新的大型业务应用程序,问题是我们是否应该开始使用MVC3或web表单。
这在SO中已经讨论过了,但我已经看到了问题:ASP.NET MVC ready for business applications (integrating 3rd party controls/components)?在2008年被问到了,现在很多事情都可能改变。
我主要关心的是,我听说MVC在呈现网格或列表等内容方面很好,但在数据输入和用户交互方面就不太好了。
我们的应用程序将有许多控件,用户可以在这些控件中输入数据、处理列表、文本框、复选框等。
MVC中的一切都是绝对可能的,还是经典的Webforms和视图状态模型更合适?
谢谢。
发布于 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是一个更有趣、更强大的平台。
发布于 2011-12-17 00:17:04
是的,ASP.NET MVC3Razor绝对已经为商业应用做好了准备。我正在用MVC3RazorFramewor构建一个大型的企业级C#应用程序,我在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>
我已经创建了一个动态表,其中包含一个产品列表,其中的一个按钮可以通过productId访问列表中每个产品的更多信息。这只需要最少的代码和工作量。代码清晰,易于理解,易于编辑。现在想象一下,使用传统的web表单和web控件来执行相同的任务需要什么。
MVC3有一个学习曲线,但在我看来这是值得的。
https://stackoverflow.com/questions/6124598
复制相似问题