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.