ActiveX es un marco de software obsoleto creado por Microsoft que adapta sus tecnologías anteriores de Modelo de objetos componentes (COM) y Vinculación e incrustación de objetos (OLE) para el contenido descargado de una red, en particular de la World Wide Web . [1] Microsoft introdujo ActiveX en 1996. En principio, ActiveX no depende de los sistemas operativos Microsoft Windows , pero en la práctica, la mayoría de los controles ActiveX solo se ejecutan en Windows. La mayoría también requiere que el cliente se ejecute en una computadora basada en x86 porque los controles ActiveX contienen código compilado. [2]
ActiveX todavía es compatible con el "modo Internet Explorer" de Microsoft Edge (que tiene un sistema de extensiones diferente e incompatible, ya que se basa en el proyecto Chromium de Google ). [3]
ActiveX fue una de las principales tecnologías utilizadas en la ingeniería de software basada en componentes . [4] En comparación con JavaBeans , ActiveX admite más lenguajes de programación , pero JavaBeans admite más plataformas. [5] ActiveX es compatible con muchas tecnologías de desarrollo rápido de aplicaciones, como Active Template Library , Delphi , JavaBeans, Microsoft Foundation Class Library , Qt , Visual Basic , Windows Forms y wxWidgets , para permitir que los desarrolladores de aplicaciones incorporen controles ActiveX en sus productos.
Muchas aplicaciones de Microsoft Windows (incluidas muchas de las de la propia Microsoft, como Internet Explorer , Microsoft Office , Microsoft Visual Studio y Windows Media Player ) utilizan controles ActiveX para crear su conjunto de funciones y también para encapsular su propia funcionalidad como controles ActiveX que luego se pueden incrustar en otras aplicaciones. Internet Explorer también permite la incrustación de controles ActiveX en páginas web .
Ante la complejidad de OLE 2.0 y el escaso soporte para COM en MFC , Microsoft simplificó la especificación y renombró la tecnología como ActiveX en 1996. [6] [7] Incluso después de la simplificación, los usuarios aún requerían que los controles implementaran alrededor de seis interfaces principales. En respuesta a esta complejidad, Microsoft produjo asistentes , clases base ATL , macros y extensiones del lenguaje C++ para simplificar la escritura de controles.
A partir de Internet Explorer 3.0 (1996), Microsoft añadió soporte para alojar controles ActiveX dentro del contenido HTML. Si el navegador encontraba una página que especificaba un control ActiveX mediante una OBJECT
etiqueta (la OBJECT
etiqueta fue añadida a la especificación HTML 3.2 por Charlie Kindel , el representante de Microsoft ante el W3C en aquel momento [8] ), descargaba e instalaba automáticamente el control con poca o ninguna intervención del usuario. Esto hizo que la web fuera más "rica", pero provocó objeciones (ya que dichos controles, en la práctica, sólo se ejecutaban en Windows y se requerían controles separados para cada plataforma compatible: uno para Windows 3.1/Windows NT 3.51, uno para Windows NT/95 y uno para Macintosh M68K/PowerPC) y riesgos de seguridad (especialmente dada la falta de intervención del usuario). Posteriormente, Microsoft introdujo medidas de seguridad para hacer que la navegación que incluyera ActiveX fuera más segura. [9]
Por ejemplo:
ActiveX fue controvertido desde el principio; mientras que Microsoft afirmaba en sus materiales de marketing que era fácil de programar y que ofrecía un buen rendimiento en comparación con los applets de Java , los críticos de ActiveX se apresuraron a señalar problemas de seguridad y falta de portabilidad, lo que lo hacía poco práctico para su uso fuera de intranets protegidas . [10] El modelo de seguridad de ActiveX dependía casi por completo de la identificación de desarrolladores de componentes de confianza mediante una tecnología de firma de código llamada Authenticode . Los desarrolladores tenían que registrarse en Verisign (20 dólares estadounidenses al año para particulares, 400 dólares para empresas) y firmar un contrato, prometiendo no desarrollar malware . El código identificado se ejecutaba entonces dentro del navegador web con todos los permisos, lo que significa que cualquier error en el código era un posible problema de seguridad; esto contrasta con el sandboxing que ya se utilizaba en Java en ese momento. [11]
En octubre de 1996, Microsoft lanzó una versión beta del kit de desarrollo de software ActiveX (SDK) para Macintosh , que incluía un complemento para Netscape Navigator en Mac, y anunció su plan para soportar ActiveX en Solaris más tarde ese año. [12] Seis meses y dos versiones beta más tarde, todavía no había ningún complemento ActiveX para Macintosh disponible comercialmente. [13]
En 1997, NCompass Labs, en cooperación con Microsoft, lanzó un complemento para Netscape Navigator para soportar ActiveX. [14]
La documentación sobre la tecnología central ActiveX se encuentra en The Open Group y se puede consultar de forma gratuita. [15]
A pesar de los esfuerzos previos de Microsoft por hacer que ActiveX sea multiplataforma, la mayoría de los controles ActiveX no funcionan ni funcionarán en todas las plataformas, por lo que el uso de controles ActiveX para implementar la funcionalidad esencial de una página web restringe su utilidad. El gobierno de Corea del Sur , en un movimiento gravitacional agnóstico del software, comenzó alrededor de 2015 a eliminar la tecnología de sus sitios web públicos para que su sitio web sea accesible a más plataformas. [16]
Si bien Microsoft realizó esfuerzos significativos para impulsar el aspecto multiplataforma de ActiveX mediante la publicación de la API, en última instancia el esfuerzo multiplataforma fracasó debido a que los controles ActiveX estaban escritos en C o C++ y compilados en lenguaje ensamblador Intel x86 , lo que los hacía ejecutables solo en máquinas Windows donde pueden llamar a las API estándar de Win32 . [17]
Microsoft eliminó la compatibilidad con ActiveX de la edición de Internet Explorer 10 de la Tienda Windows en Windows 8. En 2015, Microsoft lanzó Microsoft Edge , el reemplazo de Internet Explorer, sin compatibilidad con ActiveX; este evento marcó el final de la tecnología ActiveX en el desarrollo de navegadores web de Microsoft. [18] Microsoft Edge se entrega con la función "Modo Internet Explorer", que admite ActiveX.
Microsoft ha desarrollado una gran cantidad de productos y plataformas de software que utilizan objetos ActiveX. Todavía se utilizan (por ejemplo, los sitios web que aún utilizan ASP):
El término ActiveX apareció en el mundo de Microsoft a principios de 1996.
Microsoft Corp. anunció hoy las tecnologías ActiveX... que facilitan a la más amplia gama de desarrolladores de software y diseñadores web la creación de contenido dinámico para Internet y PC.... Las tecnologías ActiveX forman un marco sólido para crear contenido interactivo utilizando componentes de software, scripts y aplicaciones existentes. En concreto, las tecnologías ActiveX permiten a los desarrolladores crear contenido web fácilmente utilizando controles ActiveX (anteriormente controles OLE), scripts activos y documentos activos.... Las tecnologías ActiveX están disponibles en forma de kit de desarrollo ActiveX de Microsoft, que se está distribuyendo a más de 4000 desarrolladores que asisten a la conferencia de desarrolladores profesionales en San Francisco hoy.
Complemento ActiveX de ncompass.