秋天到了,坐在自己摩托上感觉到阵阵的凉意。
前段时间我从Web 组调往了 Win32 组,从事了一个企业软件的设计与开发的工作。现在已经正式提交客户运行了。运行状况还不错,借我朋友的一句话“没有什么消息,那本身就是一个好消息!”
就在这次开发中的问题,我做了一下总结:
1. 关于数据类型
在开发初期,我们在设计数据结构时,有一些数据使用了 float 与 double 数据类型,用来记录一些数值。刚开始还好,但到了测试阶段就出现了一些问题。当数据层提交了一个 66.6 到数据库,然后取出数据就变为 66.600000001 。 浮点数的近拟性就突示出来了,其实如果只是显示那还问题不大,但把这些数一进行运算那笑话可就大了。大家也许也能体会到在项目中期修改数据结构的痛苦:(。
但有一点还是不明白,同一张表中,同一个字段 有时 66.6 就能正确显示,而有时就只能显示为 66.60000001
所以大家在设计数据结构时,如果要进行运算的数据最好使用 decimal类型。只要预设好精度,那会非常好用。
2. Self -Update Application
应用开发完成后,更新也是非常的重要的。如果你的程序有一个 AutoUpdate 功能那是很酷的。
我们的项目主要实现方法是:
a. 使用 IIS 站点做为 服务器端。(当然了你也可以使用 FTP 等)
b. 使用一个 AppVersion.xml 文件来保存最新的程序信息(主要信息为 当前版本,文件列表,文件大小,以及文件完整性验证码)。(当然使用 Web Service 会更加安全)
<?xml version="1.0" encoding="utf-8" ?>
<SBS>
<Ver>1688</Ver>
<Files >
<File FileName="File1" size="1212121" key="8a7c5e5a6c4d2e3f2a3" ></File>
<File FileName="File2" size="1212121" key="8a7c5e5a6c4d2e3f2a3" ></File>
</Files>
</SBS>
c. AppMain.exe 是我们程序的主要启动程序,它的主要任务是确定比较服务器端与客户端之间的版本差异,如果一致就启动应用程序。如果有新的版本出现就就下载并验证新版本文件。并启动新的版本。(AppMain.exe 要控制一下,只能让系统中有一个实例存在,不然可能会出现IO问题)
d. 应用程序中也要添加一个查询模块,对给定的服务器定时验证版本,最好用一个独立的进程进行,性能会好一点。如果有新的版本了,那就启动AppMain.exe 程序,并退出主程序。(我们的程序有这个必要,大部分应用不会要求怎么高的。)
e. 这样一个基本的自动更新程序就完成了。这个思想比较简单。如果你对自动更新感性趣,MS有一个 Microsoft.ApplicationBlocks.ApplicationUpdater ,你可以参考一下。
还有一些其它的,下次写吧!
打印 | 张贴于 2004-09-11 16:04:00 | Tag:C# MS DotNET
留言反馈