Tangram for Internet Explorer
Tangram是一种使得软件系统的UI架构与软件系统实现“分离”的插件技术,通过这种“分离”,软件系统的UI可以在一定程度上独立于软件系统的设计,在设计环节中,其他软件组件,例如COM、.NET组件可以自然的以插件的形式融入目标软件系统。……
Tangram for Internet Explorer是Tangram技术与Internet Explorer结合的结果。从表现形式上看,Tangram for Internet Explorer相当于在IE的主体框架窗体与HTML显示视图(浏览视图)之间加入了一个UI层,与WPF等新技术不同,WPF将内容显示在常规的之中,而Tangram for IE则将内容显示在浏览视图并列的空间之中,相当于在主框架中重新建立框架,而通常意义之下的浏览视图则相当于新框架中的一个“View”。图示如下:
(通常意义下的浏览器)
如上图显示的是通常意义下的浏览器,浏览视图占据整个浏览器的用户区域,如下图显示一个与Tangram技术结合后的Internet Explorer运行时实例:
通常情况下的浏览视图作为新框架中的一个“View”
|
(我们看到在浏览视图与主框架之间插入了一个UI层)
在通常情况下,IE一般是将所浏览的目标显示在浏览视图之内,这一点形成了今天十分流行的“B/S”应用模式,流行的Web技术基本上都是围绕这类开发展开的,目前几个重要的RIA框架,例如Microsoft的WPF与Adobe的“Flex”等在浏览器方面的表现大都如此。IE是Microsoft提供的最基础的浏览器框架,早在1997年IE4.0的时代,Microsoft就提供了针对IE框架的扩展技术,使得开发者可以为IE提供自己的工具条、ExplorerBar对象,Microsoft为IE提供的自己的扩展对象通常都表现为这种对象,即Band对象,Band对象在其他浏览器框架中被称为“侧边栏”,许多流行的浏览器框架,例如FireFox、Maxthon等均提供了丰富的基于“侧边栏”的扩展技术,事实上,这方面Microsoft应该是最早提供的开发接口,但在IE中并没有流行起来,相反却成为其他浏览器框架的关键特征,之所以如此,其原因是IE的ExplorerBar开发的门槛过高,使得许多开发者望而却步。最初Tangram的切入点是从这里入手的。
Tangram for IE的第一个关键特征是为IE提供一个极为灵活的ExplorerBar“制作”系统,ExplorerBar(即其他浏览器中的侧边栏)可以为IE提供额外的UI以弥补IE默认框架的UI表现力,通常情况下IE提供的ExplorerBar如下图的菜单所示:
(激活的菜单项列举了通常情况下IE的ExplorerBar)
一般说来,IE的ExplorerBar的开发需要很好的COM技术底蕴,而且绝大多数的ExplorerBar是基于C++框架开发的,由于接口比较复杂,因此,即使是熟练的C++开发者也不能自如的驾驭这种Band技术框架,这一点是IE扩展技术的天然屏障。Tangram for IE通过XML技术为IE Band扩展提供了一个描述层,使得开发者可以避开Band框架的底层技术细节进而直接构造自己的Band对象,这个描述层与开发者所熟悉的开发语言基本是无关的,如下图所示:
(通过Tangram技术,开发者可以非常灵活的构造自己的表现力丰富的IE侧边栏系统)
(具备左侧、底部的双侧边栏扩展)
通常情况下,每个侧边栏对象都是一个Band对象,进而也是一个具备独立标示的COM对象,每个这类对象都在特定的菜单上保留了一个位置,因此,传统的IE Band扩展有一个明显的缺陷,即当Band对象过多的时候,关联的菜单结构会很复杂,Tangram框架提供了一个基于“
Asynchronous Pluggable Protocol”的协议,通过这个协议,用户可以通过在IE地址栏中输入特定的URL加载特定的Band对象,这是Tangram中非常有趣的特征之一,这个特征对IE的一个明显的改变是扩大了IE浏览对象的范围,使得IE的左侧、底部在一定意义下都变成了浏览区域,但与中心位置的浏览视图不一样的是,中心位置是浏览“建立在HTML基础上的传统Web内容以及新生的WPF等内容体系”,而左侧、底部的“浏览”则是面向传统的Win32/COM/.NET技术所开发的具有桌面软件特征的内容体系,这一点客观上形成了桌面软件内容与Web内容的自然结合体,使得基于IE的开发形成了独特的“B/C/S”结构,当然,Tangram提供的“
Asynchronous Pluggable Protocol”协议也是基于Internet方式的。
Tangram for IE的第二个关键的技术特征是针对IE传统客户区域提供的定制化描述方案。除了大量的基于Web开发工作形成的软件内容之外,桌面软件开发依然是软件开发的一个十分巨大的市场,这一点是一个不争的事实。如何将桌面软件开发与基于浏览器的Web开发恰当的结合起来是一个关键的技术课题,Tangram for IE的另外一个思考点就是将“桌面软件开发与Web开发自然的”结合在一起,基于这样的考虑,Tangram致力于为IE提供一个灵活的UI框架,使得在IE框架内开发者可以根据自己的需要将Web开发与桌面软件开发灵活的结合在一起。由于IE框架固有的局限,IE的客户区的中心位置被“浏览视图”完全占有,因此,现有的技术基本没有能力解决IE客户区中“浏览视图”与开发者提供的软件框架共享的问题。如下图所示:
(Tangram框架使得桌面软件开发与IE的Web开发自然的融合在一起)
通过基于XML的描述技术,桌面开发与Web开发可以共享IE的框架结构,这一点可以使得桌面软件的优势与Web软件的优势之间形成一种“平衡”,例如,大量的桌面应用可以自然的具备WWW功能,同时Web开发可以通过类似Ajax技术自然的与桌面软件技术相互作用、结合。由于桌面软件的复杂性,Tangram的IE定制化描述方案也是基于“
Asynchronous Pluggable Protocol”协议实现的,这样,每一个描述方案都自然对应一个URL,每个这样的URL都相当于一个“个性化”IE的“副本”,同时也相当于一个“第三方浏览器”。从这个角度看,Tangram的这个特征使得IE成为一个桌面软件开发的“开发框架”,大量的Microsoft成熟的软件技术都可以按照这个方式集成到IE框架之中。
Tangram for IE的一个关键的技术组件是一个“
Asynchronous Pluggable Protocol”协议,这个协议有3个定向,分别是“left”、“bottom”、“client”,与大多数桌面软件的流行结构比较,我们发现,大多数流行的桌面软件的基本框架结构都存在类似的结构特征。这个协议使得IE的基本轮廓结构发生了极为灵活的变化,同时也使得IE成为现在桌面软件中最为灵活的一个软件框架。与Microsoft最近的类似WPF技术不同,Tangram侧重于软件开发框架的构造,使得IE成为绝大多数桌面软件开发的基本起点,是Tangram的最重要特征。许多流行的技术大都是针对IE浏览区域的,Tangram则使得IE的浏览能力扩展到IE浏览区域的周围以及其“并列”的空间,除了IE工具栏之外的空间,Tangram都可以为IE提供新的软件元素,使得传统技术与新兴技术之间找到自然的结合点。