Tutorial: Adicionar .NET Aspire a um aplicativo .NET existente
Se tiver microsserviços e .NET aplicação web existentes, poderá adicionar .NET Aspire e obter todos os recursos e benefícios incluídos. Neste artigo, você adiciona .NET Aspire orquestração a um projeto simples e preexistente do .NET 9. Você aprende a:
- Entenda a estrutura do aplicativo de microsserviços existente.
- Registe os projetos existentes na orquestração .NET.NET Aspire.
- Entenda as mudanças que a inscrição faz nos projetos.
- Inicie o projeto .NET.NET Aspire.
Pré-requisitos
Para trabalhar com .NET.NET Aspire, você precisa do seguinte instalado localmente:
- .NET 8,0 ou .NET 9,0
- Um ambiente de execução de contenedor compatível com OCI, como:
- Docker Desktop ou Podman. Para obter mais informações, consulte Container runtime.
- Um ambiente de desenvolvedor integrado (IDE) ou editor de código, como:
- Visual Studio 2022 versão 17.9 ou superior (opcional)
-
Visual Studio Code (Opcional)
- C# Dev Kit: Extensão (Opcional)
- JetBrains Rider com .NET.NET Aspire plugin (Opcional)
Para obter mais informações, consulte a configuração e ferramentas de .NET.NET Aspire, e o SDK de .NET.NET Aspire.
Começar
Vamos começar obtendo o código para a solução:
Abra um prompt de comando e altere os diretórios para onde você deseja armazenar o código.
Para clonar a solução de exemplo .NET 9, use o seguinte comando:
git clone
git clone https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative-devops.git eShopLite
Explore o aplicativo de exemplo
Este artigo usa uma solução .NET 9 com três projetos:
-
Data Entities: Este projeto é uma biblioteca de classes de exemplo. Ele define a classe
Product
usada no aplicativo Web e na API Web. - Products: Este exemplo de API Web retorna uma lista de produtos no catálogo e suas propriedades.
- Store: Este exemplo Blazor Web App exibe o catálogo de produtos para os visitantes do site.
Abra e comece a depurar o projeto para examinar seu comportamento padrão:
Inicie Visual Studio e, em seguida, selecione Arquivo>Abrir>Projeto/Solução.
Navegue até a pasta de nível superior da solução que você clonou, selecione eShopLite.slne, em seguida, selecione Abrir.
No Explorador de Soluções, clique com o botão direito na solução eShopLite e selecione Configurar Projetos de Inicialização.
Selecione Vários projetos de inicialização.
Na coluna de Ação , selecione Iniciar para os projetos Produtos e Loja.
Selecione OK.
Para começar a depurar a solução, pressione F5 ou selecione Iniciar.
Duas páginas são abertas no navegador:
- Numa página são exibidos produtos através de um chamado à API Web de Produtos no formato JSON.
- Uma página exibe a página inicial do site. No menu à esquerda, selecione Produtos para ver o catálogo obtido da API da Web.
Para parar a depuração, feche o navegador.
Inicie Visual Studio Code e abra a pasta que você clonou. No terminal onde você clonou o repo, execute o seguinte comando:
code .
Selecione o item de menu Executar e Depurar ou pressione Ctrl+Shift+D.
Selecione o criar um lançamento.json arquivo link.
Copie e cole o seguinte JSON neste ficheiro e guarde:
{ "version": "0.2.0", "compounds": [ { "name": "Run all", "configurations": [ "Run products", "Run store", ] } ], "configurations": [ { "name": "Run products", "type": "dotnet", "request": "launch", "projectPath": "${workspaceFolder}/Products/Products.csproj" }, { "name": "Run store", "type": "dotnet", "request": "launch", "projectPath": "${workspaceFolder}/Store/Store.csproj" } ] }
Para começar a depurar a solução, pressione F5 ou selecione Iniciar.
Duas páginas são abertas no navegador:
- Numa página são exibidos produtos através de um chamado à API Web de Produtos no formato JSON.
- Uma página exibe a página inicial do site. No menu à esquerda, selecione Produtos para ver o catálogo obtido da API da Web.
Para interromper a depuração, feche o navegador e selecione o botão Parar duas vezes (uma para cada instância de depuração em execução).
Abra uma janela do terminal e altere os diretórios para o repositório recém-clonado.
Para iniciar a aplicação Produtos, execute o seguinte comando:
dotnet run --project ./Products/Products.csproj
Abre-se uma página do navegador, exibindo o JSON dos produtos.
Em uma janela de terminal separada, altere novamente os diretórios para o repositório clonado.
Inicie o aplicativo da
Store executando o seguinte comando: dotnet run --project ./Store/Store.csproj
O navegador abre uma página que exibe a página inicial do site. No menu à esquerda, selecione Produtos para ver o catálogo obtido da API da Web.
Para parar a depuração, feche o navegador e pressione Ctrl+C em ambos os terminais.
Adicionar .NET.NET Aspire à aplicação web da loja
Agora, vamos inscrever o projeto da
No Visual Studio, no Explorador de Soluções, clique com o botão direito do rato no projeto Store, selecione Adicionare, em seguida, selecione Suporte do.NET.NET Aspire Orchestrator.
Na caixa de diálogo Adicionar Suporte ao .NET.NET Aspire Orchestrator , selecione OK.
Agora você deve ter dois novos projetos, ambos adicionados à solução:
- eShopLite.AppHost: Um projeto orchestrator projetado para conectar e configurar os diferentes projetos e serviços do seu aplicativo. O orquestrador está definido como o projeto Startup, e depende do projeto eShopLite.Store.
- pt-PT: eShopLite.ServiceDefaults: um projeto partilhado .NET.NET Aspire para gerir configurações que são reutilizadas em diversos projetos da sua solução, relacionadas com a resiliência , a descoberta de serviço e a telemetria .
No projeto eShopLite.AppHost, abra o ficheiro Program.cs. Note esta linha de código, que regista o projeto Store na orquestração .NET.NET Aspire.
builder.AddProject<Projects.Store>("store");
Para obter mais informações, consulte AddProject.
Para adicionar o projeto Products a .NET.NET Aspire:
No Visual Studio, no Explorador de Soluções, clique com o botão direito do rato no projeto Produtos, selecione Adicionare, em seguida, selecione .NETSuporte ao Orchestrator.NET Aspire.
Uma caixa de diálogo indicando que o projeto do Orchestrator .NET.NET Aspire já existe, selecione OK.
No projeto eShopLite.AppHost, abra o ficheiro Program.cs. Observe esta linha de código, que registra o projeto Products na orquestração .NET.NET Aspire:
builder.AddProject<Projects.Products>("products");
Observe também que o projeto eShopLite.AppHost agora depende dos projetos Store e Products.
Criar um projeto de host de aplicativo
Para orquestrar os projetos existentes, deves criar um novo projeto anfitrião de aplicativo. Para criar um novo host de aplicativo de projeto a partir dos modelos de .NET Aspire disponíveis, use o seguinte comando .NET CLI:
dotnet new aspire-apphost -o eShopLite.AppHost
Adicione o host de aplicativo projeto à solução existente:
Adicione o projeto Store como uma referência de projeto ao projeto de aplicação host , utilizando o seguinte comando .NET da CLI:
Criar um projeto de pré-definições de serviço
Depois de o projeto de host da aplicação ser criado, precisa criar um novo projeto de padrões de serviço . Para criar um novo projeto padrão de serviço a partir dos modelos disponíveis de .NET Aspire, use o seguinte comando .NET CLI:
dotnet new aspire-servicedefaults -o eShopLite.ServiceDefaults
Para adicionar o projeto à solução, use o seguinte comando .NET CLI:
dotnet sln ./eShopLite.sln add ./eShopLite.ServiceDefaults/eShopLite.ServiceDefaults.csproj
Atualize o projeto host da aplicação para adicionar uma referência ao projeto Produtos.
dotnet add ./eShopLite.AppHost/eShopLite.AppHost.csproj reference ./Products/Products.csproj
Tanto o projeto Store quanto o projeto Products precisam referenciar o projeto de padrões de serviço para que possam incluir facilmente a descoberta de serviço . Para adicionar uma referência ao projeto padrões de serviço no projeto Store, use o seguinte comando .NET CLI:
dotnet add ./Store/Store.csproj reference ./eShopLite.ServiceDefaults/eShopLite.ServiceDefaults.csproj
O mesmo comando com caminhos ligeiramente diferentes deve ser usado para adicionar uma referência aos padrões de serviço
dotnet add ./Products/Products.csproj reference ./eShopLite.ServiceDefaults/eShopLite.ServiceDefaults.csproj
Nos projetos Store e Products, atualize os seus arquivos Program.cs, adicionando a seguinte linha imediatamente após a linha var builder = WebApplication.CreateBuilder(args);
:
builder.AddServiceDefaults();
Atualizar o projeto de host do aplicativo
Abra o ficheiro Program.cs do projeto do anfitrião da aplicação e substitua o seu conteúdo pelo seguinte código C#:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddProject<Projects.Store>("store");
builder.AddProject<Projects.Products>("products");
builder.Build().Run();
O código anterior:
- Cria uma nova instância
DistributedApplicationBuilder
. - Adiciona o projeto Store ao orquestrador.
- Adiciona o projeto Products ao orquestrador.
- Constrói e executa o orquestrador.
Descoberta de serviços
Neste ponto, ambos os projetos fazem parte de
var builder = DistributedApplication.CreateBuilder(args);
var products = builder.AddProject<Projects.Products>("products");
builder.AddProject<Projects.Store>("store")
.WithExternalHttpEndpoints()
.WithReference(products);
builder.Build().Run();
O código anterior expressa que o projeto Store depende do projeto Products. Para obter mais informações, consulte .NET.NET Aspire host de aplicativo: recursos de referência. Esta referência é usada para descobrir o endereço do projeto Produtos. Além disso, o projeto Store está configurado para usar pontos de extremidade HTTP externos. Se, mais tarde, optar por implementar esta aplicação, necessitará da chamada para WithExternalHttpEndpoints para garantir que é pública para o mundo exterior.
Em seguida, atualize o
{
"DetailedErrors": true,
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"ProductEndpoint": "http://products",
"ProductEndpointHttps": "https://products"
}
Os endereços de ambos os pontos de extremidade agora usam o nome "produtos", que foi adicionado ao orquestrador no aplicativo hospedeiro ,. Esses nomes são usados para descobrir o endereço do Products projeto.
Explore o aplicativo inscrito
Vamos começar a solução e examinar o novo comportamento que .NET.NET Aspire fornece.
Observação
Observe que o projeto eShopLite.AppHost é o novo projeto de inicialização.
- No Visual Studio, para iniciar a depuração, pressione F5Visual Studio cria os projetos.
- Se a caixa de diálogo Iniciar Docker Área de Trabalho aparecer, selecione Sim. Visual Studio inicia o motor de Docker e cria os contentores necessários. Quando a implantação estiver concluída, o painel .NET.NET Aspire será exibido.
- No painel, selecione o ponto de extremidade para os produtos do projeto. Uma nova separador do navegador é aberta e apresenta o catálogo de produtos no formato JSON.
- No painel, selecione o ponto de extremidade para a loja do projeto . Um novo separador do navegador é exibido e exibe a página inicial da aplicação web.
- No menu à esquerda, selecione Produtos. O catálogo de produtos é exibido.
- Para parar a depuração, feche o navegador.
Exclua o lançamento . Elimine o ficheirojson que criou anteriormente; já não serve para nada. Em vez disso, inicie o projeto de aplicação host, que orquestra os outros projetos:
Inicie o projeto de aplicação host clicando com o botão direito do rato sobre o projeto eShopLite.AppHost no Gerenciador de Soluções e selecionando Debug>Iniciar Nova Instância:
Observação
Se Docker Desktop (ou Podman) não estiver em execução, ocorrerá um erro. Inicie o motor de contentor compatível com OCI e tente novamente.
Inicie o projeto da aplicação anfitriã executando o seguinte comando:
dotnet run --project ./eShopLite.AppHost/eShopLite.AppHost.csproj
Observação
Se Docker Desktop (ou Podman) não estiver em execução, ocorrerá um erro. Inicie o motor de contentor compatível com OCI e tente novamente.
- No painel, selecione o ponto de extremidade para os produtos do projeto. Uma nova separador do navegador é aberta e apresenta o catálogo de produtos no formato JSON.
- No painel, selecione o ponto de extremidade para a loja do projeto . Um novo separador do navegador é exibido e exibe a página inicial da aplicação web.
- No menu à esquerda, selecione Produtos. O catálogo de produtos é exibido.
- Para parar a depuração, feche o navegador.
Parabéns, adicionaste a orquestração .NET.NET Aspire à tua aplicação web pré-existente. Agora você pode adicionar integrações .NET Aspire e usar as ferramentas .NET Aspire para simplificar o desenvolvimento de seu aplicativo Web nativo da nuvem.