Introducción a lo que es .NET Core

El siguiente artículo Qué es .Net Core proporciona un resumen de la arquitectura del núcleo .Net en detalle. .Net Core es una plataforma de desarrollo de código abierto diseñada y mantenida por Microsoft y la comunidad .Net. .Net Core ha sido diseñado teniendo en cuenta diversas necesidades y propósitos, centrándose en el desarrollo web, el desarrollo de Windows Phone y el desarrollo de aplicaciones de la tienda de Windows. .Net Core es un subconjunto de .Net Framework. En términos más precisos, una versión bifurcada de .Net Framework. Ahora puede que se pregunte cuál era la necesidad de crear .Net Core cuando es solo un subconjunto de .Net Framework. .Net core tiene algunos cambios fundamentales en la forma en que opera. En primer lugar, está más modularizado. Esto le ayuda a crear aplicaciones solo con las bibliotecas que necesita y sin equipaje adicional. En segundo lugar, es verdaderamente multiplataforma. Esto la convierte en la elección de la plataforma de desarrollo del futuro.

Arquitectura de .Net Core

  • Con cualquier plataforma o marco de desarrollo, lo básico y lo más importante es su arquitectura. La arquitectura define la forma en que los desarrolladores y las bibliotecas interactuarán con la plataforma. Antes de aprender más sobre .Net Core, es importante ver qué hay en el núcleo de .Net Core.

  • Aquí es donde se encuentra .Net Core en la pila .Net. Los diversos .Net Frameworks y las bibliotecas, hasta la fecha, utilizan las bibliotecas de tiempo de ejecución, los compiladores y los paquetes NuGet comunes. Construyen sus propias bibliotecas específicas de la plataforma sobre estos paquetes comunes. Las bibliotecas comunes contienen las definiciones de cosas primitivas, como los tipos de datos. Esto apenas cambia y, por lo tanto, es la base de todos los frameworks de .Net stack.

Terminologías clave en la arquitectura de .Net Core

Comprendamos las terminologías clave en la arquitectura de .Net Core.

Core CLR

Core CLR es Common Language Runtime optimizado para implementaciones multiplataforma y basadas en la nube. Esto, junto con .Net Native Runtime, forma la base de todas las plataformas basadas en .Net.

.Net Native Runtime

También conocido como Managed Runtime, .Net Native Runtime contiene las bibliotecas nativas basadas en Windows. Esto también contiene la compilación Ahead Of Time (AOT) en lugar de la compilación Just In Time (JIT) anterior. Esto mejora el rendimiento de las aplicaciones.

.Net Native Runtime y Core CLR son las capas que contienen implementaciones de tipos primitivos, así como colecciones genéricas en .Net. Estas capas apenas cambian y son constantes en las distintas pilas .Net. Las diversas API de .Net stack, por lo tanto, comparten las mismas implementaciones.

BCL unificado

La Biblioteca de clase base unificada, también conocida como CoreFX, consta de las clases básicas y fundamentales que forman el núcleo de la plataforma .Net Core.

Modelos de aplicaciones

Encima del BCL, sienta los diversos modelos de aplicaciones que los desarrolladores aprovechan para desarrollar aplicaciones específicas de la plataforma. Actualmente, .Net Core tiene el Modelo .Net ASP para el desarrollo web y el Modelo de la Tienda Windows para el desarrollo de aplicaciones de Windows.

El poder de NuGet

  • La plataforma .Net Core, en marcado contraste con su predecesor .Net Framework, se entrega como un conjunto de paquetes NuGet. Por lo tanto, .Net Core contribuye esencialmente al ecosistema ya próspero de los paquetes NuGet. Tenga en cuenta que .Net Core no viene como un solo paquete NuGet. En cambio, se ha factorizado, modularizado y enviado como varios paquetes NuGet.
  • Además, Microsoft eliminó la confusión en torno a la nomenclatura de los paquetes NuGet y los ensamblados relevantes. En .Net Core, los paquetes NuGet tienen el mismo nombre que el ensamblado. Por ejemplo, las colecciones inmutables ahora se envían bajo el nombre de System.Collections.Immutable en lugar de Microsoft.BCL.Immutable. Esto ha simplificado enormemente el problema de determinar qué paquete NuGet contiene qué ensamblaje. Hey, ahora se llaman igual.

Entonces, ¿por qué Microsoft decidió enviar .Net Core como un conjunto de paquetes NuGet? Bueno, aquí están las razones:

  • NuGet permite entregar .Net Core de forma ágil. Cualquier actualización a cualquier característica .Net Core se puede consumir simplemente actualizando el paquete NuGet.
  • Esto ha generalizado las dependencias en sus aplicaciones. Ahora no hay referencias de ensamblaje, bibliotecas y referencias de NuGet de terceros. Todos son NuGet ahora. Por lo tanto, si cualquier paquete de NuGet de terceros requiere una versión superior de la biblioteca System.Collections, le pedirá que actualice el sistema correspondiente. Colecciones NuGet paquete y ya está. Realmente se vuelve muy simple.
  • El enfoque modular de .Net Core asegura que cada aplicación despliegue solo los paquetes que necesita. Sin equipaje extra.

¿Cómo .Net Core facilita el trabajo?

.Net Core es una plataforma sobre la cual hay marcos como ASP .Net Core y Universal Windows Platform que aprovechan y amplían las características de .Net Core. Veamos las características de .Net Core que facilitan la vida de los desarrolladores.

Multiplataforma y Arquitectura

.Net Core sigue el principio de build-once-run-anywhere. Por lo tanto, es multiplataforma. Es compatible con plataformas Windows, MacOS y Linux. Puede construir su aplicación en cualquier plataforma y ejecutarla en otra. Además, una aplicación integrada en .Net Core es consistente en su comportamiento en cualquier arquitectura como x64, x86 o ARM.

Herramientas de línea de comando

.Net Core viene con herramientas de línea de comandos fáciles de usar para aquellos a quienes les gusta codificar en blanco y negro. Estas herramientas son útiles para el desarrollo local, así como para la integración continua de código en repositorios.

CI / CD flexible

.Net Core admite la integración continua y la implementación continua. Por lo tanto, solo necesita preocuparse por la lógica del código. El resto es manejado por la plataforma .Net Core.

Idiomas e IDEs

Aplicaciones y bibliotecas .Net Core y se pueden codificar en C #, F # y Visual Basic. Esto se ve respaldado por la integración con sus IDE favoritos, como Visual Studio, VS Code, Sublime, Vim, etc.

Compatibilidad y soporte

Compatible con .Net Framework, .Net Standard, Mono APIs y Xamarin. Al ser de código abierto, tiene un gran apoyo de la comunidad y de Microsoft.

APIs

.Net Core expone API para muchos escenarios de propósito general y de alto rendimiento. Por un lado, hay API para tipos de datos primitivos (bool, int, etc.) y colecciones (listas, diccionarios, etc.). Por otro lado, hay API para tipos de alto rendimiento como Vector y Pipelines.

Habilidades requeridas

.Net Core es una plataforma de desarrollo de aplicaciones. Hay marcos construidos sobre .Net Core que los desarrolladores pueden aprovechar para construir aplicaciones sobre ellos. Para aprender el desarrollo en .Net Core, necesita un conocimiento básico del desarrollo de ASP .Net, la arquitectura MVC y cómo funcionan los paquetes NuGet y las referencias de ensamblaje en ASP .Net. Esto simplificará enormemente su curva de aprendizaje. Además, el conocimiento de C # es imprescindible para desarrollar una aplicación en .Net Core.

Para aquellos que ya son desarrolladores en .Net Framework y desean migrar sus aplicaciones a .Net Core, se recomienda tener en cuenta los siguientes puntos:

  • .Net Core admite la arquitectura ASP .Net MVC. Sin embargo, si su aplicación está basada en formularios web, .Net Core no es compatible con formularios web.
  • Si su aplicación se basa en la arquitectura ASP .Net MVC, entonces la única ganancia para moverla a la plataforma .Net Core es la compatibilidad cruzada. Si la compatibilidad cruzada no cambia mucho el juego para su aplicación, ASP .Net MVC es igual de bueno.
  • .Net Core se centra principalmente en el desarrollo web y de la Tienda Windows. Por lo tanto, actualmente, no hay soporte para aplicaciones de escritorio.
  • Las aplicaciones de consola son las más beneficiadas de la migración de .Net Core. Esto los haría operables en múltiples sistemas operativos.
  • Las aplicaciones web Silverlight integradas necesitarían migración a HTML antes de considerar .Net Core. El soporte de Silverlight ha sido descontinuado por Microsoft.

Cómo ayuda .Net Core en el crecimiento profesional

.Net Core es verdaderamente multiplataforma. Esta es la plataforma futura de Microsoft para entornos de desarrollo integrados para los dispositivos del futuro. .Net Core se enfoca en la Web, Windows Store y dispositivos táctiles.

Aprender .Net Core lo ayudará enormemente a crear aplicaciones que se adapten a las necesidades futuras de dispositivos y plataformas. Los principios de diseño de .Net Core aseguran que siga las mejores prácticas de desarrollo. Existe una creciente necesidad de una experiencia de aplicación más robusta e interactiva, ya sea basada en la web o en dispositivos móviles. Esto, a su vez, impulsa la necesidad de una plataforma mejorada, más simple y amigable para el desarrollador. Atrás quedaron aquellos días en que una aplicación desarrollada en una plataforma no funcionaría en otra plataforma. La demanda actual es desarrollar aplicaciones que se creen una vez y se ejecuten en todas partes. .Net Core se basa en esta ideología y su aprendizaje lo ayudaría a crear mejores aplicaciones para dispositivos modernos.

Conclusión: ¿Qué es .NET Core?

La plataforma .NET Core no es como su predecesor .Net Framework. Es una nueva pila .NET que está optimizada para el desarrollo de código abierto y la entrega ágil a través de NuGet. Si bien .NET Framework fue diseñado para ser multiplataforma, fue en gran medida una plataforma solo para Windows. .NET Core es verdaderamente multiplataforma. Microsoft busca estar preparado para el futuro y .Net Core es un paso muy fructífero hacia eso.

Se recomienda a los lectores interesados ​​que profundicen más en .Net Core leyendo los blogs de Microsoft Developers. Para aquellos que desean comenzar a crear aplicaciones en .Net Core, la mejor manera es comenzar con un proyecto de shell en .Net Core en Visual Studio.

Artículos recomendados

Esta es una guía de Qué es .NET Core. Aquí discutimos .NET Core Architecture, trabajando, habilidades requeridas junto con Carrer Growth. También puede consultar nuestros otros artículos sugeridos:

  1. Marco ASP.NET
  2. ¿Qué es ASP.NET?
  3. Ciclo de vida de la página ASP.NET
  4. Carrera en ASP.NET
  5. Preguntas de la entrevista de Xamarin | Top 18