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?
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?
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 Default
, Edit
, 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 🤘