ASP.NET MVC是否提供了更适合与浏览器无关的解决方案而不是Webforms?

时间:2012-02-13 19:20:51

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

希望这个问题不要混淆,但我可以帮助清除它,一个确定的答案:是或否(当然为什么)。我使用针对Windows环境和IE的ASP.NET Webforms开发了许多内部Intranet 应用程序。这允许像Windows身份验证和拖放式ASP.NET服务器控件这样的工作非常好,并且重点通常是功能而不是pazzaz或网站的外观;我不是在这里向大众销售产品。

但是有些用户开始使用Mac,而我们知道默认浏览器是Safari。不幸的是,Safari不支持Windows身份验证。另外,很多现成的ASP.NET服务器控件都不像IE中那样正确呈现。另外,我还必须考虑我在.js中需要的所有差异。

现在从内部商业角度来看这个问题,拥有一个单一的企业平台并不罕见,所以假设用户在IE上并不是问题。然而,随着越来越多的Mac被引入,缩小差距以使这些内部网web应用程序与浏览器无关,这在开发时间上可能会有很大不同。

我想知道ASP.NET MVC是否在此问题上有所帮助。我知道它并没有解决Windows Authentican问题(关于这个以及解决方案的问题),但我想知道因为服务器控件没有像Web表单一样使用,如果在尝试制作Web应用程序时使用MVC是一个有利的选择跨浏览器兼容?我不介意做MVC而不是webforms,如果有文档或获得的知识为什么MVC更适合跨浏览器使用,那么请与它说话。如果经验显示MVC呈现其控件的方式而不是来自webforms的服务器控件在不同的浏览器中更好,这主要是我试图破坏的。

有人知道吗?谢谢!

3 个答案:

答案 0 :(得分:2)

ASP.NET MVC为您提供了有关如何呈现HTML,CSS和JavaScript的更多控件,因为您没有为您呈现此内容的所有内置控件。由于您可以完全控制这些元素,因此您可以以跨浏览器的方式进行开发。这给开发人员带来了更多负担。这是一种经典的权力与责任权衡。

答案 1 :(得分:2)

MVC确实消除了服务器控件的错误html,viewstate的巨大空间,并且通常使得渲染的html更清晰,更高效。所以要回答你的问题,是的,MVC将让你更容易拥有干净的html,它就像你编写的那样,而不会让asp.net的渲染变形。

答案 2 :(得分:1)

Safari支持Windows身份验证。如果您遇到问题,可以提供一些细节。

Web表单控件(使用较新版本的asp.net)通常可以在浏览器中正常运行。问题是当它没有时,很难追踪它们。我也有一些问题,他们没有与IE6很好地工作,跟踪它们并在Web窗体中修复它们有点困难。但如果你想要拖放控件,那就是权衡。

使用MVC,没有类似于Web表单的控件概念。您可以控制传递给客户端的所有内容,HTML,CSS和Javascript文件。您可以使用HTML帮助程序将模型呈现为相应的HTML控件。您将要编写的额外代码量取决于您要完成的任务。由于您控制了交付给客户端的所有资产,因此可以更轻松地跟踪奇怪的浏览器特定问题。

使用MVC并不意味着您不会遇到跨浏览器问题。它可能更容易修复,但如果您对Web表单有经验,那么您应该能够获得相同的结果。