什么是您的下一个ASP.NET项目的select:Web窗体或MVC?

假设您明天将开始一个新的ASP.NET网站/应用程序。 你会selectWeb窗体还是MVC,为什么?

MVC宝贝! 和JQuery!

编辑:好吧,这是公平的说我的回复保证一点信息。

我会selectMVC的原因如下:

  1. 我曾在Rails工作,发现它的生产力非常高。 ASP MVC从Rails中借用了很多东西,在某种程度上它就像是一个直接的端口(这在我看来是一件好事)。
  2. AJAX是重要的,但我讨厌微软的“阿特拉斯”方法来AJAX(无论产品名称是这些天)。 如果你打算做AJAX,你需要了解HTML和JavaScript。 将你隐藏起来的框架比你帮助你更伤害你(IMO)。
  3. JQuery已经在JavaScript框架方面接pipe了世界。 ASPMVC与它很好地结合在一起。 我想学习它,所以这里有很好的alignment。
  4. 整个“控制”模式是一个整洁的想法,但它比表面上看起来更复杂。 例如,查看SO有关UserControl如何可以find其最高级别包含控制等的问题。 控制层次抽象已经泄漏了。 网格是非常好的,如果他们做你想要的东西,但是很难定制他们做一些他们没有做的事情。 市场上最好的电网控制器(高度可定制的)是庞大的,膨胀的,过于复杂的野兽。 也许这表明我们应该放弃HTML,并让我们的观点循环为我们做这样的事情。
  5. 我相信我可以在ASPMVC中构build完整,漂亮的应用程序比在ASP.Net中快得多(我已经有了几年的ASP.Net)。 看看StackOverflow …使用JQuery在ASPMVC上快速构build,而且它使用IMO的速度快,可扩展性好,而且很快乐。
  6. 哦,它是完全开源的! 可以阅读源代码,关于它的博客,甚至修改然后再分发它!

我会selectMVC只是因为它的devise是可testing和可嘲弄的。 这将是我决定的主要因素。

对于unit testing来说,WebForms要困难得多,因为它们植根于几个具体的类,而这些类对于模拟来说是非常困难的。 这些包括HttpContext,HttpResponse,HttpRequest和HttpCookie。

MVC的devise是可testing的,它的API大大方便了这一点。

关于MVC的可testing性的好文章: http : //dotnetslackers.com/articles/aspnet/ASPNETMVCFrameworkPart2.aspx

我个人决定同时使用…

如果它是一个网站(在线查看),我决定使用ASP.NET MVC。 如果它是一个应用程序(具有单一用途的Web应用程序),我决定使用Web表单。

这个决定纯粹是基于案件的使用和你试图提供的解决scheme。 如果你对良好的search引擎优化和更快的网站感兴趣,MVC比HTML表单更加干净,速度更快。

但是,如果你在一个复杂的function之后,在同一页面上有很多filter,网格,回发,并且你在Web Forms方面经验丰富,那就坚持下去。

如果我从今天开始,我可能仍然坚持使用webforms,因为它周围的知识和资源的数量。

这就是说,我真的想给MVC一个镜头,而其他人已经提到社区内的兴奋意味着它不会需要很长时间才会有很多的支持。

MVC FTW!,原因?

  • 完全控制我的HTML
  • 没有Web Forms的魔法
  • 没有复杂的页面生命周期
  • 更接近金属
  • 使用HTTP是很自然的事情

MVC是“一天的味道”吗,还是有持久力?

我曾经与MVC合作过,拥有大量的网页体验。 我经常怀疑MVC的持久力。

你应该考虑这一点,当select一个或另一个。 你想支持整个产品的使用寿命?

我不能说我还没有尝试过MVC, 但是我还是有点担心把它用于一个真正的大型企业项目。

滚动浏览通过问题,你会发现MVC存在很多问题(相比较好的WebForms)。 这让我担心。 很多问题似乎都是针对特殊的用户界面需求。 再次没有尝试过,我不知道它有多成熟,但我仍然有点担心。

也许有人把它用于企业项目可以说明一些事情。

虽然MVC是块中的新手,但使用Web Forms模型进行devise仍然有很多好处。

  • 熟悉这个工具
  • 与现有项目的外观/感觉保持一致
  • 工具/devise师
  • 回传
  • 事件驱动
  • 要抽象的控件
  • 第三方控制工作
  • 快速发展
  • 宣言风格

Rachel Appel在MIX上就这个话题做了一个很棒的演讲。 你可以在这里观看video:
在ASP.NET Web窗体和MVC之间进行select
http://videos.visitmix.com/MIX09/T23F

我会select具有丰富的业务逻辑和公共/互联网站点(博客/论坛/演示/简单服务)的MVC的本地/ Intranet应用程序的Webforms。 在富国支持至关重要的领域,“WebForms应用程序模型”更为可取

一个星期前我为自己的产品开了一个新的网站,而且我也不能为ASP.NET MVC开心。 一切似乎很自然,我总是知道去哪里,看看有什么东西不行,或者看起来不是我想要的样子。

坦率地说,我花的最多时间是CSS。 编码,与jQuery集成…花生。

OTOH,如果你不是经验丰富的开发人员,ASP.NET 不会吸引你,因为它鼓励你去所有的方式和控制你的网站的所有方面 – HTML标记,CSS等,这意味着没有控制,拖动和拖放视觉编辑等

与传统的ASP.NET不同,您可以自己决定是否将各种UI,持久性(DB)和业务逻辑代码混合到各种页面中,而MVC将引导您并帮助您更一致地构build应用程序。 如果你不喜欢“自以为是”的框架和/或只是想完成工作,而不关心网站的结构,可维护性,可扩展性等,这将不会坐在你身边。

请注意,如果你正在构build的是一个一次性的Intranet站点,但是对于公共Internet站点,我会selectMVC而不是经典的ASP.NET。

MVC

…这似乎是如此明显,未来在哪里

在ASP.NET MVC中,你牺牲了你的控件工具箱,URL路由已经在ASP.NET(web表单)

所以我会坚持使用ASP.NET的Web表单(我不是说MVC不好)。

jQuery,你认为IT人员会让你使用它吗?

ASP.NET MVC,因为我想学习如何使用它。

我目前selectASP.NET MVC有两个原因:1)我想学习掌握它。 2)ASP.NET MVC周围已经有了一个非常好的社区,每个人似乎对它的使用都有非常积极的回应。 我迫不及待想知道这一切到底是什么,我想成为它的一部分。

我想用MVC去。 当我使用WebForms的时候,我总是拼命地抽象抽象。

要有效地使用WebForms,您实际上需要更多地了解Web如何工作,而不是像使用PHP一样。 我发现自己使用<asp:Literal而不是<asp:Label来避免在文本周围放置一个<span> ,并运行实验室来确定事件的顺序等。

它真的取决于项目,因为我没有用MVCbuild立任何东西,如果项目交付时间很短,我可能会发现一些阻碍MVC,可能使我不能及时交付项目。

我在.net上等待MVC很长一段时间。 我认为超过90%的人会selectMVC而不是networkingforms。

如果这是一个个人项目,那么我会使用MVC。 只是为了更多地了解它。 如果这是一个项目在工作中,我会使用WebForms,可能结合DynamicData的pipe理部分。 原因是我会用我所知道的技术来提高效率,使用DynamicData作为pipe理部分可以让我在几分钟内设置好这个部分。

一如既往,取决于您正在开发的应用程序的types和个人情况。 许多内部应用程序正在SharePoint中开发,因为这是我们内部网应用程序的内部平台。

这自动将我们限制在标准模型上的ASP.Net。

我真的想要和MVC交手,但是在工作上我没有这个理由,我有两个孩子和一个在家的老婆,所以没有时间在家里开发。

有时情况会迫使你的手,只要我们都有select到什么平台,框架等发展。

我目前正在使用jQuery和jQuery-ui处理Asp.net MVC中的项目,这非常有趣。

如果您熟悉html和javascript(或者像rails这样的其他MVC框架),那么MVC比旧的webforms更有意义。 而你控制输出,而不是一个模糊的控制窗体上,所以如果有一个错误的网页上,或者如果你想改变布局,你可以:)。

MVC。 我们将重做一个SEO密集型的应用程序,并且MVC可以在开箱即可使用。 另外我想和在操场上的很酷的孩子们一起出去玩。

我刚刚在MVC平台上发布了一个主要的公共站点,所有以前的项目都使用了webforms。 毫无疑问,这是要走的路,国际海事组织。

有了webforms,我发现随着时间的推移,网站会变得一塌糊涂,因为在处理视图逻辑和控制器逻辑的代码隐藏方面有大量代码。 随着网站的发展和逻辑变得越来越复杂,很难追踪到底发生了什么以及在哪里。

我发现MVC迫使你以更合乎逻辑的方式分解事物。 控制器和模型类允许您更好地控制应用程序的组织。 另外,视图更加灵活,因为有一种通过模型向他们提供数据的特定方式。

另外,像其他人所提到的,你可以更好地控制标记和URL,并且像mvc这样的客户端库更好。

我唯一一次使用MVC是,如果我是build设和Intranet网站,重点是报告某些types的内置控件随着asp.net将节省开发时间的数据,我不关心的外观和感觉。 我永远不会再使用asp.net webforms为主要的公众网站。

都!

我正在向MVC迈进。 我有太多的代码,很容易在Web窗体中工作。 MVC是一种幻想,但是在模板化的网格和列表,基本的UI控件(日历,自动完成等等)和scafolding等生产领域,它还是有很大的不同。 这些都是Web Forms擅长的领域,但是如果您想要精确控制并且简单起见,那么这些领域就会脱颖而出。

MVC 3和EF Code-Only如果他们愿意弥合两者之间的差距,可能是一个伟大的婚姻 。 大多数使用Ruby的人将它用于Rails,而ActiveRecord使得使用起来更容易。

另外,我也希望看到一个与MS支持的MVC平行的“function包”项目,就像微软的Ajax工具包一样,每季度更新一次。 我发现MVC Futures和MVCContrib都缺乏。 但是我知道他们只有这么多的预算。 所以,这里是希望MVC 3改变这一切。

如果您正在为Intranet开发,请对ASP.NET MVC说“不”。 对于互联网,当然。

嗯..现在我很困惑,就像你是和即将开始build立一个新的网站:)。 我打算从Webforms开始,但是现在我看到了人群正在前进的方向,我想我现在要给MVC一个旋风。

感谢您提出这个问题。

既然是RTMed,现在有一些非常好的资源,我想说ASP.net MVC将是我的强烈偏好,但它并没有被削减和干涸。

Web表单并没有去,它仍然存在,它仍然是支持的,我已经在几个主要的网站上工作,并且非常成功地使用了Web窗体,所以如果还有其他的外部因素,比如客户的偏好或者团队坚实的Web Forms体验,那么我仍然很乐意使用Web Forms。 也就是说我已经在MVC上做了一个项目(虽然还在预览中),我更喜欢它 – 我的理由与上面的相似,所以我不再重复。 我会说,如果可测性不是最好的理由,那肯定是最好的:)。

我会selectMVC,因为devise者和开发者可以在同一个项目上并行工作。 devise人员可以在视图部分(JavaScript,CSS,HTML)上工作,而后端开发人员可以在控制器代码上工作。

我想做ASP.Net MVC,尽pipe我对MVC还很陌生。 但这不是在可预见的将来。

实际上,我将在接下来的几个星期开始重build一个网站,这个网站在ASP.NET 2.0中写得非常糟糕,而且我正在使用ASP.NET MVC。 原因与上述很多相同。 我宁愿不使用自定义的.NET控件,并自己处理HTML / JavaScript(使用jQuery)。 我也做了很多的Java Web开发,所以对底层的HTML / JavaScript / CSS有一个很好的理解对我很重要。