Pular para o conteúdo
.NETSolutions e múltiplos projetos
Módulo 01Fundamentos da Plataforma e da Linguagem

Solutions e múltiplos projetos

iniciante 20 min de leitura·Atualizado · .NET 9
Resumo

Uma solution (.sln) agrupa vários projetos relacionados. Projetos referenciam uns aos outros com ProjectReference, permitindo separar camadas (Domínio, Aplicação, API) em bibliotecas distintas.

1. Objetivos de Aprendizagem#

  • Criar uma solution e adicionar projetos a ela.
  • Referenciar um projeto a partir de outro.
  • Entender a relação com a arquitetura em camadas.

2. Pré-requisitos#

  • Saber criar projetos com a CLI (tópico 1.3).

3. Conceito#

Uma aplicação real raramente é um único projeto. Você separa responsabilidades em bibliotecas:

  • Catalog.Domain — entidades e regras de negócio.
  • Catalog.Application — casos de uso.
  • Catalog.Api — a camada web (executável).

A solution (.sln) é apenas um agrupador para a IDE/CLI. O que cria dependência real entre projetos é o ProjectReference. O porquê de separar: isolar responsabilidades, permitir testes independentes e controlar a direção das dependências (a API depende do Domínio, nunca o contrário).

Carregando diagrama…

4. Mão na Massa#

4.1. Setup#

Shell
mkdir Catalog && cd Catalog
dotnet new sln -n Catalog

4.2. Implementação Passo a Passo#

  1. Crie os projetos:
Shell
dotnet new classlib -n Catalog.Domain
dotnet new classlib -n Catalog.Application
dotnet new webapi --use-controllers -n Catalog.Api
  1. Adicione-os à solution:
Shell
dotnet sln add Catalog.Domain Catalog.Application Catalog.Api
  1. Crie as referências (respeitando a direção):
Shell
dotnet add Catalog.Application reference Catalog.Domain
dotnet add Catalog.Api reference Catalog.Application

4.3. Executando#

Shell
dotnet build            # compila toda a solution
dotnet run --project Catalog.Api

5. Exemplo Completo#

Três projetos numa solution, com dependências Api → Application → Domain, formam o esqueleto de uma aplicação em camadas — a mesma base usada no curso de Web API.

6. Boas Práticas e Armadilhas#

FaçaEvite
Manter as dependências apontando para dentro (rumo ao Domínio)Fazer o Domínio referenciar a API (dependência circular)
Um projeto por responsabilidadeColocar tudo num único projeto gigante
Atenção

dotnet run precisa de --project quando a solution tem mais de um projeto executável, senão a CLI não sabe qual iniciar.

7. Segurança e Produção#

  • Separar camadas facilita revisar o que é exposto na fronteira web (a API) sem misturar regras de negócio.

8. Exercícios#

  • Fácil: crie uma solution com dois projetos.
  • Médio: referencie um do outro e use um tipo compartilhado.
  • Desafio: tente criar uma dependência circular e observe o erro do compilador.

9. Resumo#

A solution agrupa projetos; ProjectReference define dependências reais. Separar em camadas (Domain, Application, Api) organiza responsabilidades e mantém as dependências apontando para dentro.

10. Próximos Passos#

A seguir, aprofundar em pacotes NuGet.

11. Referências#

02-02 — Solutions e múltiplos projetos | Curso ASP.NET Core