.NET Compact Framework - SQL Server Compact或Flat File作为备份

时间:2012-03-16 02:17:57

标签: c# .net compact-framework sql-server-ce

我对Windows移动应用程序中使用数据库与平面文件的优缺点提出了疑问。

我们正在开发一个在Windows Mobile 6.5上运行并使用C#/ .NET Compact Framework 3.5的移动应用程序。

移动组件用于库存系统以接收交货。然后,这些数据通过Wi-Fi使用Web服务发送到应用程序服务器。

现在,我们需要实施备份计划。到目前为止我们同意的是当移动设备无法将数据发送到服务器时,它必须在本地保留它,然后在以后发送它。它可以使用移动设备发送,也可以通过usb将移动设备连接到PC连接到PC,然后PC将数据发送到服务器。

我的问题:在这种情况下哪个更好用?部署SQL Server Compact或将数据写入平面文件(xml,二进制等)

我想了解每种方法的利弊,不仅要考虑技术方面,还要考虑所涉及的开发工作。

谢谢!

1 个答案:

答案 0 :(得分:1)

我对此方案的个人经验是使用网络的SQL CE to do Merge Replication instead 服务有一些很好的理由:

  1. 您的应用程序变得更容易开发,因为您直接读/写数据库并让CE引擎进行合并。 (Linq to Sql等)
  2. 您可以手动控制服务器或客户端的合并冲突。这已经构建好了,你不必自己构建它。
  3. 无需备份,因为CE设备上的数据已存在于数据库中。
  4. 可以根据需要在本地缓存数据filtered by device or user(意味着只有设备/用户所需的数据可以复制到设备中。)
  5. 虽然这确实需要更多的SQL知识,但它是可靠的技术,不需要不断重写,测试和调试。

    如果你被锁定使用网络服务,那么使用SQL CE对我来说似乎有些过分。我只是复制数据库所做的事情,并将事务写入文件(xml / json / binary),然后根据需要使用它们(在wi-fi范围内运行它们或在机器上运行服务时运行它们)将文件从移动设备中拉出并移到本地PC或服务器上并运行这些事务。)