Configured Commerce - .NET Has Arrived!
Configured Commerce - .NET Has Arrived!
Winter is my least favorite time of the year. All my cohorts in Sweden know what we deal with here in Minnesota - frigid temperature, heaps of snow, and old cars that just won't start up. It has already been below freezing several times this year, and we're only looking at colder and colder temperatures as the sun hangs lower in the sky.
At least I have the warm glow of my computer screens to keep me warm, especially as they come with a major change to how our platform is built: .NET (formerly .NET Core). Note that I will be referring to the new .NET as “.NET” for the rest of this article, and the legacy version as “.NET Framework.”
Today, Configured Commerce is built on top of .NET Framework 4.8, the legacy version of this architecture that runs only on Windows. .NET is a platform-agnostic infrastructure that inherits quite a bit from .NET Framework's functionality while providing significant boosts in performance and flexibility.
Our November release is slated to be the first that supports .NET builds (in Beta) and allows for partners and customers to build their extensions project with the new, fun toys. So, what does this mean for Configured Commerce customers?
This release is not intended for Production consumption
This is a beta release of .NET for Configured Commerce. It includes full support to build projects with .NET extensions and Linux containers in the hosted environment, but we are expecting many bugs to be found. Optimizely will provide dockerfiles for local builds as a part of the release, so partners will be able to immediately jump in and start building projects against this code.
The .NET release is as backwards compatible as possible
While I expect that partners will need to make some changes to their extensions code related to deprecated or changed functionality in .NET versus .NET Framework, the Optimizely engineering team has already tested against Optimizely Expert Services-implemented customers as a part of this building process and have had positive results there regarding the amount of necessary rework.
.NET 8 is Coming!
I chose an auspicious day to announce this ahead of this week's release, as .NET 8 has just moved to full release as I am writing this (November 14, 2023). We intend to move this implementation to .NET 8 as quickly as possible, as it is the LTS (Long Term Support) version for .NET, with support through 2026. Changes for .NET 7 vs .NET 8 are expected to be minimal and production implementations for customers will likely be in .NET 8 vs .NET 7.
When will .NET be available for production consumption?
Partners should be able to start building against .NET immediately upon the November release. Optimizely will need to take the bugs and other concerns raised by our partner network for this release into consideration before we talk about a truly production-ready General Availability. Best-case, this is the December (2312) release, as our team is already working through most of the internally-discovered bugs.
What Does .NET get me?
This is the important question. .NET provides some performance improvements in the application itself, with faster API calls across the board, but it also provides the biggest potential improvements with the hosting environment. .NET is platform agnostic, so unlike .NET Framework, it can run on Linux Kubernetes containers. Linux containers are lighter weight than Windows containers, can be spun up more quickly, and in the future, will be included in autoscaling for the Configured Commerce application.
Yes, while it will not yet be available in the beta release, we intend to implement autoscaling in environments for horizontal scaling (more replicas) against increasing traffic load. I'll be ready to talk more about this when I have more data available and can present a comprehensive plan regarding how autoscaling will work.
Will I be forced to upgrade to .NET from .NET Framework?
We are not force-migrating customers. However, once our partner network has begun to get their hands on the code and provide us with feedback, we will determine a future version in which extensions can only be built against .NET, not .NET Framework. This means that .NET Framework support will be limited to versions of Configured Commerce up to that point, and no versions released after that. This is likely to be in the second half of 2024, based on the information known today, but this is subject to change.
So how do I get started?
If you're already interested in .NET - talk to your implementation partner about reviewing your custom extensions as they begin their testing .NET. We will make an announcement (and it will be in release notes) when we have .NET in GA.
It has been a long journey to get .NET as the underlying architecture for this application. I expect that the changes to reliability and speed will delight you as much as they do me.