Skip to content

Conversation

Copilot
Copy link
Contributor

@Copilot Copilot AI commented Jul 19, 2025

This PR updates the src/Aspire.Hosting/README.md file to provide developers with a clear and comprehensive overview of Aspire's application model concepts, replacing the generic documentation reference with detailed explanations and a direct link to the full specification.

Changes Made

  • Replaced the generic "Additional documentation" section with a new "Aspire Application Model Overview" section
  • Added comprehensive explanations of key Aspire concepts:
    • Resources as the fundamental units of the app model
    • Annotations for extensible metadata
    • Fluent extension methods for composition
    • Resource graph modeling dependencies as a DAG
    • Deferral and structured values for configuration
    • Standard interfaces for polymorphic behaviors
    • Lifecycle events and resource orchestration
  • Updated documentation link to point directly to the App Model specification
  • Preserved all existing content including package description and feedback/contributing sections

Benefits

This update provides immediate value to developers by:

  • Giving a concise yet comprehensive overview of Aspire's core concepts
  • Helping developers understand the application model without needing to dive into the full specification first
  • Providing a clear path to more detailed information via the linked specification
  • Maintaining the existing guidance about package usage and contribution

The README now serves as an effective entry point for understanding Aspire's application model while directing users to the complete specification for implementation details.

This pull request was created as a result of the following prompt from Copilot chat.

Update the README.md for Aspire.Hosting to include a concise overview capturing the essence of the app model, referencing and linking to the full app model specification in docs/specs/appmodel.md. Replace the generic documentation link with a direct link to the appmodel spec for further details, as described below:

  • Add a section summarizing Aspire's application model concepts: resources, annotations, fluent extension methods, explicit dependency graph, structured/deferred values, standard interfaces, and resource lifecycle/orchestration.
  • Clearly state that for the full specification, users should refer to the linked appmodel.md document.
  • Keep the rest of the README content (usage guidance, feedback, contributing) unchanged.
  • Use this link for the appmodel spec: https://github.com/dotnet/aspire/blob/main/docs/specs/appmodel.md

Implement the update in the src/Aspire.Hosting/README.md file, following the generated content below:

Aspire.Hosting library

Core abstractions for the .NET Aspire application model. It provides the building blocks for the distributed application
hosting model. This package should not be referenced by AppHost projects directly. Instead use the Aspire.Hosting.AppHost
package to add a transitive referencing including custom build targets to support code generation of metadata
types for referenced .NET projects.

Developers wishing to build their own custom resource types and supporting APIs for .NET Aspire should reference
this package directly.

Aspire Application Model Overview

Aspire models distributed applications as a graph of resources—services, infrastructure elements, and supporting components—using strongly-typed, extensible abstractions. Resources are inert data objects that describe capabilities, configuration, and relationships. Developers compose applications using fluent extension methods (like AddProject, AddPostgres, etc.), wire dependencies explicitly, and attach metadata through annotations to drive orchestration, configuration, and deployment.

Key concepts include:

  • Resources: The fundamental unit representing a service or component in the app model.
  • Annotations: Extensible metadata attached to resources to express capabilities and configuration.
  • Fluent extension methods: APIs like AddX, WithReference, and WithEnvironment that guide correct resource composition and wiring.
  • Resource graph: An explicit, developer-authored Directed Acyclic Graph (DAG) that models dependencies and value flows.
  • Deferral and structured values: Configuration and connectivity are expressed using structured references, allowing for deferred evaluation and environment-specific resolution at publish and run time.
  • Standard interfaces: Optional interfaces enable polymorphic behaviors, such as environment wiring and endpoint exposure, for both built-in and custom resources.
  • Lifecycle events and resource states: The Aspire runtime orchestrates resource startup, readiness, health, and shutdown in a predictable, observable way.

Aspire's approach ensures flexibility, strong tooling support, and clear separation between modeling, orchestration, and execution of distributed .NET applications.

For the full details and specification, see the App Model document.

Feedback & contributing

https://github.com/dotnet/aspire

Only change src/Aspire.Hosting/README.md accordingly. Do not modify other files.


💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com>
@Copilot Copilot AI changed the title [WIP] Update Aspire.Hosting README with App Model summary and doc link Update Aspire.Hosting README.md with comprehensive Application Model Overview Jul 19, 2025
@Copilot Copilot AI requested a review from davidfowl July 19, 2025 04:39
Copilot finished work on behalf of davidfowl July 19, 2025 04:39
@davidfowl davidfowl marked this pull request as ready for review July 19, 2025 10:48
@Copilot Copilot AI review requested due to automatic review settings July 19, 2025 10:48
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR significantly enhances the Aspire.Hosting README by replacing a generic documentation link with a comprehensive overview of Aspire's application model concepts, providing developers with immediate value and clear guidance to the detailed specification.

  • Replaces the minimal "Additional documentation" section with a detailed "Aspire Application Model Overview" section
  • Adds comprehensive explanations of seven key Aspire concepts including resources, annotations, fluent APIs, and lifecycle management
  • Updates the documentation reference to link directly to the App Model specification rather than general Microsoft Learn documentation

@davidfowl
Copy link
Member

@mitchdenny can you review

@mitchdenny
Copy link
Member

This reads well.

@davidfowl davidfowl merged commit d621f86 into main Jul 25, 2025
273 of 274 checks passed
@davidfowl davidfowl deleted the copilot/fix-3e914a31-95c6-405d-9ffb-bb1e86f773b8 branch July 25, 2025 18:50
@github-actions github-actions bot locked and limited conversation to collaborators Aug 25, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants