New to .NET Core?
DynamicWeb is build on .NET and if you are a seasoned DynamicWeb developer and have been developing solutions using DynamicWeb 9 you know a lot about how things work in DynamicWeb.
All DynamicWeb versions before DynamicWeb 10 is build using Microsoft .NET Framework 4.
DynamicWeb 10 is build using .NET Core (Aka .NET 8) which is a major upgrade of the .NET runtime and Framework which has an impact on how DynamicWeb works.
This article will list some of the differences between DynamicWeb 9 and 10 in the context of the .NET differences and will also list differences between .NET Framework (old) and .NET Core (new) and provide links for you who have not yet had experience with .NET Core.
Differences in DynamicWeb due to the shift to .NET Core
Most of DynamicWeb's inner workings are the same in DynamicWeb 9 and DynamicWeb 10. I.e. the way you do extensibility and code against DynamicWeb APIs have not changed significantly. Read the artice Upgrading from DynamicWeb 9 to get detailed insights of the differences.
The change to .NET Core introduces some major differences between DynamicWeb 9 and DynamicWeb 10:
- DynamicWeb 10 have a complete new UI. DynamicWeb 9 has a UI build using ASP.NET webforms which does not exist on .NET Core why DynamicWeb 10 have a new UI built on top of ASP.NET.
- The executing pipeline of the frontend of DynamicWeb 10 is new due to the fact that System.Web does not exist on .NET Core. Global.asax, Default.aspx, web.config and similar .NET 4 specific concepts does not exist in DynamicWeb 10 where it is replaced by ASP.NET Core Middleware.
- Custom projects no longer takes over Default.aspx, Global.asax, /bin and by creating .aspx files. Customizations in DynamicWeb 10 are either nuget packages or dll's installed in /Files/Addins of the filesystem. The internal workings of a custom dll is the same for i.e. a PriceProvider is the same, but the way it is installed and executed has changed. Extending the UI is now also done using C# classes.
- DynamicWeb 10 does not distribute with all add-ins for i.e. payments, delivery, taxes, integration etc. These are installed using the App store in DynamicWeb using nuget packages.
- DynamicWeb 10 introduces a Management API that can be used to orchestrate DynamicWeb from external platforms.
- .NET Core is platform independent meaning .NET and DynamicWeb 10 can run on Windows, Mac and Linux based platforms. DynamicWeb 9 only run on Windows.
.NET Core
Below you can find some links to selected .NET Core ressources that DynamicWeb 10 makes use of
Important .NET Core ressources
All ressources related to .NET Core: https://dotnet.microsoft.com/en-us/
.NET Framework vs .NET Core - Migration, porting and differences
Understanding the .NET Core host and the ASP.NET web Host that executes DynamicWeb 10 - i.e. the frontend and DynamicWeb Middleware.
Introduction to ASP.NET Core fundamentals and how to use environments in .net and using environments in DynamicWeb.
ASP.NET Core – ui and execution environment (DW is MVC)
New tools
CLI means 'Command Line Interface' and can be used to simplify and automate your development flows.
.NET CLI is used in .NET Core development and can be used to run DynamicWeb
With DynamicWeb 10 we have introduced a Dynamic
DynamicWeb 10 supports coding in Visual Studio Code and also read Git in VS Code
Running a DynamicWeb locally or in a hosting has changed – IIS vs Kestrel – IIS in-process and out-of-process and running DynamicWeb in IIS
Learning .NET Core
To better understand the inner workings of .NET Core, try these tutorials Minimal APIs in ASP.NET core and MVC app in ASP.NET core
Install and run DynamicWeb 10
The .NET CLI can be used to install DynamicWeb 10 and create new custom projects. Learn 'dotnet new' and how to install Dynamic
C# versions and improvements
.NET has gotten a lot of new features and changes. Along with .NET updates the C# language have gotten a number of new features as well that can be useful to know. Make sure to configure the right language version and learn new C# features from the C# Version history