DbSyncProvider WCF Based Synchronization– Memory Performance Analysis Of DataSet Binary SerializationFormat Vs DataSet Surrogates

I had posted earlier about the memory performance when using default DataSet serialization behavior vs. using a Surrogate. Users had some questions on how the DataSet surrogate compared with the DataSet’s Remoting SerializationFormat. With .Net Fx 2.0 DataSet shipped support for serializing DataSet in Binary in addition to the default XML format. I decided to…


DbSyncProvider: Improving Memory Performance In WCF Based Synchronization

Users have frequently wanted the ability to remotely synchronize relational nodes in a peer to peer fashion using SyncServices for ADO.NET. We have a sample demonstrating remote synchronization by using Windows Communication Foundation (WCF). I wanted to use this post to provide an easy way to optimize the performance of this WCF based solution. DbSyncProvider…


.Net 3.5 and Visual Studio 2008 released

Just like that the .Net train continues to move along to the next version of the framework. Microsoft announced on Monday the availability of .Net 3.5 and Visual Studio 2008. Its the third version of .Net that I had the privilege of working on starting from 2.0. I didnt have an opportunity to own any…


Microsoft releasing .NET framework source code

Microsoft is releasing the source code for the framework libraries. Read more about it here. Its not like you couldnt do this earlier. You could always have used .Net Reflector but having the ability to step in to the framework classes while debugging is neat. Looks like plans are on for releasing the source code…


WCF Extensibility – Plugging in custom message processing logic

I have talked a lot about WCF’s extensibility model and I never knew how much of the core functionality can be extended until a recent deep dive session with one of our customers developing on WCF. The client had a multi tier application with the middle tier using SOAP based messaging to communicate with the…


WCF Runtime Components

After I posted my earlier entry on debugging WCF apps, I thought it would be a good idea to explain the different WCF runtime blocks . This way users can see how each block/class fits in the bigger picture and how the runtime processes new channels/messages. When Open() is called on a ServiceHost, the runtime…


Debugging WCF Applications – What all I look for.

When I am debugging any WCF runtime bug, I classify it in two categories. One that needs IDE (simple logic bugs) and others that need WinDbg. Every one is familiar with the IDE debugging and will leave that topic for another day. Today I wanted to talk a little bit about how I debug WCF…


WCF Channels AutoOpen vs Open Semantics

Wanted to write up a post on whats the difference between “auto” opening a WCF Channel and explicitly calling “Open” on it. Michael Maruchek posted a detailed and well explained post at http://blogs.msdn.com/mjm/archive/2006/11/13/auto-open-part-1.aspx. Waiting for part 2. Since Micheal did such a wonderful job of explaining the design I just wanted to illustrate the behavior with a…


WinFx: UseSynchronizationContext Usage

One of the most common problems we debug with WCF proxies invoked from WinForm/XAML app’s is a perceived hang when duplex contract’s are involved. The app usually has a “click to invoke proxy” button that invokes a method (which will callback the client) on the server and the app will freeze waiting for the response….


WinFx 3.0 has RTM’d

Sometime last Friday, admist cheers and high fives, our lead PM resolved the last bug that stopped us from signing off on WCF(code named Indigo). Bug # 1 was opened way back when Indigo was in planning stages and with this bug we signed off on the product. Today Microsoft announced RTM of the .Net…