




























































































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
A practice exam for the optimizely content cloud developer certification. It includes multiple-choice questions covering various aspects of optimizely development, such as content types, attributes, global blocks, image types, seo fields, navigation properties, content references, culture-specific properties, ui hints, content validation, content repository methods, permanent links, typed content retrieval, multilingual sites, controllers, view models, content areas, block rendering, partial routers, and custom mvc routes. Each question is followed by the correct answer and a brief explanation. This practice exam is designed to help developers prepare for the certification exam and test their knowledge of optimizely development concepts and best practices. It covers a wide range of topics relevant to optimizely development, making it a valuable resource for developers seeking to enhance their skills and expertise in this area.
Typology: Exams
1 / 115
This page cannot be seen from the preview
Don't miss anything!





























































































Question 1. Which attribute is required to designate a C# class as an Optimizely page type? A) [Page] B) [ContentType] C) [PageType] D) [PageData] Answer: B Explanation: The [ContentType] attribute marks a class as a content type, including page types, enabling Optimizely to recognize it. Question 2. In the [ContentType] attribute, which property defines the unique identifier for the content type? A) Name B) GUID C) GroupName D) Order Answer: B Explanation: The GUID property supplies a globally unique identifier that Optimizely uses internally for the content type. Question 3. Which of the following best describes a “global block” in Optimizely?
A) A block stored in a specific page’s folder only B) A block that can be reused across any page or site without duplication C) A block that is automatically published on every request D) A block that only appears on the homepage Answer: B Explanation: Global blocks are stored in the Global Blocks folder and can be referenced from any page, providing reuse without duplication. Question 4. Which base class should a custom image type inherit from to gain standard image functionality? A) MediaData B) ImageData C) ContentData D) BlockData Answer: B Explanation: ImageData extends MediaData and adds image‑specific properties (e.g., width, height) needed for custom image types. Question 5. To share common SEO fields across multiple page types, developers should use: A) Multiple inheritance B) An abstract base class containing the shared properties
Answer: B Explanation: ContentReference stores the ID of another Optimizely content item, enabling linking between pages, blocks, or media. Question 8. The [CultureSpecific] attribute on a property indicates that: A) The property value is stored in a separate database table B) The property value varies per language version of the content item C) The property can only be edited by administrators D) The property is read‑only in the UI Answer: B Explanation: [CultureSpecific] tells Optimizely that the property should be localized, allowing different values per language branch. Question 9. How does the [UIHint] attribute affect a property in the editor? A) It forces the property to be hidden in the UI B) It changes the property’s data type at runtime C) It selects a specific editor control (e.g., “Image”) for the property D) It validates the property automatically Answer: C Explanation: [UIHint] points the editor to a named UI control, allowing developers to specify custom or predefined editors for a property.
Question 10. Which interface should a content model implement to perform server‑side validation of its properties? A) IValidate B) IContentValidate C) IContentData D) IEditableContent Answer: A Explanation: Implementing IValidate lets the model run custom validation logic during content save operations. Question 11. Which attribute provides a required‑field validation on a string property? A) [StringLength] B) [Required] C) [NotNull] D) [Validate] Answer: B Explanation: [Required] is a DataAnnotations attribute that enforces a non‑empty value for the decorated property.
B) Storing a stable numeric identifier that does not change across environments C) Encrypting media assets D) Mapping redirects Answer: B Explanation: PermanentLink (a GUID) remains constant across environments, making it reliable for referencing content in external systems. Question 15. Which of the following statements about typed content retrieval is correct? A) It always returns a dynamic object B) It casts the result to the specified generic type, throwing an exception if the type does not match C) It automatically creates a view model from the content type D) It bypasses the caching layer Answer: B Explanation: Get<T> attempts to cast the stored content to T; if the underlying type differs, an exception is thrown. Question 16. In a multilingual site, if a piece of content does not have a version in the requested language, Optimizely will: A) Return a 404 error B) Return the default language version according to the fallback settings
C) Create a new draft automatically D) Throw an exception Answer: B Explanation: The fallback mechanism supplies the default language version when a specific language version is missing, based on configuration. Question 17. Which controller base class is recommended for page types that need automatic routing and model binding? A) Controller B) PageControllerPageController<T> is a generic controller that provides built‑in routing, model binding, and helper methods for Optimizely pages. Question 18. When creating a view model for a page, the primary reason for separating it from the content model is: A) To reduce compile‑time errors B) To avoid exposing internal Optimizely APIs to the view C) To enable inheritance of page types D) To allow the view model to be stored in the database
Question 21. Which of the following is a valid way to render a block using a view component? A) @Component.InvokeAsync("Block", new { block = Model.Block }) B) @Html.RenderBlock(Model.Block) C) @Html.Partial("Block", Model.Block) D) @RenderSection("Block") Answer: A Explanation: Component.InvokeAsync calls a view component; passing the block model enables custom rendering logic. Question 22. The IPartialRouter interface is used to: A) Replace the default MVC routing completely B) Handle additional URL segments after a page’s base URL (e.g., “/page/form”) C) Register global redirects D) Map content references to physical file paths Answer: B Explanation: IPartialRouter lets developers intercept and process extra URL parts that belong to a specific page, such as form actions or sub‑pages. Question 23. When defining a custom MVC route that does not correspond to a content item, which method is typically used?
A) routes.MapContentRoute() B) routes.MapRoute() in Startup.Configure C) routes.AddContentRoute() D) routes.EnableOptimizelyRouting() Answer: B Explanation: routes.MapRoute() registers standard ASP.NET MVC routes, allowing URLs that are not linked to Optimizely content. Question 24. For a multilingual site, the URL pattern that includes the language segment looks like: A) /en-us/home B) /home/en-us C) /home?lang=en-us D) /en/home?culture=en-us Answer: A Explanation: Optimizely’s default multilingual URL places the language code as the first segment (e.g., /en-us/). Question 25. Which attribute can be applied to a page type to control its order in the admin “Create New” dialog? A) [DisplayOrder] B) [Order]
Answer: D Explanation: JsonObject is not a built‑in property type; developers must create a custom editor if they need JSON handling. Question 28. When a block is placed inside a ContentArea, the system decides which view to use based on: A) The block’s GUID B) The block’s DisplayTemplate attribute and the current display option C) The page’s URL D) The block’s folder location Answer: B Explanation: The DisplayTemplate attribute (or naming conventions) together with the chosen display option determines the view file. Question 29. Which method on IContentRepository retrieves all ancestors of a content item, ordered from root to immediate parent? A) GetAncestorChain b) GetAncestors c) GetParentHierarchy d) GetLineage Answer: B
Explanation: GetAncestors returns the ordered list of ancestor items, starting at the root. Question 30. In Optimizely, the term “draft” refers to: A) Content that has been published but not indexed B) A version of content that is not yet publicly visible C) A cached copy of the page D) A temporary file stored in the media library Answer: B Explanation: Draft content is a work‑in‑progress version that only editors can see; it becomes visible after publishing. Question 31. Which attribute can be used to hide a property from the editor UI entirely? A) [ScaffoldColumn(false)] B) [EditorBrowsable(EditorBrowsableState.Never)] C) [Ignore] D) [Hidden] Answer: A Explanation: [ScaffoldColumn(false)] tells the scaffolding engine not to generate a UI field for the property.
B) It is only used for storing blocks C) It provides a hierarchical organization for content items D) It automatically publishes all child items when the folder is published Answer: C Explanation: ContentFolder creates a tree‑like structure that helps editors organize pages, blocks, and media. Question 35. The GetChildren<T> method is useful when: A) You need to retrieve children of mixed content types B) You only want children that can be cast to type T C) You want to retrieve children from a remote API D) You need to bypass security checks Answer: B Explanation: GetChildren<T> filters the children and returns only those that match the specified type T. Question 36. Which attribute indicates that a property should be displayed under a specific tab in the editor? A) [Tab("Settings")] B) [Display(GroupName = "Settings")] C) [EditorTab("Settings")]
D) [Section("Settings")] Answer: B Explanation: The GroupName parameter of [Display] groups properties under a named tab. Question 37. To create a custom property editor that renders a dropdown of enum values, you would: A) Implement IContentRepository B) Create a class inheriting from PropertyEditor and register it in module.config C) Use [UIHint("Enum")] only D) Add a JavaScript file to the page Answer: B Explanation: Custom editors extend PropertyEditor (or IPropertyEditor) and are registered via configuration. Question 38. Which of the following best describes the purpose of the LinkItemCollection property type? A) Stores a collection of internal page links with optional text B) Holds a list of external URLs only C) Contains a JSON array of links D) Represents a single hyperlink Answer: A
Question 41. Which attribute can be used to specify that a page type belongs to a particular group in the admin UI? A) [Group("Marketing")] B) [ContentType(GroupName = "Marketing")] C) [DisplayGroup("Marketing")] D) [Category("Marketing")] Answer: B Explanation: The GroupName property of [ContentType] assigns the type to a named group, organizing it in the UI. Question 42. A developer wants a property to be edited using a numeric spinner control. Which UIHint should be applied? A) [UIHint("Numeric")] B) [UIHint("Integer")] C) [UIHint("Number")] D) [UIHint("Spinner")] Answer: C Explanation: The built‑in "Number" UI hint renders a numeric input with spinner arrows.
Question 43. Which method of IContentRepository can be used to retrieve a content item regardless of its publish status? A) GetPublished B) GetDraft c) Get d) GetAllVersions Answer: C Explanation: Get returns the content item in its current state (draft or published) based on the VersionStatus parameter; by default it can fetch drafts. Question 44. To ensure that a block’s view is cached for 10 minutes, a developer should add which attribute to the view component class? A) [OutputCache(Duration = 600)] B) [Cache(600)] C) [ResponseCache(Duration = 600)] D) [CacheDuration(600)] Answer: A Explanation: [OutputCache] (or [ResponseCache] in Core) controls server‑side caching; Duration = 600 equals 10 minutes. Question 45. Which of the following is a valid way to retrieve the current language branch inside a controller action?