6

为冗长的介绍道歉 - 只是试图适当地设置场景以避免歧义和混乱。

Web 应用程序已经从用于服务器端逻辑的基于浏览器的笨接口发展为完全基于浏览器的应用程序,对服务器端逻辑的需求最少。可以通过识别清晰的 Web 应用程序代来描述这种演变。

让我们暂时只考虑两代:前 ajax 和后 ajax。当然还有其他因素,例如与 CSS 支持和访问控制标头相关的因素,但让我们从简单的开始。

从无样式、无 JavaScript 的简单系统开始,添加优雅降级的增强层并使用 ajax 打包、响应迅速的现代应用程序完成是一项具有挑战性且容易出错的任务。这绝非易事。

Web 应用程序可能属于哪一代取决于访问该应用程序的方式。如果通过 Lynx 访问,同样的 Web 应用程序似乎是第一代应用程序,如果通过 FireFox 3.1 访问,则似乎是最新一代应用程序,中间有几个级别,具体取决于用于访问应用程序的用户代理。

创建一个根据用户代理的功能优雅降级的 Web 应用程序的问题,其中为利用当前浏览器功能而创建的东西将恢复到可能在 15 年前在面对 Lynx 时创建的东西的功能,这是非常困难的.

我无法想象一个桌面应用程序会面临这样的操作环境变化。

能够利用 Vista 中的功能的单个可执行文件(相对于一组特定于操作系统的变体)在 XP 下运行和缺少某些 Vista 功能时可能会很好地应对。要在与 Web 应用程序相当的距离内降级,相同的桌面应用程序在 DOS 等纯命令行环境中运行时仍必须运行,尽管方式不那么花哨。

在 Lynx 下运行它,它是第一代 Web 应用程序。在 FireFox 3.1 下运行相同的程序,这是一款精美、闪亮的现代网络应用程序。如果遇到这样的问题,你会认为它具有挑战性、棘手但可行。

在 DOS 下运行它,它是一个命令行应用程序。在 Vista 下运行它,它是一个花哨、闪亮的现代网络应用程序。如果遇到这样的问题,你会认为它很疯狂。或者你会吗?

桌面应用程序是否曾经像 Web 应用程序那样在操作环境中面临如此广泛的变化?

这个问题(方差的广度,而不是方差本身)是 Web 应用程序领域独有的,还是可以在桌面开发中找到?

4

3 回答 3

1

桌面应用程序在这方面没有 Web 应用程序存在的相同问题。它们通常被设计为在一个定义明确的平台上运行。

这在未来可能会改变。计算正在从台式机转移到手机和更小的笔记本电脑。未来桌面应用程序将不得不在更广泛的平台上运行。这可能会导致问题,因为我们用于开发桌面应用程序的大多数框架都比 Web 应用程序框架更糟糕。

于 2009-02-20T14:00:06.683 回答
1

我无法想象一个桌面应用程序会面临这样的操作环境变化。

桌面应用程序必须处理不同类型的差异。游戏中的显卡就是一个很好的例子:您希望为基本客户提供体面的支持,但您拥有闪亮的新显卡的高端客户会想要为他们的钱奔波。当您进入 GPU 处理和卡上内存管理领域时,您将有足够的理由诅咒操作环境中的差异。

您通常还处理比网络应用程序更多的处理器和内存密集型软件,因此您也必须考虑到这一点。而且我什至没有谈论跨操作系统的可操作性(许多桌面软件处理得非常优雅)。

当然,没有什么能让桌面软件发行商对环境施加严格的标准。这只是业务问题。但也没有什么能强迫你支持非主流浏览器(大多数 Web 应用程序真的支持 Lynx 吗?!?)。

于 2009-02-20T14:24:24.767 回答
0

在应用程序和操作系统 (OS) 领域,问题通常是相反的。操作系统负责处理维护兼容性的所有复杂性。另一方面,应用程序通常规定最低操作系统版本。

应用程序开始看到这个问题的另一个地方是 Java 世界,以及在较小程度上可以在多操作系统上工作的所有其他所谓的脚本语言。

于 2009-02-20T13:56:41.137 回答