ActiveX的兴起

随着Internet/Intranet的普及,人们对网络应用程序开发提出了更高的要求,如:Web页面需要更加丰富生动的多媒体内容;商业应用程序需要更可靠、更加灵活的Web应用软件等。面对当时还不那么完善的HTML技术,开发者只能做些排版布局和简单的表格数据展示,即便刚刚出现的JavaScript,也难以承担复杂的网页动态呈现。

为了解决上述问题,微软提出了ActiveX技术。而 ActiveX 的首次登场,便是在 IE3 中。相比于同期浏览器,IE3增加了不少亮点,包括CSS架构、ActiveX、Java小程序、微软NetMeeting和Internet Mail等。

正是凭借这一版本,微软开启了浏览器的称霸之路,并以此展开了与Netscape、Sun等软件厂商的激烈竞争:

  • 从Internet Explorer 3.0(1996)开始,微软支持了在HTML中托管ActiveX控件,此后又通过 ActiveX Documents 允许在 IE 上直接加载office文件。
  • 与此同时,Netscape在其导航者2.0版本中推出了NPAPI,允许native代码运行,其他浏览器很快也跟进支持,促使NPAPI成为一个共通的插件标准,与微软的ActiveX形成竞争关系。
  • Sun也推出了JavaApplet,这是一种用Java开发的浏览器嵌入式小应用平台,可以在Java虚拟机里运行,解决了用户对安全的顾虑,但是性能一般。

在接下来的几年里,微软不断升级迭代 IE 浏览器,并通过打包分发、免费提供、商业条款、网页标准垄断等一系列商业手段,让 IE 的市场份额不断飙升,直到2002年,IE 浏览器的市场占有率一度达到了96%,而 ActiveX 这一微软推广的技术也随之发展起来。

甚至在当时,国内各大银行的网上银行插件基本都是基于ActiveX开发,需要IE浏览器支持,以至于后面出现的国产浏览器也都以双核心、支持网银作为产品卖点。

ActiveX的衰落

Microsoft在Windows中内置了许多ActiveX,同时也为后来的安全性问题埋下伏笔,越来越多的恶意软件开始伪装成ActiveX,让 IE 浏览器成为了一个开在用户桌面上的后门,可以被任意利用。

即便微软陆续在IE上增加了屏蔽ActiveX运行的方法,如在2007年加上ActiveX兼容性旗标(Killbit)功能;在IE 9以后的版本加上ActiveX Filtering功能,让IE的浏览者能够自定义是否屏蔽特定的ActiveX组件,这些举措也无法从根本上解决ActiveX的安全问题。

直到2008年,速度快、外观精简的 Google Chrome横空出世,打破并且加速了整个浏览器行业的发展速度,IE的积弊使其在前进的步伐上显得迟缓而无力,即便在随后的IE8~IE10有不少的改进,也未能挽回颓势。最终,微软计划不再更新IE,改而宠幸新一代的浏览器Edge。到了这里,浏览器对ActiveX的支持也已经走向了终结。

葡萄城开发控件的技术演变

从ActiveX平台诞生起,葡萄城控件产品就已经对其提供了支持:

  • Spread.NET Com
  • ComponentOne ActiveX

上述两款产品满足了用户在ActiveX场景下对报表、电子表格、制图、数据处理、用户界面交互等功能的快速开发需求,节约了开发成本。

随着ActiveX的落幕以及 .NET的出现,葡萄城也推出了更多基于 .NET框架的控件产品,包括 Spread .NET 和 ComponentOne Enterprise,这两款产品主要用于WinForm、ASP.NET、XAML 和 WinRT 等平台下表格数据处理和数据可视化开发需求。

着眼于未来智慧办公的发展,以及前端 JS 框架的更新迭代,葡萄城基于ActiveX和 .NET 时代的经验积累,推出了更适用于Web开发、跨平台应用和云端架构的纯前端控件 SpreadJS 和服务端组件 GrapeCity Documents for Excel。

  • SpreadJS,一款基于 HTML5 的纯前端表格控件,兼容 450 种以上的 Excel 公式,具备“高性能、跨平台、与 Excel 高度兼容”的产品特性,充分发挥表格技术的高效生产力工具,满足现代智慧办公场景下数据共享、场景化分析和高效率的业务需求,极大的降低企业研发成本和项目交付风险。

  • GrapeCity Documents for Excel (简称:GcExcel), 基于 Java 平台的服务端高性能表格组件,可与纯前端表格控件 SpreadJS 前后端兼容,在服务端批量创建、加载、编辑、打印、导入/导出 Excel 文档,为应用程序提供一整套类 Excel 全栈解决方案。

ActiveX的兴衰,也反映出了软件开发技术的更新迭代,即没有任何一门技术可以一直称霸世界,开发控件本身也要紧随技术发展的潮流,时刻保持良好的系统集成能力与二次扩展能力,聚焦于如何降低企业研发成本和项目交付风险。