好的,我意识到人们不喜欢在他们的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的集成前端,用于管理问题故障单)的一个示例,它利用客户端的计算机能力在本地存储信息并让用户以不同的方式对数据进行切片和切块,每次都不会点击服务器,同时仍然允许用户将实时链接到实时数据以更新单个记录。这有点像电子表格下载,如果用户想要执行更新,它会维护到服务器数据的链接。
当然你可以在网上模仿这个功能,但我认为开发工作会更大,你不会得到这种类型的响应,这对于在应用程序上花费大量时间的用户来说非常重要
答案 0 :(得分:21)
Web应用程序非常流行,原因有很多:
答案 1 :(得分:16)
为什么网络应用程序普遍适用于内部企业应用程序?
主要是因为Web应用程序的集中部署模型解决了旧的胖客户端应用程序(机器规格,可用库,驱动程序等)的部署噩梦。我见过公司,当他们完成部署时,安装的最后一台机器已经比第一台机器提前两个版本。通过客户端上的浏览器(即跨平台执行环境)和集中部署,您只需消除这些问题。欢迎来到瘦客户端时代。
现在,我不相信桌面应用程序通常更便宜(我不知道开发是否更便宜,但我确信维护,支持......不是)。
但我同意桌面应用程序通常更丰富。无论人们会说什么,这个都不是可以说是在AJAX问世之前,这仍然适用在一些浏览器不合适的特定领域,无论是否有AJAX(让交易者使用浏览器,你会看到)。有些人不想要一个页面流范例,有些人做需要高级小部件(例如具有高级过滤,分组,Excel等基本公式等功能的网格组件) ,或低延迟,或实时等,即富互联网应用程序 - 或RIA - 并非真正制作的东西,因此不是正确的选择工具!
我同意Java WebStart或Microsoft ClickOnce等技术可以解决旧的部署问题并允许开发所谓的Rich Desktop Applications(或RDA) - 客户端上的富桌面UI,服务器上的业务,标准协议它们之间的集中部署,所以仍然是一个瘦客户端),这似乎是一个很好的折衷方案(更好的用户体验,但没有头痛)。
那么为什么人们会系统地省略RDA选项呢?好吧,我相信:
所以这是我们(我们,IT专业人员)的错误:)
答案 2 :(得分:11)
我同意Web应用程序不更快开发 - 除非您有多个支持的操作系统或数据库连接,这基本上适用于我所做的一切。
文档创建程序(包括图形程序)显然更适合桌面,尽管您会想到Google Docs。您不希望远程运行声音或视频编辑器。但是,工作越不个人化 - 协作越多(公司) - 网络应用程序就越有意义。
答案 3 :(得分:6)
**** ****编辑
答案 4 :(得分:3)
答案 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)
答案 10 :(得分:-2)
对于问题的答案,平台/浏览器独立性非常不正确。
许多答案未提及的是,很多组织将创建和使用针对特定浏览器某个版本的Web应用程序。更容易开发只能在1个Web浏览器中正常工作的内容。示例:IE5,IE7等......
我到处都看到这一点,因此在很多情况下,Web应用程序可以在Intranet环境中的任何平台/浏览器上运行都是错误的,因为面向内部的Web应用程序通常仅在公司内使用,因此公司的内部策略是通常在某个平台和浏览器上标准化。
由于这个原因,开发人员将仅针对某个浏览器/平台编写和测试他们的Web应用程序。
我认为此评论否定了上述任何解释为什么在企业内部网中使用Web应用程序的评论。