开发Web应用程序与桌面应用程序的好处和挑战是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (804)

我与管理者存在一些问题,因为他们认为(直观地)创建桌面应用程序比创建Web应用程序更容易(因为您的约束较少)。但在我看来,这是因为一些原因更加困难:

  • 桌面应用程序的文献远远少于网络应用程序
  • 编码面板和按钮比使用声明式方法更难(HTML)
  • http的无状态特性迫使您以请求/响应的方式重新思考

我在GUI和桌面应用程序上寻找坚实的推理。我坚信桌面是很难开发的,因为我有一些工具包的经验,但如果有人在意否则作出回应,请随时根据您的推理。

提问于
用户回答回答于

不必处理不同的操作系统版本、已安装的库、注册表、COM等。有不同的浏览器需要处理,但这不是一个交易。

就开发与web开发而言,有:

  • 较短的执行路径
  • 减少需要管理的状态
  • 你几乎不用自己去处理并行问题。
  • 需要管理的资源少得多,或者没有--没有操作系统处理。

唯一的缺点是,通常需要更多的时间来安装开发机器,而对Web应用程序的调试则更加困难。在当前的工具状态下,调试不再是什么问题了。

用户回答回答于

大多数答案似乎都集中在选择实现起来有多容易或有多难。应用程序的整体目标,无论是基于桌面的还是基于Web的,都是为最终用户服务的。

在大多数情况下,Web应用程序无法像桌面应用那样提供丰富的交互体验。由于可用的小部件、网络延迟、应用程序窗口必须(通常)驻留在另一个应用程序中等因素,有太多的限制。

尽管如此,很多时候,接口不需要大量的小部件,网络延迟也不是什么问题,在浏览器窗口内运行是一个优势。Gmail和堆栈溢出是基于Web的应用程序的主要例子,它们不需要特别丰富的界面。

因此,在决定首先使用哪种技术时,请考虑用户。他们需要一个高性能,丰富的UI吗?他们是否需要能够毫不费力地在网上与其他人共享数据?这是一个应用程序,他们将使用八小时一天,还是只是一个偶然的基础上?他们会使用它来编辑本地文件,或者通过网络与人合作吗?

对于那些说“网络应用总是更好”的人,让我问你这个问题:想想你每天使用的工具。您的文本编辑器,编程IDE,浏览器,电子邮件客户端。其中哪些是网络应用?可能没有,除了你的电子邮件客户端。你不想要一个基于网络的IDE来编写软件(或者写一本书,或者做严肃的图像处理)是有原因的。

这一切归结为用户和他们的目标是什么。有时候,他们的需求最好是通过基于Web的UI来满足,有时使用桌面UI。有时两者都可以。当然,还需要权衡各种选项,如分发和更新、跨平台可用性等,但这一切都是从用户及其目标开始的。如果你专注于满足你的最终用户,答案可能会变得相当明显。

扫码关注云+社区

领取腾讯云代金券