onofrej / VerticalSlice

This project has intent to show how to use vertical slice architecture with ASP.Net Core

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

VerticalSlice.Api

Este projeto foi gerado automaticamente pela StackSpot.

Execução do projeto criado

Após criar o projeto, acesse o diretório em que foi criado e execute o seguinte comando:

dotnet restore VerticalSlice.Api.sln

Realize também o build do projeto, através do comando abaixo:

dotnet build VerticalSlice.Api.sln

Realize a execução dos testes unitários e de integração, através do comando abaixo:

dotnet test VerticalSlice.Api.sln

Para testar a aplicação, ainda no diretório, execute o seguinte comando:

dotnet run --project ./src/VerticalSlice.Api/VerticalSlice.Api.csproj

Em seguida, abra http://localhost:5000 no seu navegador.

Configuração do Docker

Para que o Docker funcione, você precisará adicionar um certificado SSL temporário e montar um volume para manter esse certificado. Você pode encontrar no Microsoft Docs que descrevem as etapas necessárias para Windows, macOS e Linux.

Para Windows: O seguinte precisará ser executado a partir do seu terminal para criar um certificado:

dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p Your_password123
dotnet dev-certs https --trust

NOTA: Ao usar o PowerShell, substitua %USERPROFILE% por $env:USERPROFILE.

PARA macOS:

dotnet dev-certs https -ep ${HOME}/.aspnet/https/aspnetapp.pfx -p Your_password123
dotnet dev-certs https --trust

PARA Linux:

dotnet dev-certs https -ep ${HOME}/.aspnet/https/aspnetapp.pfx -p Your_password123
dotnet dev-certs https --trust

Para construir e executar os containers docker, execute o comando abaixo na raiz da solução onde você encontra o arquivo docker-compose.yml

docker-compose -f 'docker-compose.yml' up --build

. Você também pode usar "Docker Compose" do Visual Studio para fins de debug. Em seguida, abra http://localhost:5000 no seu navegador.

Visão Geral

VerticalSlice.Domain

Contem todas as entidades, enumerações, exceções, interfaces, tipos e lógicas específicas da camada de domínio.

VerticalSlice.Application

Essa camada contém toda a lógica da api. É dependente da camada de domínio, mas não tem dependências de nenhuma outra camada ou projeto. Essa camada define interfaces que são implementadas por camadas externas. Por exemplo, se o aplicativo precisar acessar um serviço de notificação, uma nova interface será adicionada ao aplicativo e uma implementação será criada na infraestrutura.

VerticalSlice.Infrastructure

Essa camada contém classes para acessar recursos externos, como sistemas de arquivos, serviços da Web, smtp e assim por diante. Essas classes devem ser baseadas em interfaces definidas na camada de aplicação.

VerticalSlice.Api

Essa camada é um aplicativo de ASP.NET Core 5. Essa camada depende das camadas Aplicativo e Infraestrutura, no entanto, a dependência da infraestrutura é apenas para dar suporte à injeção de dependência. Portanto, apenas Startup.cs deve fazer referência à infraestrutura.

About

This project has intent to show how to use vertical slice architecture with ASP.Net Core

License:MIT License


Languages

Language:C# 98.1%Language:Dockerfile 1.2%Language:TSQL 0.7%