【问题标题】:Does ASP.NET MVC provide a more suitable solution to being browser agnostic as opposed to Webforms?与 Webforms 相比,ASP.NET MVC 是否提供了更适合与浏览器无关的解决方案?
【发布时间】:2012-02-13 19:20:51
【问题描述】:

希望这个问题不会让人感到困惑,但我可以帮助澄清它, 有一个明确的答案:是或否(当然还有为什么)。我使用面向 Windows 环境和 IE 的 ASP.NET Webforms 开发了许多 internal Intranet 应用程序。这使得诸如 Windows 身份验证和拖放式 ASP.NET 服务器控件之类的东西工作得非常好,并且重点通常放在功能上,而不是 pazzaz 或网站的外观;我不会在这里向大众销售产品。

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

现在从内部业务的角度来看,拥有单一的企业平台并不少见,因此假设用户使用 IE 不是问题。然而,随着更多 Mac 的推出,弥合差距以使这些 Intranet Web 应用程序与浏览器无关可能会在开发时间上产生很大差异。

我想知道 ASP.NET MVC 是否能解决这个问题。我知道它不能解决 Windows Authentican 问题(也解决了这个问题),但我想知道,因为服务器控件没有像 Web 表单那样使用,如果在尝试制作 Web 应用程序时使用 MVC 是有利的选择跨浏览器兼容?我不介意使用 MVC 而不是 webforms,如果有文档或获得关于为什么 MVC 更适合跨浏览器使用的知识,请与它交谈。如果经验表明 MVC 呈现其控件的方式相对于来自 web 表单的服务器控件在不同的浏览器中更好,这主要是我想要确定的。

有人知道吗?谢谢!

【问题讨论】:

  • 这取决于你的客户端开发技能
  • 能否请您扩展并详细说明一下?
  • 离题,但微软应该因为不放弃网络表单而被“打脸”。
  • 告诉 Scott Guthrie,我认为他和 MSFT 的很多人会不同意,但每个人都有权发表自己的意见。很高兴工具箱中有很多不同的工具。

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


【解决方案1】:

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

【讨论】:

  • 如果需要严格地创建一个跨浏览器的内部网应用程序而不是网络表单,你会选择 MVC 吗? (并不是因为更好的可测试性、框架、MVC 的其他优势等)
  • 不,严格来说,我不会为了浏览器兼容性而这样做。
  • 谢谢。我完全理解这不是唯一的原因,但是如果在决定使用哪个主题时出现了这个主题(其中很多是为了设计),你会选择 MVC 还是 Webforms 来进行关于这个主题的任何对话?或者你会说“没关系”?
  • 我每次都会选择MVC。不是为了兼容性。这将是为了更好的可测试性、控制和性能。
【解决方案2】:

MVC 确实消除了服务器控件的损坏 html、viewstate 的巨大占用空间,并且通常使呈现的 html 更清洁和更高效。所以回答你的问题,是的,MVC 将使你更容易拥有保持你编写它的方式的干净 html,而无需让 asp.net 的呈现破坏一切。

【讨论】:

    【解决方案3】:

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

    Web 表单控件(使用较新版本的 asp.net)通常可以跨浏览器正常工作。问题是当它没有时,很难追踪到它们。我也遇到过它们不能很好地与 IE6 配合使用的问题,在 Web 窗体中跟踪和修复它们并不难。但是,如果您想要拖放控件,这是一种权衡。

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

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

    【讨论】:

    • 是的,对于 Safai 和集成 Windows 身份验证我又看了一些,看到了这个:“Safari 工作,一旦你有一个 Kerberos 票证”。使用 IE,一切都可以无缝进行,而无需用户在请求时登录该站点。你有关于(2)的任何信息吗?此外,我是一位经验丰富的 intranet Web 开发人员,但说实话,多年来,我不必花很多心思来控制渲染或额外的 .js 占超过 1 个浏览器。我猜这只是典型的内部企业开发人员。
    • 如果 (2) 是指 Web 表单和跨浏览器兼容性,则主要取决于经验。对于您的情况,请查看此线程stackoverflow.com/questions/593605/…。如果您对 javascript MVC 感到满意,那么对您来说应该没什么问题。
    • 感谢您的跟进和好信息。我实际上是指 2 - Integrated Windows Authentication and Safari。你有什么好的信息链接。我可以谷歌,但我想知道是否有一些突出的文档或博客文章?
    猜你喜欢
    • 1970-01-01
    • 2011-01-13
    • 2011-10-11
    • 2018-12-23
    • 2011-03-05
    • 2017-03-01
    • 2012-08-16
    相关资源
    最近更新 更多