为什么Web应用程序普遍适用于内部企业应用程序?

时间:2010-01-20 01:37:11

标签: web-applications desktop-application

好的,我意识到人们不喜欢在他们的PC上安装东西,如果他们不需要,这是网络应用程序优于本地运行的“桌面”的主要优势。

但对于安全性不成问题的企业内部应用程序,如果某个应用程序的用户群在100%的时间内拥有该应用程序,并将其专门用作主要工具,则桌面应用程序不会是更好的选择?

我对WPF Web应用程序没有任何经验/了解,但我的印象是它本质上是一个在Windows PC上本地运行的应用程序。我更熟悉可能是旧技术,WinForms,特别是通过ClickOnce技术部署WinForm应用程序。

在我看来,Click-Once(可能是WPF Web Apps)实际上解决了过去的dll地狱部署问题,但在我看来,内部使用Web应用程序的吸引力是避免与本地安装相关的dll地狱。然而,随着这个问题的解决,为什么公司仍然避免/担心涉及本地安装的应用程序并且如此迅速地吸引到网络应用程序?

在我看来,桌面应用程序的优点是

1)COST - 桌面应用程序在概念上更简单,因为您拥有本地计算机的全部资源并且您拥有状态。因此,桌面应用程序可以更便宜地开发相同的功能。只需看看所有复杂的客户端/服务器端的Ajax花式代码,就可以在桌面应用程序中执行一些微不足道的操作。我认为人们对这一点提出异议,但对我而言,这显然是无可争议的。

2)桌面应用程序通常更丰富。 Web应用程序最好具有可比性,代价是开发代码更复杂/更昂贵。 (1的证据)

我可以列出更多,但这些应该足够......

显然,桌面应用程序并不适合所有内部网站。但请以此为例告诉我您是否认为Web部署的桌面应用程序是更好的选择:

用户每天8小时/天使用帮助台应用程序,这是其PC上运行的唯一应用程序。此外,应用程序很少修补。

我的感觉是,人们会陷入困境,一旦他们知道某些事情(例如,网络应用程序),它就是一切的解决方案。你说什么?

编辑#1:Here's一个Click Once桌面应用程序(Rational Clearquest / Sharepoint / PVCS / Mercury的集成前端,用于管理问题故障单)的一个示例,它利用客户端的计算机能力在本地存储信息并让用户以不同的方式对数据进行切片和切块,每次都不会点击服务器,同时仍然允许用户将实时链接到实时数据以更新单个记录。这有点像电子表格下载,如果用户想要执行更新,它会维护到服务器数据的链接。

当然你可以在网上模仿这个功能,但我认为开发工作会更大,你不会得到这种类型的响应,这对于在应用程序上花费大量时间的用户来说非常重要

11 个答案:

答案 0 :(得分:21)

Web应用程序非常流行,原因有很多:

  1. 易于保护
  2. 它创建了一个每个人都可以访问的标准参考点:
  3. 不会锁定使用不同平台的人。
  4. 人们更容易从网络外部访问(它将安全问题放到路由器/ VPN等)
  5. 较少的技术支持(标准运行平台)
  6. 更容易支持(如果它下降,那么你就有一个可以修复它的关键响应团队,而不是1000个随机出现的机器)
  7. 数据存储的中心点(更易于备份和访问)
  8. 可以更好地扩展
  9. 更容易构建或重用企业框架,而不是查找/创建分布式组件集以适应不断变化的环境(LDAP,不同的dbs,不同的备份,同步)
  10. 受攻击者较少(蠕虫,人们修改客户等)
  11. 桌面客户端有时可能具有硬编码环境,或者需要某些工具集,这会使新用户难以设置
  12. 处理服务器而不是1000多个客户端的成本更低。您可以将系统设置为还原剂并具有快速故障。是的,服务器设备的成本更高,但从长远来看,维护成本更低。

答案 1 :(得分:16)

  

为什么网络应用程序普遍适用于内部企业应用程序?

主要是因为Web应用程序的集中部署模型解决了旧的胖客户端应用程序(机器规格,可用库,驱动程序等)的部署噩梦。我见过公司,当他们完成部署时,安装的最后一台机器已经比第一台机器提前两个版本。通过客户端上的浏览器(即跨平台执行环境)和集中部署,您只需消除这些问题。欢迎来到瘦客户端时代。

现在,我不相信桌面应用程序通常更便宜(我不知道开发是否更便宜,但我确信维护,支持......不是)。

但我同意桌面应用程序通常更丰富。无论人们会说什么,这个都不是可以说是在AJAX问世之前,这仍然适用在一些浏览器不合适的特定领域,无论是否有AJAX(让交易者使用浏览器,你会看到)。有些人想要一个页面流范例,有些人需要高级小部件(例如具有高级过滤,分组,Excel等基本公式等功能的网格组件) ,或低延迟,或实时等,即富互联网应用程序 - 或RIA - 并非真正制作的东西,因此不是正确的选择工具!

我同意Java WebStart或Microsoft ClickOnce等技术可以解决旧的部署问题并允许开发所谓的Rich Desktop Applications(或RDA) - 客户端上的富桌面UI,服务器上的业务,标准协议它们之间的集中部署,所以仍然是一个瘦客户端),这似乎是一个很好的折衷方案(更好的用户体验,但没有头痛)。

那么为什么人们会系统地省略RDA选项呢?好吧,我相信:

  1. 我们(IT专业人士)教过人们如何创建互联网应用程序,以便他们(重新)做到这一点。
  2. 解释互联网,瘦客户端,AJAX,RIA等已经足够复杂,而且RDA的传播也不多。所以大多数人都不知道RDA是什么。
  3. 我们(IT专业人士)不断说出一些事情和它的相反:不要使用胖客户端,它很糟糕,使用瘦客户端,它规则,不使用javascript,它很糟糕(前AJAX时代),使用javascript ,它规则(后AJAX时代),不使用瘦客户端(!),它很糟糕,使用丰富的桌面应用程序,它规则等。即使这里存在逻辑,这也会使一些概念(如RDA)最终难以卖给非技术人员。
  4. 即使事情发生了变化,人们也不会忘记容易(胖客户)的不良经历。
  5. 人们实际上并不需要RDA让我们说95%的情况。
  6. RDA开发人员比RDA开发人员多。
  7. 所以这是我们(我们,IT专业人员)的错误:)

答案 2 :(得分:11)

我同意Web应用程序更快开发 - 除非您有多个支持的操作系统或数据库连接,这基本上适用于我所做的一切。

  1. 我的用户中有20%没有运行 视窗。
  2. 100%的用户想要 使用家里的内联网应用程序。
  3. 100%的用户希望看到他们的 个人数据无论在哪里 他们正在联系。
  4. 没有人喜欢被告知“请等我们升级到3.0.1版本”
  5. 文档创建程序(包括图形程序)显然更适合桌面,尽管您会想到Google Docs。您不希望远程运行声音或视频编辑器。但是,工作越不个人化 - 协作越多(公司) - 网络应用程序就越有意义。

答案 3 :(得分:6)

  • 更快的开发时间
  • 易于部署(您可能会部署几次)
  • 某些公司IT小组不允许用户安装应用程序

**** ****编辑

  • 更容易保证应用程序到数据库的网络性能
  • 数据库更安全
  • 更容易解释如何启动应用程序
  • 无需存储或安装额外的库(通常)
  • 易于维护(由开发人员和IT人员)

答案 4 :(得分:3)

  1. Web应用程序更容易更新。内部开发团队可以在用户不注意的情况下更新站点。
  2. Web应用程序通常比胖客户端使用更少的带宽。如果您在路上有多个办事处或销售人员,带宽很重要。尝试使用(最糟糕的情况,我能想到)MS Access连接到1mb线路上的远程数据库 - 它不起作用。

答案 5 :(得分:3)

根据我的经验,这主要是为了便于分发。我从事过包装,配送物流和个别系统调试工作,这些应用程序需要交付给多个地点的数千人。头痛这个词没有经验正义。

之后,我为同一家公司创建了一个webapp。它也被成千上万的人使用。完成应用程序的开发和测试后,整个分发过程包括:1)部署到prod; 2)将URL发送给每个人。让每个人都能访问网络应用程序,以及支持问题的一小部分,这样容易得多。

答案 6 :(得分:2)

大多数“公司”类型的应用程序不会因为本地化而受益匪浅。它们通常不需要加速视频等。它们主要是数据查看和数据输入。实际上,易于部署,集中管理等方面的重点是减轻本地桌面应用程序的任何好处。

答案 7 :(得分:1)

它还为应用程序提供了更轻松的可扩展性和可靠性。通过将其放在备份服务器(可能在集群中),您可以使用单个源进行部署(@Gabriel),并且您可以更少地担心系统维护。你不必担心玛丽的大厅里的电脑太慢而无法运行应用程序。它还降低了对数据源的访问/安全性要求。通过新的MVC,n层等网站开发,数据访问被分配到一个单一的层,而不是每个有读取权限的tom / dick / harry都会烦恼。

答案 8 :(得分:1)

让我们考虑一下您的回复 1)COST - 桌面应用程序在概念上更简单,因为您拥有本地计算机的全部资源并且您拥有状态。因此,桌面应用程序可以更便宜地开发相同的功能。只需看看所有复杂的客户端/服务器端的Ajax花式代码,就可以在桌面应用程序中执行一些微不足道的操作。我认为人们对这一点提出异议,但对我而言,这显然是无可争议的。

您不考虑实施成本和维护。桌面应用程序需要在安装它的每台计算机上进行维护。在大多数情况下,这需要在每个系统上配置。美元快速增加。

对于Web应用程序,应用程序是一个浏览器。每台机器都可以通过浏览器轻松配置,并保持较低的成本。

2)桌面应用程序通常更丰富。 Web应用程序最好具有可比性,代价是开发代码更复杂/更昂贵。 (1的证据)

我不同意桌面应用程序通常更丰富。借助较新的技术,Web应用程序可以包含丰富的用户界面和功能,并且开发成本最低。

答案 9 :(得分:1)

  • 因为网络是通用平台,而客户端操作系统则不是。
  • 因为开发和维护服务器端代码比开发和维护服务器端和客户端代码更容易。
  • 因为网络稳定且基于标准,而客户端操作系统是专有的并且不断发展。
  • 因为网络将超过您当前的IT政策和公司结构。 (当您与B公司合并,并且有5,000名员工使用他们的Chromebook时,您的Windows智能应用程序看起来不那么聪明。)
  • 因为99%的企业应用程序是CRUD应用程序。如果需要客户端数据操作,请转储到Excel。
  • 因为好运找到Windows客户端开发人员。金钱,行动和人才都在网络和移动中。

答案 10 :(得分:-2)

对于问题的答案,平台/浏览器独立性非常不正确。

许多答案未提及的是,很多组织将创建和使用针对特定浏览器某个版本的Web应用程序。更容易开发只能在1个Web浏览器中正常工作的内容。示例:IE5,IE7等......

我到处都看到这一点,因此在很多情况下,Web应用程序可以在Intranet环境中的任何平台/浏览器上运行都是错误的,因为面向内部的Web应用程序通常仅在公司内使用,因此公司的内部策略是通常在某个平台和浏览器上标准化。

由于这个原因,开发人员将仅针对某个浏览器/平台编写和测试他们的Web应用程序。

我认为此评论否定了上述任何解释为什么在企业内部网中使用Web应用程序的评论。