Disclaimer: This website requires Please enable JavaScript in your browser settings for the best experience.

HomeDev GuideRecipesAPI Reference
Dev GuideAPI ReferenceUser GuideLegal TermsGitHubNuGetDev CommunityOptimizely AcademySubmit a ticketLog In
Dev Guide

Technology stack

Describes the technology on which the Optimizely Content Management System (CMS) is built.

Optimizely Content Management System (CMS) is based on Microsoft technology and uses Internet Information Services (IIS) as a web server and .NET Framework and ASP.NET as a web development platform. CMS uses the SQL Server relational database. In addition, Optimizely has a framework API used by products in the CMS platform.

.NET framework

CMS is based on the .NET/ASP.NET framework, providing the following advantages:

  • It is easier for developers to implement solutions using Visual Studio extensions.
  • It has a flexible integration with other systems and platforms using Web services.
  • It improves performance using the integrated cache functions in .NET.

CMS implements .NET by Microsoft guidelines. Because .NET is a language-independent architecture, developers have a wide choice of development methods for their solutions. CMS is written in C#, but developers can use other programming languages like VB.NET or J#. CMS development in .NET is fully object-oriented. See the Microsoft .NET documentation.

System overview

The base CMS Framework provides built-in editorial and administrative functions like version management, content preview, approval workflows, multi-language support, and access rights. CMS stores data in an SQL database and builds a customized solution on this platform. CMS can run as an on-premises installation or in the cloud. See System requirements for Optimizely.

Customized solution

A customized solution typically contains these parts:

  • Graphical profile for the site as style sheets (CSS format). These contain predefined colors and fonts used on the site. Responsive design is often applied to support multi-channel display. 
  • Functions to support content creation, such as specific page or block types.
  • Systems integrations as required for the site, for example, connection to an article database.
  • Access rights are configured for users and user groups to control content structure and publishing access. It may involve integration with external membership providers.
  • Content is created by editors and stored in the database.
  • Assets such as images and documents used on the site.

Database

CMS uses Microsoft SQL Server to store content, creates other information in the system, and supports database editions, including SQL Azure. A database with the CMS schema is automatically created when new sites are created from the Visual Studio integration. Each version of the database schema targets a specific version of CMS.

Web server

On-premises CMS sites in production use Microsoft Internet Information Services (IIS), a flexible, general-purpose web server that runs on Windows operating systems to serve requested HTML pages or files. When developing locally, you can use IIS Express in Visual Studio and then move to the full IIS when ready to go live. See Deployment.

Development environment

You develop CMS solutions using Windows, SQL Server, and Visual Studio from Microsoft. CMS also provides a set of Visual Studio extension templates to speed up website development. 

You should use MVC rather than Web Forms when building CMS websites with ASP.NET. The main advantages are better generated HTML control, testability and code reuse, and complexity handling. See the ASP.NET MVC documentation.

Develop for the cloud

You can host a CMS solution in the cloud or on-premises. Cloud-based solutions are a cost-efficient way to manage websites because these will dynamically scale out depending on traffic volume. CMS bases costs on usage and the number of running instances. You can manage your cloud-based solutions or use the Optimizely Digital Experience Platform.