基于Web的应用程序有哪些缺点?

4

我将为我所在的营地编写一个数据库应用程序。我考虑使用C#编写具有Windows GUI界面的应用程序,但是使用浏览器作为应用程序似乎越来越具有吸引力,因为有各种原因。我想知道的是,为什么有些人不选择将应用程序编写为Web应用程序。例如,返回按钮可能会给您带来麻烦。还有其他任何人能想到的问题吗?


请更具体一些。告诉我们情况,我们可以告诉您您的潜在Web应用程序可能存在的缺点。 - Dustman
13个回答

9

这里有很多缺点:

  • 速度和响应性通常会显著降低
  • 复杂的 UI 控件(如树形控件)更难实现
  • 绘制任何类型的图形都非常棘手,3D 图形甚至更难
  • 你必须处理登录问题
  • 集中式服务器意味着客户端始终需要网络访问
  • 安全限制可能会给你带来麻烦
  • 浏览器不兼容可能会导致额外的工作量
  • Web 上的 UI 约定定义不够明确 - 用户可能会发现使用起来更困难
  • 客户端存储空间有限

问题是... 这些缺点是否足以使 Web 不成为你的项目的正确选择?


我本来想建议使用HTML5离线缓存,这样您就不必拥有网络访问才能使用Web应用程序,也不会出现响应问题,但是我想起IE总是在那里破坏乐趣。Chrome框架是解决此问题的临时方案,但并不理想。 - Joeri Sebrechts
我非常好奇如何在Web应用程序中进行绘图。是否有某种内置的画布控件?绘图是通过用户浏览器使用的绘图方式完成的吗?我假设DirectX和OpenGL不能使用?什么是可用的?例如,Web框架是否具有我在WPF中拥有的典型列表框、树形视图样式控件? - James Joshua Street

2
这里没有提到的一件事是生成良好的Web应用程序所需的复杂性和知识水平。问题在于,除非您正在执行某些非常简单的操作,否则这些应用程序中没有一个“单一”的知识或技术。 例如,如果您要为某个客户端服务器平台编写应用程序,则可能会使用Java或C ++进行开发。对于复杂的Web应用程序,您可能需要具备Java、JavaScript、HTML、Flash、CSS、Ajax、SQL、J2EE等方面的专业知识。此外,Web应用程序的组成部分也更加丰富多样,Web应用程序服务器、HTTP服务器、数据库、浏览器等是典型的组件,但还可能有更多。而客户端服务器应用程序通常只是一个客户端应用程序和一个服务器应用程序。虽然我是一家领先公司的IT架构师,完全沉浸在Web应用程序作为解决方案的大潮中,但我的经验和个人偏好并不是基于Web的。尽管Web应用程序适合许多事情,但仍然存在很多缺点。我认为这项技术将会发展,并且随着时间的推移,缺点将会消失。

1

实际上,真正的限制只在平台上,即浏览器。如果您必须考虑当前使用的所有浏览器,那么由于每个浏览器的标准程度不同,这可能会很麻烦。

如果您控制要使用的浏览器,也就是说,每个人都在您控制的计算机上,并且您在所有计算机上安装了Firefox,那么您可以充分利用最新的JavaScript和CSS标准来提供内容。

[编辑] 您还可以查看像Adobe集成运行时或“AIR”之类的选项,这些选项允许您使用传统的基于浏览器的选项(如xhtml / css / javascript、flash / flex)编写前端,并将后端连接到在线数据库,同时还提供传统桌面应用程序的功能。


1
我认为Web应用程序最大的区别和缺点在于状态管理。由于Web本质上是无状态的,所以您想要维护的每个内容都必须在每个请求和响应中来回发送到服务器。如何高效地存储和检索它,以及如何考虑页面大小和性能,有时很难做到。此外,事实上,浏览器没有真正的标准(至少不是所有人都遵循的),这使得一致性变得非常有趣。

0

您需要对将要托管Web应用程序的服务器进行网络访问(如果将有多个用户使用该应用程序-这通常是情况)。

实际上,利大于弊-如果您能提供有关应用程序的一些详细信息,我们可以提供更多帮助...


0

这完全取决于您的项目需求。大多数情况下,如今的网页应用程序几乎无所不能。不可否认,某些应用程序确实需要桌面浏览器(虽然当前正在快速进步),但仍未达到理想状态。自从 Google DocsGmail 等应用程序出现以来

在网页上,几乎没有做不到的事情。但如果您要创建一个魔兽世界的竞争对手,网页显然不是最佳解决方案。再次地,遗憾的是我们需要更多了解您正在为该团队构建的应用程序。网页的最大好处是任何拥有浏览器的人都可以使用您的应用程序。


0

Web应用程序将处理委托给远程计算机。根据处理量的大小,这可能是一个缺点。考虑一个作为Web应用程序的照片编辑器。

Web应用程序也无法处理大量来回传输到客户端的数据。您可以在线观看视频..当它被压缩时。在我们看到任何基于Web的视频编辑软件之前,还需要一段时间。

浏览器兼容性也是一个麻烦。您无法100%控制应用程序的外观和感觉。

Vaibhav说得很好。你的应用程序是什么?


0
一个主要的问题是迁移的停机时间...用户永远不会期望应用程序停机,但实际上,对于重大升级,它必须停机。在使用桌面应用程序时,用户(或最终用户系统管理员)可以控制升级发生的时间;但在线应用程序则不行。
对于具有大量数据的应用程序,性能可能是一个主要问题,因为您正在集中存储大量用户数据,这意味着IO性能不会像给他们每个人都提供笔记本电脑那样好。
总的来说,可扩展性对于基于服务器的应用程序来说是一个问题。桌面应用程序的可扩展性非常好。

0
你可以用基于Web的应用程序做很多事情,但是使用厚客户端来完成某些事情要容易得多:
  • 性能:您可以轻松访问客户端CPU的全部功能。
  • 响应速度:交互速度快且容易。
  • 图形:您可以轻松使用图形库(如DirectX和OpenGL)创建快速而引人注目的图形。
  • 处理本地文件
  • 点对点通信

0

决定使用Web应用程序是否是一个好的方法取决于您想要实现什么目标。然而,以下是一些更普遍的Web应用程序的缺点:

  • 与桌面应用程序(例如Outlook)的真正集成是不可能的
  • 在您的应用程序和桌面/其他正在运行的应用程序之间进行拖放操作

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接