HomeGuidesAPI Reference
Submit Documentation FeedbackJoin Developer CommunityOptimizely GitHubOptimizely NuGetLog In

Technology stack

This topic describes the technology on which the Optimizely Content Cloud is built.

Optimizely CMS is based on Microsoft technology and uses ASP.NET Core as a web development platform. Optimizely uses the SQL Server relational database. On top of that, Optimizely has a framework API used by products in the Optimizely platform.

The .NET framework

Optimizely is based on the .NET5/ASP.NET Core, providing the following advantages:

  • Easier for developers to quickly implement solutions using rich IDEs like Visual Studio or Visual Studio Code.
  • High performant platform
  • Open and agnostic tool that can be used with any JavaScript framework and API you want.
  • Cross-platform meaning you can develop and host application on many platforms such as Windows, Linux

In Optimizely, the .NET API is implemented in accordance with Microsoft guidelines. Since .NET is a language-independent architecture, developers have a wide choice of development methods for their solutions. Optimizely CMS is written in C#, but developers are free to use other programming languages such as VB.NET or F#. Optimizely CMS development in .NET is fully object-oriented. See the Microsoft .NET documentation.

From Optimizely CMS 12, the platform is built on ASP.NET Core.

Confusion around ASP.NET Core and ASP.NET

Optimizely CMS prior to version 12, is built on ASP.NET 4 (based on .NET Framework). Years ago, Microsoft announced that ASP.NET 4 would be replaced by ASP.NET 5, which would have a very different framework.

Later, Microsoft announced a another new platform, ASP.NET Core, and that they would continue with ASP.NET 4. ASP.NET 5 was said to be dead. ASP.NET 4 and ASP.NET Core was supposed to be equally good and would work together in parallel.

But it turned out that people wanted to have things from both ASP.NET4 and ASP.NET Core, so to solve that Microsoft introduced a third platform ASP.NET Standard, a smaller sub set of things from both ASP.NET 4 and ASP.NET Core.

ASP.NET 5 is really the next version of ASP.NET Core, and once again ASP.NET 4 is dead in the water. The last improvements to .Net Framework were released with .NET 4.8.

System overview

The base Optimizely CMS Framework provides built-in editorial and administrative functions like version management, content preview, approval workflows, multi-language support, and access rights. Data is stored in an SQL database. The customized solution is built on top of this platform. Optimizely can run as an on-premise 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, for example specific page or block types.
  • Systems integrations as required for the site, for example connection to an article database.
  • Access rights configured for users and user groups, to control access to the content structure and publishing. May involve integration with external membership providers.
  • Content created by editors, and stored in the database.
  • Assets such as images and documents used on the site.

Database

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

Web server

On-premises Optimizely sites in production typically use Microsoft Internet Information Services (IIS), which is 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 Kestrel or IIS Express which is included with Visual Studio, and then move to the full IIS when ready to go live. See Deployment.

Development environment

Optimizely solutions are conveniently developed using SQL Server, and Visual Studio or Visual Studio Code from Microsoft. Optimizely also provides a set of dotnet templates, to speed up website development.

CMS supports building templates both using server side renderered templates such as MVC and Razor Pages as well as using a client side framework.

Developing for the cloud

An Optimizely solution can be hosted in the cloud or on-premise. Cloud-based solutions are a cost-efficient way to manage websites, as these will dynamically scale out and in again depending on traffic volume, and the cost is based on usage and number of running instances. You can manage your cloud-based solutions yourself, or use Optimizely DXP.

Related topics