【问题标题】:Learn Asp.Net WebForms or Asp.Net MVC学习 Asp.Net WebForms 或 Asp.Net MVC
【发布时间】:2011-01-15 05:37:44
【问题描述】:

这可能是一个骗局,但我找不到直接的答案。如果一个人即将开始通过 .Net 框架学习 Web 开发,他应该选择哪种技术?

  • Asp.Net 网络表单
  • Asp.Net MVC

注意这三个方面

  • 未来范围
  • 复杂性
  • 功能

注意:已经用C#做过一些WinForms编程

谢谢

【问题讨论】:

    标签: .net asp.net-mvc webforms


    【解决方案1】:

    重要更新(2019 年):如果您仍然想知道是否使用网络表单;答案是绝对没有。查看新的ASP.NET technologies 并坚持使用.NET Core。任何新项目都应该使用 .NET Core 和 C#。


    这可以是fairly controversial :)

    我的个人意见是;停止投资 webforms(它是 web 的一个坏模型)并学习 Asp.Net MVC,这样您不仅可以制作设计良好的 web 应用程序,而且可以在 web 的其他地方使用您的知识。 MVC 让您了解 HTTP、HTML 和其他底层“网络基础设施”,从而为您提供更好的成功机会。

    所以除非你想赚钱(这完全是个人观点,但还是要加点盐)支持旧的网络表单安装(有点像 COBOL - 支持你的马网络表单粉丝:))我肯定会强烈建议使用 Asp .Net MVC ;)。当然,我不知道网络表单 (especially 4.0 ones) 的最新发展,所以你可能也想等待这些......

    编辑:如果您认为过去的 winforms 经验将成为使用 webforms 的优势或论据(我认为这是 Microsoft 开发人员的主要卖点),那么您是对的大约一个星期,其余时间都错了。在 webforms 和 winforms 中,您都有控件。相似之处到此为止。事件模型完全不同,线程完全不同,你甚至不能开始比较渲染等等。这实际上是网络表单的主要问题;试图在完全不同的架构上看起来像 winforms。

    【讨论】:

    • 更不用说大多数其他 Web 框架都是 MVC,因此您对 ASP.NET MVC 的了解也可以转移到这些框架中。
    【解决方案2】:

    找到一份从事 WebForms 的工作要容易得多,而且 MVC 现在似乎还没有进入生产环境。如今,更复杂的应用程序肯定会使用 MVC,较小的应用程序很可能更喜欢 WebForms,但请记住,较小的应用程序代表了就业市场的大部分。

    无论哪种方式,学习两者都没有坏处,或者至少掌握 WebForms 并在 MVC 上投入更多(因为它最终会迫使您学习通常与之相关的其他技术:nHibernate/Entity、DDD、TDD 等等在)。此外,您可以在 MVC 中使用大量控件,几乎不需要调整,尽管思维方式非常不同。

    【讨论】:

      【解决方案3】:

      我相信大多数人都会说,这在很大程度上取决于您想学习什么以及您希望采用的开发风格。如果你想要对你的页面标记进行大量控制并打算使用大量 AJAX 和 CSS,那么 MVC 是一种更好的方法,最大的权衡是你失去了 Microsoft 控件,例如 Gridview 和其他拖放组件。 MVC 是非常强大且可扩展的框架,学习它还可以让您学习 MVC 模式(如果您以后将技能多样化到其他开发平台,这很有用)。

      但是,如果您要创建大量需要快速交付的内部 Web 应用程序,那么 Webforms 无疑是一种更好的方式,它有很好的文档记录且成熟,并且控件允许您免费构建强大的功能。虽然您将获得在 MVC 中操作数据的基本模板,但它远没有在 Webforms 中构建应用程序那么快。

      我个人的建议是学习 MVC(和它的模式),因为它没有很大的依赖微软专有组件,并且让您考虑前端的应用程序以及它与后端的交互。

      如果你想要一个大型 MVC 网站的好例子......你就在上面...... * 在 ASP.NET MVC 上运行。

      希望这会有所帮助,这是一个非常笼统的观点,而且这两个论点还有很多其他内容。但是从个人经验来看,我认为 MVC 从长远来看会教给你更多可重用的标准 Web 技术。

      淅淅

      乔恩

      【讨论】:

        【解决方案4】:

        这个问题不可能有明确的答案,但我可以通过向您强调这两种技术的一些事实和关键点来帮助您做出决定。

        Web 表单已经存在很久了,因此在及时完成任务方面,它们比 mvc 更加成熟和可靠!与 mvc 相比,即使是 Web 表单的知识库也大得多。

        Web 表单功能非常丰富,让您可以更好地控制想要做什么、如何做。 MVC 作为轻量级应用程序开发平台有其自身的优点。

        如果您是新手,那么我建议您先使用 web-forms 并开始并行查看 mvc。

        *.com 是使用 asp.net mvc 平台构建的。

        【讨论】:

        • 我完全不同意你的看法。 MVC 是一种经过验证的 Web 框架模式(大多数是 MVC)。关于一般模式,特别是关于 ASP.NET MVC 框架,有大量可笑的知识。现在这是我有争议的声明:大多数最优秀的 .NET 开发人员已经转向 MVC 框架(不一定是 ASP.NET MVC),因为他们意识到这是一种优越的模式。
        • "Web 表单的功能非常丰富,让您可以更好地控制想要的内容" 我无法理解。大多数教程/书籍都表明,MVC 比 WebForms 提供了更多的灵活性和对应用程序应该做什么和如何做的控制!!!