.net程序客户端更新方案

栏目: ASP.NET · 发布时间: 7年前

内容简介:客户端程序一个很大的不便的地方就是程序集更新,本文这里简单的介绍一种通用的客户端更新方案。这个方案依赖程序集的动态加载,具体方案如下:将程序集存储在一个文件数据库中,客户端所有程序集直接从文件数据库中加载,数据库中主要存储内容包括:客户端启动的时候,从数据库中动态加载程序集,可以直接使用Assmbly.Load,也可以参考我之前文章介绍的

客户端程序一个很大的不便的地方就是程序集更新,本文这里简单的介绍一种通用的客户端更新方案。这个方案依赖程序集的动态加载,具体方案如下:

将程序集存储在一个文件数据库中,客户端所有程序集直接从文件数据库中加载,数据库中主要存储内容包括:

  • 程序集名称
  • 程序集大小
  • md5信息
  • 程序集内容

客户端启动的时候,从数据库中动态加载程序集,可以直接使用Assmbly.Load,也可以参考我之前文章介绍的 .net加载失败的程序集重新加载 实现动态加载。

客户端更新流程如下:

  1. 该程序集数据库服务器一份,客户端一份
  2. 程序启动时,首先将本地的程序集目录(程序集名称和md5信息)发送给服务器,服务器根据客户端目录生成需要更新的差异程序集数据库,并返回给客户端。
  3. 客户端根据接收到的差异数据库更新本地程序集数据库。

先更新,后启动

  1. 每次启动前,首先更新程序集,
  2. 更新程序集完成后,然后再加载程序集。

这个方式有点是,实现简单,缺点主要是延长了启动时间

先启动,后更新

  • 主程序启动过程中,下载差异数据库,然后提示程序重新启动
  • 程序重新启动的过程中,首先合并差异数据库,然后再加载程序集。

这种方案不影响客户端启动,但如果更新的时候有一个重启动作,对客户端不够友好,适合于更新频率较小的场景。

边更新,边启动

对于客户端来说,往往由于加载了一些第三方的主题库,导致本身启动速度就很慢,需要SplashScreen来过渡。这个过渡时间可以用来并发更新程序集

  1. 启动时,首先加载主屏程序需要显示,但又不怎么会更新的本地程序集(往往是一些第三方的控件),同时显示SplashScreen。
  2. 加载这些程序集的同时,获取需要更新的程序集数据库,更新本地程序集数据库。
  3. 更新程序集数据库和加载首屏程序集完成后,正常继续启动。

这个方式既不影响启动速度,又没有重启的动作,但逻辑较复杂些,还需要考虑到一些冲突(例如,已经加载了需要更新的程序集)。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java核心技术及面试指南

Java核心技术及面试指南

金华、胡书敏、周国华、吴倍敏 / 北京大学出版社 / 2018-9-1 / 59.00

本书根据大多数软件公司对高级开发的普遍标准,为在Java 方面零基础和开发经验在3 年以下的初级程序员提供了升级到高级工程师的路径,并以项目开发和面试为导向,精准地讲述升级必备的技能要点。具体来讲,本书围绕项目常用技术点,重新梳理了基本语法点、面向对象思想、集合对象、异常处理、数据库操作、JDBC、IO 操作、反射和多线程等知识点。 此外,本书还提到了对项目开发很有帮助的“设计模式”和“虚拟......一起来看看 《Java核心技术及面试指南》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具