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

FeatureImplementation in DD4TImplementation in DXAPreferred solutionDiscussion
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 decidedSee 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 implementedDD4T
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.)
DD4TFaster, 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

FeatureImplementation in DD4TImplementation in DXAPreferred solutionDiscussion
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

DXAIt would be great if this could be modularized, if not already done.
Labels
  • No OOTB support for Labels

DXAIt would be great if this could be modularized, if not already done.
PreviewDD4T support Session Preview OOTB, bypassing caching.
TBD
XPM
  • Native XPM support
  • Native XPM support
TBD
Configuration
  • Spring based XML
  • Code config
DD4TAlthough 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 approachesDXA
Example Site



HTML Design



Other