title: Implementing a nested asynch "call stack" scenario in .NET
body: <p>I'm attempting to refactor some moderately complex existing .NET code to be usable in Silverlight.  The core issue is that all Silverlight web services calls must be asynch, and the existing code was implemented in a fairly typical synchronous manner.</p>
  
  <p>Existing call stack for a typical operation might be something like this:</p>
  
  <p>Page -> GetPersonMethod -> PersonBusinessObject -> PersonDataObject -> CallWebservice -> (bubble response back up the stack)</p>
  
  <p>My thought is to split all the methods into separate Request and Response methods and preserve the overall structure of the application.</p>
  
  <p>The new call stack for the same operation would then be like this:</p>
  
  <p>Page -> GetPersonRequest -> PersonBusinessRequest -> PersonDataRequest -> WebserviceRequest </p>
  
  <p>Page &lt;- GetPersonResponse &lt;- PersonBusinessResponse &lt;- PersonDataResponse &lt;- WebserviceResponse</p>
  
  <p>Core questions:</p>
  
  <ol>
  <li><p>Is this a terrible idea, and should I really just rewrite it from the ground up with a more asynch perspective?</p></li>
  <li><p>Assuming I take this approach how do I preserve the call stack for my nested responses?</p></li>
  </ol>
  
  <p>TIA-</p>
  
  <p>-Eric</p>