You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/net-aspire/_index.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,9 +11,9 @@ learning_objectives:
11
11
- Modify code on a Windows on Arm development machine.
12
12
- Deploy a .NET Aspire application to Arm-powered virtual machines in the Cloud.
13
13
prerequisites:
14
-
- A Windows on Arm machine, for example [Windows Dev Kit 2023](https://learn.microsoft.com/en-us/windows/arm/dev-kit), or a Lenovo Thinkpad X13s running Windows 11 to build the .NET Aspire project.
14
+
- A Windows on Arm machine, for example the [Windows Dev Kit 2023](https://learn.microsoft.com/en-us/windows/arm/dev-kit), or a Lenovo Thinkpad X13s running Windows 11 to build the .NET Aspire project.
15
15
- An [Arm-based instance](/learning-paths/servers-and-cloud-computing/csp/) from AWS or GCP.
16
-
- Any code editor. [Visual Studio Code for Arm64](https://code.visualstudio.com/docs/?dv=win32arm64user) is suitable.
16
+
- Any code editor. [Visual Studio Code for Arm64](https://code.visualstudio.com/docs/?dv=win32arm64user) is an example of a suitable editor.
Once the Aspire workload is installed, you can create a new application by executing:
38
40
39
41
```console
40
42
dotnet new aspire-starter -o NetAspire.Arm
41
43
```
42
44
This command generates a solution with the following structure:
43
-
***NetAspire.Arm.AppHost** - the orchestrator, or coordinator, project serves as the backbone of your distributed application. Its primary responsibilities include defining how services connect to one another, configuring ports and endpoints to ensure seamless communication, managing service discovery to enable efficient interactions between components, and handling container orchestration to streamline the deployment and operation of services within your application.
45
+
***NetAspire.Arm.AppHost** - the orchestrator, or coordinator, project serves as the backbone of your distributed application. Its primary responsibilities include:
46
+
47
+
- Defining how services connect to one another.
48
+
- Configuring ports and endpoints to ensure seamless communication.
49
+
- Managing service discovery to enable efficient interactions between components.
50
+
- Handling container orchestration to streamline the deployment and operation of services within your application.
51
+
52
+
***NetAspire.Arm.ApiService** - the sample REST API service, built with ASP.NET Core, acts as a core component of your application by implementing business logic and managing data access. The default implementation comes preconfigured with essential features, that include:
44
53
45
-
***NetAspire.Arm.ApiService** - the sample REST API service, built with ASP.NET Core, acts as a core component of your application by implementing business logic and managing data access. The default implementation comes preconfigured with essential features, including a WeatherForecast endpoint for demonstration purposes, built-in health checks to monitor the service’s status, and telemetry setup to track performance and usage metrics.
54
+
* A weatherForecast endpoint for demonstration purposes.
55
+
* Built-in health checks to monitor the service’s status
56
+
* Telemetry setup to track performance and usage metrics.
46
57
47
-
***NetAspire.Arm.Web** - the web frontend application, implemented with Blazor, serves as the user-facing layer of your application. It communicates with the API service to provide an interactive experience. This application includes a user interface for presenting data, client-side logic for handling interactions, and preconfigured patterns for consuming services.
58
+
***NetAspire.Arm.Web** - the web frontend application, implemented with Blazor, serves as the user-facing layer of your application. It communicates with the API service to provide an interactive experience. This application includes:
48
59
49
-
***NetAspire.Arm.ServiceDefaults** - the shared library provides a centralized foundation for common service configurations across your application. It includes a default middleware setup, preconfigured telemetry settings for tracking performance, standard health check implementations, and logging configurations to ensure consistent and efficient monitoring and debugging.
60
+
* A user interface for presenting data.
61
+
* Client-side logic for handling interactions.
62
+
* Preconfigured patterns for consuming services.
50
63
51
-
The structure of this project is designed to enhance efficiency and simplify the development of cloud-native applications. At its core, it incorporates features to ensure seamless service interactions, robust monitoring, and an exceptional development experience.
64
+
***NetAspire.Arm.ServiceDefaults** - the shared library provides a centralized foundation for common service configurations across your application. It includes:
65
+
66
+
* A default middleware setup.
67
+
* Preconfigured telemetry settings for tracking performance.
68
+
* Standard health check implementations.
69
+
* Logging configurations to ensure consistent and efficient monitoring and debugging.
70
+
71
+
The structure of this project is designed to enhance efficiency, and simplify the development of cloud-native applications. At its core, it incorporates features to ensure seamless service interactions, robust monitoring, and an exceptional development experience.
52
72
53
73
One of the foundational elements is service discovery, which enables automatic service registration, dynamic endpoint resolution, and load balancing. These features ensure that services communicate effectively and handle traffic efficiently, even in complex, distributed environments.
54
74
55
75
For monitoring and telemetry, the architecture integrates tools like built-in health checks, OpenTelemetry for monitoring, and metrics collection with distributed tracing. These features provide developers with deep insights into application performance, helping to maintain reliability and optimize system operations.
56
76
57
77
Configuration management offers environment-based settings that make deploying applications across different stages straightforward. Secure secrets management safeguards sensitive information, while standardized service-to-service communication simplifies interactions between microservices.
58
78
59
-
The architecture is also tailored to improve the development experience. Developers can benefit from local debugging support and a powerful monitoring dashboard. This dashboard provides a detailed view of service health, logs, metrics, trace information, resource usage, and service dependencies. Additionally, hot reload capability allows real-time updates during development, and container support ensures consistency across local and production environments.
79
+
The architecture is also tailored to improve the development experience. Developers can benefit from local debugging support and a powerful monitoring dashboard. This dashboard provides a detailed view of the following:
80
+
81
+
* Service health.
82
+
* Logs.
83
+
* Metrics.
84
+
* Trace information.
85
+
* Resource usage.
60
86
61
-
This thoughtfully-crafted architecture embodies microservices best practices, promoting scalability, maintainability, and service isolation. It not only simplifies deployment and monitoring, but also fosters developer productivity by streamlining workflows and providing intuitive tools for building modern, distributed applications.
87
+
This thoughtfully-crafted architecture embodies best practices for microservices, and promotes scalability, maintainability, and service isolation. It not only simplifies deployment and monitoring, but also fosters developer productivity by streamlining workflows and providing intuitive tools for building modern, distributed applications.
Login to the dashboard at https://localhost:17222/login?t=81f99566c9ec462e66f5eab5aa9307b0
34
34
```
35
35
36
-
Click on the link generated for the dashboard. In this case it is: https://localhost:17222/login?t=81f99566c9ec462e66f5eab5aa9307b0. This will direct you to the application dashboard, as shown below:
36
+
Click on the link generated for the dashboard. In this case it is: [https://localhost:17222/login?t=81f99566c9ec462e66f5eab5aa9307b0](https://localhost:17222/login?t=81f99566c9ec462e66f5eab5aa9307b0). This directs you to the application dashboard, as shown in Figure 1:
On the dashboard, locate and click the endpoint link for `NetAspire.Arm.Web`. This will take you to the Blazorbased web application. In the Blazor app, navigate to the Weather section to access and display data retrieved from the WeatherForecast API:
40
+
On the dashboard, locate and click the endpoint link for `NetAspire.Arm.Web`. This takes you to the Blazor-based web application. In the Blazor app, navigate to the Weather section to access and display data retrieved from the WeatherForecast API:
41
41
42
-

42
+

43
43
44
-
Return to the dashboard and select the Traces option. This section provides detailed telemetry tracing, allowing you to view the flow of requests, track service dependencies, and analyze performance metrics for your application:
44
+
Now return to the dashboard, and select the **Traces** option. This section provides detailed telemetry tracing, allowing you to view the flow of requests, track service dependencies, and analyze performance metrics for your application:
0 commit comments