- Desenvolvimento, por onde começar
- Execução do projeto
- Estrutura
- Dependências
- Build e testes
- NuGet privado
- CI/CD
- README
Passos para execução do projeto:
-
Abrir Prompt de Comando de sua preferência (CMD ou PowerShell);
-
Criar pasta para o projeto no local desejado;
-
Executar os seguintes comandos;
dotnet new -i Wiz.Dotnet.Template.API --nuget-source https://api.nuget.org/v3/index.json
dotnet new wizapi -n [NomeProjeto]
- Executar comando para configurar aplicação em modo (HTTPS);
dotnet dev-certs https --trust
- Incluir configurações de varíaveis de ambiente no caminho abaixo:
├── src (pasta física)
├── Wiz.[NomeProjeto].API (projeto)
├── appsettings.{ENVIRONMENT}.json
Dentro do arquivo local.settings.json, há o conteúdo para modificação das variáveis:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Information"
}
},
"ApplicationInsights": {
"ConnectionString": "<appinsights-connection-string>"
},
"AppConfiguration": {
"Prefix": "WizTemplate:*",
"Sentinel": "WizTemplate:Sentinel",
"CacheExpirationFromMinutes": 15
},
"ConnectionStrings": {
"AppConfig": "<app-configuration-connection-string>",
"Database": "<data-base-connection-string>",
"Redis": "<redis-connection-string>"
},
"SwaggerSettings": {
"Name": "latest",
"Title": "WizTemplate API",
"Description": "WizTemplate API",
"Version": "latest"
},
"WizID": {
"Authority": "<valor>",
"Issues": "<valor>",
"Audience": "<valor>",
"Audiences": "<valor>"
},
"WProApi": {
"BaseAddress": "<valor>"
}
}
- Inserir chave do Application Insights conforme configurado no Azure no arquivo appsettings.{ENVIRONMENT}.json.
├── Dockerfile
Para utilizar o Nuget privado (Wiz Common) é necessário realizar autenticação no Azure DevOps via PAT (Personal Access Tokens).
Para gerar o token é necessário seguir os seguintes passos:
-
Entrar em configurações de token do Azure DevOps
-
Clicar na opção New Token
-
Inserir um nome desejado do token
-
Inserir a data de inspiração desejada (recomendado 90 dias)
-
Em Scopes selecionar em Packaging a opção Read & write
Padrão das camadas do projeto:
- Wiz.[NomeProjeto].Domain: domínio da aplicação, responsável de manter as regras de negócio para a API;
- Wiz.[NomeProjeto].Infra: camada mais baixa, para acesso a dados, infraestrutura e serviços externos;
- Wiz.[NomeProjeto].Application: camada mais baixa, para acesso a dados, aplicação e manipulação de fluxos;
- Wiz.[NomeProjeto].API: responsável pela camada de disponibilização dos endpoints da API;
Formatação do projeto dentro do repositório:
├── src
├── Wiz.[NomeProjeto].Domain (projeto)
├── Wiz.[NomeProjeto].Infra (projeto)
├── Wiz.[NomeProjeto].Application (projeto)
├── Wiz.[NomeProjeto].API (projeto)
├── test
├── Wiz.[NomeProjeto] (solução)
- Comandos para geração de build:
- Debug: Executar via Test Explorer (adicionar breakpoint)
- Release: Executar via Test Explorer (não adicionar breakpoint)
-
Ativar funcionalidade Live Unit Testing para executar testes em tempo de desenvolvimento (execução) do projeto.
-
Ativar funcionalidade Code Coverage para cobertura de testes.
As funcionalidades Live Unit Testing e Code Coverage estão disponíveis apenas na versão Enterprise do Visual Studio.
-
Instalar o pacote DevZ - Back-end Pack
-
Executar task (ctrl + shift + p) e digite Run Test Task:
- test - Executar projeto de testes
- test with coverage - Executar projeto de testes com cobertura
-
Ativar Watch na parte inferior do Visual Studio Code para habilitar cores nas classes que descrevem a cobertura. É necessário executar os testes no modo test with coverage.
-
O relatório dos testes são gerados automaticamente na pasta code_coverage localizada na pasta test sempre que for executado o comando a task test with coverage.
- Adicionar url do NuGet privado no caminho do menu abaixo:
Tools -> NuGet Package Manager -> Package Sources
-
Abrir Prompt de Comando de sua preferência (CMD ou PowerShell) ou utilizar o terminal do Visual Studio Code;
-
Executar script Powershell para adicionar permissão do NuGet na máquina local:
- https://github.com/microsoft/artifacts-credprovider/blob/master/helpers/installcredprovider.ps1 (Windows);
- https://github.com/microsoft/artifacts-credprovider/blob/master/helpers/installcredprovider.sh (Linux/Mac)
-
Localizar source (src) do projeto desejado para instalar o NuGet;
-
Executar comando para instalar NuGet privado e seguir instruções;
*dotnet add package [NomePacote] -s https://pkgs.dev.azure.com/[NomeOrganizacao]/_packaging/[NomeProjeto]/nuget/v3/index.json --interactive
- Arquivo de configuração padrão: azure-pipelines.yml.
- Incluir documentação padrão no arquivo README.md.
- Após inclusão da documentação padrão, excluir este arquivo e TODAS as classes indentificadas como exemplo.
- O serviço para busca de endereço Via CEP assim como o contexto de Customer foi utilizado apenas como exemplo. O uso do serviço Via CEP está disponível no NuGet corporativo.