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)
- Resolves links
- Regions created in page to group CPs
- Two-step approach
- ETC
| To be decided | Ideal is to deserialize directly from DD4T JSON into view model.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
|
|
|