1. Libros y videos
  2. ASP.NET Core MVC
  3. ¿Por qué .NET Core?
Extrait - ASP.NET Core MVC Domine este potente framework web abierto y multiplataforma
Extractos del libro
ASP.NET Core MVC Domine este potente framework web abierto y multiplataforma Volver a la página de compra del libro

¿Por qué .NET Core?

Los distintos componentes de .NET Core

Para comprender plenamente por qué se creó .NET Core, es importante analizar y entender cada componente del framework. Cada pieza ocupa un lugar muy específico en la arquitectura del framework: runtime, librería de clases, herramientas, etc. Comprender las dependencias entre ellas es la clave para entender por qué este framework es tan flexible y potente.

La modularidad desempeña un papel clave con .NET Core, porque tiene que ser un framework que funcione en un número muy elevado de plataformas: móvil, escritorio y tableta con UWP, web y cloud con ASP.NET, IoT con Windows 10 IoT Core. En función del runtime, el framework se debe adaptar para utilizar únicamente las librerías que le interesan, razón por la que la gran mayoría de estas se despliegan mediante paquetes NuGet, optimizando la gestión de versiones, la centralización de paquetes y la distribución del código.

Este capítulo es una oportunidad para echar un vistazo a las diferentes piezas de software de .NET Core: el runtime, las librerías, las herramientas, etc. y ver cómo estos componentes hacen de .NET Core un framework tan potente y multiplataforma.

1. Las librerías de CoreFX

El nombre CoreFX se refiere principalmente al conjunto de clases básicas disponibles bajo el espacio de nombres System.* y ciertas extensiones Microsoft.*. Las conocemos mejor como Base Class Library, por lo que podemos decir que CoreFX es la BCL de .NET Core. Todas estas clases sirven como una base sólida de bajo nivel para que otros componentes, como ASP.NET, puedan construir el framework sobre ellas. La característica importante de CoreFX es que la mayoría de las API disponibles en .NET Core también están disponibles en el framework .NET clásico. Es fácil conciliar ambas cosas diciendo que CoreFX es un fork de la BCL de framework .NET.

La función...

Aspectos destacados del framework

Cada tecnología tiene derecho a sus propias comparaciones y puntos de referencia. Lo mismo ocurre con .NET Core, que a menudo se compara con otras tecnologías como NodeJS o PHP. La competencia no es necesariamente algo malo. En primer lugar, ayuda a satisfacer todas las tendencias entre los desarrolladores, pero también a desafiar a los equipos para que puedan ofrecer las mejores herramientas posibles.

El rendimiento se ha citado a menudo en comparaciones y pruebas, entre otras cosas porque Microsoft ha comunicado ampliamente sobre el tema, destacando las importantes ganancias con respecto a la versión antigua y a los competidores. Como resultado, muchos de los principales actores de TI han adoptado .NET Core por la solidez y madurez que ha demostrado en los últimos años, reconociendo el profundo trabajo que se ha realizado en el framework.

1. Pruebas de rendimiento

El rendimiento es realmente una característica que Microsoft ha querido situar en el centro del framework. Para demostrarlo, es posible escribir pruebas de rendimiento de forma muy sencilla, ya que los equipos han diseñado un mini framework de pruebas basado en xUnit. Esto permite orientar el código que se va a comprobar, mediante un sistema de iteración que el framework ejecutará y supervisará a lo largo de la prueba. El proyecto es de código abierto: https://github.com/Microsoft/xunit-performance/

El código mínimo requerido para una prueba de rendimiento es el siguiente:

[Benchmark] 
void TestMethod() 
{   
    // Cada caso de test irá en esta iteración  
    foreach (var iteration in Benchmark.Iterations) 
    {   
         // Inicio de la iteración   ...

Novedades en C#

El lenguaje C# está en constante evolución, y cada año se introducen mejoras sintácticas en beneficio de los desarrolladores. Una sintaxis sencilla y eficaz facilita la lectura del código, lo que a su vez facilita el mantenimiento del software. Los equipos de Microsoft trabajan constantemente en el compilador Roslyn para que sea lo más eficaz posible y cada nueva solicitud de funcionalidad se analiza escrupulosamente para garantizar que se corresponde con la filosofía del lenguaje.

El proyecto Roslyn es de código abierto (https://github.com/dotnet/roslyn) y todos los debates sobre la mejora del lenguaje se pueden encontrar aquí: https://github.com/dotnet/csharplang. De este modo, la comunidad es parte integrante del proceso de mejora del lenguaje y todo el mundo puede contribuir.

La última versión estable y más extendida de C# es la 7.3. El objetivo de esta sección es presentar las principales características del lenguaje C#, desde la última versión principal, 7.0, hasta la más reciente, 7.3.

1. Versión 7.0

¿Quién no ha soñado con devolver varios valores para un método sin tener que crear necesariamente una clase específica? Con C# 7.0, esto es posible gracias a las tuplas. Las tuplas facilitan enormemente la creación de objetos ValueTuple.

// Tuplas sin nombre. Las propiedades se llaman Item1 y Item2 
var letters = ("a", "b"); 
  
// Tuplas con nombre 
(string Alpha, string Beta) namedLetters = ("a", "b"); 
var alphabetStart = (Alpha: "a", Beta: "b"); 

La ventaja reside en los métodos. Es fácil devolver varios valores con un método sin crear clases especiales. La sintaxis sigue siendo muy clara y mejora la legibilidad. 

private static (int Max, int Min) Range(IEnumerable<int> numbers) 
{   
    int min = int.MaxValue;   
    int max = int.MinValue;   
    foreach(var n in numbers)   
    {   
        min = (n < min) ? n : min;   
        max = (n > max) ? n : max;   
    }...