关注 .NET Compact Framework V3.0 将对 WCF 的支持

Windows Communication Foundation (WCF) 以前叫 Indigo,它为所有的分布式系统技术提供了统一的框架,使得分布式系统的开发不再为选择某种分布式实现技术而伤脑筋,其核心是一套面向服务的API。WCF 确实是个好东西!

今年年初参加过微软开发者日2006,主题是 Vista 和 Office12,了解到 WPF、WCF 和 WWF 的种种好处。在提问时间,我问了一个关于 WCF 的问题:“WCF 确实为桌面分布式应用系统的开发提供了很多激动人心的新特性,但是到目前为止还没有听说过有关移动设备如何支持 WCF 的消息,请问微软打算如何让运行 .NET Compact Framwork 的移动设备支持 WCF 呢?”。当时这个问题并没有得到一个明确的答案,大概是当时确实没有这方面的消息可以透露吧。

如今 Vista 已经接近要发布了,好像是过几天吧?最近几个月才开始学习 WCF、SOA 和 Web Service Software Factory (WSSF)(感觉很落后了,惭愧的很-_-)。就目前的理解是,SOA 提出了一种设计企业级应用系统的新思路,其中的一些原则用于指导开发的应用系统日后能够更方便的跟其他系统进行整合,从而提高应用系统的可重用性。WCF 和 WSSF 的架构都遵循了 SOA 的模式。(汗……有点偏题,马上纠正,职业病,职业病……)

言归正传吧,今天是要让大家了解一下,.NET Compact Framework 的下一个版本将如何支持 WCF。今天从 Roman Batoukov 的Blog了解到了一些这方面的消息。.NETCF Team 自从发布了 V2.0 之后,就开发忙个不停的策划和开发下一个版本 V3.0 了。其中一个重要的任务就是要对桌面的 WCF 框架进行精简,并移植到移动设备上,即 .NET CF V3.0。

他们整天在苦思着人们会利用 WCF 开发什么样的应用程序,后来他们想到“Lunch Launcher”这个场景。比如公司里有几个同事,经常约好中午一起到哪间餐厅吃饭,他们通过投票做决定。由于他们平时可能不在办公桌旁边,所以他们想通过 Windows Mobile 设备利用公司的无线网络或者GRPS/CDMA网络实现投票。因此他们需要这样一个应用程序,首先由其中一位同事发送一个投票邀请给其他各位同事,邀请附带了一个餐厅的列表,其他同事收到邀请后进行投票,将投票信息反馈给发邀请的同事,最后发邀请的同事再将投票结果发送给其他同事。

这个程序实现起来不是一件容易的事,首先,一个设备如何找到另外一个设备?设备的IP是不稳定的,而且不能被发现,这样就注定了不能采用推的模式进行消息的传达(即P2P);其次,设备的网络连接非常不稳定,当你要发送消息的时候,对方可能已经不在线了。这些情况是开发 Windows Mobile 分布式应用程序经常遇到的头疼问题,我自己就经常被这些问题烦着。

那么,有没有一种技术能够解决以上两个问题呢?当然有了,不然这篇随笔就没必要写了^_^。我们经常在发EMail,即使现在网络通信软件的功能已经很强大了,但我们还是离不开EMail。它如何解决上面的两个问题呢?首先,EMail 地址其实就是一种唯一的标识,可以用来解决设备定位的问题,代替IP的标识方式;其次,当你发送一封 EMail 给某个人时,他并不需要在线,当他在线的时候,邮件客户端(如Outlook)很快就收到你发送的邮件。两个问题都解决了。



说了这么多,跟 WCF 有什么关系呢?WCF 支持多种传输信道(Transport Channels),如 HTTP、TCP、EMail等,并且支持自定义。在桌面版本的 WCF 中,默认是不提供 EMail 这种传输信道的,但有人已经实现了。然而,从上面的分析,EMail 这种古老阿传输方式,对于 Windows Mobile 设备来说,有很重要的意义。那么,在 WCF Compact Edition 中,将把 EMail 作为内置的一种传输信道。Raman 的建议是,在网络状况良好的情况下,不需要用EMail这种方式,可以把它作为一种候选的方案,或者作为一种轻量级的通知机制,触发 SQL Server Everywhere 进行 RDA/Merge Replication 进行数据同步。

 


我们可以利用 Exchange Server 来存储邮件数据,通过 Exchange 提供的 Web Service 对邮件数据进行访问。
 


期待 .NET Compact Framework V3.0 的到来
posted @ 2006-11-02 00:17  黎波  阅读(3161)  评论(2编辑  收藏  举报