CLR (Common language runtime)
Entorno de ejecucion para .NET. En tiempo de ejecucion el compilador de CLR convierte el codigo CIL en codigo nativo para el SO. Facilita la integración entre lenguajes.
CLR es la MV en la que se ejecutan nuestras apps. CLR se hizo para tener una capa de abstraccion entre las propias apps y el SO donde se ejecutaban.
El CLI se puede ejecutar en otros SO. El CLR se ejecuta solo en Windows.
Cada lenguaje se compila a Common Language Infrastructure (CLI) y este genera el codigo maquina.
Las versiones de CLR no están atadas a una versión de .NET Framework.
.NET Framework vs .NET Core
Las versiones de .NET Framework solo se pueden ejecutar en Windows. Las de .NET Core se pueden en MAC o Linux. .NET Core es una reinterpretación completa ya que .NET Framework tenia que portar la libreria entera aunque no usaras el 90%. Eso se ha cambiado con .NET Core.
.NET Framework
- Ligado a Windows
- Uso de CLR
- Libreria completa pero pesada. Cuando compilas te tienes que llevar todas las dependencias.
- Software propietario
.NET Core
- Reinterpretación completa de .NET Framework.
- Multiplataforma.
- Codigo abierto.
- Se puede implementar como parte de la propia app. No hace falta tener el SDK donde se va a ejecutar la app.
- Mejor rendimiento.
- No se han migrado todas las librerias de .NET Framework.
.NET Standard
.NET Standard es una specificacion de las APIs de .NET disponibles en multiples implementaciones. Esto sirve por ejemplo si quieres compartir codigo entre .NET Framework y .NET Core.
Para esto la última version es .NET Standard 2.0 (no se van a sacar nuevas versiones), pero .NET 5, .NET 6 y todas sus futuras versiones soportarán .NET Standard 2.1 y previas.
Novedades .NET 5
Se pasa de .Net Core 3.1 a .Net 5
Se ha quitado Core del nombre y se seguirá con la nomenclatura .NET
Versiones .NET y C#
Reference(s)
https://docs.microsoft.com/en-us/dotnet/standard/net-standard?tabs=net-standard-1-0