웹 세계에서 Redux 및 React에 대해 배우기 시작했으며 WPF의 MVVM 스타일 아키텍처를 사용하여 데스크톱 세계에서 고통스러운 상태 관리가 얼마나 고통스러워하는지 알 수 있습니다 (Caliburn을 사용하여 뷰를 바인딩하는 방법) ViewModels에).
Redux에는 상태를 관리하는 방법을 결정하는 몇 가지 간단한 원칙이 있으며 UI 업데이트, 이벤트 처리 및 상태 변경을 훨씬 더 예측 가능하게 만듭니다. 원칙은 다음과 같습니다.
- 단일 진실 소스 (모든 변경 가능한 상태는 단일 공유 객체에 저장 됨)
- 상태는 읽기 전용입니다. 일반적으로 WPF에서 발생하는 코드 전체에서 구성 요소로 수정할 수 없습니다.
- 상태는 순수한 함수로만 수정할 수 있습니다.
WPF의 MVVM 아키텍처를 사용하면 대화식 뷰를 매우 빠르게 작성할 수 있지만 다양한 뷰 모델과 이벤트가 모두 변경 될 때 디버깅 문제가 악몽입니다. 예를 들어,보기를 변경하고 기본 탭을 설정하려고 시도한 이벤트가 발생했지만 웹 서비스에서 데이터가 비동기식으로로드되지 않아 탭이 존재하지 않아 (아직) 아무 일도 일어나지 않습니다.
나는 서로를 업데이트하는 상호 관련 viewModels 구성 요소 간의 복잡한 상호 작용을 이해하고 이해하기 위해 다이어그램을 그리는 데 시간을 보냈습니다.
Redux는이 상태의 일부 예측 불가능 성을 해결하는 것을 목표로하고 있습니다. 상태를 더 잘 관리하는 데 도움이되는 WPF와 잘 어울리는 유사한 또는 아키텍처 패턴이 있습니까? 아직 시도하지 않았기 때문에 Redux 원칙이 .NET에서 얼마나 잘 작동하는지 잘 모르겠습니다. 아마도 누군가 조언을 줄 수있는 경험이 있습니까?