<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Satya Biswal</title>
    <description>The latest articles on DEV Community by Satya Biswal (@thedevalchemist).</description>
    <link>https://dev.to/thedevalchemist</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F459075%2Fef926027-e3e9-428e-b8ab-6d2c476eda85.png</url>
      <title>DEV Community: Satya Biswal</title>
      <link>https://dev.to/thedevalchemist</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/thedevalchemist"/>
    <language>en</language>
    <item>
      <title>Builder Design Pattern using C#</title>
      <dc:creator>Satya Biswal</dc:creator>
      <pubDate>Sun, 11 Feb 2024 10:25:30 +0000</pubDate>
      <link>https://dev.to/thedevalchemist/builder-design-pattern-using-c-1m7k</link>
      <guid>https://dev.to/thedevalchemist/builder-design-pattern-using-c-1m7k</guid>
      <description>&lt;h2&gt;
  
  
  Table of content
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Intent&lt;/li&gt;
&lt;li&gt;Participants&lt;/li&gt;
&lt;li&gt;Example&lt;/li&gt;
&lt;li&gt;Use Cases&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;The Builder Design Pattern is a &lt;code&gt;Creational&lt;/code&gt; design pattern in C# and other object-oriented programming languages.&lt;/p&gt;

&lt;p&gt;It is used to construct &lt;code&gt;complex&lt;/code&gt; objects step by step, allowing the construction process to vary independently from the actual representation of the object. &lt;/p&gt;

&lt;p&gt;This pattern is particularly useful when you have an object with many possible configurations and it's not desirable to have a large number of constructors with different parameter combinations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Intent:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Separate the construction of a &lt;strong&gt;&lt;code&gt;complex object&lt;/code&gt;&lt;/strong&gt; from its representation.&lt;/li&gt;
&lt;li&gt;Allow the same construction process to create different representations.&lt;/li&gt;
&lt;li&gt;Provide a clear and &lt;strong&gt;&lt;code&gt;understandable way to construct an object&lt;/code&gt;&lt;/strong&gt;, especially when it involves a large number of parameters or configuration options.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Participants:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Builder&lt;/code&gt;&lt;/strong&gt;: An abstract interface that defines the steps and operations needed to construct a product.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Concrete Builder&lt;/code&gt;&lt;/strong&gt;: Implementations of the Builder interface, which provide specific methods for building and configuring the product.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Director&lt;/code&gt;&lt;/strong&gt;: This class orchestrates the construction process using a builder to create a product. It's not always necessary, but it can be used to ensure that the construction process follows a specific order.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Product&lt;/code&gt;&lt;/strong&gt;: The final object that's being constructed, representing the complex object.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Example:
&lt;/h2&gt;

&lt;p&gt;Let's consider an example of building a Pizza object using the Builder pattern. We'll have a Pizza class with various properties like size, crust type, toppings, etc., and a PizzaBuilder to create Pizza objects step by step.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Product&lt;/span&gt;
&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Pizza&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;Size&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;CrustType&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Toppings&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;Display&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;$"Size: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;Size&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s"&gt;, Crust: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;CrustType&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s"&gt;, Toppings: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;", "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Toppings&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Builder&lt;/span&gt;
&lt;span class="k"&gt;interface&lt;/span&gt; &lt;span class="nc"&gt;IPizzaBuilder&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;SetSize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;SetCrustType&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;crustType&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;AddTopping&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;topping&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;Pizza&lt;/span&gt; &lt;span class="nf"&gt;Build&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Concrete Builder&lt;/span&gt;
&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MargheritaPizzaBuilder&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;IPizzaBuilder&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="n"&gt;Pizza&lt;/span&gt; &lt;span class="n"&gt;pizza&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;Pizza&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;SetSize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;pizza&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Size&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;SetCrustType&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;crustType&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;pizza&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CrustType&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;crustType&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;AddTopping&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;topping&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;pizza&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Toppings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;topping&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;Pizza&lt;/span&gt; &lt;span class="nf"&gt;Build&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;pizza&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Director (optional)&lt;/span&gt;
&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PizzaDirector&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="n"&gt;IPizzaBuilder&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="nf"&gt;PizzaDirector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;IPizzaBuilder&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;builder&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;Pizza&lt;/span&gt; &lt;span class="nf"&gt;Construct&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;SetSize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Medium"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;SetCrustType&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Thin"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AddTopping&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Cheese"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AddTopping&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Tomato Sauce"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Build&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Usage&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;margheritaBuilder&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;MargheritaPizzaBuilder&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;pizzaDirector&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;PizzaDirector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;margheritaBuilder&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;margheritaPizza&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pizzaDirector&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Construct&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="n"&gt;margheritaPizza&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Display&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Output&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Size: Medium, Crust: Thin, Toppings: Cheese, Tomato Sauce
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Use Cases:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;&lt;code&gt;Building Complex Objects&lt;/code&gt;&lt;/strong&gt;: The Builder pattern is useful when you need to create complex objects with multiple configuration options. It provides a more readable and maintainable way to construct such objects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Configuring Immutable Objects:&lt;/code&gt;&lt;/strong&gt; In situations where you want to create immutable objects (objects whose state cannot be changed after creation), the Builder pattern is a good fit. You can build the object step by step and then create an immutable instance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Variety of Configurations:&lt;/code&gt;&lt;/strong&gt; When you have multiple configurations or variations of an object, using a builder can simplify the creation process and improve code readability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Fluent Interfaces:&lt;/code&gt;&lt;/strong&gt; Builders often make use of a fluent interface, which allows you to chain method calls together for a more expressive and intuitive configuration process.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Unit Testing:&lt;/code&gt;&lt;/strong&gt; The Builder pattern is helpful in unit testing when you need to create objects for testing purposes. It allows you to create specific instances with different configurations easily.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>csharp</category>
      <category>programming</category>
      <category>beginners</category>
      <category>designpatterns</category>
    </item>
    <item>
      <title>Prototype Design Pattern using C#</title>
      <dc:creator>Satya Biswal</dc:creator>
      <pubDate>Sun, 11 Feb 2024 10:05:24 +0000</pubDate>
      <link>https://dev.to/thedevalchemist/prototype-design-pattern-4f0b</link>
      <guid>https://dev.to/thedevalchemist/prototype-design-pattern-4f0b</guid>
      <description>&lt;h2&gt;
  
  
  Table of content
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Intent&lt;/li&gt;
&lt;li&gt;Participants&lt;/li&gt;
&lt;li&gt;Example&lt;/li&gt;
&lt;li&gt;Use Cases&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The Prototype design pattern is a &lt;code&gt;Creational&lt;/code&gt; design pattern.&lt;/li&gt;
&lt;li&gt;It is used to creating new objects by copying an existing object, known as the &lt;code&gt;prototype&lt;/code&gt;. &lt;/li&gt;
&lt;li&gt;This pattern is used when the &lt;code&gt;cost&lt;/code&gt; of creating a new object is more &lt;code&gt;expensive&lt;/code&gt; or &lt;code&gt;complex&lt;/code&gt; than copying an existing one. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Intent:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Specify the kind of objects to create using a prototypical instance, which is cloned to create new objects.&lt;/li&gt;
&lt;li&gt;Promote object creation that is efficient and independent of the concrete classes being instantiated.&lt;/li&gt;
&lt;li&gt;Avoid costly object creation operations by copying existing objects.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Participants:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Prototype&lt;/strong&gt; (&lt;em&gt;IPrototype&lt;/em&gt;): This is an interface or an abstract class that defines a method for cloning itself. The Clone method is the key feature of this pattern.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Concrete Prototype&lt;/strong&gt; (&lt;em&gt;ConcretePrototype&lt;/em&gt;): Classes that implement the &lt;code&gt;IPrototype&lt;/code&gt; interface. They provide concrete implementations of the &lt;code&gt;Clone&lt;/code&gt; method.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Client&lt;/strong&gt;: The client is responsible for creating new objects by requesting clones from a prototype. The client doesn't need to know the concrete class of the objects; it works with the &lt;code&gt;IPrototype&lt;/code&gt; interface.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Example:
&lt;/h2&gt;

&lt;p&gt;Let's consider an example of a simple shape cloning system. We have an &lt;code&gt;IShape&lt;/code&gt; interface representing shapes, and concrete shape classes implementing the Clone method to create new instances.&lt;br&gt;
&lt;code&gt;Prototype&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Prototype (IPrototype)&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;interface&lt;/span&gt; &lt;span class="nc"&gt;IShape&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;IShape&lt;/span&gt; &lt;span class="nf"&gt;Clone&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;GetInfo&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Concrete Prototype&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Concrete Prototype (ConcretePrototype)&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Rectangle&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;IShape&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="nf"&gt;Rectangle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;width&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;height&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;IShape&lt;/span&gt; &lt;span class="nf"&gt;Clone&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;Rectangle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;GetInfo&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;$"Rectangle - Width: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s"&gt;, Height: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Circle&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;IShape&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;radius&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="nf"&gt;Circle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;radius&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;radius&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;radius&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;IShape&lt;/span&gt; &lt;span class="nf"&gt;Clone&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;Circle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;radius&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;GetInfo&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;$"Circle - Radius: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;radius&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Usage&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="n"&gt;IShape&lt;/span&gt; &lt;span class="n"&gt;originalRectangle&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;Rectangle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;20&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;IShape&lt;/span&gt; &lt;span class="n"&gt;clonedRectangle&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;originalRectangle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Clone&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="n"&gt;IShape&lt;/span&gt; &lt;span class="n"&gt;originalCircle&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;Circle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;IShape&lt;/span&gt; &lt;span class="n"&gt;clonedCircle&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;originalCircle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Clone&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="n"&gt;originalRectangle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetInfo&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="n"&gt;clonedRectangle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetInfo&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="n"&gt;originalCircle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetInfo&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="n"&gt;clonedCircle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetInfo&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Output&lt;/code&gt;&lt;br&gt;
&lt;code&gt;Rectangle - Width: 10, Height: 20&lt;br&gt;
Rectangle - Width: 10, Height: 20&lt;br&gt;
Circle - Radius: 5&lt;br&gt;
Circle - Radius: 5&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Use Cases:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Efficient Object Creation&lt;/code&gt;&lt;/strong&gt;: Use the Prototype pattern when the cost of creating an object is expensive (e.g., database calls or complex initialization) compared to cloning. Cloning can be a more efficient way to obtain new instances.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Configuration Management&lt;/code&gt;&lt;/strong&gt;: When your application requires multiple instances with different configurations, the Prototype pattern can be used to create a base prototype object and clone it with different configurations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Stateful Objects&lt;/code&gt;&lt;/strong&gt;: If you need to create multiple instances of objects with internal state, using the Prototype pattern helps in preserving the internal state when cloning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Reducing Subclass Proliferation&lt;/code&gt;&lt;/strong&gt;: When you have a hierarchy of classes, the Prototype pattern can reduce the need for creating numerous subclasses by allowing dynamic object creation through cloning.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>csharp</category>
      <category>designpatterns</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Message Sessions In Azure Service Bus(FIFO Pattern).</title>
      <dc:creator>Satya Biswal</dc:creator>
      <pubDate>Sun, 30 Aug 2020 18:30:43 +0000</pubDate>
      <link>https://dev.to/thedevalchemist/message-sessions-in-azure-service-bus-fifo-pattern-1gb8</link>
      <guid>https://dev.to/thedevalchemist/message-sessions-in-azure-service-bus-fifo-pattern-1gb8</guid>
      <description>&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;p&gt;In this article, we will discuss sessions in the Azure Service bus queue for absolute beginners. &lt;/p&gt;

&lt;h3&gt;
  
  
  What is Session in Azure Service Bus?
&lt;/h3&gt;

&lt;p&gt;Azure Service bus sessions ensure ordered handling of unbounded messages. Sessions are useful if your application demands an ordered message delivery (FIFO Pattern) or waits for a response after the message being delivered (Request-Response Pattern).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In this article, we'll be discussing FIFO Pattern.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Problem:
&lt;/h3&gt;

&lt;p&gt;Let's assume we're building an application where we'll send a series of messages which are related to each other and moreover the sequence how it will be received and processed is very important. Looks easy. But there is a catch. There might be multiple receivers. Now how we'll guarantee the sequential delivery and ensures that single receiver receives and process all messages of the series. Here is the representational image.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F8r35fc32ic5uitvert8u.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F8r35fc32ic5uitvert8u.jpg" alt="Problem" width="800" height="211"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Azure Service Bus is not prescriptive about the nature of the relationship between messages and doesn't define a model for determining where a message sequence starts or ends. &lt;/p&gt;

&lt;h3&gt;
  
  
  Solution:
&lt;/h3&gt;

&lt;p&gt;By assigning same session id to each message of the series we can assure the sequential delivery of the messages. When using sessions the service bus queue creates another virtual sub-queue inside and ensure FIFO pattern.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbctqeq5zxzzrfnmhe1xr.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbctqeq5zxzzrfnmhe1xr.jpg" alt="Solution" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When the receiver receives one message it holds an exclusive lock on all messages with the received messages session-id that exists in the queue. That exclusive lock will be held till the last message of that session received. &lt;/p&gt;

&lt;p&gt;Following are a few important points about sessions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sessions are not available for Basic price tier. &lt;/li&gt;
&lt;li&gt;Once session is enabled for a queue,  normal sending and receiving of messages won't be available in that queue. Every message should be sent and received with a session lock. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Conclusion:
&lt;/h3&gt;

&lt;p&gt;There are many more features of Azure Service bus and session is one of them. I will be coming up with more articles about the rest of the features. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Watch this space for a code file link.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Useful articles related to Service Bus:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="//How%20to%20Send%20and%20Receive%20messages%20through%20Azure%20Service%20Bus%20Queue%20using%20.Net%20Core%20Client."&gt;How to Send and Receive messages through Azure Service Bus Queue using .Net Core Client.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cover Image Courtesy: &lt;span&gt;Photo by &lt;a href="https://unsplash.com/@scottwebb?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Scott Webb&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/bus?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>dotnet</category>
      <category>csharp</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How to Send and Receive messages through Azure Service Bus Queue using .Net Core Client.</title>
      <dc:creator>Satya Biswal</dc:creator>
      <pubDate>Sat, 29 Aug 2020 16:54:47 +0000</pubDate>
      <link>https://dev.to/thedevalchemist/how-to-send-and-receive-messages-through-azure-service-bus-queue-using-net-core-client-2fip</link>
      <guid>https://dev.to/thedevalchemist/how-to-send-and-receive-messages-through-azure-service-bus-queue-using-net-core-client-2fip</guid>
      <description>&lt;h1&gt;
  
  
  Introduction:
&lt;/h1&gt;

&lt;p&gt;In this article, we'll explore the process of transmitting and receiving messages via Azure Service Bus Queues with the aid of a .Net Core Client. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Source code: &lt;a href="https://github.com/TitanRintu/AzureQueueDemo" rel="noopener noreferrer"&gt;https://github.com/TitanRintu/AzureQueueDemo&lt;/a&gt;&lt;br&gt;
Video File: &lt;a href="https://youtu.be/rtZ6Y7ked5I" rel="noopener noreferrer"&gt;https://youtu.be/rtZ6Y7ked5I&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  What is Azure Service Bus Queue?
&lt;/h3&gt;

&lt;p&gt;Imagine we need to create an Order Processing Application, where a User can submit an order using a client application (such as a mobile app, website, or Windows app), and a separate server will handle the order through a service. The clients are actively sending orders, and the service is responsible for receiving and processing them. Now, let's consider a scenario where, due to a natural disaster, the server will be unavailable for one hour. What will happen to the orders placed during that time? Since the server is inaccessible, these orders will not reach the server, resulting in a loss for the Order Processing Company.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxijm2d14vnsn9mpswcz5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxijm2d14vnsn9mpswcz5.png" alt="Problem Program"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Possible Solution:
&lt;/h3&gt;

&lt;p&gt;The challenge at hand is to establish separation between the two systems. By decoupling these systems, we can ensure that no orders are lost in the future. To achieve this, we need to introduce a mechanism that allows us to store orders for later processing. Microsoft Azure offers a solution to this problem in the form of Service Bus Queues. With Service Bus Queues, we can store orders and process them at a later time. The following diagram illustrates how a Service Bus Queue functions.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fdxcxpwis8345obwa5aip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fdxcxpwis8345obwa5aip.png" alt="Possible Solution"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Definition:
&lt;/h3&gt;

&lt;p&gt;The Azure Service Bus Queue is a fully managed enterprise integration message broker.  A Service bus can decouple applications and services. The service bus offers a reliable and secure platform for the transfer of data and State. The data transfer between applications and services happened using messages. A Message is in binary format and can contain JSON, XML, or just plain text.&lt;/p&gt;

&lt;p&gt;Representational diagram of Service Bus Queues:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fydchgxt7z0peril25j20.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fydchgxt7z0peril25j20.png" alt="ServiceBus Diagram"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Namespace:
&lt;/h2&gt;

&lt;p&gt;The namespace is a container for message queues. Every message queue must be created under a Namespace.&lt;/p&gt;

&lt;h3&gt;
  
  
  Queue:
&lt;/h3&gt;

&lt;p&gt;Messages are sent to and received from queues. Queues offer FIFO message delivery to one or more competing consumers. This means messages will be received in the same order as they have added to the queue.&lt;/p&gt;

&lt;h3&gt;
  
  
  Benefits of Message Queue:
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Temporal Decoupling:
&lt;/h4&gt;

&lt;p&gt;A key benefit of using queues is Temporal decoupling. Let's understand how the process works.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; The sender sends the messages to the queue.&lt;/li&gt;
&lt;li&gt; Messages from the sender will be stored in the queue.&lt;/li&gt;
&lt;li&gt; The receiver reads the messages from the queue.
For the above process, the Sender and Receiver don't have to be sending and receiving the message at the same time. And Receiver and Sender needn't process the same message at the same time. Therefore the whole process is decoupled.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Load Leveling:
&lt;/h4&gt;

&lt;p&gt;Consider an application called App1 (sender) that sends messages, and on the receiving end, there's a service named Ser1 (receiver) responsible for receiving and processing those messages. App1 can transmit a maximum of 100 messages per second, while Ser1 can handle up to 10 messages per second. There are no intermediary components between App1 and Ser1, so as soon as App1 sends a message, Ser1 must promptly receive and process it.&lt;/p&gt;

&lt;p&gt;Initially, App1 sends 10 messages per second, and Ser1 can effectively receive and process them. However, let's assume that App1 suddenly increases its message rate to 100 messages per second. Due to Ser1's limited capacity, it can only process 10 messages, causing the remaining 90 messages to either time out or go unprocessed.&lt;/p&gt;

&lt;p&gt;By introducing a message queue, App1 can send all 100 messages, which will be stored in the queue. Ser1 can then retrieve messages from the queue and process them at its own pace. This approach eliminates the need to modify App1 or Ser1, ensuring that no data or messages are lost. This is how a message queue assists in load balancing.&lt;/p&gt;

&lt;h4&gt;
  
  
  How to Create Queues:
&lt;/h4&gt;

&lt;p&gt;Queues can be created by:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Azure Portal&lt;/li&gt;
&lt;li&gt; PowerShell&lt;/li&gt;
&lt;li&gt; Azure CLI.&lt;/li&gt;
&lt;li&gt; RMT or Resource Manager Templates.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Please follow the article from Microsoft to create a queue through Azure Portal. &lt;br&gt;
&lt;a href="https://docs.microsoft.com/en-us/azure/storage/queues/storage-quickstart-queues-portal" rel="noopener noreferrer"&gt;https://docs.microsoft.com/en-us/azure/storage/queues/storage-quickstart-queues-portal&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  How to Create Queue through Azure CLI
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;First of all, we need to create a resource group (if not exists already).
```ps
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;az group create --name ResourceGroupName --location eastus&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
* Since the message queues reside inside a namespace, We need to create a namespace first.(if namespace not exists)
```ps


az servicebus namespace create --resource-group
 ResourceGroupName --name OrderManagementNamespace --location eastus


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;After that we need to create a queue using the following command.
```ps
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;az servicebus queue create --resource-group ResourceGroupName --namespace-name OrderManagementNamespace --name ordermanagementqueue&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
* Now the message queue has been created successfully.
To check the message queue has been created or not. We need to run the following command.
```ps


az servicebus queue list --resource-group ResourceGroupName --namespace-name OrderManagementNamespace


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h4&gt;
  
  
  Sending and Receiving Messages
&lt;/h4&gt;

&lt;p&gt;We have created the Azure Service Bus Queue. Now Let's send and receive messages from the Azure Service bus queue through a .Net core Console Application. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I have used a console application for explaining the code, but you can create other types of project to achieve the same.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Let's create a blank solution named AzureQueueDemo and add the following project types into the solution.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AzureQueueDemo.Domain&lt;/strong&gt;:Dotnet Standard class library.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AzureQueueDemo.Receiver&lt;/strong&gt;:Dotnet Core Console app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AzureQueueDemo.Sender&lt;/strong&gt;:Dotnet Core Console app.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's add a new class named OrderInformation in &lt;strong&gt;AzureQueueDemo.Domain&lt;/strong&gt; project.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;OrderInformation&lt;/span&gt;  
       &lt;span class="p"&gt;{&lt;/span&gt;  
           &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;Guid&lt;/span&gt; &lt;span class="n"&gt;OrderId&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;  
           &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;OrderName&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;  
           &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;OrderQuantity&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;  
       &lt;span class="p"&gt;}&lt;/span&gt; 


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Add AzureQueueDemo.Domain project into AzureQueueDemo.Sender and AzureQueueDemo.Receiver as Project reference.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add following Nuget Package to the  AzureQueueDemo.Sender AND AzureQueueDemo.Receiver.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Microsoft.Azure.ServiceBus -v4.1.3&lt;br&gt;
NewtonSoft.Json -v12.0.3&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Let's Navigate to the Azure portal now. I have created a Namespace named: &lt;strong&gt;OrderManagementNamespace&lt;/strong&gt; and queue named &lt;strong&gt;ordermanagementqueue&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F7k2350z4riv2qopje45i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F7k2350z4riv2qopje45i.png" alt="azuredemo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;portal.azure.com -&amp;gt; OrderManagementNamespace -&amp;gt; ordermanagementqueue -&amp;gt;Shared Access Policies.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then add a new Shared access policy, named &lt;em&gt;QueuePolicy&lt;/em&gt;. Check the "Manage" Checkbox. Then Save the policy and reopen it. Upon reopen you can see 4 additional properties named Primary Key, Secondary Key, Primary Connection String and Secondary Connection string. &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2sigb5z8tad7avz8ag3x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2sigb5z8tad7avz8ag3x.png" alt="ConnectionString"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We need to use the primary Connection string to send and receive the messages.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Let's open the program class of AzureQueueDemo.Sender project and Add List Of OrderInformation to it.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;

    &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;OrderInformation&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Orders&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;OrderInformation&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;()&lt;/span&gt;  
           &lt;span class="p"&gt;{&lt;/span&gt;  
               &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;OrderInformation&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  
               &lt;span class="p"&gt;{&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderId&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Guid&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;NewGuid&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderName&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Dell Laptop"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderQuantity&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;  

               &lt;span class="p"&gt;},&lt;/span&gt;  
                &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;OrderInformation&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  
               &lt;span class="p"&gt;{&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderId&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Guid&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;NewGuid&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderName&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Apple Laptop"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderQuantity&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;  

               &lt;span class="p"&gt;},&lt;/span&gt;  
                 &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;OrderInformation&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  
               &lt;span class="p"&gt;{&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderId&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Guid&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;NewGuid&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderName&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Lenovo Laptop"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderQuantity&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;  

               &lt;span class="p"&gt;},&lt;/span&gt;  
                  &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;OrderInformation&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  
               &lt;span class="p"&gt;{&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderId&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Guid&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;NewGuid&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderName&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"MI Laptop"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderQuantity&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;  

               &lt;span class="p"&gt;}&lt;/span&gt;   

           &lt;span class="p"&gt;};&lt;/span&gt; 



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h4&gt;
  
  
  How to send messages.
&lt;/h4&gt;

&lt;p&gt;Then add the following variables in the program class of AzureQueueDemo.Sender like following.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Program&lt;/span&gt;  
       &lt;span class="p"&gt;{&lt;/span&gt;  

    &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;AZURE_SERVICE_BUS_CONNECTIONSTRING&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"&amp;lt;REPLACE WITH YOUR PRIMARY CONNECTION STRING OF *QueuePolicy*"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  
    &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;QUEUE_NAME&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"ordermanagementqueue"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;NOTE: Remove EntityPath from the Connection string which you can find at the end of the Connection string.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Let me explain what we'll write about in the program.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;we'll display a message to the user
&lt;code&gt;"Do you want to send Order Information? If Yes, Press Y."&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;then we'll Capture the user input &amp;amp; 
If the user input is "Y", then proceed to the next code.&lt;/li&gt;
&lt;li&gt;To Send the message we need to create a variable of type IQueueClient.To know more about IQueueClient, visit &lt;a href="https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.servicebus.iqueueclient?view=azure-dotnet" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;initialize IQueueClient  with &lt;strong&gt;&lt;a href="https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.servicebus.queueclient?view=azure-dotnet" rel="noopener noreferrer"&gt;QueueClient&lt;/a&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The Queueclient constructor accepts two parameters. The Azure service bus queue connection string and the queue name.&lt;/li&gt;
&lt;li&gt;Provide the primary connection string as the first argument and queue name as the second parameter.&lt;/li&gt;
&lt;li&gt;Then Iterate the orders list which we have already initialized.&lt;/li&gt;
&lt;li&gt;Serialize the Item by using JsonConvert.SerializeObject (Add Newtonsoft.Json as a namespace, if not added.)&lt;/li&gt;
&lt;li&gt;Create a new "Message" object after converting the JSON Object to Bytes by calling Encoding.UTF8.GetBytes() method.&lt;/li&gt;
&lt;li&gt;Now the message object is ready.&lt;/li&gt;
&lt;li&gt;Call the SendAsync() method of &lt;strong&gt;QueueClient&lt;/strong&gt;. for e.g. client.SendAsync(message)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is the complete code of the program class of AzureQueueDemo.Sender project.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;program&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;OrderInformation&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Orders&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;OrderInformation&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;()&lt;/span&gt;  
           &lt;span class="p"&gt;{&lt;/span&gt;  
               &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;OrderInformation&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  
               &lt;span class="p"&gt;{&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderId&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Guid&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;NewGuid&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderName&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Dell Laptop"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderQuantity&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;  

               &lt;span class="p"&gt;},&lt;/span&gt;  
                &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;OrderInformation&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  
               &lt;span class="p"&gt;{&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderId&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Guid&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;NewGuid&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderName&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Apple Laptop"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderQuantity&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;  

               &lt;span class="p"&gt;},&lt;/span&gt;  
                 &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;OrderInformation&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  
               &lt;span class="p"&gt;{&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderId&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Guid&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;NewGuid&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderName&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Lenovo Laptop"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderQuantity&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;  

               &lt;span class="p"&gt;},&lt;/span&gt;  
                  &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;OrderInformation&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  
               &lt;span class="p"&gt;{&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderId&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Guid&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;NewGuid&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderName&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"MI Laptop"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  
                   &lt;span class="n"&gt;OrderQuantity&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;  

               &lt;span class="p"&gt;}&lt;/span&gt;   

           &lt;span class="p"&gt;};&lt;/span&gt; 

    &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;AZURE_SERVICE_BUS_CONNECTIONSTRING&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"&amp;lt;REPLACE WITH YOUR PRIMARY CONNECTION STRING Of Senderpolicy REMOVE entitypath AND ITS VALUE FROM THE STRING&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  
           &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;QUEUE_NAME&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"ordermanagementqueue"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  
           &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="n"&gt;Task&lt;/span&gt; &lt;span class="nf"&gt;Main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  
           &lt;span class="p"&gt;{&lt;/span&gt;  
               &lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Do you want to send Order Information? If Yes , Press Y."&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  
               &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ReadLine&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;  
               &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Equals&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Y"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;  
               &lt;span class="p"&gt;{&lt;/span&gt;  
                   &lt;span class="n"&gt;IQueueClient&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;QueueClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;AZURE_SERVICE_BUS_CONNECTIONSTRING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;QUEUE_NAME&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  
                   &lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;Orders&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  
                   &lt;span class="p"&gt;{&lt;/span&gt;  
                       &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;messageBody&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;JsonConvert&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;SerializeObject&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  
                       &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;Message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Encoding&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UTF8&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetBytes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;messageBody&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;  
                       &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;SendAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  
                       &lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;$"Sending Message : &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OrderName&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToString&lt;/span&gt;&lt;span class="p"&gt;()}&lt;/span&gt;&lt;span class="s"&gt; "&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  

                   &lt;span class="p"&gt;}&lt;/span&gt;  
               &lt;span class="p"&gt;}&lt;/span&gt;  
               &lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Read&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;  
           &lt;span class="p"&gt;}&lt;/span&gt;  
&lt;span class="p"&gt;}&lt;/span&gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h4&gt;
  
  
  How to receive messages.
&lt;/h4&gt;

&lt;p&gt;To receive a message we need a variable of type QueueClient class. We need to use the &lt;strong&gt;RegisterMessageHandler&lt;/strong&gt; method of  the QueueClient.&lt;br&gt;
It accepts two parameters. The first one is the Func delegate and the second one is the &lt;a href="https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.servicebus.messagehandleroptions?view=azure-dotnet" rel="noopener noreferrer"&gt;MessageHandlerOptions&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Func delegate, handles the message processing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;MessageHandlerOptions tell the func how to process the messge. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;In MessageHandlerOptions we can handle&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to complete the message.&lt;/li&gt;
&lt;li&gt;How many concurrent calls client can handle.&lt;/li&gt;
&lt;li&gt;How to handle exceptions if any during the processing of the message.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;Following is the complete code of AzureQueueDemo.Receiver program class.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;

    &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Program&lt;/span&gt;  
       &lt;span class="p"&gt;{&lt;/span&gt;  
           &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;AZURE_SERVICE_BUS_CONNECTIONSTRING&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"&amp;lt;REPLACE WITH YOUR PRIMARY CONNECTION STRING Of QueuePolicy. REMOVE entitypath AND ITS VALUE FROM THE STRING&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  
           &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;QUEUE_NAME&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"ordermanagementqueue"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  
           &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="n"&gt;IQueueClient&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  
           &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="n"&gt;Task&lt;/span&gt; &lt;span class="nf"&gt;Main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  
           &lt;span class="p"&gt;{&lt;/span&gt;  
               &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;ReceiveMessagesAsync&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;  
           &lt;span class="p"&gt;}&lt;/span&gt;  

           &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt;  &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="n"&gt;Task&lt;/span&gt; &lt;span class="nf"&gt;ReceiveMessagesAsync&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  
           &lt;span class="p"&gt;{&lt;/span&gt;  
               &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;Task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Factory&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;StartNew&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;  
               &lt;span class="p"&gt;{&lt;/span&gt;  
                   &lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;QueueClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;AZURE_SERVICE_BUS_CONNECTIONSTRING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;QUEUE_NAME&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  
                   &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;options&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;MessageHandlerOptions&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ExceptionMethod&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  
                   &lt;span class="p"&gt;{&lt;/span&gt;  
                       &lt;span class="n"&gt;MaxConcurrentCalls&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  
                       &lt;span class="n"&gt;AutoComplete&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;false&lt;/span&gt;  
                   &lt;span class="p"&gt;};&lt;/span&gt;  
                   &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;RegisterMessageHandler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ExecuteMessageProcessing&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  
               &lt;span class="p"&gt;});&lt;/span&gt;  
               &lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Read&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;  

           &lt;span class="p"&gt;}&lt;/span&gt;  

           &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="n"&gt;Task&lt;/span&gt; &lt;span class="nf"&gt;ExecuteMessageProcessing&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Message&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;CancellationToken&lt;/span&gt; &lt;span class="n"&gt;arg2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  
           &lt;span class="p"&gt;{&lt;/span&gt;  
               &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;JsonConvert&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DeserializeObject&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;OrderInformation&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;(&lt;/span&gt;&lt;span class="n"&gt;Encoding&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UTF8&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Body&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;  
               &lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;$"Order Id is &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OrderId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s"&gt;, Order name is &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OrderName&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s"&gt; and quantity is &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OrderQuantity&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  
               &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;CompleteAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SystemProperties&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;LockToken&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  
           &lt;span class="p"&gt;}&lt;/span&gt;  

           &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="n"&gt;Task&lt;/span&gt; &lt;span class="nf"&gt;ExceptionMethod&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ExceptionReceivedEventArgs&lt;/span&gt; &lt;span class="n"&gt;arg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  
           &lt;span class="p"&gt;{&lt;/span&gt;  
               &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;Task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Run&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;  
              &lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;$"Error occured. Error is &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;arg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Exception&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Message&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  
              &lt;span class="p"&gt;);&lt;/span&gt;  
           &lt;span class="p"&gt;}&lt;/span&gt;  
       &lt;span class="p"&gt;}&lt;/span&gt; 


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Now we are ready with Sender and Receiver code. Make sure to add both projects as startup project to see the result side by side.&lt;/p&gt;

&lt;p&gt;Now lets run the project and see the output window for result.&lt;/p&gt;

&lt;p&gt;Conclusion:&lt;br&gt;
In the above article, we have learned how to send and receive messages from the Azure Service Message Queue. The source code has been uploaded to Git Hub and can be downloaded from the following link. &lt;a href="https://github.com/TitanRintu/AzureQueueDemo" rel="noopener noreferrer"&gt;https://github.com/TitanRintu/AzureQueueDemo&lt;/a&gt;&lt;br&gt;
Cover image courtesy:&lt;/p&gt;

&lt;p&gt;(&lt;span&gt;Photo by &lt;a href="https://unsplash.com/@waldemarbrandt67w?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Waldemar Brandt&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/mail?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/span&gt;)&lt;/p&gt;

</description>
      <category>azure</category>
      <category>dotnet</category>
      <category>vscode</category>
      <category>queue</category>
    </item>
  </channel>
</rss>
