2011-01-05 65 views
0

我有一个网站(幸运我),本网站中的数据访问是使用像这样的自定义类实现...传递自定义对象到Windows Mobile 6的应用

IList<Thing> things = ThingFactory.GetAll(); 

Thing thing = ThingFactory.Get(1); 

...一切都很好。

我现在被要求开发一个Windows Mobile 6/CF3.5应用程序(Windows窗体)。

该应用程序将从我们的服务器下拉数据并将其存储在SqlCe/Compact数据库中以供离线使用。在下次设备停靠时,需要对数据(客户端或服务器)的任何更改进行同步。

有人可以请我提供一些关于如何向移动应用程序发送数据和从移动应用程序发送数据的指导?我的主要问题是以下可能... ...

[WebMethod] 
public IList<Thing> SyncThings(IList<Thing> thingsThatTheMobileChanged) 
{ 
    ThingFactory.SavedChangedThings(thingsThatTheMobileChanged); 

    return ThingFactory.GetAllThatHaveChangedSinceLastSync(); 
} 

...以及如何消费在客户端/移动端?

我环顾了一些其他类似的问题发布在SO上,但我只是没有得到我的答案!

非常感谢提供任何帮助,

ETFairfax

+0

你的描述是说Windows Mobile 6和Windows Mobile 5的主题。这只是给我们提供了操作系统。你在用什么框架/语言构建客户端应用程序?知道这将帮助我们回答你。 – 2011-01-05 13:41:25

+0

嗨请问,它应该是移动6在C#中使用Compact Framework 3.5(我将在一个月内更新)。自发布这个问题以来,我一直在关注ADO.NET的Sync Services。这值得一看吗? – ETFairfax 2011-01-05 14:12:23

回答

0

你可以尝试序列化你的对象列表并返回字节数组 PDA将采取这个字节数组并反序列化它。

+0

这正是我最终这样做的结果。 – ETFairfax 2011-03-07 09:02:06

0

我使用同步功能SQL Server数据库之间取得了巨大成功。这将更新你的数据库,只要它连接起来,没有你的任何要求,开发人员。这对您意味着什么,而不是应用程序拉动新数据,应用程序只需要从数据库中获取对象。您可能会在数据库记录中需要某种时间戳记录,以便知道它们何时更改。
[免责声明:我写了我的移动应用程序,大约6年前与Compact SQL Server交谈;当移动设备仍然被称为PDA]

+0

嗨,谢谢你的回复。你能告诉我更多关于你用来同步数据的技术/技术吗?另外,定制同步有多灵活?例如,如果您必须获取特定部分的数据而不是整个表格? – ETFairfax 2011-01-07 08:20:30

+0

可以仅将表的一部分与数据库同步。整个事情是SQL Server复制,在这里阅读更多关于它:http://msdn.microsoft.com/en-us/library/ms151198.aspx 你的整个琐事成为一个数据库问题。剩下的一个编码细节是如何处理冲突,即主数据库和用户都更新相同的记录 - 复制应该如何解决这个问题...... – erict 2011-01-07 16:21:39