Windows Mobile的发展 - 从哪里开始? [英] Windows Mobile Development - Where to begin?

查看:190
本文介绍了Windows Mobile的发展 - 从哪里开始?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

好吧,我不久将开始下降窗口的路径移动开发。我一无所知的主题真的,我找有经验的人,让我知道你可能知道任何gottchas的。

Okay, I will shortly be starting down the path of windows mobile development. I know nothing about the subject really and I am looking for people with experience to let me know of any gottchas you may know of.

现在我甚而不有什么科目编号,但前提是,应用程序会比数据更新一堆CRUD形式更很少一个breif。唯一的其他需要量knowladge我是应用程序需要支持离线存储时没有信号avaliable。反过来,这显然需要某种形式的同步化信号时的回报。

Right now I dont even have a breif of what is requied but the assumption is that the application will be very little more than a bunch of CRUD forms for updating data. The only other requirment knowladge I have is that the application will need to support offline storage when there is no signal avaliable. This in turn will obviously require some kind of syncronization when signal returns.

我最初的想法是,该应用程序将主要的前端与Web服务层进行交互。林假设WCF将是建立这些服务的适当技术?我还以为SQL Server CE的将是往下走的问候离线存储问题的良好途径。

My initial thoughts are that the application will primarily be a front end to interact with a web service layer. Im assuming that WCF will be an appropriate technology for building these services? I also thought that SQL Server CE would be a good route to go down with regards to the offline storage issues.

这是你感觉knowlage是这一​​领域内有用的是AP preciated。咨询,链接,书籍什么AP preciated。

Any knowlage that you feel is useful within this domain would be appreciated. Advice, links, books anything appreciated.

编辑:已经指出,有两种方法去与离线同步。要么使用某种形式的消息队列,或者使用SQL的同步工具。任何人都可以提供一个很好的比较和介绍这些?

It has been noted that there are two ways to go with off-line synchronization. To either use some form of message queuing or to use SQL synchronization tools. Could anyone offer a good comparison and introduction to these?

编辑2:多一点挖我得到的IM pression有基本上我可以在这里使用3种不同的方法后:

EDIT 2: After a little more digging I get the impression that there are basically 3 different approaches I can use here:


  1. Emmbeded数据库对查询,然后同步化的在线时能够

  2. MSMQ随着.NET远程

  3. WCF与使用Exchange Server ExchangeWebServiceMailTransport绑定。

现在,一直存在关于第一个问题提出了一个很好的几点,我认为我在一定程度上了解我面临的问题。不过,我想获得有关MSMQ实现,并使用周转基金新的绑定多一点的信息。

Now, there has been a nice few points raised on the first issue, and I think I understand at some level the issues I would face. But I'd like to get a little more information regarding MSMQ implementations and using WCFs new bindings.

推荐答案

下面从我的经验.NET的Windows Mobile开发的几句话至今(约9个月)。

Here a few words from my experience so far (about 9 months) of .net Windows Mobile development.


  1. 那么你偶尔连接。 (或更可能偶尔会断开)。你必须选择是否要使用与消息队列(即WCF / SOAP / XML或类似的东西)或数据库同步。我选择SQL同步路线,所以我真的不能评论的消息。在SQL同步路线不无死角!

  1. Well you are occasionally connected. (Or more likely occasionally disconnected). You have to choose whether you are going to use messaging with queues (i.e. WCF/SOAP/XML or something like it) or database synchronisation. I choose the SQL synchronisation route so I can't really comment on messaging. The SQL synchronisation route is not hassle free!

如果你去与SQL紧凑和我一样同步路线基本上你有两种选择。 SQL Server合并复制或较新的ADO.NET同步服务。如果选择前者,你需要非常小心你的数据库设计,以确保它可以移动用户和出版商之间容易划分。你真的需要想想冲突,通常不会在标准化的数据库设计分割是这样做的一种方式分裂表。你有其中设备在一段时间和出版商DB(即,主DB)和/脱机或用户改变相同的数据来考虑的情况。当设备重新联机,会发生什么?这可能意味着解决冲突,即使你已经分割的事情做好。这是我得到烧毁。但是,SQL合并复制可以很好地工作,并降低$ C $的量c,你必须写。

If you go down the sync route with SQL compact like me you basically have two choices. SQL Server merge replication or the newer ADO.NET Synchronisation services. If you choose the former you need to be really careful with your DB design to ensure it can be easily partitioned between mobile subscribers and the publisher. You really need to think about conflicts, and splitting tables that wouldn't normally be split in a normalised DB design is one way of doing that. You have to consider situations where a device goes offline for some time and the publisher DB (i.e. main DB) and/or a subscriber alters the same data. What happens when the device comes back online? It might mean resolving conflicts even if you have partitioned things well. This is where I got burnt. But SQL Merge Replication can work well and reduces the amount of code you have to write.

自己动手DAL。不要尝试使用的DataReader等​​直接从UI code,并且不使用任何类型的数据集。有可能是与Windows Mobile合作的第三方DALS(即我知道LLBLGEN确实,可能是值得一试),但LINQ到SQL不支持,反正你需要的东西轻巧。机会是DAL不会太大,所以自己滚吧。

Roll your own DAL. Don't attempt to use datareaders etc. directly from UI code and don't use typed datasets either. There may be third party DALs that work with Windows Mobile (i.e. I know LLBLGEN does, might be worth a look) but Linq-to-SQL is not supported and anyway you need something lightweight. The chances are the DAL won't be too big so roll it yourself.

如果您使用的是.NET你可能最终想要的一些未实现的平台功能。我建议使用这种廉价的框架给你什么是你缺少的(特别是涉及到连接和电源管理) - <一个href=\"http://www.opennetcf.com/Products/SmartDeviceFramework/tabid/65/Default.aspx\">http://www.opennetcf.com/Products/SmartDeviceFramework/tabid/65/Default.aspx

If you are using .net you'll probably end up wanting some unimplemented platform features. I recommend using this inexpensive framework to give you what your missing (especially as related to connectivity and power management) - http://www.opennetcf.com/Products/SmartDeviceFramework/tabid/65/Default.aspx

Windows Mobile设备的部分关闭,以在不使用时节省电力。如果你正在做一个轮询式设计,你需要唤醒他们每x分钟。一个正常的.NET定时器类是不会这样做的。你需要使用一个平台功能,可以从OpenNetCF(上图)中使用。定时器类被称为LargeIntervalTimer并在OpenNetCF.WindowsCE组装/命名空间(我认为)。

Windows Mobile devices partially switch off to save power when not in use. If you are doing a polling type design you'll need to wake them up every x mins. A normal .net timer class won't do this. You'll need to use a platform feature which can be used from OpenNetCF (above). The timer class is called LargeIntervalTimer and is in the OpenNetCF.WindowsCE assembly/namespace (I think).

祝您好运!

这篇关于Windows Mobile的发展 - 从哪里开始?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆