CoreCLR, el núcleo de ejecución de .NET Core se publica Open Source

CoreCLR, el núcleo de ejecución de .NET Core se publica Open Source
Sin comentarios Facebook Twitter Flipboard E-mail

CoreCLR es el runtime del nuevo framework .NET Core, que tiene como objetivos el facilitar la construcción de aplicaciones que utilicen de forma horizontal los stack de .NET.

Microsoft acaba de anunciar la publicación en Git de todo el código que lo compone, con licencia Open Source, y del roadmap que llevará a poder correr aplicaciones .NET en Linux y OSX en un futuro próximo.

En el origen estaba .NET framework

.NET, en sus inicios allá por el 2002, estaba compuesto por un único y monolítico framework. Pero al poco tiempo se publicó .NET Compact Framework, que en realidad era un subconjunto específico para dispositivos pequeños como los Windows Mobile.

Desde entonces, está práctica de ir desgajando frameworks con entidad propia se ha ido repitiendo en el tiempo, como ocurrió con Silverlight, Windows Phone, Windows Store, etc, trayendo como resultado no deseado el incremento de los problemas relacionados con la fragmentación.

Estos vienen relacionados con la dificultad de construir aplicaciones horizontales que impliquen el uso de diferentes framework verticales de .NET, debido a las diferencias e incompatibilidades que han producido la evolución diferenciada de cada uno.

Un ejemplo claro, que todo programador .NET conoce, es construir una aplicación que funcione en el Escritorio, en el interfaz táctil de Windows 8 y en la Web. Siendo en algunos casos casi una misión imposible, con la única solución de tener tres proyectos separados y paralelos.

Para mitigar esta fragmentación, nacen las librerías portables y se cambia el concepto de .NET - que gira todo alrededor de la librería mscorlib - por el de ensamblados simples, con una sola responsabilidad, llamados contratos; que constituyen una API horizontal de interacción con los diferentes frameworks.

Otro problema de la arquitectura de .NET es la forma de desplegarse. Actualmente, sea cual sea la aplicación, requiere de todo el framework y de las extensiones principales; siendo el compilador el responsable de quitar aquello que sobra.

Esto, que es una ventaja con la compatibilidad y estabilidad del software, se puede convertir en una inconveniente si nuestro código utiliza alguna característica que es modificada en una versión de .NET posterior y que hace que la aplicación rompa. Sí, el riesgo de que esto ocurra es de poco menos del 1%, pero puede significar millones de usuarios con problemas.

.NET Core, un nuevo camino

.NET Core

.NET Core es parte de la última versión de .NET 2015, y pretende solventar los problemas descritos en la sección anterior.

Comparte compiladores, Runtime y librerías con el framework “clásico”, pero representa un cambio de rumbo muy importante.

Es un framework modular con el objetivo de ser sencillo de utilizar contra los diferentes stack tecnológicos, con potentes capacidades de escalamiento, bajo licencia Open Source y que será soportado en Windows, Linux y OSX. Nace con la orientación de simplificar el desarrollo y despliegue de aplicaciones Windows Store y ASP.NET 5, construyendo una librería base de clases (BCL) unificada que elimine las rigideces provocadas por estos dos stack verticales, tan diferentes.

Por debajo estaría una capa de adaptación que sería la que permitiría ejecutar el código tanto en el Runtime nativo de .NET, como en el nuevo CoreCLR.

Y para asegurar que en todo momento los despliegues incluyan la versión correcta de las diferentes librerías que componen la aplicación, .NET Core utiliza la potencia del distribuidor de paquetes NuGet; convirtiéndolo en parte del núcleo del nuevo framework y accediendo a un nuevo nivel de flexibilidad y optimización del código necesario para ejecutar el software.

CoreCLR, el corazón de la bestia

CoreCLR

Desde el blog de .NET framework, se acaba de anunciar la publicación en Github, bajo licencia Open Source, de CoreCLR, el runtime de .NET Core.

Este motor de ejecución permite, entre otras cosas, realizar la compilación a código máquina o las tareas automatizadas del recolector de basura. Pudiéndose utilizar como base para una amplia variedad de escenarios de desarrollos.

Incluso, y es lo que más me ha llamado la atención, ya se está anunciando la apertura dentro de unos pocos meses de los proyectos en GitHub de las versiones para Linux y Mac OSX. Lo cual le daría otra vuelta de tuerca a la nueva política de MS de estar presente en todas las plataformas.

En el repositorio de GitHub nos vamos a encontrar más de 2.6 millones de líneas, que componen en la actualidad CoreCLR. Y para poder estudiar o aportar al proyecto no solamente deberemos conocer C# y C++ en profundidad, si no que deberemos tener Visual Studio 2013, el entorno de desarrollo CMake (3.0.2) y las herramientas de Git.

Vía | .NET Framework blog
Más información | CoreCLR GitHub, Introducing .NET Core, CoreCLR Developer Guide

Comentarios cerrados
Inicio