Pada artikel ini, kita akan membahas cara kerja pola CQRS dan MediatR serta implementasi langkah demi langkah menggunakan .NET Core 6 Web API.
Agenda
- Pengenalan Pola CQRS
- Kapan menggunakan CQRS
- MediatR
- Implementasi Langkah demi Langkah
Prasyarat
- Visual Studio 2022
- SQLServer
- .NET Inti 6
Pengenalan Pola CQRS
- CQRS adalah singkatan dari Command and Query Responsibility Segregation dan digunakan untuk memisahkan baca (kueri) dan tulis (perintah).
- Di dalamnya, kueri melakukan operasi baca, dan perintah melakukan operasi tulis seperti membuat, memperbarui, menghapus, dan mengembalikan data.
- Seperti yang kita ketahui, dalam aplikasi kita kebanyakan menggunakan model data tunggal untuk membaca dan menulis data, yang akan berfungsi dengan baik dan melakukan operasi CRUD dengan mudah. Namun, ketika aplikasi menjadi sangat luas, kueri kami mengembalikan tipe data yang berbeda sebagai objek sehingga menjadi sulit untuk dikelola dengan objek DTO yang berbeda. Selain itu, model yang sama digunakan untuk melakukan operasi tulis. Akibatnya model menjadi rumit.
- Selain itu, ketika kita menggunakan model yang sama untuk operasi baca dan tulis, keamanan juga sulit dikelola ketika aplikasi berukuran besar dan entitas mungkin mengekspos data dalam konteks yang salah karena beban kerja pada model yang sama.
- CQRS membantu memisahkan operasi dan membuat aplikasi lebih terukur dan fleksibel dalam skala besar.
Kapan menggunakan CQRS
- Kita dapat menggunakan Command Query Responsibility Segregation ketika aplikasi berukuran besar dan mengakses data yang sama secara paralel. CQRS membantu mengurangi konflik penggabungan saat melakukan beberapa operasi dengan data.
- Dalam terminologi DDD, jika model data domain rumit dan perlu melakukan banyak operasi berdasarkan prioritas seperti validasi dan menjalankan beberapa logika bisnis, maka dalam hal ini, kita memerlukan konsistensi yang akan kita lakukan dengan menggunakan CQRS.
MediaR
- Pola MediatR membantu mengurangi ketergantungan langsung antara banyak objek dan menjadikannya kolaboratif melalui MediatR.
- Di .NET Core MediatR menyediakan kelas yang membantu berkomunikasi dengan banyak objek secara efisien dengan cara yang digabungkan secara longgar.
Penerapan Langkah demi Langkah
Langkah 1
Buat aplikasi baru
Langkah 2
Konfigurasikan aplikasi Anda
Langkah 3
Berikan informasi tambahan
Langkah 4
Struktur Proyek
Langkah 5
Instal Paket NuGet Berikut
Langkah 6
Buat kelas Detail Siswa di dalam folder model
Langkah 7
Selanjutnya, tambahkan DbContextClass di dalam folder Data
Langkah 8
Buat satu repositori siswa dan kelas yang terkait dengan itu.
Repositori Siswa
Repositori Siswa
Langkah 9
Setelah itu, tambahkan kueri baca
DapatkanStudentListQuery
DapatkanStudentByIdQuery
Langkah 10
Selanjutnya, buat perintah yang berbeda
Buat Perintah Siswa
PerbaruiStudentCommand
HapusStudentCommand
Langkah 11
Sekarang, tambahkan Query dan Command Handler
DapatkanStudentListHandler
DapatkanStudentByIdHandler
BuatStudentHandler
PerbaruiStudentHandler
HapusStudentHandler
Langkah 12
Konfigurasikan string koneksi database di dalam file appsettings.json
Langkah 13
Daftarkan beberapa layanan di dalam kelas program
Langkah 14
Selanjutnya, lakukan migrasi database dan perbarui perintah
tambahkan-migrasi “awal”
pembaruan-database
Langkah 15
Setelah itu, buat Pengontrol Siswa dan masukkan layanan MediatR di dalamnya untuk mengirim kueri dan perintah
Langkah 16
Terakhir, jalankan aplikasi Anda dan akses titik akhir yang berbeda menggunakan swagger UI.
URL GitHub
https://github.com/Jaydeep-007/CQRSAndMediatRDemo.git
Kesimpulan
Di sini kita membahas Pola Desain CQRS dan MediatR serta tujuan dan manfaatnya dalam aplikasi skala besar dan implementasi langkah demi langkah menggunakan .NET Core Web API.