我对ASP.NET MVC感到困惑。
正如一些人所说,MVC优于ASP.NET。正如一些人所说,它们完全是一回事。 我的大学辩论说MVC只是asp.net的扩展,其中asp.net已经是MVC的形式。
事实上,我正在从头开始开发Web。如果有人可能有助于清除我前面的雾,那将会有很大帮助。
答案 0 :(得分:10)
ASP.NET是整个Web框架的名称。有一些基于ASP.NET的不同技术。这些技术的两个流行示例是WebForms和MVC。
WebForms推广的程序模型看起来更像Windows Forms。它试图抽象出Web的无状态特性,并鼓励您使用服务器端控件而不是HTML。因为WebForms是在MVC出现之前很长一段时间在ASP.NET上编写Web应用程序的主要方式,所以你经常会看到人们谈论“ASP.NET”和WebForms一样。这是你混淆的部分原因。 ASP.NET WebForms与ASP.NET MVC非常不同,但它们都是基于ASP.NET构建的。
ASP.NET MVC远离服务器端控件。它消除了抽象,使您可以更密切地控制生成的实际HTML。对于现代应用程序的开发人员来说,这非常有用,因为它使得使用AJAX和富客户端javascript变得更加容易。
答案 1 :(得分:10)
所有 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应用程序的理想平台。
总而言之,每个人都有某些商业解决方案需要考虑。
参考以寻找比较:
答案 2 :(得分:3)
(谦卑的意见传入)
ASP.NET(就使用Webforms而言)是为WinForms开发人员编写Web的程序。你“绑定”事件,你有“控制”,一切(sessionstate)存储在页面内的一个巨大的隐藏字段中,因此它知道它从前一次调用中停止的位置。您严重依赖此信息,这就是为什么您所做的一切都需要驻留在包裹整个页面的主表单中。
另一方面,MVC将 C# .NET编程以Web的方式带回Web。没有膨胀,没有隐藏的领域,没有重型绑定。它将一切都带回了经典的“我有这种形式,现在我需要处理它”。可以说,真正的魔力是路由方法和提交字段到对象的“自动绑定”。 (如果提交了字段x
,y
和z
,并且您的操作正在查找FooBar
,其中包含x
,y
和& z
它会自动为您转换。
答案 3 :(得分:1)
ASP.NET对于WEB-API和ASP.NET MVC都很常见。我假设您对MVC或WEB-API感到疑惑。 MVC是基于视图的控制器/模型。虽然控制器可用于AJAX json目的。 MVC是构建基于浏览器的严肃应用程序的好方法。 WEB-API允许您构建简单的http服务器功能,不一定与浏览器相关。适合REST风格的编程。非常灵活,是WCF服务的良好替代品。在官方ASP.NET站点上都是关于Both的好教程。从这里开始http://www.asp.net/get-started
答案 4 :(得分:0)
选择取决于你的项目。我建议你选择MVC,因为它的生产率非常高,我们使用它1年以来,发现比webforms更好。
有关更多知识,请访问http://www.asp.net/mvc
答案 5 :(得分:0)
选择完全取决于你,我自2010年以来一直在开发MVC应用程序,它已经超过2年,现在几乎所有版本的MVC都使用Razor和aspx视图。我还参与过基于ASP.Net webform的应用程序。
使用MVC你不会内置控件,你必须开发你想要使用的每个控件,你将不得不主要依赖于html控件,而使用web表单你将获得使用内置控件的优势,甚至从Web环境中获取其他开发人员的帮助可能很容易,因为您可以轻松获得Webform开发人员。
但另一方面,MVC的维护性非常高。至于生产力方面,一旦你习惯了它就会非常高,最初它会很低,因为你将处于学习阶段。不要忘记使用实体框架。
如果适合您的情况,您也可以考虑使用WebAPI开发您的应用程序。