2008-09-21 142 views
4

我要为我工作的阵营编写数据库应用程序。我正在考虑用C#编写一个Windows GUI界面,但使用浏览器作为应用程序似乎越来越多的出现,出于各种原因。我想知道的是为什么有人不会选择将应用程序编写为Web应用程序。防爆。后退按钮可能会导致一些麻烦。还有其他的事情可以想象吗?基于Web的应用程序有什么缺点

+0

更具体。给我们提供这种情况,我们可以告诉你未来的web应用程序的缺点是什么。 – Dustman 2008-09-21 22:49:59

回答

9

有很多缺点的:

  • 速度和反应往往是显著恶化
  • 复杂的UI控件(如树形控件)很难做
  • 任何类型的渲染图形都非常棘手,3D图形更难
  • 你必须与登录勾搭
  • 一个集中的服务器意味着客户总是需要网络接入
  • 安全限制可能会导致你的麻烦
  • 浏览器不兼容会导致大量的额外工作
  • UI约定不太好-defined在网络上 - 用户可能会发现很难用
  • 客户端存储有限

的问题是..做的不够那些适用于你的项目到m网络错误的选择?

+0

我打算建议HTML5离线缓存意味着您不必访问网络就可以使用网络应用程序,也不会有响应问题,但后来我记得IE总是在那里破坏乐趣。 Chrome框架是一个拼凑解决方案,但它并不理想。 – 2010-07-18 18:15:42

+0

我真的很好奇如何在Web应用程序中完成绘图。是否有某种内置的画布控制?通过用户的浏览器使用什么来绘制? 我认为directx和opengl不可用? 有什么用?像web框架有典型的列表框,TreeView样式控件,我将在WPF中? – 2017-11-16 03:07:56

0

您需要有网络访问服务器,您将拥有该Web应用程序(如果将有多个用户的应用程序 - 通常是这种情况)。

其实,还有比缺点多优点 - 如果你可以给你的应用程序的一些细节,我们可以帮助更多一点......

1

本质上真正局限是只能通过该平台,作为浏览器。如果您必须考虑目前使用的所有浏览器,由于每种浏览器都有不同程度的标准,这可能是一种痛苦。

如果能控制使用哪个浏览器,也就是说每个人都在现场控制的计算机上,并说你在所有的计算机上安装了firefox,那么你就可以充分利用最新的Javascript和CSS标准您的内容交付。

您还可以查看诸如adobe集成运行时或“AIR”之类的选项,从而使您可以使用基于传统浏览器的选项(如xhtml/css/javascript,flash/flex)编写前端代码后端连接到您的数据库在线,只同时提供传统桌面应用程序的功能。

0

它完全取决于您的项目的要求。大多数情况下,目前没有太多的Web应用程序无法做到。无可否认,某些应用程序确实属于桌面浏览器(虽然目前正在快速推进),但仍然还没有完成。从应用程序的出现,如Google Docs,Gmail

在网络上没有太多你不能做的事情。但是,如果你正在创造一个魔兽世界的竞争者,那么网络肯定不是最佳解决方案。再次,不幸的是,我们需要更多的洞察你正在为阵营建立的应用程序。关于网络的最好的部分是任何使用浏览器的人都可以使用你的应用程序。

0

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

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

浏览器兼容性也是一件麻烦事。您无法100%控制应用程序的外观和风格。

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

0

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

对于数据量较大的应用程序,由于您集中存储了大量用户数据,所以性能可能会成为一个主要问题,这意味着IO性能将不如其全部数据一样好一台笔记本电脑。

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

0

你可以做一个可怕的很多与基于Web的应用程序,但它是一个更容易做某些事情有一个胖客户端:

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

决定一个web应用程序是否是一个好方法取决于你试图达到的目标。不过这里是Web应用程序的一些更普遍的缺点:

  • 与桌面应用程序(如Outlook)中真正的融合是不可能
  • 拖放您的应用程序和桌面/其他正在运行的应用程序之间
0

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

除此之外,还有很多安全问题,如中间人攻击,XSS或SQL注入。

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

1

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

0

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

您必须对此具体说明。很多人在他们的Web应用程序中犯了根本性的错误,并在他们处理事务的方式上引入了错误。如果您不使用“Post after后重定向”(也称为Post-Redirect-Get,PRG设计),那么您已经创建了一个错误,它显示为后退按钮出现问题。

毛病的声明,麻烦的后退按钮不可能是真实的。一个具体的例子可以澄清你的具体问题。

+0

这是非常恼人的轻浮。你似乎建议“哦,当然,后退按钮从来没有任何问题,你是个白痴。”这只是个蠢话。说明“后退按钮会给你带来麻烦”几乎是一样的“OMG后退按钮无法解决!” – BobbyShaftoe 2008-12-17 23:18:59

0

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

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

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

2

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

相关问题