我们将为大型组织开展应用程序开发项目(.NET 3.5)。当我们开始考虑我们将在整个机器上进行的升级时,我们正在考虑像ClickOnce这样的选项。
我们需要的是推送模型,只要客户端机器连接到网络,服务器就可以发送更新。我相信ClickOnce是一个拉模型(虽然通过指定我们可以推动的最小版本)。此外,ClickOnce仅下载完整文件,无法下载文件之间的更改(字节差异)。
有人能指出我可以在这里使用的更好的工具吗?如果有更好的策略,也欢迎,我们处于项目的早期阶段。
答案 0 :(得分:1)
我对更好的选项没有明确的答案,但我使用了ClickOnce并且可以提供一些建议。
ClickOnce有多种更新选项(开始之前,开始之后,每次检查,检查每个X小时/天/周等)。你也可以抛出它们并编写代码来检查更新。它不是来自服务器的“推动”,但是您的客户可以轮询更新,这将是下一个最好的事情。请记住,应用程序必须在更新后重新启动以查看更改。
ClickOnce仅下载更改的文件。但是,进度对话框始终显示应用程序的整个大小,即使它只下载单个文件。每个人都担心这一点,但这只是进度对话框的一个错误。
最后,我很擅长保持简单。过度思考这些东西并创造一个从未需要的怪物真的很容易。我们在公司经历了类似的事情。我们非常担心用户下载不必要的字节,我们将应用程序分解为更多,更小的程序集。它变成了一场噩梦;应用程序更难维护,并且在客户端上表现更差。我们终于解开了这一切,浪费了几周才结束我们开始的地方。
我不是说你不需要你要求的功能,我不知道你的情况。只是先教育自己,了解自己的成就。
答案 1 :(得分:0)
我们在我公司使用clickonce(地理位置分散的应用程序约有几百个用户)。通过指定最低版本,我们可以确保在部署后自动更新每个应用程序安装。您是对的,clickonce仅下载完整文件,但只下载自上一版本以来已更改的文件。如果这仍然是一个问题,您可以将应用程序分解为更小的程序集。我认为你也可以使用netmodules,但Visual Studio并没有内置支持。
总的来说,clickonce对我们有用。
答案 2 :(得分:0)
我正处于在我的分布式应用程序平台上实现此类服务的过程中。从本质上讲,我已经为企业制定了一个遵循这些基本原则的“推动”模型:
从本质上讲,现在允许我(或者在我整理了一些内容并完全测试实现时允许我)来管理我在最初安装后从中央服务器开发的任何应用程序的版本,任何客户干预。