ActiveX es un entorno para definir componentes de software reusables de forma independiente del lenguaje de programación. Las aplicaciones de software pueden ser diseñadas por uno o más de esos componentes para así proveer su correspondiente funcionalidad.[1]
ActiveX fue presentado en 1996 por Microsoft como una evolución de sus tecnologías Component Object Model (COM) y Object Linking and Embedding (OLE) y se usa generalmente en su sistema operativo Windows, aunque la tecnología como tal no está atada al mismo.
Muchas aplicaciones Microsoft Windows — incluyendo muchas del propio Microsoft como puedan ser Internet Explorer, Microsoft Office, Microsoft Visual Studio, y Windows Media Player — usan controles ActiveX para proveer sus juegos de funcionalidades y también encapsular su propia funcionalidad como controles ActiveX que así pueden ser empotrados en otras aplicaciones. Internet Explorer también permite empotrar sus propios controles ActiveX en páginas web.
El actual navegador de Microsoft, Microsoft Edge, no soporta esta tecnología.[2]
Los controles Active X son pequeños bloques empleados para la creación de programas, que se pueden usar para crear aplicaciones distribuidas que funcionen a través de Internet empleando navegadores web. Algunos ejemplos incluyen aplicaciones para la recopilación de datos, para la visualización de determinados tipos de datos o para reproducir animaciones.
La idea de los controles Active X era buena en tanto que fueron diseñados con la finalidad de ser descargados y ejecutados por los navegadores web. Es lo que hacen los Java applets pero los controles Active X presentan limitaciones que no se encuentran en los Java applets:
Los controles ActiveX se pueden programar en cualquier lenguaje con soporte para desarrollo de componentes COM, incluidos:
Algunos ejemplos de controles ActiveX son los command buttons, list boxes, dialog boxes, y el propio navegador web Internet Explorer.
Cuando Microsoft se topó con la complejidad de OLE 2.0, y dado que en MFC contaban con un soporte de COM pobre, este decidió racionalizar las especificaciones para simplificarlas y le cambió el nombre a la tecnología, en 1996, llamándola ActiveX.[5][6] Incluso después de dicha simplificación, los usuarios seguían requiriendo controles con los que implementar aproximadamente seis interfaces principales. Como respuesta a esta necesidad, Microsoft produjo asistentes, clases básicas de ATL, macros y extensiones para el lenguaje de programación C++, con el fin de hacer más accesible la implementación de los controles.
A partir de Internet Explorer 3.0 (1996), Microsoft cogió soporte para la inclusión de controles ActiveX en contenidos HTML. De ese modo, cuando el navegador web encontraba una página que definía un control ActiveX mediante una etiqueta HTML de tipo OBJECT
, se descargaba e instalaba automáticamente el control, con poca o ninguna interacción por parte del usuario. Así se ampliaba la funcionalidad de la web, pero también se creaban nuevos problemas de seguridad (especialmente dada la falta de interacción del usuario). Además surgieron otras críticas, debido principalmente a que estos controles estaban pensados para funcionar sólo con Windows. Microsoft introdujo posteriormente medidas de seguridad para tratar de hacer más segura la navegación con ActiveX:[7]
No siempre es posible utilizar Internet Explorer para ejecutar el contenido ActiveX (por ejemplo, en una instalación como Wine)
ActiveX se encuentra en muchos otros productos de Microsoft. En 2009 siguen en uso: