<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://developers.de/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>Damir Dobric Posts : WCF, AppFabric</title><link>http://developers.de/blogs/damir_dobric/archive/tags/WCF/AppFabric/default.aspx</link><description>Tags: WCF, AppFabric</description><dc:language>en</dc:language><generator>CommunityServer 2008 SP1 (Build: 30619.63)</generator><item><title>Announcing my Session “Connecting Web Systems” at Advanced Developer Conference 2012</title><link>http://developers.de/blogs/damir_dobric/archive/2012/10/27/announcing-my-session-connecting-web-systems-at-advanced-developer-conference-2012.aspx</link><pubDate>Sat, 27 Oct 2012 12:45:15 GMT</pubDate><guid isPermaLink="false">7e491611-45ad-4dae-a68f-c4cb64439510:373832</guid><dc:creator>Damir Dobric</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developers.de/blogs/damir_dobric/rsscomments.aspx?PostID=373832</wfw:commentRss><comments>http://developers.de/blogs/damir_dobric/archive/2012/10/27/announcing-my-session-connecting-web-systems-at-advanced-developer-conference-2012.aspx#comments</comments><description>&lt;p&gt;If you are professional developer or architect who focus Microsoft technologies, then ADC is the conference of great choice. Internationally recognized and legendary experts will present most popular technology topics.    &lt;br /&gt;One of best things at this conference I personally like is “NO MARKETING”. All session content is pure experience with pre-filtered sponsoring and marketing noise.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://www.adc10.de/"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;border-bottom:0px;margin-left:0px;border-left:0px;display:inline;margin-right:0px;" border="0" alt="image" align="left" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_272A4A80.png" width="538" height="279" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;At the upcoming Advanced Developer Conference 2012 in Germany I will give two session. Here is the first look on agenda for “Connecting Web Systems” session. Because this session is not related to some product, it will focus new peaces of technology at the Microsoft’s development platform. This time I decided to talk about technologies which might dramatically change the web soon. However this might also influence the way how we thing about applications and it will definitely change the architecture of future applications. As Integration MVP in last two years I was involved in some more or less hidden and still not well documented technology areas with focus on WebSockets, SignalR and communication in Web in general.&amp;#160; &lt;br /&gt;Content presented in this session is pure result of this work. You are welcome.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_5FD4F48D.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_6DA73A88.png" width="614" height="447" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=373832" width="1" height="1"&gt;</description><category domain="http://developers.de/blogs/damir_dobric/archive/tags/Asp.Net/default.aspx">Asp.Net</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/WCF/default.aspx">WCF</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx">cloud</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx">AppFabric</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/windows+azure/default.aspx">windows azure</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/Windows/default.aspx">Windows</category></item><item><title>How to activate WCF on IIS8 and Windows 8?</title><link>http://developers.de/blogs/damir_dobric/archive/2012/09/24/how-to-activate-wcf-on-iis8-and-windows-8.aspx</link><pubDate>Mon, 24 Sep 2012 15:03:18 GMT</pubDate><guid isPermaLink="false">7e491611-45ad-4dae-a68f-c4cb64439510:329730</guid><dc:creator>Damir Dobric</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developers.de/blogs/damir_dobric/rsscomments.aspx?PostID=329730</wfw:commentRss><comments>http://developers.de/blogs/damir_dobric/archive/2012/09/24/how-to-activate-wcf-on-iis8-and-windows-8.aspx#comments</comments><description>&lt;p&gt;When you start working with WCF on Windows 8 and IIS8, you might run into following problem.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;HTTP Error 404.3 - Not Found&lt;/em&gt;&lt;/p&gt;  &lt;h6&gt;&lt;em&gt;The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.&lt;/em&gt;&lt;/h6&gt;  &lt;p&gt;To make this working you have enable (install/activate) Advanced .NET 4.5 Features, which are mostly related to WCF:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_13E0A8FE.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_0197E23C.png" width="857" height="544" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=329730" width="1" height="1"&gt;</description><category domain="http://developers.de/blogs/damir_dobric/archive/tags/Core.Net/default.aspx">Core.Net</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/WCF/default.aspx">WCF</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/Core.Net+WCF/default.aspx">Core.Net WCF</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx">AppFabric</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/Windows/default.aspx">Windows</category></item><item><title>ServiceBus Message Broker Service is starting and starting…(Cannot Deploy SPS Workflow)</title><link>http://developers.de/blogs/damir_dobric/archive/2012/09/18/servicebus-message-broker-service-is-starting-and-starting.aspx</link><pubDate>Tue, 18 Sep 2012 05:21:00 GMT</pubDate><guid isPermaLink="false">7e491611-45ad-4dae-a68f-c4cb64439510:329310</guid><dc:creator>Damir Dobric</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developers.de/blogs/damir_dobric/rsscomments.aspx?PostID=329310</wfw:commentRss><comments>http://developers.de/blogs/damir_dobric/archive/2012/09/18/servicebus-message-broker-service-is-starting-and-starting.aspx#comments</comments><description>&lt;p&gt;When working with Windows Azure Workflow, Workflow Host Manager or Share Point 2013 Workflow you might experience several problems related to Message Broker Service.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Issues related to broker In SharePoint are manifested through workflow deployment issues. For example, if you try to deploy the workflow you might get following error:    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Error 1 Error occurred in deployment step &amp;#39;Activate Features&amp;#39;: System.IO.InvalidDataException: A response was returned that did not come from the workflow service. Status code = 503:    &lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;quot;&amp;quot;&lt;a href="http://www.w3.org/TR/html4/strict.dtd&amp;quot;"&gt;http://www.w3.org/TR/html4/strict.dtd&amp;quot;&lt;/a&gt;&amp;gt;     &lt;br /&gt;&amp;lt;HTML&amp;gt;&amp;lt;HEAD&amp;gt;&amp;lt;TITLE&amp;gt;Service Unavailable&amp;lt;/TITLE&amp;gt;     &lt;br /&gt;&amp;lt;META HTTP-EQUIV=&amp;quot;Content-Type&amp;quot; Content=&amp;quot;text/html; charset=us-ascii&amp;quot;&amp;gt;&amp;lt;/HEAD&amp;gt;     &lt;br /&gt;&amp;lt;BODY&amp;gt;&amp;lt;h2&amp;gt;Service Unavailable&amp;lt;/h2&amp;gt;     &lt;br /&gt;&amp;lt;hr&amp;gt;&amp;lt;p&amp;gt;HTTP Error 503. The service is unavailable.&amp;lt;/p&amp;gt;     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;If you are rather Service Bus guy, you will figure out that Broker Service does not start. It is all the time in starting status. In both cases, take a look on status of Windows Fabric Host Service. You will probably notice that this service is not running. If so start it, stop the broker and start the broker again.    &lt;br /&gt;If you cannot stop the broker service while starting, got to task manager&amp;#160; and kill Microsoft.ServiceBus Message Broker process. Then start the broker service.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=329310" width="1" height="1"&gt;</description><category domain="http://developers.de/blogs/damir_dobric/archive/tags/WCF/default.aspx">WCF</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx">AppFabric</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/windows+azure/default.aspx">windows azure</category></item><item><title>Is Service Bus Server an ESB product?</title><link>http://developers.de/blogs/damir_dobric/archive/2012/08/01/service-bus-server-is-not-an-esb-product.aspx</link><pubDate>Wed, 01 Aug 2012 06:23:00 GMT</pubDate><guid isPermaLink="false">7e491611-45ad-4dae-a68f-c4cb64439510:324922</guid><dc:creator>Damir Dobric</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developers.de/blogs/damir_dobric/rsscomments.aspx?PostID=324922</wfw:commentRss><comments>http://developers.de/blogs/damir_dobric/archive/2012/08/01/service-bus-server-is-not-an-esb-product.aspx#comments</comments><description>&lt;p&gt;Service Bus 1.0 (also called Service Bus Server) is a Microsoft messaging product, which many people will compare with Enterprise Service Bus. Currently Microsoft is NOT positioning Service Bus Server as an ESB product. The reason for that is that Service Bus doesn’t support many of features which are supported by typical ESB. For example a common service bus supports features like We don’t have any of the ‘other’ ESB features like: protocol conversion, message transformation, adapters (in term of BizTalk), business monitoring etc.&lt;/p&gt;  &lt;p&gt;Service Bus is for now a messaging runtime focused on rich &lt;a href="http://developers.de/blogs/damir_dobric/archive/2012/06/17/about-direct-and-brokered-messaging.aspx"&gt;messaging patterns&lt;/a&gt; like pub-sub &amp;amp; queues. Moreover it guaranties &lt;u&gt;on-prem&lt;/u&gt; and &lt;u&gt;cloud&lt;/u&gt; symmetry.&lt;/p&gt;  &lt;p&gt;To recap, Service Bus is not an ESB product but rather a messaging platform.&lt;/p&gt;  &lt;p&gt;An interesting combination of Service Bus Server and Workflow enables however easy implementation&amp;#160; of highly scalable workflow based and long running scenarios, which make place for new innovative solutions.&lt;/p&gt;  &lt;p&gt;For more information take a look &lt;a href="http://developers.de/blogs/damir_dobric/archive/2012/07/17/hello-service-bus-for-server-server-windows-azure-workflow-and-sharepoint-workflow-host.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=324922" width="1" height="1"&gt;</description><category domain="http://developers.de/blogs/damir_dobric/archive/tags/BizTalk/default.aspx">BizTalk</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/WCF/default.aspx">WCF</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx">cloud</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx">azure</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx">AppFabric</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/windows+azure/default.aspx">windows azure</category></item><item><title>Installing Workflow 1.0 BETA with Workflow Host</title><link>http://developers.de/blogs/damir_dobric/archive/2012/07/31/installing-workflow-1-0-beta-with-workflow-host.aspx</link><pubDate>Tue, 31 Jul 2012 07:34:36 GMT</pubDate><guid isPermaLink="false">7e491611-45ad-4dae-a68f-c4cb64439510:324768</guid><dc:creator>Damir Dobric</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developers.de/blogs/damir_dobric/rsscomments.aspx?PostID=324768</wfw:commentRss><comments>http://developers.de/blogs/damir_dobric/archive/2012/07/31/installing-workflow-1-0-beta-with-workflow-host.aspx#comments</comments><description>First of all download all components from &lt;a title="http://www.microsoft.com/en-us/download/details.aspx?id=30369" href="http://www.microsoft.com/en-us/download/details.aspx?id=30369"&gt;http://www.microsoft.com/en-us/download/details.aspx?id=30369&lt;/a&gt; To install the Service Bus run &lt;u&gt;workflow.3f.3f.3fnew.exe&lt;/u&gt;.   &lt;br /&gt;Another possibility would be to use Web Platform installer.   &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_1060DC09.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_2C0567FF.png" width="780" height="535" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;After start of installation setup will detect dependent components. Please note that restart will be required assuming that .NET 4.5 has not been previously installed. It is important to understand that Workflow Host has a dependency to Service Bus. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_300FB5D1.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_24E62B87.png" width="689" height="475" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you previously didn’t install Service Bus you can proceed with installation of Workflow Manager directly. Setup will automatically recognize missing dependencies.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_38C0ABCD.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_437E0322.png" width="698" height="536" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Click &lt;strong&gt;I Accep&lt;/strong&gt;t to proceed. Please also note that Workflow used in Workflow 1.0 BETA (the name might be changed future) is built on top of .NET 4.5. This means that this version of Workflow is almost identical with the common WF 4.5. This Workflow BETA 1 contains few more activities which support activation of workflow instances via service bus message. Moreover, current version does not support Messaging activities like ReceiveMessage. This is an important architecture issue you should be aware of!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_6BCF4E84.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_1DC6EF0F.png" width="700" height="472" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;After installation of .NET 4.5 you will have to restart the machine.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_4FBE8F99.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_4495054F.png" width="689" height="476" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;At the end following appears:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_768CA5D9.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_6F6D6961.png" width="695" height="188" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;After all Workflow will appear in start menu:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_4F525CA4.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_4428D25A.png" width="360" height="123" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Last but not least, do not forget to install Workflow Tools for Visual Studio.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;x86: &lt;a href="http://go.microsoft.com/fwlink/?LinkID=251615&amp;amp;clcid=0x409"&gt;http://go.microsoft.com/fwlink/?LinkID=251615&amp;amp;clcid=0x409&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;x64: &lt;a href="http://go.microsoft.com/fwlink/?LinkID=250946&amp;amp;clcid=0x409"&gt;http://go.microsoft.com/fwlink/?LinkID=250946&amp;amp;clcid=0x409&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you don’t install them new activities will not appear in designer and design time APIs cannot be uses (i.e. publishing of workflow).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=324768" width="1" height="1"&gt;</description><category domain="http://developers.de/blogs/damir_dobric/archive/tags/WCF/default.aspx">WCF</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx">azure</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx">AppFabric</category></item><item><title>Installing Service Bus Server 1.0 BETA</title><link>http://developers.de/blogs/damir_dobric/archive/2012/07/24/installing-service-bus-server-1-0-beta.aspx</link><pubDate>Tue, 24 Jul 2012 13:35:00 GMT</pubDate><guid isPermaLink="false">7e491611-45ad-4dae-a68f-c4cb64439510:324305</guid><dc:creator>Damir Dobric</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developers.de/blogs/damir_dobric/rsscomments.aspx?PostID=324305</wfw:commentRss><comments>http://developers.de/blogs/damir_dobric/archive/2012/07/24/installing-service-bus-server-1-0-beta.aspx#comments</comments><description>&lt;p&gt;   &lt;br /&gt;In July 2012 Microsoft has for the first time published a peace of Windows Azure which is installable locally (On-Premise). It is Service Bus (v1 BETA) which is slightly adapted version of Windows Azure Service Bus. If you are aware of this product this post will help you to install it. If you are new to Service Bus Server (this is how some people call it) it is highly recommended to take a look on this &lt;a href="http://developers.de/blogs/damir_dobric/archive/2012/07/17/hello-service-bus-for-server-server-windows-azure-workflow-and-sharepoint-workflow-host.aspx"&gt;article&lt;/a&gt;.    &lt;br /&gt;    &lt;br /&gt;Before you start with installation go to following URL and download all required components from &lt;a title="http://www.microsoft.com/en-us/download/details.aspx?id=30376" href="http://www.microsoft.com/en-us/download/details.aspx?id=30376"&gt;http://www.microsoft.com/en-us/download/details.aspx?id=30376&lt;/a&gt;. To install the Service Bus run &lt;u&gt;&lt;strong&gt;servicebus.3f.3f.3fnew.exe&lt;/strong&gt;&lt;/u&gt;. Another option to do that is to use Web Platform installer v4. Following picture shows two new components in Platform Installer. This post is related to installation of Service Bus 1.0. If you want to install Workflow 1.0 you will anyhow have to first install Service Bus.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_2B73A3F7.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_18BEAA40.png" width="771" height="536" /&gt;&lt;/a&gt;    &lt;br /&gt;    &lt;br /&gt;After start of Service Bus Server setup following dialog appears:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_0A803150.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_2A2F0B18.png" width="676" height="457" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Immediately after start the list of missing dependencies will appear (see picture below). Please note that after installation restart will be required! Note that if you previously have installed Windows Fabric component you will have to uninstall it. Note that it is not necessary to go to direct link (shown below). Simply click &amp;quot;I Accept&amp;quot; to proceed. Setup will automatically download and install required components.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_5ECF6753.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_5090EE63.png" width="698" height="478" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;After installation of Service management Components 3.0 you will have to restart the machine.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_05314A9F.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_44FB3124.png" width="403" height="167" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;After restart the installation will proceed automatically. At the end the start menu will contain the node “Windows Azure Service Bus” :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb17_5F00_04C517AA.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image_thumb[17]" border="0" alt="image_thumb[17]" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb17_5F00_thumb_5F00_5D8ACE74.png" width="360" height="123" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=324305" width="1" height="1"&gt;</description><category domain="http://developers.de/blogs/damir_dobric/archive/tags/WCF/default.aspx">WCF</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx">cloud</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx">azure</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx">AppFabric</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/WinRT/default.aspx">WinRT</category></item><item><title>How to uninstall Service Bus Server and Workflow Host?</title><link>http://developers.de/blogs/damir_dobric/archive/2012/07/19/how-to-remove-service-bus-server-and-workflow-host.aspx</link><pubDate>Thu, 19 Jul 2012 05:42:00 GMT</pubDate><guid isPermaLink="false">7e491611-45ad-4dae-a68f-c4cb64439510:323654</guid><dc:creator>Damir Dobric</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developers.de/blogs/damir_dobric/rsscomments.aspx?PostID=323654</wfw:commentRss><comments>http://developers.de/blogs/damir_dobric/archive/2012/07/19/how-to-remove-service-bus-server-and-workflow-host.aspx#comments</comments><description>&lt;p&gt;This post is related to BETA version of Service Bus Server and Workflow Host which is used in Share Point 2013. It should help you to uninstall previous version of Service Bus and Workflow.&lt;/p&gt;  &lt;p&gt;Use the following procedure to remove Workflow and Service Bus from a node in a farm. You must perform these actions on every node from which you want to delete Workflow and Service Bus.&lt;/p&gt;  &lt;p&gt;1. Go to stare menu locate AppFabric Server and start configuration wizard. Remove the node from the farm as described in &amp;quot;Leaving a Farm&amp;quot;. If you have lot of time you can also use PowerShell.&lt;/p&gt;  &lt;p&gt;2. Open the&amp;#160; Control Panel windows and uninstall following components:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Microsoft AppFabric&amp;#160; &lt;br /&gt;      &lt;br /&gt;Microsoft Windows Fabric&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;After these steps ServiceBus and Workflow including Windows Azure Fabric&amp;#160;&amp;#160; which is running locally are removed. However all databases will remain at the SQL server. If you want to remove them, you can/should first make a backup.&lt;/p&gt;  &lt;p&gt;You can use SQL Management Studio to remove the databases that were associated with Workflow and Service Bus.    &lt;br /&gt;Following databases are related to SB and WF Host:&lt;/p&gt;  &lt;p&gt;a. AppFabricManagementDB&lt;/p&gt;  &lt;p&gt;b. SbGatewayDatabase&lt;/p&gt;  &lt;p&gt;c. SBContainer01 &lt;/p&gt;  &lt;p&gt;d. WFInstanceManagementDB&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Last but not least. if you have Visual Studio installed at the machine and have previously installed Workflow Client, you will have to remove it too. If you don’t do it the installation of the new Workflow Client and Workflow itself will fail.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_5DDEA36E.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_4B95DCAC.png" width="730" height="46" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=323654" width="1" height="1"&gt;</description><category domain="http://developers.de/blogs/damir_dobric/archive/tags/WCF/default.aspx">WCF</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx">cloud</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx">azure</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx">AppFabric</category></item><item><title>Hello Service Bus 1.0, Workflow 1.0 and SharePoint Workflow Host</title><link>http://developers.de/blogs/damir_dobric/archive/2012/07/17/hello-service-bus-for-server-server-windows-azure-workflow-and-sharepoint-workflow-host.aspx</link><pubDate>Tue, 17 Jul 2012 04:08:18 GMT</pubDate><guid isPermaLink="false">7e491611-45ad-4dae-a68f-c4cb64439510:320678</guid><dc:creator>Damir Dobric</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developers.de/blogs/damir_dobric/rsscomments.aspx?PostID=320678</wfw:commentRss><comments>http://developers.de/blogs/damir_dobric/archive/2012/07/17/hello-service-bus-for-server-server-windows-azure-workflow-and-sharepoint-workflow-host.aspx#comments</comments><description>&lt;p&gt;The &lt;font style="background-color:#ffff00;"&gt;OnPrem&lt;/font&gt; version of&lt;font style="background-color:#ffff00;"&gt; Windows Azure Service Bus&lt;/font&gt; is probably firs peace of Azure Cloud which can be installed on your laptop. Personally I would call it Enterprise Service Bus, which can and should be used for almost any kind of messaging in enterprise. The good thin on this is that the exactly (more or less) the same version is running in the Windows Azure Cloud. The exactly same means in term of API which developers will used. “More or less” means that there are still few differences.     &lt;br /&gt;First and probably less important difference is Relaying feature. This feature is currently supported in the cloud only (at least for now). Queue and Topic messaging is fully supported.&lt;/p&gt;  &lt;h4&gt;Windows Token&lt;/h4&gt;  &lt;p&gt;However from the architecture point of view, it is more important that On-Premise version (Service Bus Server) additionally to ACS use Windows Token to access queues and topics. To make this working, SB supports internally some kind of Security Token Service, which is able to issue the ACS compatible token on behalf of Windows Token tight in the first message request.    &lt;br /&gt;This is all you should now for now about this STS. In fact it is transparent for developer and you shouldn’t eve know that it exist. This information is interesting to understand that there is no any magic behind changed security system. Please note that Service Bus Server can also create a namespace in SB&amp;#160; which uses ACS just like SB in azure.     &lt;br /&gt;&lt;/p&gt;  &lt;h4&gt;Service Bus Configuration in PowerShell&lt;/h4&gt;  &lt;p&gt;The currently available release supports Power Shell Based configuration only. The RTM version will additionally support a Configuration Wizard.    &lt;br /&gt;Note the Service Bus Explorer supports Service Bus Server (see link below). &lt;/p&gt;  &lt;h4&gt;Installation via WEB PI 4&lt;/h4&gt;  &lt;br /&gt;  &lt;p&gt;Currently you will have to use WEB Platform Installer v4 &lt;a title="http://www.microsoft.com/web/downloads/platform.aspx" href="http://www.microsoft.com/web/downloads/platform.aspx"&gt;http://www.microsoft.com/web/downloads/platform.aspx&lt;/a&gt;. to install the bits. The setup contains in fact two products: Windows Azure Workflow and Service Bus. Both products are installable on your machine. Yes, that’s right. Windows Azure Workflow is installable on the local machine. Depending on what you want to install, select SB or/and WF and proceed with installation.     &lt;br /&gt;&lt;/p&gt;  &lt;h4&gt;Topology Facts&lt;/h4&gt;  &lt;p&gt;The SB cluster is supported with High Availability feature similar to caching service. That means HA is supported by 3+ nodes in the cluster.    &lt;br /&gt;The underlying database can be SQL Express (no joke), SQL 2008 and even SQL 2012.     &lt;br /&gt;Workgroups are supported too.     &lt;br /&gt;Up to now, bits can be installed on Windows 7 and Windows 8 client OS family. Both are currently supported for development purposes only.     &lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;Workflow 1.0 &lt;/h3&gt;  &lt;p&gt;The workflow version installed here needs much more space and time to be explained. For now it is important that you can run your Workflows in Windows Azure. The same version can also be run on-premise. Unfortunately this version cannot use Windows Server AppFabric. The team has internally decided to build the new host for massive scale which activates Workflow Instances from Service Bus topic. At the moment you will have decide whether to use the Windows Server AppFabric host or this one. The new host has been specifically built for SharePoint 15 which is first Microsoft product which will span its workflows on top of Service Bus on premise.    &lt;br /&gt;Note that the same host and workflow will be used by SharePoint Online Version.     &lt;br /&gt;With this version SharePoint has finally a serious host for running processes outside of SPS pool. My best wishes.(I was waiting almost 10 years for this). More experienced architects and developers might start to think about SharePoint as a SAP Netweaver. Please just don’t overuse it in this case (as often in the past of SPS).&amp;#160; &lt;br /&gt;Authoring of Workflows and SPS13 Workflows is WF 4.5.     &lt;br /&gt;NOTE, that not all activities of the common WF 4.5 version are supported. For example messaging activities (i.e. ReceiceMessage) and versioning are not supported. Fortunately there are special activities which can perform activation of workflow by message. In fact this is the only way to start he workflow.     &lt;br /&gt;If you want to use custom activities in&lt;em&gt; On-Prem&lt;/em&gt; version of workflow, there are few extra steps which you have to manually (for now) perform.     &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;Following sample illustrate how to receive the message from topic.     &lt;br /&gt;&lt;/p&gt;  &lt;table style="border-bottom:medium none;border-left:medium none;list-style-type:disc;border-collapse:collapse;background:#daeef3;border-top:medium none;border-right:medium none;mso-background-themecolor:accent5;mso-background-themetint:51;mso-border-alt:solid windowtext .5pt;mso-yfti-tbllook:1184;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;" class="MsoTableGrid" cellspacing="0" cellpadding="0"&gt;     &lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes;"&gt;       &lt;td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:0cm;padding-left:5.4pt;padding-right:5.4pt;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding-top:0cm;mso-border-alt:solid windowtext .5pt;"&gt;         &lt;p style="line-height:normal;margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font color="#0000ff" face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;using&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; System;&lt;/font&gt;                   &lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; System.Collections.Generic;&lt;/font&gt;                   &lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; System.Net;&lt;/font&gt;                   &lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; Microsoft.ServiceBus;&lt;/font&gt;                   &lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; Microsoft.ServiceBus.Description;&lt;/font&gt;                   &lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; Microsoft.ServiceBus.Messaging;&lt;/font&gt;                   &lt;br /&gt;                  &lt;br /&gt;                  &lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;namespace&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; Daenet.ServiceBus                    &lt;br /&gt;{                     &lt;br /&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;Subscriber&lt;/font&gt;&lt;/span&gt;                   &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{                     &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;strike&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; ServiceNamespace;                      &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; Issuer;                      &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Consolas"&gt; Key;                    &lt;br /&gt;&lt;/font&gt;&lt;/strike&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; TopicName = &lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;demotopic&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;;                    &lt;br /&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; Main(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;[] args)                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{                     &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;ServicePointManager&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;.ServerCertificateValidationCallback = (a, b, c, d) =&amp;gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{                     &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;true&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;};                     &lt;br /&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;Uri&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; rootAddressManagement =                    &lt;br /&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ServiceBusEnvironment&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.CreatePathBasedServiceUri(&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;https&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;,                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; “testspace01”, &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.Format(&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;{0}:{1}&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;YOURHOST&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;, 4446));                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;Uri&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; rootAddressRuntime = &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;ServiceBusEnvironment&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.CreatePathBasedServiceUri(&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;sb&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;,                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; “testspace01”, &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.Format(&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;{0}:{1}&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;YOURHOST&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;, 9354));                    &lt;br /&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;NamespaceManagerSettings&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; nmSettings = &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;NamespaceManagerSettings&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;();                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;nmSettings.TokenProvider = &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;TokenProvider&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.CreateWindowsTokenProvider(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;List&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;lt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;Uri&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&amp;gt;() { rootAddressManagement });                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;NamespaceManager&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; namespaceManager = &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;NamespaceManager&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;(rootAddressManagement, nmSettings);                    &lt;br /&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;MessagingFactorySettings&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; mfSettings = &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;MessagingFactorySettings&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;();                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;mfSettings.TokenProvider = &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;TokenProvider&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.CreateWindowsTokenProvider(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;List&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;lt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;Uri&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&amp;gt;() { rootAddressManagement });                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;MessagingFactory&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; factory = &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;MessagingFactory&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;.Create(rootAddressRuntime, mfSettings);                    &lt;br /&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;SubscriptionClient&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; subscriptionClient =                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; factory.CreateSubscriptionClient(TopicName, &lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;Subscription1&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;ReceiveMode&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;.PeekLock);                    &lt;br /&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;while&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;true&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;)                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{                     &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;BrokeredMessage&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; message = subscriptionClient.Receive(&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;.FromSeconds(1500));                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; (message == &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;null&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;)                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;break&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;;                    &lt;br /&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;try&lt;/font&gt;&lt;/span&gt;                   &lt;br /&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{                     &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;Console&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.WriteLine(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.Format(&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;Message received: SEQUENCE = {0}, Id = {1},                      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Body = {1}&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;, message.Properties[&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;SEQUENCE&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;], message.MessageId, message.GetBody&amp;lt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&amp;gt;()));                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;message.Complete();                     &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}                     &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;catch&lt;/font&gt;&lt;/span&gt;                   &lt;br /&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{                     &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;message.Abandon();                     &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}                     &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}                     &lt;br /&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;Console&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.WriteLine(&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;\nEnd of receiving, press any key to exit.&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;font color="#000000"&gt;);                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;Console&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.ReadLine();                    &lt;br /&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;subscriptionClient.Close();                     &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}                     &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}                     &lt;br /&gt;}&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p&gt;It is important in this sample that things like Issuer and Key are not required. The scope used by issuing of the token is like    &lt;br /&gt;    &lt;br /&gt;&lt;em&gt;scope=http%3a%2f%2yourhostname%2ftestspace01%2fdemotopic%2fSubscriptions%2fSubscription1.&lt;/em&gt;     &lt;br /&gt;    &lt;br /&gt;The issued token is is private for developers and it will be passed internally to all calls to service bus. On thing of your interest is that this token contains claims which describe users AD membership. Based on this information SB will perform authorization.     &lt;br /&gt;    &lt;br /&gt;Resources:     &lt;br /&gt;&lt;/p&gt;  &lt;h5&gt;Service Bus Beta resources:&lt;/h5&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=30376"&gt;Service Bus 1.0 Beta (download)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/jj193022%28v=azure.10%29.aspx"&gt;Service Bus for Windows Server (Service Bus 1.0 Beta)&lt;/a&gt; MSDN documentation&lt;/p&gt;  &lt;p&gt;&lt;a href="http://download.microsoft.com/download/F/9/6/F963B6DB-A327-4D10-B3E5-024D597BEE36/ServiceBusExplorer-Server.zip"&gt;Service Bus Explorer for Windows Server&lt;/a&gt;&lt;/p&gt;  &lt;h5&gt;Workflow 1.0 Beta resources &lt;/h5&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=30369"&gt;Workflow 1.0 Beta (download)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/library/jj193528"&gt;Workflow 1.0 Beta MSDN Documentation&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enjoy &lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/wlEmoticon_2D00_smile_5F00_07E77125.png" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=320678" width="1" height="1"&gt;</description><category domain="http://developers.de/blogs/damir_dobric/archive/tags/WCF/default.aspx">WCF</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx">cloud</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx">azure</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx">AppFabric</category></item><item><title>University of Applied Sciences in Frankfurt: - Agenda for 25.June 2012</title><link>http://developers.de/blogs/damir_dobric/archive/2012/06/24/university-of-applied-sciences-in-frankfurt-agenda-for-25-june-2012.aspx</link><pubDate>Sun, 24 Jun 2012 21:20:35 GMT</pubDate><guid isPermaLink="false">7e491611-45ad-4dae-a68f-c4cb64439510:317745</guid><dc:creator>Damir Dobric</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developers.de/blogs/damir_dobric/rsscomments.aspx?PostID=317745</wfw:commentRss><comments>http://developers.de/blogs/damir_dobric/archive/2012/06/24/university-of-applied-sciences-in-frankfurt-agenda-for-25-june-2012.aspx#comments</comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_6E613897.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_0E101260.png" width="480" height="115" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_71FF5374.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_78B25CF7.png" width="244" height="184" /&gt;&lt;/a&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_387C437D.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_1141FA48.png" width="244" height="184" /&gt;&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_17F503CB.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_05AC3D09.png" width="244" height="184" /&gt;&lt;/a&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_5E71F3D3.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_3737AA9E.png" width="244" height="184" /&gt;&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_24EEE3DC.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_16B06AEC.png" width="244" height="184" /&gt;&lt;/a&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_567A5171.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_5D2D5AF4.png" width="244" height="184" /&gt;&lt;/a&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_1CF7417A.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_2ED3D547.png" width="489" height="117" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_038F3E40.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_0A4247C3.png" width="244" height="184" /&gt;&lt;/a&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_4A0C2E48.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_22D1E513.png" width="244" height="184" /&gt;&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_34AE78E0.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_0D742FAB.png" width="244" height="184" /&gt;&lt;/a&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_4D3E1630.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_53F11FB3.png" width="244" height="184" /&gt;&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_28AC88AC.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_6C80BD03.png" width="244" height="184" /&gt;&lt;/a&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_5A37F641.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_27D422C2.png" width="244" height="191" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_4782FC8A.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_2767EFCD.png" width="140" height="87" /&gt;&lt;/a&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_725B609C.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_002DA698.png" width="140" height="87" /&gt;&lt;/a&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_4B211767.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_58F35D62.png" width="140" height="87" /&gt;&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_66C5A35D.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_31B9142D.png" width="140" height="87" /&gt;&lt;/a&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_2A99D7B5.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_0A7ECAF8.png" width="140" height="87" /&gt;&lt;/a&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_463E63AB.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_3F1F2733.png" width="140" height="87" /&gt;&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_37FFEABB.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_45D230B6.png" width="140" height="87" /&gt;&lt;/a&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_10C5A186.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_1E97E781.png" width="140" height="87" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;NOTE SESSION LOCATION IS CHANGED: &lt;/p&gt;  &lt;p&gt;Next Session: &lt;a href="https://maps.google.com/maps?q=Microsoft+Bad+Homburg,+Siemensstra%C3%9Fe,+Bad+Homburg,+Deutschland&amp;amp;hl=en&amp;amp;ie=UTF8&amp;amp;ll=50.216637,8.615749&amp;amp;spn=0.006824,0.012553&amp;amp;sll=49.593567,7.75526&amp;amp;sspn=0.884833,1.60675&amp;amp;oq=microsoft+bad+homburg+siemens&amp;amp;t=h&amp;amp;hq=Microsoft&amp;amp;hnear=Siemensstra%C3%9Fe,+Bad+Homburg+61352+Bad+Homburg,+Hessen,+Germany&amp;amp;z=16"&gt;https://maps.google.com/maps?q=Microsoft+Bad+Homburg,+Siemensstra%C3%9Fe,+Bad+Homburg,+Deutschland&amp;amp;hl=en&amp;amp;ie=UTF8&amp;amp;ll=50.216637,8.615749&amp;amp;spn=0.006824,0.012553&amp;amp;sll=49.593567,7.75526&amp;amp;sspn=0.884833,1.60675&amp;amp;oq=microsoft+bad+homburg+siemens&amp;amp;t=h&amp;amp;hq=Microsoft&amp;amp;hnear=Siemensstra%C3%9Fe,+Bad+Homburg+61352+Bad+Homburg,+Hessen,+Germany&amp;amp;z=16&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft&lt;/b&gt; GmbH    &lt;br /&gt;Siemensstraße 27    &lt;br /&gt;61352 Bad Homburg vor der Höhe, Germany    &lt;br /&gt;&lt;a href="https://maps.google.com/#"&gt;Get directions&lt;/a&gt;‎    &lt;br /&gt;06172 661-0&lt;/p&gt;  &lt;p&gt;Last but not least, at the end of sessions I will show few exam questions!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=317745" width="1" height="1"&gt;</description><category domain="http://developers.de/blogs/damir_dobric/archive/tags/WCF/default.aspx">WCF</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx">cloud</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx">azure</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx">AppFabric</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/windows+azure/default.aspx">windows azure</category></item><item><title>IIS Service Bus Bridge</title><link>http://developers.de/blogs/damir_dobric/archive/2012/06/23/iis-service-bus-bridge.aspx</link><pubDate>Sat, 23 Jun 2012 09:49:26 GMT</pubDate><guid isPermaLink="false">7e491611-45ad-4dae-a68f-c4cb64439510:317456</guid><dc:creator>Damir Dobric</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developers.de/blogs/damir_dobric/rsscomments.aspx?PostID=317456</wfw:commentRss><comments>http://developers.de/blogs/damir_dobric/archive/2012/06/23/iis-service-bus-bridge.aspx#comments</comments><description>&lt;p&gt;   &lt;br /&gt;On of upcoming interesting new features related to Service Bus is support for relaying of anything hosted in IIS. Today we are able to build SOAP and REST services which can be relayed with Service Bus. However this is limited to services only. Another option to relay the TCP traffic is “anycast” feature which is not easy to configure and it is in general not well known. Soon, it will be possible to install the IIS Service Bus bridge (see pictures below) which relays the IIS application.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_6FCCB06A.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_5D17B6B3.png" width="240" height="182" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_4ED93DC3.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_753B210E.png" width="240" height="78" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This means, you can host any kind of web application (not only WCF services as now) even on your laptop and access it via publicly available URL listened at the service bus endpoint. Just imagine applications running on the private IP address and accessible publicly in internet without of doing anything on firewall and infrastructure.&lt;/p&gt;  &lt;p&gt;More about that: &lt;a title="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/AZR308" href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/AZR308"&gt;http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/AZR308&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=317456" width="1" height="1"&gt;</description><category domain="http://developers.de/blogs/damir_dobric/archive/tags/Asp.Net/default.aspx">Asp.Net</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/WCF/default.aspx">WCF</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx">cloud</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx">azure</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx">AppFabric</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/windows+azure/default.aspx">windows azure</category></item><item><title>Speedup your Web Application with Windows Azure Web and new “Cache Worker Role”</title><link>http://developers.de/blogs/damir_dobric/archive/2012/06/17/speedup-your-web-application-with-windows-azure-web-and-new-cache-worker-role.aspx</link><pubDate>Sun, 17 Jun 2012 18:13:21 GMT</pubDate><guid isPermaLink="false">7e491611-45ad-4dae-a68f-c4cb64439510:314226</guid><dc:creator>Damir Dobric</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developers.de/blogs/damir_dobric/rsscomments.aspx?PostID=314226</wfw:commentRss><comments>http://developers.de/blogs/damir_dobric/archive/2012/06/17/speedup-your-web-application-with-windows-azure-web-and-new-cache-worker-role.aspx#comments</comments><description>&lt;p&gt;This article describes how to create ASP.NET MVC application as a WebRole and to speed it up by using CacheRole introduced in Windows Azure Platform release 1.7 (also called Spring Release [2012]). The way how the distributed cashe works and how it can be consumed by an application didn’t really change. Because of that I will focus only new features, because the way how they are build up and how they works has been slightly changed in this release.&lt;/p&gt;  &lt;h3&gt;Create Solution with Cache Role&lt;/h3&gt;  &lt;p&gt;To build solution I&lt;em&gt;&amp;#160; &lt;/em&gt;will use Visual Studio 2012 and Windows Azure SDK 1.7. If you didn’t install it already do it as described in my previous post&amp;#160; &lt;a href="http://developers.de/blogs/damir_dobric/archive/2012/06/10/starting-with-visual-studio-2012-and-windows-azure.aspx"&gt;here&lt;/a&gt;.    &lt;br /&gt;Now create the solution and add one WebRole (for example ASP.NET MVC4) and the CacheWorkerRole (I will explain it a bit latter).    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_70406BDC.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_56D868A2.png" width="232" height="143" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The project SharePointFastDataReaderCache is of type CacheWorkerRole and it represents the virtual machine which will host dedicated instance of distributed cache. This cache will be consumed by project (WebRole) SharePointFastdata reader. Please don’t&amp;#39; be confused with SharePoint name. It is not my focus in this article. I just used an existing solution which does the more or less same thing with SharePoint.   &lt;br /&gt;    &lt;br /&gt;The just created role is in fact WorkerRole which is place holder for Distributed Cache Service. That means: “&lt;u&gt;Do not add any code to that role&lt;/u&gt;!!” Before you do deployment select the Worker Cache Role and go to properties (dbl-click on SharePointFastDataReaderCache ). Select enable cache and click on Dedicated Role as shown below.    &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_2F9E1F6D.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_0863D638.png" width="337" height="177" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you have added Cache as role project, you should select “dedicated role”. In this case Windows Azure will during deployment process allocate Virtual Machine (or more if you have selected more than one instance) and install Distributed Cache Service on it (them). If you don’t want to have dedicated machine for cache then go to properties of you WebRole and select Co-located Role, Windows Azure will in this case install distributed cash service on the same machine where you web role is running. In this case you even don’t need Worker Cache Role as project.&amp;#160; But you can have it. It might be that you are doing lot of caching and from architecture point of view this might also be a valid solution. I means you have Worker Cache Role as dedicated cache and you also have co-located cache at the WebRole. Physically you would by deployment allocate two different caches with number of chosen instances for each of them.&lt;/p&gt;  &lt;p&gt;If you ever worked with Windows Server AppFabric (WSA) similar version of cache will be installed in the slightly different version of cache. In contract to WSA the new one is called simply &lt;em&gt;&lt;strong&gt;CacheService&lt;/strong&gt;&lt;/em&gt;. Remember, WSA cache service is called “&lt;em&gt;&lt;strong&gt;AppFabricCachingService&lt;/strong&gt;&lt;/em&gt;”. Following pictures shows task manager of the WinAzure machine which host cache as dedicated role.     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_1A406A05.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" align="left" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_39EF43CD.png" width="367" height="287" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_40A24D50.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_67706390.png" width="416" height="137" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I captured pictures by connecting to dedicated worker cache role (if Dedicated Role is used) and by connecting to WebRole (if Co-Located cache has been used).   &lt;br /&gt;If the WebRole don’t specify the cache processes and services shown above will not be installed on the machine.    &lt;br /&gt;Co-located cache-role would be configured as shown at the next picture.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_60512718.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_14F18354.png" width="711" height="355" /&gt;&lt;/a&gt;    &lt;br /&gt;    &lt;br /&gt;In the picture above is also shown how to add additional caches to the cache instance. remember, this has not been possible by using Windows Azure Cache in version 1.6.    &lt;br /&gt;    &lt;br /&gt;Note that emulator of cache is also provided. The cache is emulated by the cache service emulator. In the picture below, I captured emulator for two cache instances.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_3B226D0E.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_56C6F904.png" width="655" height="178" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;Last, but not least the cache instance provisioned here (v1.7) is different one than cache instance v1.6 known as Windows Azure AppFabric Cache, which is shown at the picture below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_1485505F.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_78749173.png" width="177" height="135" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Installing cache Client components&lt;/h3&gt;  &lt;p&gt;After that you have created the solution you will have to install Windows Azure Caching (currently in preview.) libraries by using NuGet. Note that value “Include Prereleases“ (see picture below) is selected in the combo. Otherwise you will find the NuGet package Windows Azure Caching (almost the same name), which is related to version 1.6. That one will not work in this scenario.&amp;#160; Even better to say, this one will work, but you will have to use Windows Azure AppFabric cache, which is not the same as Windows Azure Cache Role, which we will focus in this article. Following picture shows what and how to&amp;#160; install by NuGet.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_1F42A7B4.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_53E303EF.png" width="861" height="258" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;After the package has been successfully installed following references are added to project.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_45A48AFF.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_056E7185.png" width="338" height="266" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Additionally the package inserts following section in the configuration file. This section looks slightly different that the common caching section.   &lt;br /&gt;The identifier specified in &lt;u&gt;dataCacheClient&lt;/u&gt; element is the name of the role which hosts physically distributed cache. For example following configuration will setup using of dedicated cache deployed by the Worker Cache Role.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_174B0552.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" align="left" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_5714EBD7.png" width="642" height="114" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you rather used the Co-located cache in your WebRole (no Worker Cache Role used) then only identifier has to be changed to the name of the WebRole instead of dedicated cache role as shown below:   &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_2BD054D0.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" align="left" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_6B9A3B55.png" width="576" height="113" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In the MVC (WebRole) application I defined two actions PutCacheValue and GetCacheValue. Please note in picture below that output-cache has been disabled. This is very important, because output-caching (which is feature of ASP.NET) would prevent the system to work properly.   &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_2B6421DB.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_0429D8A6.png" width="665" height="353" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The JavaScript functions which puts value in the cache and gets it out look like:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_71E111E3.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_31AAF869.png" width="640" height="378" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;At the end the sample application looks like:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_43878C36.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_1C4D4301.png" width="642" height="339" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;More about Caching: &lt;a title="https://www.windowsazure.com/en-us/develop/net/how-to-guides/cache/" href="https://www.windowsazure.com/en-us/develop/net/how-to-guides/cache/"&gt;https://www.windowsazure.com/en-us/develop/net/how-to-guides/cache/&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=314226" width="1" height="1"&gt;</description><category domain="http://developers.de/blogs/damir_dobric/archive/tags/WCF/default.aspx">WCF</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx">cloud</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx">AppFabric</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/windows+azure/default.aspx">windows azure</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/jQuery/default.aspx">jQuery</category></item><item><title>About direct and brokered messaging</title><link>http://developers.de/blogs/damir_dobric/archive/2012/06/17/about-direct-and-brokered-messaging.aspx</link><pubDate>Sun, 17 Jun 2012 18:01:29 GMT</pubDate><guid isPermaLink="false">7e491611-45ad-4dae-a68f-c4cb64439510:314217</guid><dc:creator>Damir Dobric</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developers.de/blogs/damir_dobric/rsscomments.aspx?PostID=314217</wfw:commentRss><comments>http://developers.de/blogs/damir_dobric/archive/2012/06/17/about-direct-and-brokered-messaging.aspx#comments</comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;When multiple systems are connected to each other different connecting patterns can be used. Most typical kind of connection is called &lt;strong&gt;direct messaging&lt;/strong&gt;. This is not related to terms like direct TCP connection or request response HTTP messaging. When we are trying to connect systems usually we do it with WCF. That means, we will try to abstract (decouple) the transport from contract. By using this approach we do not think about transport and this is why we do not think TCP direct or HTTP req/resp when we say direct connection. Direct means in this context, one system is sending message to another system by using any kind of protocol without of some intermediary between them. Router in this context is not in a role of an intermediary, because it is a part of infrastructure.    &lt;br /&gt;Typical example of such systems is typical WCF client/service scenario. Windows community calls this client/service, but the right term would be rather consumer/service, which is usually used in JAVA community.    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_0100F449.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_39AB9E56.png" width="497" height="60" /&gt;&lt;/a&gt;    &lt;br /&gt;    &lt;br /&gt;Additionally to classical direct messaging (consumer sends messages to service), we also have a &lt;strong&gt;relayed messaging&lt;/strong&gt; as an important pattern introduced by Windows Azure Service Bus.In relayed system, participants use some kind of intermediary usually called relay. However the relay establish always a direct connection between participants in the system. This is why the relaying is direct messaging, although it uses “&lt;em&gt;something”&lt;/em&gt; between participants.    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_477DE451.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_595A781E.png" width="496" height="181" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Typical example of relayed system is service consumer communication through Windows Azure Service Bus relay bindings.&lt;/p&gt;  &lt;p&gt;Another important communication pattern is &lt;strong&gt;brokered messaging.&lt;/strong&gt; This pattern assumes existence of an intermediary system between sender and receiver of the message. In contrast to relay there is&amp;#160; one &lt;strong&gt;broker&lt;/strong&gt; between participants, which decuples them. When the broker is used in communication system, all participants are decoupled and we usually do not use terms service and consumer. Instead we use terms like sender and receiver.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_00288E5F.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_0DFAD45A.png" width="689" height="62" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Typical example of brokered messaging is Windows Azure Service Bus queue and topic based system    &lt;br /&gt;    &lt;br /&gt;Direct and relayed messaging are subject to &lt;strong&gt;backpressure&lt;/strong&gt; from the consumer. Systems which use direct messaging are limited by speed of consumption of messages by consumer. The consumption of message might directly influence the speed of production of the message. Such systems are usually limited in scale. in contract to systems with brokered messaging.&amp;#160; By definition, brokered messaging always uses an intermediate store to consume and durably persist messages. Consumers are responsible to pool messages. In brokered systems producer and consumer can scale independently. Usually communication between participants and broker is transaction safe. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=314217" width="1" height="1"&gt;</description><category domain="http://developers.de/blogs/damir_dobric/archive/tags/BizTalk/default.aspx">BizTalk</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/WCF/default.aspx">WCF</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx">cloud</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx">azure</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx">AppFabric</category></item><item><title>University of Applied Sciences in Frankfurt: - Agenda for 18.June 2012</title><link>http://developers.de/blogs/damir_dobric/archive/2012/06/16/university-of-applied-sciences-in-frankfurt-agenda-for-18-june-2012.aspx</link><pubDate>Sat, 16 Jun 2012 18:04:28 GMT</pubDate><guid isPermaLink="false">7e491611-45ad-4dae-a68f-c4cb64439510:313402</guid><dc:creator>Damir Dobric</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developers.de/blogs/damir_dobric/rsscomments.aspx?PostID=313402</wfw:commentRss><comments>http://developers.de/blogs/damir_dobric/archive/2012/06/16/university-of-applied-sciences-in-frankfurt-agenda-for-18-june-2012.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_7A2A90DC.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_32D53AEA.png" width="488" height="112" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_729F216F.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_0B2EBEC0.png" width="240" height="180" /&gt;&lt;/a&gt;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_43D968CD.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_0A5658D6.png" width="240" height="180" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_17BC6BDC.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_5B90A033.png" width="240" height="180" /&gt;&lt;/a&gt;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_292CCCB4.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_76C8F934.png" width="240" height="180" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_616B43CC.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_48034092.png" width="240" height="180" /&gt;&lt;/a&gt;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_67B21A5A.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_2E2F0A63.png" width="240" height="180" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_38EC61B8.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_1F182B89.png" width="240" height="180" /&gt;&lt;/a&gt;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_41AC4437.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_336DCB47.png" width="240" height="180" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_4F12573D.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_79EABB4F.png" width="240" height="180" /&gt;&lt;/a&gt;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_4EA62448.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_797E885A.png" width="240" height="180" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_39486EE0.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_26FFA81E.png" width="240" height="180" /&gt;&lt;/a&gt;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_51D80C30.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_7186E5F8.png" width="240" height="180" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_0B012124.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_4ACB07A9.png" width="240" height="180" /&gt;&lt;/a&gt;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_1A0BEE30.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_72D1A4FA.png" width="240" height="180" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font color="#2b91af"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DataCacheFactory&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;font color="#000000"&gt; dcf = &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;DataCacheFactory&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;();&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;" color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;DataCache&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;font style="font-size:9.5pt;"&gt;cache&lt;/font&gt;= dcf.GetCache(cCacheName);&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;List&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;lt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;DataCacheTag&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt; tags = &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;List&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;lt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;DataCacheTag&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;();            &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;tags.Add(&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;DataCacheTag&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;key1&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;));            &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;tags.Add(&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;DataCacheTag&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;key2&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;));            &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;tags.Add(&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;DataCacheTag&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;key3&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;));            &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; isCreated = ucdCache.CreateRegion(&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;RegionName&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;);            &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;lt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;KeyValuePair&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;lt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;&amp;gt; items;            &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;items = &lt;font style="font-size:9.5pt;"&gt;cache&lt;/font&gt;.GetObjectsByTag(&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;DataCacheTag&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;nosuchtag&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;), &lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;RegionName&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;);            &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;items = &lt;font style="font-size:9.5pt;"&gt;cache&lt;/font&gt;.GetObjectsByTag(tags.First(), &lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;RegionName&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;);            &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; (items.Count() &amp;gt; 0)            &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;font style="font-size:9.5pt;"&gt;cache&lt;/font&gt;.ClearRegion(&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;RegionName&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;);            &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;" color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;DataCacheItemVersion&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; ver2 = &lt;font style="font-size:9.5pt;"&gt;cache&lt;/font&gt;.Add(&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;Tagged&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;, 123, tags, &lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;Company2Customer2&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;);            &lt;br /&gt;            &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;cache.Add(&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;Tagged1&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;, 123, tags, &lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;RegionName&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;);            &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;font style="font-size:9.5pt;"&gt;cache&lt;/font&gt;.Put(&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;Tagged1&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;, 123, tags, &lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;RegionName&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;);            &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;font style="font-size:9.5pt;"&gt;cache&lt;/font&gt;.Add(&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;Tagged2&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;, 456, &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;List&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;lt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;DataCacheTag&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;() { tags.First() }, &lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;RegionName&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;);            &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;font style="font-size:9.5pt;"&gt;cache&lt;/font&gt;.Add(&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;Tagged3&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;, 789, &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;List&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;lt;&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;DataCacheTag&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;gt;() { tags.Last() }, &lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;RegionName&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;);&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;" color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;cache&lt;/font&gt;.GetObjectsByTag(tags.First(), &lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;RegionName&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;).ForEach(i =&amp;gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;Console&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.WriteLine(i));            &lt;br /&gt;            &lt;br /&gt;&lt;em&gt;             &lt;br /&gt;              &lt;br /&gt;NOTE: array.ForEach() is provided by daenet.system.dll. It is not contained in .NET framework!&lt;/em&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_1AA2476A.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_52E0BE82.png" width="140" height="87" /&gt;&lt;/a&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_402BC4CB.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_7F89785B.png" width="140" height="87" /&gt;&lt;/a&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_22D66D01.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_7006668C.png" width="140" height="87" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_361723A0.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_4EA6C0F0.png" width="140" height="87" /&gt;&lt;/a&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_6DE967C3.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_06790514.png" width="140" height="87" /&gt;&lt;/a&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_25BBABE7.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_3E4B4937.png" width="140" height="87" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_045C064B.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_518BFFD6.png" width="282" height="85" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color:#ffff00;"&gt;Download Presentation&lt;/font&gt;: &lt;a title="http://developers.de/media/p/317742.aspx" href="http://developers.de/media/p/317742.aspx"&gt;http://developers.de/media/p/317742.aspx&lt;/a&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Next Session: &lt;a title="https://maps.google.com/maps?q=Microsoft+Bad+Homburg,+Siemensstra%C3%9Fe,+Bad+Homburg,+Deutschland&amp;amp;hl=en&amp;amp;ie=UTF8&amp;amp;ll=50.216637,8.615749&amp;amp;spn=0.006824,0.012553&amp;amp;sll=49.593567,7.75526&amp;amp;sspn=0.884833,1.60675&amp;amp;oq=microsoft+bad+homburg+siemens&amp;amp;t=h&amp;amp;hq=Microsoft&amp;amp;hnear=Siemensstra%C3%9Fe,+Bad+Homburg+61352+Bad+Homburg,+Hessen,+Germany&amp;amp;z=16" href="https://maps.google.com/maps?q=Microsoft+Bad+Homburg,+Siemensstra%C3%9Fe,+Bad+Homburg,+Deutschland&amp;amp;hl=en&amp;amp;ie=UTF8&amp;amp;ll=50.216637,8.615749&amp;amp;spn=0.006824,0.012553&amp;amp;sll=49.593567,7.75526&amp;amp;sspn=0.884833,1.60675&amp;amp;oq=microsoft+bad+homburg+siemens&amp;amp;t=h&amp;amp;hq=Microsoft&amp;amp;hnear=Siemensstra%C3%9Fe,+Bad+Homburg+61352+Bad+Homburg,+Hessen,+Germany&amp;amp;z=16"&gt;https://maps.google.com/maps?q=Microsoft+Bad+Homburg,+Siemensstra%C3%9Fe,+Bad+Homburg,+Deutschland&amp;amp;hl=en&amp;amp;ie=UTF8&amp;amp;ll=50.216637,8.615749&amp;amp;spn=0.006824,0.012553&amp;amp;sll=49.593567,7.75526&amp;amp;sspn=0.884833,1.60675&amp;amp;oq=microsoft+bad+homburg+siemens&amp;amp;t=h&amp;amp;hq=Microsoft&amp;amp;hnear=Siemensstra%C3%9Fe,+Bad+Homburg+61352+Bad+Homburg,+Hessen,+Germany&amp;amp;z=16&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft&lt;/b&gt; GmbH&lt;/p&gt;  &lt;p&gt;Siemensstraße 27&lt;/p&gt;  &lt;p&gt;61352 Bad Homburg vor der Höhe, Germany&lt;/p&gt;  &lt;p&gt;&lt;a href="https://maps.google.com/#"&gt;Get directions&lt;/a&gt;‎&lt;/p&gt;  &lt;p&gt;06172 661-0&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=313402" width="1" height="1"&gt;</description><category domain="http://developers.de/blogs/damir_dobric/archive/tags/Asp.Net/default.aspx">Asp.Net</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/WCF/default.aspx">WCF</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx">cloud</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx">azure</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx">AppFabric</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/windows+azure/default.aspx">windows azure</category></item><item><title>University of Applied Sciences in Frankfurt: - Agenda for 4.June 2012</title><link>http://developers.de/blogs/damir_dobric/archive/2012/06/03/university-of-applied-sciences-in-frankfurt-agenda-for-4-june-2012.aspx</link><pubDate>Sun, 03 Jun 2012 16:38:24 GMT</pubDate><guid isPermaLink="false">7e491611-45ad-4dae-a68f-c4cb64439510:304237</guid><dc:creator>Damir Dobric</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developers.de/blogs/damir_dobric/rsscomments.aspx?PostID=304237</wfw:commentRss><comments>http://developers.de/blogs/damir_dobric/archive/2012/06/03/university-of-applied-sciences-in-frankfurt-agenda-for-4-june-2012.aspx#comments</comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_7B81BE75.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_54477540.png" width="489" height="106" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_2902DE39.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_1AC46549.png" width="240" height="180" /&gt;&lt;/a&gt;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_21776ECC.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_0F2EA80A.png" width="240" height="180" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_2CC08309.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_014C3C42.png" width="240" height="180" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Click here to download presentation: &lt;a title="http://developers.de/media/p/304235/download.aspx" href="http://developers.de/media/p/304235/download.aspx"&gt;http://developers.de/media/p/304235/download.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/blogs/damir_dobric/archive/2012/04/29/agenda-for-07-mai-at-university-of-applied-sciences-frankfurt.aspx"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_46724194.png" width="136" height="83" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_6D4057D4.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_3833C8A4.png" width="136" height="83" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://developers.de/blogs/damir_dobric/archive/2012/05/17/university-of-applied-sciences-in-frankfurt-agenda-for-24-mai-2012.aspx"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_46060E9F.png" width="136" height="83" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://developers.de/blogs/damir_dobric/archive/2012/06/03/university-of-applied-sciences-in-frankfurt-agenda-for-4-june-2012.aspx"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_53D8549A.png" width="136" height="83" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_1ECBC56A.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_7EB0B8AC.png" width="136" height="83" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_0C82FEA8.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_57766F77.png" width="136" height="83" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_1336082B.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_5E2978FA.png" width="274" height="80" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=304237" width="1" height="1"&gt;</description><category domain="http://developers.de/blogs/damir_dobric/archive/tags/WCF/default.aspx">WCF</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx">cloud</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx">azure</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx">AppFabric</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/windows+azure/default.aspx">windows azure</category></item><item><title>WinDays 2012 KeyNote Demo Step Through</title><link>http://developers.de/blogs/damir_dobric/archive/2012/05/12/windays-2012-keynote-demo-step-through.aspx</link><pubDate>Sat, 12 May 2012 11:54:46 GMT</pubDate><guid isPermaLink="false">7e491611-45ad-4dae-a68f-c4cb64439510:302562</guid><dc:creator>Damir Dobric</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developers.de/blogs/damir_dobric/rsscomments.aspx?PostID=302562</wfw:commentRss><comments>http://developers.de/blogs/damir_dobric/archive/2012/05/12/windays-2012-keynote-demo-step-through.aspx#comments</comments><description>&lt;p&gt;   &lt;br /&gt;Few days ago I showed the Demo at &lt;a href="http://www.windays.hr/hr/naslovna/"&gt;WinDays&lt;/a&gt; 2012 keynote under the name “SharePoint Ralay”. The idea of the keynote was to show some important features which never have been shown or documented in the way as of very one common industry scenario. To keep things simple we didn’t go to deep into details of SharePoint and ServiceBus. We wanted to to build a demo which will show how to build few complex and enterprise relevant scenarios, but to be in the same time interesting for most developers in audience and even for journalists who have been attending the key note.     &lt;br /&gt;So I decided to target three common industrial issues which daenet has been asked to solve multiple times during 2011:&lt;/p&gt;  &lt;p&gt;1. How to get (or put) SharePoint data out of enterprise without changing of infrastructure?    &lt;br /&gt;2. How to build dynamic WCF contract?     &lt;br /&gt;3. How to build Failover cluster in 48 Seconds?&lt;/p&gt;  &lt;h4&gt;1. How to get/put data out of SPS without changing of infrastructure?&lt;/h4&gt;  &lt;p&gt;Most SharePoint Developers live in their collaborative context which mostly does not require such scenarios. But when building SharePoint solutions you will figure out that SharePoint isn’t application platform in term how one solution or enterprise architect expect to be. Today, complex systems are systems which consist of usually distributed and hybrid hybrid applications.Distributed means they at least do not run in one process and hybrid means they can be build on top of different technologies.    &lt;br /&gt;So, imagine now one application which is build in .NET 4.5 which should run in SharePoint. To make it more simpler image a JAVA application which runs at different machine on different geographic location. Now put it in SharePoint and let talk to each other. Application Platform is the platform which enables to do such things. Any other application platform like SharePoint, CRM, BizTalk or anything else is a platform of their own definition with huge limitations. Because of that be careful, when you say platform. “&lt;em&gt;One can be a boss in his village, but just some little peace in the global world”&lt;/em&gt;. The part of Microsoft which build such platforms is called Business Platform Division.     &lt;br /&gt;    &lt;br /&gt;So, let’s get now some data out of SharePoint in context of&amp;#160; distributed application scenario. First of all in the world of distributed thinking, you should never allow external parties get in touch with your platform directly. To illustrate this constraint, think on giving the public access to your database. You will probably never allow somebody to send you DB-commands which will be executed against your DB (SQL Injections etc..). If you do it it is wrong and please think change it.. By following the same rule you shouldn’t let anybody to dig in your SharePoint platform for the same reason. You even should not share the secret, that you platform is SPS.     &lt;br /&gt;    &lt;br /&gt;The easiest way is to provide some kind of intermediary component which will abstract the business scenario over secret platform which is running in the background. The technology which does exactly this job is WCF. We will put WCF service between SPS and external party. At some point of time when you have lot of such services, you can start to talk about Middle-Ware. This is a fine solution, but there is a still one practical problem.     &lt;br /&gt;    &lt;br /&gt;The service contract could look in our case as shown below:     &lt;br /&gt;    &lt;br /&gt;    &lt;table cellspacing="0" cellpadding="2"&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;[ServiceContract(Name = &amp;quot;EchoContract&amp;quot;, Namespace = &amp;quot;&lt;a href="http://samples.microsoft.com/ServiceModel/Relay/&amp;quot;)]"&gt;http://samples.microsoft.com/ServiceModel/Relay/&amp;quot;)]&lt;/a&gt;               &lt;br /&gt;&amp;#160; public interface ISpsRelayService               &lt;br /&gt;&amp;#160; {               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [OperationContract]               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;MyEntity&amp;gt; Query(QueryEntity query);               &lt;br /&gt;&amp;#160; } &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/table&gt; &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;You should define the QueryEntity which somehow describes what you want. SPS developer would like to to see here probably SPS- “ClientObjects”. Unfortinatelly they have never been designed for such scenarios. They can only be used by explicit helper libraries. Such libraries do not work out of SharePoint and their dependent entities are not serializable.     &lt;br /&gt;But never mind, define your entities like your business needs them (see service contract above).     &lt;br /&gt;    &lt;br /&gt;The service implementation (see code below) will read the QueryEntity instance and build appropriate SPS-query (not shown in the demo below).     &lt;br /&gt;After all we will call SPS WebService hosted internally in our enterprise at &lt;a title="http://yourhost:44445" href="http://yourhost:44445"&gt;http://yourhost:44445&lt;/a&gt; and finally build response as collection of &lt;em&gt;MyEntity&lt;/em&gt; instances.     &lt;br /&gt;This service decouples the SPS from external parties and provides very simple and business related contract as usual in the SOA world.     &lt;br /&gt;Following code snippet shows how to implement the service which gets documents from some SharePOint library and returns them as collection to the external party. In fact this is nothing very complicated (not yet)..&lt;/p&gt;  &lt;p&gt;   &lt;table cellspacing="0" cellpadding="2"&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;br /&gt;            &lt;p&gt;public List&amp;lt;MyEntitity&amp;gt; Query(QueryEntity query)              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ClientContext clientContext = new ClientContext(&amp;quot;&lt;a href="http://yourhost:44445&amp;quot;);"&gt;http://yourhost:44445&amp;quot;);&lt;/a&gt;&lt;/p&gt;            &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Web oWebsite = clientContext.Web;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var files = oWebsite.GetFolderByServerRelativeUrl(&amp;quot;/Shared%20Documents&amp;quot;).Files;               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; clientContext.Load(files);               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; clientContext.ExecuteQuery();&lt;/p&gt;            &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;MyEntitity&amp;gt; items = new List&amp;lt;MyEntitity&amp;gt;();&lt;/p&gt;            &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (var doc in files)              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dynamic o = new MyEntitity();               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; o.Name = doc.Name;               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; o.Something = DateTime.Now.Ticks;               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; o.Version = doc.UIVersionLabel;&lt;/p&gt;            &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; items.Add(o);              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;            &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return items;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/table&gt; &lt;/p&gt;  &lt;p&gt;To make it available in the internet this service needs to have a public endpoint accessible by the external party. And exactly this is the change demand in infrastructure which is very, very often an organizational issue or even “No go”. First somebody hast to give you an public IP address, then you need to configure NAT and DNS&amp;#160; for it, then Security, port mapping from probably 80 to 4445 etc., etc..    &lt;br /&gt;I want to build some kind of VPN between my WCF (talking to SPS) and external caller, but without changing any piece of infrastructure. The next picture shows this scenario. Windows Azure provides a platform service called “&lt;a href="http://www.windowsazure.com/en-us/home/features/service-bus/"&gt;Service Bus&lt;/a&gt;”. This one provides a feature called relying. Relaying can connect two participants directly thorough firewall. Two participants are connected through Service Bus intermediary by using bidirectional TCP connection, which remains open after once is established.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_52E91BC8.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_37DC5E88.png" width="856" height="561" /&gt;&lt;/a&gt;     &lt;br /&gt;    &lt;br /&gt;Following code shows how to start-up the service which will listen on Service-Bus packets and relay SharePoint to external caller.&lt;/p&gt;  &lt;p&gt;   &lt;table cellspacing="0" cellpadding="2"&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;static void Main(string[] args)              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ServicePointManager.ServerCertificateValidationCallback = validateServerCert;&lt;/p&gt;            &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // create the service URI based on the service namespace which you will obtain when creating the              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // service bus namespace.               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Uri address = ServiceBusEnvironment.CreateServiceUri(&amp;quot;https&amp;quot;, serviceNamespaceDomain, &amp;quot;SpsRelayService/DocumentLibrary&amp;quot;);&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;            &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // create the credential object for the endpoint              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TransportClientEndpointBehavior sharedSecretServiceBusCredential = new TransportClientEndpointBehavior();               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sharedSecretServiceBusCredential.TokenProvider = TokenProvider.CreateSharedSecretTokenProvider(issuerName, issuerSecret);&lt;/p&gt;            &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // create the service host reading the configuration              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ServiceHost host = new ServiceHost(typeof(SpsRelayService), address);&lt;/p&gt;            &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // create the ServiceRegistrySettings behavior for the endpoint              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IEndpointBehavior serviceRegistrySettings = new ServiceRegistrySettings()               &lt;br /&gt;{ DisplayName = &amp;quot;Sharepoint Relay Document Library Service&amp;quot;, DiscoveryMode = DiscoveryType.Public };               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (ServiceEndpoint endpoint in host.Description.Endpoints)               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {               &lt;br /&gt;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // add the Service Bus credentials to all endpoints specified in configuration               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; endpoint.Behaviors.Add(sharedSecretServiceBusCredential);               &lt;br /&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Optionally you can add the URI in the registry.               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; endpoint.Behaviors.Add(serviceRegistrySettings);               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;            &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Open the service              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; host.Open();&lt;/p&gt;            &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.ForegroundColor = ConsoleColor.Cyan;&lt;/p&gt;            &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;Service address: &amp;quot; + address);              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;Press [Enter] to exit&amp;quot;);               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.ReadLine();&lt;/p&gt;            &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // close the service              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; host.Close();               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }               &lt;br /&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/table&gt; &lt;/p&gt;  &lt;p&gt;Similarly, external party will also establish the connection as shown in the next snippet:    &lt;br /&gt;    &lt;br /&gt;    &lt;table cellspacing="0" cellpadding="2"&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;static void Main(string[] args)              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ServicePointManager.ServerCertificateValidationCallback = validateServerCert;&lt;/p&gt;            &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // create the service URI based on the service namespace              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Uri address = ServiceBusEnvironment.CreateServiceUri(&amp;quot;https&amp;quot;, serviceNamespaceDomain, &amp;quot;SpsRelayService/DocumentLibrary&amp;quot;);&lt;/p&gt;            &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // create the credential object for the endpoint              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TransportClientEndpointBehavior sharedSecretServiceBusCredential = new TransportClientEndpointBehavior();               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sharedSecretServiceBusCredential.TokenProvider = TokenProvider.CreateSharedSecretTokenProvider(issuerName, issuerSecret);&lt;/p&gt;            &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // create the channel factory loading the configuration              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ChannelFactory&amp;lt;ISpsRelayService&amp;gt; channelFactory = new ChannelFactory&amp;lt;ISpsRelayService&amp;gt;(&amp;quot;RelayEndpoint&amp;quot;, new EndpointAddress(address));&lt;/p&gt;            &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // apply the Service Bus credentials              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; channelFactory.Endpoint.Behaviors.Add(/*swtBehavior*/sharedSecretServiceBusCredential);&lt;/p&gt;            &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // create and open the client channel              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ISpsRelayService channel = channelFactory.CreateChannel();               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ((ICommunicationObject)channel).Open();&lt;/p&gt;            &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;Enter text to echo (or [Enter] to exit):&amp;quot;);              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string input = Console.ReadLine();               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;MyEntity&amp;gt; res = channel.Query(new QueryEntity(){…});               &lt;br /&gt;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ((ICommunicationObject)channel).Close();               &lt;br /&gt;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; channelFactory.Close();               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }               &lt;br /&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/table&gt; &lt;/p&gt;  &lt;p&gt;If you ever worked with WCF there is not much more to say. The code shown above contains a bit sugar around standard WCF.Everything else is a matter of channel which is hidden behind RelayBinding. For more information about ports in use take a look &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/ee732535.aspx"&gt;here&lt;/a&gt;.     &lt;br /&gt;Following binding must be configured in both service and client.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;&amp;lt;bindings&amp;gt;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;basicHttpRelayBinding&amp;gt;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;binding name=&amp;quot;myBinding&amp;quot;&amp;gt;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;security mode=&amp;quot;Transport&amp;quot;/&amp;gt;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/binding&amp;gt;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/basicHttpRelayBinding&amp;gt;             &lt;br /&gt;&amp;#160; &amp;lt;/bindings&amp;gt;             &lt;br /&gt;&amp;#160;&amp;#160; &lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p&gt;After you start service and then client,the client will send the request to service through firewall. The service will get data out of SPS and relay it back to the client.&lt;/p&gt;  &lt;h4&gt;2. How to build dynamic WCF contract? &lt;/h4&gt;  &lt;p&gt;In the world of SOA you always should build a clear contract between two boundaries. That means contracts like following one are not well designed:    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;&lt;em&gt;Message Operation(Message msg);        &lt;br /&gt;&lt;/em&gt;&lt;/strong&gt;    &lt;br /&gt;I have also seen in some projects following variant of the similar contract, which is semantically the same one as previous one:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;string Operation(string msg);&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;By using such contract the client has no way to know how to serialize the message. Even after the service version is changed, there is no way to communicate this to anybody instead of verbal human communication which is time intensive and error prone. Compare it with “add service reference” to create the proxy. The client and service must in such cases implement code which serializes/deserializes respectively the message (string).    &lt;br /&gt;In other words, using service contracted this way is called “&lt;strong&gt;&lt;em&gt;Anti-Pattern&lt;/em&gt;&lt;/strong&gt;”, which should not be used in the SOA world.     &lt;br /&gt;    &lt;br /&gt;Many developers think they can build SOA solution if they are just able to build WCF based service. This is a mistake. When you use WCF it doesn’t mean at all that you are by default SOAP capable.&amp;#160; In our scenario I will use out this fact as my advantage. Connecting external party to our relay service is not SOA focused scenario. It is more about classical EAI and not SOA. Such kind of connecting system is known as interface with point-to-point connection. This is also not the best pattern in the world of SOA (I mean point2point interface).&amp;#160; and it should b e avoided when building middle-wares. But this is another story.     &lt;br /&gt;&amp;#160; &lt;br /&gt;In other words, If you are connecting two systems as point2poin it might be valid to apply SOA anti-pattern.This is in context of SOA an anti-pattern, but not an anti-pattern in universe of possible solutions. If you have two parties talking to each other then you can often change the contract between them without of too much organizational difficulties.If you are changing often the contract (in our case &lt;em&gt;MyEntity&lt;/em&gt; and &lt;em&gt;MyQuery&lt;/em&gt;) it is easier to make it dynamic. In this case you can build it once without need to change it in the future, because it is dynamic one. Following example shows how to use &lt;strong&gt;&lt;em&gt;ExpandoObject&lt;/em&gt;&lt;/strong&gt; to build dynamic WCF contract. If you don’t know what this is take a look on &lt;a href="http://blogs.msdn.com/b/csharpfaq/archive/2009/10/01/dynamic-in-c-4-0-introducing-the-expandoobject.aspx"&gt;Alexandra’s&lt;/a&gt;&amp;#160; and &lt;a href="http://www.west-wind.com/weblog/posts/2012/Feb/08/Creating-a-dynamic-extensible-C-Expando-Object"&gt;Rick’&lt;/a&gt;s posts.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;ServiceContract(Name = &amp;quot;SpsRelayContract&amp;quot;, Namespace = &amp;quot;&lt;a href="http://daenet.deServiceModel/Relay/&amp;quot;)]"&gt;http://daenet.deServiceModel/Relay/&amp;quot;)]&lt;/a&gt;             &lt;br /&gt;&amp;#160; public interface ISpsRelayService             &lt;br /&gt;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [OperationContract]             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;&lt;font color="#0000ff"&gt;ExpandoObject&lt;/font&gt;&amp;gt; Query(&lt;font color="#0000ff"&gt;ExpandoObject&lt;/font&gt; expression);             &lt;br /&gt;&amp;#160; } &lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p&gt;The good thing on Expando-contract is that you can do something like this:    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;dynamic&lt;/font&gt; o = new &lt;font color="#0000ff"&gt;ExpandoObject&lt;/font&gt;();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; o.Name = “bla bla”;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; o.Something = DateTime.Now.Ticks;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; o.Method= new SomeDelegate(someMethod);     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;You can set on this object whatever property you want (more or less). But&amp;#160; note in a case of WCF the method instance as property wouldn’t make a sense, because that instance will not exist on some other process and some other machine. However all other properties can be set as you like. And WCF will serialize them automatically for you. In other words, if you have a new property you don’t have to change contract. You just set it like:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;o.NewPropery = 17;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The consumer of this value just hast to know that is there (because,. remember, there is not clear contract, Add-Reference or SVCUTIL). &lt;/p&gt;  &lt;p&gt;As a recap, note that ExpandoObject provides a dynamic contract. Build your Service on top of this entity and you will not have to change the contract when new properties are added in the business scenario, which service implements. Remember that this is not a SOA capable solution, but it is valid to build Point-To-Point scenarios when one party is connecting to another one.&lt;/p&gt;  &lt;h3&gt;3. How to build Failover cluster in 48 Seconds?&lt;/h3&gt;  &lt;p&gt;Last but not least I there is an issue which has been mostly forgotten in almost all our discussion when building relaying scenarios. I every project you will reach a point when the solution has to be deployed in the production. Then you will ask yourself how to build redundancy based on relying? This means, you want to provide a fail-over instance of you WCF relaying service which will be used when the first one is not reachable. The picture shown bellow illustrates this requirement.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_2B661361.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="image" border="0" alt="image" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_2B161807.png" width="540" height="441" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To make this working you really do not have to change any peace of infrastructure. Just start the another instance of the service on another machine. That’s all. This will work by using both protocols TCP and HTTP. There are currently few undocumented differences in routing when using different protocols, nut in general both will provide you the stable and reliable fail-over mechanism.&lt;/p&gt;  &lt;p&gt;Remark: If you are demoing this scenario with both WCF-instances on one machine, the basicHttpRelayBinding will not work with out-of-the-box configuration, because both instances will try to start listening for contract sharing at the same address. In a case of netTcpRelayBindig this will not happen. So, the latter one can be started multiple timas at one box.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Thanks to &lt;strong&gt;Tomislav Tipuric&lt;/strong&gt; director of WinDays technical track who has visionary recognized the industry need for this scenario.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=302562" width="1" height="1"&gt;</description><category domain="http://developers.de/blogs/damir_dobric/archive/tags/Core.Net/default.aspx">Core.Net</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/Architecture+and+Modeling/default.aspx">Architecture and Modeling</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/WCF/default.aspx">WCF</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx">cloud</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx">azure</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/Core.Net+WCF/default.aspx">Core.Net WCF</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx">AppFabric</category><category domain="http://developers.de/blogs/damir_dobric/archive/tags/windows+azure/default.aspx">windows azure</category></item></channel></rss>