title: Why is ServiceStack returning POCO objects slower than .NET Remoting returning a DataSet?
body: <p>I'm returning a DataTable with 6100 rows and 156 columns from a service.</p>
  
  <pre><code>When returning it over .NET remoting it takes 1800 ms.
  When returning it over .NET remoting with optimized DataSet serialization, it takes 1350 ms.
  
  When just downloading a List&lt;T&gt; from ServiceStack (selfhosted) like this:
  webClient.DownloadData("http://localhost:1337/hello/xx"); it takes 1400 ms
  
  when returning the same list as really typed list - List&lt;T&gt;
  var restClient = new JsonServiceClient("http://localhost:1337/hello");
  all = restClient.Get&lt;HelloResponse&gt;("/xx"); it takes 2100 ms
  </code></pre>
  
  <p>To me it seems like returning a list of POCO objects from ServiceStack service is slower than .NET Remoting returning a typed DataSet.</p>
  
  <p>T in this case looks like this (it has quite a lot of nullable properties and tolal of 156 properties):</p>
  
  <pre><code>public partial class Nmbr
  {       
      public Int32 NmbrID {get;set;}
      public Int32 NmbrNmBaID {get;set;}
      public Int32 NmbrNmStID {get;set;}
      public Int32 NmbrNmInID {get;set;}
      public String NmbrDesc {get;set;}
      public Int32? SestID {get;set;}
      public Int32? SestProjID {get;set;}
  </code></pre>
  
  <p>....
  ....</p>
  
  <p>What am'I doing wrong?<br>
  Why returning List is slower than returning a DataSet?<br>
  All methods share the same mechanism to get data from a DB... to me it seems like deserialization in ServiceStack is slow. Downloading data using  webClient.DownloadData is faster than default DataSet serialization, but converting it to typed List adds additional 700ms according to my measurements.</p>