【发布时间】:2010-10-17 06:25:30
【问题描述】:
假设您明天将启动一个新的 ASP.NET 网站/应用程序。您会选择 Web 表单还是 MVC,为什么?
【问题讨论】:
-
这里只是几个副本之一:stackoverflow.com/questions/30067
-
问题可能应该被删除,因为它几乎完全一样。
标签: asp.net asp.net-mvc webforms
假设您明天将启动一个新的 ASP.NET 网站/应用程序。您会选择 Web 表单还是 MVC,为什么?
【问题讨论】:
标签: asp.net asp.net-mvc webforms
MVC 宝贝!还有 JQuery!
编辑:好的,可以说我的回答需要更多信息。
我会选择 MVC 的原因如下:
【讨论】:
我会选择 MVC 仅仅是因为它被设计为可测试和可模拟的。这将是我做出决定的主要因素。
WebForms 的单元测试要困难得多,因为它们植根于几个难以模拟的具体类,完全有可能。这些包括 HttpContext、HttpResponse、HttpRequest 和 HttpCookie。
MVC 被设计成可测试的,它的 API 极大地方便了测试。
MVC可测试性的好文章:http://dotnetslackers.com/articles/aspnet/ASPNETMVCFrameworkPart2.aspx
【讨论】:
就个人而言,我决定同时使用这两个...
如果是网站(在线查看),我决定使用 ASP.NET MVC。 如果它是一个应用程序(具有单一目的的 Web 应用程序),我决定使用 Web 表单。
此决定完全基于案例使用和您尝试提供的解决方案。如果您对良好的 SEO 和更快的网站感兴趣,MVC 比 Web 表单更干净且速度更快。
但是,如果您在同一页面上使用了具有大量过滤器、网格、回发的复杂功能,并且您在 Web 表单方面经验丰富,那就坚持下去。
【讨论】:
如果我从今天开始,我可能仍然会坚持使用网络表单,因为它拥有大量的知识和资源。
也就是说,我真的很想尝试 MVC,正如其他人所提到的,社区内的兴奋意味着很快就会有很多支持。
【讨论】:
MVC FTW!,原因?
【讨论】:
MVC 是“当下的味道”,还是具有持久力?
我曾使用过 MVC,并且拥有大量的网络表单经验。我经常想知道 MVC 的持久力。
您在选择其中一个时应该考虑这一点。您希望在整个产品生命周期内支持什么?
【讨论】:
我不能说我还没有尝试过 MVC。但是我有点担心将它用于一个非常大的企业项目。
滚动通过问题,您会发现 MVC 有很多问题/问题(与好的 o' WebForms 相比)。仅这一点就让我很担心。很多问题似乎是针对特殊 UI 需求的。再次没有尝试过,我不知道它有多成熟,但我还是有点担心。
也许有人在企业项目中使用过它。
【讨论】:
虽然 MVC 是新手,但使用 Web 表单模型进行设计仍有很多好处。
Rachel Appel 在MIX 就这个主题做了精彩的演讲。您可以在此处观看视频:
在 ASP.NET Web 窗体和 MVC 之间进行选择
http://videos.visitmix.com/MIX09/T23F
【讨论】:
我会为具有丰富业务逻辑的本地/内部网应用程序选择 Webforms,而为公共/互联网站点(博客/论坛/演示文稿/简单服务)选择 MVC。 “WebForms 应用程序模型”在富状态支持至关重要的领域更为可取
【讨论】:
一周前,我为我们自己的产品创建了一个新网站,我对 ASP.NET MVC 感到非常高兴。一切看起来都很自然,我总是知道去哪里看看如果有什么东西不起作用或看起来不像我想要的那样。
坦率地说,我花在 CSS 上的时间最多。编码,与 jQuery 的集成......花生。
OTOH,如果您不是经验丰富的开发人员,ASP.NET 将不会吸引您,因为它鼓励您一路走来控制您网站的各个方面 - HTML 标记、CSS 等。 ,这又意味着没有控件、拖放可视化编辑等。
与传统的 ASP.NET 不同,在传统 ASP.NET 中,您需要自己处理并经常在各个页面中混合各种 UI、持久性 (DB) 和业务逻辑代码,MVC 将指导您并帮助您更加一致地构建应用程序。如果您不喜欢“自以为是”的框架和/或只是想完成工作而不关心站点的结构、可维护性、可扩展性等,那么这不会与您同在。
请注意,如果您要构建的只是一次性 Intranet 站点,则完全有可能不关心这一点,但对于公共 Internet 站点,我每次都会选择 MVC 而不是经典的 ASP.NET。
【讨论】:
MVC
...这就是未来所在的地方似乎如此明显
【讨论】:
在 ASP.NET MVC 中,你牺牲了你的控件工具箱, URL 路由已经在 ASP.NET(Web 表单)中
所以我会坚持使用 ASP.NET Web 表单(我并不是说 MVC 不好。)
jQuery,你认为 IT 人员会让你使用它吗?
【讨论】:
ASP.NET MVC,因为我想学习如何使用它。
【讨论】:
我目前选择 ASP.NET MVC 有两个原因:1)我想学习掌握它。 2) 围绕 ASP.NET MVC 已经形成了一个很棒的社区,而且每个人似乎都对它的使用非常积极。我迫不及待地想看看这一切的结局,我想成为其中的一员。
【讨论】:
我想使用 MVC。当我使用 WebForms 时,我总是希望与抽象作斗争。
要有效地使用 WebForms,您实际上需要比使用 PHP 之类的东西更多地了解 Web 的工作原理。我发现自己使用<asp:Literal 而不是<asp:Label 来避免在文本周围放置<span> 并运行实验室来确定事件的顺序等。
【讨论】:
这真的取决于项目,因为我没有使用 MVC 构建任何东西,如果项目交付时间很短,我可能会在 MVC 中发现一些障碍,这可能使我无法及时交付项目。
【讨论】:
我在.net 上等待 MVC 很长时间。 我认为超过 90% 的人会选择 MVC 而不是 webform。
【讨论】:
如果是个人项目,那么我会使用 MVC。只是为了更多地了解它。如果这是一个工作中的项目,我会使用 WebForms,可能与 DynamicData 结合用于管理部分。原因是使用我熟悉的技术可以提高工作效率,而使用 DynamicData 作为管理部分可以让我在几分钟内完成该部分的设置。
【讨论】:
与往常一样,这取决于您正在开发的应用程序类型和具体情况。我们的许多内部应用程序都是在 SharePoint 中开发的,因为这是我们选择用于 Intranet 类型应用程序的内部平台。
这会自动限制我们使用标准模型上的 ASP.Net。
我真的很想掌握 MVC,但我在工作中没有理由这样做,而且我家里有 2 个孩子和一个妻子,所以没有时间在家发展。
有时情况会迫使你动手,如果我们都可以选择使用什么平台、框架等进行开发就好了。
【讨论】:
我目前正在使用 jQuery 和 jQuery-ui 在 Asp.net MVC 中开发一个项目,这很有趣。
如果您熟悉 html 和 javascript(或其他 MVC 框架,如 rails),则 MVC 比旧的 Web 表单更有意义。而且您控制输出,而不是表单上的一些模糊控制,因此如果页面上有错误或者您想更改布局,您可以:)。
【讨论】:
MVC。我们将重做一个 SEO 密集型和 MVC 接缝的应用程序,以便开箱即用。另外,我想在操场上和酷酷的孩子们一起出去玩。
【讨论】:
我刚刚在 MVC 平台上发布了一个主要的公共站点,之前的所有项目都使用了 webforms。毫无疑问,这是要走的路,IMO。
对于网络表单,我发现随着时间的推移,网站往往会变得一团糟,因为您在代码隐藏中拥有处理视图逻辑和控制器逻辑的代码块。随着网站的增长和逻辑变得越来越复杂,很难追踪发生了什么以及发生在哪里。
我发现 MVC 迫使您以更合乎逻辑的方式分解事物。控制器和模型类允许您更好地控制应用程序的组织。此外,视图更加灵活,因为有一种通过模型向视图提供数据的特定方式。
此外,就像其他人提到的那样,您可以更好地控制标记和 url,并且它与 mvc 等客户端库配合得更好。
我唯一会使用 MVC 的情况是,如果我正在构建一个专注于报告某种数据的 Intranet 站点,其中 asp.net 附带的内置控件将节省开发时间,而我并不关心外观和感觉。我再也不会在面向公众的主要网站上使用 asp.net 网络表单了。
【讨论】:
两者都有!
我正在为 MVC 做长期工作。我有太多可以在 Web 窗体中使用的代码。 MVC 非常棒,但它仍然在生产力领域留下了很多东西,例如模板化的网格和列表、基本的 UI 控件(日历、自动完成等)和脚手架。这些都是 Web Forms 擅长的领域,但如果您想要精确控制并且想要保持简单,就会偏离轨道。
MVC 3 和 EF Code-Only 可能是完美的结合,如果他们愿意弥合两者之间的差距。大多数使用 Ruby 的人都将它用于 Rails,而 ActiveRecord 使之易于使用。
我还希望看到一个并行的 MVC 支持 MS 的“功能包”项目,类似于他们使用 Microsoft Ajax 工具包的方式,也就是说每季度更新一次。我发现 MVC Futures 和 MVCContrib 都缺乏。但我知道他们只有这么多预算。所以,希望 MVC 3 能改变这一切。
【讨论】:
如果您正在为 Intranet 开发,只需对 ASP.NET MVC 说“不”。对于互联网,当然。
【讨论】:
嗯.. 目前我和您一样感到困惑并且即将开始建立一个新网站:)。我本来打算从 Webforms 开始,但现在我看到了人群的发展方向,我想我现在要试一试 MVC。
感谢您提出这个问题。
【讨论】:
现在它是 RTMed 并且现在有一些非常好的资源,我会说 ASP.net MVC 将是我的强烈偏好,但它不是一成不变的。
Web 表单并没有消失,它仍然存在,它仍然受支持,而且我在几个主要网站上工作过并且非常成功地使用了 Web 表单,所以如果有其他外部因素,例如客户偏好,或者可能是拥有扎实的 Web 表单经验的团队,那么我仍然很乐意使用 Web 表单。也就是说,我已经使用 MVC 进行了一个项目(虽然它仍处于预览阶段),我更喜欢它——我的原因与上面给出的相似,所以我不会全部重复。我会说,如果可测试性不是最好的理由,那它肯定是最重要的:)。
【讨论】:
我会选择 MVC,因为设计师和开发人员可以在同一个项目上并行工作。设计人员可以处理视图部分(JavaScript、CSS、HTML),而后端开发人员可以处理控制器代码。
【讨论】:
我想做 ASP.Net MVC,尽管我对 MVC 还是很陌生。但这不是在可预见的将来。
【讨论】:
我实际上将在接下来的几周内开始重建一个用 ASP.NET 2.0 编写的网站,并且我将使用 ASP.NET MVC。由于很多与上述相同的原因。我宁愿不使用自定义 .NET 控件并自己处理 HTML/JavaScript(使用 jQuery)。我也做过很多 Java Web 开发,所以对底层 HTML/JavaScript/CSS 有很好的理解对我来说很重要。
【讨论】: