# ActiveX

ActiveX (dall'inglese Active e eXtension, Estensione Attiva) è una tecnologia annunciata nel 1996 dalla Microsoft destinata agli sviluppatori e creata per poter estendere le potenzialità e le funzioni di un'applicazione. L'ActiveX non è un linguaggio di programmazione, ma appunto una estensione che, integrata in un'applicazione predisposta all'utilizzo di questa tecnologia, permette di aggiungere nuove potenzialità, comandi ed, eventualmente, semplificare alcuni processi, soprattutto nell'ambito dello sviluppo di software.
Con l'avvento di HTML5 e l'abbandono da parte di Microsoft di Internet Explorer a favore di Microsoft Edge, questa tecnologia è oggi superata.

## Origine

La tecnologia ActiveX deriva da due precedenti tecnologie Microsoft: OLE (Object Linking and Embedding) e COM (Component Object Model).

### La tecnologia OLE

Introdotta nel sistema operativo Windows per semplificare l'interattività tra più applicazioni indipendenti (OLE Automation), la tecnologia OLE ha il compito di permettere la gestione di documenti composti (ad esempio, un testo di Word che al suo interno contiene un foglio di calcolo di Excel). Documenti di questo tipo hanno la particolarità di essere praticamente indipendenti; quindi, l'elaborazione rimane incentrata sul documento, piuttosto che sulle varie applicazioni che sono coinvolte alla sua creazione.
Una funzionalità simile fu precedentemente incorporata nel System 7 (1991) del Macintosh con il nome "Publish and Subscribe". Dei dati presi da un programma potevano essere incorporati in altri programmi. L'aggiornamento era dinamico.

### La tecnologia COM

La tecnologia COM può essere considerata un'evoluzione ed un ampliamento di quella OLE. La particolarità di questa tecnologia è la possibilità di importare le funzioni di un'applicazione all'interno di un'altra, attraverso un collegamento (le applicazioni rimangono indipendenti e comunicano) o l'incorporazione (l'applicazione ingloba le capacità dell'altra e rimane indipendente).

## I controlli ActiveX

I controlli ActiveX sono veri e propri programmi al cui interno sono raggruppati comandi e funzioni. Alcuni programmi, come Internet Explorer, o alcuni linguaggi di programmazione, come Visual Basic, possono importare questi controlli e quindi sfruttarne le potenzialità. Gli ActiveX possono essere creati con molti linguaggi tra cui C, C++, VisualBasic e Java.

### ActiveX e sviluppo software

Nell'ambito della programmazione software, i controlli ActiveX hanno una notevole importanza in quanto permettono di integrare funzioni molto complesse e avanzate "già pronte" che necessitano di essere solo personalizzate.
Questo significa, per esempio, che un controllo ActiveX per la gestione dei video permette al programmatore di accedere subito e con poche righe di codice a tutte le funzioni per ottenere informazioni su un video e per riprodurlo (senza tale ActiveX, il programmatore avrebbe dovuto acquisire conoscenze approfondite sulla gestione dei video e spendere molte ore a programmare).
Gli ActiveX più diffusi sono quelli per il linguaggio di programmazione Visual Basic.

### Evoluzione degli ActiveX nella piattaforma .NET

Con l'introduzione dell'ambiente di sviluppo .NET, gli ActiveX hanno subito una notevole evoluzione. Inoltre, per differenziarli dai componenti della piattaforma a 32 bit standard, adesso sono conosciuti come Componenti .NET o, in gergo tecnico, Componenti WinForm. Alcune delle caratteristiche salienti di questa nuova generazione di ActiveX sono:
* Proprietà fornite di un'interfaccia grafica per modificare il Controllo in design-time;
* Funzioni del Controllo che si integrano anche nella Form e in altri componenti.

### ActiveX e Internet Explorer

Un controllo ActiveX può essere automaticamente caricato ed eseguito da Internet Explorer. A differenza di un applet Java, ha accesso completo al sistema operativo Windows e all'applicazione stessa. Ciò permette di integrare funzioni molto avanzate nell'ambito dello sviluppo di siti internet, ma espone l'utente al rischio di un attacco di cracker e all'installazione di malware. Per controllare questo rischio, Microsoft ha ideato un sistema di registrazione con cui un browser identifica e permette all'ActiveX di funzionare. In Internet Explorer, il controllo ActiveX è considerato un controllo OLE integrato dentro una pagina HTML. Può essere, ad esempio, un oggetto semplice come un box di testo, oppure un oggetto più complesso come un grafico statistico o un intero foglio elettronico. I controlli ActiveX forniti con Internet Explorer vengono installati automaticamente ed eseguiti all'apertura di una pagina web che li contiene.

## Miglioramenti con il Service Pack 2

Con il Service Pack 2 e con aggiornamenti successivi viene aggiornata la gestione dei controlli ActiveX in modo da impedire l'esecuzione senza permesso degli script. Ora il box di scelta se installare o meno il controllo contiene più informazioni ed è più vistoso in modo da allertare l'utente sui possibili rischi derivati dall'installazione.

## Suggerimenti

Per prevenire la diffusione di malware nel proprio PC è possibile adottare delle piccole precauzioni
* Si consiglia di non installare controlli ActiveX provenienti da siti sospetti
* Controllare sempre la firma digitale dei controlli ActiveX per accertarsi della fonte da cui provengono
* Considerare la possibilità di disabilitare il supporto ActiveX nel proprio browser, anche se ciò potrebbe portare alla non corretta visualizzazione di alcuni siti che li richiedono per operazioni avanzate (upload dinamico, chat, ecc.)