|
|
1
1
一种方法是使用推送机制(我使用了kaazing websoocket gateway,但任何方法都可以)。当发布新版本的xap时,将向所有客户端发送一条消息(由管理员手动输入系统或由xap文件更改事件自动触发)。在最简单的情况下,会向用户显示一些通知(告诉他新版本已经发布,应用程序需要刷新),然后应用程序会刷新(只需重新加载页面),在必要时保存用户的状态。 |
|
|
2
0
如果我这样做,我会保持简单。web.config中的配置值和相应的服务方法,它只返回该值(该值本身可以是任何值,但计数器可能是明智的)。然后您可以让Silverlight应用程序定期轮询该服务方法。每当值更改时(在部署新版本时手动更改),只需弹出一个对话框,告诉用户刷新浏览器或登录/注销。这样你就不会 有 强迫他们每次都刷新。如果您考虑比较xap文件版本,则始终需要刷新它们,即使是不中断的更改。 如果你想更进一步,你可以想出某种机制来区分不同的严重程度。例如,如果新的配置值将包含字符串“update_forced”,则可以通过自动注销用户来强制用户重新加载应用程序(可能有点苛刻)。如果它包含字符串“update_recommended”,只需在右上角显示一个小图标,说明有新版本,他们应该在自己的时间升级。 |
|
|
3
0
当然,这是针对Silverlight 3的,但是有了PollingDuplex客户端以及更新版本的Silverlight中的类似客户端,您可以向客户端发布一个“立即更新”位,并在客户端中构建一个机制,以提醒用户有一个更新现在已停止……他们应该很快更新它,等等。你甚至可以,通过序列化等,保存他们关闭应用程序重新加载时的状态。 我们已经用我们构建的lob应用做了一些类似的事情,因此当用户改变事情时,其他用户会立即看到这些变化。下一步是将标志放在更改授权和升级“飞行中”,如果你愿意的话。 |