Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET Compact Framework-SQL Server Compact或平面文件作为备份_C#_.net_Compact Framework_Sql Server Ce - Fatal编程技术网

C# .NET Compact Framework-SQL Server Compact或平面文件作为备份

C# .NET Compact Framework-SQL Server Compact或平面文件作为备份,c#,.net,compact-framework,sql-server-ce,C#,.net,Compact Framework,Sql Server Ce,我有一个关于在windows mobile应用程序中使用数据库和平面文件的利弊的问题 我们正在开发一个运行在WindowsMobile 6.5上的移动应用程序,并使用C#/.NETCompactFramework 3.5 移动组件在库存系统中用于接收交货。然后,这些数据通过Wi-Fi通过web服务发送到应用程序服务器 现在,我们需要实施一个备份计划。到目前为止,我们达成的一致意见是,当移动设备无法将数据发送到服务器时,它必须在本地保存数据,然后在以后发送数据。它可以使用手机发送,也可以通过usb

我有一个关于在windows mobile应用程序中使用数据库和平面文件的利弊的问题

我们正在开发一个运行在WindowsMobile 6.5上的移动应用程序,并使用C#/.NETCompactFramework 3.5

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

现在,我们需要实施一个备份计划。到目前为止,我们达成的一致意见是,当移动设备无法将数据发送到服务器时,它必须在本地保存数据,然后在以后发送数据。它可以使用手机发送,也可以通过usb将手机与PC对接/连接,usb将数据取出,PC可以将数据发送到服务器

我的问题:在这个场景中使用哪个更好?部署SQL Server Compact或将数据写入平面文件(xml、二进制等)

我想了解每种方法的优缺点,不仅要考虑到技术方面,还要考虑到所涉及的开发工作


谢谢

我个人的经验是使用网络 服务有一些很好的理由:

  • 您的应用程序变得更容易开发,因为您可以直接读/写数据库,并让CE引擎进行合并。(Linq到Sql等)
  • 您可以在服务器或客户端手动控制合并冲突。这已经建成了,你不必自己建造
  • 不需要备份,因为CE设备上的数据已在数据库中
  • 可以根据需要在本地缓存数据(这意味着只有设备/用户需要的数据才能复制到设备。)
  • 尽管这确实需要更多的SQL知识,但它是一种可靠的技术,不需要不断地重新编写、测试和调试


    如果您被锁定在使用web服务中,那么在我看来,使用SQL CE似乎有些过分。我只需复制数据库的功能,将事务写入文件(xml/json/binary),然后根据需要使用这些事务(在wi-fi范围内时,通过web服务运行这些事务,或者在机器上运行一个服务,将文件从移动设备上拉到本地PC或服务器上,并运行这些事务)。

    Hi Erik,谢谢你的回答。他们很有帮助。是的,我们几乎都在使用web服务。手机只是其中一个组件,我们还有其他客户使用相同的服务。我同意仅仅为了备份而建立一个数据库似乎有些过分。但是谢谢你的建议,我们可能会考虑在另一个即将到来的移动项目中使用SQL CE。我仍然会使用SQL CE,即使是在存储和转发方面。这并不是说它增加了XML的很多开销,而且它将数据库的所有基础设施都放在项目中以备将来使用。