Web应用程序相对于桌面应用程序的优势

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

我是桌面应用程序的粉丝,因为他们更友好。 在我看来,他们更敏感,拥有更好的用户界面,更具个性化和更好的键盘支持。 我只是无法看到自己使用Visual Studio或OpenOffice的Web版本。 此外,我有一个印象瘦客户端桌面应用程序比他们的networking应用程序更容易实现。

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

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

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

  1. Web应用程序避免了在每个客户端机器上部署的负担。

  2. 不必在客户端机器上执行版本检查

  3. 更新更容易。

  4. 使错误修复更容易。

  5. 没有pipe理员权限检查

  6. 可以从任何地方访问

  7. 平台无关

  8. 支持和维护更容易。

  9. 移动应用程序的适应性。

桌面应用程序比Web应用程序提供了更优越的用户体验。

当然,每个选项都有其优点和缺点,但是您也需要对这些选项进行评分。 哪一个对你更重要,用户体验还是平台独立? 我们评估用户体验以上许多事情。 是的,我们正在做出牺牲,但这是生活的一部分。

说服上司的一个方法是向他们certificate,用户体验是光年前在桌面应用程序,并试图说服他们创build一个桌面应用程序之前,使Web应用程序。

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

与其他人一样,我没有在我的回答中列出Web应用程序的优点。 networking应用程序和桌面应用程序都有优点和缺点。 两个都做! 让你的客户select。 回到我的统计。 😉

我已经做了一些相当丰富的开发工作,编写丰富的桌面应用程序和网站。

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

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

话虽如此,随着时间的推移,我发现自己越来越喜欢写Web应用程序。 平台的局限性使得你简化了一些事情,networking的无状态有助于pipe理一些复杂性。 我的最后一个networking项目上线了,业务几乎不需要培训,因为非技术人员现在熟悉网页及其工作原理。 修好一下,让它直接起作用也是很棒的。 如果你曾经在升级桌面应用程序,你将无疑会知道这是多么复杂和痛苦。

最近,我们在混合策略(webtop)方面取得了一些成功,将主系统写成网站,然后为需要更多function的高级用户提供客户端应用程序。 这可以托pipe一个浏览器控件(在Windows中,您可以轻松地embeddedIE,在OS X中,您可以使用safari执行相同操作),也可以使用API​​。 就像Twitter给你一个网页版本,但强大的用户可以使用TweetDeck或任何其他。

  • 所有用户始终使用最新版本
  • 没有盗版
  • 无论您的用户在哪里,都可以访问
  • 跨平台
  • 用户不需要安装
  • 你可以很容易地测量你的用户在做什么(有多less人正在使用functionXX等)
  • 如果有必要,您可以在用户之间提供简单的协作,因为所有数据都是集中的

Pro的桌面应用程序的Web应用程序的 : –

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

在桌面应用程序的Web应用程序的Con : –

  • 如果networking连接断开,应用程序也是如此

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

  • 减less安全需求(用户在公司中是值得信赖的,没有“外部威胁”)
  • 需要Web服务器的专用机器

所有这一切只是你在这次谈话中可以find的许多专业和服务的一部分

已经提到了很多点。 但有几个我不能完全同意:

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

Web和桌面平台都有其优点和缺点。 可以为两者提供良好的论据。 混合应用(部分网页,部分桌面)在这方面也有优点/缺点。

应用程序开发应始终由需求驱动,而不是技术趋势或宗教偏好或比较普遍的优点/缺点。

曾经试图向美国或其他宽带接入有缺陷或不存在的国家的人们销售networking应用? :)移动访问呢? 本机,基于Web还是混合? 如果没有互联网连接,如果需要,本地访问数据又如何呢? 等等。

从应用程序要求开始,回到技术上来。 当你这样做的时候,你做出了正确的决定,并最终为当前项目提供了最好的平台。

示例:请参阅以下评论:“桌面应用程序提供了远远优于Web应用程序的用户体验”。 如果要求(A)要求从配备有networking浏览器和因特网访问的任何计算机随时随地访问,并且(B)还要求类似桌面的性能(例如,不需要页面刷新的实时数据库数据),则C)引导开发人员考虑诸如AJAX,Flash,Silverlight,Java甚至是本地客户端的技术,这些技术加载为浏览器控件。

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

取决于应用程序的types。 如果您有cms应用程序,则不能用web(至less某些部分)replace,因为应用程序需要使用打印机,条形码阅读器,财务打印机,显示器等本地资源。
所以,对于需要本地资源的这种types的应用程序,桌面不能被replace。
此外,桌面应用程序可以比网站,cms应用程序更快。

设想一个大型超市有很多客户在等待支付订单,并通过networking应用程序付款。 我还没有看到这样的事情。

但是也有像Oracle ADF这样的Web框架比桌面系统更有效。 使用ADF,您可以使用类似于桌面应用程序构build方式的方式构build与桌面应用程序完全相同的Web应用程序。 但昂贵,学习曲线高,需要“好”的硬件。

但请记住,如果对于Web,您不使用testing的组件Java脚本不太适合任务关键型应用程序,这是错误的倾向。

对于我来说,谁通常是完全基于networking的,使我摆脱桌面应用的因素是硬件集成。 如果您只需要阅读和提交数据,那么Web应用程序就非常棒,但如果需要与标签打印机或其他专业硬件进行连接,则桌面应用程序是唯一真正的方法。 如果您绝对必须勾选“Web应用程序”checkbox,您可以将它们与Web服务或类似链接相关联,但专家硬件支持绝大部分不在浏览器范围之内,而且更为合理使用现有的API来访问它。

这些日子里selectlinux / osx / windows平台独立的人是一大特色。 这有助于瞄准更大的市场

当然,这个应用程序在世界上任何地方都可以使用,这是显而易见的

我同意上面的观点

我只是想添加一些亲在networking应用程序:1.它看起来不错。 你可以改变主题以及(只是改变的CSS)可能是桌面应用程序将看起来无聊的一些用户,但是我们的应用程序,你可以改变主题/devise,它会打动你的用户(和老板)

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

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

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

缺点:networking应用程序中的用户界面更加复杂,需要javascript和css的东西来提高用户界面的质量。

我build议你不要从头开始创build(这会很痛苦),而是在web应用程序中构build新的模块。 这将是明智的:)

将应用程序开发为Web方法的主要原因是,它比您想要将其与桌面应用程序进行比较的可访问性更强,但是这样做时应根据您的需要充分了解要使用的内容。

networking应用程序只有在您开发的应用程序不会传递非常机密的数据时才是有益的,因为networking应用程序在线部署的原因很容易受到黑客的攻击,如果您将其与桌面应用程序进行比较,桌面应用程序可以降低networking应用程序的安全风险,虽然已经有安全措施来保证网站的安全,但是在一段时间内人们会发现破坏这种安全措施的方法,而且我相信大部分的使用知道这个特别是那些在那里存在的硬核黑客。 桌面应用程序也有安全漏洞,但非常小。

但是,如果有人真的渴望采用networking应用程序来提供解决scheme,那么如果他充分了解开发桌面应用程序的人员也可能采取同样的风险,那将会更好。

我想提名一个不常被认可的Web应用程序的优势。 一个devise良好的Web应用程序通常会将在线帮助集成到应用程序中 – 在简洁,难以理解的桌面应用程序及其冗长,无序的帮助文件之间,您找不到通常笨拙的区分。 这可能是Web开发人员/devise人员和桌面开发人员之间的文化差异。

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

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

对于桌面应用程序列出的优点,你是对的,而且还有更多的你忘了提及(比如安全性,维护等)。Web应用程序的主要优点是可以通过Web浏览器从Web浏览器几乎在任何地方。

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

看一下,它可以为您节省很多时间和麻烦。

大多数时候用户只需要一个浏览器来使用你的应用程序。 不需要部署所有的应用程序需求,也不需要考虑为什么你的应用程序不能在客户端上工作。

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

我曾经开发桌面接口到我的应用程序。 在过去的三年中,我已经转向纯Web界面。 我是这样做的:

  • 我将核心应用程序编写为一系列服务,我通过REST公开了这些服务。
  • 我写了一个近似WxWidgets的“图书馆” – 但不是那么迂腐。
  • GUI是以编程方式构build屏幕的JS代码 – 就像我以前用于桌面应用程序一样。
  • 所有样式/皮肤都使用CSS类来完成。
  • 目前我使用长轮询进行交互,但是计划在未来使用WebSocket或WebRTC。

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

大家都同意上面的意见。

桌面应用程序的可比性的错觉只是浪费时间,对未来将会带来的影响一无所知。 Web应用程序是比桌面应用程序更新,更好的技术。 10年前,几乎没有人使用networking应用程序,除了一些聪明的家伙。 因为这是全新的实验。 并没有足够的工具来开发更好的和专业的Web应用程序。 随着PHP4及其竞争,许多条件发生了变化。 我们都需要更新自己。

btw专业的networking应用程序可以处理浏览器依赖问题。 而且还有一个缺失/忽视的地方:你可以随时随地使用任何平台/浏览器进行访问。 SSL更安全。 我不知道任何专业的桌面应用程序。 与此function。

[添加剂]显然无知没有限制…尝试下面的链接。 http://answers.google.com/answers/threadview/id/747326.html