Stack di tecnologie AEM
AEM utilizza la piattaforma Granite come base e la piattaforma Granite include, tra le altre cose, Java™ Content Repository.
Granite
Granite è uno stack Open Web di Adobe che fornisce vari componenti, tra cui:
- Un modulo di avvio applicazioni
- Un framework OSGi in cui tutto è distribuito
- Diversi servizi del compendio OSGi per supportare le applicazioni di costruzione
- Un framework di registrazione completo che fornisce diverse API di registrazione
- Implementazione dell’archivio CRX delle specifiche API JCR
- Framework web Apache Sling
- Parti aggiuntive del prodotto CRX corrente
Interfaccia utente Granite
La piattaforma di progettazione Granite fornisce anche un framework di base per l’interfaccia utente. Gli obiettivi principali sono:
- Fornire widget di interfaccia granulari
- Implementa i concetti dell’interfaccia utente e illustra le best practice (rendering di elenchi lunghi, filtro di elenchi, CRUD di oggetti, procedure guidate CUD…)
- Fornire un'interfaccia utente di amministrazione estensibile e basata su plug-in
Queste soluzioni rispettano i seguenti requisiti:
- Rispetta "prima il cellulare"
- Essere estensibile
- Facile da ignorare
GraniteUI.pdf
Ottieni file
L’interfaccia utente Granite:
- Utilizza l’architettura RESTful di Sling
- Implementa librerie di componenti destinate alla creazione di applicazioni web incentrate sui contenuti
- Fornisce widget di interfaccia granulari
- Fornisce un'interfaccia utente standard predefinita
- Estensibile
- È progettato sia per dispositivi mobili che per dispositivi desktop (rispetta prima il mobile)
- Può essere utilizzato in qualsiasi piattaforma/prodotto/progetto basato su Granite; ad esempio, AEM
- Componenti Foundation dell'interfaccia utente Granite
Questa libreria di componenti di base può essere utilizzata o estesa da altre librerie. - Componenti di amministrazione dell’interfaccia utente Granite
Lato client e lato server
La comunicazione client-server nell’interfaccia utente Granite è costituita da ipertesti, non da oggetti, pertanto non è necessario che il client comprenda la logica di business
- Il server arricchisce il HTML con dati semantici
- Il client arricchisce l’ipertesto con hypermedia (interazione)
Lato client
Questo utilizza un’estensione del vocabolario HTML, a condizione che l’autore possa esprimere la propria intenzione di creare un’app web interattiva. Questo approccio è simile a WAI-ARIA e microformati.
È costituito principalmente da una raccolta di pattern di interazione (ad esempio, l’invio asincrono di un modulo) interpretati da codici JS e CSS ed eseguiti sul lato client. Il ruolo del lato client è quello di migliorare il markup (dato come prezzo per l’hypermedia dal server) per l’interattività.
Il lato client è indipendente da qualsiasi tecnologia server. Se il server fornisce il markup appropriato, il lato client può svolgere il proprio ruolo.
Attualmente i codici JS e CSS vengono consegnati come Granite clientlibs nella categoria:
granite.ui.foundation and granite.ui.foundation.admin
Questi vengono forniti come parte del pacchetto di contenuti:
granite.ui.content
Lato server
Questa è formata da una raccolta di componenti sling che consentono all'autore di comporre un'app Web velocemente. Lo sviluppatore sviluppa i componenti, l’autore assembla i componenti come una web app. Il ruolo del lato server è quello di offrire al client il markup (prezzo conveniente per l'hypermedia).
Attualmente, i componenti si trovano nell’archivio Granite in:
/libs/granite/ui/components/foundation
Viene fornito come parte del pacchetto di contenuti:
granite.ui.content