Monday, 8 April 2019

Making SPA's(Single Page Applications) SEO(Search Engine Optimized) Friendly in AEM

AEM now supports SPA SDKs which helps to create Single Page Applications using Angular and React JS. A Single Page Application is a java script code which injects new content from a server into a page without the entire page getting reloaded in the browser. This gives the advantage of faster loading websites.


If we dont take care of SEO from beginning, we may have to put extra efforts to go back and fix the indexing issues later.

Why indexing required?

User comes to the site through various search engines and indexing site pages with this search engines are one of the major task during project implementation.

What is SEO?

Search Engine Optimization is the way which the search engine find the content in a website and index it. We need to ensure our site pages are SEO friendly by following SEO Guidelines. Every search engines like Google, Bing, Yahoo, DuckDuckGo having their own bots to crawl the site content.

This post is written considering the users are having a basic understanding about SEO technology.

Why SPA is not readily SEO Friendly?

The advantage of SPA is, they can even update entire pages or part of the page without making another request to the server or even changing the URL. In this case an entire HTML is not getting rendered. AJAX calls are used to load parts of the page using JSON snippets. SEO expects a fully built page for indexing.

Methods to make SPA s SEO Friendly

Below given some of the methods identified to make SPA pages SEO friendly. This solely depends on the usecase too.

Pretty URLs: Never use 'hashes' in URL's. Always go for SEO friendly pretty URL's instead.

Canonical URL's: 
Here a complete duplicate site would be created within the same url to ensure that crawlers would index the site pages properly.

Pre-rendering: In this scenario, we can run the app before deploying it, capture the page output and replace all HTML files with the captured output. Typically this is achieved with a headless browser (For e.g. Firefox Headless Mode, PhantomJS etc). Pre-rendering is a good choice because there is no additional server load, and therefore faster and cheaper than server side rendering.

Server-Side Rendering (SSR): In this case, pages that display constantly changing data which must be loaded dynamically at load time, or for pages that have user-specific content. Note here, Server hosting the website should have Node enabled to implement server side rendering.

HTML pushState: HTML 5 provides a History API called 'Push State'. The pushState method takes three arguments, a data 'state' object, a 'title' string, and a 'url'. When the pushState method is called, the url which is passed to it will appear in the browsers url window. This method can be used as an alternate indexing options for the SPA pages.


What are all the new features of AEM 6.5?

Below given the further details about new features.
 
AEM 6.5 Site related new features

AEM 6.5 Specific new features in Assets section

New Features in AEM 6.5 Forms

Foundation updates in AEM 6.5 which a developer should be aware of

Cloud Manager for AEM 6.5 New features

Monday, 1 April 2019

Cloud Manager for AEM New features

Below given the major new features in AEM cloud manager released in January 2019

1) CI/CD Pipeline Enhancements

- Ability to schedule deployment trigger
- API integration through Adobe I/O
- Code quality check on non -production pipeline
- Creation of additional non -production pipeline

2) Reporting Dashboard
- Monitoring interactive dashboard, including visibility into
    i) basic system metrics
    ii) SLA reports
    iii) Security health status

3) Release Upgrades
- Evaluation of current code complexity
- Remediation through sandbox environment prior to upgrade
- Execution through blue-green deployment
 
What are all the new features of AEM 6.5?

Below given the further details about new features.
 
AEM 6.5 Site related new features

AEM 6.5 Specific new features in Assets section

New Features in AEM 6.5 Forms

Foundation updates in AEM 6.5 which a developer should be aware of

Cloud Manager for AEM 6.5 New features

Foundation updates in AEM 6.5 which a developer should be aware of

AEM 6.5 is going to be released on 8th April 2019 for general public.

Foundation:

AEM 6.5 - Java 11 Support

- New support for the Oracle JDK 11 "Long Term Support" releases (LTS)
- Oracle JDK Java 8 releases are also supported (LTS)
- Java 9, Java 10 and future non - LTS releases are not supported

AEM 6.5 Permission Management

- New permission management user interface for a consistent and simplified user experience
- Consolidated features previously distributed across multiple places (CRXDE Lite, User Admin, CRX Explorer)
- Simplified and advanced views
- Principal and repository views.

AEM 6.5 New Features Video



What are all the new features of AEM 6.5?

Below given the further details about new features.
 
AEM 6.5 Site related new features

AEM 6.5 Specific new features in Assets section

New Features in AEM 6.5 Forms

Foundation updates in AEM 6.5 which a developer should be aware of

Cloud Manager for AEM 6.5 New features


Storage concepts in AEM 6.5   

HTML Template language updates which needs to be observed with AEM 6.5

New Features in AEM 6.5 Forms

In this blog, we will understand about the latest features as part of AEM 6.5 forms

AEM 6.5 Forms are built with consideration of,  Mobile First Forms & Personalized Correspondence.

- Support new use cases with interactive communications
- OOTB Forms components for AEM Sites SPA
- Simplified OSGI workflow authoring
- Enhanced Adobe Sign integration


AEM Forms 6.5 - Output & Customer Communications
->Additional Capabilities to support new use cases are given below,

- Support for new layout and templates
- Introduction of new charting styles to address new wealth management use cases
- Auto generate web channel to retain Print Channel layouts
- Usability Enhancements , Drag and drop from FDM tree to bind variables and fields.

AEM Forms 6.5 - Simplified Workflow Authoring
-> Support for variables and re-usability of workflows

- Simplified Debugging with standardized workflow logs
- Support for custom data types in meta data
- Reduce dependency on ECMA scripts and manually populate meta data across workflow steps
- Introduction of an OOTB ability to declare variables/ meta data upfront and read and populate them across workflow steps
- Increased re-usability of workflows via invocation using multiple forms.

AEM Forms 6.5 - Enhanced Forms and Adobe Sign Integration
-> Support for cloud signatures in Adaptive Forms

- Enables compliance with most rigorous legal and regulatory requirements.
- Signing using Digital ID's based on PKI infrastructure based digital certificates

AEM Forms 6.5 - Embed Forms and Documents in AEM Sites SPA
->Embed Adaptive Forms and interactive Communications web channel in SPA based AEM Sites

- Offer compelling experiences to website users through Single Page Applications
- OOTB components o embed online forms and documents in SPA Sites.
- Aligns with AEM sites framework to support SPA based sites.

What are all the new features of AEM 6.5?

Below given the further details about new features.
 
AEM 6.5 Site related new features

AEM 6.5 Specific new features in Assets section

New Features in AEM 6.5 Forms

Foundation updates in AEM 6.5 which a developer should be aware of

Cloud Manager for AEM 6.5 New features

AEM 6.5 Specific new features in Assets section

Let us see the assets specific new features in AEM 6.5

AEM Assets 6.5 - Adobe Asset Link

-> The new and improved Adobe Asset Link helps to discover , use and edit assets from AEM directly within Creative Cloud desktop apps.

- We can place assets in your designs, download a copy
- Add new assets to AEM directly from CC apps
- Search AEM Assets & CC Assets, access collections, preview assets & Basic metadata directly from CC apps - PS , ID, AI
- Check out. in assets stored in AEM assets directly from PS, ID and AI into CC Assets
- Keep work in progress assets and final production assets in separate locations
- Single Sign On with your Creative Cloud SSO credentials for access to digital assets from AEM Assets

AEM Assets 6.5 - AEM Desktop App Update
-> Open and edit any asset type in any desktop application (Including non- Adobe assets)

- Search for assets directly from the desktop app and find them
- Preview assets and open them in the associated desktop application
- Browse assets from AEM in a dedicated desktop app built- in browser - limit the need to use Finder/Explorer
- Edit assets locally and upload changes to AEM when done
- Upload files and folder hierarchies to AEM with progress monitoring

AEM Assets 6.5 - Adobe Stock Integration
-> Search and license Adobe Stock assets from AEM UI

- License and save original assets from Adobe Stock to AEM
- Search , preview and save Adobe Stock assets directly from AEM Assets Web UI

AEM Assets 6.5 - Remote DAM for Sites Authoring
This is a very useful feature which was expected from quite long time.

- This helps sites authors to leverage assets from Remote DAM for authoring web pages
- Configure connection with Remote DAM on cloud
- Search seamlessly on Remote DAM from content finder
- Drag & Drop remote assets into local sites page editor like a local asset
- Preview web pages with Remote DAM assets
- Further edit remote DAM assets on Sites instance with a local copy
- Publish pages with remote DAM assets

AEM Assets 6.5 Brand Portal Enhancements:Asset Distribution

- Enhances user reporting (login, share)
- Browse and search enhancements
- File acceleration for downloads
- Guest Access
- Ability to schedule publishing
- Dynamic Media video support
- Configurable URL
- Folder hierarchy support for multi brand, team usage
- Original asset access restrictions
- Additional admin configurations
- Performance enhancements

AEM Assets 6.5 - Brand Portal - Asset Sourcing

- Direct folder share with external agency from DAM
- Upload capability on Brand Portal for sourcing brand, campaign assets from external agencies, teams
- Publish to DAM for review and multi-channel campaign usage
- New contributor role for external agency user persona
- Admin configurations to control upload sizes

AEM Assets 6.5 - User Experience Enhancements

- New permission management tool in touch UI
- Accessibility Enhancements
- Improved bulk operations with 'Select All' Capability

AEM Assets 6.5 Dynamic Search Facets
->There is a new dynamic faceted search for a faster experience

- This feature helps in providing dynamic filters and search results count is provided at filter / facet level

AEM Assets 6.5 - Visual Search
->Adobe Sensei powered search for finding visually similar assets

- Find similar action in card, list and detail view
- Leverage search facets to further refine search results

AEM Assets 6.5 - Dynamic Media + Sensei
->ML/AI Extended to video. This is a notable feature as part of AEM 6.5

- Video Smart Crop - Automatically re-crop a video to new aspect ratios while preserving the points of interest inside that video
- Best Frame Selection- Automatically recommending optimal thumbnails when customers upload a video
- Video Smart Tags - Automatically add suggested tags based on the video's content.

What are all the new features of AEM 6.5?

Below given the further details about new features.
 
AEM 6.5 Site related new features

AEM 6.5 Specific new features in Assets section

New Features in AEM 6.5 Forms

Foundation updates in AEM 6.5 which a developer should be aware of

Cloud Manager for AEM 6.5 New features

AEM 6.5 Site related new features

Let us see the key features with AEM 6.5 Sites:

AEM is growing and improving as a best hybrid CMS now by providing or sharpening features like content services. AEM 6.5 provides extended support for hybrid Content Services now.

Major site specific features are given below.
  • - Core components - Extensions, Live Coding, Maven Archetype
  • - SPA Integration - support for react & Angular Javascript frameworks
  • - Direct content API - Content Fragments support in Assets HTTP API
  • - Experience Fragment export to Adobe Target

AEM Sites 6.5 - Core components & Maven Archtype
->There are new core components added in AEM 6.5. Creating a new or extending existing site in AEM - with or without SPA JavaScript framework is more flexible now.

- Total 20 easy to style & production ready components that are configurable in Template
- New components added as part of AEM 6.5 are: Teaser, Tab, Carousal & Separator
- The step by step tutorial to get started is now enhanced.
- Added live coding support with https://aemfed.io/

AEM 6.5 Sites - Support for react and Angular - SPA Editor
-> A better experiences built with SPA Javascript frameworks

- SPA Editor for in-context editing, composition, configuration and layout the experiences
- Step - by Step tutorial to learn how to build new or more existing SPA into AEM
- Javascript SDK for React & Angular to annotate existing code to make it work in AEM
- Server side rendering of SPA JS code for accelerated delivery and improved SEO
- New Maven Archetype for headless/SPA projects

AEM Sites 6.5 - Content Fragments in AEM HTTP API
-> Delivery of structured AEM Content over direct content API, which broaden AEM support of headless CMS Scenarios

- Enablement of output in JSON format
- Extension of AEM Assets HTTP API
- HTTP REST API for Content Fragment Delivery (Full CRUD Support Later)
- Bulk delivery of fragment structure and content

AEM Sites 6.5 Content Fragments DIFF View & Annotations
-> Editorial content governance for AEM Content Fragments

- Review content changes in content fragments across versions
i) side-by-side view, accessible in Assets admin Timeline view
ii) Ability to revert to previous version
- Annotate text in content fragment editor
i) View in rich text editing mode as well as editor default view
ii) Also visible in Assets Admin Timeline view

AEM Sites 6.5 - Export Experience Fragments
-> AEM 6.5 provides advanced experience personalization using AEM and Adobe Target with support for hybrid (HTML) and Headless (JSON) scenarios

- Define re-usable experiences in AEM and in Target activities
- Markup delivery by Target, referenced media assets by AEM
- Ability to support Target HTML offers and JSON offers
- Ability to delete Experience Fragments and associated Target offers from within AEM.


AEM Sites 6.5 - New Translation Enhancements
-> Increasing the efficiency of content translation with AEM through automation and improved 3rd party integrations

- Allow translation projects to use AEM Project masters
- Allow updating translated pages with updates in 3rd party Translation Memory
- Allow exporting translation jobs in JSON Format
- Auto approve translation jobs
- Auto - delete translation launches


What are all the new features of AEM 6.5?

Below given the further details about new features.

AEM 6.5 Site related new features

AEM 6.5 Specific new features in Assets section

New Features in AEM 6.5 Forms

Foundation updates in AEM 6.5 which a developer should be aware of

Cloud Manager for AEM 6.5 New features

Thursday, 14 February 2019

What is Sling Model Exporters?

Sling Models

Sling Models are business objects that represents sling resources or sling requset objects in AEM. In other way, Sling Models let you map Java objects to Sling resources.

Sling Models Exporter

Sling Model Exporters helps to export the model as a different Java object (serialized into a different format such as JSON) by adding annotations to Sling Model. The model is programmatically exported by calling the ModelFactory method exportModel().

Jackson exporter
 
Jackson exporter which is used in Sling allows to convert Sling Model into a Java Map object. Jackson JSON exporter helps exporting Sling Models as JSON objects, which can be accessible from other third party web service applications, Java script application etc.

Sling Model Exporter is available from Sling Models version v1.3.0. 

Pictorial representation of Sling Model Vs Sling Model Exporter

Click on image to see it big


Can I use Sling Model Exporters with versions prior to AEM 6.3?

Yes AEM 6.3 onward no extra dependencies required to use Sling Model Exporters.

But versions prior to AEM 6.3 requires installation of below bundled packages from,
Sling > Downloads
  • Models API 1.3.0+
  • Models Implementation 1.3.0+
  • Models Jackson Exporter 1.0.0
  • AEM 6.2 Communities/Livefyre - FP2

How to add exporter framework to an existing sling model?

1) Add a resource type to a model,

Add below line in @Model code block of Sling Model.

resourceType = "[The type of the resourcse which we are requesting]";

2) Add a new annotation,

@Exporter ( name = "jackson", extensions = "json")

Associate a model class with a resource in SlingDocumentation here

After building the code, invoke the resource with selector model.json

This will bring back the response in JSON format and the response is picked from the getter methods in the sling model class.

Sling Exporter Documentation

Demo Video

 

Read More:

Sling Model Vs WCMUsePOJO