Aprenda a crear un nuevo proyecto de .NET Aspire
El desarrollo nativo de la nube puede requerir que los desarrolladores se conecten a diferentes microservicios, como bases de datos, colas de mensajería y memorias caché. .NET Aspire simplifica este proceso proporcionando un conjunto de plantillas que puede usar para crear y administrar las conexiones entre estos servicios.
En esta unidad, aprenderá a crear un nuevo proyecto de .NET Aspire y a comprender las diferencias entre las dos plantillas de proyecto de inicio. A continuación, explore la estructura de la solución generada.
Requisitos previos de .NET Aspire
Para poder crear un nuevo proyecto de .NET Aspire, hay algunos requisitos previos que debe instalar localmente:
- .NET 8
- Versión preliminar de Visual Studio 2022
- Docker Desktop o Podman
- Carga de trabajo de .NET Aspire en Visual Studio
En el siguiente ejercicio, recorrerá los pasos para instalar estos requisitos previos.
Elección de la mejor plantilla de .NET Aspire para el proyecto
Hay dos plantillas de inicio de .NET Aspire disponibles actualmente:
Aplicación de Aspire de .NET: Esta plantilla es un buen punto inicial para los nuevos proyectos. Solo incluye los proyectos AspireSample.AppHost y AspireSample.ServiceDefaults. Esta plantilla es útil cuando desea empezar desde cero y agregar sus propios componentes y servicios.
Aplicación de inicio de .NET Aspire: Esta plantilla incluye los proyectos AspireSample.AppHost y AspireSample.ServiceDefaults, pero también incluye un ejemplo de AspireSample.Web y una API que le proporciona datos AspireSample.ApiService. Estos proyectos están preconfigurados con la detección de servicios y otros ejemplos básicos de la funcionalidad común de .NET Aspire.
Ambas plantillas de Aspire proporcionan un panel para supervisar el estado de los servicios y el tráfico entre ellos. El panel ayuda a mejorar la experiencia de desarrollo local, ya que ofrece una visión general del estado y la estructura de la aplicación.
También hay tres plantillas de proyecto disponibles:
- Host de aplicación de .NET Aspire: Plantilla que solo contiene un proyecto de host de aplicación (orquestador).
- Valor predeterminado del servicio de .NET Aspire: Plantilla que solo contiene el proyecto predeterminado del servicio.
- Proyecto de prueba de .NET Aspire: Plantilla que solo contiene pruebas unitarias para el proyecto host de la aplicación.
Creación de un nuevo proyecto de .NET Aspire mediante una plantilla de .NET Aspire
Puede usar el cuadro de diálogo de inicio de Visual Studio para crear un nuevo proyecto de .NET Aspire o Archivo>Nuevo>Proyecto. También puede usar comandos de la CLI de .NET. Para crear una solución con la plantilla Aplicación de .NET Aspire, usaría este comando:
dotnet new aspire
O bien, para usar la plantilla Aplicación de inicio de .NET Aspire, usaría este comando:
dotnet new aspire-starter
Una ventaja de usar Visual Studio es elegir las opciones de configuración a través de diálogos. Los comandos de la CLI de .NET son útiles cuando desea crear un nuevo proyecto de .NET Aspire con la configuración predeterminada, pero puede modificar los valores predeterminados con marcas opcionales. En el siguiente ejercicio, verá cómo crear un nuevo proyecto de .NET Aspire mediante ambos métodos.
Exploración de la estructura de las soluciones generadas por las plantillas de .NET Aspire
Las plantillas de .NET Aspire generan una solución con una estructura específica. Esta estructura es un diagrama simplificado para la aplicación de inicio, sin las opciones de almacenamiento en caché o pruebas habilitadas:
────📂 AspireSample
├───📂 AspireSample.ApiService
│ ├───📂 Properties
│ │ └─── launchSettings.json
│ ├─── appsettings.json
│ ├─── AspireSample.ApiService.csproj
│ └─── Program.cs
├───📂 AspireSample.AppHost
│ ├───📂 Properties
│ │ └─── launchSettings.json
│ ├─── appsettings.json
│ ├─── AspireSample.AppHost.csproj
│ └─── Program.cs
├───📂 AspireSample.ServiceDefaults
│ ├─── AspireSample.ServiceDefaults.csproj
│ └─── Extensions.cs
├───📂 AspireSample.Web
│ ├───📂 Components
│ │ ├───📂 Layout
│ │ │ ├─── ...
│ │ ├───📂 Pages
│ │ │ ├─── ...
│ │ ├─── ...
│ ├───📂 Properties
│ │ └─── launchSettings.json
│ ├───📂 wwwroot
│ │ ├───...
│ ├─── appsettings.json
│ ├─── AspireSample.Web.csproj
│ ├─── Program.cs
│ └─── WeatherApiClient.cs
└─── AspireSample.sln
Ambas plantillas agregan los proyectos AppHost y ServiceDefaults. Estos proyectos son el núcleo de una aplicación compilada con .NET Aspire. El proyecto AppHost es el punto de entrada y es responsable de actuar como orquestador.
El proyecto ServiceDefaults contiene la configuración predeterminada de la aplicación. Estas configuraciones se reutilizan en todos los proyectos de la solución.
La solución anterior también incluye los proyectos Web y ApiService . El proyecto Web es una aplicación WebAssembly de Blazor que tiene un contador y llama a la ApiService para obtener datos de previsión. La ApiService es una API sencilla que devuelve datos de previsión.
Recorrido de la estructura de código
El proyecto AspireSample.AppHost tiene el código siguiente en Program.cs:
var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddRedis("cache");
var apiService = builder.AddProject<Projects.AspireStarterSample_ApiService>("apiservice");
builder.AddProject<Projects.AspireStarterSample_Web>("webfrontend")
.WithReference(cache)
.WithReference(apiService);
builder.Build().Run();
Recorrido del código anterior, línea por línea:
Cree una variable
builder
que sea unIDistributedApplicationBuilder
.Cree una variable
cache
que sea unIResourceBuilder<RedisResource>
.Llame a
AddProject
con un parámetro de tipo genérico que contenga los detalles delIServiceMetadata
del proyecto, agregando el proyecto AspireSample.ApiService al modelo de aplicación.Se trata de un bloque de creación fundamental de .NET Aspire. El
AddProject
configura la detección de servicios y la comunicación entre los proyectos de la aplicación. El argumento de nombre apiservice se usa para identificar el proyecto en el modelo de aplicación y lo usan más adelante los proyectos que quieran comunicarse con él.Llama a
AddProject
de nuevo, esta vez agregando el proyecto AspireSample.Web al modelo de aplicación. También encadena varias llamadas aWithReference
pasando las variables de caché y de apiservice.La API de
WithReference
es otra API fundamental de .NET Aspire, que inserta información de detección de servicios o configuración de cadena de conexión en el proyecto que se va a agregar al modelo de aplicación.Por último, el
builder
llama aBuild
yRun
para iniciar la aplicación.