我有一個WPF應用程序連接到遠程後端:用戶可以在GUI上編輯許多不同的元素,但決定只在應用程序關閉時保存或放棄。 該GUI支持撤銷/重做。等待併發送一批保存的命令
我已經跟蹤每一個編輯和保存時生成必要的命令到後端執行編輯:我的命令是一樣的東西:
public class ChangeDescriptionOfTypeAObject
{
public string OldValue{ get; set; }
public string NewValue{ get; set; }
public string ObjectID{ get; set; }
}
這個工程在當前的應用程序,但我在想命令失敗,如果另一個用戶在此期間改變相同的屬性。可能我必須向用戶發送一條消息:「對對象ObjectID的描述更改無法應用:當前值爲xxx」並應用所有其他更改。
這是一個正確的方法嗎? 如果我用來檢查「CurrentValue == OldValue」的讀取模型是否正在從另一個用戶更新,那麼如何才能確保可以在最終一致的過程中成功應用命令?
我認爲這取決於 - 國際海事組織最好的辦法是讓* events *和* commands *小於你所做的,併爲它們帶來某種併發檢查(通常只是一個版本號) - 然後在更新之前可以再次請求當前狀態,如果所有其他都失敗了,後端會給你一個併發檢查 - 我不認爲你真的可以避免這種情況,沒有一些鎖 – Carsten 2014-09-23 11:03:20
爲了讓這個更清楚一點:後端必須檢查一致性! (前端也可以檢查,但後端必須有最後說) – Carsten 2014-09-23 11:04:53