Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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
  • Not possible to add your own attributes
  • Properties find matching fields in an embedded field
  • ComponentPresentations only
  • Two-step approach
  • To be decidedIdeal is to deserialize directly from DD4T JSON into view model.
    • 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
    View output is loaded in XML document and manipulated with XPath
    • 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
    Not
    • 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