程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 微軟同步框架(MSF)入門之七--定制同步提供程序(SyncProvider)

微軟同步框架(MSF)入門之七--定制同步提供程序(SyncProvider)

編輯:關於ASP.NET

在上一篇文章當中,簡要介紹了一下如何使用現有的 SyncProvider 對象來進行文件(夾)同步。今天的這個DEMO主要演示通過繼承方式來實現自己的SyncProvider來進行相關同步元數據存儲,當然這樣做會給我們以額外的好處,比如按自己的意願來創建、版本和刪除項的信息等。另外就是對同步應用程序的工作原理也會有一個大概的認識。

在開始正文之前,我在網上看到了這篇文章對MSF的負責報道,當然它所說的部分觀點我同意。MSF的確不那麼好學,官方的文檔的確也難懂,但事情總要慢慢來,只有通過不斷積累不斷進步,產品才會做的越來越好。就讓我們一起與MSF共同進步吧!

好了,開始今天的正文。

首先要解釋一下自定義同步程序(本DEMO中為“MySyncProvider”)所要繼承和實現的接口:  

KnowledgeSyncProvider:表示使用知識執行同步的同步提供程序

IChangeDataRetriever:表示目標提供程序從源提供程序檢索項數據所使用的機制。

INotifyingChangeApplierTarget:表示可將項變更保存到副本中的對象

備注:當使用NotifyingChangeApplier對象以幫助將變更應用到目標副本時,目標提供程序必須實現此接口。INotifyingChangeApplierTarget對象傳遞給ApplyChanges方法。然後,NotifyingChangeApplier

對象調用INotifyingChangeApplierTarget方法,將變更和沖突保存到目標副本中。

KnowledgeSyncProvider方法定義如下主要方法:

BeginSession 在派生類中重寫時,通知提供程序它將聯接一個同步會話。

EndSession 在派生類中重寫時,通知提供程序它所登記到的同步會話已經完成。

GetChangeBatch 在派生類中重寫時,獲取包含某些項的項元數據的變更批,這些項不包含在來自目標提供程序的指定知識中。

GetFullEnumerationChangeBatch 在派生類中重寫時,獲取作為完全枚舉一部分的變更批,該變更批中包含ID大於指定下限的項的項元數據。

GetSyncBatchParameters 在派生類中重寫時,獲取要包含在變更批中的項變更數,以及同步作用域的當前知識。

ProcessChangeBatch 在派生類中重寫時,通過檢測沖突和將變更應用到項存儲區中來處理變更組。

ProcessFullEnumerationChangeBatch 在派生類中重寫時,通過將變更應用到項存儲區中來處理變更組,以用於完全枚舉。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved