<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://developers.de/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Damir Dobric Posts</title><subtitle type="html">My corner on advanced .NET</subtitle><id>http://developers.de/blogs/damir_dobric/atom.aspx</id><link rel="alternate" type="text/html" href="http://developers.de/blogs/damir_dobric/default.aspx" /><link rel="self" type="application/atom+xml" href="http://developers.de/blogs/damir_dobric/atom.aspx" /><generator uri="http://communityserver.org" version="4.0.30619.63">Community Server</generator><updated>2011-12-13T16:19:05Z</updated><entry><title>WebSockets in ASP.NET and JavaScript</title><link rel="alternate" type="text/html" href="/blogs/damir_dobric/archive/2012/01/29/websockets-in-asp-net-and-javascript.aspx" /><id>/blogs/damir_dobric/archive/2012/01/29/websockets-in-asp-net-and-javascript.aspx</id><published>2012-01-29T17:55:17Z</published><updated>2012-01-29T17:55:17Z</updated><content type="html">&lt;p&gt;Windows 8 operative system will provide the full support for &lt;a href="http://en.wikipedia.org/wiki/WebSocket"&gt;&lt;strong&gt;WebSockets&lt;/strong&gt;&lt;/a&gt; (see also &lt;a href="http://dev.w3.org/html5/websockets/"&gt;WebSockets.org&lt;/a&gt;). Simplified, It is a web technology which provides full-duplex communication over TCP initiated by preceding HTTP request. There are many innovative and amazing scenarios which can be easily achieved by using this technology. Fro example it is possible to implement chat-scenarios form browser to browser in the real time. previously, such scenarios by using various polling algorithms. As described in this &lt;a href="http://developers.de/blogs/damir_dobric/archive/2011/11/26/wcf-duplex-via-websocket.aspx"&gt;&lt;strong&gt;post&lt;/strong&gt;&lt;/a&gt; Microsoft has implemented WebSockets on different places in Windows 8 and .NET 4.5 Stack. This post describes how Web Socket can be hosted in an ASP.NET application and how it can be consumed by browser as a client.     &lt;br /&gt;Following are topics covered by this post:    &lt;br /&gt;    &lt;br /&gt;1. What do you need to get started?    &lt;br /&gt;2. How to initialize Web Socket protocol    &lt;br /&gt;3. How to implement Web Socket Handler    &lt;br /&gt;4. How to initialize custom Web Socket Handlers    &lt;br /&gt;5. How to receive and send messages    &lt;br /&gt;6. How to shut down custom Web Socket Handler    &lt;br /&gt;7. How to implement JavaScript client&lt;/p&gt;  &lt;h3&gt;What do you need to get started? &lt;/h3&gt;  &lt;h3&gt;   &lt;table cellspacing="0" cellpadding="2"&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;&lt;font size="2"&gt;&lt;font style="font-weight:normal;"&gt;Sample shown in this post requires Windows8 (client or server), IE10, IIS8 and ASP.NET 4.5.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;            &lt;p&gt;&lt;font size="2"&gt;&lt;font style="font-weight:normal;"&gt;Before you start you need to enable WebSocket Protocol at the machine. To do that, go to windows features, expand World Wide Web Services | Application development Features and activate WebSocket Protocol. &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_496C8C36.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" align="right" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_thumb_5F00_08CA3FC7.png" width="248" height="133" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/table&gt; &lt;/h3&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_2879198F.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_2F2C2312.png" width="415" height="465" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;How to initialize WebSocket protocol?&lt;/h3&gt;  &lt;p&gt;Upcoming version of System.Net, which is generally used by ASP.NET contains on the &lt;strong&gt;HttpContext&lt;/strong&gt; the new property “&lt;strong&gt;IsWebSocketRequest&lt;/strong&gt;” (since ver. 4.5). This property is internally mapped to property &lt;strong&gt;System.Net.HttpListener.IsWebSocketRequest&lt;/strong&gt;. Wherever there is an access within ASP.NET application to &lt;strong&gt;HttpContext&lt;/strong&gt; instance, you can check if the request is of &lt;strong&gt;WebSocket&lt;/strong&gt; -type:&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td&gt;&lt;font face="Courier New"&gt;if(context.IsWebSocketRequest){           &lt;br /&gt;&amp;#160; // Do something            &lt;br /&gt;}&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p&gt;This single line of code is very simple one, but there are few more or less undocumented facts behind the scene, which sometimes might be useful. When the snippet shown above is executing the IIS is not executing WebSocket-stream as you might expect. This is why &lt;strong&gt;IsWebSocketRequest&lt;/strong&gt;-name is a bit wired.&amp;#160; WebSocket is TCP based network stream which is different from common HTTP request which can be cached by HttpContext. This sounds wired, but it is not. Before WebSocket communication is started it has to be initiated.&amp;#160; Because WebSocket protocol is an upgrade to HTTP, the spec requires using of HTTP to initiate WebSocket protocol.    &lt;br /&gt;Exactly this HTTP request is defined as WebSocketRequest. After successful completion of this request, WebSocket full-duplex is established.&lt;/p&gt;  &lt;p&gt;WebSocketRequest is the commong HttpRequest with a little sugar. Here is an example of the real WebSocketRequest. When such request is sent by client the property &lt;strong&gt;IsWebSocketRequest&lt;/strong&gt; will return &lt;strong&gt;true&lt;/strong&gt;.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;&lt;font face="Courier New"&gt;Cache-Control: no-cache             &lt;br /&gt;Connection: Upgrade              &lt;br /&gt;&lt;font style="background-color:#ffff00;"&gt;Upgrade: Websocket&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;              &lt;br /&gt;Host: daenetwebsocketconsumer              &lt;br /&gt;User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)              &lt;br /&gt;Origin: localhost              &lt;br /&gt;&lt;/font&gt;&lt;font style="background-color:#ffff00;" face="Courier New"&gt;Sec-WebSocket-Key: cDdQwtBTScmm1pzAJWvC/g==             &lt;br /&gt;Sec-WebSocket-Version: 8&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;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p&gt;Implementation of this property will Internally do following check in pseudo-code:   &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;IF Headers.Exists(“Upgrade”) AND HEADERS[“UPGRADE”].ToLower() == “websocket” THEN RETURN true&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Another two properties &lt;strong&gt;Sec-WebSocket-Key&lt;/strong&gt; and &lt;strong&gt;Sec-WebSocket-Version&lt;/strong&gt; are also part of the request , but they will not be checked by this property. They will be internally handled to ensure the proper and compatible protocol communication.     &lt;br /&gt;    &lt;br /&gt;The first one holds unique client context, so different clients can be distinguished. It represents some kind of session key.    &lt;br /&gt;The second one defines the WebSocket implementation version. The current working draft provides a number of different versions in the &lt;a href="http://code.google.com/p/pywebsocket/wiki/WebSocketProtocolSpec"&gt;specification&lt;/a&gt;. For example at the day of writing of this post the last specified version is called &lt;a href="http://tools.ietf.org/id/draft-ietf-hybi-thewebsocketprotocol-17.txt"&gt;HyBi 17&lt;/a&gt;. The Sec-WebSocket-Version would have a value 13 for HyBi 17. In the example above I used the Internet Explorer 10 (IE10) which obviously sends the version 8. According to specification number 8 is related to &lt;a href="http://tools.ietf.org/id/draft-ietf-hybi-thewebsocketprotocol-10.txt"&gt;HyBi 10&lt;/a&gt;, which is currently supported by IE10 on Windows 8 preview.    &lt;br /&gt;    &lt;br /&gt;To setup WebSocket-Duplex in ASP.NET application create one for example&amp;#160; MySocketInitializer.ASHX (IHTTPHandler) file and put following code in there:&lt;/p&gt;  &lt;p&gt;   &lt;table cellspacing="0" cellpadding="2"&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;&lt;font face="Courier New"&gt;public void ProcessRequest(HttpContext context)               &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; if(context.IsWebSocketRequest)                &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;&amp;#160;&amp;#160;&amp;#160; context.AcceptWebSocketRequest(new YourWebSocketHandlerImplementation());                &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;}&lt;/font&gt;              &lt;br /&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/table&gt;    &lt;br /&gt;The implementation of method &lt;font face="Courier New"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ihttphandler.processrequest.aspx"&gt;IHttpHandler.ProcessRequest&lt;/a&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;/font&gt; will invoke a (new) method &lt;font face="Courier New"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.httpcontext.acceptwebsocketrequest(v=vs.110).aspx"&gt;AcceptWebSocketRequest&lt;/a&gt;&lt;/font&gt; by giving the instance of your WebSocket implementation (&lt;font face="Courier New"&gt;YourWebSocketHandlerImplementation&lt;/font&gt; ). This line of code starts up the Web Socket protocol.&lt;/p&gt;  &lt;h3&gt;How to implement Web Socket Handler?&lt;/h3&gt;  &lt;p&gt;The web socket handler is in ASP.NET stack the concrete implementation of abstract class &lt;font face="Courier New"&gt;Microsoft.Web.WebSockets.WebSocketHanlder&lt;/font&gt;. Note that there is also an implementation of the same functionality in System.ServiceModel.WebSockets.WebSocketService. The second one is the implementation of the same functionality in WCF. In this post I will focus on the handler implementation only.    &lt;br /&gt;Following snippet shows the declaration of the handler class.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;&lt;font face="Courier New"&gt;namespace Microsoft.Web.WebSockets             &lt;br /&gt;{              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public class WebSocketHandler              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public WebSocketHandler();&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public Exception Error { get; set; }             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public int MaxIncomingMessageSize { get; set; }              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public AspNetWebSocketContext WebSocketContext { get; set; }&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public void Close();             &lt;br /&gt;&lt;font style="background-color:#ffff00;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font style="background-color:#ffff00;"&gt; public virtual void OnClose();&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;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public virtual void OnError();&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;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public virtual void OnMessage(byte[] message);                &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public virtual void OnMessage(string message);                &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public virtual void OnOpen();&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;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [EditorBrowsable(EditorBrowsableState.Never)]              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public Task ProcessWebSocketRequestAsync(AspNetWebSocketContext webSocketContext);              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public void Send(byte[] message);              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public void Send(string message);              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }              &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p&gt;As you see there are few virtual methods which you should/can implement. &lt;/p&gt;  &lt;h5&gt;OnOpen&lt;/h5&gt;  &lt;p&gt;Method &lt;strong&gt;OnOpen&lt;/strong&gt; should be used to perform any kind of initialization. This can be for example initialization of variables which will hold running sessions. &lt;/p&gt;  &lt;h5&gt;OnClose&lt;/h5&gt;  &lt;p&gt;In opposite, the method &lt;strong&gt;OnClose&lt;/strong&gt; should be used clear the state of the handler when closed. Note that when &lt;strong&gt;OnClose&lt;/strong&gt; is called, the handler is still running. That means, you can send messages within this methods to any connected client. For example this message can be something like: “bye – I’m going offline”.&lt;/p&gt;  &lt;h5&gt;OnMessage&lt;/h5&gt;  &lt;p&gt;This method should be overwritten, because this is the place where to catch messages sent from WebSocket clients.   &lt;br /&gt;&lt;/p&gt;  &lt;h5&gt;Send&lt;/h5&gt;  &lt;p&gt;The method &lt;strong&gt;send&lt;/strong&gt; is solely used to send the message to dedicated client. Note that architecture of Web Sockets in ASP.NET provides one WebScoketHandler instance per client. For example, if you implement the browser-multiplayer-game every player will get its own WebSocketHander instance.&lt;/p&gt;  &lt;h3&gt;How to initialize the custom Web Socket Handler?&lt;/h3&gt;  &lt;p&gt;When implementing the handler, there are few important tasks to do:   &lt;br /&gt;    &lt;br /&gt;1. Pass arguments in constructor.    &lt;br /&gt;2. Add the WebSocketHandler instance to the list of connected instances    &lt;br /&gt;3..Notify clients    &lt;br /&gt;    &lt;br /&gt;It is mostly required to grab same data from HTTP request and pass it as argument to the WebSocket constructor. For example in one game this could be the name of the user: In ASHX handler (IHTTPHandler) we would initialize the WebSocketHandler as follows:    &lt;br /&gt;    &lt;br /&gt;    &lt;table cellspacing="0" cellpadding="2"&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;&lt;font face="Courier New"&gt;public void ProcessRequest(HttpContext context)               &lt;br /&gt;{                &lt;br /&gt;&amp;#160; if(context.IsWebSocketRequest)                &lt;br /&gt;&amp;#160; {                &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; context.AcceptWebSocketRequest(                &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new YourWebSocketHandlerImplementation(&lt;font style="background-color:#ffff00;"&gt;context.Cookies[“UserName”)&lt;/font&gt;));                &lt;br /&gt;&amp;#160; }                &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/table&gt; &lt;/p&gt;  &lt;p&gt;This is the place where you can decouple HTTP from WebSocket protocol. Here you can grab everything you need from request and pass it to WebSocketHandler.   &lt;br /&gt;As next we need to persist the client WebSocket session. Following snippet shows the full implementation of the WebSocketHandler:    &lt;br /&gt;    &lt;br /&gt;    &lt;table cellspacing="0" cellpadding="2"&gt;       &lt;tr&gt;         &lt;td&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="#0000ff"&gt;&lt;font style="font-size:9.5pt;"&gt;public&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; &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;YourWebSocketHandlerImplementation&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; : WebSocketHandler&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&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; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&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 35.4pt;mso-layout-grid-align:none;" 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;private&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; &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 color="#4bacc6"&gt;WebSocketCollection&lt;/font&gt; m_Sessions = &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;new&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;/font&gt;&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;&lt;font color="#4bacc6"&gt;WebSocketCollection&lt;/font&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;"&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; &lt;/span&gt;&lt;/font&gt;                    &lt;br /&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;string&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; m_Player;&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;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; &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;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&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;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;YourWebSocketHandlerImplementation&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;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&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; argument)&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 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; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&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 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;m_Player = argument;&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 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; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&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;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; &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;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;override&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; OnOpen()&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 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; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&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 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;m_Sessions.Add(&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;this&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;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&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;/span&gt;&lt;font style="font-size:9.5pt;" color="#000000"&gt;m_Sessions.Broadcast(“New player joined the game”));                   &lt;br /&gt;                    &lt;br /&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&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; &lt;/span&gt;this.Send(“Welcome new player”);&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; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;            &lt;p style="line-height:13pt;list-style-type:disc;margin:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size:11pt;" color="#000000"&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/table&gt;    &lt;br /&gt;As already mentioned we can design the constructor as we want. This is the place where we receive all required parameters from IHTTPHandler. In the method &lt;strong&gt;OnOpen&lt;/strong&gt; we cover three tasks. First we persist the instance of the handler to list of type &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;&lt;font color="#4bacc6"&gt;WebSocketCollection.&lt;/font&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;You do not have to do it this way, but if you wants to broadcast messages to all connected clients, this class provides a helpful method &lt;strong&gt;Broadcast&lt;/strong&gt;(). This method automatically enumerates all WebSocketHandler instances in the list and sends the message to all of them. With following line of code we notify all already connected players that new player has joined the game:&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 style="font-size:9.5pt;" color="#000000"&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;" color="#000000"&gt;m_Sessions.Broadcast(“New player joined the game”));         &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;If we want to send the message to dedicated client you can do it as follows:&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;&lt;span style="mso-spacerun:yes;"&gt;&lt;/span&gt;this.Send(“Welcome new player”);&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&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h3&gt;How to receive and Send messages&lt;/h3&gt;  &lt;p&gt;Till now we have seen how to start up and how to initialize the custom WebSocketHandler. Now we are ready to receive messages from connected clients. To do that you have to override the method OnMessage.   &lt;br /&gt;    &lt;br /&gt;    &lt;table cellspacing="0" cellpadding="2"&gt;       &lt;tr&gt;         &lt;td&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;"&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;override&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; OnMessage(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; message)&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;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&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 style="font-size:9.5pt;" color="#000000"&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;" color="#000000"&gt;&amp;#160;&amp;#160; m_Sessions.Broadcast(“User” + m_Player + “ sent following message: “ + message));&lt;/font&gt;&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &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;&amp;#160; m_Sessions.Send(“You sent: “ + message);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;"&gt;                     &lt;br /&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/table&gt;    &lt;br /&gt;In the first line we broadcast the received message to all connected users. In the second line we send echo of the message to the sender. This all is fine, but in the real world, you will have to deal with more complex messages. In fact you will always have to implement some kind sub protocol on top of Web Socket.    &lt;br /&gt;The easiest way to do that is to use JSON.    &lt;br /&gt;    &lt;br /&gt;In my example I want to give the client the ability to send message to some specific user or to broadcast the message to all users. To do this I invented a simple protocol which can be modeled as follows:    &lt;br /&gt;    &lt;br /&gt;    &lt;table cellspacing="0" cellpadding="2"&gt;       &lt;tr&gt;         &lt;td&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;&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;enum&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;MessageType&lt;/font&gt;                      &lt;br /&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;/span&gt;{                      &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;/span&gt;&amp;#160;&amp;#160; Send,                      &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;/span&gt;&amp;#160;&amp;#160; Broadcast,                      &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;/span&gt;&amp;#160;&amp;#160; Join,                      &lt;br /&gt;&amp;#160;&amp;#160; Leave                      &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;/span&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;                &lt;br style="mso-special-character:line-break;" /&gt;                &lt;br style="mso-special-character:line-break;" /&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;&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;class&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font face="Consolas"&gt;&lt;font color="#2b91af"&gt;Message&lt;/font&gt;                      &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;/span&gt;{                      &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160; public&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; MessageType Type { &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;set&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;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size:9.5pt;"&gt;&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;&amp;#160;&amp;#160; public&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; Value { &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;set&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;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160; public&lt;/font&gt;&lt;/font&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; UserName { &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;; }&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;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/table&gt; &lt;/p&gt;  &lt;p&gt;The class &lt;font face="Courier New"&gt;MessageType&lt;/font&gt; defines different types of messages. By this attribute I’m able to style the message by proprietary type.Depending on that value handler and client can perform some action. The message itself contains the &lt;font face="Courier New"&gt;UserName&lt;/font&gt; property which defines the name of the player in the game. The &lt;font face="Courier New"&gt;MessageType&lt;/font&gt; defines the type of message and Value is the message itself.    &lt;br /&gt;    &lt;br /&gt;When the message is received by method &lt;strong&gt;OnMessage&lt;/strong&gt; we can deserialize it as follows:    &lt;br /&gt;    &lt;table cellspacing="0" cellpadding="2"&gt;       &lt;tr&gt;         &lt;td&gt;&lt;span style="list-style-position:outside;line-height:11pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;font color="#0000ff" face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;public&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="list-style-position:outside;line-height:11pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;override&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; OnMessage(&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; message)                   &lt;br /&gt;{&lt;/font&gt;                  &lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160; var ser = new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;JavaScriptSerializer&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;();&lt;/font&gt;                  &lt;br /&gt;                  &lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160; var&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; msg = m_Ser.Deserialize&amp;lt;Message&amp;gt;(message);&lt;/font&gt;                  &lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160; switch&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; (msg.Type)                   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {                    &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;case&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; MessageType.Broadcast:                   &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;m_Sessions.Broadcast(m_Ser.Serialize(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;                  &lt;br /&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;&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&gt;&lt;/span&gt;&lt;span style="list-style-position:outside;line-height:11pt;mso-ansi-language:de;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;font color="#000000"&gt;&lt;font face="Consolas"&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Type = msg.Type,                    &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;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;UserName = m_Nick,                    &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;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="list-style-position:outside;line-height:11pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;Value = msg.Value                   &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;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;&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;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;case&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; MessageType.Send:                   &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;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; channel =&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160; m_Sessions.FirstOrDefault(n =&amp;gt; ((&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;YourWebSocketHandlerImplementation&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;)n).m_Nick == msg.UserName);                   &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;if&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; (channel != &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;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;channel.Send(m_Ser.Serialize(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;                  &lt;br /&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;&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;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="list-style-position:outside;line-height:11pt;mso-ansi-language:de;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;font color="#000000"&gt;&lt;font face="Consolas"&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Type = msg.Type,                    &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;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;UserName = msg.UserName,                    &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;&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;/span&gt;&lt;span style="list-style-position:outside;line-height:11pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;Value = msg.Value                   &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;&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="#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;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;default&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;font face="Consolas"&gt;:                   &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&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;&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;/font&gt;&lt;/span&gt;&lt;span style="list-style-position:outside;line-height:11pt;mso-ansi-language:de;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;font color="#0000ff" face="Consolas"&gt;return&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="list-style-position:outside;line-height:11pt;mso-ansi-language:de;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;" 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;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;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/table&gt; &lt;/p&gt;    &lt;p&gt;In this example the JavaScriptSerializer is used to materialize the typed instance message send over WebScoket protocol. If the message is of type Broadcast, it is sent to all connected clients. If it is of type Send, then we grab the appropriate WebSocket instance from the list of all sessions and use it to send the message to this dedicated user.&lt;/p&gt;  &lt;h3&gt;How to shut down the Web Socket?&lt;/h3&gt;  &lt;p&gt;If required you can perform any destructing operation in the method OnClose. There is nothing what you have to implement in this method. Depending of your application you can implement anything here. Following example shows how to notify all other connected users that one user is going down.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td&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="#0000ff"&gt;&lt;font style="font-size:9.5pt;"&gt;public&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; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;override&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; OnClose()                   &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size:9.5pt;"&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&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;font style="font-size:9.5pt;"&gt;m_Sessions.Broadcast(m_Ser.Serialize(&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&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;{&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 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;type = MessageType.Leave,&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 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;from = m_Nick,&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 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;value = m_Nick + &lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#a31515"&gt;&amp;quot; has left the server.&amp;quot;&lt;/font&gt;&lt;/span&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;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-ansi-language:en-us;"&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;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;"&gt;}));                   &lt;br /&gt;                    &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&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;m_Sessions.Remove(&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;);&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;"&gt;                   &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size:9.5pt;"&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size:11pt;" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p&gt;Note that method close as any other method in the Web Socket Handler is tight to one session. While executing &lt;strong&gt;OnClose&lt;/strong&gt; the socket is still fully functional. That means you can use it to send messages. In example above we broadcast one message to all connected users and finally remove the socket instance from the list of active sessions.    &lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;How to implement JavaScript client?&lt;/h3&gt;  &lt;p&gt;To this point this article briefly described how to implement the custom WebSocketHandler and how to build the custom messaging (protocol) on top of WebSocket protocol. This topic describes how to implement JavaScript client which can communicate with your custom socket implementation.   &lt;br /&gt;In general the WebSocket API should be supported by browsers with HTML5 support. The browser which I used in this sample is IE10, which supports HyBi 10 (or Ver. 8) od WebSocket spec. &lt;/p&gt;  &lt;h4&gt;Open Web Socket connection&lt;/h4&gt;  &lt;p&gt;To open the WebSocket connection create the instance of WebSocket API:   &lt;br /&gt;&lt;span style="line-height:11pt;mso-ansi-language:en-us;"&gt;&lt;font color="#0000ff" face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;         &lt;br /&gt;var&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="line-height:11pt;mso-ansi-language:en-us;"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; connection = &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;new&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; WebSocket(“ws://websockethost:80/daenet.websocketsample/MySocketInitializer.ashx”);           &lt;br /&gt;            &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;The argument in constructor is the implementation of IHTTPHandler interface, which is responsible to register the custom implementation of the WebSocket.    &lt;br /&gt;After executing of the line above, the underlying implementation of WebSocket protocol in the browser will send the WebSocket compatible request (as described above) to url :&lt;font face="Courier New"&gt;“ws://websockethost:80/daenet.websocketsample/MySocketInitializer.ashx”&lt;/font&gt;:    &lt;br /&gt;    &lt;br /&gt;The figure below shows simplified diagram of sequence initiated by creating &lt;strong&gt;WebSocket&lt;/strong&gt; instance:    &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_35DF2C95.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_6E89D6A2.png" width="642" height="237" /&gt;&lt;/a&gt;    &lt;br /&gt;As you see when the WebSocket instance i s created browser will implicitelly send WebSocketRequest to ASHX&amp;#160; file and ASP.NET will execute method &lt;strong&gt;ProcessRequest&lt;/strong&gt; (see above “&lt;em&gt;How to initialize WebSocket protocol&lt;/em&gt;”). This method will install the Web Socket Handler which will handle all messages.    &lt;br /&gt;Note that after this sequence one permanent TCP connection is open between client and web server.&lt;/p&gt;  &lt;h4&gt;Receive Message&lt;/h4&gt;  &lt;p&gt;Now we can hook the handler which will be invoked each time some message is received:&lt;span style="line-height:11pt;mso-ansi-language:en-us;"&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;            &lt;br /&gt;connection.onmessage = &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;function&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; (message) {           &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="list-style-position:outside;line-height:11pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;font color="#0000ff" face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160; var&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="list-style-position:outside;line-height:11pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;font color="#000000"&gt; data = window.JSON.parse(message.data);           &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;};&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;      &lt;br style="mso-special-character:line-break;" /&gt;      &lt;br /&gt;&lt;/span&gt;Optionally if required the received message can be deserialized in a type by calling JSON.parse(message).    &lt;br /&gt;&lt;span style="list-style-position:outside;line-height:11pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;The figure below shows the sequence initiated when the method &lt;strong&gt;WebSocketHanlder.Send()&lt;/strong&gt; is invoked at&amp;#160; the server side. Note that the message send from server is transferred through open TCP connection.      &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_474F8D6D.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_071973F3.png" width="642" height="167" /&gt;&lt;/a&gt;      &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h4&gt;Send Message&lt;/h4&gt;  &lt;p&gt;&lt;span style="list-style-position:outside;line-height:11pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;Following snippet shows how to send the message:     &lt;br /&gt;&lt;span style="list-style-position:outside;line-height:11pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size:9.5pt;"&gt;             &lt;br /&gt;connection.send(“hello”);              &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;    &lt;br /&gt;And this example shows how to send the message formatted as JSON.    &lt;br /&gt;    &lt;br /&gt;&lt;span style="list-style-position:outside;line-height:11pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size:9.5pt;"&gt;connection.send(window.JSON.stringify({ type: 1, Value: “Hello”, UserName = “damir”&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;font color="#000000"&gt; }));&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;The diagram below shows the sequence initiated when the send function is invoked.&lt;span style="list-style-position:outside;line-height:11pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;/span&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_0DCC7D76.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_4D9663FB.png" width="642" height="220" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Finally, when the socket needs to be closed following code has to be executed:   &lt;br /&gt;    &lt;br /&gt;&lt;span style="list-style-position:outside;line-height:11pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size:9.5pt;"&gt;connection.close();&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;    &lt;br /&gt;    &lt;br /&gt;When the function close() is invoked in Javascript, the call is propagated to server side and your implementation of the WebSocketHandler.OnClose() is invoked (see “how to shut down the web socket”).&lt;/p&gt;  &lt;h4&gt;Putting all together&lt;/h4&gt;  &lt;p&gt;Following picture shows very simple application in engineer design which demonstrate using of web sockets. The application demonstrates using of all important WebSocket functions. It implement some kind of chat application. Following picture shows all supported scenarios.&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_54496D7E.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_2D0F2449.png" width="899" height="316" /&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;&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;Following HTML/Javascript code implements all described at this picture. The application requires the WebSocket Handlerwhich we described in this article.   &lt;br /&gt;    &lt;table cellspacing="0" cellpadding="2"&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;p style="list-style-position:outside;line-height:13pt;margin:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;font face="Consolas"&gt;&lt;span style="line-height:11pt;mso-ansi-language:en-us;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;lt;!&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="line-height:11pt;mso-ansi-language:en-us;"&gt;&lt;font color="#800000"&gt;DOCTYPE&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="line-height:11pt;mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;html&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#0000ff"&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;                      &lt;br /&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#800000"&gt;html&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#0000ff"&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;                      &lt;br /&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#800000"&gt;head&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;meta&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;http-equiv&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;X-UA-Compatible&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;content&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;IE=Edge&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;title&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;gt;WebSocket &lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;Sample&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt; &amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;title&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;script&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;src&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Scripts/jquery-1.6.3.min.js&amp;quot;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;script&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;script&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;src&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Scripts/jquery.cookie.js&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;script&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;script&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;src&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Scripts/json2.min.js&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;script&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;script&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&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;var&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; username;                     &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;function&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;/font&gt;&lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;use strict&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;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;username = prompt(&lt;/font&gt;&lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;Please enter your username:&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;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;$.cookie(&lt;/font&gt;&lt;span&gt;&lt;font color="#800000"&gt;&amp;#39;username&amp;#39;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;, username);                     &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="#800000"&gt;&amp;quot;#&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="line-height:11pt;mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;userName&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="line-height:11pt;mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;).val(username);                     &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="line-height:11pt;mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;            &lt;p style="list-style-position:outside;line-height:13pt;margin:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="line-height:11pt;mso-ansi-language:en-us;"&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; &lt;font color="#9bbb59"&gt;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#008040"&gt;// Machine ‘websockethost’ must support WebSocket protocol. For example Windows 8 with IIS8&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; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; host = &lt;/font&gt;&lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;ws://websockethost:80/daenet.websocketsample/MySocketInitializer.ashx&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;&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="#800000"&gt;&amp;quot;#join&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;).click(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;function&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; &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;var&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; connection = &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; WebSocket(host);                     &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;connection.onmessage = &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;function&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; (message) {                     &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;var&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt; data = window.JSON.parse(message.data);                     &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="#800000"&gt;&amp;quot;&amp;lt;li/&amp;gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;).html(&lt;/font&gt;&lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;[&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; + data.UserName + &lt;/font&gt;&lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;]:&amp;amp;nbsp;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; + data.Value).appendTo($(&lt;/font&gt;&lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;#messages&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;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;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="#800000"&gt;&amp;quot;#broadcast&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;).click(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;function&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;connection.send(window.JSON.stringify({ type: 1, Value: $(&lt;/font&gt;&lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;#msg&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;font face="Consolas"&gt;).val() }));                     &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;/font&gt;&lt;/span&gt;&lt;span style="line-height:11pt;"&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="#800000"&gt;&amp;quot;#send&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;).click(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;function&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#000000" face="Consolas"&gt; () {                   &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="line-height:11pt;mso-ansi-language:en-us;"&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;connection.send(window.JSON.stringify({ type: 0, Value: $(&lt;/font&gt;&lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;#msg&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;).val(), UserName: $(&lt;/font&gt;&lt;span&gt;&lt;font color="#800000"&gt;&amp;quot;#nick&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;).val() }));                     &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;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="#800000"&gt;&amp;quot;#close&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;).click(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;function&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;connection.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;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;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; &lt;/span&gt;});&lt;/font&gt;                    &lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;script&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#0000ff"&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;                      &lt;br /&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#800000"&gt;head&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#0000ff"&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;                      &lt;br /&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#800000"&gt;body&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;h2&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;Daenet WebSocket Sample&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;h2&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;form&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&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;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;h2&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;id&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;username&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;style&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;font-family&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;: &amp;#39;Segoe UI&amp;#39;&amp;quot;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;user: [&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;input&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;text&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;id&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;userName&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&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; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;input&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;button&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;id&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;join&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;value&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Join session&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;h2&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;gt;&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;&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;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;label&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;for&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;msg&amp;quot;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;Message to be sent:&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;label&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&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;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;input&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;text&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;id&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;msg&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;size&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;50&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&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;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;br&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&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;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;input&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;button&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;id&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;broadcast&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;value&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Broadcast message to all users&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;&amp;amp;nbsp;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&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;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;br&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&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="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;label&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;for&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;nick&amp;quot;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;User to send the message:&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;label&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&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;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;input&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;text&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;id&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;nick&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;value&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;user?&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&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;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;input&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;button&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;id&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;send&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;value&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Send message to user&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&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;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;br&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&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;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;input&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;button&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;id&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;close&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;value&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Close session&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&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;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;br&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&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; &lt;/span&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;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;form&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;ul&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;id&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&amp;quot;messages&amp;quot;&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;ul&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;                    &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;                    &lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#800000"&gt;body&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font face="Consolas"&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;                      &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Consolas"&gt;&lt;span style="line-height:11pt;"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="line-height:11pt;"&gt;&lt;font color="#800000"&gt;html&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="line-height:11pt;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;                &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/table&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=268583" width="1" height="1"&gt;</content><author><name>ddobric</name><uri>http://developers.de/members/ddobric/default.aspx</uri></author><category term="Asp.Net" scheme="http://developers.de/blogs/damir_dobric/archive/tags/Asp.Net/default.aspx" /><category term="WCF" scheme="http://developers.de/blogs/damir_dobric/archive/tags/WCF/default.aspx" /><category term="windows azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/windows+azure/default.aspx" /></entry><entry><title>Troubleshooting Windows Azure drive initialization</title><link rel="alternate" type="text/html" href="/blogs/damir_dobric/archive/2012/01/16/troubleshooting-windows-azure-drive-initialization.aspx" /><id>/blogs/damir_dobric/archive/2012/01/16/troubleshooting-windows-azure-drive-initialization.aspx</id><published>2012-01-16T21:58:34Z</published><updated>2012-01-16T21:58:34Z</updated><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Issue I: Drives do not support https &lt;/h3&gt;  &lt;p&gt;&lt;i&gt;Exception of type &amp;#39;Microsoft.WindowsAzure.CloudDrive.Interop.InteropCloudDriveException&amp;#39; was thrown.&lt;/i&gt; &lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;em&gt;[HttpException (0x80004005): ERROR_HTTPS_NOT_SUPPORTED]&lt;/em&gt;&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;Use HTTP be removing ‘S’ (see below).&lt;/p&gt;  &lt;p&gt;&amp;lt;Setting name=&amp;quot;CloudStorageAccount&amp;quot; value=&amp;quot;DefaultEndpointsProtocol=http&lt;font color="#ff0000" size="4"&gt;s&lt;/font&gt;;AccountName=xyz..=&amp;quot; /&amp;gt;     &lt;br /&gt;&amp;#160; &lt;/p&gt;  &lt;h3&gt;Issue II:&amp;#160; UnauthorizedAccessException on local cache initialization:&lt;/h3&gt;  &lt;p&gt;When you try to initialize the drive in Windows Azure you will implement peace of code like this one:    &lt;br /&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;           &lt;br /&gt;LocalResource&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; localCache = &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;RoleEnvironment&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.GetLocalResource(&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;MyAzureDriveCache&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&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;"&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;CloudDrive&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.InitializeCache(localCache.RootPath, localCache.MaximumSizeInMegabytes);&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Depending on type and value of ‘MyAzureDriveCache, the cache initialization of the drive can succeed or fail. If this variable is a string which defines the physical path like “c:\mycachefolder”, you will probably run into following issue.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;[UnauthorizedAccessException]      &lt;br /&gt;Cannot access the path … Access denied.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If the drive mount is created within IIS host, this will for sure fail. To avoid this issue, you have to ensure that MyAzureCache is defined in config-Resources and not in settings.&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_36F49591.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_3DA79F14.png" width="503" height="201" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This is how this does looks like in ServiceDefinition.csdef:    &lt;br /&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font color="#a31515"&gt;LocalResources&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;gt;          &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font color="#0000ff"&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; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font color="#a31515"&gt;LocalStorage&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font color="#ff0000"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;MyAzureDriveCache&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;cleanOnRoleRecycle&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;false&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#ff0000"&gt;sizeInMB&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;100&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt; /&amp;gt;            &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#a31515"&gt;LocalResources&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h3&gt;Issue III:    &lt;br /&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;em&gt;Cannot combine incompatible absolute URIs base &amp;#39;http://xy.blob.core.windows.net/&amp;#39; relative &amp;#39;http://xy.blob.core.windows.net/documents/drive.vhd&amp;#39;.When trying to combine 2 absolute URIs, the base URI should be a valid base of the relative Uri.&lt;/em&gt;&lt;/font&gt;     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;You have used the Drive URI like:    &lt;br /&gt;&lt;a title="http://daenet01.blob.core.windows.net/documents/drive.vhd" href="http://xy.blob.core.windows.net/documents/drive.vhd"&gt;http://xy.blob.core.windows.net/documents/drive.vhd&lt;/a&gt;     &lt;br /&gt;    &lt;br /&gt;You should use following URI:     &lt;br /&gt;&lt;a title="http://daenet01.blob.core.windows.net/documents/drive.vhd" href="http://xy.blob.core.windows.net/documents/drive.vhd"&gt;documents/drive.vhd&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Please note that following is not allowed too (note the slash at the beginning): &lt;font style="background-color:#ffff00;"&gt;/&lt;/font&gt;&lt;a title="http://daenet01.blob.core.windows.net/documents/drive.vhd" href="http://xy.blob.core.windows.net/documents/drive.vhd"&gt;documents/drive.vhd&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Issue IV: How to upload Page-Blob&lt;/h3&gt;  &lt;p&gt;After all, when you think all issues have been fixed, you might get following error:&lt;/p&gt;  &lt;p&gt;ERROR_BLOB_NOT_PAGEBLOB&lt;/p&gt;  &lt;p&gt;This is one of errors which really describes the exact problem. You are trying to mount to blob which is uploaded as block-blob and not as Page-Blob.&lt;/p&gt;  &lt;h3&gt;Issue V: How to upload huge blobs?&lt;/h3&gt;  &lt;p&gt;Take a look on Kevin&amp;#39;s sample which asynchronously transfers huge amount of data:    &lt;br /&gt;&lt;a title="http://blogs.msdn.com/b/kwill/archive/2011/05/30/asynchronous-parallel-block-blob-transfers-with-progress-change-notification.aspx" href="http://blogs.msdn.com/b/kwill/archive/2011/05/30/asynchronous-parallel-block-blob-transfers-with-progress-change-notification.aspx"&gt;http://blogs.msdn.com/b/kwill/archive/2011/05/30/asynchronous-parallel-block-blob-transfers-with-progress-change-notification.aspx&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=265408" width="1" height="1"&gt;</content><author><name>ddobric</name><uri>http://developers.de/members/ddobric/default.aspx</uri></author><category term="cloud" scheme="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx" /><category term="azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx" /><category term="windows azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/windows+azure/default.aspx" /></entry><entry><title>Windows Server AppFabric v1.1 Setup Issue</title><link rel="alternate" type="text/html" href="/blogs/damir_dobric/archive/2012/01/16/windows-server-appfabric-v1-1-setup-issue.aspx" /><id>/blogs/damir_dobric/archive/2012/01/16/windows-server-appfabric-v1-1-setup-issue.aspx</id><published>2012-01-16T13:16:57Z</published><updated>2012-01-16T13:16:57Z</updated><content type="html">&lt;p&gt;If you had previously installed Windows Server AppFabric 1.0 (WSA 1.0) the update to &lt;a href="http://developers.de/blogs/damir_dobric/archive/2011/12/24/windows-server-appfabic-1-1.aspx"&gt;v 1.1&lt;/a&gt; can fail. Before you start the installation of WSA 1.1 be sure that the Task Scheduler does not contain the task with the name “&lt;em&gt;&lt;strong&gt;Consolidator&lt;/strong&gt;&lt;/em&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_33035CAB.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_6B41D3C3.png" width="642" height="149" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If this task does exist, remove it and then start the installation.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=265318" width="1" height="1"&gt;</content><author><name>ddobric</name><uri>http://developers.de/members/ddobric/default.aspx</uri></author><category term="AppFabric" scheme="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx" /></entry><entry><title>Service Bus MessageQueue Error issuing token</title><link rel="alternate" type="text/html" href="/blogs/damir_dobric/archive/2012/01/14/service-bus-messagequeue-error-issueing-token.aspx" /><id>/blogs/damir_dobric/archive/2012/01/14/service-bus-messagequeue-error-issueing-token.aspx</id><published>2012-01-14T22:51:33Z</published><updated>2012-01-14T22:51:33Z</updated><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;When you try to receive the message from Windows Azure Service Bus queue or to send it you might get some error like &amp;#39;Error:Code:403’.   &lt;br /&gt;    &lt;br /&gt;This can happen if you try to perform any queue related operation like:&lt;/p&gt;  &lt;p&gt;BrokeredMessage message = myMessageReceiver.Receive(new TimeSpan(hours: 0, minutes: 0, seconds: 60));&lt;/p&gt;  &lt;p&gt;The full error you get as exception looks like:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font color="#ff0000"&gt;The token provider was unable to provide a security token while accessing &amp;#39;&lt;/font&gt;&lt;/em&gt;&lt;a href="https://xsamples-sb.accesscontrol.windows.net/WRAPv0.9/&amp;#39;"&gt;&lt;em&gt;&lt;font color="#ff0000"&gt;https://xsamples-sb.accesscontrol.windows.net/WRAPv0.9/&amp;#39;&lt;/font&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&lt;font color="#ff0000"&gt;. Token provider returned message: &amp;#39;Error:Code:403:SubCode:T0:Detail:ACS50000: There was an error issuing a token. ACS60000: An error occurred while processing rules for relying party &amp;#39;&lt;/font&gt;&lt;/em&gt;&lt;a href="http://xsamples.servicebus.windows.net/demoqueue&amp;#39;"&gt;&lt;em&gt;&lt;font color="#ff0000"&gt;http://xsamples.servicebus.windows.net/demoqueue&amp;#39;&lt;/font&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&lt;font color="#ff0000"&gt; using issuer &amp;#39;LOCAL AUTHORITY&amp;#39;. ACS60001: No output claims were generated during rules processing.&amp;#160; :TraceID:4b8f5f82-b688-43a3-9cee-95d7d63b5e0f:TimeStamp:2012-01-14 22:24:11Z&amp;#39;.&lt;/font&gt;&lt;/em&gt;    &lt;br /&gt;    &lt;br /&gt;This will probably never happen if you use default issuer key and and issuer name “owner”. This account is properly setup for you. The good thing is that this account has all permission on ServiceBus. That are: Manage (can do anything like create queue), Send (can send messages) and Listen (can receive messages).    &lt;br /&gt;    &lt;br /&gt;If you have seen exception shown above, you are probably connecting to ServiceBus by user which you have created in ACS. The reason for this error is missing association between ServiceBus application (under this name ACS sees service bus in your namespace).    &lt;br /&gt;    &lt;br /&gt;To fix this go to ACS management portal in context of namespace of your service bus     &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_70841AEA.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_571C17B0.png" width="527" height="284" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;and select “Relaying Party Applications”&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_48DD9EC0.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_3694D7FE.png" width="224" height="337" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Then select ServiceBus 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_765EBE83.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_4F24754E.png" width="367" height="294" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Then scroll to the end to “Role Groups” and notice the check-box state next to your role group. The default one is “Default Rule Group for ServiceBus&amp;quot;   &lt;br /&gt; which is provisioned when you create your service bus namespace. The just next one “Sender and Receiver” is custom group, which defines the account which can send messages only (this permission is the reason why I have created it).&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_55D77ED1.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_67B4129E.png" width="353" height="170" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;I have forgotten to check the box . That means I didn’t associate account in that group to ServiceBus. If this is the case, the strange error shown above will appear.   &lt;br /&gt;    &lt;br /&gt;Hope this helps &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_277DF924.png" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=264983" width="1" height="1"&gt;</content><author><name>ddobric</name><uri>http://developers.de/members/ddobric/default.aspx</uri></author><category term="cloud" scheme="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx" /><category term="azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx" /><category term="AppFabric" scheme="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx" /><category term="windows azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/windows+azure/default.aspx" /></entry><entry><title>Working with Windows Azure Federations</title><link rel="alternate" type="text/html" href="/blogs/damir_dobric/archive/2012/01/14/working-with-windows-azure-federations.aspx" /><id>/blogs/damir_dobric/archive/2012/01/14/working-with-windows-azure-federations.aspx</id><published>2012-01-14T11:31:45Z</published><updated>2012-01-14T11:31:45Z</updated><content type="html">&lt;p&gt;Windows Azure SQL Server provide powerful “&lt;a href="http://en.wikipedia.org/wiki/Shard_(database_architecture)"&gt;shard” - database architecture&lt;/a&gt; SQL Azure provides horizontal partitioning by using federations feature which has been briefly introduced by Cihan in this &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/2281.federations-building-scalable-elastic-and-multi-tenant-database-solutions-with-sql-azure.aspx"&gt;post&lt;/a&gt;. My intension in this post is to show how to make usage of this feature within a .NET application.&lt;/p&gt;  &lt;p&gt;For this demo I created one federation:   &lt;br /&gt;Federation Name: &lt;strong&gt;Federation2&lt;/strong&gt;    &lt;br /&gt;Distribution Name:&lt;strong&gt;FED2DIST1&lt;/strong&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_57F0DD8A.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_7329368B.png" width="932" height="201" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Click on federation to open federation members.    &lt;br /&gt;Previously I have created the table in the originally only existing member (LOW)&lt;/p&gt;  &lt;p&gt;USE FEDERATION [&lt;strong&gt;Federation2&lt;/strong&gt;] ([&lt;strong&gt;FED2DIST1&lt;/strong&gt;] = -9223372036854775808) WITH FILTERING = OFF, RESET    &lt;br /&gt;GO&lt;/p&gt;  &lt;p&gt;CREATE TABLE dbo.Table1(   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ID bigint NOT NULL,    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Column1 nvarchar(50) NULL,    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Column2 nvarchar(15) NULL,    &lt;br /&gt; CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED    &lt;br /&gt; (    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ID ASC    &lt;br /&gt; )    &lt;br /&gt; ) FEDERATED ON ([&lt;strong&gt;FED2DIST1&lt;/strong&gt;] = ID)    &lt;br /&gt; GO&lt;/p&gt;  &lt;p&gt;This default member will hold all records with&amp;#160; -9223372036854775808 &amp;lt; ID &amp;lt; 5,   &lt;br /&gt;because is is currently spitted to maximum with ID = 5. Fore demo purposes I spitted the federation&amp;#160; to 4 members as 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_7D7A5AEB.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_0AE06DF2.png" width="1213" height="409" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now, the crucial question is “how to write an application which is able to deal with all this artifacts”?   &lt;br /&gt;Following code shows how to read partition information:    &lt;br /&gt;    &lt;br /&gt;    &lt;table cellspacing="0" cellpadding="2"&gt;       &lt;tr&gt;         &lt;td&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 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 face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;SqlCommand&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; cmd = connection.CreateCommand())                     &lt;br /&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;text-indent:35.4pt;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="#008000"&gt;// First set the connection to Federation Root&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;/p&gt;            &lt;p style="line-height:normal;list-style-type:disc;text-indent:1.35pt;margin:0cm 0cm 0pt 35.4pt;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;font style="font-size:9.5pt;"&gt;cmd.CommandText = &lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;USE FEDERATION ROOT WITH RESET&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;;                     &lt;br /&gt;cmd.ExecuteNonQuery();&lt;/font&gt;                    &lt;br /&gt;&lt;/font&gt;&lt;span&gt;                   &lt;br /&gt;&lt;font color="#008000" face="Consolas"&gt;// Now we will retrieve federation specific data&lt;/font&gt;&lt;/span&gt;                  &lt;br /&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;font color="#000000"&gt;cmd.CommandText = &lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;@&amp;quot;SELECT f.name, fmc.federation_id, fmc.member_id, fmc.range_low, fmc.range_high &amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; +&lt;/font&gt;                    &lt;br /&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;FROM sys.federations f &amp;quot;&lt;/font&gt;&lt;/span&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;&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;&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;JOIN sys.federation_member_distributions fmc &amp;quot;&lt;/font&gt;&lt;/span&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;&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;&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;ON f.federation_id=fmc.federation_id &amp;quot;&lt;/font&gt;&lt;/span&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; &lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;ORDER BY fmc.federation_id, fmc.range_low, fmc.range_high&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;                    &lt;br /&gt;                    &lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;SqlDataReader&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; reader = cmd.ExecuteReader())                     &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;font style="font-size:9.5pt;"&gt;{&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;                   &lt;br /&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 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;Federation Name\t\tFederation ID\tMEMBER ID\tRANGE_LOW\tRANGE_HIGH&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;);&lt;/font&gt;                    &lt;br /&gt;                    &lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; while&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; (reader.Read())                     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/font&gt;                    &lt;br /&gt;&lt;span&gt;&lt;font color="#2b91af"&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;Console&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.WriteLine(reader[&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;name&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;\t&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 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; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&lt;/span&gt;reader[&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;federation_id&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;\t&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 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; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&lt;/span&gt;reader[&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;member_id&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;\t&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 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; &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;reader[&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;range_low&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;\t&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 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; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="mso-tab-count:1;"&gt;&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;reader[&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;range_high&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;\t&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 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; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&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;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;&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;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;" color="#000000"&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/table&gt; &lt;/p&gt;  &lt;p&gt;Following picture shows the result:   &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_71786AB7.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_3BFFA892.png" width="679" height="344" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In fact the only new thing how have to know is statement: “USE FEDERATION”. This setups your connection to specific federation inside of database.   &lt;br /&gt;Similarly you can use following code to read data from specific table inside of federation. Note that different federations can have different schemas!    &lt;br /&gt;    &lt;br /&gt;    &lt;table cellspacing="0" cellpadding="2"&gt;       &lt;tr&gt;         &lt;td&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="#0000ff"&gt;&lt;font style="font-size:9.5pt;"&gt;private&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; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; federationName = &lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;Federation2&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&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;"&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;string&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; distributionName = &lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;FED2DIST1&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;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;long&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; federationKey = 5; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#008000" face="Consolas"&gt;// Start value of one distribution. This would be a member 5-7 in th epicture above &lt;/font&gt;&lt;/span&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;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 style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#008000" face="Consolas"&gt;&lt;/font&gt;&lt;/span&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 style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#008000" face="Consolas"&gt;// Before we start to work with federation, we have to execute ‘USE FEDERATION’ statement&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&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;font style="font-size:9.5pt;"&gt;cmd.CommandText = &lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;USE FEDERATION &amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; + federationName +                      &lt;br /&gt;&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;(&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; + distributionName + &lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;=&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; + federationKey + &lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;) WITH RESET, FILTERING = OFF&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;font style="font-size:9.5pt;"&gt;cmd.ExecuteNonQuery();                     &lt;br /&gt;                      &lt;br /&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 style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#008000" face="Consolas"&gt;// Now, all statemens are routed to selected federation.&lt;/font&gt;&lt;/span&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;font style="font-size:9.5pt;"&gt;cmd.CommandText = &lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#a31515"&gt;@&amp;quot;SELECT * FROM table1&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;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;SqlDataReader&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; reader = cmd.ExecuteReader())&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 color="#000000"&gt;&lt;font style="font-size:9.5pt;"&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;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; &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;while&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; (reader.Read())&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 color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&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 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; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&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 color="#000000"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&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;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&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&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;/td&gt;       &lt;/tr&gt;     &lt;/table&gt; &lt;/p&gt;  &lt;p&gt;Federation Pricing: &lt;a title="http://blogs.msdn.com/b/cbiyikoglu/archive/2011/12/12/billing-model-for-federations-in-sql-azure-explained.aspx" href="http://blogs.msdn.com/b/cbiyikoglu/archive/2011/12/12/billing-model-for-federations-in-sql-azure-explained.aspx"&gt;http://blogs.msdn.com/b/cbiyikoglu/archive/2011/12/12/billing-model-for-federations-in-sql-azure-explained.aspx&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=264887" width="1" height="1"&gt;</content><author><name>ddobric</name><uri>http://developers.de/members/ddobric/default.aspx</uri></author><category term="cloud" scheme="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx" /><category term="azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx" /><category term="windows azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/windows+azure/default.aspx" /></entry><entry><title>Failed to initialize Windows Azure storage emulator</title><link rel="alternate" type="text/html" href="/blogs/damir_dobric/archive/2012/01/13/failed-to-initialize-windows-azure-storage-emulator.aspx" /><id>/blogs/damir_dobric/archive/2012/01/13/failed-to-initialize-windows-azure-storage-emulator.aspx</id><published>2012-01-13T16:21:38Z</published><updated>2012-01-13T16:21:38Z</updated><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;When working with Storage Emulator you might get following error when trying to start the application locally (F5). &lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;em&gt;Windows Azure Tools: Failed to initialize Windows Azure storage emulator. Unable to start Development Storage. Failed to start Storage Emulator: the SQL Server instance ‘localhost\SQLExpress’ could not be found.&amp;#160;&amp;#160; Please configure the SQL Server instance for Storage Emulator using the ‘DSInit’ utility in the Windows Azure SDK.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;This will happen if the Windows Azure SDK didn’t installed correctly or if SQL database has not been previously installed at the development machine. To fix the problem open WinAzure SDK command prompt and start DSInit as shown below:&lt;/p&gt;  &lt;p&gt;Syntax:   &lt;br /&gt;DSInit [/sqlinstance:&amp;lt;DatabaseInstanceName&amp;gt; | /server:&amp;lt;Machine name&amp;gt;] [/silent] [/forcecreate]&lt;/p&gt;  &lt;p&gt;In my case: &lt;strong&gt;Dsinit /server:AZURETRAINING&lt;/strong&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_5D941FDD.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_086C83F0.png" width="679" height="344" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If all works fine, following popup should appear:&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_7D42F9A5.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_2F3A9A30.png" width="486" height="374" /&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=264731" width="1" height="1"&gt;</content><author><name>ddobric</name><uri>http://developers.de/members/ddobric/default.aspx</uri></author><category term="cloud" scheme="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx" /><category term="azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx" /><category term="windows azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/windows+azure/default.aspx" /></entry><entry><title>DiagnosticMonitor takes too long to start</title><link rel="alternate" type="text/html" href="/blogs/damir_dobric/archive/2012/01/06/diagnosticmonitor-takes-too-long-to-start.aspx" /><id>/blogs/damir_dobric/archive/2012/01/06/diagnosticmonitor-takes-too-long-to-start.aspx</id><published>2012-01-06T11:45:39Z</published><updated>2012-01-06T11:45:39Z</updated><content type="html">&lt;p&gt;If you try to start diagnostic monitoring&amp;#160; by calling&amp;#160; DiagnosticMonitor.Start(..) it can happen that this call takes too long (2 Minutes). After this time the call will just return successfully. Unfortunately you will figure out later that diagnostic monitoring does not work at all.&lt;/p&gt;  &lt;p&gt;In fact there is not any error and nothing works.   &lt;br /&gt;    &lt;br /&gt;This will happen if you setup an not existing account name in diagnostic connection string. The TCP/HTTP call will in this case try to resolve the storage with THEACCOUNT prefix (which does not exist) and fail time-out.    &lt;br /&gt;    &lt;br /&gt;Unfortunately the Start() will return with no exception.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160; &amp;lt;Setting name=&amp;quot;Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; value=&amp;quot;DefaultEndpointsProtocol=https;AccountName=&lt;font style="background-color:#ffff00;" color="#ff0000"&gt;THEACCOUNT&lt;/font&gt;;..&lt;/p&gt;  &lt;p&gt;You can figure out this behavior in console of Compute Emulator.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=263161" width="1" height="1"&gt;</content><author><name>ddobric</name><uri>http://developers.de/members/ddobric/default.aspx</uri></author><category term="cloud" scheme="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx" /><category term="azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx" /><category term="windows azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/windows+azure/default.aspx" /></entry><entry><title>How to cleanup IntelliTraces of WindowsAzure application</title><link rel="alternate" type="text/html" href="/blogs/damir_dobric/archive/2012/01/06/how-to-cleanup-intellitraces-of-windowsazure-application.aspx" /><id>/blogs/damir_dobric/archive/2012/01/06/how-to-cleanup-intellitraces-of-windowsazure-application.aspx</id><published>2012-01-06T10:10:56Z</published><updated>2012-01-06T10:10:56Z</updated><content type="html">&lt;p&gt;When working with &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/ff683671.aspx"&gt;IntelliTrace&lt;/a&gt; Visual Studio will download required files from Windows Azure related store. These files are in general large and should be cleaned-up regularly. Files are downloaded on demand within Server Explorer as shown at the next picture:    &lt;br /&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_3862D5F7.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_782CBC7C.png" width="357" height="163" /&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;&amp;#160;&lt;/p&gt;  &lt;p&gt;The download location of files is:&lt;/p&gt;  &lt;p&gt;C:\Users\youraccountname\AppData\Local\Temp\Downloaded WAT Diagnostics Logs&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_6D033232.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_1EFAD2BD.png" width="592" height="355" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The picture below shows how much space these just few deployments can take:   &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_65E3F5BA.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_17DB9645.png" width="373" height="485" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;You can dele them. If some of them are still in use skip deletion or close VS instance which keeps them open.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=263143" width="1" height="1"&gt;</content><author><name>ddobric</name><uri>http://developers.de/members/ddobric/default.aspx</uri></author><category term="cloud" scheme="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx" /><category term="azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx" /><category term="windows azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/windows+azure/default.aspx" /></entry><entry><title>Windows Azure Role Deployment failure</title><link rel="alternate" type="text/html" href="/blogs/damir_dobric/archive/2012/01/05/windows-azure-role-start-failure.aspx" /><id>/blogs/damir_dobric/archive/2012/01/05/windows-azure-role-start-failure.aspx</id><published>2012-01-05T22:27:45Z</published><updated>2012-01-05T22:27:45Z</updated><content type="html">&lt;p&gt;If you get this error while deploying the role to Windows Azure, you might be wandering.&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;em&gt;Error: Windows Azure is currently performing an operation on this deployment that requires exclusive access.&amp;#160; Http Status Code: Conflict&amp;#160; OperationId: …&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;The solution is very simple one. You have probably forgotten to setup the right storage account in the role configuration:   &lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Setting name=&amp;quot;CloudStorageAccount&amp;quot; value=&amp;quot;UseDevelopmentStorage=true&amp;quot; /&amp;gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=263030" width="1" height="1"&gt;</content><author><name>ddobric</name><uri>http://developers.de/members/ddobric/default.aspx</uri></author><category term="cloud" scheme="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx" /><category term="azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx" /><category term="windows azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/windows+azure/default.aspx" /></entry><entry><title>Fun with Visual Studio 2010 compiler</title><link rel="alternate" type="text/html" href="/blogs/damir_dobric/archive/2012/01/04/fun-visual-studio-2010-compiler.aspx" /><id>/blogs/damir_dobric/archive/2012/01/04/fun-visual-studio-2010-compiler.aspx</id><published>2012-01-04T10:38:16Z</published><updated>2012-01-04T10:38:16Z</updated><content type="html">&lt;p&gt;I have following line of code, which obviously cannot be compiled, because the variable x has already been declared.&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_54C5FF48.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_787F26E2.png" width="1031" height="108" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;This is what I thought too. So, I was looking for declaration and didn’t find it. Hmmm?!?   &lt;br /&gt;So, the only reasonable explanation of this could be, that I just declare it but cannot find it. Hmmm, not very possible, but let’s assume it.    &lt;br /&gt;Ok, if the variable has been declared it must be possible to declare the other one and assign existing ‘x’ to it:&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_06516CDE.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_260046A6.png" width="409" height="88" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Uupps. &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_37DCDA73.png" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=262734" width="1" height="1"&gt;</content><author><name>ddobric</name><uri>http://developers.de/members/ddobric/default.aspx</uri></author><category term="Core.Net" scheme="http://developers.de/blogs/damir_dobric/archive/tags/Core.Net/default.aspx" /></entry><entry><title>How to draw TextControl in WPF?</title><link rel="alternate" type="text/html" href="/blogs/damir_dobric/archive/2011/12/31/how-to-draw-textcontrol-in-wpf.aspx" /><id>/blogs/damir_dobric/archive/2011/12/31/how-to-draw-textcontrol-in-wpf.aspx</id><published>2011-12-31T00:31:13Z</published><updated>2011-12-31T00:31:13Z</updated><content type="html">&lt;p&gt;When working with WPF and highly 2D graphic oriented applications, you will definitely have a requirement to mix the text with graphic.   &lt;br /&gt;For example you want to draw a line an write some text on the top of line.    &lt;br /&gt;It is not a big science to make this somehow working. However the programming model to create one line and one peace of text are a bit different. This can make your code ugly.    &lt;br /&gt;    &lt;br /&gt;For example, imagine you are drawing a line and wants to put the text at the line. Next code sample shows how to draw the line.&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 color="#2b91af" face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;Line&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;"&gt;&lt;font color="#000000"&gt; line1 = &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;Line&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;()           &lt;br /&gt;line1.X1 = xMin;            &lt;br /&gt;line1.Y1 = yMin;            &lt;br /&gt;line1.X2 = xMax;&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 color="#000000"&gt;&lt;font style="font-size:9.5pt;"&gt;line1.Y2 = yMin;&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 color="#000000"&gt;&lt;font style="font-size:9.5pt;"&gt;line1.Stroke = &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;SolidColorBrush&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;(controller.ViewData.AxisColor);&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 color="#000000"&gt;&lt;font style="font-size:9.5pt;"&gt;line1.StrokeThickness = 2;&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;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;font style="font-size:9.5pt;"&gt;m_Grid.Children.Add(line1);&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 color="#000000" face="Consolas"&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;br /&gt;Now, it you would like to to have a same code to draw the text. For example:    &lt;br /&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;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;TextBlock&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; text = &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;TextBlock&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;(number, xMin, yMin, &lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;Segoi UI&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;, fontSize, color);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&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;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font style="font-size:9.5pt;"&gt;m_Grid.Children.Add(text);           &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;    &lt;br /&gt;Unfortunately this will not work, because there is no Text Control which would work this way. To make it working you could put a canvas-element around parent (in this sample m_Grid) and set properties like Canvas.Left, Canvas.Top etc..This is a nice workaround, but if your graphic elements behave in a dimension which is not a pixel (for example millimeter), such kind of code would be very difficult and probably ugly for implementation at least when you have to rescale form your dimension back to pixels.&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;br /&gt;Solution    &lt;br /&gt;We implemented the class DrawableTextBlock which is common TextBox with few more arguments.&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;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_565AF486.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_03DC144A.png" width="861" height="448" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The custom control has to derive from FramworkElement. Adiitionally it has to override VisualChildrenCount and GetVisualChild.   &lt;br /&gt;In the constructor we create VisualCollection and put a single element which is drawn text.&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="#808080"&gt;&lt;font style="font-size:9.5pt;"&gt;///&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font style="font-size:9.5pt;" color="#808080"&gt;&amp;lt;summary&amp;gt;           &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;font face="Consolas"&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#008000"&gt; Creats the instance of drawable text control.             &lt;br /&gt;&lt;/font&gt;&lt;/span&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;"&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#808080"&gt;&amp;lt;/summary&amp;gt;             &lt;br /&gt;&lt;/font&gt;&lt;/span&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;"&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#808080"&gt;&amp;lt;param name=&amp;quot;text&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;             &lt;br /&gt;&lt;/font&gt;&lt;/span&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;"&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;param name=&amp;quot;x&amp;quot;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt;X-Position of control&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#808080"&gt;&amp;lt;/param&amp;gt;             &lt;br /&gt;&lt;/font&gt;&lt;/span&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;"&gt;&lt;span&gt;&lt;font color="#808080"&gt;//&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;param name=&amp;quot;y&amp;quot;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt;y-Position of control&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#808080"&gt;&amp;lt;/param&amp;gt;             &lt;br /&gt;&lt;/font&gt;&lt;/span&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;"&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;param name=&amp;quot;font&amp;quot;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt;The font family like &amp;#39;Verdana&amp;#39;, &amp;#39;Segoi UI&amp;#39;, etc.&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#808080"&gt;&amp;lt;/param&amp;gt;             &lt;br /&gt;&lt;/font&gt;&lt;/span&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;"&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;param name=&amp;quot;fontSize&amp;quot;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt;The size of the font.&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#808080"&gt;&amp;lt;/param&amp;gt;             &lt;br /&gt;&lt;/font&gt;&lt;/span&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;"&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#808080"&gt;&amp;lt;param name=&amp;quot;color&amp;quot;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt;The color of the font.&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#808080"&gt;&amp;lt;/param&amp;gt;             &lt;br /&gt;&lt;/font&gt;&lt;/span&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;"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; DrawableTextBlock(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; text, &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; x, &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; y, &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; font, &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; fontSize, &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;Color&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; color)             &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;font style="font-size:9.5pt;"&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;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; m_Elements = &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;VisualCollection&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;this&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; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;m_Elements.Add(createDrawingText(text, x, y, font, fontSize, color));             &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The text is drown as follows.&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; &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;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&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="#2b91af"&gt;Visual&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; createDrawingText(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; text, &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; x, &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; y, &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; font, &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; fontSize, &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;Color&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; color)           &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;FormattedText&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; formattedText = &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;FormattedText&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 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;text,&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;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;&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;CultureInfo&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.GetCultureInfo(&lt;/font&gt;&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;en-us&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;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;&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;FlowDirection&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;.LeftToRight,&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;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;&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;new&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;Typeface&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;(font),&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 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;fontSize,&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;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;&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;Brushes&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;.Black);           &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;DrawingVisual&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; drawingVisual = &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;DrawingVisual&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;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;using&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;DrawingContext&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; drawingContext = drawingVisual.RenderOpen())&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 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;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;drawingContext.DrawText(formattedText, &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;Point&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;(x, y));&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;font face="Consolas"&gt;&lt;span style="mso-ansi-language:en-us;"&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#000000"&gt; drawingVisual;&lt;/font&gt;&lt;/span&gt;&lt;/font&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&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&gt;&lt;/font&gt;&lt;/font&gt;      &lt;br style="mso-special-character:line-break;" /&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&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; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Two remaining methods must be overridden to make all working:&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; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&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; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#008000"&gt; Mus be override to provide visuals to be rendered.&lt;/font&gt;&lt;/span&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; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&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; &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;protected&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;override&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; VisualChildrenCount           &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; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&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;get&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; { &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; m_Elements.Count; }           &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; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&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; &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; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#808080"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/span&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; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#008000"&gt; Gets the specific visual.&lt;/font&gt;&lt;/span&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; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/font&gt;&lt;/span&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; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#808080"&gt;&amp;lt;param name=&amp;quot;index&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/font&gt;&lt;/span&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; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span&gt;&lt;font color="#808080"&gt;///&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#008000"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;" color="#808080"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/font&gt;&lt;/span&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; &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;protected&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;override&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span&gt;&lt;font color="#2b91af"&gt;Visual&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; GetVisualChild(&lt;/font&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; i)           &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; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&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;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; (I &amp;lt; 0 || i&amp;gt;= m_Elements.Count)&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 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;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;&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;throw&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; &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;ArgumentOutOfRangeException&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&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;return&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; m_Elements;&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;font face="Consolas"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-ansi-language:en-us;"&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; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;font style="font-size:9.5pt;"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The full sample for this post can be downloaded &lt;a href="http://developers.de/media/p/258871.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=258893" width="1" height="1"&gt;</content><author><name>ddobric</name><uri>http://developers.de/members/ddobric/default.aspx</uri></author><category term="Core.Net" scheme="http://developers.de/blogs/damir_dobric/archive/tags/Core.Net/default.aspx" /></entry><entry><title>Windows Server AppFabic 1.1</title><link rel="alternate" type="text/html" href="/blogs/damir_dobric/archive/2011/12/24/windows-server-appfabic-1-1.aspx" /><id>/blogs/damir_dobric/archive/2011/12/24/windows-server-appfabic-1-1.aspx</id><published>2011-12-24T09:39:34Z</published><updated>2011-12-24T09:39:34Z</updated><content type="html">&lt;p&gt;AppFabric 1.1 is the new version of &lt;a href="http://msdn.microsoft.com/en-us/library/ee677312.aspx"&gt;Windows Server AppFabric&lt;/a&gt; 1.0 first release. The new release 1.1 provides &lt;a href="http://msdn.microsoft.com/en-us/library/hh351389.aspx"&gt;new features&lt;/a&gt;, many bug fixes and improved memory management. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Graceful shutdown&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;One of my favorite features is so called Cache Graceful Shutdown. If you never used the cache in cluster this feature will not be important.   &lt;br /&gt;If the cache cluster is build on many nodes, there will be a moment when one node needs to be shutdown. As long all items cached on all nodes are in sync (means all items are distributed to all nodes) the shutdown is not an issue at all. But in the real life systems are dynamic. That means new items are put into the cache and old items are removed. That means item distribution process (sync) is running continuously. Under this assumption shutdown of one node would destroy all items cached at that node which have not been synchronized with other nodes. To solve this problem, v1.1 of cache provides a new parameter &lt;strong&gt;Graceful&lt;/strong&gt; of power-shell command &lt;strong&gt;Stop-CacheHost&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;From the client side point of view, old 1.0 clients are compatible with the server version 1.1. However, both cache client libraries 1.0 and 1.1 should not be installed on one machine.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;No more GAC&lt;/strong&gt;    &lt;br /&gt;Cache client assemblies are no more installed in GAC. GAC registration has prevented using Windows Azure AppFabric Cache assemblies side by side with Windows Server AppFabric Caches assemblies.    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;Installation Path&lt;/strong&gt;    &lt;br /&gt;Installation path is moved from C:\Windows\System32\AppFabric to .\Program Files\AppFabric 1.1.&lt;/p&gt;  &lt;p&gt;For the full list of issues please take a look &lt;a href="http://msdn.microsoft.com/en-us/library/hh361710.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;For documentation purposes here is one which I need often:&lt;/p&gt;  &lt;h5&gt;custom WCF bindings and behaviors Schema Issue&lt;/h5&gt;  &lt;p&gt;If your services use custom elements, it is not possible to configure these elements in AppFabric directly. To do that convert custom element sections to MWA-compatible schemas and place that schema in %SystemRoot%\System32\inetsrv\config\schema. MWA will automatically pick up this schema and parse the custom section in configuration correctly. These&amp;#160; sections can also be edited by using IIS Configuration Editor, which is inside of IIS Manager( not the AppFabric Configuration Editor).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=251477" width="1" height="1"&gt;</content><author><name>ddobric</name><uri>http://developers.de/members/ddobric/default.aspx</uri></author><category term="WCF" scheme="http://developers.de/blogs/damir_dobric/archive/tags/WCF/default.aspx" /><category term="azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx" /><category term="AppFabric" scheme="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx" /></entry><entry><title>Windows Azure ServiceBus Connect setup</title><link rel="alternate" type="text/html" href="/blogs/damir_dobric/archive/2011/12/18/windows-azure-servicebus-connect-setup.aspx" /><id>/blogs/damir_dobric/archive/2011/12/18/windows-azure-servicebus-connect-setup.aspx</id><published>2011-12-18T13:56:41Z</published><updated>2011-12-18T13:56:41Z</updated><content type="html">&lt;p&gt;   &lt;br /&gt;When installing &lt;strong&gt;ServiceBus Connect&lt;/strong&gt; feature (a peace of Cloud Middle-Ware) following three artifacts will be installed:     &lt;br /&gt;    &lt;br /&gt;1. Developer SDK     &lt;br /&gt;2. Runtime     &lt;br /&gt;3. Management tools&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_4CCD2A73.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_655CC7C3.png" width="345" height="226" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Developer SDK &lt;/strong&gt;    &lt;br /&gt;You need it for VS to develop EAI applications. Developer SDK contains following components:     &lt;br /&gt;1.&amp;#160;&amp;#160;&amp;#160; Windows Azure ServiceBus EAI &amp;amp; EDI Labs SDK     &lt;br /&gt;2.&amp;#160;&amp;#160;&amp;#160; Microsoft WCF LOB Adapter SDK     &lt;br /&gt;3.&amp;#160;&amp;#160;&amp;#160; Microsoft BizTalk Adapter Pack     &lt;br /&gt;4.&amp;#160;&amp;#160;&amp;#160; Microsoft BizTalk Adapter Pack (64 bit), by 64 bit setup&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Runtime&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The ServiceBus Connect Runtime is required to connect to an on-premise Line of Business Application from an EAI application. This feature will install the following components:    &lt;br /&gt;1.&amp;#160;&amp;#160;&amp;#160; Windows Azure ServiceBus EAI &amp;amp; EDI Labs SDK     &lt;br /&gt;2.&amp;#160;&amp;#160;&amp;#160; Microsoft WCF LOB Adapter SDK     &lt;br /&gt;3.&amp;#160;&amp;#160;&amp;#160; Microsoft BizTalk Adapter Pack     &lt;br /&gt;4.&amp;#160;&amp;#160;&amp;#160; Microsoft BizTalk Adapter Pack (64 bit), if this is a 64 bit install     &lt;br /&gt;5.&amp;#160;&amp;#160;&amp;#160; Microsoft ServiceBus Connect&lt;/p&gt;  &lt;p&gt;Kindly make sure that following pre-requisites are already installed on this system before proceeding:    &lt;br /&gt;1.&amp;#160;&amp;#160;&amp;#160; Windows Server AppFabric     &lt;br /&gt;2.&amp;#160;&amp;#160;&amp;#160; Internet Information Services (IIS), version 7.0 or higher. Following IIS features need to be enabled     &lt;br /&gt;a.&amp;#160;&amp;#160;&amp;#160; “IIS Metabase and IIS 6 configuration&amp;#160; compatibility” or “IIS 6 Metabase Compatibility”     &lt;br /&gt;b.&amp;#160;&amp;#160;&amp;#160; Windows Authentication     &lt;br /&gt;3.&amp;#160;&amp;#160;&amp;#160; .NET Framework 3.5.1 Features should be enabled&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Management Tools&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The Management Tools feature provides PowerShell extensions for ServiceBus Connect. This feature will install the following component:    &lt;br /&gt;1.&amp;#160;&amp;#160;&amp;#160; PowerShell extensions for Microsoft ServiceBus Connect&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;strong&gt;Pre-requisites &lt;/strong&gt;    &lt;br /&gt;    &lt;br /&gt;1.&amp;#160;&amp;#160;&amp;#160; Windows Server AppFabric     &lt;br /&gt;2.&amp;#160;&amp;#160;&amp;#160; Internet Information Services (IIS), version 7.0 or higher. Following IIS features need to be enabled     &lt;br /&gt;3.&amp;#160;&amp;#160;&amp;#160; “IIS Metabase and IIS 6 configuration&amp;#160; compatibility” or “IIS 6 Metabase Compatibility”     &lt;br /&gt;4.&amp;#160;&amp;#160;&amp;#160; Windows Authentication     &lt;br /&gt;5.&amp;#160;&amp;#160; IIS 6 Metabase compatibility     &lt;br /&gt;5. NET Framework 3.5.1 Features should be enabled.     &lt;br /&gt;6. VS 2010&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; that the official list in the CTP setup &lt;u&gt;does not&lt;/u&gt; describe all you need. The list 1-5 shown above contains all what I have installed to make it working.    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;Documentation&lt;/strong&gt;: &lt;a title="http://msdn.microsoft.com/en-us/library/windowsazure/hh689864.aspx" href="http://msdn.microsoft.com/en-us/library/windowsazure/hh689864.aspx"&gt;http://msdn.microsoft.com/en-us/library/windowsazure/hh689864.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Last but not least:&lt;/strong&gt;     &lt;br /&gt;If you get some error like this one: “Setting cached product context: User non-assigned for product: 4C27B055404F218479F149E738A578E7” it means that you have probably downloaded x64 package trying to install on x86 machine.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=245048" width="1" height="1"&gt;</content><author><name>ddobric</name><uri>http://developers.de/members/ddobric/default.aspx</uri></author><category term="BizTalk" scheme="http://developers.de/blogs/damir_dobric/archive/tags/BizTalk/default.aspx" /><category term="WCF" scheme="http://developers.de/blogs/damir_dobric/archive/tags/WCF/default.aspx" /><category term="cloud" scheme="http://developers.de/blogs/damir_dobric/archive/tags/cloud/default.aspx" /><category term="azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx" /><category term="AppFabric" scheme="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx" /><category term="windows azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/windows+azure/default.aspx" /></entry><entry><title>Announcing the Service Bus EAI &amp; EDI Labs Release</title><link rel="alternate" type="text/html" href="/blogs/damir_dobric/archive/2011/12/17/announcing-the-service-bus-eai-amp-edi-labs-release.aspx" /><id>/blogs/damir_dobric/archive/2011/12/17/announcing-the-service-bus-eai-amp-edi-labs-release.aspx</id><published>2011-12-17T13:57:02Z</published><updated>2011-12-17T13:57:02Z</updated><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Today Microsoft announced the first version of Windows Azure Service Bus EAI &amp;amp; EDI release. The release provides support for EAI and EDI in Cloud.:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Enterprise Application Integration (EAI)&lt;/b&gt;       &lt;br /&gt;Rich message processing capabilities       &lt;br /&gt;Ability to connect private cloud assets to the public cloud. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Electronic Data Interchange (EDI)&lt;/b&gt;       &lt;br /&gt;(B2B) scenarios in the form of a finished service built for trading partner management. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_6F1031A3.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_209B9F39.png" width="310" height="454" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;SDK &lt;a href="http://go.microsoft.com/fwlink/?LinkID=184288"&gt;Download &lt;/a&gt;&lt;/p&gt;  &lt;p&gt;New &lt;a href="http://portal.appfabriclabs.com/"&gt;Labs environment&lt;/a&gt; requires Windows Live ID registration.&lt;/p&gt;  &lt;p&gt;More information:    &lt;br /&gt;&lt;a title="http://blogs.msdn.com/b/windowsazure/archive/2011/12/16/announcing-the-service-bus-eai-amp-edi-labs-release.aspx" href="http://blogs.msdn.com/b/windowsazure/archive/2011/12/16/announcing-the-service-bus-eai-amp-edi-labs-release.aspx"&gt;http://blogs.msdn.com/b/windowsazure/archive/2011/12/16/announcing-the-service-bus-eai-amp-edi-labs-release.aspx&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=243951" width="1" height="1"&gt;</content><author><name>ddobric</name><uri>http://developers.de/members/ddobric/default.aspx</uri></author><category term="azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/azure/default.aspx" /><category term="AppFabric" scheme="http://developers.de/blogs/damir_dobric/archive/tags/AppFabric/default.aspx" /><category term="windows azure" scheme="http://developers.de/blogs/damir_dobric/archive/tags/windows+azure/default.aspx" /></entry><entry><title>Where is my Snippet?</title><link rel="alternate" type="text/html" href="/blogs/damir_dobric/archive/2011/12/13/where-is-my-snippet.aspx" /><id>/blogs/damir_dobric/archive/2011/12/13/where-is-my-snippet.aspx</id><published>2011-12-13T15:19:05Z</published><updated>2011-12-13T15:19:05Z</updated><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Just for documentation purposes:&lt;/p&gt;  &lt;p&gt;Folder with snippets:   &lt;br /&gt;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC#\Snippets\1033\Visual C#    &lt;br /&gt;    &lt;br /&gt;Snippet file example: model.snippet    &lt;br /&gt;”model” is shortname&lt;/p&gt;  &lt;p&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;   &lt;br /&gt;&amp;lt;CodeSnippets xmlns=&amp;quot;&lt;a href="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet&amp;quot;"&gt;http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet&amp;quot;&lt;/a&gt;&amp;gt;    &lt;br /&gt;&amp;#160; &amp;lt;CodeSnippet Format=&amp;quot;1.0.0&amp;quot;&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Header&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Title&amp;gt;model&amp;lt;/Title&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Author&amp;gt;Damir Dobric&amp;lt;/Author&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Description&amp;gt;&amp;lt;/Description&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;HelpUrl&amp;gt;&amp;lt;/HelpUrl&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SnippetTypes /&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Keywords /&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Shortcut&amp;gt;model&amp;lt;/Shortcut&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Header&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Snippet&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;References /&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Imports /&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Declarations&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Literal Editable=&amp;quot;true&amp;quot;&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ID&amp;gt;TypeName&amp;lt;/ID&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Type&amp;gt;System.Type&amp;lt;/Type&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ToolTip&amp;gt;&amp;lt;/ToolTip&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Default&amp;gt;TypeName&amp;lt;/Default&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Function&amp;gt;&amp;lt;/Function&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Literal&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Literal Editable=&amp;quot;true&amp;quot;&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ID&amp;gt;PropertyName&amp;lt;/ID&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Type&amp;gt;System.String&amp;lt;/Type&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ToolTip&amp;gt;&amp;lt;/ToolTip&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Default&amp;gt;TypeYourPropertyName&amp;lt;/Default&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Function&amp;gt;&amp;lt;/Function&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Literal&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Declarations&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Code Language=&amp;quot;csharp&amp;quot; Kind=&amp;quot;&amp;quot; Delimiter=&amp;quot;$&amp;quot;&amp;gt;    &lt;br /&gt;&amp;#160; &amp;lt;![CDATA[    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; private $TypeName$&amp;#160; m_$PropertyName$;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public $TypeName$ $PropertyName$   &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; get    &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; return m_$PropertyName$;    &lt;br /&gt;&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; set    &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; if (m_$PropertyName$ != value)    &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; this.m_$PropertyName$ = value;    &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; RaisePropertyChanged(&amp;quot;$PropertyName$&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;&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; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }]]&amp;gt;&amp;lt;/Code&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Snippet&amp;gt;    &lt;br /&gt;&amp;#160; &amp;lt;/CodeSnippet&amp;gt;    &lt;br /&gt;&amp;lt;/CodeSnippets&amp;gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=239567" width="1" height="1"&gt;</content><author><name>ddobric</name><uri>http://developers.de/members/ddobric/default.aspx</uri></author></entry></feed>
