We are upgrading from SDL Tridion 2011 SP1 HR1 to SDL Tridion 2013 SP1. As we are changing database from Oracle to SQL Server, we used Content Porter to migrate content.

After doing content port we just previewed a Page having Compound Page Template and Compound Component Templates. (Build using Tridion 2011 DLLs)

We found that preview is working fine. As per under understanding we have to build all Compound Templates with SDL Tridion 2013 SP1 DLLs.

We are not understanding how come this is working though we have not build DLLs with Tridion 2013 SP1 DLLs. Can anyone help us understanding this?

  • 3
    It's a little thing called "backwards compatibility" and .NET policies. Even templates compiled against Tridion 2009 will work, though you may get some deprecation warnings.
    – Nuno Linhares
    Sep 29, 2014 at 18:36
  • 1
    So this means that on content port from Tridion 2011 SP1 HR1 to Tridion 2013 SP1, Compound Templates will work normally (Because of backward compatibility). If we really want to know which all APIs are deprecated should build the solution with Tridion 2013 DLLs.
    – k951
    Sep 30, 2014 at 6:23
  • Pls answer your question yourself to close this question
    – robrtc
    Nov 26, 2014 at 12:43

1 Answer 1


In January 2008 Tridion R5.3 was released, bringing us the Modular Templating model. From that version onwards backwards compatibility is guaranteed in the Templating model by using .NET policies. This effectively means that any TBB built on a lower version than the CMS is running, will work without the need for recompilation against the latest version of the DLLs.

The documentation lists exactly what API changes have been introduced in new versions. For a comparison between 2013 SP1 and 2011 SP1, you can take a look at this topic: https://docs.sdl.com/LiveContent/content/en-US/SDL%20Tridion%20full%20documentation-v1/GUID-C7BE9732-85D3-4202-A216-C6293593243A. Compared to SDL Tridion 2011 SP1, the TOM.NET API in SDL Tridion 2013 SP1 has changed only slightly:

  • Process.Subjects used to return a IEnumerable<IWorkflowItem>, now it returns an IList<IWorkflowItem>.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.