Wcf Windows Mobile开发-从哪里开始?

Wcf Windows Mobile开发-从哪里开始?,wcf,architecture,windows-mobile,mobile,Wcf,Architecture,Windows Mobile,Mobile,好的,我将很快开始windows mobile的开发。我对这个问题一无所知,我正在寻找有经验的人让我知道你可能知道的任何哥特查 现在我甚至不知道需要什么,但假设应用程序只不过是一堆用于更新数据的CRUD表单。我所知道的唯一其他要求是,当没有信号可用时,应用程序将需要支持脱机存储。当信号返回时,这显然需要某种同步 我最初的想法是,应用程序将主要作为与web服务层交互的前端。我假设WCF将是构建这些服务的合适技术?我还认为SQLServerCE是解决脱机存储问题的一个好办法 任何您认为在该领域有用的

好的,我将很快开始windows mobile的开发。我对这个问题一无所知,我正在寻找有经验的人让我知道你可能知道的任何哥特查

现在我甚至不知道需要什么,但假设应用程序只不过是一堆用于更新数据的CRUD表单。我所知道的唯一其他要求是,当没有信号可用时,应用程序将需要支持脱机存储。当信号返回时,这显然需要某种同步

我最初的想法是,应用程序将主要作为与web服务层交互的前端。我假设WCF将是构建这些服务的合适技术?我还认为SQLServerCE是解决脱机存储问题的一个好办法

任何您认为在该领域有用的知识都将不胜感激。建议,链接,书籍,任何值得欣赏的东西

编辑:注意离线同步有两种方法。使用某种形式的消息队列或使用SQL同步工具。有谁能对这些做一个很好的比较和介绍吗

编辑2:经过进一步挖掘,我得到的印象是,我可以在这里使用3种不同的方法:

  • 需要查询的Emmbed数据库,然后在线同步(如果可以)
  • MSMQ与.NET远程处理
  • 使用Exchange Server的带有ExchangeWebServiceMailTransport绑定的WCF

  • 现在,在第一个问题上已经提出了好几点,我想我在某种程度上理解了我将面临的问题。但我想了解更多关于MSMQ实现和使用WCFs新绑定的信息

    您可能需要参考以下内容:


    您不应该被windows mobile开发吓倒。它与桌面开发没有太大区别。我强烈建议您使用.NET Compact Framework进行开发,而不是使用C++/MFC

    一些有用的链接:

    • 在密码处 项目你会发现很多 文章,需要一点挖掘 找到合适的
    • 聪明的 来自的设备框架 为 紧凑的框架
    • 安装时 移动SDK,您将在 的社区文件夹链接 windowsmobile和CF框架 博客。这些也很有价值 资源
    关于您的应用程序,您对WCF和SQL Server CE的看法是正确的。这些是处理通信和存储的正确方法

    对来自桌面世界的人的一些提示:

    • 你需要某种电源管理。设备可能会自动进入暂停状态。另外,你不应该在不必要的时候消耗电力
    • 网络连通性是一个难题。您可以注册特定网络(Wi-Fi、GPRS)可用或不可用时的通知。您还可以设置首选的通信方式
    • 使UI尽可能简单。用户使用拇指和/或笔,可能正在移动
    • 尽早在真实设备中进行测试

      • 我不得不这样做一次。使用Mac进行开发的奇怪设置,我们都是Java程序员。最后期限很短。PowerPC Mac也是如此,所以没有机会安装Windows进行Visual Studio开发,更不用说这笔钱永远不会出现

        我们最终使用Java编写应用程序,运行在IBMJ9虚拟机上,并使用SWT作为用户界面。完全免费的开发堆栈。易于部署。代码可以在我们想要的任何平台上运行,而不仅仅是PocketPC/WinMob

        不管怎么说,大部分工作都在服务器端——数据库、web服务服务器。逻辑。报告引擎。然而,客户端并不完全简单-从服务器获取表单模板(因为它们经常更改)、站点详细信息(多站点部署)、从表单模板生成UI(使用一些SWT GUI组件,这些组件对于PocketPC开发非常有用,如ExpandBar),通过点击式界面收集数据(尽可能减少键盘输入),然后将其提交回服务器


        对于离线存储,我们在设备本身上使用XML文件。对我们的需求来说已经足够了,但是你们的可能会有所不同。也许考虑SQLite?< /P> < P>这是我迄今为止(大约9个月)的.NET Windows Mobile开发的几句话。

      • 您偶尔会连接(或者更可能偶尔会断开连接)。您必须选择是否将消息传递用于队列(即WCF/SOAP/XML或类似的东西)或数据库同步。我选择SQL同步路由,因此我无法对消息进行评论。SQL同步路由并非没有麻烦

      • 如果你像我一样使用SQL compact进行同步,你基本上有两种选择。SQL Server合并复制或更新的ADO.NET同步服务。如果你选择前者,你需要非常小心你的数据库设计,以确保它可以轻松地在移动订户和发布者之间进行分区。你真的需要要考虑冲突,并且在正常化的DB设计中分割通常不被拆分的表是这样做的一种方式。您必须考虑一个设备离线一段时间的情况和发布者DB(即主DB)。和/或订阅者更改相同的数据。当设备重新联机时会发生什么情况?这可能意味着即使您已经很好地进行了分区,也会解决冲突。这就是我被烧坏的地方。但是SQL合并复制可以很好地工作,并减少您必须编写的代码量

      • 滚动您自己的DAL。不要试图直接使用datareaders等