<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.biztalkgurus.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>BizTalk Gurus</title><link>http://www.biztalkgurus.com/default.aspx</link><description>This is the root of BizTalkGurus.com.  This site contains community content for AppFabric, BizTalk Server, and Windows Workflow.</description><dc:language /><generator>Telligent Community 5.6.582.12783 (Build: 5.6.582.12783)</generator><item><title>Blog Post: Message Box Viewer 13 included in BizTalk Server 2013</title><link>http://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalksyn/archive/2013/05/22/message-box-viewer-13-included-in-biztalk-server-2013.aspx</link><pubDate>Wed, 22 May 2013 05:39:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37526</guid><dc:creator>Syndicated BizTalk Author</dc:creator><description>&lt;p&gt;For BizTalk people probably you don&amp;#8217;t need any introduction to Message Box Viewer. It became as the de-facto tool to analyse and fix any issue you find in your environment. The tool was initially built as hobby project by one of the Microsoft PSS (support) person called Jean-Pierre Auconie (JP) and over the years it&amp;#8217;s [...]&lt;/p&gt;&lt;p&gt;The post &lt;a href="http://blogs.biztalk360.com/message-box-viewer-13-included-in-biztalk-server-2013/"&gt;Message Box Viewer 13 included in BizTalk Server 2013&lt;/a&gt; appeared first on &lt;a href="http://blogs.biztalk360.com"&gt;BizTalk360 Blog&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt; Blog Post by: Saravana Kumar</description></item><item><title>Blog Post: Note to self - how to stop VS 2012 menus being all caps</title><link>http://www.biztalkgurus.com/windows_workflow/b/workflow-syn/archive/2013/05/21/note-to-self-how-to-stop-vs-2012-menus-being-all-caps.aspx</link><pubDate>Tue, 21 May 2013 20:49:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37524</guid><dc:creator>Syndicated Workflow Author</dc:creator><description>&lt;p&gt;reg ADD &amp;quot;HKCU\Software\Microsoft\VisualStudio\11.0\General&amp;quot; /v &amp;quot;SuppressUpperCaseConversion&amp;quot; /t REG_DWORD /d 1&lt;/p&gt;  &lt;p&gt;I just thought I&amp;#39;d put this here in case I ever lose the info again. :)&lt;/p&gt;  &lt;p&gt;Isn&amp;#39;t setting up a new machine fun.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10420411" width="1" height="1" alt=" " /&gt;&lt;br /&gt; Blog Post by: tilovell09</description></item><item><title>Blog Post: BizTalk 2013 Installation and Configuration – Installing BizTalk Adapter Pack (Part 12)</title><link>http://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalksyn/archive/2013/05/21/biztalk-2013-installation-and-configuration-installing-biztalk-adapter-pack-part-12.aspx</link><pubDate>Tue, 21 May 2013 20:09:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37525</guid><dc:creator>Syndicated BizTalk Author</dc:creator><description>BizTalk Adapter Pack 2010 along with BizTalk AppFabric Connect, RFID features, UDDI services and ESB Toolkit are not automatically installed with the default installation process, instead you have to additional install this features The Microsoft BizTalk Adapter Pack contains adapters that enable enterprise applications and databases to interface with each other by implementing a common [&amp;#8230;]&lt;img alt=" " border="0" src="http://stats.wordpress.com/b.gif?host=sandroaspbiztalkblog.wordpress.com&amp;#038;blog=16199969&amp;#038;post=3143&amp;#038;subd=sandroaspbiztalkblog&amp;#038;ref=&amp;#038;feed=1" width="1" height="1" /&gt;&lt;br /&gt; Blog Post by: Sandro Pereira</description></item><item><title>Blog Post: 3 BizTalk Servers, 2 Datacenters, 1 On-prem</title><link>http://www.biztalkgurus.com/appfabric/b/appfabric-syn/archive/2013/05/21/3-biztalk-servers-2-datacenters-1-on-prem.aspx</link><pubDate>Tue, 21 May 2013 15:26:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37523</guid><dc:creator>Syndicated AppFabric Author</dc:creator><description>&lt;p&gt;As you’re probably aware, Windows Azure IaaS went general availability recently. There are three BizTalk images in the gallery that you use to create a new BizTalk virtual machine.&lt;/p&gt;  &lt;p&gt;This was too much for me to resist, I wanted to do something cool and distributed as a proof-of-concept. The result is this blog post, and the accompanying &lt;a href="http://www.youtube.com/watch?feature=player_detailpage&amp;amp;v=eRTnp1nM5_k"&gt;&lt;strong&gt;video that shows the demo running&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;To get to the bottom line, I used 2 BizTalk VMs on Azure, and 1 running “on prem” (in a Hyper-V VM). The roles of the servers are as follows:&lt;/p&gt;  &lt;p&gt;Server 1 (“Spoke”, Western Europe): &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;receives a batch of orders &lt;/li&gt;    &lt;li&gt;disassembles the batch into individual orders &lt;/li&gt;    &lt;li&gt;uses the WCF-WebHttp adapter to send each order to the hub via a REST POST &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Server 2 (“Hub”, Southeast Asia)&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;receives each order via the WCF-WebHttp adapter &lt;/li&gt;    &lt;li&gt;sends each order on the the Azure Service Bus using the WCF-NetTcpRelay adapter &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Server 3 (“On-prem”, San Diego USA)&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;establishes an endpoint on the Windows Azure Service Bus using the WCF-NetTcpRelay adapter &lt;/li&gt;    &lt;li&gt;receives order messages sent to that endpoint &lt;/li&gt;    &lt;li&gt;persists them to file &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;As this is the &lt;em&gt;ultimate&lt;/em&gt; “watch a file disappear here and another show up there” canonical BizTalk demo, I put a video together showing it working. All BizTalk people have done one of these demos before, but this is as far as I know the first one to circle the planet, leveraging Windows Azure.&lt;/p&gt;  &lt;p&gt;I created this demo by first getting everything running locally in a single Hyper-V VM. Then, after deploying, all I needed to do was re-configure thee Spoke machine send port to that it would send to the Hub machine. For the BizTalk Servers running in Windows Azure, I used the Evaluation image, which has SQL Server installed (the Standard and Enterprise images do not).&lt;/p&gt;  &lt;p&gt;The Spoke machine uses the default settings (it seems the default behavior of a WCF-WebHttp adapter in a send port is to do a POST, which makes sense).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://brianloesgen.com/resource/Windows-Live-Writer-e0f4de125879_BF45-?fileId=22736666" rel="lightbox"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://brianloesgen.com/resource/Windows-Live-Writer-e0f4de125879_BF45-?fileId=22736667" width="269" height="375" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The Hub machine receive location also uses the default settings:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://brianloesgen.com/resource/Windows-Live-Writer-e0f4de125879_BF45-?fileId=22736669" rel="lightbox"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://brianloesgen.com/resource/Windows-Live-Writer-e0f4de125879_BF45-?fileId=22736670" width="272" height="380" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The Hub machine send port (sending to the Windows Azure Service Bus) looks like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://brianloesgen.com/resource/Windows-Live-Writer-e0f4de125879_BF45-?fileId=22736671" rel="lightbox"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://brianloesgen.com/resource/Windows-Live-Writer-e0f4de125879_BF45-?fileId=22736672" width="280" height="387" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://brianloesgen.com/resource/Windows-Live-Writer-e0f4de125879_BF45-?fileId=22736673" rel="lightbox"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://brianloesgen.com/resource/Windows-Live-Writer-e0f4de125879_BF45-?fileId=22736674" width="362" height="438" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The credentials used above are the credentials for the Service Bus namespace.&lt;/p&gt;  &lt;p&gt;Remember to &lt;a href="http://www.youtube.com/watch?feature=player_detailpage&amp;amp;v=eRTnp1nM5_k"&gt;watch the video&lt;/a&gt;!&lt;/p&gt;&lt;br /&gt; Blog Post by: Brian Loesgen</description></item><item><title>Blog Post: BizTalk prerequisite files list (summary) [Updated]</title><link>http://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalksyn/archive/2013/05/21/biztalk-prerequisite-files-list-summary-updated.aspx</link><pubDate>Tue, 21 May 2013 14:00:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37522</guid><dc:creator>Syndicated BizTalk Author</dc:creator><description>At a certain point in time when installing BizTalk, you will need to install some extra components. In the BizTalk installation wizard this is referred to as a prerequisite file.   This file can be downloaded automatically from within the wizard, but you might want to download them first. Here&amp;#39;s the list from BizTalk 2006 R2 up to BizTalk 2013!</description></item><item><title>Forum Post: Re: Exception handling using ESB and resubmitting failed message after correction via ESB portal</title><link>http://www.biztalkgurus.com/biztalk_server/biztalk_2010/f/37/p/20687/37521.aspx#37521</link><pubDate>Tue, 21 May 2013 12:21:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37521</guid><dc:creator>Anonymous</dc:creator><description>&lt;p&gt;please check the itinerary status of your project if it is published please make it deployed. and then check it Itinearary database where the nstatus value is 1 or not &lt;/p&gt; </description></item><item><title>Blog Post: Terminating an XSLT transform during processing</title><link>http://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalksyn/archive/2013/05/21/terminating-an-xslt-transform-during-processing.aspx</link><pubDate>Tue, 21 May 2013 05:24:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37520</guid><dc:creator>Syndicated BizTalk Author</dc:creator><description>I have run into an instance where I need to terminate and raise an exception from within an XSLT template, based on values (or lack thereof) within the source document.  The XSLT transform is running within a BizTalk map. The secret is the following little-known XSLT construct, which can be conditionally called at any point [&amp;#8230;]&lt;img alt=" " border="0" src="http://stats.wordpress.com/b.gif?host=biztalktalk.wordpress.com&amp;#038;blog=4474709&amp;#038;post=286&amp;#038;subd=biztalktalk&amp;#038;ref=&amp;#038;feed=1" width="1" height="1" /&gt;&lt;br /&gt; Blog Post by: Brett</description></item><item><title>Blog Post: BizTalk 2013 Installation and Configuration – Validate Mail account used by BizTalk to send BAM Alerts (Part 11)</title><link>http://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalksyn/archive/2013/05/20/biztalk-2013-installation-and-configuration-validate-mail-account-used-by-biztalk-to-send-bam-alerts-part-11.aspx</link><pubDate>Mon, 20 May 2013 22:00:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37519</guid><dc:creator>Syndicated BizTalk Author</dc:creator><description>After you configure with success BizTalk Server 2013 BAM Alerts, the configurator will create a new Database Mail Account called “BAM_Alerts_Account” that will be used by BizTalk to send BAM Alerts. To Validate Mail account used by BizTalk to send BAM Alerts: Press the “Windows key” to switch to Metro UI and type “SQL Management” [&amp;#8230;]&lt;img alt=" " border="0" src="http://stats.wordpress.com/b.gif?host=sandroaspbiztalkblog.wordpress.com&amp;#038;blog=16199969&amp;#038;post=3066&amp;#038;subd=sandroaspbiztalkblog&amp;#038;ref=&amp;#038;feed=1" width="1" height="1" /&gt;&lt;br /&gt; Blog Post by: Sandro Pereira</description></item><item><title>Forum Post: Re: Wcf Service publishing Error</title><link>http://www.biztalkgurus.com/biztalk_server/biztalk_2010/f/37/p/18651/37517.aspx#37517</link><pubDate>Mon, 20 May 2013 19:43:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37517</guid><dc:creator>Anonymous</dc:creator><description>&lt;p&gt;Thank you Worked for me&lt;/p&gt; </description></item><item><title>Forum Post: Re: Error: Finding document specification by message type failed</title><link>http://www.biztalkgurus.com/biztalk_server/biztalk_2004/f/9/p/1351/37514.aspx#37514</link><pubDate>Mon, 20 May 2013 16:45:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37514</guid><dc:creator>Anonymous</dc:creator><description>&lt;p&gt;Hey I tryed both but I am still getting this error.&lt;/p&gt; &lt;p&gt;Mark&lt;/p&gt; </description></item><item><title>Blog Post: Unit testing code depending on the ASP.NET #WebApi HttpClient</title><link>http://www.biztalkgurus.com/appfabric/b/appfabric-syn/archive/2013/05/20/unit-testing-code-depending-on-the-asp-net-webapi-httpclient.aspx</link><pubDate>Mon, 20 May 2013 15:37:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37515</guid><dc:creator>Syndicated AppFabric Author</dc:creator><description>&lt;p&gt;In a &lt;a href="http://msmvps.com/blogs/theproblemsolver/archive/2013/05/12/unit-testing-a-asp-net-webapi-controller.aspx"&gt;previous post&lt;/a&gt; I showed how to unit test an ASP.NET WebAPI Controller. But with a REST service there is both a client and a service component. Assuming for a moment the client part is also written in C# we should test that as well.&lt;/p&gt;  &lt;p&gt;In this case the client application contains the following class to load books from the REST WebAPI controller:&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;div id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;     &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; BooksClient&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;readonly&lt;/span&gt; HttpClient _httpClient;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt;&amp;#160; &lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum5" style="color:#606060;"&gt;   5:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; BooksClient(HttpClient httpClient)&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum6" style="color:#606060;"&gt;   6:&lt;/span&gt;     {&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum7" style="color:#606060;"&gt;   7:&lt;/span&gt;         _httpClient = httpClient;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum8" style="color:#606060;"&gt;   8:&lt;/span&gt;         BaseUrl = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Uri(&lt;span style="color:#006080;"&gt;&amp;quot;http://localhost:63895/api/books/&amp;quot;&lt;/span&gt;);&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum9" style="color:#606060;"&gt;   9:&lt;/span&gt;     }&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum10" style="color:#606060;"&gt;  10:&lt;/span&gt;&amp;#160; &lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum11" style="color:#606060;"&gt;  11:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Uri BaseUrl { get; &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; set; }&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum12" style="color:#606060;"&gt;  12:&lt;/span&gt;&amp;#160; &lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum13" style="color:#606060;"&gt;  13:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; IEnumerable&amp;lt;Book&amp;gt; GetBooks()&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum14" style="color:#606060;"&gt;  14:&lt;/span&gt;     {&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum15" style="color:#606060;"&gt;  15:&lt;/span&gt;         var response = _httpClient.GetAsync(BaseUrl).Result;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum16" style="color:#606060;"&gt;  16:&lt;/span&gt;         response.EnsureSuccessStatusCode();&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum17" style="color:#606060;"&gt;  17:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; response.Content.ReadAsAsync&amp;lt;Book[]&amp;gt;().Result;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum18" style="color:#606060;"&gt;  18:&lt;/span&gt;     }&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum19" style="color:#606060;"&gt;  19:&lt;/span&gt;&amp;#160; &lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum20" style="color:#606060;"&gt;  20:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Book GetBook(&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; id)&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum21" style="color:#606060;"&gt;  21:&lt;/span&gt;     {&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum22" style="color:#606060;"&gt;  22:&lt;/span&gt;         var requestUri = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Uri(BaseUrl, id.ToString(CultureInfo.InvariantCulture));&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum23" style="color:#606060;"&gt;  23:&lt;/span&gt;         var response = _httpClient.GetAsync(requestUri).Result;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum24" style="color:#606060;"&gt;  24:&lt;/span&gt;         response.EnsureSuccessStatusCode();&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum25" style="color:#606060;"&gt;  25:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; response.Content.ReadAsAsync&amp;lt;Book&amp;gt;().Result;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum26" style="color:#606060;"&gt;  26:&lt;/span&gt;     }&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum27" style="color:#606060;"&gt;  27:&lt;/span&gt;&amp;#160; &lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum28" style="color:#606060;"&gt;  28:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Tuple&amp;lt;Book, Uri&amp;gt; PostBook(Book book)&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum29" style="color:#606060;"&gt;  29:&lt;/span&gt;     {&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum30" style="color:#606060;"&gt;  30:&lt;/span&gt;         var response = _httpClient.PostAsJsonAsync(BaseUrl.ToString(), book).Result;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum31" style="color:#606060;"&gt;  31:&lt;/span&gt;         response.EnsureSuccessStatusCode();&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum32" style="color:#606060;"&gt;  32:&lt;/span&gt;         var newBook = response.Content.ReadAsAsync&amp;lt;Book&amp;gt;().Result;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum33" style="color:#606060;"&gt;  33:&lt;/span&gt;         var location = response.Headers.Location;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum34" style="color:#606060;"&gt;  34:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Tuple&amp;lt;Book, Uri&amp;gt;(newBook, location);&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum35" style="color:#606060;"&gt;  35:&lt;/span&gt;     }&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum36" style="color:#606060;"&gt;  36:&lt;/span&gt; }&lt;/pre&gt;  &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;This class uses the &lt;a href="http://msdn.microsoft.com/en-us/library/system.net.http.httpclient.aspx"&gt;HttpClient&lt;/a&gt; to request the data from the service and extracts the books from the body before returning them.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;h3&gt;Testing the BooksClient class&lt;/h3&gt;    &lt;p&gt;If we want to test this class we need to pass in an HttpClient object. This might not sound like a big deal but as this class doesn’t implement an interface we can’t use most of the standard mocking frameworks like &lt;a href="https://code.google.com/p/moq/"&gt;Moq&lt;/a&gt; to replace the HttpClient with a test fake.&lt;/p&gt;    &lt;p&gt;It turns out that this isn’t a big issue though as you can replace the internal pipeline of the HttpClient instead. This is done by passing in an &lt;a href="http://msdn.microsoft.com/en-us/library/system.net.http.httpmessagehandler.aspx"&gt;HttpMessageHandler&lt;/a&gt;. This HttpMessageHandler is used as the pipeline to send requests and we can completely replace this with our own implementation. The easiest way is by creating a dummy &lt;a href="http://msdn.microsoft.com/en-us/library/system.net.http.delegatinghandler.aspx"&gt;DelegatingHandler&lt;/a&gt; and overriding the SendAsync() function to just return a fake response instead of actually doing an HTTP request.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;h3&gt;The TestingDelegatingHandler&amp;lt;T&amp;gt; class&lt;/h3&gt;    &lt;p&gt;Creating a dummy DelegatingHandler&amp;#160; isn’t hard but using the &lt;a href="https://gist.github.com/mauricedb/5612901"&gt;TestingDelegatingHandler&amp;lt;T&amp;gt;&lt;/a&gt; makes this really easy. The complete code is below and is pretty simple:&lt;/p&gt;    &lt;div id="codeSnippetWrapper"&gt;    &lt;div id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; TestingDelegatingHandler&amp;lt;T&amp;gt; : DelegatingHandler&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; Func&amp;lt;HttpRequestMessage, HttpResponseMessage&amp;gt; _httpResponseMessageFunc;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt;&amp;#160; &lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum5" style="color:#606060;"&gt;   5:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; TestingDelegatingHandler(T &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;)&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum6" style="color:#606060;"&gt;   6:&lt;/span&gt;         : &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;(HttpStatusCode.OK, &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;)&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum7" style="color:#606060;"&gt;   7:&lt;/span&gt;     { }&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum8" style="color:#606060;"&gt;   8:&lt;/span&gt;&amp;#160; &lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum9" style="color:#606060;"&gt;   9:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; TestingDelegatingHandler(HttpStatusCode statusCode)&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum10" style="color:#606060;"&gt;  10:&lt;/span&gt;         : &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;(statusCode, &lt;span style="color:#0000ff;"&gt;default&lt;/span&gt;(T))&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum11" style="color:#606060;"&gt;  11:&lt;/span&gt;     { }&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum12" style="color:#606060;"&gt;  12:&lt;/span&gt;&amp;#160; &lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum13" style="color:#606060;"&gt;  13:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; TestingDelegatingHandler(HttpStatusCode statusCode, T &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;)&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum14" style="color:#606060;"&gt;  14:&lt;/span&gt;     {&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum15" style="color:#606060;"&gt;  15:&lt;/span&gt;         _httpResponseMessageFunc = request =&amp;gt; request.CreateResponse(statusCode, &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;);&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum16" style="color:#606060;"&gt;  16:&lt;/span&gt;     }&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum17" style="color:#606060;"&gt;  17:&lt;/span&gt;&amp;#160; &lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum18" style="color:#606060;"&gt;  18:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; TestingDelegatingHandler(&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum19" style="color:#606060;"&gt;  19:&lt;/span&gt;         Func&amp;lt;HttpRequestMessage, HttpResponseMessage&amp;gt; httpResponseMessageFunc)&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum20" style="color:#606060;"&gt;  20:&lt;/span&gt;     {&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum21" style="color:#606060;"&gt;  21:&lt;/span&gt;         _httpResponseMessageFunc = httpResponseMessageFunc;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum22" style="color:#606060;"&gt;  22:&lt;/span&gt;     }&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum23" style="color:#606060;"&gt;  23:&lt;/span&gt;&amp;#160; &lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum24" style="color:#606060;"&gt;  24:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; Task&amp;lt;HttpResponseMessage&amp;gt; SendAsync(&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum25" style="color:#606060;"&gt;  25:&lt;/span&gt;         HttpRequestMessage request, CancellationToken cancellationToken)&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum26" style="color:#606060;"&gt;  26:&lt;/span&gt;     {&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum27" style="color:#606060;"&gt;  27:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; Task.Factory.StartNew(() =&amp;gt; _httpResponseMessageFunc(request));&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum28" style="color:#606060;"&gt;  28:&lt;/span&gt;     }&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum29" style="color:#606060;"&gt;  29:&lt;/span&gt; }&lt;/pre&gt;  &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;The most important function is the &lt;a href="http://msdn.microsoft.com/en-us/library/system.net.http.delegatinghandler.sendasync.aspx"&gt;SendAsync()&lt;/a&gt; which returns a new Task. Did I mention that the WebAPI is completely async enabled? Well it is so we just have to return a new &lt;a href="http://msdn.microsoft.com/en-us/library/dd321424.aspx"&gt;Task&lt;/a&gt; that returns the &lt;a href="http://msdn.microsoft.com/en-us/library/system.net.http.httpresponsemessage.aspx"&gt;HttpResponseMessage&lt;/a&gt; instead of the HttpResponseMessage directly.&lt;/p&gt;    &lt;p&gt;    &lt;br /&gt;&lt;/p&gt;    &lt;h3&gt;Testing the GetBooks() function&lt;/h3&gt;    &lt;p&gt;The GetBooks() function gets all books from the REST service. A test is pretty simple. The only thing to be aware of is that in order to use the TestingDelegatingHandler we also need to create an &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.http.httpserver(v=vs.108).aspx"&gt;HttpServer&lt;/a&gt; object and pass in an &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.http.httpconfiguration(v=vs.108).aspx"&gt;HttpConfiguration&lt;/a&gt; object. Normally an empty HttpConfiguration will be enough.&lt;/p&gt;    &lt;div id="codeSnippetWrapper"&gt;    &lt;div id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; [TestMethod]&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; WhenGettingAllBooksTheyShouldBeReturned()&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt;     &lt;span style="color:#008000;"&gt;// Arrange&lt;/span&gt;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum5" style="color:#606060;"&gt;   5:&lt;/span&gt;     var books = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;[]&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum6" style="color:#606060;"&gt;   6:&lt;/span&gt;     {&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum7" style="color:#606060;"&gt;   7:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Book{Id = 1, Author = &lt;span style="color:#006080;"&gt;&amp;quot;Me&amp;quot;&lt;/span&gt;, Title = &lt;span style="color:#006080;"&gt;&amp;quot;Book 1&amp;quot;&lt;/span&gt;},&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum8" style="color:#606060;"&gt;   8:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Book{Id = 2, Author = &lt;span style="color:#006080;"&gt;&amp;quot;You&amp;quot;&lt;/span&gt;, Title = &lt;span style="color:#006080;"&gt;&amp;quot;Book 2&amp;quot;&lt;/span&gt;}&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum9" style="color:#606060;"&gt;   9:&lt;/span&gt;     };&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum10" style="color:#606060;"&gt;  10:&lt;/span&gt;     var testingHandler = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; TestingDelegatingHandler&amp;lt;Book[]&amp;gt;(books);&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum11" style="color:#606060;"&gt;  11:&lt;/span&gt;     var server = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; HttpServer(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; HttpConfiguration(), testingHandler);&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum12" style="color:#606060;"&gt;  12:&lt;/span&gt;     var client = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; BooksClient(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; HttpClient(server));&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum13" style="color:#606060;"&gt;  13:&lt;/span&gt;&amp;#160; &lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum14" style="color:#606060;"&gt;  14:&lt;/span&gt;     &lt;span style="color:#008000;"&gt;// Act&lt;/span&gt;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum15" style="color:#606060;"&gt;  15:&lt;/span&gt;     var booksReturned = client.GetBooks();&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum16" style="color:#606060;"&gt;  16:&lt;/span&gt;&amp;#160; &lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum17" style="color:#606060;"&gt;  17:&lt;/span&gt;     &lt;span style="color:#008000;"&gt;// Assert&lt;/span&gt;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum18" style="color:#606060;"&gt;  18:&lt;/span&gt;     Assert.AreEqual(2, booksReturned.Count());&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum19" style="color:#606060;"&gt;  19:&lt;/span&gt; }&lt;/pre&gt;  &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;    &lt;br /&gt;Simple enough right?&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;h3&gt;Testing the GetBook(int id) function&lt;/h3&gt;    &lt;p&gt;Testing this method is not much harder but we need to test both a positive and a negative result. The positive is just as simple as above:&lt;/p&gt;    &lt;div id="codeSnippetWrapper"&gt;    &lt;div id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; [TestMethod]&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; WhenGettingAValidBookItShouldBeReturned()&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt;     &lt;span style="color:#008000;"&gt;// Arrange&lt;/span&gt;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum5" style="color:#606060;"&gt;   5:&lt;/span&gt;     var book = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Book { Id = 2, Author = &lt;span style="color:#006080;"&gt;&amp;quot;You&amp;quot;&lt;/span&gt;, Title = &lt;span style="color:#006080;"&gt;&amp;quot;Book 2&amp;quot;&lt;/span&gt; };&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum6" style="color:#606060;"&gt;   6:&lt;/span&gt;     var testingHandler = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; TestingDelegatingHandler&amp;lt;Book&amp;gt;(book);&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum7" style="color:#606060;"&gt;   7:&lt;/span&gt;     var server = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; HttpServer(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; HttpConfiguration(), testingHandler);&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum8" style="color:#606060;"&gt;   8:&lt;/span&gt;     var client = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; BooksClient(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; HttpClient(server));&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum9" style="color:#606060;"&gt;   9:&lt;/span&gt;&amp;#160; &lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum10" style="color:#606060;"&gt;  10:&lt;/span&gt;     &lt;span style="color:#008000;"&gt;// Act&lt;/span&gt;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum11" style="color:#606060;"&gt;  11:&lt;/span&gt;     var bookReturned = client.GetBook(2);&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum12" style="color:#606060;"&gt;  12:&lt;/span&gt;&amp;#160; &lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum13" style="color:#606060;"&gt;  13:&lt;/span&gt;     &lt;span style="color:#008000;"&gt;// Assert&lt;/span&gt;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum14" style="color:#606060;"&gt;  14:&lt;/span&gt;     Assert.IsNotNull(bookReturned);&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum15" style="color:#606060;"&gt;  15:&lt;/span&gt;     Assert.AreEqual(&lt;span style="color:#006080;"&gt;&amp;quot;Book 2&amp;quot;&lt;/span&gt;, bookReturned.Title);&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum16" style="color:#606060;"&gt;  16:&lt;/span&gt; }&lt;/pre&gt;  &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;The negative case isn’t much harder, all we need to do is make sure our dummy service returns an HTTP 404 Not Found status. With the overloads for the TestingDelegatingHandler&amp;lt;T&amp;gt; this is easy enough. See below:&lt;/p&gt;    &lt;div id="codeSnippetWrapper"&gt;    &lt;div id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; [TestMethod]&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt; [ExpectedException(&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(HttpRequestException))]&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; WhenGettingAnInvalidBookItShouldThrow()&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt; {&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum5" style="color:#606060;"&gt;   5:&lt;/span&gt;     &lt;span style="color:#008000;"&gt;// Arrange&lt;/span&gt;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum6" style="color:#606060;"&gt;   6:&lt;/span&gt;     var testingHandler = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; TestingDelegatingHandler&amp;lt;Book&amp;gt;(HttpStatusCode.NotFound);&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum7" style="color:#606060;"&gt;   7:&lt;/span&gt;     var server = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; HttpServer(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; HttpConfiguration(), testingHandler);&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum8" style="color:#606060;"&gt;   8:&lt;/span&gt;     var client = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; BooksClient(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; HttpClient(server));&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum9" style="color:#606060;"&gt;   9:&lt;/span&gt;&amp;#160; &lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum10" style="color:#606060;"&gt;  10:&lt;/span&gt;     &lt;span style="color:#008000;"&gt;// Act&lt;/span&gt;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum11" style="color:#606060;"&gt;  11:&lt;/span&gt;     client.GetBook(-1);&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum12" style="color:#606060;"&gt;  12:&lt;/span&gt;&amp;#160; &lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum13" style="color:#606060;"&gt;  13:&lt;/span&gt;     &lt;span style="color:#008000;"&gt;// Assert&lt;/span&gt;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum14" style="color:#606060;"&gt;  14:&lt;/span&gt;     Assert.Fail();&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum15" style="color:#606060;"&gt;  15:&lt;/span&gt; }&lt;/pre&gt;  &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Nice and simple right?&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;h3&gt;Testing am HTTP POST action&lt;/h3&gt;    &lt;p&gt;Testing an HTTP POST action to add a new book is slightly more complex. Not a whole lot but the REST convention is to return both an HTTP 201 Created status as well as the location of the new resource in an HTTP header. For this purpose the TestingDelegatingHandler&amp;lt;T&amp;gt; has an overload where you can just pass in a lambda to create the response. This gives us full flexibility and with that the test is simple enough.&lt;/p&gt;    &lt;div id="codeSnippetWrapper"&gt;    &lt;div id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; [TestMethod]&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; WhenPostingABookItShouldBeAdded()&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt;     &lt;span style="color:#008000;"&gt;// Arrange&lt;/span&gt;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum5" style="color:#606060;"&gt;   5:&lt;/span&gt;     var book = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Book { Id = 2, Author = &lt;span style="color:#006080;"&gt;&amp;quot;You&amp;quot;&lt;/span&gt;, Title = &lt;span style="color:#006080;"&gt;&amp;quot;Book 2&amp;quot;&lt;/span&gt; };&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum6" style="color:#606060;"&gt;   6:&lt;/span&gt;     var testingHandler = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; TestingDelegatingHandler&amp;lt;Book&amp;gt;(request =&amp;gt;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum7" style="color:#606060;"&gt;   7:&lt;/span&gt;     {&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum8" style="color:#606060;"&gt;   8:&lt;/span&gt;         var response = request.CreateResponse(HttpStatusCode.Created, book);&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum9" style="color:#606060;"&gt;   9:&lt;/span&gt;         response.Headers.Location =&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum10" style="color:#606060;"&gt;  10:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Uri(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#006080;"&gt;&amp;quot;http://domain.com/api/books/{0}&amp;quot;&lt;/span&gt;, book.Id));&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum11" style="color:#606060;"&gt;  11:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; response;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum12" style="color:#606060;"&gt;  12:&lt;/span&gt;     });&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum13" style="color:#606060;"&gt;  13:&lt;/span&gt;     var server = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; HttpServer(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; HttpConfiguration(), testingHandler);&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum14" style="color:#606060;"&gt;  14:&lt;/span&gt;     var client = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; BooksClient(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; HttpClient(server));&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum15" style="color:#606060;"&gt;  15:&lt;/span&gt;&amp;#160; &lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum16" style="color:#606060;"&gt;  16:&lt;/span&gt;     &lt;span style="color:#008000;"&gt;// Act&lt;/span&gt;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum17" style="color:#606060;"&gt;  17:&lt;/span&gt;     var result = client.PostBook(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Book());&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum18" style="color:#606060;"&gt;  18:&lt;/span&gt;&amp;#160; &lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum19" style="color:#606060;"&gt;  19:&lt;/span&gt;     &lt;span style="color:#008000;"&gt;// Assert&lt;/span&gt;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum20" style="color:#606060;"&gt;  20:&lt;/span&gt;     var bookReturned = result.Item1;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum21" style="color:#606060;"&gt;  21:&lt;/span&gt;     Assert.IsNotNull(bookReturned);&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum22" style="color:#606060;"&gt;  22:&lt;/span&gt;     Assert.AreEqual(&lt;span style="color:#006080;"&gt;&amp;quot;Book 2&amp;quot;&lt;/span&gt;, bookReturned.Title);&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum23" style="color:#606060;"&gt;  23:&lt;/span&gt;&amp;#160; &lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum24" style="color:#606060;"&gt;  24:&lt;/span&gt;     var location = result.Item2;&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum25" style="color:#606060;"&gt;  25:&lt;/span&gt;     Assert.AreEqual(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Uri(&lt;span style="color:#006080;"&gt;&amp;quot;http://domain.com/api/books/2&amp;quot;&lt;/span&gt;), location);&lt;/pre&gt;          &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum26" style="color:#606060;"&gt;  26:&lt;/span&gt; }&lt;/pre&gt;  &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Of course we still need tests for updating existing resources as well as deleting them but with these examples those should be easy enough :-)&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Enjoy!    &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1830810" width="1" height="1" alt=" " /&gt;&lt;br /&gt; Blog Post by: Maurice</description></item><item><title>Blog Post: BizTalk Community Series: Introducing Rob Fox</title><link>http://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalksyn/archive/2013/05/20/biztalk-community-series-introducing-rob-fox.aspx</link><pubDate>Mon, 20 May 2013 15:27:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37516</guid><dc:creator>Syndicated BizTalk Author</dc:creator><description>                     Normal    0                    false    false    false        EN-US    X-NONE    X-NONE                                                                                                                                                                                                                                                                                                           </description></item><item><title>Blog Post: MBV 13 is now available and fully compatible with BizTalk 2013 !</title><link>http://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalksyn/archive/2013/05/20/mbv-13-is-now-available-and-fully-compatible-with-biztalk-2013.aspx</link><pubDate>Mon, 20 May 2013 09:07:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37513</guid><dc:creator>Syndicated BizTalk Author</dc:creator><description>&lt;p&gt;Hello to the BizTalk community !&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;The last time I updated that blog to provide a new version of MBV is far&amp;nbsp;but&amp;nbsp;it took me a while&amp;nbsp;to update&amp;nbsp;MBV for&amp;nbsp;BizTalk 2013 and collect ideas of new queries and&amp;nbsp;rules&amp;nbsp;to add.&lt;br /&gt;&lt;br /&gt;For your information, a first version of MBV 13 is already&amp;nbsp;provided in the support Tools folder of BizTalk 2013 !&lt;br /&gt;I worked indeed with my US peers (a big thank to&amp;nbsp;Mike Shea who is&amp;nbsp;BizTalk Escalation Engineer in US) to produce that new version and we&amp;nbsp;collaborated with the BizTalk Product group to integrate MBV in BizTalk 2013.&lt;/p&gt;  &lt;p&gt;A first release of MBV 13 was so sent&amp;nbsp;to the Product group well before the BizTalk&amp;nbsp; 2013 release and since that time&amp;nbsp;we continued to update the tool with additional queries and rules, and we had to fix some queries to make MBV fullly compatible with the final version of BizTalk 2013.&lt;br /&gt;It is this last&amp;nbsp;version of MBV 13 which&amp;nbsp;is now available on my blog, and new update of MBV should be also available in each next BizTalk CUs.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;MBV 13 provides the new features below :&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;MBV is now fully compatible with BizTalk&amp;nbsp;2013&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;MBV&amp;nbsp;detects the new adapters provided and the additional BizTalk version,&amp;nbsp;checks the build number&amp;nbsp;features specific to BizTalk 2013.&lt;/p&gt;  &lt;p&gt;&lt;br /&gt;&lt;strong&gt;New simplified UI&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;The graphic version of MBV was refreshed and its main window was reorganized to be smaller and easier to use.&lt;br /&gt;The interface is more &amp;quot;flat&amp;quot; than before and provides so better clarity.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The format of output files changed&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;MBV is generating now by default a subfolder for each collect containing HTML files (and the XML and TXT ones depending of the selected options).&lt;br /&gt;The&amp;nbsp;output file named &amp;quot;MBVOutputMAINPAGE.html&amp;quot; is the main file to open to start the analyse&amp;nbsp;of&amp;nbsp;an &amp;nbsp;MBV report and is composed&amp;nbsp;of four&amp;nbsp;frames :&amp;nbsp;two of them&amp;nbsp;present the&amp;nbsp;list of the main&amp;nbsp;report sections and the query categories, and the two remaining&amp;nbsp;present&amp;nbsp;the content of the selected section&amp;nbsp;or query category.&lt;br /&gt;This new format makes much more easy the analyze of an MBV&amp;nbsp;report.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;Additional queries and rules&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Additional queries were added in MBV 13 about CUs, SQL, BAM, ESB, EDI, etc...&lt;br /&gt;These queries and rules come from all the BizTalk community&amp;nbsp;at Microsoft&amp;nbsp;and my&amp;nbsp;experience working with my own customers, but also from customers themselves who suggested me some&amp;nbsp;ideas.&amp;nbsp;&lt;br /&gt;You are of course welcome to contact me to suggest queries and rules if I think they are pertinent for all the BizTalk community.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;You can find this new version attached in that post.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;I will&amp;nbsp;continue updating MBV&amp;nbsp; and its query repository,following the CUs update cycle and adding some critical rules when&amp;nbsp;needed. The pertinence of MBV analyze is the key of success of that tool and comes&amp;nbsp;from its queries and rules.&lt;/p&gt;  &lt;p&gt;As usual, feel free to report me your feedbacks or submit any issues,questions or suggestions you could have about&amp;nbsp;MBV.&lt;/p&gt;  &lt;p&gt;Thanks !&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;JP&lt;/p&gt;  &lt;p&gt;Jean-Pierre&amp;nbsp;Auconie&lt;br /&gt;Premier Mission Critical&amp;nbsp;Engineer and BizTalk Escalation Engineer&lt;br /&gt;MCROSOFT FRANCE&lt;br /&gt;&lt;a href="mailto:jpierauc@microsoft.com"&gt;jpierauc@microsoft.com&lt;/a&gt;&amp;nbsp;l&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3573620" width="1" height="1" alt=" " /&gt;&lt;br /&gt; Blog Post by: JPAUC</description></item><item><title>Blog Post: Local Windows Azure: Integrate, Innovate &amp; Australia just got smarter</title><link>http://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalksyn/archive/2013/05/19/local-windows-azure-integrate-innovate-amp-australia-just-got-smarter.aspx</link><pubDate>Mon, 20 May 2013 02:23:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37518</guid><dc:creator>Syndicated BizTalk Author</dc:creator><description>&lt;p&gt;  Well folks I’ve been greeted with the news that &lt;strong&gt;Microsoft Windows Azure will  be in 2 geo-replicated places here on Australian soil, &lt;/strong&gt;coming ‘shortly’.  &lt;/p&gt;  &lt;p&gt;  As an Azure MVP &amp;amp; from &lt;a href="http://www.breeze.net"&gt;Breeze&lt;/a&gt; (a  leading Microsoft Cloud Partner) perspective we invest heavily in cloud technologies.  &lt;/p&gt;  &lt;p&gt;  &lt;strong&gt;What does this mean and why should I care?&lt;/strong&gt; I hear you ask… good question  and I asked the same.   &lt;/p&gt;  &lt;p&gt;  As most of you know I have a passion for Integration, sticking all sorts of things  together from small RFID devices, hand made hand-held devices, raspberry PIs through  to high end ERP, Financials &amp;amp; many other types of systems. So before I get to  the WHY aspect, let me briefly set the context.  &lt;/p&gt;  &lt;p&gt;  There’s some great data coming out of Gartner a report which caught my eye - &lt;a href="http://searchsoa.techtarget.com/news/2240173583/Gartner-Better-collaboration-for-new-era-of-application-integration"&gt;http://searchsoa.techtarget.com/news/2240173583/Gartner-Better-collaboration-for-new-era-of-application-integration&lt;/a&gt; came  out with these:  &lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;  &lt;font style="background-color:#ffff00;"&gt;Integration Costs to rise by 33% by 2016,  more than half of new system development costs will be spent on Integration &lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font style="background-color:#ffff00;"&gt;By 2017, over two-thirds of all new integration  flows will extend outside the enterprise firewall.&lt;/font&gt;  &lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;  &lt;strong&gt;So Integration just took on a whole new face – successful integration is about  using the right tools (in the toolbox) for the right task.&lt;/strong&gt; Now we have a  whole new drawer in our toolbox full of Azure goodies &amp;amp; widgets. This functionality  is just too compelling to be ignored….  &lt;/p&gt;  &lt;p&gt;  …and now that it’s on Australian soil I’d be thinking that just about every Data center  service provider should be giving you cloud functionality.  &lt;/p&gt;  &lt;p&gt;  &lt;strong&gt;Some quick cloud advantages&lt;/strong&gt;:  &lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;  scale, provisioning and ease of use   &lt;ul&gt;  &lt;li&gt;  Imagine being able to spin up a SharePoint site in the time it takes me to write this  article.&lt;br /&gt;  &lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/243438c96f1b_11015/image_2.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/243438c96f1b_11015/image_thumb.png" width="244" height="173" /&gt;&lt;/a&gt;   &lt;/li&gt;&lt;li&gt;  Imagine being able to ask for an extra load balanced highly available Server/Service  at the click of a button. Importantly – Imagine being able to give it back again at  the end of the weekend/day/next hour.   &lt;br /&gt;  &lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/243438c96f1b_11015/image_4.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/243438c96f1b_11015/image_thumb_1.png" width="244" height="95" /&gt;&lt;/a&gt;  &lt;br /&gt;  &lt;/li&gt;  &lt;/ul&gt;  &lt;/li&gt;&lt;li&gt;  Not wait the typical 12 weeks for a new server to be provisioned, oh and dont mention  filling out the right forms. Running an application on those machines and getting  a firewall port opened….that’ll be another 2 weeks…and on it goes.&lt;br /&gt;  &lt;/li&gt;&lt;li&gt;  The much beloved Enlightenment for many companies of achieving Single Sign-On – Imagine  your customers being able to sign into your applications using their own Ids, Live  Ids, + a bunch of other Ids without you needing to provision more services. You can  house your identity accounts in Azure, locally or elsewhere – finally you don’t need  a Quantum Analyst to setup Single Sign-on.&lt;br /&gt;  &lt;/li&gt;&lt;li&gt;  My experiences in the last few weeks on client sites have been back in the world of  old – classic encumbered infrastructure service providers wanting to claim everything,  put the brakes on any new ideas and have meetings around such concepts of adding an  extra 10gb disk space to existing servers. These guys should be ‘can do’ people –  it’s all about choosing the right tool for the job.&lt;br /&gt;  &lt;/li&gt;&lt;li&gt;  Microsoft have done a great job on the developer tooling front from the classic MS  toolset through to Apple, PHP, Ruby, Phython etc. all being able to access, develop  on, publish and deploy.&lt;br /&gt;  &lt;/li&gt;&lt;li&gt;  We could even give a bunch of HDD drives to Olaf (our gun cyclist @ Breeze) to ride  to the Azure Data Center and offload our data, while we wait for the NBN to never  come to our area.&lt;br /&gt;  &lt;/li&gt;&lt;li&gt;  There are some great options on the horizon coming down the track.&lt;br /&gt;  &lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;  &lt;strong&gt;So let’s say we’re keen to explore – how hard/easy is it to get ‘my’ own environment  &amp;amp; what does this mean.&lt;/strong&gt;  &lt;/p&gt;  &lt;p&gt;  The short answer is you get an Azure Footprint which could be running in a ‘Data Center’  in Sydney. Depending on what you’re playing with you could get:  &lt;/p&gt;  &lt;p&gt;  - SQL Databases, Cloud Services, Scalable Mobile Device Services, Load balanced Websites/Services/Restful  endpoints…and the list of ‘widgets’ goes on and on.  &lt;/p&gt;  &lt;p&gt;  &lt;strong&gt;How do I interact with this environment&lt;/strong&gt;:  &lt;/p&gt;  &lt;p&gt;  Often the issue around alot of this is that because my beloved ‘servers’ are running  somewhere else I’m concerned over how much control we get.  &lt;/p&gt;  &lt;p&gt;  We enter into the &lt;strong&gt;Hybrid Integration &lt;/strong&gt;space – where as you can imagine  not *everything* is suited for the Cloud, there will be things you keep exactly as  they are. So there will be many many scenarios where – we have something running locally  as well as something running in Azure. Some options we have available are to make  our servers ‘feel at home’:  &lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;  &lt;strong&gt;VPN connection&lt;/strong&gt; – we can have several flavours of a VPN connection  that connect our &lt;strong&gt;Azure Footprint&lt;/strong&gt; to our local network. for e.g. local  network is 10.10.x.x/16, Azure network 10.50.x.x/16. Full access to all the machines/services  and other things you have running. CRON jobs, FTP, scripts, processes, linux boxes,  samba shares, etc etc.. (I do realise the integration world is never as easy as we  see it in the magazines)&lt;br /&gt;  &lt;/li&gt;&lt;li&gt;  &lt;strong&gt;RDP Connections – &lt;/strong&gt;standard level of service really from any Service  provider.&lt;br /&gt;  &lt;/li&gt;&lt;li&gt;  &lt;strong&gt;Remote PowerShell Access   &lt;br /&gt;  &lt;/strong&gt;   &lt;/li&gt;&lt;li&gt;  &lt;strong&gt;Azure Service Bus - Applications Level Web/WCF/Restful Services &lt;/strong&gt;connectivity.  An Application Service can run either locally or in the cloud and this feature allows  your Service to be accessed through a consistent Endpoint within the cloud, but the  calls are Relayed down to your Application Service. There’s a few different ways we  can ‘relay’ but the public endpoint could house all the clients &amp;amp; their device  requests, while your existing application infrastructure remains unchanged.&lt;br /&gt;  &lt;/li&gt;&lt;li&gt;  &lt;strong&gt;SQL Azure Data Sync – &lt;/strong&gt;sync data between clouds &amp;amp; local from your  databases. So for many clients, come 8pm each day, their local database has all the  Orders for the day as per normal, without the usual provisioning headaches as the  business responds to new market opportunities to support smart devices.&lt;br /&gt;  &lt;/li&gt;&lt;li&gt;  &lt;strong&gt;We even get pretty graphs….&lt;br /&gt;  &lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/243438c96f1b_11015/image_6.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/243438c96f1b_11015/image_thumb_2.png" width="244" height="103" /&gt;&lt;/a&gt;&lt;/strong&gt;   &lt;ul&gt;  &lt;li&gt;  But wait there’s more…..   &lt;/li&gt;&lt;li&gt;  These details are typical performance monitor counters + diagnostic information. We  can use Azure Admin tools to import these regularly and import them into our typical  tools.   &lt;/li&gt;&lt;li&gt;  System Center does exactly this – so our ‘dashboard’ of machines will list our local  machines as well as our cloud machines. Your IT guys have visibility into what’s going  on.&lt;/li&gt;  &lt;/ul&gt;  &lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;  We’ve been using Singapore DCs or West Coast US with pretty good performance times  across the infrastructure.&amp;nbsp;   &lt;/p&gt;  &lt;p&gt;  &lt;strong&gt;What does having a local Windows Azure Data Center mean to me:&lt;/strong&gt;  &lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;  &lt;strong&gt;Medical Industry&lt;/strong&gt; – we have several medical clients allowing us to  innovate around Cloud technologies using HL7 transports. Faster time to market and  higher degrees of re-use.   &lt;/li&gt;&lt;li&gt;  &lt;strong&gt;Cloud Lab Manager – &lt;/strong&gt;&lt;a href="http://www.cloudlabmanager.com"&gt;www.cloudlabmanager.com&lt;/a&gt; can  run locally for all training providers. Breeze has created an award winning cloud  based application that will certainly benefit from this piece of great news.   &lt;/li&gt;&lt;li&gt;  &lt;strong&gt;Creating a cloud based application is now feasible&lt;/strong&gt; (this particular  one was due to the sensitive nature of information it carried)   &lt;/li&gt;&lt;li&gt;  &lt;strong&gt;And lastly I can house my MineCraft server – &lt;/strong&gt;well it’s my 10 yr old  sons and half the school I reckon.&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;  &lt;strong&gt;&lt;/strong&gt;&amp;nbsp;  &lt;/p&gt;  &lt;p&gt;  &lt;strong&gt;So for you…&lt;/strong&gt;  &lt;/p&gt;  &lt;p&gt;  Ask yourself the question – are you getting all these features from where you currently  host/run your hardware?  &lt;/p&gt;  &lt;p&gt;  Lack of infrastructure and provisioning challenges shouldn’t be holding back new ideas  &amp;amp; business movement. iPads, smartphones, anywhere, any time access should be the  norm, not like we’re putting another person on the moon.  &lt;/p&gt;  &lt;p&gt;  &lt;strong&gt;It’s all about using the right tool for the job&lt;/strong&gt;  &lt;/p&gt;  &lt;p&gt;  Enjoy folks as it’s certainly exciting times for us Aussies ahead!!  &lt;/p&gt;  &lt;p&gt;  &lt;a href="http://blogs.msdn.com/b/ausblog/archive/2013/05/16/windows-azure-expands-downunder.aspx"&gt;Microsoft’s  Announcement&lt;/a&gt;  &lt;/p&gt;  &lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=d2715669-1ba4-4827-9e48-3d75c1262cc0" alt=" " /&gt;&lt;br /&gt; Blog Post by: Mick Badran</description></item><item><title>Blog Post: BizTalk 2013 Installation and Configuration – Configure SQL Server Network Configuration protocols (Part 10)</title><link>http://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalksyn/archive/2013/05/19/biztalk-2013-installation-and-configuration-configure-sql-server-network-configuration-protocols-part-10.aspx</link><pubDate>Sun, 19 May 2013 22:00:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37512</guid><dc:creator>Syndicated BizTalk Author</dc:creator><description>Under certain stress conditions (such as clients accessing SQL Server from the same computer), the SQL Server Shared Memory protocol may lower BizTalk Server performance. You can resolve this problem by disabling the use of the Shared Memory network protocol in SQL Server Network Configuration. Also, to facilitate transactions between SQL Server and BizTalk Server, [&amp;#8230;]&lt;img alt=" " border="0" src="http://stats.wordpress.com/b.gif?host=sandroaspbiztalkblog.wordpress.com&amp;#038;blog=16199969&amp;#038;post=3047&amp;#038;subd=sandroaspbiztalkblog&amp;#038;ref=&amp;#038;feed=1" width="1" height="1" /&gt;&lt;br /&gt; Blog Post by: Sandro Pereira</description></item><item><title>Blog Post: Azure AD OAuth 2.0 Authorization Grant</title><link>http://www.biztalkgurus.com/appfabric/b/appfabric-syn/archive/2013/05/17/azure-ad-oauth-2-0-authorization-grant.aspx</link><pubDate>Fri, 17 May 2013 23:08:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37511</guid><dc:creator>Syndicated AppFabric Author</dc:creator><description>Yesterday I talked about a bug which prevented me to complete the authorization grant flow with Azure AD. It turn out the bug is only exposed when using Azure Management Portal for Relying party registration. In this post, I’ll use Graph Explorer to do the registration which works fine. My scenario is to create a [&amp;#8230;]&lt;img alt=" " border="0" src="http://stats.wordpress.com/b.gif?host=zamd.net&amp;#038;blog=13272925&amp;#038;post=487&amp;#038;subd=zuahmed&amp;#038;ref=&amp;#038;feed=1" width="1" height="1" /&gt;&lt;br /&gt; Blog Post by: zamd</description></item><item><title>Forum Post: Re: Error: The published message could not be routed because no subscribers were found.</title><link>http://www.biztalkgurus.com/biztalk_server/biztalk_2010/f/37/p/18444/37510.aspx#37510</link><pubDate>Fri, 17 May 2013 20:00:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37510</guid><dc:creator>Anonymous</dc:creator><description>&lt;p&gt;Thanks for the options. The first one solved it.....!&lt;/p&gt; </description></item><item><title>Blog Post: Join our BizTalk 2013 technical launch event!</title><link>http://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalksyn/archive/2013/05/17/join-our-biztalk-2013-technical-launch-event.aspx</link><pubDate>Fri, 17 May 2013 14:05:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37509</guid><dc:creator>Syndicated BizTalk Author</dc:creator><description>BizTalk 2013 is out, but this is obviously old news for most of you. With a lot of new features and support for on premises, or in the cloud, this new version seems exciting and maybe challenging…  To help you overcome any potential issues and to make sure you are ready for the new version, Codit organizes a technical BizTalk launch event with 6 expert speakers!</description></item><item><title>Blog Post: Azure AD OAuth 2.0 Client_Credentials Flow</title><link>http://www.biztalkgurus.com/appfabric/b/appfabric-syn/archive/2013/05/16/azure-ad-oauth-2-0-client-credentials-flow.aspx</link><pubDate>Thu, 16 May 2013 22:24:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37507</guid><dc:creator>Syndicated AppFabric Author</dc:creator><description>I was playing with the Authorization code grant type recently added to Azure Active directory however there is bug in the preview implementation which prevents exchange an ‘authorization code’ with an access token. I can get the authorization code for graph api by using following url in the browser. https://login.windows.net/69383356-56dd-4e78-a18e-a4ff5450c995/oauth2/authorize?response_type=code&amp;#38;client_id=9f030b74-1ec1-4b6b-8911-f4e6e465ff9d&amp;#38;resource=https://graph.windows.net&amp;#38;api-version=1.0 AAD authenticates me and redirects [&amp;#8230;]&lt;img alt=" " border="0" src="http://stats.wordpress.com/b.gif?host=zamd.net&amp;#038;blog=13272925&amp;#038;post=475&amp;#038;subd=zuahmed&amp;#038;ref=&amp;#038;feed=1" width="1" height="1" /&gt;&lt;br /&gt; Blog Post by: zamd</description></item><item><title>Blog Post: BizTalk 2013 Installation and Configuration – Install and Configure BizTalk Server 2013 (Part 9)</title><link>http://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalksyn/archive/2013/05/16/biztalk-2013-installation-and-configuration-install-and-configure-biztalk-server-2013-part-9.aspx</link><pubDate>Thu, 16 May 2013 22:00:00 GMT</pubDate><guid isPermaLink="false">c4dd2918-4541-4a95-8338-be99430f076e:37508</guid><dc:creator>Syndicated BizTalk Author</dc:creator><description>In this section you’ll install BizTalk Server, confirm that the installation succeeded, and then configure BizTalk Server. When you installed SQL Server, setup granted your account Database Administrator rights. Since these rights are also required for installing BizTalk Server, you must do one of the following: Use the same account you used when you installed [&amp;#8230;]&lt;img alt=" " border="0" src="http://stats.wordpress.com/b.gif?host=sandroaspbiztalkblog.wordpress.com&amp;#038;blog=16199969&amp;#038;post=3027&amp;#038;subd=sandroaspbiztalkblog&amp;#038;ref=&amp;#038;feed=1" width="1" height="1" /&gt;&lt;br /&gt; Blog Post by: Sandro Pereira</description></item></channel></rss>