Contoh Arsitektur ASP .NET
DDD Desain Berbasis Domain Pola
01 - Presentasi
Lapisan antarmuka pengguna
API Dasar:
- Kontroler "Sample" digunakan untuk DI & sampel kelas CacheManager.
- Pengontrol "SampleAlt" digunakan untuk mendemonstrasikan penggunaan "layanan" > "repositori" > "UoW" > "EF"
02 - Domain
Lapisan manajemen data
Gunakan konsepsi "modul": layanan berinteraksi dengan implementasinya (Modul: agregat/layanan [DDD])
DTO : Objek Transfer Data (contoh: MyApp.Domain.DTO.SampleDataDTO).
Pola Spesifikasi (segera).
"Select Builder": Berkat LINQ Anda dapat membuat ekspresi khusus untuk mengembalikan DTO secara langsung (contoh: MyApp.Domain.SampleModule.Aggregates.SampleDataSelectBuilder).
03 - Data
Lapisan akses data
- Gunakan EntityFramework (EF) dengan DbSet/Annotations untuk menautkan SQL/Tabel ke kelas/objek (contoh: MyApp.Domain.SampleModule.Aggregates.SampleData).
- Pola Unit Kerja (UnitOfWork / UoW) menambahkan transaksi untuk penyelesaian masalah konkurensi (MyApp.Data.UnitOfWorkContext).
- Pola Repositori menambahkan lapisan antara DbSet (mengembalikan IQueryable) dengan UoW dan data yang digunakan dalam lapisan "Domain". Manipulasi yang dapat dikueri masuk akal, Repositori mengembalikan Enumerable atau Entitas. (Aplikasi Saya.Data.Core.Repositori && Aplikasi Saya.Domain.Core.IRepositori)
04 - Infrastruktur
Lapisan manajemen aplikasi
- CrossCutting : suatu lapisan dapat digunakan pada semua lapisan lainnya.
- Pembalikan Kontrol.
- Injeksi Ketergantungan (DI) & LifeTimeManager.