我们今天所知道的许多应用程序(尤其是网络应用程序,例如文件共享、sql 查询程序、一些多人游戏)都可以通过使用 Web 界面轻松提供。
我的问题是何时应该使用浏览器访问应用程序?
何时使用使用 Qt、Visual Basic 等接口构建的桌面应用程序是明智的。
我们今天所知道的许多应用程序(尤其是网络应用程序,例如文件共享、sql 查询程序、一些多人游戏)都可以通过使用 Web 界面轻松提供。
我的问题是何时应该使用浏览器访问应用程序?
何时使用使用 Qt、Visual Basic 等接口构建的桌面应用程序是明智的。
Web界面的一些要点:
这个问题没有一般的答案。这取决于一些因素:
但趋势明显转向基于 Web 的应用程序。你可以和他们一起接触很多人。
我越来越认为我们应该使用基于 Web 的 javascript(或 flex)界面作为默认界面。这意味着应用程序映像中的代码要少得多,而且它允许一个代码库做得很好,而不是几个可能做得不好的代码库。
如果您从构建 Web 界面开始,您永远不会发现自己需要一个单独的项目来构建 Web 界面。
借助现代浏览器、javascript 和 ajax 以及 javascript 库,您可以构建一个极其丰富且易于更改的界面。
我认为这是一个错误的问题。您需要做的是分析平台之间的差异以及它们如何影响您的组织。给你一个真实世界的例子。
我在一家只构建过基于 Web 的应用程序的小公司工作。其中一个应用程序没有成功,部分原因是我们有很多拨号用户,需要离线支持。
该公司继续开发了一个 .net 客户端应用程序,他们猛然醒悟。该公司没有为部署到任意数量的客户端配置的复杂性做好准备。例如,我们被 Novell Networks 咬了一口。他们没有为支持客户端应用程序的成本增加做好准备。(是的,发展已经警告并试图警告他们这意味着什么)。
因此,您不仅需要提出各种问题,还需要在生产软件的组织的背景下对其进行评估。
要问的事情包括:
仅适用于桌面应用程序,如果您可以控制环境(内部网)或程序到该包/应用程序将在其中运行的环境(跨平台版本)。
看看现在的趋势,一切都在浏览器中进行,与桌面应用程序相比,我们获得了同样好的交互。运行应用程序唯一需要的就是浏览器,这总是好的,我们可以要求用户拥有一个它的正确版本,他已经准备好使用它。
根据我的经验,我发现 Web 应用程序通常需要更多时间来开发,但开发 Web 应用程序有一些优势。
您应该开发桌面软件,如果您需要快速开发的东西,或者您需要性能/响应式界面(网络仍然比桌面慢)或者如果您正在开发无法在网络中完成的东西(想想图形软件/复杂游戏)。
要开发应用程序,最好将客户端和服务器代码分开。在桌面应用程序中,通常情况并非如此。处理用户交互的客户端代码与处理用户命令的服务器代码集成在一起。然而,这不一定是这种情况,只需拆分代码并通过 TCP/IP 进行通信。
下一个问题是,您的客户端代码应该在浏览器中运行还是作为本机 GUI 运行。对我来说,原生 GUI 更好,原因有很多: - 运行速度更快 - 客户端和服务器代码使用相同的编程语言 - 更少依赖更改软件组件:浏览器、html、css、Web 服务器
大多数 GUI 框架都是多平台的。
唯一的缺点是您需要在计算机上安装客户端软件。如果您想避免在服务器上安装客户端并通过终端服务器程序(如 Citrix)访问。
当然,如果您的应用程序的用户很少使用,那么 Web 应用程序是最有用的。
大型软件公司已花费数百万美元将其 GUI 更改为 Web,而没有为其应用程序添加任何附加功能。大多数时候,界面变得更加原始。所以这是一种巨大的金钱浪费,这种情况仍在继续。所以不要总是随波逐流。
如果您的应用程序的 UI 可以实现为表现良好的 Web 服务/应用程序,您应该认真考虑将其作为一个选项。
可以在浏览器中运行的 UI 的最大好处是它独立于客户端操作系统。今天的大多数计算机用户通常在网络中连接不止一台计算机。不同操作系统的分布每天都在变大(windows 的替代品市场份额越来越大)。因此,您可以获得 UI 的最大可移植性。您的应用程序可以在一台计算机上启动一次并从任何地方访问。
随着原生和 Web 开发的改进,GUI 部分甚至可移植性都变得不那么重要了。原生应用程序的最大因素是您需要较低的硬件访问权限,或者浏览器的安全保护机制是否会限制开发人员。也许最重要的是,如果您的应用程序需要性能并且计算量很大,例如金融应用程序中需要并行编程的那种,那么您真的需要一个原生应用程序。如果您的应用程序不需要任何适合您口味的选择,那么有许多开发人员可以使用任何技术对这些应用程序进行编程。