ASP.NET Core es un nuevo marco de código abierto y multiplataforma para crear aplicaciones de Internet basadas en la nube, como aplicaciones web, aplicaciones IoT y backends móviles.

  • Las aplicaciones ASP.NET Core se pueden ejecutar en .NET Core o .NET Framework.
  • Está diseñado para proporcionar un marco de desarrollo optimizado para aplicaciones desplegadas en la nube o ejecutarse localmente.
  • Se compone de componentes modulares con mínima sobrecarga, para mantener la flexibilidad mientras se construyen soluciones.
  • Puede desarrollar y ejecutar aplicaciones multiplataforma ASP.NET Core en Windows, Mac y Linux.
  • ASP.NET Core es de código abierto en GitHub.

 

La primera vista previa de ASP.NET salió hace casi 15 años como parte de .NET Framework. Desde entonces, millones de desarrolladores lo han utilizado para construir y ejecutar aplicaciones de gran tamaño, y con el paso de los años hemos añadido y desarrollado muchas funciones.

ASP.NET Core tiene una serie de modificaciones arquitectónicas que implican una imagen mucho más delgada y más modular.

ASP.NET Core ya no se basa en System.Web.dll sino que se basa en una serie de paquetes NuGet granular; Esto le permite optimizar su aplicación para incluir sólo los paquetes NuGet requeridos. Los beneficios de un área de aplicación más pequeña incluyen mayor seguridad, servicio reducido, rendimiento mejorado y costos reducidos en un modelo de pago.

 

REST multi-plataforma API, utilizando ASP.NET Core y Visual Studio Code …. ¿Por qué?

Hay muchos cambios que acompañan a ASP.NET Core:

  • Código abierto
  • Plataforma transversal
  • Optimizado para la nube y en línea con las nuevas tendencias en desarrollo web
  • La capacidad de ejecutar ASP.NET Core en Linux introduce la posibilidad de explorar nuevas fronteras.

Cuando se lanzó ASP.NET Core, Microsoft y la comunidad .NET decidieron fusionar las capacidades MVC y Web API; esto tiene sentido ya que los dos siempre han sido muy similares.

ASP.NET Web API vs MVC: ¿Cuáles son las diferencias?

Antes de ASP.NET Core, eran muy similares; ambos han seguido un modelo MVC con Action y Controlloer.
La API Web no tiene un motor de visualización como Razor, que está diseñado para utilizarse para las API de REST.
Microsoft ha promocionado la API Web como un marco para crear cualquier tipo de servicio HTTP.
Era una gran alternativa a los servicios web de WCF, SOAP y ASMX. Fue diseñado desde el principio con JSON y REST en mente.

MVC está diseñado para aplicaciones web estándar con front-end HTML.

El nuevo MVC 6 provisto de ASP.NET Core combina lo mejor de MVC Worlds y APIs Web de ASP.NET.
Desde cualquier controlador, puede devolver una vista u objeto y MVC se encargará de serializarlo para usted.
Varios estilos de enrutamiento diferentes le permiten implementar aplicaciones web MVC básicas o múltiples API REST.

Hay muchos aspectos innovadores en .NET Core. Para nosotros, sin embargo, uno de los aspectos más emocionantes de .NET Core es PERFORMANCE:

 

Colección
Las colecciones son la base de cualquier aplicación y hay muchas colecciones disponibles en las bibliotecas .NET.
Net Core introduce algunas mejoras con respecto a la sobrecarga, como las operaciones de racionalización para permitir una mejor alineación, un número reducido de instrucciones, etc.

LINQ
En el código de la aplicación, las colecciones a menudo van de la mano con LINQ integrado, que ha visto mejoras aún mayores.
Muchos de los operadores LINQ han sido completamente reescritos para .NET Core para reducir el número y el tamaño de las asignaciones, reducir la complejidad algorítmica y, en general, eliminar los trabajos innecesarios.

Compresión
Los ejemplos mostrados hasta ahora, de las colecciones y de LINQ, se refieren a la manipulación de datos en memoria.
Por supuesto hay muchas otras formas de manipulación de datos, incluyendo las transformaciones que están fuertemente relacionadas con la CPU. Incluso en este caso, ha habido algunas mejoras importantes en estas operaciones.

Serialización
La serialización binaria es otra área .NET que puede ser bastante intensa para CPU / datos / memoria.
BinaryFormatter es un componente que originalmente se dejó fuera de .NET Core, pero reaparece en .NET Core 2.0 para admitir el código existente que necesita (normalmente, se recomiendan otros formularios de serialización para el nuevo código). El componente es muy similar al lanzado en .NET 4.7, con la excepción de mejoras de rendimiento considerablemente altas.

Networking
Se aplica una buena cantidad de esfuerzo para optimizar y afinar los niveles inferiores de la pila de red para que pueda crear componentes de nivel superior de manera eficiente.
SocketAsyncEventArgs está en el centro de un conjunto de operaciones asíncronas en Socket y admite un modelo de finalización síncrono en el que las operaciones asíncronas que realmente se completan sincrónicamente pueden evitar costes asociado con la terminación asincrónica.