使用C#的WebService实现客户端软件的在线升级功能

本文介绍了如何使用C#和ASP.NET WebService技术实现客户端软件的在线升级功能。通过建立数据库、编写Web服务方法以及客户端调用来检查版本并下载更新文件,实现了远程升级流程。详细步骤包括数据库设计、WebService方法实现以及客户端的异步调用过程。
摘要由CSDN通过智能技术生成

前言:
由于项目原因,要实施的客户离作者(itbaby)太远,考虑提供软件的在线升级功能.我们如何实现呢!先讲下思路.

思路:
先实现WEB端的开发,主要考虑使用WEBService技术,提供远程服务的调用函数,返回一个文件的字节内容,然后写一个升级程序客户端,分发给客户使用的机器中,(可以随客户的软件一起安装).该客户端程序主要连接webserivce,然后将文件保存到本地机(客户的机器)中.就可以实现!

实现的细节:
要考虑提供给客户软件版本问题,低版本的升级,最新版本的就不用升级.还要考虑用户名与密码在WEB端的认证!

使用技术:
ASP.Net WebService开发,客户端的异步调用WebService方法.数据库技术!


如果转载请说明出处,http://blog.csdn.net/zerodj
作者主页:http://itbaby.jss.cn
注意:itbaby.jss.cn中,技术文章不再更新,全部转到blog.csdn.net/zerodj中.


开始实现:

1.建立数据库,作者(itbaby)使用SQLSERVER2000
 1)软件项目表:softlist(softid, softname, resume, loginname, loginpwd)
  softid:编号
  softname:软件名称
  resume:介绍
  loginname:客户登录名
  loginpwd:密码


 2)各个软件的版本表 SoftListVersion(softid, subid, version, UpdatePath, olefile)
  softid:主表的软件编号
  subid:各版本数据编号
  version:软件版本
  filename:升级文件名
  olefile:升级文件的二进制内容,是image类型,(我主要存放MSI的安装包文件类型,可以使用C#做此类安装包文件)

 3)建立一个视图,chkVersion,用于检查版本号
  SELECT dbo.SoftListVersion.subid, dbo.softlist.softname, dbo.SoftListVersion.version
  FROM dbo.softlist INNER JOIN
        dbo.SoftListVersion ON dbo.softlist.softid = dbo.SoftListVersion.softid

 4)再建立一个视图,vOleFile,用于下载文件
  SELECT dbo.SoftListVersion.subid, dbo.softlist.softname, dbo.SoftListVersion.filename,
        dbo.SoftListVersion.olefile, dbo.SoftListVersion.version
  FROM dbo.softlist INNER JOIN
        dbo.SoftListVersion ON dbo.softlist.softid = dbo.SoftListVersion.softid
  
  

2.写一个WEBSERVICE
 1)启动VS.Net2003,建立一个叫babyWebSvc的项目,项目类型为(ASP.Net WEB服务)
 2)添加一个SoftUpdate.asmx的WEB服务

 3)添加一个方法SearchVersion
  
  [WebMethod(Description="返回当前软件升级包的最高版本")]
  public string SearchVersion(string softname)
  {
   string sVersion = "";
   webmod.dbConnStart(); //(连接)作者自己的连接数据库类,用户自己完成数据库连接
   string strSQL = "select MAX(version) as MaxVerID from chkVersion where softname = @softname";
   SqlCommand sqlCmd = new SqlCommand(strSQL,webmod.sqlConn);
   sqlCmd.CommandTimeout = 0;
   sqlCmd.Parameters.Add("@softname",SqlDbType.VarChar).Value = softname;
   SqlDataReader sqlRd = sqlCmd.ExecuteReader();
   if(sqlRd.HasRows)
   {
    sqlRd.Read();
    sVersion = Convert.ToString(sqlRd["MaxVerI

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值