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


79

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

我喜欢桌面应用程序,因为它们更加用户友好。在我看来,它们反应更快,具有更好的用户界面,更可自定义并且具有更好的键盘支持。我只是看不到自己使用Web版本的Visual Studio或OpenOffice。此外,我给人的印象是瘦客户端桌面应用程序比其Web应用程序更容易实现。

也许我忽略了Web应用程序的某些特质,也许我对上面提到的缺点不正确。因此,我的问题是:有谁能看到Web应用程序相对于桌面应用程序的优势?

更新:到目前为止,已经收到了一些有趣的答复。但是请注意,我并不是在讨论瘦客户端应用程序与胖客户端应用程序之间的区别,而只是在针对Web浏览器平台开发与台式机平台开发之间的区别。

更新: “ Web应用程序”是指HTML / CSS / JavaScript的组合,而不是诸如Silverlight之类的富Internet应用程序。它们与桌面应用程序非常相似,主要区别在于它们在沙盒中运行。

Answers:


63
  1. Web应用程序避免了在每台客户端计算机中进行部署的负担。

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

  3. 更新更容易。

  4. 使错误修复更加容易。

  5. 没有管理员权限检查

  6. 可以从任何地方访问

  7. 平台无关

  8. 支持和维护更加容易。

  9. 移动应用中的适应性。


3
“使错误修复更容易”:您是什么意思?我认为瘦客户机桌面应用程序可以同样容易地更新。
Dimitri C.

65
与平台无关,但有时取决于浏览器:)
Canavar

19
“可以从任何地方访问。” -假设您已连接到互联网...我认为这是Web应用程序的巨大缺点之一。使用桌面应用程序后,将它们安装在计算机上后,便可以随时随地访问它们。网络应用并非如此。而且我们甚至都没有提到连接速度...
Steve Harrison

7
要1 .:在互联网和方便的安装程序中这不是负担。要3 .:如果桌面应用程序(连接到互联网)可以轻松解决问题(检查,询问用户,安装)。到4 .:依赖于错误...如果您构建了一个高端Web应用程序,该应用程序启用了桌面标准(例如drag'n drop以及其他使用Java脚本的标准),则修复可能真的很麻烦。至7 .:不!还有更多的平台依赖性:“ OS上的浏览器”
Kai Huppmann

4
@Canavar如果将其内部App转换为Web App,则通常可以保证IT可以控制浏览器+版本。得益于JS库,为多个浏览器进行编码并不是那么困难。如果您是一位足够优秀的Web设计人员/开发人员,那么对IE6以后的所有内容进行CSS编码都不是那么困难。
克里斯·麦基

56

桌面应用程序给一个不止网上应用提供卓越的用户体验。

当然,每个选项都有其优点和缺点,但您也需要对其进行评分。用户体验或平台独立性对您而言哪个更重要?我们对用户体验的评价高于一切。是的,我们正在做出牺牲,但这是生活的一部分。

一种说服您的上司的方法是向他们证明,在桌面应用程序上的用户体验要比以前快几年,并尝试说服他们创建桌面应用程序。 制作Web应用之前程序。

我们公司都有客户,我们的客户每天都比桌面应用程序更喜欢桌面应用程序。他们非常愿意接受使用桌面应用程序带来的任何缺点。

我没有像其他人一样在回答中列出网络应用程序的优势。Web应用程序和桌面应用程序各有利弊。 两者都做! 让您的客户选择。回到统计上。;-)


7
我认为这是个好主意,尽管很多公司仅仅因为它占用了更多的工时而对此表示
不满

1
如果桌面应用程序天生具有优势,您如何解释许多人将其邮件从Outlook / Exchange转发到gmail?
Joeri Sebrechts,2009年

3
@Joeri答案的关键是两种技术都有自己的位置。交换电子邮件就是一个很好的例子。在工作中,我使用Outlook阅读交换邮件,在其他任何地方,我都使用OWA Web客户端。
菲利普·恩根

1
快进2019!仍然是正确的。技术的不利方面是整个领域充满了Web开发人员,他们从未开发过任何桌面应用程序,因此他们所做的只是将旧的过时的桌面应用程序转换为Web应用程序。有多少%的Web应用程序具有拖放或上下文菜单?有多少个网站内置了缓存,可以保留在客户端计算机中以便重新启动?尝试将数据网格从一页复制并粘贴到另一页?控件的键盘快捷键?还有很多,20年后仍然缺少Web用户体验的基础!!!
digitally_inspired

单页面应用程序(SPA)之后,Web用户体验已经发生了变化。这非常类似于当今的桌面应用程序。
汤姆(Tom)

27

我已经做了很多开发工作,同时编写了丰富的桌面应用程序和网站。

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

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

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

最近,我们在混合策略(Webtop)方面取得了一些成功,该策略将主系统编写为网站,但随后为需要更多功能的高级用户提供了客户端应用程序。这既可以托管浏览器控件(在Windows中,您可以轻松地嵌入IE,在OS X中,您也可以使用safari进行相同的操作),也可以使用API​​。就像Twitter如何为您提供网络版本一样,但是高级用户可以使用TweetDeck或其他工具。


1
非常有趣的答案。非常感谢。
Dimitri C.

1
“升级复杂而痛苦的桌面应用程序”:我维护了其中一个主要应用程序的安装程序。要使大型版本的更新成为可能确实困难。但这是因为它会更新我们的完整应用程序。我认为,当我们只需要更新瘦客户机时,这将相当容易。
Dimitri C.

1
当然,我想这取决于桌面应用程序的类型。昨天我花了太多时间试图解决仅影响几个客户端的数据库升级错误……
Dave Glassborow

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

16
“用户始终使用最新版本”:我们的桌面应用程序会自动更新。
Dimitri C.

12
“无盗版”:瘦客户端桌面应用程序可以自由复制,只要不分发服务器组件即可。
Dimitri C.

14
“跨平台”:Java桌面应用程序也是跨平台的。
Dimitri C.

3
@Dimitri,我从未说过台式机应用程序无法完成我列出的内容。但是在网络应用程序中,您可以免费获得它。
truppo

5
“所有数据都是集中的”:如果选择编写瘦客户端桌面应用程序,则将获得相同的优势。
Dimitri C.

11

专业版的Web应用程序优于桌面应用程序:-

  • 只需复制一个程序副本即可。
  • 99%的代码与平台无关。
  • 维护,支持和补丁更容易提供
  • 查找客户端计算机可能施加的限制的机会较少
  • 再加上更多

Web应用程序在桌面应用程序上的缺点:-

  • 如果网络连接断开,则该应用程序也断开

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

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

所有这些只是您可以在此对话中找到的许多优点和缺点中的几个


7

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

应用程序开发应始终受需求驱动,而不应受技术趋势或宗教偏好或相对普遍的优势/劣势的驱动。

是否曾经尝试过将网络应用程序出售给美国或其他国家或地区的宽带访问不完善或根本不存在的人们?:)那么移动访问呢?本机,基于Web还是混合?如果没有互联网连接,那么本地访问数据该怎么办?等等。

从应用程序需求开始,然后逐步回到该技术。当您这样做时,您将做出正确的决定,并最终获得针对该项目的最佳平台。

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

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


7

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

  • Web应用程序的部署很容易,但是在Microsoft ClickOnce或Java Web Start时代,部署桌面应用程序并不复杂。
  • 错误修复是一个Web应用程序,并不是真正容易的事情(会话减少,在Web服务器进程下运行...)。
  • Web应用程序在执行安全性至关重要的操作或访问硬件时总是有一些限制。

1
您将错误修复视为问题而不是优势是正确的。Web应用程序可能有太多变量。如果没有与最终用户完全相同的设置,您甚至可能无法重现该错误。当然,如果您在组织内部进行部署,则这更可控,但是随后,Web应用程序的其他大多数优势也会消失。
Noel Walters

5

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

想象一下一个大型超市,那里有许多客户在等待支付订单和使用Web应用程序支付窗口费用。我还没看过这样的东西。

但是,还有像Oracle ADF这样的Web框架具有比桌面assp更大的影响范围。使用ADF,您可以构建与桌面应用程序相同的Web应用程序,其方式类似于构建桌面应用程序的方式。但这是昂贵的,学习曲线很高,需要“好的”硬件。

但是请记住,如果对于Web而言,您未使用经过测试的组件,那么Java脚本对于关键任务应用程序而言并不是很好,它容易出错。


4

对我来说,通常完全基于网络,对我来说,转向台式机应用程序的因素是硬件集成。如果您需要做的就是读取和提交数据,那么Web应用程序将非常有用,但是如果要与标签打印机或其他专用硬件进行交互,那么桌面应用程序是唯一可行的方法。如果绝对必须选中“ Web App”复选框,则可以将这些链接与Web服务等连接,但是专家硬件支持绝大部分不在浏览器领域之内,对于使用现有的API进行访问。


2

如今,人们选择linux / osx / windows平台独立性是一个很大的功能。这有助于瞄准更大的市场

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


2
Web应用程序是否必须在可移植性问题上进行同样的处理(例如,在Internet Explorer和Firefox之间)?
Dimitri C.

您可以限制用户只使用firefox,因为它是为内部公司使用的(我这样做是为了让我始终建议我的用户使用firefox或chrome)
nightingale2k1

1
JQuery为您解决了Javascript不一致问题,响应式设计框架(如Twitter-BootStrap)解决了html / css不一致问题。如果您要构建基于Web的软件并使用这些工具,那么您几乎不必在浏览器级别处理不一致问题。
dendini 2013年

2

我同意以上几点...

我只想在Web应用程序上添加一些专业功能:1.看起来不错。您也可以更改主题(只需更改CSS),可能桌面应用程序对某些用户来说很无聊,但wep应用程序,您可以更改主题/设计,它会给您的用户(和老板)留下深刻的印象

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

  2. Web应用程序开发非常简单(一旦您了解CSS JavaScript和框架),它可以使您的生活更轻松。

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

缺点:Web应用程序中的UI更复杂,需要具备javascript和CSS内容的能力才能制作出高质量的UI。

我建议您不要从头开始创建(那样会很痛苦),而是在Web应用程序中构建新模块。那将是明智的:)


2
没有病毒,但是具有足够的蠕虫,毁损和其他基于XSS,CSRF,SQL注入等漏洞的利用范围。
Noel Walters 2010年

1
“便宜”也不是绝对正确的:如果您创建一个应具有良好用户体验并与所有主要浏览器和移动设备兼容的Web应用程序,则需要进行大量调整才能使其正确。这确实比为osx / ios / win / linux创建应用程序便宜,但是创建Web应用程序的用户希望它可以在所选的特定浏览器上平稳运行。桌面应用程序有限的操作系统范围更容易解释。
faester

2

将应用程序开发为Web方法的主要原因是,与假设您将其与桌面应用程序进行比较相比,它更易于访问,但是这样做时,应充分了解根据需要使用什么。

仅当您要开发不会传递极机密数据的应用程序时,Web应用程序才是好的。由于Web应用程序是在线部署的,因此与将其与桌面应用程序进行比较相比,它们更容易受到黑客的攻击,桌面应用程序可以比Web应用程序减少安全风险,尽管已经有确保网站安全的安全措施,但是随着时间的流逝,人们会发现破坏这种安全措施的方法,而且我相信大多数用户都知道大多数尤其是那些在那里存在的铁杆黑客。桌面应用程序也确实存在安全漏洞,但是非常少。

但是,如果有人真的很想使用Web应用程序来提供解决方案,那么最好是他充分了解这种风险,这对于开发桌面应用程序的人可能也要承担同样的风险。


2

我想提名一种不太常见的Web应用程序优势。一个设计良好的Web应用程序通常将在线帮助集成到该应用程序中-您不会在笨拙,难以理解的桌面应用程序及其冗长,混乱的帮助文件之间找到通常的笨拙划分。这也许是Web开发人员/设计人员与桌面开发人员之间的文化差异。


2

我也是台式机应用程序的崇拜者。让我列举一些Web应用程序的缺点:

  1. 与桌面应用程序相比,开发Web应用程序表示逻辑/ UI太困难了。
  2. 不同浏览器中的用户体验可能会有所不同。
  3. 延迟的操作:考虑在Web和桌面上进行相同的事务。Web应用程序可能会延迟搜索Web服务器的延迟,而这在桌面应用程序中更为重要(在大多数情况下)
  4. 客户端的CPU使用率:尽管这可能被认为是台式机应用程序的缺点,但是Web应用程序在利用客户端处理器方面不具备良好的功能,在某些情况下,可以考虑使用此功能来平衡客户端/服务器之间的总处理工作量。

1
我认为您的列表中有些现在已经过时了:/
risyasin 2013年

2

您对列出的桌面应用程序的那些优点是正确的,而您甚至忘记提及的更多优点(例如安全性,维护等)。Web应用程序的主要优点是可以通过Web浏览器从几乎在任何地方。

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

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


1

大多数情况下,用户仅需要浏览器即可使用您的应用程序。无需部署所有填充应用程序需求,也无需考虑为什么您的应用程序无法在客户端上运行。


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

1
“ Web应用程序在客户端不需要太多处理要求”:完全可以编写瘦客户端桌面应用程序。
Dimitri C.

0

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

  • 我将核心应用程序编写为服务集合,并通过REST公开了这些服务。
  • 我写了一个类似于WxWidgets的“库”,但不是书呆子。
  • GUI是JS代码,可通过编程方式构建屏幕-就像我以前在台式机应用程序中一样。
  • 所有样式/外观都使用CSS类完成。
  • 目前,我使用长轮询进行交互,但计划将来使用WebSockets或WebRTC。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.