LibreOffice修炼手册(四):UNO组件解析

发表时间: 2017-12-01 21:56

UNO, Universal Network Object, 通用网络对象,是LibreOffice最基础的底层设施之一,是一种基于接口通信的跨平台跨编程语言的组件技术方案。

以下是UNO WIKI简介:

​​

UNO类似于COM/COBRA,通过IDL定义接口和服务,定义用户数据(例如枚举,常量,结构体等),通过c++等编程语言实现组件,再通过UNO工具unopkg, umoreg等对提供服务的组件进行注册以供使用。

既然已经有了COM/COBRA/EJB组件技术了,为什么还要再开发一个UNO组件技术呢?以下是UNO开发人员给出的解释:

不过我认为有点勉强吧,这也是UNO现在基本上只用于OpenOffice/LibreOffice系列,其它厂商很少采用的缘故。各种组件技术之间都互有优劣,没有谁占有绝对统治地位,甚至很多有实力的公司也都趋向于开发自己的特定领域的组件方案,或者开发中间件方案。

这也是这么多年来组件技术没有如面向对象技术一般广泛流行开来的一个原因。不过面向组件编程这种思维方式却是得到了广泛支持和推广的,很多有名的库中都有结合组件编程思想在其中的。

要想真正了解LibreOffice源码,UNO组件技术是必须掌握的,至少也要了解UNO组件的常用实现和使用方法。具体请到OpenOffice/LibreOffice WIKI上去了解更多信息。