当前位置:编程学习 > C#/ASP.NET >>

桌面版客户端如何与网站数据实现同步?

有个网站应用平台,因为sql量较大,所以性能不怎么样,想做个桌面版客户端。
起始,把网站的数据下载到本地,用户在本地操作后,点击“上传数据”,这样数据
就同步到网站服务器。
客户端可以是多个,比如C1,C2,网站服务器只有一个W1。
现在想W1,C1,C2三者实现数据同步,当然C1,C2分别都是与W1同步,同而间接实现三者同步。
同步可以是异步(用户自己选择“上传”与“下载”)
请问,这个功能如何实现?

该功能属winform业务,有了解的朋友请交流,或留下方式, winform 行业数据 服务器 应用 SQL --------------------编程问答-------------------- 有类似淘宝的助理功能 --------------------编程问答-------------------- 这种“功能”没有什么技术,需要的就是你把业务流程细节说清楚。比如说所有的操作界面都画出来,并且用动画的形式说明用户操作到哪一个步骤时、应该做具体的所谓“同步”操作,这一个操作的细节是什么、数据量如何估计、性能大概怎样。最后,把几十个同步操作细节(画面、时间点、用户行为、数据结构、数据量、性能等等)综合起来,在综合评估用户的反应。

这里没有技术。需要的就是判断。 --------------------编程问答-------------------- 我举一个例子,比如说人家访问服务器的客户端,看到的x值是1,而你的所谓c1、c2看到的x值暂时是0.9,那么显然地c1、c2上一大堆相关的数据都受此影响。那么你在你的设计文档中,就应该有所体现,你就要明确地预知这种误差,然后拿给用户签字确认。否则,如果等你把产品上线了,结果这么重要的影响业务流程的问题、客户根本毫无心理准备,那么肯定就不为你这种c1、c2的设计埋单啦! --------------------编程问答--------------------
引用 3 楼 sp1234 的回复:
我举一个例子,比如说人家访问服务器的客户端,看到的x值是1,而你的所谓c1、c2看到的x值暂时是0.9,那么显然地c1、c2上一大堆相关的数据都受此影响。那么你在你的设计文档中,就应该有所体现,你就要明确地预知这种误差,然后拿给用户签字确认。否则,如果等你把产品上线了,结果这么重要的影响业务流程的问题、客户根本毫无心理准备,那么肯定就不为你这种c1、c2的设计埋单啦!


谢谢你的意见,“延时”造成的问题是可以理解的,同步是“异步”,可以没必要做实时同步。
另外,这个项目是我自己的,对“实时”同步没有那么高要求。在描述中,我也讲到了用户可以
自己主动“上传”,他不上传数据那就保存在他本地...

现在的问题是:如何把C1本地的数据“上传”到网站数据库,或者把C2上传到网站的数据同步给C1.
最好涉及到研发细节问题。
难道只设置“标识”位吗? --------------------编程问答-------------------- 你讲的什么“延时、同步、异步”啊之类的,都是技术术语。

我跟你说了,而且我猜到了,你其实就是嫌麻烦,懒得去接触设计细节,想听听堆砌技术术语的人怎么靠一两个“点子”就给你完美“解决”这类疑惑?

但是说到最后,如果你不敢正视“你需要详细描述每一个同步细节”这个事实,你就会停止不前。要么是一直在csdn之类的地方问,要么就是带着浑浑噩噩的心情而勉强开始写程序了。 --------------------编程问答-------------------- 现在的问题是:如何把C1本地的数据“上传”到网站数据库,或者把C2上传到网站的数据同步给C1.

这种问题能够成为问题,其实有些让我感觉遗憾。满大街都是通讯“例子”,最次地你可以在你的网站服务器上支持普通的aspx/ashx(从而支持webClient.UploadData方法)或者支持web service之类的。 --------------------编程问答--------------------
引用 6 楼 sp1234 的回复:
现在的问题是:如何把C1本地的数据“上传”到网站数据库,或者把C2上传到网站的数据同步给C1.

这种问题能够成为问题,其实有些让我感觉遗憾。满大街都是通讯“例子”,最次地你可以在你的网站服务器上支持普通的aspx/ashx(从而支持webClient.UploadData方法)或者支持web service之类的。


谢谢老大的意见啊!
现在前期是思考解决该问题的方案,理清思路,
设计是后一步的事。关键技术点确定了,设才才好一帆风顺。ashx,WebService都是实现的细节问题,
数据传输问题都不是问题,关键问题可能还是数据库的设计问题。
Web应用项目已经实现好了,现在就是发觉太慢,所以才想增加客户端,并且也是必要的。
C1与网站W之间如何标识数据是新增的,是需要同步的....这些问题还没有理清思路。

--------------------编程问答-------------------- 这个功能有些类似淘宝助理,用户在本地编辑完后,可以发布 web上。 --------------------编程问答-------------------- 主要是数据结构如何区分哪条记录是需要同步的。
详细可以分为以下几类:
1:客户端本地新增与修改的记录需要同步到网点(这个很容易,本地设计时做个标识,用户想上传数据时,全部insert到网点)

2:C1同步到网点的数据,C2如何去获取,主要是C2不知道哪些记录是需要去更新的。
当然有C1,C2,还会有C3,C4等....

3:C1删除,网点也要同步删除,并且C2也要实现删除 --------------------编程问答-------------------- 你自己都设计好了,还问我们干嘛。

我可以告诉你的是,这个是一个很垃圾的方案。 --------------------编程问答--------------------
引用 10 楼 winner2050 的回复:
你自己都设计好了,还问我们干嘛。

我可以告诉你的是,这个是一个很垃圾的方案。


设计好只是一个想法,问题是如何实现数据同步呀?
另外,为什么说是很垃圾的方案呢?
B/S与C/S相结合,BS满足了互联网的方便性,CS弥补了BS的性能问题。
难道淘宝的“淘宝助理”也是垃圾产品吗? --------------------编程问答-------------------- 另外,我提出的问题只是想征求解决方案,相当于为“立项”做好技术准备,不知上面两位大侠非要
给扣帽子:已经设计好了。
有些项目,如果需求非常明朗的话,为什么非要按软件工程那一套流程走下来?虽然项目中没有
完整的几大步,但至少心理对这几大块做到心理有数。本人不反对软件工程的那一套,但有些
东西也没必要非按那套路走下去。

本人计算机行业10年,现在已经退居二线了,目前自己开了个工厂,在接触工厂的业务中,
发现这一块可以用软件解决一些问题,所以自己开发了一套软件出来供他们使用。
当然,如果推广效果好的话,后面是要收费的。 --------------------编程问答-------------------- 不要以为级别是个三角裤叉,就认为是菜鸟刚上道的人,
04年注册的帐号只是有些时间没用了,密码忘记了,所以才注册了新帐号。
不过,因为新帐号活跃度不够,所以可用分没多少,这点对不起大家,没有可用分。
--------------------编程问答-------------------- 不要再纠结网站了
直接部署一个自己的Server
而不是使用IIS之类服务端

--------------------编程问答--------------------
引用 14 楼 SocketUpEx 的回复:
不要再纠结网站了
直接部署一个自己的Server
而不是使用IIS之类服务端



W与C的数据库都是access,主要问题是数据库的设计问题:
c1..cn的数据更新后,上传到web站点(通过webservice),这个好解决,因为c端容易收集到需要更新的数据。麻烦的是:c1..cn数据都上传到w,然后他们都要从w上获取新的数据,如何区分哪些是自己的新数据,好像不要搞。 --------------------编程问答-------------------- 我自己也想了一个比较笨的办法:
客户端数据库记录好最后一次更新的时间。当w数据库有大于客户端最后一次更新的时间,
就select出来同步到c客户端。 --------------------编程问答-------------------- 我上面的设计是w网站有一个数据库,客户端也有一个数据库,
不知客户端不用数据库,直接通过web service来访问获取w的数据,这样会不会有效率影响?
会不会像web一样? --------------------编程问答--------------------
引用 11 楼 day2011 的回复:
Quote: 引用 10 楼 winner2050 的回复:

你自己都设计好了,还问我们干嘛。

我可以告诉你的是,这个是一个很垃圾的方案。


设计好只是一个想法,问题是如何实现数据同步呀?
另外,为什么说是很垃圾的方案呢?
B/S与C/S相结合,BS满足了互联网的方便性,CS弥补了BS的性能问题。
难道淘宝的“淘宝助理”也是垃圾产品吗?


别用淘宝来唬人。

离线软件、定时同步这个方式是上世纪末开始淘汰的设计方案了。

当年银行汇款得经过12小时才能到账,花钱可以实现2小时内到账,现在都实时到账了。

现在连OS都放在互联网上了,文档编辑、电子邮件。。。都可以通过互联网在线操作。

补充:.NET技术 ,  非技术区
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,