Atividade | Status | Observação |
---|---|---|
Controler - Course | OK | |
Controler - Project | OK | |
./Data | OK | Contexto do banco de dados |
./Model - Project | OK | Modelo da Entidade Project |
./Model - Course | OK | Modelo da Entidade Course |
./Services - Project | --- | CRUD |
./Services - Course | --- | CRUD |
--- | --- | --- |
Controler | Status | Método | Path | Observação |
---|---|---|---|---|
Course | OK | GetAll | URL/cursos | Retorna lista com objetos do tipo 'Course'. |
Course | OK | GetById | URL/cursos/{CourseId} | Recebe um ID de um 'Course'.Retorna um objeto do tipo 'Course'. |
Course | :-: | GetByCourse | URL/cursos/{CourseId}/projects | Recebe um ID de um 'Course'. Retorna uma lista genérica de 'Project'. |
Controler | Status | Método | Path | Observação |
---|---|---|---|---|
Project | OK | GetAll | URL/projetos/ | Retorna lista com objetos do tipo 'Project'. |
Project | OK | GetById | URL/projetos/{ProjectId} | Recebe um ID de um 'Project'.Retorna um objeto do tipo 'Project'. |
Project | :-: | Update | URL/projetos/{ProjectId} | Recebe um objeto do tipo 'Project' e realiza a atualização do mesmo. Retorna um valor booleano. |
Project | :-: | Delete | URL/projetos/{ProjectId} | Recebe um ID de um 'Project' e realizar a remoção do mesmo. Retorna um valor booleano. |
Project | :-: | Create | URL/projetos | Recebe um objeto do tipo Project e realiza a inserção no banco de dados. Retorna o Id do 'Project' inserido. |
Com .Net Core criar template webapi
dotnet new webapi -n Streamer.API
dotnet ef migrations add init
Qual campo que vc adicionou e onde? Quais foram os comandos que precisou rodar para que o banco de dados fosse atualizado?
No MODEL > *.cs - inserir o campo:
public string Name { get; set; }
No CDM rodar os comandos:
dotnet ef migrations add 'qualquer coisa'
dotnet ef database update
dotnet ef database update
Separar responsabilidades que se encontram dentro do projeto "Streamer.API" Dividir a responsabilidades de acordo com o projeto.
- Arquivo de Solução -
- Camada de Domínio (Projeto) - Colocar entidades e relação de regra de negócio.
- Camada de Repositório (Projeto) - Separar a responsabilidade de persistir os dados.
- Camada de API (Projeto) - Onde colocamos os middleware.
Com terminal em:
C:\Users\Micro\Documents\streamer>
dotnet new classlib -n Streamer.Domain
Remover arquivo "Class1.cs"
rm -R Streamer.Domain/Class1.cs
Com terminal em:
C:\Users\Micro\Documents\streamer>
dotnet new classlib -n Streamer.Repository
Remover arquivo "Class1.cs"
rm -R Streamer.Repository/Class1.cs
dotnet new sln -n Streamer
dotnet add Streamer.Repository/Streamer.Repository.csproj reference Streamer.Domain/Streamer.Domain.csproj
dotnet add Streamer.API/Streamer.API.csproj reference Streamer.Domain/Streamer.Domain.csproj
E
dotnet add Streamer.API/Streamer.API.csproj reference Streamer.Repository/Streamer.Repository.csproj
dotnet sln Streamer.sln add Streamer.API/Streamer.API.csproj Streamer.Repository/Streamer.Repository.csproj Streamer.Domain/Streamer.Domain.csproj
Como os projetos estão referenciados na solução (Streamer.sln)
- Streamer.API/Streamer.API.csproj
- Streamer.Repository/Streamer.Repository.csproj
- Streamer.Domain/Streamer.Domain.csproj
Os arquivos/pastas internos bin e obj podem ser excluídos, que ao executar o build (comando abaixo). Vai encontrar tudo o que estiver referenciado na solução e então dará build nesses arquivos.
Terminal em
C:\Users\Micro\Documents\streamer>
dotnet build
Assim é garantido que qualquer pessoa que queira abri esse arquivo, conseguirá, executar sem problema algum.
O diretório/projeto da interface/front end (Streamer-App), não está referenciado em nossa solução dotnet porque ele não é um projeto dotnet, ele é um projeto de interface.
No projeto Streamer.Domain
criamos classes tanto para continuação do curso, como também para definir o projeto da Streamer. Seguem as relações abaixo.
- Evento.cs
- Lote.cs
- Palestrante.cs
- PalestranteEvento.cs
- RedeSocial
- Course.cs
- CourseProject.cs
- Project.cs
No projeto Streamer.Repository
criamos classe StreamerContext com referência para todas as entidades, tanto do curso como para do teste.
E também crianção de método, para que na criação das Entidades de Referência (CourseProject e PalestranteEvento) as "chaves estrangeiras" sejam usadas.
Terminal em: C:\Users\Micro\Documents\streamer\Streamer.Repository> dotnet ef migrations add init
NÃO FUNCIONARÁ, Daí termos que usar: C:\Users\Micro\Documents\streamer\Streamer.Repository> dotnet ef --startup-project ../Streamer.API migrations add init
e também
C:\Users\Micro\Documents\streamer\Streamer.Repository>
dotnet ef --startup-project ../Streamer.API database update
Criação da interface (arquivo) "IStreamerRepository", para implementar a interface dos métodos de chamadas tanto para Evento quanto Palestrante.
Atualizar para as chamadas de acordo com o Solicitado pelo teste.
npm install -g @angular/cli
ng new nomeDoProjeto
-
.Net Core
- Framework para desenvolver em C# o Back End. -
C#
- Linguagem utilizada no Back End. -
DB Browser for SQLite
- Programa para manuseio de banco de dados SQL - Back End. -
Angular
- Framework para desenvolver Front End SPA. -
CLI Angular
- Framework para desenvolver Front End SPA. -
Angular Doc
- Documentação do Framework Angular. -
JavaScript e TypeScript
- Linguagem utilizada no Front End. -
Bootstrap
- Estilos de Aparência Pré Definidos e Customizados para o Front End.