Skip to content

Commit

Permalink
Merge pull request #23 from elbruno/main
Browse files Browse the repository at this point in the history
New content for localization in Spanish.
  • Loading branch information
jamesmontemagno authored Jul 3, 2024
2 parents 1b9d6c5 + 589a380 commit 6708750
Show file tree
Hide file tree
Showing 10 changed files with 650 additions and 1 deletion.
48 changes: 48 additions & 0 deletions README.es.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Aprendamos .NET Aspire

Ven y aprende todo sobre [.NET Aspire](https://learn.microsoft.com/dotnet/aspire/), una nueva pila de tecnología lista para la nube para construir aplicaciones distribuidas, observables y listas para producción. .NET Aspire se puede agregar a cualquier aplicación, independientemente de su tamaño y escala, para ayudarte a construir aplicaciones mejores y más rápidas.

.NET Aspire simplifica el desarrollo de aplicaciones con:

- **Orquestación**: Orquestación incorporada con un motor de flujo de trabajo simple pero potente. Utiliza C# y API familiares sin necesidad de YAML. Agrega fácilmente servicios en la nube populares, conecta a tus proyectos y ejecútalos localmente con un solo clic.
- **Descubrimiento de servicios**: Inyección automática de las cadenas de conexión correctas o configuraciones de red y la información de descubrimiento de servicios para simplificar la experiencia del desarrollador.
- **Componentes**: Componentes incorporados para servicios en la nube comunes como bases de datos, colas y almacenamiento. Integrados con registro, comprobaciones de salud, telemetría y más.
- **Panel de control**: Visualiza datos en vivo de OpenTelemetry sin necesidad de configuración. El panel de control para desarrolladores de .NET Aspire muestra registros, variables de entorno, trazas distribuidas, métricas y más para verificar rápidamente el comportamiento de la aplicación.
- **Despliegue**: Gestiona la inyección de las cadenas de conexión correctas o configuraciones de red y la información de descubrimiento de servicios para simplificar la experiencia del desarrollador.
- **Y mucho más**: .NET Aspire está repleto de características que a los desarrolladores les encantarán y que te ayudarán a ser más productivo.

Obtén más información sobre .NET Aspire con los siguientes recursos:
- [Documentación](https://learn.microsoft.com/dotnet/aspire)
- [Ruta de aprendizaje de Microsoft Learn](https://learn.microsoft.com/training/paths/dotnet-aspire/)
- [Videos de .NET Aspire](https://aka.ms/aspire/videos)
- [Aplicación de muestra de referencia eShop](https://github.com/dotnet/eshop)
- [Ejemplos de .NET Aspire](https://learn.microsoft.com/samples/browse/?expanded=dotnet&products=dotnet-aspire)
- [Preguntas frecuentes de .NET Aspire](https://learn.microsoft.com/dotnet/aspire/reference/aspire-faq)

## Localización

Estos materiales del taller de .NET Aspire están disponibles en los siguientes idiomas:

- [Inglés](./README.md)
- [한국어](./README.ko.md)

## Taller

Este taller de .NET Aspire forma parte de la serie [Aprendamos .NET](https://aka.ms/letslearndotnet). Este taller está diseñado para ayudarte a aprender sobre .NET Aspire y cómo utilizarlo para construir aplicaciones listas para la nube. El taller se divide en 6 módulos:

1. [Configuración e instalación](./workshop/localisation/es/1-setup.md)
1. [Valores predeterminados de servicio](./workshop/localisation/es/2-sevicedefaults.md)
1. [Panel de control del desarrollador y orquestación](./workshop/localisation/es/3-dashboard-apphost.md)
1. [Descubrimiento de servicios](./workshop/localisation/es/4-servicediscovery.md)
1. [Componentes](./workshop/localisation/es/5-components.md)
1. [Despliegue](./workshop/localisation/es/6-deployment.md)

Un conjunto completo de diapositivas está disponible para este taller [aquí](./workshop/localisation/es/AspireWorkshop.pptx).

El proyecto inicial para este taller se encuentra en la carpeta `start-with-api`. Este proyecto es una API de clima simple que utiliza la API del Servicio Meteorológico Nacional para obtener datos meteorológicos y un frontend web para mostrar los datos meteorológicos impulsado por Blazor.

Este taller está diseñado para completarse en un marco de tiempo de 2 horas.

## Datos de demostración

Los datos y servicios utilizados en este tutorial provienen del Servicio Meteorológico Nacional de los Estados Unidos (NWS) en https://weather.gov. Estamos utilizando su especificación de OpenAPI para consultar pronósticos del clima. La especificación de OpenAPI está [disponible en línea](https://www.weather.gov/documentation/services-web-api). Estamos utilizando solo 2 métodos de esta API y hemos simplificado nuestro código para utilizar solo esos métodos en lugar de crear el cliente completo de OpenAPI para la API de NWS.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ This workshop materials are available in the following languages:

- [English](./README.md)
- [한국어](./README.ko.md)
- [Español](./README.es.md)

## Workshop

Expand Down
2 changes: 1 addition & 1 deletion workshop/5-components.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,4 +121,4 @@ In this section, we added a Redis component to the App Host and integrated outpu

There are many more components available that you can use to integrate with your services. You can find the list of available components [in the .NET Aspire documentation](https://learn.microsoft.com/dotnet/aspire/fundamentals/components-overview?tabs=dotnet-cli#available-components).

A natural next step would be to integrate a database or leverage Azure Redis Cache as a hosted solution. Components for these and more are available on NuGet.
A natural next step would be to integrate a database or leverage Azure Redis Cache as a hosted solution. Components for these and more are available on NuGet.
38 changes: 38 additions & 0 deletions workshop/localisation/es/1-setup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Configuración del sistema

Este taller utilizará las siguientes herramientas:

- [.NET 8 SDK](https://dot.net/download)
- [Carga de trabajo de .NET Aspire](https://learn.microsoft.com/dotnet/aspire/fundamentals/setup-tooling?tabs=dotnet-cli%2Cunix#install-net-aspire)
- [Docker Desktop](https://docs.docker.com/engine/install/) o [Podman](https://podman.io/getting-started/installation)
- [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) o [Visual Studio Code](https://code.visualstudio.com/) con [C# DevKit](https://code.visualstudio.com/docs/csharp/get-started)

Para obtener la mejor experiencia, recomendamos utilizar Visual Studio 2022 con la carga de trabajo de .NET Aspire. Sin embargo, también puedes utilizar Visual Studio Code con el C# Dev Kit y la carga de trabajo de .NET Aspire. A continuación, se muestran las guías de configuración para cada plataforma.

## Windows con Visual Studio

- Instala [Visual Studio 2022 versión 17.10 o posterior](https://visualstudio.microsoft.com/vs/).
- Selecciona las siguientes cargas de trabajo:
- Carga de trabajo de `ASP.NET y desarrollo web`.
- Componente `.NET Aspire SDK` en `Componentes individuales`.

## Mac, Linux y Windows sin Visual Studio

- Instala la última versión del [.NET 8 SDK](https://dot.net/download?cid=eshop)
- Instala la carga de trabajo de [.NET Aspire](https://learn.microsoft.com/dotnet/aspire/fundamentals/setup-tooling?tabs=dotnet-cli%2Cunix#install-net-aspire) con los siguientes comandos:

```powershell
dotnet workload update
dotnet workload install aspire
```

> Nota: Es posible que estos comandos requieran `sudo`.
- Instala [Visual Studio Code con C# Dev Kit](https://code.visualstudio.com/docs/csharp/get-started)

> Nota: Cuando se ejecuta en Mac con Apple Silicon (procesador de la serie M), se requiere Rosetta 2 para grpc-tools.
## Prueba de la instalación

Para probar tu instalación, consulta el [Crear tu primer proyecto de .NET Aspire](https://learn.microsoft.com/dotnet/aspire/get-started/build-your-first-aspire-app) para obtener más información.

90 changes: 90 additions & 0 deletions workshop/localisation/es/2-servicedefaults.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# Valores predeterminados del servicio, también conocidos como valores predeterminados inteligentes

## Introducción

.NET Aspire proporciona un conjunto de valores predeterminados inteligentes para los servicios que se utilizan comúnmente en las aplicaciones .NET. Estos valores predeterminados están diseñados para ayudarte a comenzar rápidamente y proporcionar una experiencia consistente en diferentes tipos de aplicaciones. Esto incluye:

- Telemetría: Métricas, trazas, registro
- Resiliencia
- Comprobaciones de estado
- Descubrimiento de servicios

## Crear proyecto de valores predeterminados del servicio

### Visual Studio y Visual Studio Code

1. Agrega un nuevo proyecto a la solución llamado `ServiceDefaults`:

- Haz clic derecho en la solución y selecciona `Agregar` > `Nuevo proyecto`.
- Selecciona la plantilla de proyecto `.NET Aspire Service Defaults`.
- Nombra el proyecto `ServiceDefaults`.
- Haz clic en `Siguiente` > `Crear`.

*Visual Studio*
![Cuadro de diálogo de Visual Studio para agregar un proyecto de valores predeterminados del servicio](./../../media/vs-add-servicedefaults.png)

*Visual Studio Code*
![Cuadro de diálogo de Visual Studio Code para agregar un proyecto de valores predeterminados del servicio](./../../media/vsc-add-servicedefaults.png)


### Línea de comandos

1. Crea un nuevo proyecto utilizando el comando `dotnet new aspire-servicedefaults`:

```bash
dotnet new aspire-servicedefaults -n ServiceDefaults
```

## Configurar los valores predeterminados del servicio

1. Agrega una referencia al proyecto `ServiceDefaults` en los proyectos `Api` y `MyWeatherHub`:

- Haz clic derecho en el proyecto `Api` y selecciona `Agregar` > `Referencia`.
- Marca el proyecto `ServiceDefaults` y haz clic en `Aceptar`.
- Haz clic derecho en el proyecto `Api` y selecciona `Agregar` > `Referencia`.
- Marca el proyecto `MyWeatherHub` y haz clic en `Aceptar`.

> Consejo: En Visual Studio 2022, puedes arrastrar y soltar el proyecto sobre otro proyecto para agregar una referencia.

1. En los proyectos `Api` y `MyWeatherHub`, actualiza los archivos `Program.cs`, agregando la siguiente línea inmediatamente después de la línea `var builder = WebApplication.CreateBuilder(args);`:

```csharp
builder.AddServiceDefaults();
```

1. En los proyectos `Api` y `MyWeatherHub`, actualiza los archivos `Program.cs`, agregando la siguiente línea inmediatamente después de la línea `var app = builder.Build();`:

```csharp
app.MapDefaultEndpoints();
```

## Ejecutar la aplicación

1. Ejecuta la aplicación utilizando una configuración de multiproyecto en Visual Studio o Visual Studio Code.

- Visual Studio: Haz clic derecho en la solución `MyWeatherHub` y ve a propiedades. Selecciona `Api` y `MyWeatherHub` como proyectos de inicio, selecciona `Aceptar`.
- ![Propiedades de la solución de Visual Studio](./../../media/vs-multiproject.png)
- Haz clic en `Iniciar` para iniciar y depurar ambos proyectos.
- Visual Studio Code: Ejecuta los proyectos `Api` y `MyWeatherHub` utilizando el panel `Ejecutar y depurar`. Hemos proporcionado un archivo `launch.json` con las configuraciones necesarias para ejecutar ambos.

1. Prueba la aplicación navegando a las siguientes URL:

- [https://localhost:7032/swagger/index.html](https://localhost:7032/swagger/index.html) - API
- [https://localhost:7274/](https://localhost:7274/) - MyWeatherHub

1. Deberías ver la interfaz de usuario de Swagger para la API y la página de inicio de MyWeatherHub.
1. También puedes ver las comprobaciones de estado de la API navegando a [https://localhost:7032/health](https://localhost:7032/health).
1. También puedes ver las comprobaciones de estado de MyWeatherHub navegando a [https://localhost:7274/health](https://localhost:7274/health).
1. Visualiza los registros en la terminal para ver las comprobaciones de estado y otros datos de telemetría, como la resiliencia con Polly:

```bash
Polly: Información: Intento de ejecución. Origen: '-standard//Standard-Retry', Clave de operación: '', Resultado: '200', Manejado: 'False', Intento: '0', Tiempo de ejecución: '13.0649'
```

1. Haz clic en 5 ciudades diferentes y se lanzará un error "aleatorio". Verás la política de re-intento en acción.

```bash
Polly: Advertencia: Intento de ejecución. Origen: '-standard//Standard-Retry', Clave de operación: '', Resultado: '500', Manejado: 'True', Intento: '0', Tiempo de ejecución: '9732.8258'
Polly: Advertencia: Se produjo un evento de resiliencia. Nombre del evento: 'OnRetry', Origen: '-standard//Standard-Retry', Clave de operación: '', Resultado: '500'
System.Net.Http.HttpClient.NwsManager.ClientHandler: Información: Enviando solicitud HTTP GET http://localhost:5271/forecast/AKZ318
```
103 changes: 103 additions & 0 deletions workshop/localisation/es/3-dashboard-apphost.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# Panel de control y orquestación con .NET Aspire App Host

.NET Aspire proporciona APIs para expresar recursos y dependencias dentro de tu aplicación distribuida. Además de estas APIs, hay herramientas que permiten algunos escenarios interesantes. El orquestador está destinado a fines de desarrollo local.

Antes de continuar, considera algunos términos comunes utilizados en .NET Aspire:

* *Modelo de aplicación*: Una colección de recursos que conforman tu aplicación distribuida (DistributedApplication).
* *Proyecto de anfitrión de aplicación/orquestador*: El proyecto .NET que orquesta el modelo de aplicación, nombrado con el sufijo *.AppHost (por convención).
* *Recurso*: Un recurso representa una parte de una aplicación, ya sea un proyecto .NET, un contenedor, un ejecutable u otro recurso como una base de datos, una caché o un servicio en la nube (como un servicio de almacenamiento).
* *Referencia*: Una referencia define una conexión entre recursos, expresada como una dependencia mediante la API `WithReference`.

## Crear proyecto de anfitrión de aplicación

### Visual Studio y Visual Studio Code

1. Agrega un nuevo proyecto a la solución llamado `AppHost`:

- Haz clic derecho en la solución y selecciona `Agregar` > `Nuevo proyecto`.
- Selecciona la plantilla de proyecto `.NET Aspire App Host`.
- Nombra el proyecto `AppHost`.
- Haz clic en `Siguiente` > `Crear`.

*Visual Studio*
![Diálogo de Visual Studio para agregar un proyecto de anfitrión de aplicación](./../../media/vs-add-apphost.png)

*Visual Studio Code*
![Diálogo de Visual Studio Code para agregar un proyecto de anfitrión de aplicación](./../../media/vsc-add-apphost.png)


### Línea de comandos

1. Crea un nuevo proyecto utilizando el comando `dotnet new aspire-apphost`:

```bash
dotnet new aspire-apphost -n AppHost
```

## Configurar valores predeterminados del servicio

1. Agrega una referencia a los proyectos `Api` y `MyWeatherHub` en el nuevo proyecto `AppHost`:

- Haz clic derecho en el proyecto `AppHost` y selecciona `Agregar` > `Referencia`.
- Marca los proyectos `Api` y `MyWeatherHub` y haz clic en `Aceptar`.

> Consejo: En Visual Studio 2022, puedes arrastrar y soltar el proyecto sobre otro proyecto para agregar una referencia.

1. Cuando se agregan estas referencias, los generadores de código fuente generan automáticamente el código necesario para referenciar los proyectos en el anfitrión de la aplicación.

## Orquestar la aplicación

1. En el proyecto `AppHost`, actualiza el archivo `Program.cs`, agregando la siguiente línea inmediatamente después de la línea `var builder = DistributedApplication.CreateBuilder(args);`:

```csharp
var api = builder.AddProject<Projects.Api>("api");

var web = builder.AddProject<Projects.MyWeatherHub>("myweatherhub");
```

## Ejecutar la aplicación

1. Establece el proyecto `AppHost` como proyecto de inicio en Visual Studio haciendo clic derecho en `AppHost` y seleccionando `Establecer como proyecto predeterminado`.
1. Si estás utilizando Visual Studio Code, abre el archivo `launch.json` y reemplaza todo el contenido con lo siguiente:
```json
{
"version": "0.2.0",
"configurations": [
{
"name": "Ejecutar AppHost",
"type": "dotnet",
"request": "launch",
"projectPath": "${workspaceFolder}\\AppHost\\AppHost.csproj"
}
]
}
```

1. Ejecuta el anfitrión de la aplicación utilizando el panel `Ejecutar y depurar` en Visual Studio Code o Visual Studio.
1. El Panel de control de .NET Aspire se abrirá en tu navegador predeterminado y mostrará los recursos y dependencias de tu aplicación.

![Panel de control de .NET Aspire](./../../media/dashboard.png)

1. Abre el panel del clima haciendo clic en el punto de conexión para `MyWeatherHub`, que será [https://localhost:7274](https://localhost:7274).
1. Observa que los proyectos `Api` y `MyWeatherHub` se están ejecutando en el mismo proceso y pueden comunicarse entre sí de la misma manera que antes utilizando la configuración.
1. Haz clic en el botón `Ver registros` para ver los registros de los proyectos `Api` y `MyWeatherHub`.
1. Selecciona la pestaña `Traces` y selecciona `Ver` en un rastro donde se llame a la API.

![Panel de control de .NET Aspire](./../../media/dashboard-trace.png)

1. Explora la pestaña `Métricas` para ver las métricas de los proyectos `Api` y `MyWeatherHub`.

![Panel de control de .NET Aspire](./../../media/dashboard-metrics.png)

## Crear un error

1. Abre la pestaña `Estructurado` en el panel de control.
1. Establece el `Nivel` en `Error` y observa que no aparecen errores.
1. En el sitio web de `MyWeatherApp`, haz clic en varias ciudades diferentes para generar errores. Por lo general, 5 ciudades diferentes generarán un error.
1. Después de generar los errores, la pestaña `Estructurado` se actualizará automáticamente en el panel de control y observa que se muestran los errores.

![Panel de control de .NET Aspire](./../../media/dashboard-error.png)

1. Haz clic en el `Rastro` o en los `Detalles` para ver el mensaje de error y la traza de la pila.

Loading

0 comments on commit 6708750

Please sign in to comment.