Recently I renewed my Episerver CMS certification (which I do every second year). Here is a guide to what you need to know, and how to prepare for the exam.
The certification presupposes that you have been working with Episerver CMS for a while, and it is advisable to have delivered at least a couple of Episerver CMS solutions before taking the exam.
The Episerver CMS certification is divided into five main areas:
I took the certification exam as part of the Episerver CMS Master Class. Even when working with Episerver CMS solutions on a daily basis, there will usually be parts of the system you rarely use, and the Master Class is an excellent way to refresh your memory about the parts of Episerver CMS that you haven’t touched recently. The Master Class is intended for people who are already knowledgeable Episerver CMS developers, and is not the place to learn new stuff. It’s great as a reminder, and almost guarantees that you’ll pass the exam (if you’re a seasoned Episerver CMS developer).
When taking the exam, remember that you cannot change a question once you have answered it, but you can see your unanswered questions as many times as you like. Sometimes, you’ll remember the answer later, or a later question may remind you of the answer. So the best thing to do is to begin by answering only the questions you are dead certain about, and skip all the others.
Remember to relax, you have plenty of time. For me, about forty five minutes remained when I clicked the button to end and score the exam.
The rest of this article describes the various knowledge areas for the exams in more detail, and gives some hints on how to gain knowledge in these areas.
As an experienced Episerver CMS developer, you probably already know your way around Episerver CMS fairly well.
But remember that you’re spending most of your time in code, and not so much in the UI. There might be several areas you should brush up on. Also, keep in mind that the system you happen to be working on every day is no longer a default installation…
For this reason, you’re strongly advised to install and play around with the AlloyTech demo solution. Take especially note of all menu options and screens that exist in the Editor and Administrator interfaces. As you’re playing around with Episerver CMS, make sure you are familiar with how the following features work:
- Language branches (see for yourself what happens when e.g. a page is missing translation, not only read about it)
- Version history
- Editing images
- Editing blocks
- Administrating user rights
- Searching for pages and content
You could also browse through the Editor and Administrator User Guides, and make sure you are familiar with all the information there.
Something you will get questions about during the exam, is where to find the Episerver CMS documentation, how to search for known bugs, how to report new bugs, etc. Take some time to familiarize yourself with the http://episerver.com and http://world.episerver.com websites.
Remember to also take note of the browser requirements, which you find in the Episerver CMS documentation. What are the browsers Episerver CMS requires for viewing and for editing?
Installation, Operation & Configuration
To start developing with Episerver CMS, all you need is to pull down the necessary NuGet packages. The Visual Studio extensions are not necessary, but makes getting started much easier; among other things you’ll get the AlloyTech site up and running if you have this installed, which is good when you’re preparing for the Episerver CMS certification.
Take note of the various requirements for developing and for running Episerver CMS. What versions of Microsoft SQL Server and Internet Information Server are required? What .Net versions are supported?
Read up on the license model, this has changed between each time I have taken the certification exam, and you’re guaranteed to get some questions about it. Make sure you know how to obtain a license.
Currently, there are two main licensing models, the Digital Experience Cloud (DxC) model, and the “instance bound” model (for Azure Web Apps). In addition, there is the “server bound” license model (where the license is tied to an IP or MAC address). You should also know the difference between a demo license and a Partner Developer license, and when you can use each of these.
How to deploy an Episerver CMS solution depends on whether it is a DxC solution, an Azure Web App, or running on designated servers. Unless you have worked with DxC, you should especially read up on how to install a DxC solution.
Configuration of your Episerver CMS solution is an important and big topic. Some of the configuration is done from the Editor or Administrator interface, and some of the configuration is done via *.config files. There are a lot of settings, and as an experienced developer you should be familiar with most of them. An often overlooked feature is the “Permissions for functions” setting in the Administrator interface, where you for instance can turn detailed error messages on or off.
Make yourself familiar with the Add-on Store, and take note of where in your solution the add-ons are placed. The add-ons are really NuGet packages, so you can also try installing them via NuGet. I cannot recall any questions about how to create an add-on, but it’s probably good to know this anyway.
Setting up mirroring is something I’ve rarely done in production, and it is a little tricky to get the configuration right, at least the first times you try. I therefore strongly suggest that you set up two sites on your local machine, and try out the mirroring functionality between them.
As an experienced Episerver CMS developer, you’re probably already familiar with the various content types and models Episerver CMS consists of. In Episerver CMS, content can be pages, blocks, media files, and folders. A content type inherits from the IContent interface, and contains a set of properties. PageData, BlockData, ContentReference, IContentRepository, etc should all be familiar to you.
Way back when I started working with Episerver CMS, properties were accessed by their names (using “magic” strings). This is still possible to do, and you should know how to do this, even though you probably don’t use it much. These days, we normally create strongly typed content, and we use normal C# getters and setters for accessing the properties. Properties can be enhanced with various attributes (Editable, Required, etc), and you should be familiar with the various ways to define properties in code. Properties can also be defined or changed from the Administrator interface, so make sure you know what happens and what takes preference when the code and the Administrator interface are out of sync with each other.
Episerver provides several ways of validating your properties; range, string length and regular expression. You can build your own, of course, but these should probably cover most of what you need.
You should also investigate how to render your properties. The UIHint attribute makes it possible for you to create several renderers a property type, and select the correct renderer based on the hint. Also make sure you understand how to render a property with or without an editor.
Creating Websites in Episerver CMS
When working with any system, it is of course important to know the underlying architecture, what the various architectural layers consist of, an so on. Episerver consists of the Episerver framework with a core user interface, and various modules such as the CMS, marketing automation and social interaction features. It has an open and layered architecture, allowing for almost any type of integration using standard technology.
The authentication in Episerver CMS is based on the ASP.NET built-in framework for role and membership providers. Episerver is currently moving away from this model, but this was the model for the version the exam was based on.
Globalization of an Episerver CMS solution is often important. I’ve rarely delivered projects where there was only a single language in use (and in some of those cases the customer wanted to add a second language later). For the certification exam, you should know the difference between a fallback language and a replacement language, how and when the master language is set, and how to enumerate language branches. Remember that globalization is both about the ability to create and display website content in different languages, and the ability to make the user interface appear in different languages; you should of course know how to do both of these.
Performance is essential for any web solution, and as a developer you should know what and how to improve this. You should also be aware of how various features and/or methods could negatively impact the performance, and how to avoid these. How to configure caching in Episerver CMS is necessary knowledge. Be familiar with object caching, output caching, browser caching, file caching and how the Dynamic Data Store (DDS) handles caching. It is also important to understand how caching works in a load balanced environment, and how the Episerver CMS cache invalidation works in this case.
The Dynamic Data Store (DDS) is a component offering an API and infrastructure for the saving, loading and searching of both compile time data types (.NET object instances) and runtime data types (property bags) in shared tables in SQL Server. The component is shipped as part of the Episerver Framework package. You need to know how to create or update a data store, and how to save and load data.
Personalization in Episerver CMS lets the editors target website content for predefined visitor groups. You should know how visitor groups are created, and how to use these to determine what content a visitor will see on the site. There are numerous predefined visitor group criteria available, and you should be able to recognize these. You should also know how to develop your own criteria.
Many websites use forms for input from visitors. The old XForms is still around, but the newer (and much improved) Episerver Forms is also an option. You must have knowledge of both of these. An exam tip here; wherever you see the word “Form”, stop and ask yourself which version of forms the question is asking about. I’m pretty sure I had one wrong answer during the exam because I misread one of the questions… You should know how to create the forms (in GUI and in code), how to use the forms, and how & where the forms store data.
For media files such as images, videos, and documents, you need to know how Episerver CMS handles the BLOB Storage, and how you can store and retrieve items via the built-in BLOB provider for stored on local disc or a file share that is defined during installation. You should also know how to customize your own BLOB provider.
Plug-ins are extensions to the user interface. You should know how to create these, and be familiar with the PlugInArea enumeration so that you know the various areas you can use for placing a plugin.
Scheduled jobs are often used in Episerver CMS solutions, and you need to know how to create and run these. Make sure you know how to specify when a job will run, and under what credentials it will run.
Make sure you know about Episerver CMS initialization, the InitializationEngine, and how to create an IInitializableModule. Expect questions about this on the exam, and know how it is determined in what order the modules are run.
The user interface is component-based and pluggable. It has support for drag-and-drop (DND) functionality based on the DND system in Dojo, and extendable navigation for easy access to customized modules from the top global menu. The user interface also has support for Dojo Toolkit including Dijit for widgets and jQuery. For the exam, you do not need to know how to create your own Dijit widget, but you need to know that it is possible to do so.
Content providers connects an Episerver CMS site to an external data source so that the data appears to be part of the Episerver CMS website, even though the data resides at the data source. You should know how to create a custom content provider, and how it’s content will appear in Episerver CMS.
The Episerver Service API is a service layer available for system integrators to update and retrieve information from Episerver, ensuring a seamless integration with external systems such as PIM, DAM and ERP. You need to know how to install the Service API, and how to use it to build powerful integrations with the systems of your choice.