Recientemente, en un blog oficial de .NET Framework , se anunció que .NET Core se está convirtiendo en código abierto .
Irónicamente, el autor menciona que lo que es .NET Core se explicará en la próxima publicación. Algunos detalles más se mencionan en otra publicación de anuncio .
De un diagrama suministrado:
y el texto de los artículos en sí, supongo que .NET Core (además de cosas obvias como ser de código abierto) es una reimplementación modular de .NET completo. Es decir, los componentes del marco se cargan según sea necesario, al igual que los paquetes NuGet se cargan ahora. Y ahora ASP.NET 5 es uno de los módulos que ya está implementado. ¿Es correcto mi entendimiento de .NET Core? Tal vez me estoy perdiendo algo?
Encontré un artículo reciente que encontré breve y muy bueno. Cubre .NET Standard, .NET Core y .NET Framework y su relación. Lo recomiendo altamente.
Respuestas:
Desde el blog .NET Anunciando .NET 2015 Preview: Una nueva era para .NET :
Y:
En resumen: primero, estaba Microsoft .NET Framework , que consiste en un tiempo de ejecución que ejecuta el código de la aplicación y la biblioteca, y una biblioteca de clases estándar casi completamente documentada .
El tiempo de ejecución es Common Language Runtime , que implementa Common Language Infrastructure , funciona con el compilador JIT para ejecutar el código de bytes CIL (anteriormente MSIL) .
La especificación e implementación de .NET de Microsoft fueron, dada su historia y propósito, muy centradas en Windows e IIS y "gordas". Existen variaciones con menos bibliotecas, espacios de nombres y tipos , pero pocas de ellas fueron útiles para el desarrollo web o de escritorio o son problemáticas de portar desde un punto de vista legal .
Entonces, para proporcionar una versión de .NET que no sea de Microsoft, que podría ejecutarse en máquinas que no sean de Windows, se tuvo que desarrollar una alternativa. No solo se debe portar el tiempo de ejecución para eso, sino también toda la biblioteca de clases de Framework para que sea bien adoptada. Además de eso, para ser completamente independiente de Microsoft, se requerirá un compilador para los idiomas más utilizados.
Mono es una de las pocas, si no la única implementación alternativa del tiempo de ejecución , que se ejecuta en varios sistemas operativos además de Windows, casi todos los espacios de nombres de la biblioteca de clases de Framework a partir de .NET 4.5 y un compilador VB y C # .
Ingrese a .NET Core: una implementación de código abierto del tiempo de ejecución y una biblioteca de clase base mínima. Toda la funcionalidad adicional se entrega a través de paquetes NuGet, implementando el tiempo de ejecución específico, las bibliotecas de framework y los paquetes de terceros con la aplicación misma.
ASP.NET Core es una nueva versión de MVC y WebAPI, junto con una fina abstracción de servidor HTTP, que se ejecuta en el tiempo de ejecución de .NET Core, pero también en .NET Framework.
fuente
Es un subconjunto de .NET Framework, iniciado con la edición Compact Framework. Progresó en Silverlight, Windows Store y Windows Phone. Se centró en mantener la implementación pequeña, adecuada para descargas rápidas y dispositivos con capacidades de almacenamiento limitadas. Y es más fácil de mencionar en plataformas que no son de Windows, y seguramente esta fue la razón por la que se eligió como la edición de código abierto. Se omiten las partes "difíciles" y "caras" del CLR y las bibliotecas de clase base.
De lo contrario, siempre es fácil reconocer cuándo se dirige a una versión de marco de este tipo, porque faltarán muchas cosas. Utilizará un conjunto distinto de conjuntos de referencia que solo exponen lo que admite el tiempo de ejecución. Se almacena en su máquina en el
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore
directorio.Actualización: después del lanzamiento de .NET Core 2.0, he visto algunos números representativos que dan una idea decente. Han estado trabajando arduamente en el back-port de API de framework a .NET Core en los últimos dos años. .NET Core 1.0 originalmente admitía 13,000 API. .NET Core 2.0 agregó 20,000 API, elevando el total a 32,000 y permitiendo portar alrededor del 70% de los paquetes NuGet existentes. Hay un conjunto de API que están demasiado conectadas a Windows para ser fáciles de portar a Linux y MacOS. Cubierto por el paquete de compatibilidad de Windows recientemente lanzado, agrega otras 20,000 API.
fuente
.NET Core
versión 5.0, que es más alta que el último marco completo. Supongo que con eso quieren decir que es algo diferente.Encontré un artículo reciente que encontré breve y muy bueno. Cubre .NET Standard, .NET Core y .NET Framework y su relación. Lo recomiendo altamente. Desafortunadamente, no tengo tiempo para adaptarme y ponerlo aquí.
Contenido original de la respuesta a continuación:
Entonces, según la última entrada oficial sobre el tema, aquí hay algunos puntos clave tal como los veo:
Así que .NET Native y ASP.NET 5 son solo "sujetos" de prueba para la nueva configuración del marco, en parte esto quizás porque son bastante diferentes:
Verán, incluso necesitan un nivel bajo separado, pero una parte importante de BCL sigue siendo común:
Es decir, los rectángulos magenta en la parte superior se agregarán masivamente con los nuevos modelos de aplicación, pero la base seguirá siendo común.
Despliegue de NuGet:
Relación con los marcos actuales:
Resumen:
Básicamente, esto puede pensarse como un .NET 4.6 con un modelo de distribución modificado, que, simultáneamente, está en proceso de convertirse en código abierto.
fuente
La documentación actual tiene una buena explicación de qué es .NET Core, qué áreas usar, etc. Las siguientes características definen mejor .NET Core:
Y esto es lo que incluye .NET Core:
fuente
.NET Core es una nueva implementación multiplataforma de estándares .NET (ECMA 335) similar a Mono pero realizada por el propio Microsoft.
Ver docs.microsoft.com
fuente
Microsoft reconoció el futuro paradigma de código abierto web y decidió abrir .NET a otros sistemas operativos. .NET Core es un .NET Framework para Mac y Linux. Es un .NET Framework "ligero", por lo que faltan algunas características / bibliotecas.
En Windows, seguiría ejecutando .NET Framework y Visual Studio 2015. .NET Core es más amigable con el mundo de código abierto como Node.js , npm, Yeoman , Docker , etc.
Puede desarrollar sitios web completos y API RESTful en Mac o Linux con Visual Studio Code + .NET Core que antes no era posible. Entonces, si te encanta Mac o Ubuntu y eres un desarrollador de .NET, adelante, configúralo.
Para Mono vs. .NET Core, Mono fue desarrollado como .NET Framework para Linux que ahora es adquirido por Microsoft (compañía llamada Xamarin ) y utilizado en el desarrollo móvil. Eventualmente, Microsoft puede fusionar / migrar Mono a .NET Core. No me preocuparía por Mono en este momento.
fuente
Intenté crear un nuevo proyecto en Visual Studio 2017 hoy (actualizado recientemente desde Visual Studio 2015) y noté un nuevo conjunto de opciones para el tipo de proyecto. ¡O son nuevos o ha pasado un tiempo desde que comencé un nuevo proyecto! :)
Encontré este enlace de documentación y lo encontré muy útil, así que lo estoy compartiendo. Los detalles de las viñetas también se proporcionan en el artículo. Solo estoy publicando viñetas aquí:
Este enlace proporciona un glosario de términos .NET.
fuente
Desde el sitio web de Microsoft :
Estas tecnologías son diferentes de .NET nativas en que se ejecutan utilizando CoreCLR runtime (utilizado en la Plataforma universal de Windows ).
Como mencionó en su pregunta, .NET Core no solo es de código abierto, sino también portátil [se ejecuta en MacOS, Windows y Linux]
Los componentes internos de .NET Core también están optimizados para no usar módulos diferentes de su biblioteca principal a menos que la aplicación lo requiera.
fuente
Microsoft acaba de anunciar .NET Core v 3.0, que es una versión muy mejorada de .NET Core.
Para obtener más detalles, visite este excelente artículo: Diferencia entre .NET Framework y .NET Core desde abril de 2019.
fuente
.NET Core es un marco de software informático administrado gratuito y de código abierto para los sistemas operativos Windows, Linux y macOS. Es un sucesor multiplataforma de código abierto para .NET Framework.
Las aplicaciones .NET Core son compatibles con Windows, Linux y macOS. En pocas palabras .NET Core es similar a .NET Framework, pero es multiplataforma, es decir, permite que las aplicaciones .NET se ejecuten en Windows, Linux y MacOS. Las aplicaciones de .NET Framework solo pueden ejecutarse en el sistema Windows. Entonces, la diferencia básica entre .NET framework y .NET core es que .NET Core es multiplataforma y .NET framework solo se ejecuta en Windows.
Además, .NET Core tiene una inyección de dependencia incorporada de Microsoft y no tiene que usar software / archivos DLL de terceros para la inyección de dependencia.
fuente
.NET Core es una versión de código abierto y multiplataforma de .NET. Los productos de Microsoft, además de las grandes capacidades que tienen, siempre fueron caros para los usuarios habituales, especialmente para los usuarios finales de productos que han sido fabricados por tecnologías .NET.
La mayoría de los clientes de bajo nivel prefieren usar Linux como su sistema operativo y antes de .NET Core no les gustaría usar las tecnologías de Microsoft, a pesar de sus grandes capacidades. Pero después de la producción de .NET Core, este problema se resuelve por completo y podemos satisfacer a nuestros clientes sin considerar su sistema operativo, etc.
fuente
.NET Core es una versión de código abierto y multiplataforma de .NET Framework.
fuente