title: Windows Azure Service Bus Queues - MessageSender or QueueClient?
body: <h3>Backstory:</h3>
  <p>A few months ago (when I was new to Azure Queues and the SDK tools out there) I Googled &quot;how do I do this&quot; and &quot;how do I do that&quot;... here is where I am today:</p>
  <ol>
  <li><p>I'm using a <code>QueueClient</code> (Microsoft.ServiceBus.Messaging - Microsoft.ServiceBus.dll) to receive messages from an Azure Queue.</p>
  </li>
  <li><p>In my same program I'm also using a <code>MessageSender</code> (from the same namespace and dll) to send messages to the Azure Queue.</p>
  </li>
  <li><p>My program has to track a <code>Dictionary&lt;string, QueueClient&gt;</code> and a <code>Dictionary&lt;string, MessageSender&gt;</code> - which is more complicated than it should be.</p>
  </li>
  </ol>
  <p>Now that I'm more familiar with the Azure SDKs... I realize that the <code>QueueClient</code> class can both <strong>send and receive</strong>... So why am I keeping track of 2 objects when the first one can do both?</p>
  <h3>Question:</h3>
  <p>Is there any reason to use the <code>MessageSender</code> class instead of the <code>QueueClient</code> class?</p>
  <p>If I need to send and receive, shouldn't I just use the <code>QueueClient</code> class?</p>