-
Notifications
You must be signed in to change notification settings - Fork 52
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #23 from elbruno/main
New content for localization in Spanish.
- Loading branch information
Showing
10 changed files
with
650 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. | ||
|
Oops, something went wrong.