- Desenvolvimento, por onde começar
- Execução do projeto
- Estrutura
- Dependências
- Build e testes
- 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.Gateway
dotnet new wizgateway -n [NomeProjeto]
- Executar comando para configurar aplicação em modo (HTTPS);
dotnet dev-certs https --trust
- Incluir configurações de sistema SSO (Single Sign-On) no caminho abaixo:
├── src (pasta física)
├── Wiz.[NomeProjeto].Gateway (projeto)
├── appsettings.{ENVIRONMENT}.json
Dentro do arquivo appsettings.{ENVIRONMENT}.json, há o conteúdo para modificação das variáveis:
"IdentityServer": {
"ProviderKey": "PROVIDER_KEY",
"Authority": "AUTHORITY",
"ApiName": "API_NAME",
"ApiSecret": "API_SECRET"
}
- (Opcional) Inserir chave do Application Insights conforme configurado no Azure no arquivo appsettings.{ENVIRONMENT}.json.
"ApplicationInsights": {
"InstrumentationKey": "KEY_APPLICATION_INSIGHTS"
}
Caso não há chave de configuração no Azure, não é necessário inserir para executar o projeto local.
├── Dockerfile
Dentro do arquivo Dockerfile, há o conteúdo para modificação das variáveis:
ENV ApplicationInsights:InstrumentationKey=KEY_APPLICATION_INSIGHTS
ENV IdentityServer:ProviderKey=PROVIDER_KEY
ENV IdentityServer:Authority=AUTHORITY
ENV IdentityServer:ApiName=API_NAME
ENV IdentityServer:ApiSecret=API_SECRET
- Executar projeto via Kestrel;
Executar o projeto via Kestrel facilita a troca de ambientes (environments) e a verificação de logs em execução da aplicação em projetos .NET Core. Os ambientes podem ser configurados dentro das propriedades do projeto, conforme caminho abaixo:
├── src (pasta física)
├── Wiz.[NomeProjeto].Gateway (projeto)
├── Properties (pasta física)
├── launchSettings.json
Dentro do arquivo launchSettings.json, há o conteúdo que indica a configuração de ambiente via Kestrel:
"Wiz.[NomeProjeto].Gateway": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "https://localhost:5001;http://localhost:5000"
}
- (Recomendado) Instalar extensões para desenvolvimento:
- ASP.NET core VS Code Extension Pack
- Azure Functions
- GitLens — Git supercharged
- NuGet Package Manager
- vscode-icons
- (Recomendado) Instalar extensões para testes:
- Executar projeto via Kestrel (Tecla F5);
Por padrão, todo projeto executado no Visual Studio Code é executado via Kestrel (Tecla F5). Os ambientes podem ser configurados dentro das propriedades do projeto, conforme caminho abaixo:
├── .vscode (pasta física)
├── launch.json
- Utilizar a função task para executar ações dentro do projeto. A função está presente no caminho do menu abaixo:
Terminal -> Run Task
- Selecionar a função task a ser executada no projeto:
- clean - Limpar solução
- restore - Restaurar pacotes da solução
- build - Compilar pacotes da solução
- Executar comando na raiz do projeto:
docker-compose up -d
- logs de execução:
docker-compose logs
- Parar e remover container:
docker-compose down
Padrão das camadas do projeto:
- Wiz.[NomeProjeto].Gateway: responsável pela camada de disponibilização dos endpoints e autenticação dos microsserviços.
Formatação do projeto dentro do repositório:
├── src
├── Wiz.[NomeProjeto].Gateway (projeto)
├── Wiz.[NomeProjeto] (solução)
Não há obrigatoriedade de realização de testes unitários ou de integração. Todos os testes são executados pelos microsserviços disponibilizados.
- Dentro do arquivo dos projetos (.csproj) no campo PropertyGroup, é necessário adicionar um GUID no formato abaixo:
<PropertyGroup>
<ProjectGuid>{b5c970c2-a7cc-4052-b07b-b599b83fc621}</ProjectGuid>
</PropertyGroup>
- O GUID pode ser coletado no arquivo da solution ou criado pelo site: https://www.guidgenerator.com/.
- Arquivo de configuração padrão: azure-pipelines.yml.
- Caso há necessidade de incluir mais tasks ao pipeline, verfique a documentação para inclusão: Azure DevOps - Yaml Schema.
- Incluir documentação padrão no arquivo README.md.