- .NET 8.0 SDK
- Node JS versão LTS download
- [opcional] SQL Server LocalDb
(localdb)\mssqllocaldb
instruções- Se você já tiver outra versão de SQL Server instalado, então será necessário trocar a connection string que fica no arquivo
appsettings.json
- Se você já tiver outra versão de SQL Server instalado, então será necessário trocar a connection string que fica no arquivo
Assumindo que você já tem tudo instalado no seu computador, e já clonou o repositorio, vou assumir que o diretório onde foi clonado é
C:\projetos\HandlingErrors
- Abra um powershell, e navega até o diretório da aplicação
- Execute um
dotnet restore
- Navegue até o diretório
cd .\src\HandlingErrors.Web\ClientApp\
- Execute
npm install
- Volte 1 diretório
cd ..
- Se você instalou o SQL Server LocalDB
- Execute
dotnet run
- Execute
- Se você não instalou o SQL Server LocalDB
- Execute
dotnet run useInMemory
- Atenção: o banco de dados vai iniciar sempre zerado com essa opção
- Atenção²: com essa opção não vai ser possível testar a regra de 6 meses, uma vez que os dados estão em memória, não tem como simular criar um recado a mais de 6 meses atrás, já com SQL Server poderia ser trocado a data diretamente no banco.
- Execute
- Agora é só abrir o broswer(navegador) e ir até a url http://localhost:5000
Para a execução dos testes e geração do relatório de cobertura você deve executar os seguintes passos:
- Usando um console powershell, navegue até a raiz do projeto
- Execute o seguinte comando
.\build.ps1 -Target Coverage
- Quando o comando terminar, você pode abrir o relatório gerado, para isso execute
.\coverageOutput\index.htm
Para a construção eu escolhi a seguintes tecnologias:
- C# 12.0
- .NET 8.
- AutoMapper
- Entity Framework Core 8.*
- OData 8.*
- xUnit
- SimpleInjector
- FluentValidation
- Mediatr
- Aurelia (Framework frontend para construção de SPAs)
- TypeScript
- Stylus
- Bootstrap 4
- Momentjs
- CakeBuild
- Facilmente plugavel em qualquer servidor de CI(TeamCity/Jenkins/Travis/Azure DevOps/AppVeyor/GitLab Runner/etc)
- Script versionável
- Possibilidade de rodar na máquina do Dev
- Agnóstico a CI server
- Muito fácil de usar