MVVM 패턴을 사용하는 클라이언트/서버 (WPF/WCF) 응용 프로그램에서 작업하고 있습니다.서비스를 통해 저장하는 경우 모델 일관성을 유지하는 방법은 무엇입니까?
ViewModel의 속성은 모델의 속성에 바인딩되므로 모델을 변경하면 변경 내용이 즉시보기로 전파됩니다.
새로 고침을 클릭하면 서버의 새/변경된 데이터가 모델로 병합되므로 새로 고침 메커니즘이 잘 작동합니다.
사용자 편집 및 저장 속성을 어떻게 처리합니까?
- 사용자의 클릭을 "편집"여기에 내가 어떻게 할 것입니다 , 서버가 모델로 병합 된 업데이트 된 항목을 반환하고 UI가 업데이트됩니다.
- 성공하지 못하면 서버에서 오류를 반환하고 모델이 업데이트되지 않습니다.
MVVM을 사용함으로써, 모델은 (단계 5 & 6 중복 제작) 상기 단계 (3)에서 갱신되는 것, 그리고 서버에서 오류가 발생하면, 클라이언트에서 데이터 서버와 일치하게된다.
이 상황을 처리하는 모범 사례가 있습니까?
시나리오에서 클라이언트가 아무 것도하지 않고도 서버의 데이터가 특정 클라이언트와 동기화되지 않을 수 있습니까? 앞으로도 가능할 것인가? 내가 묻는 이유는 사용자가 앱을 다시 시작하거나 수동으로 새로 고침하지 않아도되는 동기화 전략이 필요할 수도 있기 때문입니다. 이런 문제는 그 전략에 깔끔하게 맞을 것입니다. 좋은 때마다 저장하기 만하면됩니다. –
예 - 다중 사용자 앱이지만 사용자가 항목을 볼 때마다 새로 고침이 발생하여 클라이언트가 최신 상태가됩니다. 당신이 제안하는 것이 합리적이지만 사용자가 Save (저장)를 클릭 할 때 서버가 다운되면 어떻게됩니까? 원래 값을 복원하고 싶습니다 (오프라인 모드로 전환 할 수도 있음). –
문제의 일부는 웹 서비스 * 모델입니다. 원격 사본과 로컬 사본은 모두 같은 것을 표현한 것입니다. 모델을 원격으로 업데이트 할 수없는 경우 로컬에서 모델을 업데이트해야하며 동기화되지 않은 상태에 대처할 수 있도록해야합니다. "새로 고침은 사용자가 항목을 볼 때마다 발생합니다". 그들이 그것을 보는 동안 업데이트되면 어떨까요? 이 경우 대처 방법을 알아야합니다. 다른 사용자의 변경 사항을 우연히 취소하지 않도록하려면 대화 상자를 열어두기 만하면됩니다. –