title: Difference between event-based and callback/delegate-based asynchronous methods?
body: <p>When using svcutil.exe, I noticed this switch, /tcv:Version35.  The docs says this:</p>
  
  <blockquote>
    <p>Version35: Use /tcv:Version35 if you
    are generating code for clients that
    use .NET Framework 3.5. By using this
    value, the SvcUtil.exe tool generates
    code that references functionality in
    .NET Framework 3.5 and previous
    versions. When using /tcv:Version35
    with the /async switch, both
    event-based and
    callback/delegate-based asynchronous
    methods are generated. In addition,
    support for LINQ-enabled DataSets and
    DateTimeOffset is enabled.</p>
  </blockquote>
  
  <p>What is the difference between event-based and callback/delegate based async models?</p>
  
  <p>EDIT: Is one way newer/better?  I only get the BeginXXX and EndXXX methods when I don't use the /tcv:Version35 switch.  Silverlight uses XXXAsync which tells me I should use the event-based (XXXAsync) methods and use this switch.</p>