Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

DXA Extensibility

No description
by

Will Price

on 21 January 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of DXA Extensibility

Questions?
How to customize and extend for customer implementations
Implementation
Process

Extension
Points

Version?
1.0 or 2.0

Custom Controllers
Purpose:
You can use CT Metadata to route the processing of Component Presentations to custom controllers other than the default EntityController
(demo - Search Controller)
Base:
Sdl.Web.Site.Areas.Core.Controllers.EntityController
Scenario:
Search, SmartTarget, Broker Queries, Product Data...
IContentProvider
Purpose:
The Content Provider is responsible for the loading and transformation of content models from the underlying domain (CMS)

(demo - show interface & configuration)
Base:
Sdl.Web.Mvc.BaseContentProvider
Scenario:
If a customer doesn't want to use DD4T, you could publish content in another format, and create your own Content Provider to load and transform this data into the DXA View Models
IContentResolver
Purpose:
The Content Resolver takes care of any additional resolving required when mapping the domain (CMS) models to the presentation (View) models (mapping templates to views, link/RTF resolving)
(demo - interface and configuration)
Scenario:
You might want to extend the logic for resolving RTF content (for example embedding linked content), or alter the behaviour of dynamic linking (resolving DCP links to special URLs)
IMediaHelper
Purpose:
Defines screen breakpoints for responsive design and generation of responsive URLs for media items (images, videos etc.)
(demo - interface and configuration)
Base:
Sdl.Web.Mvc.Html.BaseMediaHelper
Scenario:
DXA has two implementations of this for native image resizing and Contextual Image Delivery. You could extend to create media URLs which map to a CDN
IModelBuilder
Purpose:
The Content Provider uses a set of Model Builders to map the domain model to the view models.
(demo - interface, content provider)
Base:
Sdl.Web.Common.Mapping.BaseModelBuilder
Scenario:
You could extend the default Builder, or create a custom Model Builder for a very complex model, that required content transformations not handled by the default model builder logic.
DXA Extensibility
Note:
DD4T Content Provider does not implement GetEntityModel and GetEntityContent (DCPs)
Notes:
TRI 2.0 has additional
EvaluateEntity
method, which can be used for conditional rendering of CPs
This extension pattern is documented at:

http://www.tridiondeveloper.com/tridion-reference-implementation-patterns-2-mixing-cms-content-with-external-data
The 2.0 Difference
Multi-tenancy
- run many sites in one web app
Page Model fully
pre-built
Zero-code syndication of view models in
JSON /RSS
formats
Extension point for
Conditional CP rendering
(IContentResolver.EvaluateEntity)
Java
Version
Does DXA change the way we do projects?
Getting Started
Install it with the out-of-the-box configuration.
Perfect for POC
"Good" customers get familiar with Tridion
End-to-end working system from day 1
Don't edit the existing site, content, schemas, templates etc. - implement your own so you:
Always have a working example
Can upgrade - see new features

(tip - there is an undocumented website-only installer option)
For some things
the old way is the best...
Blueprint Design
Logical Architecture
Some things are new...
Interaction with Design Agency
Traditionally they were the start point
DXA provides a new input
DXA enables a tighter integration between Design and CMS implementation
Still not perfect
Be more Agile....
You have an end-to-end working system from day 1

Design schemas on-the-fly within DXA (no more 150 page FDs!)
Test them in Experience Manager (end the
"XPM in phase 2"
mentality)
Stub custom controllers to allow View developers to work independently and show "integrated" functionality from an early stage
Design your security model in the CMS
Instead of How?... What?
The basics are done for you, so focus on
what
is done with them rather than
how
:
Navigation & Sitemap
Common page elements (includes)
Metadata
Configuration & Resources
Image resizing
Cookie/Notification bars
Simple Broker Queries
Use Modules
for Logical Separation
Modules need not be a concept purely for sharing between implementations.

Logically organize functionality
Turn features on/off in the blueprint
Separate teams/workstreams
Bundle items for deployment
Full transcript