1、组件介绍

  C/S构的特点是能充分发挥客户端的处理能力,很多工作可以由客户端处理后再提交给服务器,对应的优点就是客户端响应速度快模式客户端以其强大的功能,丰富的表现力受到相当大部分用户的青睐,但是客户端布署,维护升级的成本却是非常的高的。

  C/S客户端需要安装专用的客户端软件及运行环境。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。

  SNFAutoupdater组件就是为了解决C/S在维护升级方面的问题而存在的,本组件可以快速建立升级部署应用,完全控制整个升级部署过程,全功能的、快速、易于使用,设立发布你的客户端应用。

  本组件以最简单的模式提供给客户端在线布署和自动升级功能,彻底解决升级部署方面的后顾之忧。组件中提供的的接口以最简单的方式来对升级过程提供完全控制。SNFAutoupdater组件为你的软件集成稳定/高效的自动升级功能,是本升级组件的宗旨。

SNFAutoupdater组件四步完成升级工作:检查新版本、下载到临时目录、检查本地文件、拷贝或覆盖到工作目录。

  无需特被的服务器,传统的Web服务即可,如IIS等。服务器部署最新版的软件文件(文件列表保存在一个XML文件中),SNFAutoupdater组件对比分析服务器和客户端的XML对比配置文件,不同就更新。

  SNFAutoupdater组件采用C#语言编写,可应用于目前大多流行语言开发的软件之中,不依赖任何类库,稳定,高效。

2、组件升级原理及过程

3、服务端部署。

<?xml version="1.0" encoding="gb2312"?>
<AutoUpdater>
<description>Application autoUpdate</description>
<Updater>
<Url>http://10.0.0.1/SNFSoftUpdate/</Url>
<LastUpdateTime>--</LastUpdateTime>
</Updater>
<Application applicationId="SNF">
<EntryPoint>SNF.exe</EntryPoint>
<Location>.</Location>
<Version>1.0.0.0</Version>
</Application>
<Files>
<File Ver="1.0.0.0" Name="SNF.exe" />
<File Ver="1.0.0.0" Name="Reports\test.txt"/>
<File Ver="1.0.0.0" Name="Interop.grproLib.dll"/>
<File Ver="1.0.0.0" Name="Reports\test.grf"/>
</Files>
</AutoUpdater>

可以看到,其中配置了更新地址,更新日期,主程序,需要更新的文件列表 。

如果上面文件不愿意自己写,用下面工具可以进行生成:

4、客户端部署。

完成之后会自动打开主程序。

注意:是主程序的 Load事件要加上调整自动更新程序的代码。要以模式打开窗口。如果没有差异会自动关闭升级窗口显示主窗口。

作者: 王春天 2015-10-21
作者Blog:http://www.cnblogs.com/spring_wang
出处: http://www.cnblogs.com/spring_wang/p/4874584.html

如果觉得还不错,欢迎转载。

SNF快速开发平台框架的系列文章:

Winform开发框架之通用高级查询模块--SNF快速开发平台3.3-Spring.Net.Framework

Winform开发框架之图表报表在线设计器2-图表-SNF.EasyQuery项目--SNF快速开发平台3.3-Spring.Net.Framework

Winform开发框架之图表报表在线设计器-报表-SNF.EasyQuery项目--SNF快速开发平台3.3-Spring.Net.Framework(

Winform开发框架之通用附件管理模块 --SNF快速开发平台3.3-Spring.Net.Framework

SNFAutoupdater通用自动升级组件V2.0-WinForm

SNF快速开发平台3.2之--.Net可扩展的单据编号生成器-SNF.CodeRule

SNF快速开发平台3.1之--审核流(3)低调奢华,简单不凡,实例演示-SNF.WorkFlow

SNF快速开发平台3.1之--审核流(2)流程设计-SNF.WorkFlow功能使用说明

SNF快速开发平台3.1之--审核流(1)SNF.WorkFlow审核流简介

SNF快速开发平台3.0之--完美的代码生成器SNF.CodeGenerator-快速开发者的利器

基于MVC4+EasyUI的Web开发框架--Spring.Net.FrameworkV3.0总体介绍

SNF快速开发平台3.0之--MVC 打印解决方案

SNF快速开发平台3.0之--文件批量上传-统一附件管理器-在线预览文件(有互联网和没有两种)

SNF快速开发平台3.0之--asp.net mvc4 强大的导出和不需要上传文件的批量导入EXCEL

SNF快速开发平台3.0之MVC通用控件库展示-Asp.net+MVC4.0+WebAPI+EasyUI+Knockout

SNF快速开发平台3.0之BS页面展示和九大优点-部分页面显示效果-Asp.net+MVC4.0+WebAPI+EasyUI +Knockout

SNF快速开发平台3.0之-界面个性化配置+10种皮肤+7种菜单-Asp.net+MVC4.0+WebAPI+EasyUI+Knockout

SNF快速开发平台3.0之-CS页面-Asp.net+Spring.Net.Framework

SNF快速开发平台3.0之--系统里广播的作用--迅速及时、简明扼要的把信息发送给接收者

SNFAutoupdater通用自动升级组件V2.0的更多相关文章

  1. SNF开发平台WinForm之八-自动升级程序部署使用说明-SNF快速开发平台3.3-Spring.Net.Framework

    9.1运行效果: 9.2开发实现: 1.首先配置服务器端,把“SNFAutoUpdate2.0\服务器端部署“目录按网站程序进行发布到IIS服务器上. 2.粘贴语句,生成程序 需要调用的应用程序的Lo ...

  2. WinForm通用自动更新器AutoUpdater项目实战

    一.项目背景介绍 最近单位开发一个项目,其中需要用到自动升级功能.因为自动升级是一个比较常用的功能,可能会在很多程序中用到,于是,我就想写一个自动升级的组件,在应用程序中,只需要引用这个自动升级组件, ...

  3. 联盟链FISCO BCOS v2.0.0-rc3 发布

    FISCO BCOS是完全开源的联盟区块链底层技术平台,由金融区块链合作联盟(深圳)(简称金链盟)成立开源工作组通力打造.开源工作组成员包括博彦科技.华为.深证通.神州数码.四方精创.腾讯.微众银行. ...

  4. 运维工程师打怪升级进阶之路 V2.0

    在此之前,发布过两个版本: 运维工程师打怪升级之路 V1.0 版本发布 运维工程师打怪升级必经之路 V1.0.1 很多读者伙伴们反应总结的很系统.很全面,无论是0基础初学者,还是有基础的入门者,或者是 ...

  5. 超级MINI STLINK V2 官方固件自动升级 ST-Link 【worldsing 笔记】

    简介: 支持所有带SWIM接口的STM8系列单片机 支持所有带SWD接口的STM32系列单片机 完全兼容Keil,STVP,STVD,IAR,COSMIC,STM32 ST-LINK Utility! ...

  6. 怎样在IDEA中使用JUnit4和JUnitGenerator V2.0自动生成测试模块

     因为项目的需要,所以研究了一下自动生成测试代码.将经验记录下来,总会有用的.我个人认为,好记性不如多做笔记多反思总结. 1.    前提条件 开发环境已正确配置 工程已解决JUnit依赖关系(pom ...

  7. co-dialog弹出框组件-版本v2.0.0

    co-dialog theme 访问git:co-dialog 版本v2.0.0 主题2 coog.app('.theme2').use({ title: 'JUST CHECKING.', mess ...

  8. 25.怎样在IDEA中使用JUnit4和JUnitGenerator V2.0自动生成测试模块

    转自:https://blog.csdn.net/wangyj1992/article/details/78387728 因为项目的需要,所以研究了一下自动生成测试代码.将经验记录下来,总会有用的.我 ...

  9. 魔方NewLife.Cube升级v2.0

    魔方是一套集成权限管理的MVC管理后台,最具特色功能是模版覆盖机制,是XCode实体类的最佳搭档! v2.0.2017.1126   借助Ajax支持高级操作,如:删除选中.批量启用禁用等 用户管理增 ...

随机推荐

  1. BZOJ5045 打砖块 2017年9月月赛 其他

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ5045 题意概括 有一堵墙. 现在挖掉某些砖.如果有相邻的某两个砖没有了,那么他们中上方的那块也没了 ...

  2. 关于Jar包 和 war

    Jar包: 别人写好的java类打包,将这些jar包引入你的项目中,然后就可以直接使用这些jar包中的类和属性以及方法,一般都会放在lib目录下 war 是web项目

  3. 启用mysql的sql日志

    在mysql命令行或者客户端管理工具中执行:SHOW VARIABLES LIKE "general_log%"; 结果: general_log OFFgeneral_log_f ...

  4. js获取按键

    event.altKey.event.ctrlKey.event.shiftKey 属性 属性为true表示事件发生时Alt.Ctrl.Shift键被按下并保持,为false则Alt.Ctrl.Shi ...

  5. python tkinter-容器、子窗体

      Frame f = tkinter.Frame(width=380, height=270, bg='white').pack() LabelFrame f = tkinter.LabelFram ...

  6. C# DataGridView转DataTable

    public static DataTable ToDataTable(this DataGridView dataGridView, string tableName = null) { DataG ...

  7. SQLite中的SELECT子句

    SQLite中的SELECT子句 目前为止,最常见的SELECT语句由三个子句组成,分别为SELECT.FROM与WHERE.本小节我们首先讲解SELECT子句.SELECT子句可以用来定义最终结果表 ...

  8. C# 运行中 Lua 语言脚本

    这里就不介绍Lua语言了,使用挺广的一种脚本语言.自行百度. 第一步 使用 Nuget 安装引用 VikingErik.LuaInterface. 第二步 添加 Using using LuaInte ...

  9. 潭州课堂25班:Ph201805201 WEB 之 JS 第六课 (课堂笔记)

    上节补充方法 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  10. 用面向对象计算BMI指数

    from __future__ import division class Student: def __init__(self,name,weight,height): self.name=name ...