Saya sudah mulai belajar tentang Redux dan Bereaksi di dunia web, dan semakin saya mempelajarinya semakin saya menyadari betapa manajemen negara yang menyakitkan di dunia desktop dengan arsitektur gaya MVVM WPF (menggunakan Caliburn khusus untuk mengikat Tampilan untuk ViewModels).
Redux memiliki beberapa prinsip sederhana yang menentukan cara pengelolaan negara, membuat pembaruan UI, penanganan acara, dan perubahan keadaan jauh lebih mudah diprediksi. Prinsipnya adalah:
- Sumber kebenaran tunggal (semua status yang dapat diubah disimpan dalam satu objek bersama).
- Status hanya baca. Itu tidak dapat dimodifikasi oleh komponen melalui kode, yang biasanya terjadi di WPF.
- Status hanya dapat dimodifikasi oleh fungsi murni.
Arsitektur MVVM dari WPF memungkinkan Anda untuk membangun tampilan interaktif dengan sangat cepat, tetapi men-debug masalah ketika berbagai model dan acara semua perubahan kondisi adalah mimpi buruk. Misalnya: peristiwa yang dipicu yang mengubah tampilan dan mencoba mengatur tab default, tetapi data belum selesai memuat secara tidak sinkron dari layanan web sehingga tab tidak ada (belum) sehingga tidak ada yang terjadi
Saya menghabiskan waktu berjam-jam menggambar diagram untuk mencoba dan memahami interaksi yang kompleks antara komponen viewModels yang saling terkait yang saling memperbarui.
Saya mengerti bahwa Redux bertujuan untuk menyelesaikan beberapa keadaan yang tidak dapat diprediksi ini. Apakah ada yang serupa, atau pola arsitektur yang cocok dengan WPF untuk membantu mengelola negara lebih baik? Saya tidak yakin seberapa baik prinsip-prinsip Redux akan bekerja di. NET karena saya belum mencobanya. Mungkin seseorang memiliki pengalaman yang dapat memberikan saran?