Kişisel gelişim ve portfolyo amacıyla geliştirilmiş bir ASP.NET Core projesidir. Hedef; Clean Architecture, CQRS, Domain-Driven Design yaklaşımlarını ve modern .NET ekosistemindeki araçları (Entity Framework Core, PostgreSQL, Redis, RabbitMQ, Docker) öğrenmek ve somut bir kod tabanında uygulamaktır.
Bu repository REST API katmanını içerir; kullanıcı arayüzü bu repoda yer almaz.
Teknik ve eğitim notları için bkz. EcommerceApp_Docs/README.md.
- Katmanlı mimari: Domain merkezli, bağımlılıklar içe doğru
- CQRS + MediatR: Komut ve sorguların ayrılması, ince controller yapısı
- PostgreSQL + EF Core: İlişkisel veri ve code-first migrasyonlar
- Redis: Dağıtılmış önbellek örneği (
IDistributedCache) - RabbitMQ + MassTransit: Integration event yayını ve consumer
- JWT + ASP.NET Identity: Kimlik doğrulama altyapısı
- Docker Compose: Geliştirme ortamı için bağımlı servisler
- xUnit + CI: Birim testler ve GitHub Actions ile sürekli doğrulama
İstek akışı üst düzeyde şöyledir:
Web API → Application (use cases, CQRS, doğrulama) → Infrastructure (EF Core, cache, mesajlaşma) → Domain (kurallar ve modeller)
flowchart TB
Web[ECommerceApp.Web]
App[ECommerceApp.Application]
Inf[ECommerceApp.Infrastructure]
Core[ECommerceApp.Core Domain]
Web --> App
App --> Inf
App --> Core
Inf --> Core
Arayüz React ile ayrı bir projede geliştirilmektedir.
👉 Frontend Projesi - GitHub Linki Eklenecek
| Project | Responsibility |
|---|---|
ECommerceApp.Core |
Domain entities, interfaces, domain events |
ECommerceApp.Application |
Commands, queries, handlers, DTOs, validation |
ECommerceApp.Infrastructure |
EF Core, repositories, external integrations |
ECommerceApp.Web |
REST API, middleware, Swagger |
ECommerceApp.Tests |
Unit tests |
- Start infrastructure services (database, cache, message broker, etc.):
docker compose up -d- Run the API:
dotnet run --project ECommerceApp.Web- Open Swagger (Development):
Navigate to
/swaggeron the HTTPS URL shown in the console (e.g.https://localhost:5xxx/swagger).
dotnet test -c ReleasePull requests and pushes run build and test via GitHub Actions (.github/workflows/ci.yml).
Specify your license here when publishing the repository.