I've been pretty unhappy with the data that's been thrown back and forth between a RIA DomainService and the Silverlight client.  I feel it's too big, too heavy.  When everything is running on localhost, you can't feel this.  But the moment you put everything onto an external staging server (or the production) - it's suddenly painfully obvious that perhaps some of the services are just way too chatty, that's a post for another day.
  While thinking about this on my way to the car after work, I suddenly remembered that I still haven't turned on gzip compression for the production server.  A grin comes to my face, cause I know this would be an easy win.
   
  Profile
  First, measure your existing service calls.  You can do this easily with Fiddler 2, which lets you watch all HTTP traffic between your browser (where the Silverlight client sits), and the server, where the Domain and Duplex services are busily responding.
  
  Figure: Domain Service request call
  
  Figure: Duplex service call
     
  Enable GZIP compression on Server
  Enabling GZIP compression on the server, in 3 easy steps
  1. The server has to know explicitly you want to compress these new content types.
  Open C:\Windows\System32\inetsrv\config\applicationHost.config  as administrator
  Modify the dynamic compression section, add our two new content types
  Note; the exact mimetype depends on your service binding, and whether you choose to use text encoding.  Check Fiddler data if you aren't sure.
   
  
   
  2. Enable dynamic compression via IIS on your web application
  
   
  3. Recycle the AppPool (or the more catastrophic IISRESET, if you prefer that)
   
  Result - test again
    Refresh your Silverlight page, and let's see the new data
  
  Figure: compressed domain service
   
  
    Figure: compressed duplex service
   
  Conclusion
  I've picked a service call that's only returning 1 row of data, and it's shrunk the data size by 60%.  Over large chunks of data, I expect the compression to be significantly higher.
  Smaller messages means less time for the browser to receive the response message, and since browsers already take care of compression and encoding, Silverlight doesn't even need to know that the message has arrived compressed. 
  Result is a small speed improvement over external sites with only a few simple steps 