El 14 de noviembre del 2023 Microsoft anunció .NET 8 🥳 y junto con sus varias novedades y mejoras, resaltó una en particular, la cual recibe el nombre de .NET Aspire, definiciones hay varias ya en la red, sin embargo en este artículo vas a aprender qué es y para qué sirve en un lenguaje sencillo y pragmático que es lo que caracteriza a este blog. Empecemos devs!
Definición oficial
Es un stack tecnológico "opinado" que sirve para construir aplicaciones en .NET que sean resilientes, observables, configurables y listas para la nube.
En ningún lugar te van a explicar qué quiere decir opinionated stack, o en español stack opinado, pero aquí sí 🔥😊, un stack opinado quiere decir que maneja una única forma clara y estandarizada de hacer bien las cosas, lo cual evita que cada desarrollador tenga una forma distinta de hacer las cosas.
Cómo empezar a utilizarlo
Necesitas Visual studio 2022 Preview versión 17.9.0 como mínimo, y como habrás notado se trata de una versión Preview.
Que .NET Aspire esté en una fase Preview quiere decir que está recibiendo opiniones y recomendaciones de toda la comunidad de desarrolladores que lo utiliza.
Para instalar este paquete tienes que añadir este feature desde el instalador del IDE.
El problema que .NET Aspire soluciona
Cuando estamos trabajando en aplicaciones distribuídas como por ejemplo un sistema que hace uso de una arquitectura de microservicios levantar el proyecto completo en local es una tarea a veces tediosa y muchas otras hasta difícil. Es cierto que Docker ha facilitado mucho la tarea, sin embargo aún así, esta tarea dependiendo de la complejidad del sistema puede ser difícil.
Por cada servicio es necesario configurar cosas como:
- Cadenas de conexión
- Bases de datos
- Data inicial para la base de datos (Seeds)
- Hacer las IP's y puertos disponibles
- Configuraciones de la aplicación
- Configuración de dependencias y bibliotecas
- Tener un orden al hacer todo esto y más...
Hay que tener en consideración también que a veces no necesitamos levantar todos los servicios sino que algunos correrán en docker mientras que otros con el IDE para poder depurarlos (debugging).
En resumen, potencialmente todo lo que está disponible en producción deberá estar disponible en local.
En un ambiente de producción esto lo haríamos con un orquestador o algún script, pero en local las cosas pueden cambiar mucho teniendo que hacer muchas de estas tareas manualmente ante la falta de scripts completos o orquestadores completamente configurados los cuales sí los tenemos en producción porque no queda otra opción, ya que en producción tenemos que automatizar todo esto, no queda opción, pero en local las cosas tienden a relajarse y por ello la falta de automatización al levantar todo el ambiente.
¿Para qué sirve?
Una vez entendido el problema, es más fácil entender ahora qué viene a solucionar .NET Aspire.
Aspire es una herramienta que promete hacer el desarrollo, la compilación y el despliegue de sistemas distribuídos mucho más fácil, de forma centralizada y eficiente.
Microsoft ya ha tenido la idea mejorar el desarrollo, testing y despliegue de aplicaciones distribuídas en el pasado con un proyecto experimental del 2020 llamado Project Tye. Ahora .NET Aspire es la evolución y madurez de esa idea.
.NET Aspire en términos prácticos viene a ser un proyecto más dentro tu solución que contiene a tus servicios, y esto es un punto en contra de Aspire, que necesita que tengas todos tus servicios en una misma solución y esto no es realista ya que muchos proyectos pueden estar completamente aislados y tener su propia solución o simplemente estar en otra tecnología que no sea .NET.
Si bien .NET Aspire puede trabajar con tecnologías distintas a .NET este punto en contra seguramente que lo tomarán en cuenta para futuros lanzamientos, considerando que está en una etapa de preview 😉
A continuación te mostraré como luciría .NET Aspire en un proyecto dentro de Visual Studio. Estas capturas de pantalla las tomé del blog oficial de Microsoft en el cual podrás encontrar muchos más detalles.
Y lo que te provee principalmente Aspire es un dashboard desde donde puedes configurar todo lo que tendrías que hacer manualmente y que hemos discutido antes.
Genial no? Pues ahora ya tienes una idea más aterrizada de qué es .NET Aspire y puedes empezar a aprenderlo, de seguro dará mucho más que hablar a futuro.
Espero que esta entrada te haya gustado dev! Si es así, compártela 🥳
Créditos de imagen de portada: Foto de Shubham's Web3 en Unsplash