We now will use two frameworks, and have two options to develop web applications:
- The Framework 4.6, which offers us maximum compatibility with legacy apps and the previous .NET frameworks. Framework 4.6 only works on Windows. One of the most interesting new features of ASP.NET 4.6 is HTTP2, which gives us:
- Asynchronous ModelBinding
- Ability to always encrypt exchanges on the web
- Pre-population of the browser's cache
- Interruption of a TCP connection without closing
- The .NET Core 2.0, which is the modular and lightweight approach above the Core CLR to develop cross-platform applications.
We can use them independently, or both at the same time, in order to create a two-frameworks-compatible application, and the old DLLs of the legacy applications will have to migrate on .NET Core version 2.0.
Two versions of the .NET framework can also live side by side in the same application; for example, .NET Framework 4.6 and .NET Core 2.0.
All the libraries outside the framework are optional, available in the form of packages.
Before .NET Core, a .NET application could only be executed under Windows, because only Windows could instantiate the CLR. If IIS was in charge of the instantiation, WebEngine.dll was responsible for instantiating CLR.
Now, we have a new SDK with a lot of tools to allow us to execute ASP.NET applications outside IIS and independently from any web server.