首页新闻找找看学习计划

关于离线程序的实现

0
悬赏园豆:100 [已解决问题] 解决于 2013-07-19 10:33

一个简单的Winform程序.

有什么好的解决方案在本地保存数据。在有网络的情况下 和正式的数据库进行数据的同步。

xiaoZz的主页 xiaoZz | 初学一级 | 园豆:120
提问于:2013-07-17 13:09
< >
分享
最佳答案
0

我之前做的时候是用SQLite和webService,当时主要是为了数据的及时性,我做的是超市存取柜那种,所以及时性很高,客户刷了卡后如果去服务器找数据会很慢,就用SQLite了,然后每50秒同步一次数据,网络不正常的时候就先放本地,等正常再同步,其实同步不会太难,就是注意一下增删改逻辑,在本里的表里多几个标识字段,比如 该条数据 是否已更改,是否已成功同步,是否是新加数据,等等。。

收获园豆:30
hexllo | 菜鸟二级 |园豆:405 | 2013-07-19 09:07
其他回答(5)
0

构造合适的DTO,在本地保存,有网络将DTO 通过 WCF 进行同步

收获园豆:10
Yu | 园豆:12944 (专家六级) | 2013-07-17 13:37

之前有知道过Sqlserver有对这种离线程序的解决方案··我的需求将本地离线添加的数据增加到数据库中。还有就是将本地数据进行更新··所以这里会存在一些数据同步的难题。是否会存在 一些SQLLite轻量级数据库和SQLserver同步的机制·或者其他··

支持(0) 反对(0) xiaoZz | 园豆:120 (初学一级) | 2013-07-17 13:43

@xiaoZz: 自己写代码控制较好

支持(0) 反对(0) Yu | 园豆:12944 (专家六级) | 2013-07-17 14:01
0

本地自己保存成自己想要的数据格式或是用简单的数据库如sqllite。access等。

在有网络的时候通过wcf或WebService或其他方式同步到服务器就ok了吧。

收获园豆:10
来自北方 | 园豆:395 (菜鸟二级) | 2013-07-17 13:43

我也有这种想法··轻量级数据库和SQLServer的同步机制有没有现成的解决方案··还是得自己写代码啊·

支持(0) 反对(0) xiaoZz | 园豆:120 (初学一级) | 2013-07-17 13:44
0

直接实用SQLServer的同步就行了。何必要那么麻烦呢。没网络的时候同步失败在有网络的时候就自动同步了。

收获园豆:10
````` | 园豆:14268 (专家六级) | 2013-07-17 14:21

我的需求是很多人使用的一个小程序··能够在离线的时候填写报告··在有网的时候发送报告··并能够在客户端和服务器之间同步一些客户或者其他的基本信息

支持(0) 反对(0) xiaoZz | 园豆:120 (初学一级) | 2013-07-17 14:24

如果每个人的机子上都装SQlserver 优点太内啥了·

支持(0) 反对(0) xiaoZz | 园豆:120 (初学一级) | 2013-07-17 14:24

@xiaoZz: 这个看怎么理解了。如果要是我的话,我估计会写入到sqlite中,然后通过rsync,或者cwrsync直接同步到服务器上,同步成功就删除客户端的数据,失败就等一定时间再同步。服务器上有通不过来的文件的时候就开始查询到关键数据库写入到数据库,反正方案也是很多的,看自己喜欢,代码也不复杂。

支持(0) 反对(0) ````` | 园豆:14268 (专家六级) | 2013-07-17 14:27

@imfunny: 呵呵··我也是第一次接触到这种情况··摸不清情况才到博客园问问的··谢谢你的回答··你提到的技术我都没有接触到··回去看看·

支持(0) 反对(0) xiaoZz | 园豆:120 (初学一级) | 2013-07-17 17:14
0

记录数据到缓存,并且在本地记录到一份文件中(如XML),在网络联通的时候把数据同步过去

收获园豆:10
Zachary_Fan | 园豆:762 (小虾三级) | 2013-07-17 16:17

XML也考虑过··我的需求存在 客户端和服务器 双方相互同步数据的情况。我需要判断数据是否在双方都是是否存在。table 对 table会更好操作 如果是 xml对table操作起来 或者数据量打起来的话 是不是有些够呛···

支持(0) 反对(0) xiaoZz | 园豆:120 (初学一级) | 2013-07-17 17:10

@xiaoZz: 不然只能搞个轻量级的数据库做中转了。

支持(0) 反对(0) Zachary_Fan | 园豆:762 (小虾三级) | 2013-07-17 17:13
0

一般是不管连不连网所有写入都先本地保存,然后如果有网络,就写入到远程服务器,过程类似数据库日志的原理。本地保存可以Dataset序列化、用mdb或者用sqlce。

这种模式一般移动应用上用,PDA客户端上以前好多这种程序,但现在也很少了,现在哪儿连不上网啊。

以前微软老推的那个Smart Client就是讲用这种模式写代码,但是,明显不符合发展趋势,想想google所有的应用都是必须联网的。

收获园豆:30
天边彩云 | 园豆:629 (小虾三级) | 2013-07-17 16:26

关键是存在 我需要把客户端不存在的数据从服务器上拉过来··客户端新增的数据推送给服务器。。这其中会存在 exists  和 not exists的问题  我就是想找一种 轻量级别的桌面数据库和服务器数据库之间同步的机制··

支持(0) 反对(0) xiaoZz | 园豆:120 (初学一级) | 2013-07-17 17:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册