Web dünyasında Redux ve React'i öğrenmeye başladım ve ne kadar çok öğrenirsem WPF'nin MVVM tarzı mimarisi ile masaüstü dünyasında ne kadar acı verici devlet yönetiminin olduğunu daha çok anlıyorum (Views'ı bağlamak için Caliburn'u kullanarak ViewModels'e).
Redux, devletin nasıl yönetilmesi gerektiğini belirleyen, UI güncellemelerini, olay işleme ve durum değişikliklerini çok daha öngörülebilir kılan birkaç basit ilkeye sahiptir. İlkeler:
- Tek bir hakikat kaynağı (değişebilir tüm durum tek bir paylaşılan nesnede saklanır).
- Durum salt okunurdur. Kod aracılığıyla bileşenler tarafından değiştirilemez, bu genellikle WPF'de olan şeydir.
- Durum yalnızca saf işlevlerle değiştirilebilir.
WPF'nin MVVM mimarisi, çok hızlı bir şekilde etkileşimli görünümler oluşturmanıza izin verir, ancak çeşitli görünüm modelleri ve olayların tümü durum değiştirdiğinde hata ayıklama sorunları bir kabus olur. Örneğin: bir görünümü değiştiren ve varsayılan bir sekme ayarlamaya çalışan bir olay tetiklendi, ancak veriler bir web hizmetinden eşzamansız olarak yüklenmeyi tamamlamadı, bu nedenle sekme mevcut değil (henüz), bu yüzden hiçbir şey olmuyor
Birbirini güncelleyen birbiriyle ilişkili viewModels bileşenleri arasındaki karmaşık etkileşimleri denemek ve anlamak için diyagramlar çizerek saatler geçirdim.
Redux'un bu durumun öngörülemezliğinin bir kısmını çözmeyi amaçladığını anlıyorum. Devletin daha iyi yönetilmesine yardımcı olmak için benzer bir şey veya WPF ile iyi uyum sağlayacak bir mimari desen var mı? Henüz denemediğim için Redux ilkelerinin .NET'te ne kadar iyi çalışacağından emin değilim. Belki birisinin tavsiyede bulunabilecek bir tecrübesi vardır?