Geeks With Blogs
Bruce Ge October 2009 Entries
Sync Framework - Inefficient ApplyChanges
for the ado database sync, the method public virtual SyncContext ApplyChanges(SyncGroupMetadata groupMetadata, DataSet dataSet,SyncSession syncSession) on server side is not efficient, as it receive the changed data from client side, but it again sent it back to client within the SyncContext. In the returned SyncContext object, I found DataSet and GroupProgress.Changes is almost the same as input dataset. by verifying the code inside sync framework, I found: internal SyncGroupMetadata ResetProivderState(SyncGrou... ......

Posted On Tuesday, October 27, 2009 4:54 PM

WCF Message Compression - Gzip, 7zip
I was using Gzip Encoder to compress wcf message, it surprised me that sometimes the compression message size is even bigger than the original size, so I looked the code, I found within GZipMessageEncoderFactory.cs, the method "CompressBuffer" in the GZipMessageEncoderFactory class is not quite right. it was like this originally: private static ArraySegment<byte> CompressBuffer(ArraySegment... buffer, BufferManager bufferManager, int messageOffset) { .... var byteArray = new ArraySegment<byte>(bu... ......

Posted On Tuesday, October 27, 2009 4:20 PM

WCF ReliableSession Retry Interval
Been using ReliableSessionBindingElement within WCF, I found we can not set the retry interval, as we only can set MaxRetryCount. WCF uses an internal algorithm to determine when to retransmit, based on a computed average round-trip time. The initial retry time is computed based on the measured roundtrip time of establishing the session. The retransmission algorithm doubles the delay with every attempt, for example, if we set the MaxRetryCount to 8(default), if WCF determines the initial retry time ......

Posted On Tuesday, October 27, 2009 3:45 PM

Sync Framework Common Practise of ADO.NET
I have been working on database synchronization for a couple of weeks, and seems it at the final testing stage, I am using Microsoft Sync Framework 2.0, the DB server is SQL server 2008 Standard, and clients are SQL Server 2008 Express as I use Change Tracking to track DB changes instead of TombStone Tables and Guid tracking columns, I use WCF+IIS+SSL to host server side service, the binding uses Gzip binary encoding. The reason we are not using SQL Server Replication is because our tables need dynamic ......

Posted On Sunday, October 18, 2009 11:30 PM

Copyright © argot | Powered by: