.net 如何构建脱机数据库
使用Sql Server 2008、.Net 3.5和C# 我正在设计一个桌面应用程序,它在没有internet连接的情况下以只读状态运行。当连接再次可用时,它将使用webservices更新中央数据库.net 如何构建脱机数据库,.net,sql,sql-server-2008,.net,Sql,Sql Server 2008,使用Sql Server 2008、.Net 3.5和C# 我正在设计一个桌面应用程序,它在没有internet连接的情况下以只读状态运行。当连接再次可用时,它将使用webservices更新中央数据库 我可以使用什么技术“下载”适用于每个客户端的一组数据以供脱机使用?正是为这个过程而设计的。它具有同步功能,但请注意,它没有完整的SQL功能(即视图、索引等)。这取决于您的要求、连接类型(是否有线/无线?),是否为便携式笔记本电脑/掌上电脑/台式电脑,通常有几种方法,您希望每隔几分钟监控一次网络连
我可以使用什么技术“下载”适用于每个客户端的一组数据以供脱机使用?正是为这个过程而设计的。它具有同步功能,但请注意,它没有完整的SQL功能(即视图、索引等)。这取决于您的要求、连接类型(是否有线/无线?),是否为便携式笔记本电脑/掌上电脑/台式电脑,通常有几种方法,您希望每隔几分钟监控一次网络连接(可配置),当网络连接上有活动时,连接到webservice(同样,防火墙呢?)并从数据库中取出更新。这种对网络的监控可能会有所不同,例如,如果你谈论的是诸如pda之类的便携式设备,那么每隔一段时间就会ping一次Web服务的ip地址(这是确定网络连接的一种常见且最简单的方法)。这会变得更加棘手(在vs的标准控件中没有合适的方法来执行此操作-您可能想查看opennetcf.org以获得activesync的扩展和增强)…在检查网络连接时,请小心不要由于轮询而消耗太多cpu时间。这不是智能客户端应用程序的目的吗
另一个选项是将所有数据缓存在内置于windows的include中。另一个选项是将SqlLite或类似的嵌入式数据库包含在应用程序中,以便在连接存在时同步。您可能想看看SqlLite这一开源便携式数据库引擎 以下url上有ado.net版本: 包括引擎在内的所有东西都包含在dll中。非常容易部署 我刚刚开始在一个类似的项目中使用它,到目前为止它似乎工作得很好 它支持各种标准sql功能,如视图、触发器等
Scott嗯,这取决于您计划提供的离线功能类型,可能会有很大差异。此外,还取决于计划的离线状态有多远。您的离线模式是用户切换到的吗?还是internet连接意外终止的结果?用户能否关闭并打开应用程序在脱机模式下?换句话说,你需要将临时数据存储到硬盘上,还是可以将其保存在内存中?脱机是为了在互联网关闭时使用,因此应用程序可以继续显示数据。我可以将临时数据存储在XML中,随时可以上载。由于他的数据后端是web服务,如果他在他的数据层上有很好的抽象,它仍然可以工作。