2009-12-01 21 views
2

我們正嘗試將老派客戶端服務器應用程序轉換爲N層應用程序,並使用所有Microsoft技術(我們總共有.Net和SQLServer商店)進行同步和脫機支持。我們希望專注於編寫業務邏輯,而不是花費時間進行管理,因此我們將盡可能多地使用現有的微軟技術。ADO.Net數據服務脫機(Astoria脫機)死了嗎?任何計劃B?

到目前爲止,我們決定使用SQL Server精簡版採用的WinForm/WPF胖客戶端,服務器上的SQL Server 2008,Microsoft同步框架做客戶端的SQL數據庫服務器和SQL數據庫之間的同步。到現在爲止還挺好。

麻煩之際,當我們試圖實現「N級」的一部分。我們目前的應用程序相當SOA。每個數據訪問調用都是通過Web服務完成的。所以很自然地我們想到使用ADO.Net數據服務。然後,我們驚喜地發現有一種叫做ADO.Net Data Service Offline(Astoria Offline)的功能,它允許我們通過Web服務進行數據訪問,支持同步,甚至支持離線。突然之間,我們開始相信天堂真的是地球上的一個地方。

然後昨天我們的負責研究「Astoria Offline」的隊友根據博客文章(http://blogs.msdn.com/astoriateam/archive/2009/03/07/announcing-project-codename-astoria-offline-alpha-preview.aspx)告訴我們「Astoria Offline is dead」。我們懷疑他在破解,但不想挑戰他。事實上,Astoria Offline仍處於pre-alpha模式,我們需要一個生產解決方案。

所以比Astroia離線等,還有沒有其他類似的解決方案,使我們能夠使用微軟的同步框架中的N層設置,還支持離線模式?

回答

1

如果你正在考慮ADO.NEt數據服務,那麼你可能會發現,ADO.NET同步服務是一個很好的適合你。取決於您嘗試創建的senario。或者遠程數據訪問可能更適合。

您可能要選擇同步服務: 1.支持解決衝突。 2.在服務器和客戶端上更改跟蹤,以便只交換數據差異。 3.即將到來的同步框架v2中的Peer to Peer同步。 4.與SQL Server以外的數據庫同步。 5.最適合在臺式機或筆記本電腦上運行的SSCE。

如果RDA可以提供更好的性能:1.你 主鍵,而不是使用標識列的GUID。 2.用戶不會覆蓋彼此的數據,所以你不需要衝突解決。 「最後勝利」的規則適用於你。 3.雖然您希望下推索引,但您並不在乎本地SSCE數據庫是否應用了參照完整性約束。 4.您想要將事務上傳到SQL Server的更改包含在事務中,以便應用所有更改或者不應用任何更改。 5.在客戶端上更改跟蹤已足夠好,重新下載更新的服務器表不會太長。你開發人員不介意寫一些同步代碼。 7.能夠通過IIS直接對SQL Server執行SQL和存儲過程。 8.您正在下載只讀數據。

如果您還需要更多,只需留言。