早上好/下午/晚上!同步2 .net應用程序
有2個系統 - CRM(定製SplendidCRM)和家釀brewmonster(crm + cms + backoffice)。
- CRM - Asp.Net 2.0 WebSite,Sql Server 2008;使用Views,Stored Procedures,Triggers實現;例如審計被實施爲觸發+ SP; WebSite是一個簡單的用戶界面; Ado DataSet被用作Dtos
- 自制的怪物 - Asp.Net 3.5 WebApplication,SqlServer 2008;使用ListToSql實現; Sql Server僅用作存儲;所有的邏輯和審計在C#代碼中實現; VS的設計師生成的類被用作Dtos。
我需要實現它們之間的「雙面打印」同步:
object is updated in Crm -> changes are applied in home-brewed monster
object is updated in home-brewed monster -> changes are applied in Crm
同步應該在「幾乎實時操作模式的工作 - 延遲是可以接受的。目前沒有太多數據 - 大約35000個對象和120000個審計條目,可以達到100000個對象。對象也不大(數據庫中有60列)。
對於這兩個系統都有一個允許更新的Api:用於家庭釀造怪物的Crm和Wcf服務的Web服務。由於怪物的實施變化只能通過Wcf服務應用(例如審計工作)。至於Crm--它可以通過Web服務調用或直接SP調用進行更新(但最好是Web服務)。
目前在Crm中有一列存放對象外部ID,並且存在同步類型但需要更強大和專業的解決方案。
由於某些原因(管理員失敗或應用錯誤更新),兩個系統都可能「脫機」。這不應該影響同步 - 只要系統回來,應該立即應用所有更新。重要的是來自家釀的怪物的數據具有更高的優先級,並且應該覆蓋來自Crm的變化。
問題是哪個技術/庫更適合使用?如果同步可以在系統外進行(系統會觸發數據已更改並且外部工具會同步更改),那將會很不錯。這是由於系統和同步規則受到頻繁更改的影響 - 例如同步的第一個「版本」,在某些情況下從Crm中刪除對象,第二個版本不會刪除但輸出較少的數據,在「第3版」中更多一些添加了兩個系統共有的字段。這種變化將在未來出現,所以我想不要觸及其他系統(或者其他系統)並更改同步規則。
爲什麼不親自推薦Microsoft Sync Framework?列出您遇到的任何問題可能會很好。 – 2011-05-11 14:09:37
好主意,我已將我的經驗發佈在我的博客上:http://tjrobinson.wordpress.com/2011/05/11/why-we-stopped-using-the-microsoft-sync-framework/ – tjrobinson 2011-05-11 14:24:26
感謝回覆。在發佈之前我已經檢查過Sync FX。我發現它以DB爲中心。在我的情況下,我需要同步對象,這是非常不同的 - 它們具有不同的屬性集合,並且屬性的子集必須同步。同步應該執行一些規則 - 一些對象可能不可更新,'查找'屬性不能一對一映射,e.t.c. – alex 2011-05-11 14:36:23