【问题标题】:Confusion on using asp.net or mvc使用 asp.net 或 mvc 的困惑
【发布时间】:2012-12-06 08:10:19
【问题描述】:

我一直对 ASP.NET MVC 感到困惑。

正如一些人所说,MVC 比 ASP.NET 更好。正如一些人所说,它们是完全一样的。 我的大学争论说 MVC 只是 asp.net 的扩展,而 asp.net 已经是 MVC 的形式了。

事实上,我是从头开始开发 Web 的。如果有人可以帮助清除我面前的迷雾,那将有很大帮助。

【问题讨论】:

    标签: asp.net .net asp.net-mvc


    【解决方案1】:

    (谦虚的意见传入)

    ASP.NET(在使用 Webforms 方面)正在为 WinForms 开发人员编写 Web。您“绑定”事件,您拥有“控件”,并且所有内容(会话状态)都存储在页面内的一个巨大的隐藏字段中,因此它知道它从上一次调用中中断的位置。您非常依赖这些信息的存在,这就是为什么您所做的一切都需要驻留在包含整个页面的主表单中。

    另一方面,MVC 正在将 C# .NET 编程以 Web 的预期方式带回 Web。没有臃肿,没有隐藏字段,没有繁重的绑定。它让一切都回到了经典的“我有这个表格,现在我需要处理它”。可以说,真正的魔力在于路由方法和提交字段到对象的“自动绑定”。 (如果字段xyz 已提交,并且您的操作正在寻找具有xyz 属性的FooBar,它会自动为您转换。

    【讨论】:

    • 这是一个很好的解释。但是,ASP.NET MVC 只是一组处理程序、模块和扩展,它们位于与 ASP.NET Web 窗体相同的 ASP.NET 框架之上。
    • @JimSchubert:确实,但是从实现的角度来看,它却自相矛盾。你不再是this.Control.Click += new EventHandler(Form_Submit),而是回到<input type="submit">。 (我使用还原,但您发现自己应用的不是 winforms 逻辑,而是更传统的 HTML 逻辑)。引用 IBM,KISS.
    【解决方案2】:

    ASP.NET 是整个 Web 框架的名称。在 ASP.NET 上构建了几种不同的技术。这些技术的两个流行示例是 WebForms 和 MVC。

    WebForms 提倡一种看起来更像 Windows 窗体的编程模型。它试图抽象出 Web 的无状态特性,并鼓励您使用服务器端控件而不是 HTML。因为在 MVC 出现之前很长一段时间,WebForms 是在 ASP.NET 上编写 Web 应用程序的主要方式,所以您经常会看到人们将“ASP.NET”与 WebForms 说成是同一个东西。这是您感到困惑的部分原因。 ASP.NET WebForms 与 ASP.NET MVC 非常不同,但它们都是基于 ASP.NET 构建的。

    ASP.NET MVC 摆脱了服务器端控件。它消除了抽象,使您可以更密切地控制生成的实际 HTML。对于现代应用程序的开发人员来说,这非常有用,因为它可以更轻松地使用 AJAX 和富客户端 javascript。

    【讨论】:

    • +1 用于区分 Web 表单和 MVC。 Web Forms 是 Microsoft 针对 Web 快速应用程序开发的解决方案。正是这种快速的开发增加了许多 MVC 中不存在的“臃肿”。
    【解决方案3】:

    ASP.NET 对 WEB-API 和 ASP.NET MVC 都是通用的。我假设您想知道 MVC 或 WEB-API。 MVC 是基于视图的控制器/模型。尽管控制器可用于 AJAX json 目的。 MVC 是构建严肃的基于浏览器的应用程序的好方法。 WEB-API 允许您构建简单的 http 服务器功能,不一定与浏览器相关。适合 REST 风格的编程。非常灵活,是 WCF 服务的良好替代品。这是官方 ASP.NET 网站上关于两者的很好的教程。从这里开始http://www.asp.net/get-started

    【讨论】:

      【解决方案4】:

      所有 ASP.NET Web 框架 都建立在 Microsoft ASP.NET Framework 之上。 Web API 的独特之处是它可以与 MVC 和 WebForms 应用程序一起使用,以提供真正宁静的 HTTP 服务。

      关于选择合适的 Asp.NET 框架:您可以从官方来源获得更多信息 - www.asp.net

      一般经验法则是您想要构建应用程序的架构设计

      ASP.NET MVC 促进了更清晰的分离,这使开发人员比传统的 Web 表单更深入地思考设计和代码分离。

      关于什么是 ASP.NET MVC 更好但真正的好处,存在无休止的争论

      1. 可测试性
      2. 对呈现的 HTML 的更多控制
      3. 关注点分离。但是,对于 MVC,开发人员还有很多东西需要学习。

      ASP.NET WebForms - 将永远存在,因为有些人认为它是一种快速的应用程序开发工具。只需拖放,让 ASP.NET 处理发布、状态等

      ASP.NET Web API - 是一个框架,可让您轻松构建覆盖广泛客户端(包括浏览器和移动设备)的 HTTP 服务。 ASP.NET Web API 是在 .NET Framework 上构建 RESTful 应用程序的理想平台。

      总而言之,他们每个人都有一些需要考虑的业务解决方案。

      比较参考:

      【讨论】:

      • 非常感谢您的回答,1000字的文章中的数字真的很容易理解基本概念。
      【解决方案5】:

      选择取决于您的项目。我建议你选择 MVC,因为它的生产力非常高,我们使用它 1 年以来发现它比 webforms 更好。

      更多知识请访问http://www.asp.net/mvc

      【讨论】:

        【解决方案6】:

        选择完全取决于您,自 2010 年以来我一直在开发 MVC 应用程序,现在已经使用了 2 年多时间,几乎所有版本的 MVC 都使用 Razor 和 aspx 视图。我还研究过基于 ASP.Net webform 的应用程序。

        使用 MVC,您将不会获得内置控件,您必须开发每个想要使用的控件,您将不得不主要依赖 html 控件,而使用 Web 表单,您将获得使用内置控件的优势,甚至对于网络表单而言,从您周围的其他开发人员那里获得帮助可能很容易,因为您可以轻松获得网络表单开发人员。

        但另一方面,MVC 的可维护性非常高。至于生产力,一旦你习惯了它就会非常高,最初它会很低,因为你将处于学习阶段。不要忘记使用实体框架。

        如果适合您的场景,您也可以考虑使用 WebAPI 开发您的应用程序。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-02-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多