Virtual Happy Hour canceled for Friday May 31st.

Try our conversational search powered by Generative AI!

Johan Björnfot
Nov 22, 2017
  7446
(16 votes)

CMS 11 - A package breaking release

At Episerver we are using continuous releases and we follow semantic versioning. That means that we release features and bugfixes continuously. A major release indicates that there is breaking change compared to the previous version. The main breaking change we have introduced in CMS 11 is that we have separated our packages in "core" runtime packages and packages dependent on specific technologies. Some of the new packages are:

  • EPiServer.Framework.AspNetEPiServer.CMS.AspNet - Contains the ASP.NET specific implementations of CMS like WebForms and MVC 5 support.
  • EPiServer.ServiceLocation.StructureMap - A StructureMap based IOC implementation. Having this as a separate package opens up for newer version of unsigned StructureMap (planned to be release in a near future) but also for other implementations of IOC containers.
  • EPiServer.XForms - Optional package that can be used if xforms is used. 
  • EPiServer.DynamicContent - Optional package that can be used if dynamic content is used
  • EPiServer.Search.Cms - Optional package if EPiServer Search is used.

The main purpose is to achieve a better separation of concern. One goal was to have a core runtime that is not dependent to be executed in a specific environment like ASP.NET but instead can be setup in for example an integration test.

.NET Standard

The .NET Standard is a formal specification of .NET APIs that are intended to be available on all .NET implementations. The specification is maintained by .NET implementors, specifically Microsoft (includes .NET Framework, .NET Core and Mono) and Unity. The idea is that a library that is compliant with NET standard can be consumed and executed on all environments where .NET is supported (a.k.a. cross-platform library).

Previous to CMS 11 all Episerver CMS packages (e.g. EPiServer.Framework, EPiServer.CMS.Core) where dependent on assemblies only available on .NET Framework and could hence only execute on environments where .NET Framework is installed.

In CMS 11 our "core" packages EPiServer.Framework and EPiServer.CMS.Core are now .NET Standard 2.0 compliant. The packages EPiServer.Framework.AspNet and EPiServer.CMS.AspNet that contain the ASP.NET specific implementation (e.g. with dependecies to System.Web, System.Web.Mvc and System.Configuration) still requires .NET Framework.

An overview of the packages are shown below:

Image CMS11.png

The existing applications today that are ASP.NET application will require the EPiServer.CMS.AspNet package (supporting both WebForms and MVC 5) and will execute on ASP.NET on .NET Framework. However the separation of packages also opens up for example for integration tests (that do not require ASP.NET) and also since core packages are now .NET Standard compliant it is also possible to build other types of applications (e.g. Console application or Web API) based on .Net Core. 

We aim to release a package that will assist with setting up CMS runtime in an ASP.NET Core application within a near future. This package will for example contain an implementation of our IOC abstraction based on the default dependency injection implementation in .Net Core. 

Nov 22, 2017

Comments

Please login to comment.
Latest blogs
Blazor in Optimizely CMS 12 with .NET 8

How to enable support for Blazor components in Optimizely CMS 12 after upgrading to .NET 8.

Ted | May 30, 2024 | Syndicated blog

Build a headless blog with Astro and Optimizely SaaS CMS

I’m a big fan of using the right tool for the right job. I’m also a big fan of Astro , for the right use case. Let's explore Astro to see what it's...

Jacob Pretorius | May 28, 2024

Microsoft announces Natural language to SQL

Finally, Microsoft launches "Natural language to SQL," after it has been available for several months in Optimizely CMS!

Tomas Hensrud Gulla | May 23, 2024 | Syndicated blog

Five easy ways to start personalizing your content right now

If you clicked on this article, you already know that getting the right message to the right person at the right time helps drive conversions and...

Kara Andersen | May 23, 2024

ExtendedCms.TinyMceEnhancements – serwer side webp support

Today I will introduce another small feature of TinyMceEnhancements plugin. The functionality is used to automatically detect whether a browser...

Grzegorz Wiecheć | May 22, 2024 | Syndicated blog

Azure AI Language– Detect Healthcare Content in Optimizely CMS

In this blog post, I showcase how the Azure AI Language service's Text Analytics for health feature can be used to detect healthcare content within...

Anil Patel | May 22, 2024 | Syndicated blog