




























































































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
This preparation guide is tailored for developers working with Episerver Content Cloud. It covers content modeling, editorial workflows, personalization, search, headless CMS concepts, and cloud deployment. Through structured lessons and exam-aligned practice questions, candidates learn to build scalable, secure, and user-centric content solutions.
Typology: Exams
1 / 100
This page cannot be seen from the preview
Don't miss anything!





























































































Question 1. Which Azure service is primarily used to host the Optimizely DXP runtime in a cloud deployment? A) Azure Functions B) Azure App Service C) Azure Kubernetes Service D) Azure Storage Answer: B Explanation: Optimizely DXP is typically deployed as a web application on Azure App Service, providing managed IIS hosting, scaling, and integration with Azure resources. Question 2. In Optimizely, what is the purpose of the IInitializableModule interface? A) To define custom content types B) To run code during application startup C) To handle HTTP requests D) To manage database migrations Answer: B Explanation: Implementing IInitializableModule allows developers to execute initialization logic when the application boots, such as registering services or setting up routes. Question 3. Which attribute marks a property as culture‑specific in a content type? A) [Display] B) [Required] C) [CultureSpecific] D) [Editable]
Answer: C Explanation: The [CultureSpecific] attribute tells the CMS that the property can have different values for each language version of the content. Question 4. When creating a page type, which base class must be inherited? A) BlockData B) ContentData C) PageData D) MediaData Answer: C Explanation: Page types derive from PageData, which provides properties like URL, name, and publishing metadata. Question 5. What does the TemplateDescriptor attribute’s AvailableInEditMode property control? A) Whether the template can be edited in the CMS UI B) The devices (mobile/desktop) on which the template is used C) The order of templates in the selector list D) If the template is visible to anonymous users Answer: A Explanation: Setting AvailableInEditMode = true makes the template selectable while editing a page in the CMS. Question 6. Which method of IContentRepository retrieves a content item by its ContentReference?
Explanation: The [Display] attribute only controls label and order; it does not define a custom editor UI. Question 9. In Optimizely’s search engine, what does the “Boost” parameter influence? A) The number of results returned B) The relevance ranking of matching documents C) The security permissions applied to the query D) The indexing speed of the content item Answer: B Explanation: Boost increases the weight of a field or document in the relevance calculation, making it rank higher in search results. Question 10. Which interface must a class implement to become a scheduled job? A) IScheduledJob B) IJob C) IBackgroundTask D) ScheduledJobBase Answer: D Explanation: Scheduled jobs inherit from the abstract class ScheduledJobBase, providing Execute() and schedule metadata. Question 11. What is the default lifetime of services registered via the built‑in Dependency Injection container in Optimizely? A) Transient
B) Scoped per request C) Singleton D) Per session Answer: B Explanation: By default, services are scoped to the HTTP request, meaning a new instance is created for each request. Question 12. Which property of a ContentReference indicates that the reference points to the latest published version? A) WorkID = 0 B) IsDeleted = false C) Published = true D) VersionStatus = Published Answer: A Explanation: A WorkID of 0 signals the reference is to the published version; any non‑zero WorkID refers to a specific draft. Question 13. How can you restrict a block to be used only in a specific content area tag? A) By setting the AllowedTypes property in the ContentArea attribute B) By decorating the block class with [RestrictContentArea] C) By adding a [Display] attribute with a Tag parameter D) By using the ContentAreaSettings in the site’s configuration file Answer: A
B) ImageData C) FileData D) BinaryData Answer: A Explanation: MediaData is the base class for all media assets (images, videos, documents) stored in the Media Library. Question 17. Which of the following best describes the purpose of the ContentDelivery API? A) To provide a SOAP interface for legacy integrations B) To expose content as JSON for headless consumption C) To manage user authentication in the CMS D) To synchronize content between multiple sites Answer: B Explanation: The Content Delivery API serves JSON payloads of published content, enabling headless front‑ends such as SPA frameworks. Question 18. How can you add a custom JavaScript file to a page template in Optimizely? A) Place a
Explanation: RequiredClientResourceManager registers client resources so they are rendered once per page and respects dependencies. Question 19. Which attribute is used to control the order of properties in the editor UI? A) [Display(Order = n)] B) [EditorOrder(n)] C) [PropertyOrder(n)] D) [SortOrder(n)] Answer: A Explanation: The Order property of the [Display] attribute determines the sequence of fields in the editor. Question 20. What does the FilterForVisitor method ensure when querying content with LINQ? A) That only published, accessible items are returned B) That the query runs in a background thread C) That the results are cached for 5 minutes D) That the content is filtered by language only Answer: A Explanation: FilterForVisitor adds predicates for publishing status, access rights, and language fallback, guaranteeing visitor‑safe results. Question 21. Which security feature allows you to define permissions based on a user’s group membership rather than explicit ACL entries? A) Virtual Roles
Explanation: ILogger.LogError(message, exception) records the error message together with stack trace details. Question 24. What is the primary advantage of using a code‑first approach for defining content types? A) Content types are stored in XML files instead of the database B) Developers can leverage compile‑time checking and refactoring tools C) It eliminates the need for a database altogether D) It automatically generates UI themes for the site Answer: B Explanation: Code‑first models provide strong typing, IntelliSense, and compile‑time validation, improving developer productivity. Question 25. Which class provides the mechanism to resolve URLs for media assets? A) MediaUrlResolver B) AssetResolver C) ContentUrlResolver D) MediaResolver Answer: A Explanation: MediaUrlResolver generates the correct URL for images, videos, and other media items, handling CDN paths if configured. Question 26. How can you make a block property accept multiple content items? A) Use the [Multiple] attribute on the property
B) Declare the property as IList and set the UIHint to “ContentArea” C) Set the PropertyType to “Collection” in the admin UI D) Use the [AllowedTypes] attribute with a collection type Answer: B Explanation: A List or IEnumerable of ContentReference with UIHint “ContentArea” enables editors to drop multiple blocks or pages. Question 27. Which of the following is a correct way to create a custom selection list for a property? A) Implement ISelectionFactory and return IEnumerable B) Use the [SelectList] attribute with a static array C) Define a JSON file in the root folder and reference it in the property D) Create a custom editor descriptor that renders a dropdown Answer: A Explanation: ISelectionFactory provides dynamic dropdown options by returning a collection of ISelectItem objects. Question 28. What does the “IsDeleted” flag indicate on a ContentReference? A) The content is archived and cannot be restored B) The content has been soft‑deleted and will not appear in queries unless explicitly requested C) The content is permanently removed from the database D) The content is hidden only from the editor UI, not from visitors Answer: B
B) ContentRepository C) PageDataFactory D) IContentRepository (using Create and Save) Answer: D Explanation: IContentRepository.Create(parentReference, name, pageTypeID) creates a new page instance, which must then be saved. Question 32. How does the Content Delivery API handle language fallback when a requested language version does not exist? A) Returns a 404 error B) Returns the default language version defined in the site settings C) Returns an empty JSON object D) Automatically translates the content using Azure Translator Answer: B Explanation: The API falls back to the site’s default language if the requested culture version is missing. Question 33. Which of the following statements about virtual roles is true? A) They are stored in the database as separate role records B) They can be assigned to users via the UI like normal roles C) They are evaluated at runtime based on custom logic D) They replace the need for ACLs entirely Answer: C
Explanation: Virtual roles are computed on the fly, allowing dynamic permission scenarios without persisting role entries. Question 34. What is the effect of setting the “CacheControl” header to “no‑cache” in a controller action? A) The page will be stored in the CDN permanently B) Browsers and proxies must re‑validate the response on each request C) The response is cached for 24 hours by default D) The CMS will ignore the response and use the default cache policy Answer: B Explanation: “no‑cache” forces clients to validate the resource before using a cached copy, ensuring fresh content. Question 35. Which attribute tells Optimizely to render a view only on mobile devices? A) [DeviceFilter(Device = “Mobile”)] B) [TemplateDescriptor(AvailableForDevice = “Mobile”)] C) [RenderMobileOnly] D) [Display(Device = “Mobile”)] Answer: B Explanation: The TemplateDescriptor’s AvailableForDevice property restricts a template’s usage to the specified device type. Question 36. Which interface should a class implement to provide custom validation logic before publishing content? A) IValidate
Explanation: The GetPageByUrl endpoint returns the JSON representation of the page identified by the friendly URL. Question 39. How can you programmatically add a user to a role in Optimizely’s security model? A) RoleProvider.AddUserToRole(username, roleName) B) SecurityManager.AssignRole(user, role) C) IPrincipal.AddToRole(role) D) Membership.AddUserToRole(username, roleName) Answer: A Explanation: The built‑in RoleProvider exposes AddUserToRole for managing role membership. Question 40. Which attribute can be used to hide a property from the editor UI entirely? A) [ScaffoldColumn(false)] B) [EditorBrowsable(EditorBrowsableState.Never)] C) [Display(AutoGenerateField = false)] D) [Ignore] Answer: C Explanation: Setting AutoGenerateField = false in the [Display] attribute prevents the property from being rendered in the editor. Question 41. What is the purpose of the “ContentReference” struct’s “WorkID” property? A) To store the database primary key of the content item B) To identify the version (draft, published, temp) of the content
C) To indicate the language of the content item D) To reference the parent node in the content tree Answer: B Explanation: WorkID differentiates between the published version (0) and specific draft versions (non‑zero). Question 42. Which of the following best describes a “Partial View” in Optimizely MVC? A) A full page layout rendered by the CMS B) A reusable Razor file that can be rendered inside other views or content areas C) A controller action that returns JSON data D) An editor component for custom UI widgets Answer: B Explanation: Partial Views are Razor snippets used to render blocks, content areas, or other reusable UI fragments. Question 43. When using the ContentDelivery API, which HTTP status code indicates that the requested content exists but is not yet published? A) 200 OK B) 401 Unauthorized C) 403 Forbidden D) 404 Not Found Answer: D Explanation: Unpublished content is not publicly accessible, so the API returns 404 to indicate it cannot be found.
C) [BlockView("MyBlock")] D) [Renderer(typeof(MyBlockRenderer))] Answer: B Explanation: TemplateDescriptor’s TemplateTypeCategory = “Block” along with the view name resolves the correct Razor file for rendering. Question 47. In Optimizely, what is the purpose of the “Dynamic Data Store” (DDS)? A) To store temporary session data B) To provide a schema‑less storage for custom objects C) To manage media assets D) To cache rendered pages Answer: B Explanation: DDS is a NoSQL‑style storage mechanism that lets developers persist arbitrary POCO objects without a predefined database schema. Question 48. Which method of the IContentRepository can retrieve all descendants of a given page, regardless of depth? A) GetDescendants(ContentReference) B) GetChildren(ContentReference, true) C) GetAllChildren(ContentReference) D) GetTree(ContentReference) Answer: A Explanation: GetDescendants traverses the entire subtree under the specified root, returning every matching content item.
Question 49. How can you make a property editable only by users in a specific role? A) Use the [ReadOnly] attribute with a role parameter B) Implement IPropertyValidation and check the user’s role C) Apply the [EditorDescriptor] attribute with a Role restriction D) Use the [Display(Enabled = false, Role = “Admin”)] attribute Answer: B Explanation: Custom validation logic can inspect the current user’s roles and add a validation error if they lack permission. Question 50. Which of the following is a built‑in content type used for storing structured data like product catalogs? A) PageData B) BlockData C) DynamicDataStoreItem D) StructuredDataItem Answer: D Explanation: StructuredDataItem is used for items such as product catalogs, allowing custom fields and relationships. Question 51. What does the “Cache-Control: max‑age=3600” header instruct browsers to do? A) Never cache the response B) Cache the response for one hour before revalidating