Jump to Content
Dev Guide
API Reference
User Guide
Home
Dev Guide
API Reference
Campaign
Commerce Connect
Configured Commerce
Content Management System
Content Marketing Platform
Digital Experience Platform
Experimentation Data
Feature Experimentation
Full Stack Experimentation
Integrations
Optimizely Connect Platform
Optimizely Data Platform
Performance Edge
Recommendations
Web Experimentation
v1.0.0-CMS-SaaS
v1.2.0-forms
v1.4.0-community-api
v1.5.0-content-delivery-api
v1.6.0-content-management-api
v1.7.0-content-definitions-api
v11.0.0-cms
v12.0.0-cms
Dev Guide
API Reference
User Guide
Legal Terms
GitHub
NuGet
Dev Community
Optimizely Academy
Submit a ticket
Log In
Dev Guide
Legal Terms
GitHub
NuGet
Dev Community
Optimizely Academy
Submit a ticket
Log In
Moon (Dark Mode)
Sun (Light Mode)
Content Management System
v11.0.0-cms
Dev Guide
Security checklist
Search
Get started with CMS
Get started with CMS 11
Set up a development environment
Install CMS 11 and Commerce 13
Install updates to CMS 11 and Commerce 13
Install a sample site
Learn basic editing
Create a starter project
CMS documentation videos
System requirements for CMS
Class libraries and APIs
CMS learning path
Learning path
Developer prerequisites
What is a CMS?
Technology stack
Alloy demonstration templates
Initial configuration
Upgrade CMS
CMS user interface
Content model and views
Create and edit content
Media support
Page tree and routing
Listings and navigation
Security checklist
Deployment
Upgrade CMS
Upgrade to CMS 12
Breaking changes in CMS 12
Why upgrade to CMS 12?
Upgrade Assistant
Upgrade to CMS 11
Breaking changes in CMS 11
New NuGet packages
Upgrade Optimizely Mail 10 to CMS 11
Upgrade Episerver Relate to CMS 11
Upgrade to CMS 10
Breaking changes in CMS 10
Upgrade to CMS 9
Breaking changes in CMS 9
Episerver Mail 8
Upgrade to CMS 8
Breaking changes in CMS 8
Changes to content loading in CMS 8
Changes to the Category API in CMS 8
Add-on support for CMS 8
Upgrade EPiServer CMO with CMS 8
Upgrade from MVC 4 to 5
Upgrade to CMS 7.5
CMS and OWIN
Upgrade to .NET Framework 4.5
Migrate VPP-based files to the media system
Upgrade to CMS 7
Breaking changes in CMS 7
Upgrade from legacy versions
Integrate Optimizely Products
Install the Optimizely DAM Asset Picker
Architecture
Architecture
BLOB storage and providers
BLOB storage and providers
Add Azure Blob Provider to your .NET Core application
Cache
Cache options
Cache objects
Cache read-only objects
Configure file caching
Client resources
Client resources
Configure
Configure CMS
Configure DataAccess and DynamicDataStore
Change edit and admin view URLs
episerver
episerver.basicAuthentication
episerver.datastore
episerver.framework
episerver.packaging
episerver.search
episerver.shell
Image Service
module.config
.NET SignalR
staticFile
Link validation
Read application settings programmatically
Content
Content
Page types and templates
Block types and templates
IContentLoader and IContentRepository
Persist IContent instances
Synchronization
Validate object instances
ContentType attribute
Group content types and properties
Content Metadata properties
EditHint in MVC
Content versions
Create a page programmatically
Select content
Convert page types for pages
Refactor content type classes
Multilingual content
Properties
Built-in property types
Restrict content types in properties
Single or multiple list options
Built-in auto-suggestion editor
Property attributes
Use a block as a property
Property controls
Custom properties
Property Value List
Generic PropertyList
Links
Link to other content
Assets and media
Media types and templates
Content assets and folders
Custom editing preview for media
Work with media
Integrate the CMP DAM Asset Picker into CMS
Content approvals
Work with content approvals
Configure email notifications for content approvals
Content providers
Configure content providers
Inline edit blocks
Resolve the currently loaded content context
Deploy
Plan deployments
Deploy CMS
Deployment scenarios
Deploy to Azure Web Apps
Deploy to Windows servers
Install database schema
Automatic schema updates
Set up multiple sites
Manage cloud licenses
Configure CDN
Configure email server
Mirroring
Install and configure mirroring
Monitor mirror services
Store UTC date and time in the database
Database mode
Dynamic content
Dynamic content
Configure dynamic content
Migrate dynamic content to blocks
Render dynamic content with interfaces
Create UI settings for dynamic content
Create a plug-in
Create a "hello world" dynamic content
Dynamic Data Store
Dynamic Data Store
Configure Dynamic Data Store (11.3-11.x)
Configure Dynamic Data Store (10-11.2)
Index properties
Map stores
Support LINQ
Identity, date, and time
Editing UI
Editing user interface
On-page editing with client-side rendering
Register a custom editor
Create an editor widget
Events
Manage events and event providers
Use the Event API
Configure events over WCF
Implement a custom event provider
Forms
Forms
XForms
Globalization
Globalization
Localize the UI
Configure a custom localization provider
Localization service
Add languages
Globalization scenarios
Determine languages
Initialize CMS
Initialize CMS
Create an initialization module
Dependency injection
Logging
Logging
Log into .Net Diagnostics Trace
Configure the change log
Log with log4net
Personalize Content
Personalize content
Create custom visitor group criteria
Example: Create visitor group criteria
Localize the visitor group criterion
Editor templates
Configure personalized content
Disable personalized content
Session handling in visitor group criteria
Projects
Projects
Program projects
Render content
Render content
View models and partial views
TemplateDescriptor and tags
Select templates
Display channels
Change template programmatically
Display options
Preview rendering for blocks
Add editing attributes
Navigate menus and listing
Create a main menu with EPiServer:MenuList
Create a submenu with EPiServer:PageTree
Use data source controls
Reports
Reports
Routing
Routing
Partial routing
Example of News partial routing
BLOB routing
Internationalized Resource Identifiers (IRIs)
Scheduled jobs
Scheduled jobs
Search
Search
Search for pages based on page type
Add a search provider
Search and filter
Full-text search
About full-text search client
Configure full-text search client
About full-text search service
Configure full-text search service
Install and deploy search service
Integrate search
Security
Security
Integrate Entra ID using OpenID Connect
EPiServer.CMS.UI.AspNetIdentity OWIN authentication
Permissions to functions
Decoupled setup
Virtual roles
Configure OWIN authentication
Configure mixed-mode OWIN authentication
Configure forms authentication
Configure federated security
Cookie usage
Protect users from session hijacking
Secure edit and admin user interfaces
ASP.NET security setting recommendations
Configure Active Directory membership provider
Authenticate and authorize
User interface
User interface
Add a module initializer
Configure Shell modules
Configure CMS user interface
Text box width example
Context-sensitive components
Service locator
Describe content in the UI
Dialog boxes
Shell profile
Store architecture
Message service pool
Publish and subscribe messaging system
Debug CMS UI
Dojo JavaScript framework
Create a React component
Plug in a gadget
Create an MVC component for the UI
Extend the CMS navigation
Add and configure menu items
Highlight parent menu items
Use menu providers
Upgrade navigation
Command pattern
Command builders
Global toolbar commands plug-in
Plug-in commands
Edit objects
UI wrapper types
Configure the default editor wrapper
Plug-in areas
Views
Create a component for the assets pane
Configure the dashboard
Create a component for a Web Form
Create a container
Create a view
Modify a view through configuration
Hide or control access to customized components
Plug-in components into a view
Replace a component globally
Drag-and-drop
WebSocket support
Extend the Tasks pane with custom queries
User notifications
User notifications
User notification examples
Subscription keys
Virtual path providers
Virtual path providers
Apps
Apps (add-ons) platform compatibility
Install apps
Integrate Optimizely apps
Develop apps
About the app verification process
Migrate apps to ASP.NET Core
Package and deploy CMS apps
Optimizely A/B testing (legacy)
Optimizely App Marketplace
AvaTax tax compliance
MA Connectors
Connect for Acoustic (Silverpop)
Connect for Campaign
Connect for Delivra
Connect for Eloqua
Connect for HubSpot
Connect for Marketo
Connect for Microsoft Dynamics CRM
Connect for Pardot
Connect for Salesforce
Connect for Salesforce Marketing Cloud (ExactTarget)
Custom connector
Optimizely Connect for SharePoint
Optimizely DataCash payment provider
Optimizely DIBS payment provider
DIBS installation and configuration
Optimizely Forms
Google Analytics for Optimizely
Optimizely Labs
Optimizely Languages
Optimizely Live Monitor
Optimizely PayPal payment provider
Optimizely PDF Preview
PowerSlice for Optimizely Content Management System
Optimizely Self-Optimizing Block
Optimizely Social Reach
Optimizely Spellchecker for TinyMCE
Optimizely Strategy Container Block
Optimizely Visitor Group Criteria Pack
TinyMCE editor
TinyMCE configuration API
TinyMCE custom style formats
TinyMCE default settings
TinyMCE plug-ins
TinyMCE property configuration
TinyMCE example: Allow added custom relative paths in TinyMCE
TinyMCE editor (Legacy)
Property settings for TinyMCE (Legacy)
Suggest
Describes common security issues for websites.