在我指出那些“VS”之一之前。像下面这样的问题...

  • ASP.NET webforms + ASP.NET Ajax versus ASP.NET MVC and Ajax framework freedom
  • Should I pursue ASP.NET WebForms or ASP.NET MVC
  • ASP.NET MVC Web application vs ASP.NET Web Application

  • ...请让我说我不是要比较。

    我需要答案的一些担忧包括:
  • 做疯狂的UI(例如,拥有用于在线构建BOM表树的UI)的学习曲线是否陡峭?许多人发布问题似乎对某些UI要求或其他令我担心的问题有所困扰。技术是否足够成熟,可以处理这些类型的需求?
  • 是否有一个相当完善的社区,在线文献的可用性如何?您可以获取有关WebForms的大量文献。
  • 开发它的时间与构建传统的企业WebForms网站是否可比?
  • 要使整个开发团队对WebForms感到满意(如果不被迷恋),要花多长时间才能精通ASP.NET MVC?

  • 我认为事实是,StackOverflow是类似于Google的产品,而ASP.NET MVC可能对此非常有用。但是我一直在开发“贵公司的应用”类别中的软件。

    alt text http://stuffthathappens.com/blog/wp-content/uploads/2008/03/simplicity.png

    因此,如果无法完成某事或必须对其进行黑客入侵,则事后投入大量精力可能会付出巨大的代价。希望能听到那些大跌的人的声音。

    谢谢。

    最佳答案

    大约3个月前,我被告知我需要开发一个企业级Web应用程序(实际上是一系列小型Web应用程序),但是我可以选择自己想要的任何技术。

    由于我最熟悉VS/C#/。Net,因此面临的难题是选择ASP.NET WebForms还是ASP.NET MVC2。与您不同,我唯一的背景是Windows Forms(WinForms)和少许WPF。因此,我不得不研究(并试用)WebForms和MVC。

    就像您一样,我意识到我的应用程序既不是Google也不是Apple,而是您的沼泽标准公司应用程序,它具有成千上万个按钮和框等。WebForms似乎是部署速度最快,但难以测试且难以实现的长期保持。 MVC的学习曲线似乎要陡峭得多,但是一旦建立,测试和维护将变得轻而易举。

    我只花了一个星期摆弄WebForms,所以我不能对此发表评论。但是MVC绝对是我期望的一切。

    是的,这是一个陡峭的学习曲线。对我来说是新概念:

  • 模型- View - Controller (MVC)
  • 关注点分离(SoC)
  • 模型绑定(bind)
  • 单元测试和测试驱动设计(TDD)
  • 模拟和 stub
  • 依赖注入(inject)(DI)

  • 对我最有帮助的书籍是:
  • Pro ASP.NET MVC2 by Sanderson(MVC,模型绑定(bind),DI,TDD)
  • The Art of Unit Testing by Osherove(TDD,模拟, stub ,DI)

  • 我还必须重新学习HTML,CSS和Javascript。

    总体而言,一开始似乎有大量的准备工作,但是维护和扩展现有应用程序却很轻松。每当要求我进行更改时,这都相当容易,而且我通常能够按时甚至有时提前交付。

    在理想的世界中,编写MVC应用程序将需要2个人进行。一个人编写核心代码,另一个人编写UI和 View (HTML,CSS,Javascript)。尽管完全可以自己完成。 (这就是我现在正在做的...)

    不过,我在企业中部署时遇到了一些麻烦。在内部,我的公司正在运行Windows Server 2003和IIS6。不幸的是,当使用虚拟路径时,我们无法使该应用正确部署在IIS6上。 (对CSS文件的所有引用都已损坏。)如果计划部署MVC,建议您使用IIS7或更高版本。 MVC应该可以在IIS6上运行,但是要求您的IT部门愿意弄清楚如何使其工作。

    编辑:我刚刚意识到我从未直接回答过您的问题。开始:
  • 我的亲身经历曾说过,是的,学习曲线对于构建良好的模型和UI而言是陡峭的,但是我并不是真正的Web开发人员,因此我一直在努力解决这一障碍。好消息是MVC技术已经相当成熟。
  • 是的,社区非常发达且不断发展。从StackOverflow以及MS的ASP.NET MVC子论坛中,您将获得很多不错的答案。
  • 我没有编写WebForms的个人经验,但是我已经编写了许多WinForms应用程序,我觉得这花了我大约时间。制作此MVC应用程序的时间延长了3倍。最初的投资是空头,但是定期的维护和改进似乎会更快,尤其是随着应用程序的增长。...由于您似乎有一个程序员团队,因此对于您来说可能会更快一些,因为您可能会分拆学习/工作量。
  • 再次,没有使用WebForms的经验,但是我可以告诉你的是,当我学习ASP.NET MVC时,有时由于我没有ASP.NET的背景,所以我一直在努力了解正在发生的事情。 (例如:成员资格和角色提供者-我最近不得不编写自己的代码。男孩真有趣……)从好的方面来说,我没有任何“旧的做事方式”(又名WebForms)可供学习。任何一个。如果您有一群对PostBack/CodeBehind着迷的人,那么您可以打赌MVC乍一看似乎很奇怪。但是希望您的团队会看到MVC带来的优势并完全拥抱它。

  • 哦,应该注意,您可以将MVC和WebForms混合在一起。这不是一个全有或全无的主张。虽然,如果我不介意的话,我会尝试尽可能多地使用MVC,并且仅在显然更有意义的地方使用WebForms。

    好的,我希望这对您有帮助... :-)

    10-08 09:20
    查看更多