但是对于企业内部应用程序而言,如果安全性不是问题,如果一个应用程序的用户群体一直使用它作为他们的主要工具,那么桌面应用程序难道不是更好的选择吗?
我没有任何关于WPF Web应用程序的经验/了解,但我的印象是它本质上是在您的Windows PC上本地运行的应用程序。我更熟悉可能是旧技术的WinForms,特别是通过ClickOnce技术部署WinForm应用程序。
在实际操作中,点击Once(以及可能是WPF Web Apps)似乎已经解决了过去的dll hell部署问题,然而,在避免与本地安装相关的dll hell的吸引力方面,为什么公司仍然回避/害怕此类应用程序,并迅速转向Web应用程序呢?
在我看来,桌面应用程序的优点是:
1)成本 - 桌面应用程序在概念上更简单,因为您拥有本地机器的全部资源和状态。因此,对于相同的功能,桌面应用程序的开发成本一定更低。只需看看所有复杂的客户端/服务器端Ajax代码,您就知道这些东西在桌面应用程序中是多么轻而易举。我想有人会争辩这一点,但对我来说,这是显而易见且无法争议的。
2)桌面应用程序通常更加丰富。Web应用程序最多可以与更复杂/更昂贵的代码相媲美。(上述1的一个必然结果)
我可以列出更多,但这应该足够了......
显然,并非所有内部网站都适合桌面应用程序。但以这个为例,并告诉我你是否认为在Web上部署桌面应用程序是更好的选择:
用户每天使用8小时的帮助台应用程序,是他们PC上唯一运行的应用程序。此外,应用程序很少进行修补。
我的感觉是,人们会沉溺于一种思维误区,一旦他们知道某种事物(例如,Web应用程序),他们就把它视为万能解决方案。你怎么看?
编辑#1:这里是Click Once桌面应用程序的一个示例(用于管理问题票据的Rational Clearquest/Sharepoint/PVCS/Mercury集成前端),它利用客户端计算机的计算能力在本地存储信息,让用户以不同方式切片和分析数据而无需每次都访问服务器,同时仍然允许用户实时链接到实时数据以更新单个记录。这有点像电子表格下载,可保持与服务器数据的链接,以便用户想要执行更新。
当然你可以在网站上模拟这种功能,但我认为开发工作量会更大,并且你无法获得这种响应速度,这对于经常使用此应用程序的用户来说非常重要。