StackSpot.Template.Worker
1.0.4
dotnet add package StackSpot.Template.Worker --version 1.0.4
NuGet\Install-Package StackSpot.Template.Worker -Version 1.0.4
<PackageReference Include="StackSpot.Template.Worker" Version="1.0.4" />
paket add StackSpot.Template.Worker --version 1.0.4
#r "nuget: StackSpot.Template.Worker, 1.0.4"
// Install StackSpot.Template.Worker as a Cake Addin #addin nuget:?package=StackSpot.Template.Worker&version=1.0.4 // Install StackSpot.Template.Worker as a Cake Tool #tool nuget:?package=StackSpot.Template.Worker&version=1.0.4
StackSpot Template Worker
Componente projetado para auxiliar no desenvolvimento de serviços que são executados em background, seguindo os princípios da Clean Architecture.
Para saber mais sobre templates, acesse a documentação da microsoft.
Instalação
Para realizar a instalação do Scaffold em .NET, execute comando abaixo:
- net6.0
dotnet new -i StackSpot.Template.Worker::*
- net5.0
dotnet new -i StackSpot.Template.Worker.5.0::*
Caso a instalação do Scaffold tenha sido realizada com sucesso, será listado o template na lista de tipos de projetos, que podem ser criados no terminal.
Também é possível listar os templates existentes através do comando abaixo:
dotnet new
Uso
Para criar um projeto, acesse o diretório no qual deseja criar o projeto e execute o comando a seguir:
- net6.0
dotnet new stackspot.worker -n Example -p example-worker -o .
- net5.0
dotnet new stackspot.worker.net5 -n Example -p example-worker -o .
Nota: Lembre-se de alterar o nome do projeto e o repositório para serem aderentes ao domínio de seu serviço.
Alguns parâmetros desse comando são:
- Nome da solução: -n
- Nome do repositório git: -p
- Criar o projeto no diretório atual: -o .
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 Example.Worker.sln
Realize também o build do projeto, através do comando abaixo:
dotnet build Example.Worker.sln
Realize a execução dos testes unitários e de integração, através do comando abaixo:
dotnet test Example.Worker.sln
Para testar a aplicação, ainda no diretório, execute o seguinte comando:
dotnet run --project ./src/Example.Worker/Example.Worker.csproj
Em seguida, abra http://localhost:5000/health no seu navegador.
Dica: Neste caso, a estrutura com exemplo foi criada automaticamente.
Desenvolvimento
Se durante o desenvolvimento do template for necessário instalar a partir do source, basta executar o comando abaixo na raiz do projeto:
- net6.0
dotnet new -i templates/Template6
- net5.0
dotnet new -i templates/Template5
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/health no seu navegador.
Visão Geral
Camada de Domain
Contem todas as entidades, enumerações, exceções, interfaces, tipos e lógicas específicas da camada de domínio.
Camada de Application
Essa camada contém toda a lógica do worker. É 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.
Camada de 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.
Camada de Worker
Essa camada é um serviço background em .net 5/6. 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(net5.0) Program.cs(net6.0) deve fazer referência à infraestrutura.
Componentes Utilizados
Referências
Learn more about Target Frameworks and .NET Standard.
-
net6.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.