Poiché i Componenti core sono completamente nuovi e offrono molteplici vantaggi, si consiglia di utilizzarli nei nuovi progetti AEM. Per i progetti esistenti, è consigliabile prevedere una migrazione dei componenti solo nell’ambito di una sostanziale rilavorazione di un progetto, ad esempio in caso di rebranding o refactoring globale.
Pertanto, Adobe fornisce le seguenti raccomandazioni:
I Componenti core sono efficienti, flessibili e facili da usare e personalizzare. L’aderenza ad alcune linee guida chiave garantirà il successo del tuo progetto con i Componenti core.
Tutti i nuovi progetti devono essere implementati con i Componenti core. Tuttavia, i progetti esistenti hanno in genere implementazioni estese di componenti di base.
Una sostanziale rilavorazione di un progetto esistente (ad esempio, in caso di rebranding o refactoring globale) spesso offre la possibilità di migrazione ai Componenti core. Per facilitare questa migrazione, Adobe ha fornito una serie di strumenti di migrazione per incoraggiare l’adozione dei Componenti core e della tecnologia AEM più recente.
Gli strumenti di modernizzazione AEM consentono di convertire facilmente:
Per ulteriori informazioni sull’utilizzo di questi strumenti, vedi la relativa documentazione.
Gli strumenti di modernizzazione AEM sono un’iniziativa della community e non sono supportati o garantiti da Adobe.
Poiché AEM as a Cloud Service viene fornito automaticamente con l’ultima versione dei Componenti core, quando effettui il passaggio da un’installazione AEM on-premise, devi rimuovere qualsiasi dipendenza dai Componenti core nel file pom.xml
dei tuoi progetti.
I componenti proxy continueranno a funzionare come prima perché i proxy puntano al supertipo necessario e il percorso del supertipo contiene già la versione. In questo modo, la semplice rimozione della dipendenza consente ai Componenti core di funzionare in AEMaaCS proprio come accadeva con AEM on-premise.
Come per qualsiasi altro progetto AEMaaCS, dovrai aggiungere anche una dipendenza al jar del Software Development Kit (SDK) di AEM. Questa dipendenza non è specifica per i Componenti core, ma è obbligatoria.
<dependency>
<groupId>com.adobe.aem</groupId>
<artifactId>aem-sdk-api</artifactId>
</dependency>
Per ulteriori informazioni sui progetti AEMaaCS, vedi il documento Struttura dei progetti AEM.
I Componenti core sono parte integrante di AEM e sono supportati in quanto tali, soggetti agli stessi termini e condizioni dei prodotti forniti con Quickstart.
Come altre caratteristiche dei prodotti AEM, la regola generale è: i componenti vengono inizialmente dichiarati obsoleti e i meno recenti vengono rimossi nella successiva versione di AEM. In questo modo i clienti hanno il tempo per passare alla nuova versione del componente prima della fine del supporto.
La versione di ogni componente indica chiaramente le versioni di AEM supportate. Quando cessa il supporto per una versione di AEM, cessa anche il supporto dei Componenti core per quella versione di AEM.
Per informazioni dettagliate sul supporto delle personalizzazioni dei componenti, visita la pagina Personalizzazione dei Componenti core.
La tabella che segue offre una panoramica delle differenze tra i Componenti core e i componenti di base.
Per informazioni dettagliate sulle loro funzionalità di authoring e sulle opzioni per preconfigurarle, visita la pagina di authoring relativa a tali funzionalità.
Funzionalità | Componente core | Componente di base |
---|---|---|
Implementazione logica | Java POJO con annotazioni di modelli Sling | Codice JSP |
Definizione del markup | Sintassi di HTML Template Language (HTL) | Codice JSP |
Bonifica XSS | Automatizzata tramite HTL | Principalmente manuale |
Denominazione delle classi CSS | Convenzione di denominazione standardizzata basata sulla notazione Block Element Modifier (BEM) (a partire dalla versione 2.0.0) | Schemi personalizzati |
Definizione della finestra di dialogo | Coral 3 | Coral 2 + Interfaccia utente classica |
Output JSON | Sling Models Exporter con serializzazione Jackson | Servlet Sling predefinito |
Controllo delle versioni | Per il modello e HTL | Nessuno |
Test | Test unità + Integration test | Integration test |
Distribuzione | Tramite GitHub pubblico | Tramite Quickstart |
Licenza | Licenza Apache | Proprietaria di Adobe |
Contributo | Tramite richiesta pull | Impossibile |
Accessibilità | Completamente conforme allo standard WCAG 2.0 AA | Solo parzialmente conforme allo standard WCAG 2.0 AA |
La tabella che segue riporta i Componenti core disponibili, il collegamento alle relative API e l’indicazione di quali componenti di base sostituiscono.
Componente core | Descrizione | Componente o componenti di base sostituiti |
---|---|---|
Pagina | Pagina reattiva che funziona con l’editor di modelli | /libs/foundation/components/page /libs/wcm/foundation/components/page |
Breadcrumb | Navigazione gerarchica delle pagine | /libs/foundation/components/breadcrumb |
Titolo | Titolo H1-H6 | /libs/foundation/components/title /libs/wcm/foundation/components/title |
Testo | Rich Text Format (RTF) | /libs/foundation/components/text /libs/foundation/components/table /libs/wcm/foundation/components/text |
Immagine | Caricamento intelligente e lento della dimensione di rendering ottimale | /libs/foundation/components/image /libs/foundation/components/adaptiveimage /libs/foundation/components/logo /libs/foundation/components/mobileimage /libs/foundation/components/mobilelogo /libs/wcm/foundation/components/image |
Elenco | Elenco delle pagine | /libs/foundation/components/list /libs/foundation/components/mobilelist /libs/wcm/foundation/components/list |
Condivisione sui social media | Widget di condivisione su Facebook e Pinterest | - |
Contenitore modulo | Sistema di paragrafi in forma reattiva | /libs/foundation/components/form/start /libs/foundation/components/form/end |
Testo modulo | Campo di immissione testo | /libs/foundation/components/form/text /libs/foundation/components/form/password |
Opzioni modulo | Campo di immissione a più opzioni | /libs/foundation/components/form/checkbox /libs/foundation/components/form/radio /libs/foundation/components/form/dropdown |
Campo nascosto modulo | Campo di immissione nascosto | /libs/foundation/components/form/hidden |
Pulsante modulo | Pulsante Invia o personalizzato | /libs/foundation/components/form/submit |
Navigazione | Componente di navigazione del sito che elenca la gerarchia delle pagine nidificate | /libs/foundation/components/topnav /libs/foundation/components/mobiletopnav |
Navigazione lingua | Un selettore di lingua e paese che elenca la struttura globale delle lingue | - |
Ricerca rapida | Un componente di ricerca che visualizza i risultati come suggerimenti ordinati in un menu a discesa | /libs/foundation/components/search |
Teaser | Consente all’autore di contenuto di creare facilmente un teaser per ulteriore contenuto utilizzando un’immagine, un titolo o un testo RTF e di collegarsi a ulteriore contenuto o ad altre azioni | - |
Schede | Consente all’autore di contenuto di organizzare il contenuto della pagina in più schede | - |
Carosello | Consente all’autore di contenuto di organizzare il contenuto in un carosello di diapositive | /libs/foundation/components/carousel |
Frammento di contenuto | Consente la visualizzazione di un frammento di contenuto | - |
Elenco di frammenti di contenuto | Consente la visualizzazione di un elenco di frammenti di contenuto | - |
Separatore | Separa il contenuto su una pagina | - |
Pannello a soffietto | Organizza i pannelli di contenuto in un pannello a soffietto comprimibile | - |
Contenitore | Organizza i componenti all’interno di un contenitore | - |
Pulsante | Crea un pulsante su una pagina | - |
Scarica | Aggiunge una risorsa scaricabile a una pagina | - |
Frammento esperienza | Aggiunge un frammento esperienza a una pagina | /libs/cq/experience-fragments/editor/components/experiencefragment |
Incorpora | Incorpora una risorsa esterna all’interno di una pagina | - |
Barra di avanzamento | Fornisce una rappresentazione visiva del progresso verso un obiettivo | - |
Visualizzatore PDF | Visualizza un documento PDF su una pagina | - |
Per una panoramica della roadmap dei Componenti core in arrivo, vedi wiki del progetto su GitHub.
Uno dei vantaggi dei componenti con versione è la possibilità di separare la migrazione a una nuova versione di AEM dalla migrazione a nuove versioni dei componenti. Inoltre, se sono disponibili nuove versioni dei componenti, consente la migrazione individuale di ciascun componente alla nuova versione.
Le migrazioni a una nuova versione di AEM non influiscono sul funzionamento dei Componenti core, purché le loro versioni supportino anche la nuova versione di AEM a cui si migra. Neppure le personalizzazioni apportate ai Componenti core vengono influenzate, a condizione che non utilizzino API obsolete o rimosse.
Le migrazioni a nuove versioni dei Componenti core non influiscono neppure sulla modalità di funzionamento del componente. Tuttavia, gli autori delle pagine potrebbero avere a disposizione nuove funzioni che potrebbero richiedere un aggiustamento della configurazione tramite un editor di modelli, nel caso in cui il comportamento predefinito non fosse quello desiderato. Inoltre, potrebbe essere necessario adattare le personalizzazioni. Per ulteriori dettagli, visita la pagina Personalizzazione dei Componenti core.