我一直对 ASP.NET MVC 感到困惑。
正如一些人所说,MVC 比 ASP.NET 更好。正如一些人所说,它们是完全一样的。我的大学争论说 MVC 只是 asp.net 的扩展,而 asp.net 已经是 MVC 的形式。
事实上,我是从头开始开发网络的。如果有人可以帮助清除我面前的迷雾,那将有很大帮助。
我一直对 ASP.NET MVC 感到困惑。
正如一些人所说,MVC 比 ASP.NET 更好。正如一些人所说,它们是完全一样的。我的大学争论说 MVC 只是 asp.net 的扩展,而 asp.net 已经是 MVC 的形式。
事实上,我是从头开始开发网络的。如果有人可以帮助清除我面前的迷雾,那将有很大帮助。
所有ASP.NET Web 框架都建立在 Microsoft ASP.NET Framework 之上。Web API的独特之处在于它可以与 MVC 和 WebForms 应用程序一起使用,以提供真正宁静的 HTTP 服务。
关于选择合适的 Asp.NET 框架:您可以从官方来源 - www.asp.net获得更多信息。
一般的经验法则是您希望如何构建应用程序的架构设计。
ASP.NET MVC促进了更清晰的分离,这使开发人员比传统的 Web 表单更深入地思考设计和代码分离。
关于什么是 ASP.NET MVC 更好但真正的好处,存在无休止的争论
ASP.NET WebForms - 将永远存在,因为有些人认为它是一种快速的应用程序开发工具。只需拖放,让 ASP.NET 处理发布、状态等
ASP.NET Web API - 是一个框架,可以轻松构建覆盖广泛客户端(包括浏览器和移动设备)的 HTTP 服务。ASP.NET Web API 是在 .NET Framework 上构建 RESTful 应用程序的理想平台。
总而言之,他们每个人都有一些需要考虑的业务解决方案。
寻找比较的参考:
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 变得更加容易。
(卑微的意见传入)
ASP.NET(就使用 Webforms 而言)正在为 WinForms 开发人员编写 Web。您“绑定”事件,您拥有“控件”,并且所有内容(会话状态)都存储在页面内的一个巨大的隐藏字段中,因此它知道它从上一次调用中中断的位置。您严重依赖这些信息,这就是为什么您所做的一切都需要驻留在包含整个页面的主表单中。
另一方面,MVC 正在将C# .NET 编程以 Web 的预期方式带回 Web。没有臃肿,没有隐藏字段,没有繁重的绑定。它让一切都回到了经典的“我有这个表格,现在我需要处理它”。可以说,真正的魔力在于路由方法和提交字段到对象的“自动绑定”。(如果 fields x
, y
&z
已提交并且您的操作正在查找FooBar
properties x
,y
&z
它会自动为您转换。
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
选择取决于您的项目。我建议您选择 MVC,因为它的生产力非常高,我们使用它 1 年以来发现它比 webforms 更好。
更多知识请访问http://www.asp.net/mvc
选择完全取决于你,我从 2010 年开始开发 MVC 应用程序,现在已经使用了 2 年多,几乎所有版本的 MVC 都使用 Razor 和 aspx 视图。我还研究过基于 ASP.Net webform 的应用程序。
使用 MVC,您将不会获得内置控件,您必须开发每个想要使用的控件,您将不得不主要依赖 html 控件,而使用 Web 表单,您将获得使用内置控件的优势,甚至可以从您周围的其他开发人员可能很容易使用 Web 表单,因为您可以轻松获得 Web 表单开发人员。
但另一方面,MVC 的可维护性非常高。至于生产力,一旦你习惯了它就会非常高,最初它会很低,因为你将处于学习阶段。不要忘记使用实体框架。
如果适合您的场景,您也可以考虑使用 WebAPI 开发您的应用程序。