[EpiCD] Episerver Certified Developer Certification Exam Guide, Exams of Technology

This guide provides a complete roadmap for developers preparing for the Episerver Certified Developer exam. It covers core platform architecture, CMS customization, content modeling, templates, personalization, deployment, and troubleshooting. With hands-on examples, best practices, and targeted review sections, candidates gain both practical development skills and exam readiness.

Typology: Exams

2025/2026

Available from 02/14/2026

shilpi-jain-3
shilpi-jain-3 🇮🇳

2.5

(11)

80K documents

1 / 91

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
[EpiCD] Episerver Certified Developer
Certification Exam Guide
**Question 1.** Which NuGet package provides the core APIs for accessing content in an
Optimizely (Episerver) site?
A) EPiServer.CMS.Core
B) EPiServer.Framework
C) EPiServer.CMS.UI
D) EPiServer.ServiceApi
Answer: A
Explanation: EPiServer.CMS.Core contains the IContentRepository, IContentLoader, and other
essential content APIs.
**Question 2.** In the Optimizely One ecosystem, the term “DXP” refers to which of the
following?
A) A headless CMS only
B) The cloudbased Digital Experience Platform offering SaaS services
C) An onpremises content repository
D) A static site generator
Answer: B
Explanation: DXP (Digital Experience Platform) is Optimizely’s SaaS offering that includes CMS,
commerce, and marketing tools in a cloud environment.
**Question 3.** Which of these is the correct way to register a custom service for dependency
injection in Startup.cs?
A) services.AddTransient\<IMyService, MyService\>();
B) services.AddSingleton\<MyService\>();
C) services.AddScoped\<IMyService, MyService\>();
D) All of the above are valid depending on the desired lifetime
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b

Partial preview of the text

Download [EpiCD] Episerver Certified Developer Certification Exam Guide and more Exams Technology in PDF only on Docsity!

Certification Exam Guide

Question 1. Which NuGet package provides the core APIs for accessing content in an Optimizely (Episerver) site? A) EPiServer.CMS.Core B) EPiServer.Framework C) EPiServer.CMS.UI D) EPiServer.ServiceApi Answer: A Explanation: EPiServer.CMS.Core contains the IContentRepository, IContentLoader, and other essential content APIs. Question 2. In the Optimizely One ecosystem, the term “DXP” refers to which of the following? A) A headless CMS only B) The cloud‑based Digital Experience Platform offering SaaS services C) An on‑premises content repository D) A static site generator Answer: B Explanation: DXP (Digital Experience Platform) is Optimizely’s SaaS offering that includes CMS, commerce, and marketing tools in a cloud environment. Question 3. Which of these is the correct way to register a custom service for dependency injection in Startup.cs? A) services.AddTransient(); B) services.AddSingleton(); C) services.AddScoped(); D) All of the above are valid depending on the desired lifetime

Certification Exam Guide

Answer: D Explanation: ASP.NET Core DI supports Transient, Scoped, and Singleton lifetimes; the appropriate method depends on how often the service should be instantiated. Question 4. What is the primary difference between the Content Cloud (PaaS) and Optimizely SaaS CMS? A) PaaS runs on Azure VMs, SaaS runs on AWS B) PaaS requires manual server management, SaaS is fully managed by Optimizely C) PaaS only supports headless delivery, SaaS does not D) There is no difference; they are the same product Answer: B Explanation: The traditional Content Cloud (PaaS) requires customers to manage infrastructure, whereas the SaaS CMS is a fully managed service. Question 5. Which interface is responsible for loading content by its ContentReference without considering version or language? A) IContentRepository B) IContentLoader C) IContentCache D) IContentVersionRepository Answer: B Explanation: IContentLoader provides methods like Get(ContentReference) that retrieve the latest published version, ignoring specific version numbers. Question 6. The Content Delivery API in Optimizely is primarily used for: A) Admin UI customization

Certification Exam Guide

Question 9. Which command creates a new Optimizely site using the dotnet CLI template? A) dotnet new episerver-cms – n MySite B) dotnet new optimizely-cms – n MySite C) dotnet new episerver – n MySite D) dotnet new episerver-cms – n MySite Answer: D Explanation: The correct template name is episerver-cms; the command creates a new project scaffold. Question 10. To update the database schema after adding a new property to a PageData type, which command should you run? A) episerver syncdb B) dotnet ef migrations add AddNewProperty C) dotnet episerver database update D) dotnet episerver db update Answer: D Explanation: The dotnet episerver db update command applies schema changes based on the updated model. Question 11. When configuring multiple environments, which setting is typically stored in appsettings.Production.json? A) Logging level for development B) Connection string to the production database C) Debugger launch settings D) Sample data for local testing Answer: B

Certification Exam Guide

Explanation: Production‑specific settings like the live database connection string belong in appsettings.Production.json. Question 12. Which attribute marks a class method as a scheduled job in Optimizely? A) [BackgroundJob] B) [ScheduledJob] C) [CronJob] D) [RecurringTask] Answer: B Explanation: The [ScheduledJob] attribute registers the method with the Optimizely scheduled job framework. Question 13. In content modeling, which base class should a custom block inherit from? A) PageData B) BlockData C) ContentData D) ModelBase Answer: B Explanation: Custom blocks extend BlockData, which provides block‑specific functionality. Question 14. Which attribute makes a property editable per language in the editor UI? A) [Display] B) [CultureSpecific] C) [Editable] D) [Localized]

Certification Exam Guide

D) ContentReferenceCollection Answer: A Explanation: IList\ provides compile‑time type safety for a collection of blocks. Question 18. Which class represents a media file (image, video, document) in Optimizely? A) MediaFile B) MediaContent C) MediaData D) AssetData Answer: C Explanation: MediaData is the base class for all media assets stored in the CMS. Question 19. To enable a site to support English and French, which setting must be configured in the admin UI? A) Languages → Add Language → en, fr B) Site Settings → Multilingual → true C) Content Types → Enable Localization D) Database → Insert into LanguageTable Answer: A Explanation: Adding languages via the Languages section registers them for the site. Question 20. Which method creates a new version of a page for editing without affecting the published version? A) IContentRepository.Save(page, SaveAction.Publish) B) IContentRepository.CheckOut(page)

Certification Exam Guide

C) IContentRepository.CreateNewVersion(page) D) IContentRepository.GetVersion(page) Answer: B Explanation: CheckOut creates a working copy (draft) while the published version remains unchanged. Question 21. In MVC rendering, which component is responsible for selecting the appropriate view for a PageData type? A) IContentRenderer B) IViewEngine C) IPageTemplateResolver D) IContentTemplateResolver Answer: D Explanation: IContentTemplateResolver maps content types to view files based on naming conventions and tags. Question 22. Which attribute can be applied to a controller action to indicate it should be used for rendering a block? A) [BlockAction] B) [RenderBlock] C) [BlockComponent] D) No attribute; blocks are rendered via ViewComponents or partial views Answer: D Explanation: Blocks are typically rendered using ViewComponents or partial views; no special controller attribute is required.

Certification Exam Guide

Question 26. To create a custom property editor that displays a color picker, which interface must you implement? A) IPropertyEditor B) IPropertyRenderer C) ICustomProperty D) IPropertyDescriptor Answer: A Explanation: Implementing IPropertyEditor lets you define a custom UI component for a property. Question 27. Which Optimizely add‑on provides drag‑and‑drop form creation for marketers? A) Optimizely Forms B) Optimizely Surveys C) Optimizely Campaigns D) Optimizely FormsBuilder Answer: A Explanation: Optimizely Forms is the built‑in solution for creating and managing forms. Question 28. The Find service in Optimizely is primarily used for: A) Content versioning B) Full‑text search across content items C) Media transcoding D) User authentication Answer: B

Certification Exam Guide

Explanation: Find is a search engine that indexes content for fast full‑text queries. Question 29. Which event is raised after a page has been successfully published? A) ContentSaved B) ContentPublished C) PublishedContent D) ContentPublishedEvent Answer: C Explanation: The PublishedContent event is triggered after a publish operation completes. Question 30. To programmatically assign a role to a user, which API should you use? A) UserManager.AddToRoleAsync B) IPrincipal.AddRole C) RoleProvider.AssignRole D) IAuthorizationService.AddRole Answer: A Explanation: In Optimizely, UserManager (from ASP.NET Identity) provides AddToRoleAsync for role management. Question 31. Which cache interface is best suited for caching objects that need to be shared across multiple web servers? A) ICacheManager B) IObjectInstanceCache C) IDistributedCache D) MemoryCache

Certification Exam Guide

A) /api/episerver/v2.0/environments B) /api/deployment/v1.0/projects/{id}/environments C) /api/episerver/v2.0/projects/{id}/envs D) /api/cloud/v1/environments Answer: B Explanation: The Deployment API exposes environments via the /api/deployment/v1.0/projects/{id}/environments endpoint. Question 35. To view runtime logs from an Optimizely DXP instance, you should use: A) Azure Application Insights portal B) DXP portal → Logs → LogViewer C) Windows Event Viewer on the server D) Episerver Admin → Log Files Answer: B Explanation: The DXP portal provides a LogViewer tool for accessing site logs. Question 36. Which attribute is used to mark a property as being ignored by the content model serializer? A) [IgnoreDataMember] B) [NonSerialized] C) [JsonIgnore] D) [EPiServerIgnore] Answer: C Explanation: [JsonIgnore] prevents the property from being serialized to JSON (used by the Content Delivery API).

Certification Exam Guide

Question 37. When creating a custom block that should be editable only by users with the “Editor” role, which attribute can be applied? A) [Authorize(Roles="Editor")] B) [ContentAccess(Roles="Editor")] C) [AllowedRoles("Editor")] D) [RestrictAccess(Roles="Editor")] Answer: A Explanation: The standard ASP.NET Core [Authorize] attribute restricts access based on roles. Question 38. Which of the following is NOT a valid content type inheritance pattern in Optimizely? A) PageData → SitePageData → MyCustomPage B) BlockData → MediaBlock → ImageBlock C) ContentData → MySpecialContent → MyCustomPage D) PageData → ProductPage → MyProductPage Answer: C Explanation: ContentData is not a base class for page types; pages must inherit from PageData. Question 39. The “Tags” feature in Optimizely is primarily used for: A) Security permissions B) Content categorization and retrieval C) URL routing D) Database indexing Answer: B Explanation: Tags allow editors to assign keywords to content for filtering and search.

Certification Exam Guide

D) RunOnOneServerOnly Answer: D Explanation: The RunOnOneServerOnly property of the ScheduledJob attribute ensures only one instance executes the job. Question 43. In a headless scenario, which format does the Content Delivery API return by default? A) XML B) JSON C) CSV D) HTML Answer: B Explanation: The API returns JSON representations of content items. Question 44. When creating a custom authentication provider, which interface must be implemented? A) IAuthenticationHandler B) IAuthenticationProvider C) IIdentityProvider D) IExternalLoginProvider Answer: B Explanation: IAuthenticationProvider defines methods for login, logout, and user validation. Question 45. Which of the following is the correct way to retrieve the current user’s principal in a controller? A) HttpContext.Current.User

Certification Exam Guide

B) User C) ServiceLocator.Current.GetInstance() D) HttpContext.User Answer: D Explanation: In ASP.NET Core, HttpContext.User provides the current IPrincipal. Question 46. The “ContentReference” struct is primarily used for: A) Storing GUIDs of assets B) Representing a reference to any content item (page, block, media) C) Managing database connections D) Defining routing paths Answer: B Explanation: ContentReference uniquely identifies a content item in the CMS. Question 47. Which attribute can be added to a property to make it appear as a rich text editor in the UI? A) [UIHint("RichText")] B) [EditorDescriptor(typeof(RichTextEditorDescriptor))] C) [Display(Type = "RichText")] D) [RichText] Answer: B Explanation: Using EditorDescriptor with a RichTextEditorDescriptor tells the UI to render a rich text editor. Question 48. To add a custom validation rule that checks a string length is exactly 10 characters, which interface should you implement?

Certification Exam Guide

Question 51. Which feature allows editors to preview unpublished changes without affecting the live site? A) Draft Mode B) Edit Mode C) Preview Mode D) Staging Mode Answer: C Explanation: Preview Mode renders the site with draft content for the editor. Question 52. To customize the URL segment of a page, which property should be overridden? A) UrlSegment B) PageUrl C) UrlPath D) RouteSegment Answer: A Explanation: The UrlSegment property defines the part of the URL derived from the page name. Question 53. Which attribute is used to indicate that a controller action should respond to HTTP POST requests? A) [HttpGet] B) [HttpPost] C) [HttpPut] D) [AcceptVerbs("POST")] Answer: B Explanation: [HttpPost] restricts the action to POST verb.

Certification Exam Guide

Question 54. When using a ViewComponent to render a block, which method must be implemented? A) InvokeAsync B) Render C) ExecuteResult D) Process Answer: A Explanation: ViewComponents expose an InvokeAsync (or Invoke) method that returns IViewComponentResult. Question 55. Which of the following is the correct way to register a custom view location format for page templates? A) services.Configure(options => options.ViewLocationFormats.Add("/Views/Pages/{0}.cshtml")); B) options.ViewLocationFormats.Insert(0, "/Pages/{0}.cshtml"); C) services.AddRazorPages().AddRazorOptions(o => o.ViewLocationFormats.Add("/Pages/{0}.cshtml")); D) services.Configure(o => o.ViewLocationFormats.Add("/Pages/{0}.cshtml")); Answer: D Explanation: RazorViewEngineOptions allows adding custom view location formats. Question 56. Which of the following is NOT a built‑in content type in Optimizely? A) StandardPage B) MediaFile