Web应用程序优于桌面应用程序的优点

时间:2009-07-02 07:06:25

标签: web-applications

在我正在为之工作的公司中,似乎突然间我们所有的应用程序都需要移植到Web应用程序中。据我所知,唯一的原因是网络应用炒作最终污染了我们的一些决策者。

我是桌面应用程序的粉丝,因为它们更加用户友好。在我看来,它们响应更快,具有更好的用户界面,更具可定制性并且具有更好的键盘支持。我只是看不到自己使用的是Visual Studio或OpenOffice的Web版本。此外,我认为瘦客户端桌面应用程序比他们的网络应用程序更容易实现。

也许我忽略了Web应用程序的一些特性,也许我对上面提到的缺点不正确。因此我的问题是:是否有人可以看到Web应用程序优于桌面应用程序的优势?

更新:到目前为止,有一些有趣的回应。但是请注意我不是在讨论瘦客户端应用程序之间的区别,而只是在开发webbrowser平台与桌面平台之间。

更新:“网络应用程序”我的意思是组合 HTML / CSS / JavaScript ,而不是 丰富的互联网应用程序,如Silverlight。这些与桌面应用程序非常相似,主要区别在于它们在沙箱中运行。

19 个答案:

答案 0 :(得分:58)

  1. Web应用程序可以避免每个客户端计算机中部署的负担。

  2. 不必在客户端计算机中强制执行版本检查

  3. 更新更容易。

  4. 使错误修复更容易。

  5. 没有管理员权限检查

  6. 可以从任何地方访问

  7. 独立于平台

  8. 支持和维护更容易。

  9. 移动应用的适应性

答案 1 :(得分:51)

桌面应用程序提供卓越的用户体验,而不是Web应用程序。

当然每个选项都有其优点和缺点,但您也需要对这些选项进行评分。哪个更重要,用户体验或平台独立性?我们将用户体验评为许多内容。是的,我们正在做出牺牲,但那是生活的一部分。

说服上级的一种方法是向他们证明桌面应用程序的用户体验是光明的,并试图说服他们在制作Web应用程序之前创建桌面应用程序。

我们公司和我们的客户都喜欢在任何一天通过网络应用程序使用桌面应用程序。他们非常愿意接受使用桌面应用程序带来的任何缺点。

我没有像其他人那样在我的答案中列出网络应用程序的优势。 Web应用程序和桌面应用程序都有利有弊。 同时做到这两点!让您的客户选择。请回复统计数据。 ; - )

答案 2 :(得分:23)

我在编写富桌面应用程序和网站方面做了大量的开发。

通常,为桌面应用程序编写代码更容易,有更多可用的控件,您可以更好地控制应用程序的工作方式。

编写Web应用程序确实需要您了解HTML,CSS和Javascript,以及浏览器的限制(或谈论IE时的错误)。你必须担心状态并坚持下去,你可以使用的机制是有限的。

话虽如此,随着时间的推移,我发现自己越来越喜欢编写Web应用程序。平台的局限性使您简化了事情,Web的无状态有助于管理一些复杂性。我的上一个网络项目上线,业务几乎不需要培训,因为非技术人员现在熟悉网页及其工作方式。只需要修复并立即投入使用它也很棒。如果你曾经使用升级桌面应用程序,你无疑会知道它有多复杂和痛苦。

最近,我们在混合策略(Webtop)上取得了一些成功,将主系统编写为网站,然后为需要更多功能的高级用户提供客户端应用程序。这可以托管一个浏览器控件(在windows中你可以轻松地嵌入IE,在OS X中你可以用safari做同样的事情),或者使用API​​。就像Twitter如何为您提供网络版本一样,但高级用户可以使用TweetDeck或其他任何方式。

答案 3 :(得分:19)

  • 所有用户始终使用最新版本
  • 没有盗版
  • 可从用户所在的任何地方访问
  • 跨平台
  • 用户无需安装
  • 您可以轻松衡量用户正在做什么(有多少人使用功能XX等)
  • 如有必要,您可以在用户之间轻松协作,因为所有数据都是集中的

答案 4 :(得分:11)

桌面应用上的网络应用专业版: -

  • 只需要更新一个程序副本。
  • 99%的代码是独立于平台的。
  • 维护,支持和补丁更容易提供
  • 找到客户端计算机可能施加的限制的机会较少
  • 还有更多

桌面应用上的网络应用: -

  • 如果网络连接中断,应用

  • 也是如此
  • 需要学习多种语言才能成功开发应用程序(服务器端脚本,SQL,XHTML / CSS等)

  • 对安全性的需求减少(用户在公司中受到信任,没有“外部威胁”)
  • 需要专用于网络服务器的机器

所有这些只是一些中您可以在此对话中找到的众多专家和内容

答案 5 :(得分:7)

Web和桌面平台都有其优点和缺点。可以为两者做出好的论据。混合应用程序(部分Web,部分桌面)在这方面也有优势/劣势。

应用程序开发应始终由需求驱动,而不是技术趋势或宗教优势或比较广泛的优势/劣势。

是否曾尝试向美国或其他宽带接入不稳定或不存在的国家/地区的用户销售网络应用? :)移动访问怎么样?原生,基于网络还是混合?如果没有互联网连接,那么本地访问数据会怎么样?等

从应用程序要求开始,逐步回到技术领域。当你这样做时,你做出了正确的决定,最终得到了手头项目的最佳平台。

示例:请注意“桌面应用程序提供比Web应用程序更优越的用户体验”。如果要求(A)要求从配备有Web浏览器和Internet访问的任何计算机随时/随时访问,并且(B)还要求类似桌面的性能(例如,不需要页面刷新的实时数据库数据),则( C)开发人员被引导考虑诸如AJAX,Flash,Silverlight,Java甚至是作为浏览器控件加载的本机客户端等技术。

我只是说,需求驱动,而不是技术驱动。

答案 6 :(得分:7)

已经提到很多要点。但有一些我不能完全同意:

  • 部署Web应用程序很简单,但在Microsoft ClickOnce或Java Web Start时,部署桌面应用程序并不复杂。
  • 错误修复是一个Web应用程序并不容易(会话少,在Web服务器进程下运行...)。
  • 在执行安全关键操作或访问硬件时,Web应用程序始终存在一些限制。

答案 7 :(得分:5)

取决于应用程序的类型。如果您有cms应用程序而不能用Web替换(至少某些部分),因为应用程序需要使用本地资源,如打印机,条形码阅读器,财务打印机,显示器等。
因此,对于需要本地资源的此类应用程序,无法替换桌面 对于cms应用程序,桌面应用程序也可以比Web快得多。

想象一个大型超市,很多客户都在等待支付订单并使用网络应用程序支付窗口。我还没见过这样的话。

但也有像Oracle ADF这样的网络框架,它们比桌面设备更具影响力。 使用ADF,您可以构建与桌面应用程序相同的Web应用程序,其方式类似于构建桌面应用程序的方式。但它是否昂贵,学习曲线很高,需要“好”的硬件。

但请记住,如果对于Web,您没有使用经过测试的组件,那么Java脚本对于关键任务应用程序来说就不那么好了,它很容易出错。

答案 8 :(得分:4)

对于我来说,通常完全基于网络的人,使我转向桌面应用程序的因素是硬件集成。如果你需要做的只是阅读和提交数据,网络应用程序是很棒的,但如果要与标签打印机或其他专业硬件接口,桌面应用程序是唯一真正的方法。如果您必须勾选“Web App”复选框,可以将这些链接与Web服务等相关联,但专业硬件支持大部分都在浏览器领域之外,并且它更有意义。使用现有的API来访问它。

答案 9 :(得分:2)

我同意上述观点......

我只是想在网络应用上添加一些专业版: 它看起来不错。你也可以改变主题(只是改变css)可能是桌面应用程序看起来很无聊但一些用户但是wep应用程序,你可以改变主题/设计,它会给你的用户(和老板)留下深刻的印象

  1. 实施起来更便宜。例如,如果使用.NET开发应用程序,则需要安装Windows的客户端。但在Web应用程序中,一旦开发,任何客户端都可以使用任何平台访问您的Web应用程序。

  2. 网络应用程序开发很简单(一旦你了解了css javascript和框架),它可以让你的生活更轻松。

  3. 没有病毒,易于部署/安装客户端。

  4. 缺点: Web应用程序中的UI更复杂,需要javascript和css内容才能创建高质量的UI。

    我建议你不要从头开始创建(这会很痛苦)但是在网络应用中构建新模块。这将是明智的:)

答案 10 :(得分:2)

将应用程序开发为Web方法的主要原因是它比您想要将其与桌面应用程序进行比较更容易访问,但是在执行此操作时,您应该充分了解根据您使用的内容需要。

只有当你打算开发不通过极端机密数据的应用程序时,Web应用程序才是好的,因为网络应用程序在线部署的原因很容易被黑客攻击,而不是将它与桌面应用程序,桌面应用程序可以降低安全风险,而不是网络应用程序虽然已经有安全措施使网站安全,但在一段时间内人们会发现破坏这种安全措施的方法,我相信大多数使用知道最重要的是那些存在于那里的那些铁杆黑客。桌面应用程序也存在安全漏洞,但非常小。

但如果有人真的渴望将网络应用程序用于提供解决方案,那么如果他能够充分了解开发桌面应用程序的人可能会采取同样的风险,那就更好了。

答案 11 :(得分:2)

现在人们选择linux / osx / windows平台独立是一个很大的特点。这有助于瞄准更大的市场

当然,在世界任何地方都可以使用该应用程序的明显优势......为方便起见

答案 12 :(得分:2)

我想提名一个不常识别的网络应用程序的优势。一个设计良好的Web应用程序通常将在线帮助集成到应用程序中 - 您不会发现简洁,难以理解的桌面应用程序与其冗长,混乱的帮助文件之间通常的笨拙区分。这可能是Web开发人员/设计人员和桌面开发人员之间的文化差异。

答案 13 :(得分:2)

我也是桌面应用程序的崇拜者。让我引用一些Web应用程序的缺点:

  1. 与桌面应用程序相比,开发Web应用程序表示逻辑/ UI非常困难。
  2. 不同浏览器的用户体验可能会有所不同。
  3. 延迟操作:在Web和桌面中考虑相同的事务。 Web应用程序可能会延迟寻找更高级别的桌面应用程序(在大多数情况下)
  4. 客户端的CPU利用率:虽然这可能被认为是桌面应用程序的一个缺点,但Web应用程序在使用客户端处理器方面并不具备良好的能力,在某些情况下可以考虑使用客户端处理器来平衡客户端/服务器之间的总处理工作量。

答案 14 :(得分:2)

您对桌面应用程序列出的优势是正确的,还有更多您忘记提及(例如安全性,维护等).Web应用程序的主要优点是它可以通过几乎任何地方的网络浏览器。

Visual WebGui是一个完全针对此问题的解决方案,因为它允许开发桌面(Windows)应用程序并将其作为Web应用程序运行,因此您仍然可以享受桌面开发的优势。部署(直观,响应,用户友好),同时享受Web应用程序的可访问性。

看一看,它可能会为您节省大量时间和麻烦。

答案 15 :(得分:1)

大多数情况下,用户只需要浏览器即可使用您的应用程序。无需部署所有 stuff 应用程序需求,也无需考虑应用程序无法在客户端上运行的原因。

答案 16 :(得分:1)

  • Web应用程序在客户端不需要太多处理要求,因为所有处理都在服务器端进行,浏览器只是视图部分或用户界面。
  • 当每个请求到达服务器并且可以记录时,很容易对Web应用程序进行更改,观察日志信息和用户浏览模式。

答案 17 :(得分:0)

我曾经为我的应用开发桌面界面。在过去的3年里,我已经转向纯粹的Web界面。我是这样做的:

  • 我将核心应用程序编写为服务集合,我通过REST公开。
  • 我写了一个"图书馆"它近似于WxWidgets - 但不是迂腐。
  • GUI是以编程方式构建屏幕的JS代码 - 就像我以前用于桌面应用程序一样。
  • 所有样式/皮肤都是使用CSS类完成的。
  • 目前我使用长轮询进行交互,但计划将来使用WebSockets或WebRTC。

所有用户都使用最新版本的Chrome,只能从公司内部网访问该应用程序。大多数用户都有一个桌面快捷方式,可以将Chrome以全屏模式连接到内部服务器。不那么精明的用户甚至不知道(并且不需要)它不再是桌面应用程序。

答案 18 :(得分:-4)

所有人都同意上述评论。

桌面应用程序可比性的错觉只是浪费时间和时间。对未来带来的东西一无所知。网络应用程序是一个较新的&比桌面应用更好的技术。 10年前几乎没有人使用网络应用程序,除了一些聪明的人。因为它是全新的&实验。 并没有足够的工具来发展更好的&专业的网络应用。 PHP4&它的竞争,许多条件都改变了。我们都需要自我更新。

Btw专业Web应用程序可以处理浏览器依赖性问题。 并且有一个缺失/忽略的点: 您可以使用任何平台/浏览器从任何地方访问。使用SSL更加安全。 我不知道任何具有此功能的专业桌面应用程序。

编辑:语法&标点符号