This post will cover a number of questions (and answers_ that will be useful if you are either trying to hire an Episerver developer or, you are trying to win some Episerver work. Understanding the answers to these questions, should allow you to become an Episerver interviewing ninja 💥🐢

EPiServer 7+ Questions

What attribute can you decorate a Property to make it mandatory?

Required

What attribute do you need to add to a class to make it a scheduled task?

ScheduledPlugIn

What is the difference between a content area and a block?

One allows you to add blocks to a page, the other defines a component.

How do you enforce an image only property?

[UIHint(UIHint.Image)]

How do you set a class to be an initialization module?

IInitializableModule

What does the selectone and selectmany attributes do?

Denotes a single/multiple list property

What is the default logger that comes with Episerver?

Log4Net

What is PageBuilder?

A way to create strongly typed page-types based on .Net classes

What is a dynamic property?

Allows content editors a way to add dynamic content with the text editor

What is the name of the text editor used in Episerver?

TinyMCE

What keyword do you specify in a page type to create a text area within the CMS?

XHtmlString

What attribute specifies if a property should be searchable or not?

[Searchable]

How do you restrict the value of a PropertyNumber?

You can use the Range attribute

How can you use a Regular Expression to restrict the users input?

[RegularExpression] attribute

What does the GroupName property do?  

Determines the tab the property will be displayed on in the editor.

Can a property be set to contain more than one value?

If you use the [CultureSpecific] attribute, the content editor can add multiple values for each language

What is the built-in form called to provide form building capabilities?

XForms

EPiServer 6 Questions

What design pattern does the DataFactory class use?

Singleton

What does Composer do?

Gives users the ability to dynamically modify page templates

What attribute do you add to a class to make sure it is added into the page template table on run-time?

[PageType]

What attribute do you add to a property to add it into an Episerver template?

[PageTypeProperty]

What definition do you attach to a file to enable Episerver to find it as a custom Property?

[PageDefinitionTypeAttribute]

What information is stored within the Epiframework.config?

Contains mapping information describing which host addresses leads to a particular Episerver CMS site.

What namespace does PropertyXhtmlString live in?

EPiServer.SpecializedProperties

What namespace does PropertyString live in?

Episerver.Core

What class is responsible for all page related activities?

DataFactory

How can you install an Episerver website?

Via the deployment center or the visual studio plug-in

What is the difference between installing a site via deployment centre and the integration plug-in?

The deployment centre allows you to specify IIS and database connections but does not set a start page. The visual studio integration will set a start page and create a copy of the database in SQL express using the project name

What is the base property you need to inherit from to create a custom property in Episerver?

PropertyData

What is a PageReference class used for?

A pointer to Episerver page. Its the unique Id

What method do you need to overwrite in order to provide the control logic for loading the property?

Public override IPropertyControl CreatePropertyControl()

In order to create a custom tab what item do you need to inherit from?

PageTypeBuilder.Tab

What type-definition do you use to create a page picker property?

PropertyPageReference

List a few of the EPiServer Web Controls?

PageList, MenuList, NewsList, PageTree

How do you get a reference to the current web page?

PageData.CurrentPage

How do you get a list of all the pages directly underneath another page?

DataFactory.Instance.GetChildren(new PageReference(1))

How do you get all the pages directly under another page?

DataFactory.GetDescendents

What property do you need to inherit from to turn a user control into a control used to edit a dynamic property?

DynamicContentEditControl

What should a user control inherit from in order to give it access to the EPiServer infrastructure?

UserControlBase

What is the difference between FindPagesWithCriteria and FindAllPageWithCriteria?

FindPagesWithCriteria will filter out pages the requester does not have access to and that are not published, while FindAllPagesWithCriteria will return all matched pages.

What class do you use to supply Filtering information to the FindPages methods?

PropertyCriteriaCollction

How do you get a reference to a page's parent?

CurrentPage.ParentLink

What is IPageSource used for?

It's the interface for CurrentPage.  You can implement it to create a custom reference to the current page.  Useful if you're creating user controls in user controls.

How can you tell what the current type of page is?

CurrentPage.GetType()

What does CompareToIgnoreWorkID do?

Will return true if ID and RemoteSite are the same, otherwise false.

On a page what is the WorkId used for? 

The value represents the page version

What is the main responsibility of the PropertyData object?

Storing the property value and to render DefaultEdit, and OnPageEdit controls

What property allows you to add a URL picker onto a page? 

PropertyUrlControl

What property allows you to add a date picker? 

PropertyDate

How do you search for a page within Episerver? 

PropertyCriteriaCollection

What should you be wary of when searching pages?

The searches are not cached

What interface do you need to implement in order to create a property in the dynamic data store? 

IDynamicData

How do you save to the dynamic data store? 

DynamicDataStore<Type> store = DynamicDataStore<Type>.CreateStore(false); store.Save(this);

What assembly do you need to reference in order to access the dynamic data store?

EPiServer.Data and EPiServer.Data.Dynamic

What is the name of the geolocations database that is supplied with Episerver?

MaxMind

What is the Maxmind database useful for?

Creating localized Personalization information


Happy Coding 🤘