可能重复:
What’s your choice for your next ASP.NET project: WebForms or MVC?
您能否列出一些可以让您将ASP.NET网页用于新项目而不是MVC的原因?我已经听过很多关于相反的事情,但不是通过webforms更容易或更好的事情。我不是在谈论开发人员首选项,而是技术功能以及它们如何映射到项目功能。
答案 0 :(得分:7)
WebForms的唯一论据是需要设计高度复杂(读杂乱)的接口,其中包含大量互连元素,这些元素全部或部分应对其他元素的变化做出反应。
一个典型的例子是某些企业应用程序(来自SAP或较小的供应商)。它们通常具有接近疯狂的界面。如果您使用的是MVC,那么您很难尝试使用JavaScript手动同步控件。使用WebForms,它更容易。
构建此类接口是否是一个好主意完全是另一回事。
在WebForms元素事件中触发页面回发。它们转到相同的URL并以统一的方式处理。这就是使体系结构具有可扩展性的原因。
使用MVC来完成此任务,您必须设置一堆服务URL来处理来自不同控件的帖子,然后处理这些帖子并相应地更新视图模型。这一切都涉及很多诡计和杂耍。并不是说它不可行 - 它是,但不是大规模的。这种方法不具备可扩展性。迟早,您将达到理解,您需要在面向有状态的面向对象的HTML / HTTP抽象(如WebForms)的方向上构建自己的框架。
答案 1 :(得分:3)
有些事情可以推动我(回头)走向WebForms:
其中,CMS可能是我现在想到的,实际上会让我使用WebForms。
答案 2 :(得分:3)
如果你只知道webforms MVC带有学习曲线,那么你需要花一些时间进行培训(或冒着严重的安全性或性能错误的风险)
你现在需要一个小小的应用程序如果你选择反模式的话,在webforms中构建一个丢弃的模拟应用程序可能会更快。例如。 SqlDataSource,代码中的逻辑等等。
丰富的控件 GridView是一个出色的控件,只要您的自定义要求很小,所有内置的排序等都需要很少的代码。
缺乏Web开发经验 Web表单更容易。你的盘子需要更多的担忧。对于一个新手来说好多了,因为它很难出错。
话虽如此,如果你知道自己在做什么或有时间学习,并且你想建立一个持久的网站,MVC太棒了。而且更有趣。
我将补充说,网页表单中没有任何错误的。使用它构建高性能应用程序是完全可能的。自从它首次问世以来,它已经发生了变化,MVC已经很好地解决了这些变化。
答案 3 :(得分:2)
就个人而言,我发现MVC非常适合管理员页面。因为它们通常有一堆表格,并且用于数据输入和编辑。 MVC是为这些东西“制作”的,因此制作这些页面的速度非常快。
webforms我用于更复杂的事情,比如网站的用户端。我制作的网站展示了人们可以参加的课程。注册课程是一个5步骤的过程,在MVC中,我不知道如何做到这一点。我确信它可以在MVC中完成,但我认为它在webforms中更好/更快。
然而最后我更喜欢MVC。与之合作感觉更加清晰。
答案 4 :(得分:2)
我唯一想考虑在新项目中使用Web窗体的方法是,是否为Web窗体创建了一个组件,解决了使用MVC难以解决的特定问题。
答案 5 :(得分:1)
我不能再看到Webforms相对于MVC的任何优势,除了一些不应过高的技能。
[原本我认为MVC与webcontrol不兼容,所以不希望以Dundas图表控件为例。根据您的要求,这将成为使用webforms的一个很好的理由。但我相信情况已经不再如此,无论如何,你可以在你的MVC项目中包含webforms作为最坏的情况。]
答案 6 :(得分:0)
取决于!
WebForms和MVC之间的区别在于您是否可以TDD并控制完整标记。