Feature | In DXA | DD4T .NET | DD4T Java | Comments |
---|---|---|---|---|
Features of the models | ||||
Attribute-driven | Yes | Yes | Yes | Both attributes will be backwards compatible, but will choose one preferred one for future usage, try to consolidate/minimise use of attribute. Metadata could be separate property, but does not have to be |
Support for strongly typed page models | Yes | Yes | Partial | |
Support for page regions | Yes (in generic pages) | Yes (in custom page models) | No | Regions in DXA are created in the generic page to group CPs, in DD4T there are attributes to let you model this on the page. Regions should be in the Generic page model and have a pluggable region mapper. |
Link and rich text resolving | Yes | Yes | Yes | Linking: Needs to be in the model and extendible. Mark properties as dynamic to decide on the spot. Rich Text: Needs to be in the model and extendible. DXA has a type which can contain html but also full entity models, should be an implementation of the rich text models |
Multiple attributes on a property | Yes | No | Yes | Need to be clear on ordering and functional logic DXA and Java do it but maybe differently |
Search in a tree structure | Yes | No | Good feature, but it must be made optional | |
Schema.org support | Yes | No | ||
Multiple schemas per viewmodel | Yes | No | ||
Multiple viewmodels per schema | Yes? | Yes | ||
Extensible attributes | No | Yes | Cleanup necessary | |
Lazy properties? | No | No | Especially in combination with ExternalContentProviders | |
Features of the model builder | ||||
Uses reflection only once | No | Yes | DD4T reads all model information only once (using reflection), and uses it many times | |
Independent from MVC | Not sure? | Yes | It must be possible to use the ViewModels outside the context of MVC to facilitate testing etc | |
Injecting ExternalContentProviders | No | No | ||
Single-step approach (from json to strongly typed object) | No | NoJava only | Yes | Need Nice to test to see if this is important enoughhave - interesting to know what if any performance gain this gives. Needs to be extendible in the same way as you have modelbuilder pipeline. Needs to be EASY to create your own attributes. |
Inject viewmodels using ModelBinder | No | Yes (in feature branch) | Multiple ModelBinders to support various ViewModel implementations | |
Support for older viewmodel architectures (DXA and DD4T) | No | No | Important to offer an upgrade path for all customers! |
Page Comparison
General
Content
Integrations