Flex 3 è la nuova versione della tecnologia di Adobe per la definizione di un ambiente di sviluppo e di runtime che permette agli sviluppatori di creare front end ad alta interattività che sfruttano i vantaggi del noto Flash Player.
Le applicazioni Flex 2 e Flex 3 interagiscono con la parte di Business Logic attraverso web services, JavaBeans e tutte le tecnologie server side (PHP, Coldfusion, .NET, Ruby on Rails) e si inseriscono in complesse architetture Enterprise (J2EE) garantendo aspetti come la sicurezza e la separazione tra presentazione e logica.
Il nucleo di Adobe Flex è rappresentato dal Flex Framework, che verrà distribuito gratuitamente come parte del Flex Software Development Kit (SDK). Questa infrastruttura sviluppa le basi poste da Flash Player 9 e ActionScript 3.0 offrendo una ricca libreria di classi che incorpora le procedure consigliate per la creazione di RIA di successo.
Flex Framework include un'ampia gamma di componenti di interfaccia utente estendibili, un modello flessibile per il controllo del layout e dell'interazione degli utenti e una solida infrastruttura che consente di accedere ai dati da servizi remoti e di associarli agli oggetti e ai controlli dell'interfaccia utente.
La libreria di Flex 3 contiene oltre 100 componenti e contenitori, da semplici widget come pulsanti e finestre di selezione dei colori a controlli avanzati quali griglie di dati, riquadri a fisarmonica e complessi editor di testo. Gli sviluppatori possono costruire l'interfaccia utente di un'applicazione utilizzando i componenti incorporati, ricavandone delle sottoclassi per modificarne il comportamento oppure creandone di nuovi tramite l'API specifica.
Al pari di altri ambienti di sviluppo di interfacce utente moderni, Flex consente agli sviluppatori di utilizzare interazioni predefinite, ad esempio colonne trascinabili in una griglia di dati, o di collegarsi ad alcuni eventi ben definiti per determinare comportamenti specifici dell'applicazione.
Gli sviluppatori progettano i componenti Flex mediante MXML, un linguaggio basato su XML che consente di gestire gli elementi visivi di un'applicazione secondo un approccio dichiarativo. Con l'MXML è possibile posizionare i componenti, specificare determinati vincoli per ottenere un'interfaccia utente più flessibile e visualizzare stati e transizioni per controllare la risposta dell'applicazione alle perse azioni dell'utente e ai vari eventi interni. Per personalizzare l'aspetto di un'applicazione, gli sviluppatori possono impostare le proprietà degli stili incorporati tramite fogli di stile CSS oppure includere risorse grafiche personalizzate tramite il supporto integrato per la modifica in scala a 9 porzioni.
Le applicazioni Flex accedono a dati e servizi tramite un set di componenti di servizio incorporati. Gli sviluppatori possono accedere a dati XML tramite il protocollo HTTP e i servizi web e inoltre sfruttare servizi aggiuntivi offerti da Flex Data Services e LiveCycle Data Services, ad esempio connessione a oggetti Java remoti, messaggistica di pubblicazione/sottoscrizione e nuovi servizi dati per Flex.
Per semplificare l'utilizzo dei dati, Flex offre un'avanzata infrastruttura di associazione dati che aggiorna automaticamente l'interfaccia utente quando i dati vengono restituiti, consentendo alle applicazioni di rimanere reattive anche quando sono in attesa di risultati dal server. Per informazioni più dettagliate sui miglioramenti introdotti in Flex Framework 2, vedere Presentazione di Flex Framework.