您当前的位置:首页 > 计算机论文>软件开发论文

基于IE内核开发本机轻量级软件的研究和实现

2016-06-13 11:21 来源:学术参考网 作者:未知

  本论文介绍利用IE内核开发本机轻量级软件的优势,并分析Web开发技术的局限性,以及如何通过扩展IE内核来满足本地轻量级软件开发的要求。

 

  IE内核是微软IE浏览器的核心部分,它以Webcontrol控件为内核,负责解析网页语法(如标准通用标记语言的子集HTMLJavaScript)并渲染、展示网页。本机轻量级软件限指非计算、数据存储、图像处理密集型的本机软件,如各种网络客户端,各种工具软件等。该类软件体量小,仅浏览器前端开发技术(HTML+Javascript+CSS)即可实现软件的显示和控制界面,再通过本文中的浏览器扩展技术对本地SDK接口的调用,可以完成该类软件的功能需求。其中Web前端开发技术开发技术具有轻量化,良好的交互性,开发效率高,便于UI人员协同工作等优点。同时相对于传统的Web开发技术如AspJsp,无需在目标机器上配置数据库和服务器等各种工具,简化了部署流程。通过Web前端开发技术和浏览器扩展技术开发本地轻量级软件的解决方案,充分利用了IE内核在Windows操作系统自带的特点,具有免安装,免编译,方便维护和调试的优点。

 

  1 使用IE内核开发本地轻量级软件的分析

 

  虽然Web开发技术具有诸多优点,但是它仍然属于网络领域开发范畴,基于通用性和安全性的考虑,在利用IE内核开发本地软件时会遇到一些局限性,包括:

 

  (1)HTML语言只提供了数十个标签供软件开发使用,除了这些标准的标签和属性,软件开发人员无法实现特殊的功能,比如图像的旋转等。

 

  (2)Javascript脚本语言只能访问有限的本机资源,绝大部分软件需要访问的数据库资源,文字资源都无法访问。

 

  针对以上这些缺陷,参考现阶段Widget技术的实现,并结合Web开发技术现有的特点,IE内核扩展主要从下面两个方向进行研究:

 

  (3)扩展Javascript脚本内置对象使Javascript脚本语言中可以通过诸如:

 

  System.Shell.getEnvironmentVariable(variableName);

 

  System. Shell.Read(pathString);

 

  System. Shell.Write(pathString);的形式,提供访问本地注册表,读写本地文件等功能。

 

  (4)扩展Html标签使Html通用标记语言中可以加入诸如:

 

  的自定义标签和属性,控制图片的显示和旋转等功能。

 

基于IE内核开发本机轻量级软件的研究和实现


  2 IE内核扩展的实现

 

  2.1 扩展Javascript脚本内置对象

 

  IE内核使用MSHTML技术提供的接口用来访问DHTMLDHTML即动态HTML对象模型,通过这一技术,Web设计师直接在运行页面中控制HTML实行动态的效果。由于在Windows平台上实现的DHTML对象都是基于IDispath接口,所以可以利用MSHTML技术支持的语言对这些对象进行访问,包括C\C++Delphi以及.NET平台所支持的语言等进行访问。

 

  由于在Javascript中书写类似:System.Shell.getEnvironmentVariable(variableName);的语句,其实是对Html Document对象的接口调用,完整的写法是document.System.Shell.getEnvironmentVariable(variableName);其中documentJavascript脚本内置对象,隶属于标签对象,可以通过MSHTML技术提供的COM接口和方法来操作HTML文档中的对象,其中IHTMLDocumentIHTMLDocument2IHTMLDocument3IHTMLDocument4IHTMLDocument5都是与HTML文档中的标签对象对应的,并包括了该标签对象所有的属性,方法和事件。通过给该对象动态添加新的类属性,可以提供给Javascript脚本访问,达到扩展Javascript脚本内置对象的目的。

 

  考虑到内置类名如" System.Shell "带有命名空间的形式,而Javascript并不支持这种命名空间形式,会把这种点号解释成对属性或者方法的引用,所以需要通过嵌套类实现这种命名空间的形式,如图1所示。

 

  其中对于System.Environment类的引用就是通过一个顶级类MySystem包含一个“System”属性,然后为其添加属性“Shell”,对应一个MyShell类,这样便可以完成对于System.Shell类的引用了。具体的做法还为每个类都添加了一个接口,这个接口的属性和方法对应于给Javascript脚本文档中公布出来的属性和方法,然后用一个具体类实现这个接口,这样就可以很好地进行信息的封装和隐藏。

 

  2.2 扩展Html标签

 

  二进制行为利用了MSHTML技术,其主要用来添加新的HTML标签,包括对象的属性,行为和方法。相较于用脚本实行的行为而言,二进制脚本行为因为是编译过的,所以提供了更高的安全性,正因为这一特点,浏览器赋予了二进制行为比脚本行为具有更高的权限,也可以执行许多脚本语言不能执行的操作。此外由于二进制行为的实现语言更贴近操作系统,所以相对于脚本语言其可以访问整个操作系统,并进行所有应用程序能进行的所有操作。

 

  具体的实现通过两个接口:IElementBehaviorFactoryIElementBehavior。其中IElementBehaviorFactory接口是用于添加二进制行为,在其中的GetBehavior工厂方法中返回IElementBehavior接口的实现,即一个具体的二进制行为类,在下面的例子中行为类通过继承实现了一个IHTMLPainter接口,完成了对标签重绘进行控制。表1为示例代码。

 

  3 结束语

 

  本论文介绍了利用IE内核开发本地轻量级软件的优势,分析了其中的局限性,以及对应的解决方法,包括扩展Javascript内置脚本对象和添加二进行为组件,帮助开发人员更快、更方便地开发本地轻量级软件。

 

  作者:张名明 郑俊 来源:电子技术与软件工程 201521

相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页