CX & Design October 27, 2015
To DD4T or Not to DD4T, That is the Question
DD4T is a popular application framework choice with the SDL Tridion (soon to be SDL Web) platform. Why is it so popular, and is it right for you?
What is DD4T?
In simplest terms, DD4T is a web application architecture (framework) that retrieves, composes and exposes content created in SDL Tridion. It follows the MVC architecture and is available in both ASP.NET and JAVA.
SDL Tridion content is stored in the Content Delivery database, and retrieved by DD4T via the SDL Tridion Content Delivery API.
There are versions of DD4T available for all current (and several past) versions of SDL Tridion, and there are many extensions available in the community as open source projects.
What are the benefits?
Overall, I really like the DD4T approach and I recommend it to my customers without hesitation (depending on a few key factors).
DD4T is a solid and mature framework, currently being used in many global SDL Tridion implementations.
There are many benefits which can streamline and improve development when using DD4T, like:
- Separation of concerns
Tridion is a content management system and, when possible, I prefer to use it as one. While it can handle code, dlls and anything else you wish to store in it, the question is, ‘should it’?Web applications, especially as they get more and more complex, do not belong in a content management system. They belong in a source control system, such as GIT.
DD4T focuses you on Tridion for content and your web application for function, with very little overlap.
- Improved deployment processes
DD4T makes it easy to formalise your deployment process, and move towards the continuous delivery goal. At Dept, we’ve perfected a continuous delivery pipeline built with TeamCity.
- Developer friendly
DD4T easily allows local development on the developer’s machine. It promotes collabortaion and working as a team. For ASP.NET and JAVA developers, it is easy to start working quickly.
- Leverage a broader skillset
Hiring ASP.NET and JAVA developers is much easier (and often cheaper) than hiring SDL Tridion developers. DD4T allows you to focus on widely available skillsets vs. specialist skills when recruiting.
- Easy maintenance
Depending on architectural decision, new websites can be easily created and deployed from Tridion, without IT involvement.
- Improved time to market
Once your framework is in place, new pages, component and layouts are easy and fast.
- Improved scalability
As an MVC application, pulling from a single datasource vs. a distributed file system, it is much easier to scale out quickly as required.
- Source Control friendly
Yes, SDL Tridion provides version history and rollback, but it is not source control. It does not facilitate release versions, branching and all the goodness of source control. DD4T allows you to follow a source control process much more easily, for example Gitflow.
Build with dependency injection means the SDL Tridion version is abstracted from your web application, making upgrades easy.
DD4T is not officially supported by SDL however, all of the major SDL Tridion agencies, including Dept, are very experienced in the framework.
When should I not use it?
DD4T is not a silver bullet and it is not right for every situation. So what are the drawbacks you should consider when evaluating if DD4T is right for you?
- Static vs. dynamic
If you are building a mostly static website, it might be worth considering other options. Not that DD4T is wrong, but do you need the overheads?
If your team is not familiar with ASP.NET, JAVA or the MVC pattern, it will require training and time to get fully up to speed.
Not all SDL modules are supported, but that list gets shorter and shorter as the community continues contribute.
- Quick changes
Some people like that they can make a change in SDL Tridion, publish and see it on the website, even though that approach is fraught with danger.
An alternative option can give more control over release speed, but negatively impacts release robustness.
- Application architecture
Some approaches to DD4T can result in single application pools across many languages, which could be an issue in very high traffic situations.
DD4T 2.0 has landed! With many improvements and integrating some of the more successful community projects, DD4T 2.0 has released beta stage in both ASP.NET and JAVA.
What about DXA?
DXA (formally SDL Tridion Reference Implementation) is SDL’s ‘version’ of DD4T. DXA (Digital Experience Accelerator) is built upon the foundation of DD4T, with more of a structured interface.
DXA provides a UI over the DD4T data access, built with the Bootstrap HTML framework. DXA is, again, not right for everyone, but it is a great option to get up and running quickly.
If you’re interested whether DD4T or DXA is right for your implementation, Dept can advise and dive deeper into the benefits and drawback of each approach for your organisation.