wizsolucoes / fn-wiz-template

Wiz DotNet Core Azure Function Template

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Wiz - Azure Function

Desenvolvimento, por onde começar

Passos para execução do projeto:

  1. Abrir Prompt de Comando de sua preferência (CMD ou PowerShell);

  2. Criar pasta para o projeto no local desejado;

  3. Executar os seguintes comandos;

dotnet new -i Wiz.Dotnet.Template.Function --nuget-source https://api.nuget.org/v3/index.json
dotnet new wizfunction -n [NomeProjeto]

  1. Incluir configurações de varíaveis de ambiente no caminho abaixo:

Visual Studio

├── Wiz.[NomeProjeto] (solução)
  ├── Wiz.[NomeProjeto].Function (projeto)
    ├── local.settings.json

Visual Studio Code

├── src (pasta física)
  ├── Wiz.[NomeProjeto].Function (projeto)
    ├── local.settings.json

Dentro do arquivo local.settings.json, há o conteúdo para modificação das variáveis:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "CONNECTION_STRING_STORAGE_AZURE",
    "APPINSIGHTS_INSTRUMENTATIONKEY": "KEY_APPLICATION_INSIGHTS",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet"
  }
}
  1. (Opcional) Inserir chave do Application Insights conforme configurado no Azure.

Caso não há chave de configuração no Azure, não é necessário inserir para executar o projeto local.

Execução do projeto

Visual Studio

  1. Executar projeto Wiz.[NomeProjeto].Function (Tecla F5).

Visual Studio Code

  1. (Recomendado) Instalar extensões para desenvolvimento:
  1. (Recomendado) Instalar extensões para testes:
  1. Executar projeto Wiz.[NomeProjeto].Function (Tecla F5).

  2. Aceitar instalação do pacote Azure Functions Tools para poder realizar debug do projeto;

  3. Selecionar versão .NET Stardand (v2);

A instalação do pacote também poderá ser feita de maneira manual com o seguinte comando:

npm install -g azure-functions-core-tools@2

  1. 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
  1. 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
  • func: host start - Executar function em modo release
  • test - Executar projeto de testes
  • test with coverage - Executar projeto de testes com cobertura

Estrutura

Padrão das camadas do projeto:

  1. Wiz.[NomeProjeto].CrossCutting: camada responsável por conter código que podem ser utilizados de forma transversal (mais de uma camada), não podendo ser isolados em um componente específico sem relação direta com todos os outros. Exemplos de funcionalidades dessa camada: Inversion Of Control (IoC), logging do sistema, segurança entre outros comum a todas camadas;
  2. Wiz.[NomeProjeto].Domain: domínio da aplicação, responsável de manter as regras de negócio para as function(s);
  3. Wiz.[NomeProjeto].Infra: responsável por fornecer capacidade técnicas para suportar as camadas superiores, como por exemplo envio de mensagens para outras aplicações, persistência dos dados da camada de domínio;
  4. Wiz.[NomeProjeto].Function: responsável pela camada de disponibilização das function(s);
  5. Wiz.[NomeProjeto].Tests: responsável pela camada de testes unitários e de integração dos projetos.

Formatação do projeto dentro do repositório:

├── src
  ├── Wiz.[NomeProjeto].CrossCutting (projeto)
  ├── Wiz.[NomeProjeto].Domain (projeto)
  ├── Wiz.[NomeProjeto].Infra (projeto)
  ├── Wiz.[NomeProjeto].Function (projeto)
  ├── Wiz.[NomeProjeto].Tests (projeto)
├── Wiz.[NomeProjeto] (solução)

Dependências

Build e testes

  • Obrigatoriedade de não diminuir os testes de cobertura.

Visual Studio

  1. Comandos para geração de build:
  • Debug: Executar via Test Explorer (adicionar breakpoint)
  • Release: Executar via Test Explorer (não adicionar breakpoint)
  1. Ativar funcionalidade Live Unit Testing para executar testes em tempo de desenvolvimento (execução) do projeto.

  2. 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.

Visual Studio Code

  1. Executar task de teste desejada:
  • test - Executar projeto de testes
  • test with coverage - Executar projeto de testes com cobertura
  1. 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.

Sonar

  1. 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>
  1. O GUID pode ser coletado no arquivo da solution ou criado pelo site: https://www.guidgenerator.com/.

NuGet privado

Visual Studio

  1. Adicionar url do NuGet privado no caminho do menu abaixo:
Tools -> NuGet Package Manager -> Package Sources

Visual Studio Code

  1. Abrir Prompt de Comando de sua preferência (CMD ou PowerShell) ou utilizar o terminal do Visual Studio Code;

  2. Executar script Powershell para adicionar permissão do NuGet na máquina local:

  1. Localizar source (src) do projeto desejado para instalar o NuGet;

  2. 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

CI/CD

README

  • 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 foi utilizado apenas como exemplo. O uso do serviço está disponível no NuGet corporativo.

About

Wiz DotNet Core Azure Function Template

License:MIT License


Languages

Language:C# 99.8%Language:JavaScript 0.2%