许多应用程序(尤其是网络应用程序,例如文件共享、SQL查询程序、某些多人游戏)可以通过使用 Web 接口轻松提供。
我的问题是何时应该使用浏览器使应用程序可访问?
什么时候应该使用像 Qt、Visual Basic 等接口构建的桌面应用程序更明智呢?
许多应用程序(尤其是网络应用程序,例如文件共享、SQL查询程序、某些多人游戏)可以通过使用 Web 接口轻松提供。
我的问题是何时应该使用浏览器使应用程序可访问?
什么时候应该使用像 Qt、Visual Basic 等接口构建的桌面应用程序更明智呢?
网络界面的一些要点:
对于这个问题,没有通用的答案。这取决于一些因素:
但趋势明显是朝着基于Web的应用程序发展。您可以通过它们接触到相当多的人。
我越来越认为我们应该使用基于Web的JavaScript(或Flex)接口作为默认选项。这意味着应用程序图像中的代码大大减少,而且它允许一个代码库很好地完成某些事情,而不是几个可能做得不太好的代码库。
如果您首先构建Web界面,则永远不会发现自己需要一个单独的项目来构建Web界面。
借助现代浏览器、JavaScript和Ajax以及JavaScript库,您可以构建一个极其丰富的界面,可以轻松更改。
我认为这是一个错误的问题。你需要做的是分析平台之间的差异以及它们对你的组织产生的影响。让我给你举个实际的例子。
我曾经为一家只开发基于Web的应用程序的小公司工作过。其中一个应用程序不成功,部分原因是我们有很多拨号用户,需要离线支持。
公司决定开发一个.NET客户端应用程序,结果他们受到了惊吓。公司没有准备好将应用程序部署到任意数量的客户端配置的复杂性。例如,我们被Novell Networks所困扰。他们没有准备好支持客户端应用程序的成本增加。(是的,开发人员曾经警告并试图告诉他们这意味着什么)。
因此,你不仅需要提出各种问题,还需要在生产软件的组织背景下对它们进行评估。
需要问的问题包括:
只有在您可以控制环境(内部网络)或编写适用于该软件包/应用程序运行的环境(跨平台版本)时,才选择桌面应用程序。
现在的趋势是一切都在浏览器中进行,我们得到了与桌面应用程序同样好的交互。而且,运行应用程序所需的唯一条件是浏览器,这总是很好的,我们只需要要求用户拥有正确版本的浏览器,他就可以使用它了。
如果您需要快速开发某些东西,或者需要性能/响应式界面(Web仍然比桌面慢),或者正在开发无法在Web中完成的内容(考虑图形软件/复杂游戏),则应开发桌面软件。
如果您的应用程序的用户界面可以实现为良好的Web服务/应用程序,那么您应该认真考虑它作为一种选择。
在浏览器中运行的UI最大的好处是它独立于客户端操作系统。今天,大多数计算机用户通常连接在网络中的多台计算机上。不同操作系统的分布每天都在增加(替代Windows的选择正在获得更大的市场份额)。因此,您可以获得最大的UI可移植性。您的应用程序可以在一台计算机上启动一次,并从任何地方访问。
随着本地和 Web 开发的不断改进,GUI 部分甚至可移植性变得不那么重要。本地应用程序最大的因素是当您需要更低的硬件访问权限或者如果浏览器的安全保护机制限制了开发人员时。也许更重要的是,如果您的应用程序需要高性能和计算量很大,就像金融应用程序中需要并行编程一样,那么您确实需要一个本地应用程序。如果您的应用程序不需要这些功能,请选择适合您口味的应用程序,有许多开发人员可以使用任何技术编写这些应用程序。