Este projeto é uma aplicação CRUD (Create, Read, Update, Delete) completa com um frontend em Angular 5 e um backend em ASP.NET Core 8.0 utilizando MySQL seguindo padrões de design como Repository Pattern e Service Layer.
A aplicação foi construida para separar responsabilidades, facilitando a manutenção e testes:
- Controller: Apenas gerencia as rotas e respostas HTTP.
- Service Layer: Centraliza a lógica de negócio.
- Repository Pattern: Isola o acesso a dados (EF Core) da lógica de negócio.
- Dependency Injection: Acoplamento fraco entre as camadas.
- Framework: .NET 8.0
- ORM: Entity Framework Core 7.0.7
- Database: MySQL (Pomelo.EntityFrameworkCore.MySql 7.0.0)
- API: Web API com Controllers e Swagger para documentação.
- CORS: Configurado para aceitar requisições de
http://localhost:4200.
- Framework: Angular 5.2.0
- CLI: Angular CLI 1.6.6
- Styling: Bootstrap 4.6.2
- Scripts: jQuery e Popper.js (dependências do Bootstrap 4).
- .NET SDK 8.0
- Node.js (compatível com Angular 5 - recomendado v8.x ou v10.x)
- MySQL Server
- Certifique-se de que o MySQL está rodando.
- Verifique a string de conexão em
appsettings.json. - Execute as migrações para criar o banco de dados:
dotnet ef database update
- Inicie o servidor:
A API estará disponível em
dotnet run
http://localhost:5227ou similar (verifique o console). O Swagger pode ser acessado em/swagger.
- Instale as dependências:
npm install
- Inicie o servidor de desenvolvimento:
O app estará disponível em
npm start
http://localhost:4200.
apiDotNet/CrudComAngular/: Código fonte do backend .NET 8.Controllers/: Endpoints enxutos (Lean Controllers).Services/: Camada de lógica de negócio e regras.Interfaces/: Contratos para Repositórios e Serviços.Repositories/: Implementação do acesso a dados.Data/: Contexto do EF Core (AppDbContext).Models/: Entidades do banco de dados (utilizando C# required members).
angular-simple-crud/: Código fonte do frontend Angular 5.src/app/models/: Modelos TypeScript.src/app/services/: Serviços para comunicação com a API.src/app/: Componentes da aplicação.
Este projeto está sob a licença MIT. sendo para fins de estudo e prática. Sinta-se à vontade para usar como referência!
Desenvolvido por David Tavares 🚀