04 Feature analysis

04 Feature analysis

This page contains an overview of features that are currently present in one or both of the frameworks, plus features that we would like to add.

 

.NET version

Feature

Implementation in DD4T

Implementation in DXA

Preferred solution

Discussion

Feature

Implementation in DD4T

Implementation in DXA

Preferred solution

Discussion

ViewModels

  • Attribute-driven

  • Schema and view determine the model

  • Possible to add your own attributes

  • Pages + ComponentPresentations (No regions)

  • Two-step approach (1. deserialize into page/cp, 2. map properties to strongly typed model)

  • ETC

  • Attribute-driven

  • View determines the model

  • N→M schema→model mapping possible

  • Can map multiple fields to a property

  • Can flatten structure (search for mapped fields in embedded fields)

  • ETC

To be decided

See ViewModels for an in-depth discussion

Caching

  • Open, extensible

  • Event-based and time-based invalidation

  • Closed

  • Time-based expiration

DD4T?

We need an overall caching layer for the entire microservice (because SDL doesn't offer this at all)

Enterprises want to decide on a caching solution themselves

Controllers

 

 

To be decided

 

Navigation

 

  • navigation.json page published from Root SG

  • Based on site structure

  • Simple (SG and Page title based) and Localizable (based on component content) implementations

  • Logic in TBB

  • Example Controller, Models and Views to implement Top nav, context nav, breadcrumb, sitemap, google sitemap

DXA?

 

Labels/Resources

 

  • 1 labels JSON 'file' published per module (avoids key clashes across modules) as part of Publish Settings page publish

  • Key-value pair and bespoke schema implementations supported

  • Multiple labels components per module possible

?

 

Configuration

 

  • Implemented in the same way as Labels/Resources

 

 

Preview

 

Not implemented

DD4T

 

XPM

  • Linked to ViewModels

  • Helper called from views to render tags

  • Helper called from views to render tags

  • XPM regions created automatically

  • Also possible to edit 'include' pages with XPM (header/footer etc.)

DD4T

Faster, no requirement to have well-formed view output

Modules

 

  • Standard structure for CM and CD for packaging modules

 

 

Installer

 

  • CM installed with PowerShell script (CP package)

  • CD installed with PowerShell script (IIS website)

 

 

Example Site

 

  • Example site installed in CMS with CP package

  • Contains example schemas, templates and content (pages+components)

 

 

HTML Design

 

  • Option to build and distribute HTML design from CMS

  • Option to customize HTML design from CMS configuration

  • Also possible to deploy as part of web app

 

 

Other

 

  • Easily retrieve content in data format (JSON, RSS, Atom)

  • Request-time image resizing (native and using CID)

  • Integrated RESS using Context Engine

  • Support for public Semantics (schema.org etc.)

  • Simple broker querying

 

 

 

 

Java version

Feature

Implementation in DD4T

Implementation in DXA

Preferred solution

Discussion

Feature

Implementation in DD4T

Implementation in DXA

Preferred solution

Discussion

ViewModels

  • Attribute driven

  • Straight deserialization in STMs

  • n:m models possible

  • Extensible

  • Two-step approach

  • Support for semantics

DD4T

Might be an option to bring semantics into the databind framework.

In any case, the attribute set must be supported.

Caching

  • Fully extensible

  • Support for EHCache and Infinispan

  • Event driven (JMS) and time based

  • Dependency invalidation mechanism

  • Relies on DD4T provider cache

  • No further caching mechanisms found

DD4T

A form of output caching may be needed. This issue is based on a couple

of DXA implementations trying to go live, but having had performance issues.

Controllers

 

 

TBD

 

Navigation

  • No support for OOTB navigation

 

DXA

It would be great if this could be modularized, if not already done.

Labels

  • No OOTB support for Labels

 

DXA

It would be great if this could be modularized, if not already done.

Preview

DD4T support Session Preview OOTB, bypassing caching.

 

TBD

 

XPM

  • Native XPM support

  • Native XPM support

TBD

 

Configuration

  • Spring based XML

  • Code config

DD4T

Although code based configuration is cleaner, many users prefer the XML based version to make quick edits

Views

  • JSP views

  • JSP Views

TBD

 

Modules

 

Standard interfaces and approaches

DXA

 

Example Site

 

 

 

 

HTML Design

 

 

 

 

Other

 

 

 

 

 

 

Comments