HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket

Technology stack

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

Optimizely Content Management System (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 ASP.NET Core, providing the following advantages:

  • Easier for developers to implement solutions using rich IDEs like Visual Studio or Visual Studio Code.
  • High performant platform
  • An open and agnostic tool that can be used with any JavaScript framework and API you want.
  • Cross-platform means developing and hosting applications on many platforms, such as Windows and Linux.

In Optimizely, the .NET API is implemented following Microsoft guidelines. Because .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 can 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 CMS 12, the platform is built on ASP.NET Core.

Confusion around ASP.NET Core and ASP.NET

Before version 12, CMS was 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 different framework.

Later, Microsoft announced another 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 were supposed to be equally good and would work together in parallel.

But it turned out that people wanted to have things from 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 ASP.NET 4 and ASP.NET Core.

ASP.NET 5 is the next version of ASP.NET Core, and 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 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-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 include predefined colors and fonts used on the site.
  • Responsive design is often applied to support multi-channel displays.
  • Functions to support content creation, for example, specific pages 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

Optimizely uses Microsoft SQL Server to store content and other information created in the system. Database editions, including SQL Azure, are supported. A database with the Optimizely schema is automatically created when creating 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), 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, included with Visual Studio, and then move to the full IIS when it is 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 using server-side-rendered templates such as MVC and Razor Pages and using a client-side framework.

Developing for the cloud

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