Microsoft  CSIP   WindowsMobile   MEDC   合作伙伴   体验中心 设为首页 加到收藏夹

 
登录       点击换一张     注册新用户 找回密码

Windows Mobile 进阶系列之.WCF Mobile-3
2008年07月29日09:04   编辑:黄季冬 来源: 博客 浏览: 170

  本文是我前两篇WCF Mobile文章的续篇,主要阐述如何使用Compact WCF特有的Email Transport的消息模型在我们的应用程序中进行实际的开发。

Windows Mobile 进阶系列之.WCF Mobile-1

Windows Mobile 进阶系列之.WCF Mobile-2

   How it works?  

  在前面的随笔中已经提到,Email Transport提供了给设备定址的能力。也就是说,消息可以被准确的发送给移动设备,而且可以被存储起来,在下一次同步的时候再发送出去。这使得移动设备应用程序的开发人员可以在程序中将消息暂存在本地,在同步的时候再经Exchange 2007 发送给邮件中心。而在服务端,消息也可以根据邮件地址被Push到各个与之对应的移动设备上。使用这种Email可本地存储的方式来存放消息,使得我们的客户端(设备端)应用程序即使重起,或者设备重起也不会对消息产生干扰。下图演示了基于Windows Mobile和Exchange Server 2007的Email Transport的工作原理:

 

 

 

  作为程序员关心的重点,消息处理层是不希望受到邮件传输层的影响的,或者说程序员通常希望不管是什么传输方式都对他的消息处理层没有什么影响,WCF Email Transport的消息处理层结构如下:

 

  Email Transport采用的是邮件地址+信道名称的绑定方式对移动Client定址,这有点类似于IP地址+端口的定址方式,邮件地址用于给设备定址,信道名(ChannelName)用于给应用程序定址。Compact WCF提供的邮件信道是一个单向的信道(意思是单次的行为总是单向的),就是说Message要么从ServerDevice,要么从DeviceServer,在等待消息发送的时候信道处于阻塞态。所以跟很多通信程序一样,建议您最好在服务器上为每一个信道的listener分配一个单独的线程去完成数据的处理工作,这样就不用因这种阻塞而干扰主程序的执行。

  Email消息的传输过程需要Exchange Server 2007的支持,呃,我的意思是实实在在的需要Exchange 2007,不仅仅需要我们的设备能连接到它,而且还要在Server端做一些工作,才能使这个Email Transport的过程跑起来。 


  好了,有了一个大概的认识,现在我们可以试着编程了。还是跟这里一样,我们先从比较熟悉的PC端控制台程序开始。它尝试以Email的形式给设备发送消息。在开始之前别忘了添加以下两项引用:

  Ø Microsoft.ServiceModel.Mail.dll

  Ø Microsoft.ServiceModel.Channels.Mail.ExchangeWebService;

  同时,这里我们要用到之前这篇blog中的两个类

12末页下一页

发表评论
评论标题 :
评论内容 :

    查看评论

请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。 本站拥有管理笔名和留言的一切权利。
相关文章推荐
· 传微软将推ZunePhone 与iPhone展开竞争 2008-7-25  Alright 驱动之家
· 传微软将推ZunePhone 与iPhone展开竞争 2008-7-25  Alright 驱动之家
· WM平台Windows Live软件升级 2008-7-23  科技资讯
· WM平台Windows Live软件升级 2008-7-23  科技资讯
· WM6应用层代码检测POWER键RESUME动作 2008-7-21  Walzer

  

论坛推荐  
热点活动
更多»

© CSIP 信息产业部软件与集成电路促进中心 All Rights Reserved 版权所有 京ICP备06020771号
联系电话:010-63951881-8003 王先生        邮件:wangj@csip.org.cn