什么是基于Web的应用程序的缺点

时间:2008-09-21 20:23:42

标签: database web-applications browser

我打算为我工作的阵营编写一个数据库应用程序。我正在考虑使用Windows GUI界面在C#中编写它,但使用浏览器,因为各种原因,应用程序看起来越来越有吸引力。我想知道为什么有人不会选择将应用程序编写为Web应用程序。防爆。后退按钮可能会给您带来一些麻烦。还有其他人可以想到的事情吗?

13 个答案:

答案 0 :(得分:9)

有很多缺点:

  • 速度和响应能力往往会更差
  • 复杂的UI小部件(例如树控件)更难做到
  • 渲染任何类型的图形都非常棘手,3D图形更难
  • 你必须乱搞登录
  • 集中式服务器意味着客户端始终需要网络访问
  • 安全限制可能会给您带来麻烦
  • 浏览器不兼容性可能会导致大量额外工作
  • 在网络上定义的UI惯例不太明确 - 用户可能会发现使用起来更难
  • 客户端存储空间有限

问题是......是否有足够的这些适用于您的项目,使网络成为错误的选择?

答案 1 :(得分:2)

这里没有提到的一件事是生成一个好的Web应用程序所需的复杂性和知识水平。问题是除非你做的事情非常简单,否则没有“单一”知识或技术进入这些应用程序。 例如,如果您要为某个客户端服务器平台编写应用程序,则可以使用Java或C ++进行开发。对于复杂的Web应用程序,您可能必须具备Java,Java Script,HTML,Flash,CSS,Ajax,SQL,J2EE等方面的专业知识。此外,基于Web的应用程序的组件也更多,Web应用程序服务器,HTTP服务器,数据库,浏览器..是典型的组件,但可能会有更多..客户端服务器应用程序是典型的,它说...客户端应用程序和服务器应用程序。我的经验和个人偏好不是基于网络的。基于网络对许多事情都很好。但即使我是一家领先的公司的IT架构师,它完全沉浸在Web应用程序中作为一切的解决方案......缺点仍然很多......我做的事情是技术将发展并且缺点会随着时间推移而消失

答案 2 :(得分:1)

基本上,真正的限制只是通过平台,即浏览器。如果您必须考虑当前使用的所有浏览器,由于每个浏览器的标准不同,可能会很麻烦。

如果可以控制使用哪个浏览器,即每个人都在您在网站上控制的计算机上,并且说您在所有这些计算机上安装了firefox,那么您可以充分利用最新的Javascript和CSS标准。内容传递。

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

答案 3 :(得分:1)

我在Web应用程序中看到的最大区别和缺点是状态管理。由于Web本质上是无状态的,因此每个要维护的东西都必须在每次请求和响应时从服务器来回发送。如何在页面大小和性能方面有效地存储和检索它有时很难做到。事实上,浏览器没有真正的标准(至少不是每个人都遵守),这使得一致性确实..........有趣。

答案 4 :(得分:0)

您需要具有对将要启用Web应用程序的服务器的网络访问权限(如果应用程序将有多个用户 - 通常就是这种情况)。

实际上,有更多的优点而不是缺点 - 如果你能提供一些关于你的申请的细节,我们可以帮助更多......

答案 5 :(得分:0)

完全取决于项目的要求。在大多数情况下,这些天没有太多的Web应用程序无法做到。不可否认,某些应用程序确实属于桌面浏览器(虽然目前正在迅速发展),但仍然尚未完全存在。从Google DocsGmail

等应用程序的出现开始

网上没有太多你无法做到的事情。但是,如果您正在创建“魔兽世界”的竞争对手,那么网络肯定不是最佳解决方案。不幸的是,遗憾的是,我们需要更多地了解您为营地建立的应用程序。关于网络的最好的部分是任何拥有浏览器的人都可以使用您的应用程序。

答案 6 :(得分:0)

Web应用程序将处理委托给远程计算机。根据处理量,这可能是一个骗局。考虑一个照片编辑器,它是一个网络应用程序。

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

浏览器兼容性也很麻烦。您无法100%控制应用程序的外观。

Vaibhav有一个很好的观点。你的申请是什么?

答案 7 :(得分:0)

一个主要的问题是迁移的停机时间......用户不会期望应用程序永远停机,但实际上它将不得不用于主要升级。使用桌面应用程序执行此操作时,用户(或最终用户系统管理员)可以控制何时进行升级;使用在线应用程序,他们不是。

对于拥有大量数据的应用程序,性能可能是一个主要问题,因为您集中存储了大量用户的数据,这意味着IO性能将不如您给它们所有的那样好笔记本电脑。

通常,可伸缩性会给基于服务器的应用程序带来问题。桌面应用程序可以很好地扩展。

答案 8 :(得分:0)

使用基于Web的应用程序可以做很多事情,但使用胖客户端做某些事情要容易得多:

  • 性能:您可以轻松访问客户端CPU的全部功能。
  • 响应能力:互动性快速而简单。
  • 图形:您可以轻松使用DirectX和OpenGL等图形库来创建快速令人印象深刻的图形。
  • 使用本地文件
  • 对等网络

答案 9 :(得分:0)

确定Web应用程序是否是一种好方法取决于您要实现的目标。但是,这里有一些更常见的Web应用程序:

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

答案 10 :(得分:0)

使用Web应用程序时,在服务器上存储用户数据时会出现更多隐私问题。您必须确保不会丢失/泄露它,并且您的用户必须对将数据存储在服务器上的想法感到满意。

除此之外,还存在许多安全问题,例如中间人攻击,XSS或SQL注入。

您还需要确保手头有足够的计算能力和带宽。

答案 11 :(得分:0)

“例如,后退按钮可能会给您带来麻烦。”

你必须对此有所了解。许多人在他们的Web应用程序中犯了根本性的错误,并在如何处理事务中引入了错误。如果您不使用“发布后重定向”(也称为Post-Redirect-Get,PRG设计),那么您已经创建了一个错误,该错误在后退按钮中显示为问题。

一揽子声明,有问题的后退按钮不太可能是真的。一个具体的例子可以澄清你的具体问题。

答案 12 :(得分:0)

如果正确设计应用程序,后退按钮确实不是什么大问题。您可以使用AJAX来操作当前页面的各个部分,而无需在浏览器历史记录中添加项目(因为页面本身不会更改)。

设计Web应用程序的最大问题与状态有关,以及需要编程的挑战。使用桌面应用程序,状态很容易处理,您可以打开数据库连接,锁定记录并等待用户进行更改和提交。使用Web应用程序,您可以锁定记录...但是如果用户关闭浏览器会怎样?在设计应用程序时必须克服这些问题。

在设计Web应用程序时,请确保每次访问服务器都“独立”并提供完整的答案。始终在执行任何工作之前重新初始化变量,并且永远不会假设任何事情。我遇到的一个挑战是将网格数据的“页面”拉回给用户。在真正繁忙的系统中,实时发生记录添加/修改,用户在页面之间的导航会有很大差异,有时甚至会导致在查询前面添加新添加内容时查看相同的一些记录集。