Sitecore Best Practice #5: Template names are for authors, not developers

06 June 2011
Adam Najmanowicz
Frink_Cognifide_2016_HeaderImages_0117

This best practice is about letting the developer know that they are supposed to be designing the system with the Author in mind and start with the naming conventions.

This is a fairly trivial one but yet somehow we managed to get it wrong the first time we were doing it. To be honest, this is what actually gave birth to the initiative around gathering our best practices. Basically, after I saw how we named our templates (and yes, we did it according to the "Wrong names") I came to the conclusion that  letting a developer design the authoring experience without clearly setting the AX goals is akin to letting your car mechanic desing the interior of your next car. You know very well your goals are not compatible with your mechanic. He would be happy to make a giant hole in the dashboard to make it easier for him to get under the hood whereas you would rather have a nice speed meter and a clock there.

Unfortunately, I find many developers (and brilliant developers to be honest - who I have utmost respect for) have similar tendencies and do not always understand that the user does not care the slightest bit about the implementation and they never should.

Why Should I follow CMS Naming Conventions?

Item template names are presented to the Authors when they create new cotnent. The Code-style templates create an impression of a "work in progress" state of the code. As we don't use the templates for auto-mapping onto classes we should not attempt to mimic the code practices in a clearly user-facing scenario.

How do I implement it in my project?

Custom item templates should be stored within /sitecore/templates/Cognifide and named in a human readable fashion.

It is easy to follow this rule without breaking the naming convention in your code. Simply name your template whatever you want (ArticleTemplate for example) and then change it's Display Name to more author friendly name (Article Page). This will allow to keep proper names for the templates while still displaying human readable names for normal users. You can change Display Name in Template Manager, in Home tab, in Rename section.

The item templates should be named in a way that is logical to end users and indicate their purpose i.e. "Article Page" rather than "ArticleTemplate". If a change is required within the Framework to enable that practice, provide a lab proposal for the change.

Also, Templates should have the Content / Help / Short description field filled out, (select View->Standard fields to see it when editing the template).

Wrong names
  • ArticleTemplate
  • BlogsDirectoryTemplate
  • BlogTemplate
  • CaseStudyTemplate
  • ClientsHubTemplate
  • ErrorPageTemplate
  • EventTemplate
  • ExternalSourceTypeTemplate
  • FollowUsLinkTemplate
  • FooterLinkTemplate
  • HomeTemplate
  • HomePageFeature
  • HubTemplate
  • ListTemplate
  • NewsTemplate
  • NodeTemplate
  • PeopleHubTemplate
  • PersonTemplate
  • ResourcesTemplate
  • RssTemplate
  • PostItemTemplate
  • TestimonialTemplate
  • TweetItemTemplate
  • TwitterTemplate
Proper names
  • Article Page
  • Blogs Directory
  • Blog Account
  • Client Page
  • Clients Hub
  • Error Page
  • Event Page
  • External Source Type
  • Follow Us Link
  • Footer Link
  • Home Page
  • Home Page Feature
  • Hub Page
  • News List, Events List
  • News Page
  • Node
  • People Hub Page
  • Person Page
  • Resources
  • RSS Feed
  • Blog Post Page
  • Testimonial
  • Tweet
  • Twitter Account