title: How do I choose between WCF, REST, POX and RIA services for a new Silverlight application
body: <p>There a <strong>lot</strong> of different ways a Silverlight application can connect back to it’ server.  Including</p>
  
  <ul>
  <li><a href="http://msdn.microsoft.com/en-us/netframework/aa663324.aspx" rel="nofollow noreferrer">WCF - Windows Communication Foundation</a></li>
  <li><a href="http://en.wikipedia.org/wiki/Representational_State_Transfer" rel="nofollow noreferrer">REST</a> (see <a href="http://rest.blueoxen.net/cgi-bin/wiki.pl" rel="nofollow noreferrer">also</a>)</li>
  <li><a href="http://msdn.microsoft.com/en-us/data/bb931106.aspx" rel="nofollow noreferrer">ADO.NET Data Services</a>  (or is this just REST?)</li>
  <li>POX - Plain Old XML (E.g basic xml)</li>
  <li><a href="http://www.nikhilk.net/NET-RIA-Services-Vision-Architecture.aspx" rel="nofollow noreferrer">RIA services</a> </li>
  </ul>
  
  <p>For each of these please say what it’s for and when you would or wouldn’t use it.  I am not looking for a great level of details just a set of “rules of thumb” for choosing between them.</p>
  
  <p>(The problem is when designing your first Silverlight application knowing what to use when you don’t have time to learn all of them.)</p>
  
  <p><em>If I was to replace Silverlight with WPF in this question what effect would it have on your answers? (I am assuming with WPF that due to firewalls and admin policies a direct connect to the database is not an option.)</em></p>