日期:2014-05-20  浏览次数:20776 次

C/S结构中客户端脱机状态下仍然继续运行
    本人一直做B/S结构的程序客户端就是浏览器,所以只知道我写的应用只有在可以连接到服务器的情况下才可以使用。在遇到一个新的项目中客户需要在无法连接服务器的情况下依然可以正常工作。从来没有接触过这样的需求,也不知道这种需求要用什么样的技术来解决,希望论坛内的各位高手可以帮忙推介一些这种需求的解决办法。

    客户想在无法连接服务器的情况下客户端记录当前的录入信息,然后再可以连接服务器的时候将信息同步到服务器上。确保客户端可以独立的工作,想知道在.Net中是否有实现这种需求的框架。谢谢指点
------解决方案--------------------
虽然没有做过 但是我觉得掉线应该是有个相应的事件的 订阅这个事件然后把相应逻辑写进去 
------解决方案--------------------
如果断开了,在本地操作数据,你需要定义数据存储结构
------解决方案--------------------
如果重新设计,就用CS吧,用Access数据库,sqllite什么都容易

如果你中途改的数据,或者要保存的记录不多

自定义数据结构,数据保存在本地

加载的时候再读取。

至于什么框架能做这个,我没怎么接触
------解决方案--------------------
引用:
本人一直做B/S结构的程序客户端就是浏览器,所以只知道我写的应用只有在可以连接到服务器的情况下才可以使用。在遇到一个新的项目中客户需要在无法连接服务器的情况下依然可以正常工作。从来没有接触过这样的需求,也不知道这种需求要用什么样的技术来解决,希望论坛内的各位高手可以帮忙推介一些这种需求的解决办法。

  客户想在无法连接服务器的情况下客户端记录当前的录入信息,然后再可以连接服务器的时候将信息同……


随便一种c/s都可以做到啊。比如说在网页上的silverlgiht程序(而不是安装到本地的oob模式的silverlight程序),也是这样的。只要它执行,它通过tcp连接服务器。假设在运行中经常需要访问商品价格表,可是突然tcp服务器端短线了,那么自然可以捕获到通讯异常。此时只要使用在程序内存中保存的商品价格表,或者取出在IsolatedStorage(类似于cookie可以长期保存数据,同时可以有几百M大,可以用来开发客户端数据库系统)中的商品价格表继续销售。对于销售明细也是如此。

不过现在的局域网网络技术不必15年前。你的客户也许还活在15年前那个局域网环境。15年前的集线器设备,往往在夏天中午的时候就会死机,每天必须启动一次才能保证连续使用。而今天的最便宜的路由器(功能不知道强大多少倍),也比15年前的简单集线器设备可靠许多倍了。(经过谨慎思考所以才说)编程时我们其实忽略这种客户“需求”,以免为程序埋下更大的bug,以免给用户造成不必要的损失。