Bijdragen aan AEM
- Onderwerpen:
- Developing
Gemaakt voor:
- Developer
Ontwikkelingsmethode
AEM wordt ontwikkeld op basis van beproefde methodologieën die algemeen worden toegepast in grote open-sourceprojecten. Veel kernelementen in AEM technologiestapel worden in feite gehandhaafd als actieve open-bronprojecten, zoals Sling en Jackrabbit, die werden bijgedragen aan de Apache Software Foundation. Een belangrijk aspect van deze geest dat in AEM aanwezig is, is dat u wordt aangemoedigd om de beschikbare mailinglijsten en online forums voor directe interactie met het ontwikkelingsteam te gebruiken.
Als u aan componenten van AEM bijdraagt, zou u met AEM vertrouwd moeten maken zoals u wanneer het bijdragen aan een open bronproject, en met het bestaande kernteam zou communiceren aangezien u zou wanneer u aan zulk een project zou willen bijdragen.
Vereiste ervaring
Het HyperText Transfer Protocol (HTTP) is centraal bij alles wat we doen. Daarom alvorens tot AEM bij te dragen, zou u een diep inzicht in HTTP moeten hebben, idealiter in die mate waarin u uw eigen implementatie van Java van een multithreaded server van HTTP met draad-pooling zou kunnen schrijven. U zou ook een inzicht in het gedrag van HTTP/1.1 moeten hebben het houden-Levend, en u zou een diepgaande kennis van server/cliënt-zijinteractie met JavaScript moeten hebben, in het bijzonder de asynchrone stijl van interactie die door AJAX wordt vertegenwoordigd.
Omdat de paginadynamiek en de interactieve inhoud zeer belangrijk voor de ervaring WM zijn, is het essentieel dat u een vrij diep inzicht in het Model van de Objecten van het Document en zijn potentieel voor programmatic manipulatie in reactie op gebeurtenissen hebt. U moet enige kennis hebben van bijvoorbeeld DOM-manipulatie en gedrag bij slepen en neerzetten in meerdere browserdocumenten (bijvoorbeeld met iframes).
Op het hoogste niveau zou u dan een stevig inzicht moeten hebben in:
- de HTTP/1.1-protocol
- HTML (bij voorkeur HTML5)
- Cascading Style Sheets
- Extensible Markup Language (XML)
- Asynchrone ontwerppatronen voor JavaScript en XML (AJAX)
- JavaScript Object Notation (JSON)
- het Document Object Model
- Stateful versus stateless interacties
- Uniform Resource Identifiers
- Browsercookies
- en andere moderne concepten voor webontwikkeling
De technologiestapel van Adobe Experience Manager is gebaseerd op de Apache Felix OSGI-container met de Apache Sling webframework en sluit een Java Content Repository in (JCR) gebaseerd op Apache Jackrabbit. U moet vertrouwd raken met deze afzonderlijke projecten en met andere open-sourcecomponenten (zoals Apache Lucene) die worden gebruikt in het gebied waar u een bijdrage wilt leveren.
Tribunale kennis
Bepaalde concepten en leidende beginselen zijn diep verankerd in de cultuur van de voormalige Dag. Deze sectie bevat een aantal van de "diepgebedde DNA-ingebedde" problemen die u moet kennen.
Alles is inhoud
De inhoud bevat niet alleen alle gegevens die de webtoepassing blijvend maakt. De programmacode, bibliotheken, manuscripten, malplaatjes, HTML, CSS, beelden, en artefacten van alle soorten, om het even wat en alles wordt voortgeduurd in de Bewaarplaats van de Inhoud en ingevoerd/uitgevoerd in de vorm van pakketten via de Manager van het Pakket en het Aandeel van het Pakket.
David's Model
De manier waarop inhoud in een Java Content Repository moet worden gemodelleerd, vereist een totaal andere manier van denken dan wat in de softwareindustrie voor gegevensmodellering in de relationele wereld gebruikelijk is. Essentieel lezen voor elke nieuwkomer voor contentbeheer op de JCR-manier is David's model: Een gids voor het modelleren van inhoud.
RESTfulness
De REST-benadering is diep verankerd in wat we doen. Dit betekent onder andere dat stateful interacties moeten worden vermeden en dat URI's definitieve adressen zijn voor inhoud en services.
REST (REpresentational State Transfer) verwijst naar de software architecturale stijl waarop het World Wide Web is gebaseerd. Het beschrijft de belangrijkste elementen die het Web maken werken, en verstrekt zo een reeks principes voor hoe Web-based software zou moeten worden ontworpen. Bij het ontwerpen van een API die via het web moet worden gebruikt, is het daarom verstandig om deze 'best practices' te volgen.
Omdat REST de leidende filosofie achter zoveel van wat wij doen is, moet u het van essentieel belang vinden om goed doordrongen te raken in de grondbeginselen van RESTful design. Een goede plek om te beginnen is met Roy Fielding.
Oplossing voor een aanvraag voor verzending
Een belangrijk aspect om te begrijpen over AEM is hoe binnenkomende verzoeken betrekking hebben op inhoud en toepassingsgedrag, hoe inhoud is gestructureerd in de inhoudsopslagplaats en waar AEM zoekt naar de toepassingslogica om de aanvraag af te handelen. Meer informatie over de Apache URL-decompositie instellen en de manier waarop het de architecturale stijl REST en zijn stateless, cacheable, en gelaagde systeembeperkingen handhaaft.
De belangrijkste aspecten die u moet begrijpen van de aanvraagresolutie van Apache Sling zijn hoe aanvragen primair worden toegewezen aan een specifieke bron in de inhoudsopslagplaats, hoe aanvullende eigenschappen van de aanvraag, samen met eigenschappen van deze inhoudsobjecten, bepalen welke toepassingscode wordt aangeroepen om de inhoud te renderen en hoe code in /apps code in /libs overschrijft.
QuickStart
Geen stap drie: Als u wilt installeren en uitvoeren, downloadt en dubbelklikt u gewoon op het QuickStart JAR-bestand. Er is geen stap drie. Voor extra optionele functies hoeft u alleen het juiste pakket te installeren vanuit Package Share.
Kleine snelstartgrootte: Houd het bestand QuickStart JAR minimaal. Maak slim, geoptimaliseerd gebruik van bibliotheken en verplaats optionele functionaliteit naar pakketdeling.
Snellere opstarttijd: Wanneer u een verandering aanbrengt die de starttijd zou kunnen beïnvloeden, zorg ervoor het korter, niet langer zal maken.
Lean en Mean
We zijn voor code en projecten die licht, klein, snel en elegant zijn. "Goed genoeg" is niet goed genoeg.
Hergebruik van code: Onze OSGi-gebaseerde productarchivering en "alles is inhoud" filosofie betekent dat we ongewoon goede mogelijkheden hebben om code en artefacten opnieuw te gebruiken. We proberen zo veel mogelijk van dat feit te profiteren om functies mager en gemiddeld te houden.
Losse koppeling: We zijn voor losjes gekoppelde interacties boven strakke afhankelijkheden en "ongewenste intimiteit". Met losse koppeling kunt u ook meer code hergebruiken.
De demo niet breken
Word vertrouwd met demoscripts en productfuncties die het vaakst in demo's worden getoond. Begrijp dat, op zijn minst, niets u zou moeten ooit een "demo manuscript"eigenschap breken. Het kernproduct moet altijd demo-klaar zijn, zelfs tijdens de ontwikkeling.
Ontwerpen voor betrouwbaarheid
We streven ernaar om functies te ontwerpen en te coderen op faalveilige wijze, zodat (bijvoorbeeld) een probleem met één DOM-element er niet toe leidt dat een hele pagina niet wordt weergegeven. Met andere woorden: Maak dingen die fataal, fataal zouden moeten zijn. Laat alles overleven. Maak het product 'vergeven'.
Abnormal is the New Normal
Vertrouw niet op stophaken, zorg ervoor dat u opschoont bij het opstarten. Abnormale beëindiging is normale beëindiging.
shutdown == kill -9 == power outage
Wees klaar voor elastische clustering
Altijd klaar voor elastische groepering zijn, veronderstel altijd dat er zich het groeperen is. Als algemene regel, die aan alles zich in de inhoudsbewaarplaats houden betekent ingebouwde het groeperen steun.
Ontwerpen voor achterwaartse Verenigbaarheid
Niets u zou de oude code van een klant moeten breken. Alleen overwegen /libs
om productcode te bevatten die tijdens een verbetering kan worden bijgewerkt. De /apps
deel van de gegevensopslagruimte bestaat uit projectcode en de /etc
bevat aangepaste configuraties die moeten worden behouden. In het algemeen moet u niets overschrijven in /apps
, /content
en /home
. Na een verbetering, zou oude projectcode, configuraties en inhoud moeten blijven functioneren zoals het allen vóór de verbetering deed.
Het ontwerpen voor achterwaartse verenigbaarheid zorgt ook dat de verbeteringservaring de eenvoud van de aanvankelijke installatie aanpast. U kunt alleen stoppen met AEM, het QuickStart JAR-bestand vervangen en AEMagain starten als dit voldoende is. Met een snel groeiende installatiebasis zal de efficiëntie van upgrades een steeds groter voordeel opleveren.
Bestaande API's kunnen en moeten worden gemarkeerd als afgekeurd wanneer ze nieuwer zijn, maar een betere functionaliteit vervangt ze, alle API's die in een vorige versie van 5.x openbaar zijn gemaakt, moeten functioneel blijven, omdat ze in de aangepaste toepassingscode kunnen worden gebruikt. Dergelijke API's moeten niet worden verwijderd.
Achterwaartse compatibiliteit moet ook in aanmerking worden genomen met het oog op de algemene consistentie van de inhoudstructuur en de gebruikerservaring.
Kernbegrippen
Instantie van auteur - Om veiligheids-, beheer- en andere redenen verdeelt een productiesite instanties van AEM doorgaans in instanties Auteur en Publiceren. Voor meer informatie over plaatsingsarchitectuur (met inbegrip van auteur/publiceer instanties), zie documentatie over AEM Instanties.
Caching, fritten en bakken - Traditioneel zijn de concepten bakken versus fritten een belangrijk onderscheid tussen verschillende systemen voor het beheer van webinhoud. In CMS-jargon verwijst "bakken" naar het begrip "vastleggen" van gegevens aan statische bestanden tijdens de publicatietijd, terwijl "fritten" verwijst naar het concept van het verwerken van gegevens voor de uiteindelijke presentatie op aanvraag-tijd (d.w.z. net op tijd).
Clustering en taakverdeling - Om de beschikbaarheid te verhogen en de prestaties van een productieomgeving te verbeteren, is het gebruikelijk om meerdere instanties van Auteurs en/of Publiceren (in clusters) te combineren, door deze beschikbaar te stellen aan verschillende groepen gebruikers of door hen in evenwicht te brengen achter een Dispatcher-configuratie.
Het is ook mogelijk om meerdere instanties van de opslagplaats voor inhoud te combineren om een hoge beschikbaarheid JCR-oplossing, die vervolgens met uw AEM-oplossing kan worden geïntegreerd om de bescherming tegen hardware- en softwarestoringen te maximaliseren. Zie Aanbevolen implementaties voor nadere informatie.
Component - In AEM is een component een objecttype, waarvan instanties doorgaans kunnen worden gemaakt door ze van bijvoorbeeld de Sidetrap te slepen en neer te zetten. Bijvoorbeeld, buiten-de-dooscomponenten die met AEM worden geleverd omvatten de de Tekst, Titel, Cloud van de Markering, Carousel, Beeld, en componenten van de Lijst, allen beschikbaar bij Sidetrap bij runtime.
Inhoudszoeker - In de ontwerpmodus is de Content Finder een speciaal deelvenster (frame) aan de linkerkant van de pagina dat, afhankelijk van het tabblad dat u boven selecteert, lijsten weergeeft met afbeeldingen, documenten, Flash-elementen, pagina's, alinea's of opslagplaatsen die u vanuit de Content Finder kunt slepen en neerzetten op de pagina waaraan u werkt (aan de rechterkant).
Digitale middelen - In AEM zijn digitale elementen (doorgaans) afbeeldingen en rich media-bestanden. Zie Werken met Digital Assets in DAM voor meer informatie.
Dispatcher - De verzender is zowel een caching als lading-in evenwicht brengend hulpmiddel, als het verstrekken van bepaalde veiligheidswaarborgen.
ExtJS-widgets - De meeste gebruikersinterface-elementen in AEM maken gebruik van ExtJS, een externe widgetbibliotheek die in JavaScript is geschreven. ExtJS biedt krachtige, aanpasbare UI-widgets en een goed ontworpen en uitbreidbaar componentmodel.
JCR, Java Content Repository - De Java Content Repository Specification (JSR-283) biedt zowel een abstract gegevensmodel als een Application Programming Interface voor het realiseren van een enorm schaalbare NoSQL-gegevensopslagruimte waarin functies van een bestandssysteem en een objectdatabase worden gecombineerd. Hoewel u JSR-283 niet in detail hoeft te begrijpen, moet u de tijd nemen om vertrouwd te maken met de basismogelijkheden van JCR en het gegevensmodel dat eraan ten grondslag ligt, omdat JCR de filosofie van "alles is inhoud" van AEM mogelijk maakt.
In wezen is JCR een systeem van knooppunten en eigenschappen, waarin knooppunten kunnen overerven van andere knooppunten en alle inhoud wordt opgeslagen als eigenschap waarden. Naast de normale overerving biedt JCR ook een concept van 'mixin'-knooppunten, waarmee meerdere overervingen kunnen worden gemodelleerd.
JCR heeft een aantal vooraf bepaalde knooptypes en bezitstypes, maar over het algemeen is het typende systeem vrij flexibel, en (inderdaad) één van de sterke punten van JCR is dat het gestructureerde en ongestructureerde inhoud om met gelijk gemak toelaat worden opgeslagen/worden beheerd. Dat wil zeggen dat JCR zeer gestructureerde gegevens kan verwerken, maar ook willekeurige dynamische gegevensstructuren zonder schemabeperkingen kan verwerken.
De JavaDoc voor de Java API van JCR is hier.
Voordat u probeert de JavaDoc- of JCR-specificatie zelf te lezen, is het verstandig deze verklaring op hoog niveau van JCR geïmplementeerd door Adobe Experience Services.
MSM (Multi-Site Manager) - De MSM-functie van AEM helpt klanten meertalige en multinationale content te verwerken, waardoor ze gecentraliseerde branding in evenwicht kunnen brengen met gelokaliseerde content.
OSGi - OSGi is de op diensten-gebaseerde runtime technologie die de basis voor gemoduleerde ontwikkeling van Java in AEM verstrekt. Het is een kader dat niet alleen een hoogst dynamische (en veilige) het klassen laden en uitvoeren milieu voor codemiddelen (die als bundels worden bekend), maar ook volledige controle over de zichtbaarheid en de levenscyclus van de diverse diensten verstrekt die door bundels worden blootgesteld. Een de dienstregister verstrekt een samenwerkingsmodel voor bundels dat levenscyclusdynamiek (en versievereisten) rekening houdt. OSGi lost veel van de problemen op die de toepassingsservers bedoeld waren om op te lossen, maar doet dit op een lichtgewicht, hoogst dynamische manier, die het mogelijk maken, bijvoorbeeld, de diensten op te warmen-opstellen (die de nieuwe code onmiddellijk beschikbaar maken zonder de server opnieuw te beginnen).
Parsys, alineasysteem - Het paragraafsysteem (parsys) is een samengestelde component die auteurs toestaat om componenten van verschillende types aan een pagina toe te voegen en andere paragraafcomponenten bevat. Elk alineatype wordt vertegenwoordigd als een component. Het alineasysteem zelf is ook een onderdeel dat de andere alineacomponenten bevat.
Microkernel - Elke werkruimte in de opslagplaats kan afzonderlijk worden geconfigureerd om de gegevens op te slaan via een specifieke microkernel (een klasse die het lezen en schrijven van de gegevens beheert). Op dezelfde manier kan de gegevensopslagruimte-brede versieopslag ook onafhankelijk worden gevormd om een bepaalde microkernel te gebruiken. Er is een aantal verschillende microkorrels beschikbaar waarmee gegevens in verschillende bestandsindelingen of relationele databases kunnen worden opgeslagen. (Er zijn bijvoorbeeld persistentiemanagers voor MongoDB, DB2 of Oracle) De standaardmicrokernel voor AEM is TarMK (zie verder hieronder).
Instantie publiceren - Voor beveiliging, bestuur en andere redenen deelt een productiesite doorgaans instanties van AEM in instanties Auteur en Publiceren. Voor meer informatie over plaatsingsarchitectuur (met inbegrip van auteur/publiceer instanties), zie documentatie over AEM Instanties.
QuickStart - In tegenstelling tot veel andere programma's installeert u AEM met behulp van één zelfuitpakkend JAR-bestand met de naam QuickStart. Wanneer u voor het eerst op het JAR-bestand dubbelklikt, wordt alles wat u nodig hebt automatisch geïnstalleerd. De QuickStart JAR bevat alle bestanden die vereist zijn voor de CRX-opslagplaats (inclusief beheerfaciliteiten), virtuele opslagservices, index- en zoekservices, workflowservices, beveiliging en een webserver, plus de CQ Servlet Engine (CQSE) en alle AEM services. Er zijn geen andere bestanden om te installeren: De QuickStart is op zichzelf staand.
De eerste keer dat u de Quickstart start start, wordt op de achtergrond een volledige opslagplaats gemaakt die voldoet aan de JCR, wat enkele minuten kan duren. Na dit eerste opstarten zijn de volgende stappen veel sneller, aangezien de infrastructuur van de opslagplaats reeds is vastgelegd.
Vele opstartopties (zoals het actieve havenaantal en of de AEM instantie in kwestie een Publish instantie tegenover een instantie van de Auteur zou moeten zijn; en nog veel meer) kunt u beheren door de naam van het QuickStart-bestand op de juiste manier te wijzigen. Als u een lijst met opties op dit gebied wilt weergeven, voert u de JAR met "-help" uit op de opdrachtregel:
java -jar <quickstartfilename>.jar -help
Replication-agents - Replicatieagents zijn van centraal belang voor AEM als het mechanisme dat wordt gebruikt om inhoud van een auteur naar een publicatieomgeving te publiceren (activeren); inhoud uit de Dispatcher-cache verwijderen; door de gebruiker gegenereerde inhoud (bijvoorbeeld formulierinvoer) vanuit de publicatieomgeving terugsturen naar de auteur-omgeving.
Basisstructuur - Met een basisstructuur kunt u een formulier (een basisblad) maken met velden die de gewenste structuur voor uw pagina's weerspiegelen. Met dit formulier kunt u eenvoudig pagina's maken op basis van deze structuur.
Segmentering - bezoekers van de site hebben verschillende belangen en doelstellingen wanneer ze naar een site komen. Kennis van de doelstellingen van bezoekers en het vervullen van hun verwachtingen is een belangrijke voorwaarde voor online marketing. Segmentering helpt dit te bereiken door de details van een bezoeker te analyseren en te karakteriseren.
Sidetrap - De Sidetrap is een paletachtig zwevend venster dat op de bewerkbare pagina wordt weergegeven, waaruit nieuwe componenten kunnen worden gesleept en acties die op de pagina van toepassing zijn, kunnen worden uitgevoerd.
Site Catalyst - SiteCatalyst biedt marketers één plaats om geïntegreerde gegevens van alle online initiatieven via meerdere marketingkanalen te meten, te analyseren en te optimaliseren. U kunt Adobe SiteCatalyst gebruiken om gegevens van AEM websites te analyseren.
Tar Storage (TarMK) - TarMK is het standaard persistentiesysteem in AEM. Hoewel AEM kan worden geconfigureerd om een ander persistentiesysteem te gebruiken (zoals MongoDB), heeft TarMK bepaalde voordelen omdat het prestatiegeoptimaliseerd is voor typische JCR-gebruiksscenario's (dus zeer snel), gebruikmaakt van een industriestandaard gegevensformaat en er snel en eenvoudig back-ups van kan worden gemaakt.
Sjabloon - In AEM geeft een sjabloon een bepaald type pagina op. Hiermee wordt de structuur van een pagina gedefinieerd (waarbij doorgaans ook een miniatuurafbeelding en diverse eigenschappen worden opgegeven). U hebt bijvoorbeeld aparte sjablonen voor productpagina's, sitemaps en contactgegevens.
Workflow - Het AEM workflowsysteem maakt het mogelijk geautomatiseerde processen te maken waarbij pagina's of elementen worden gebruikt.
Experience Manager
- Overzicht van de gebruikershandleiding voor ontwikkeling
- Inleiding voor ontwikkelaars
- Aan de slag met het ontwikkelen van AEM Sites - WKND-tutorial
- AEM kernconcepten
- Structuur van de interface voor AEM aanraakbediening
- Concepten van de interface AEM Touch-Enabled
- AEM ontwikkeling - Richtsnoeren en beste praktijken
- Client-Side bibliotheken gebruiken
- Developing and Page Diff
- Editor-beperkingen
- Het CSRF-beschermingskader
- Gegevensmodellering - David Nuescheler’s model
- Bijdragen aan AEM
- Beveiliging
- Referentiematerialen
- Een volledig aanbevolen website maken (klassieke gebruikersinterface)
- Ontwerpen en de Ontwerper (Klassieke UI)
- Platform
- Sling Cheatsheet
- Sling Adapters
- Tagbibliotheken
- Sjablonen
- Het gebruiken van de Verschuivende Fusie van het Middel in AEM
- Bedekkingen
- Naamgevingsconventies
- Een nieuwe graniet UI-veldcomponent maken
- Query Builder
- Tags
- Pagina’s aanpassen die worden weergegeven door de fouthandler
- Aangepaste knooppunttypen
- Lettertypen toevoegen voor grafisch renderen
- Verbinding maken met SQL-databases
- URL’s extern maken
- Banen voor offloaden maken en consumeren
- Cookie-gebruik configureren
- Programmatoegang tot het AEM JCR
- Services integreren met de JMX-console
- De Bulk-editor ontwikkelen
- Rapporten ontwikkelen
- eCommerce
- Onderdelen
- Kernonderdelen
- Stijlsysteem
- Overzicht van componenten
- Componenten AEM - De basisbeginselen
- AEM ontwikkelen
- Ontwikkelen AEM componenten - Codevoorbeelden
- JSON-exportfunctie voor services voor inhoud
- JSON-export inschakelen voor een component
- Afbeeldingseditor
- Decoratietag
- Voorwaarden verbergen gebruiken
- Meerdere lokale editors configureren
- Ontwerpmodus
- Uw gebruikersinterface testen
- Componenten voor inhoudsfragmenten
- Pagina-informatie ophalen in JSON-indeling
- Internationalisatie
- Klassieke UI-componenten
- Erviteitsbeheer zonder hoofd
- Hoofdloos en hybride met AEM
- JSON-export inschakelen voor een component
- Toepassingen voor één pagina
- SPA Inleiding en Analyse
- SPA WKND-zelfstudie
- Aan de slag met SPA in AEM - Reageren
- Aan de slag met SPA in AEM - Angular
- Een component React implementeren voor SPA
- SPA diep duiken
- Overzicht SPA Editor
- SPA ontwikkelen voor AEM
- SPA
- SPA
- Dynamisch model naar componenttoewijzing voor SPA
- SPA
- Integratie SPA en Adobe Experience Platform Launch
- SPA en rendering op de server
- Referentiematerialen SPA
- HTTP-API
- Contentfragmenten
- Ervaringsfragmenten
- Ontwikkelingsinstrumenten
- Ontwikkelingsinstrumenten
- AEM-moderniseringstools
- Dialoogvenster-editor
- Dialoogvenster omzetten
- Ontwikkelen met CRXDE Lite
- Pakketten beheren met Maven
- Hoe te om AEM Projecten te ontwikkelen gebruikend Eclipse
- Hoe te om AEM Projecten te bouwen gebruikend Apache Maven
- Hoe te om AEM Projecten te ontwikkelen gebruikend IntelliJ IDEA
- Het gereedschap VLT gebruiken
- Het gereedschap Proxyserver gebruiken
- Extensie AEM
- AEM Developer Tools for Eclipse
- AEM
- Personalisatie
- AEM uitbreiden
- Paginaontwerp aanpassen
- De consoles aanpassen
- Weergaven van pagina-eigenschappen aanpassen
- Pagina configureren voor Bulk bewerken van pagina-eigenschappen
- Contentfragmenten aanpassen en uitbreiden
- Werkstromen uitbreiden
- Het beheer van meerdere sites uitbreiden
- Tracering en analyse
- Cloud Services
- Aangepaste extensies maken
- Forms
- Services integreren met de JMX-console
- De Bulk-editor ontwikkelen
- Klassieke gebruikersinterface uitbreiden
- Testen
- Best practices voor
- Overzicht van best practices
- Richtlijnen voor AEM ontwikkeling en beste praktijken
- Aanbevolen werkwijzen voor ontwikkeling
- Inhoudsarchitectuur
- Softwarearchitectuur
- We.Retail Reference Implementation
- We.Retail Reference Implementation
- Inhoudsfragmenten in We.Retail uitproberen
- Core Components uitproberen in We.Retail
- Bewerkbare sjablonen uitproberen in We.Detailhandel
- Responsieve lay-out uitproberen in We.Detailhandel
- De geglobaliseerde sitestructuur in ‘We’ uitproberen.Handelsversie
- Uitproberen van ervaringsfragmenten in We.Retail
- Codetips
- Codevalkuilen
- OSGI-pakketten
- JCR-integratie
- Codevoorbeelden
- Problemen met trage query’s oplossen
- Mobiel web