Silverlight实例教程 - Out of Browser与COM的交互基础

2012-04-09
浏览
导读:相信读过前几篇Silverlight Out of Browser实例教程的朋友已经对Silverlight的OOB应用有了一定 的认识和了解。今天,我们将讨论Silverlight Out of Browser的另

相信读过前几篇Silverlight Out of Browser实例教程的朋友已经对Silverlight的OOB应用有了一定 的认识和了解。今天,我们将讨论Silverlight Out of Browser的另外一个功能实例,Silverlight OOB 与COM API的交互操作。

在开始实例之前,我们先了解一些基本的概念。

首先说说什么是COM?

这里我不想过多篇幅的讨论COM和COM+,在微软MSDN对COM技术有详细的解释,有兴趣的可以看看。这 里我们只是对COM进行一个简单的描述。所谓COM也就是Componet Object Model,中文称为组件对象模型 ,通常被用于创建可复用软件组件。在微软的产品中,许多应用都提供了COM接口供开发人员调用。其中 较为典型的是 Office系列的COM接口。

对于COM和COM+的专业定义,COM是一种说明如何建立可动态互变组件的规范,此规范提供了为保证能 够互操作,客户和组件应遵循的一些二进制和网络标准。通过这种标准将可以在任意两个组件之间进行通 信而不用考虑其所处的操作环境是否相同、使用的开发语言是否一致以及是否运行于同一台计算机。 而 COM+可以称为COM的一个升级版本,其底层结构仍然以COM为基础,它几乎包容了COM的所有内容,COM+综 合了COM、DCOM和MTS这些技术要素,它把COM组件软件提升到应用层而不再是底层的软件结构,它通过操 作系统的各种支持,使组件对象模型建立在应用层上,把所有组件的底层细节留给操作系统,因此,COM+ 与操作系统的结合更加紧密。值得注意的是COM+不再局限于COM的组件技术,它更加注重于分布式网络应 用的设计和实现。

Silverlight 4对COM的支持

早期的Silverlight开发人员都知道,Silverlight作为客户端技术,无法执行权限较高的操作,例如 读写本地磁盘,执行本地命令等。Silverlight 4的发布,增加对COM的支持,允许Silverlight在OOB信任 应用下,对COM API进行互操作,该功能提高了Silverlight的功能,是其应用如同Windows应用一样,轻 松操作Windows API。这里请大家注意,微软给出的建议,Silverlight 4对于COM的支持,仅限于Windows 操作系统的COM组件,暂时不能支持用户自定义创建的COM组件,这是目前存在的局限性,不过相信随后的 Silverlight版本,会解决这个问题。

Silverlight 4与COM交互技术基础

微软为开发人员提供了相关的API,使Silverlight 4和COM交互操作开发简单化。其要点如下:

在Silverlight 4测试版本中与COM交互类是使用ComAutomationFactory静态类,而在Silverlight 4正 式版中,微软将ComAutomationFactory修改为AutomationFactory类。

AutomationFactory类是在System.Runtime.InteropServices.Automation命名空间下,提供四个方法 和一个属性

Silverlight编程模型、XAML和HTML DOM

Silverlight对象树

Silverlight中如何为浏览器外应用程序实现

Silverlight中如何为浏览器外支持配置应用

使用LINQ和ADO.NET创建Silverlight程序