<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://dotnetside.org/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">BlogServiceHost.Create()</title><subtitle type="html">WCF &amp;amp; Azure
-
Il blog di Fabio Cozzolino</subtitle><id>http://dotnetside.org/blogs/fabio/atom.aspx</id><link rel="alternate" type="text/html" href="http://dotnetside.org/blogs/fabio/default.aspx" /><link rel="self" type="application/atom+xml" href="http://dotnetside.org/blogs/fabio/atom.aspx" /><generator uri="http://communityserver.org" version="4.0.30619.63">Community Server</generator><updated>2012-02-09T19:48:00Z</updated><entry><title>WCF Self-hosting</title><link rel="alternate" type="text/html" href="/blogs/fabio/archive/2013/06/07/wcf-self-hosting.aspx" /><id>/blogs/fabio/archive/2013/06/07/wcf-self-hosting.aspx</id><published>2013-06-07T08:30:00Z</published><updated>2013-06-07T08:30:00Z</updated><content type="html">&lt;p&gt;Ieri, durante l’evento Connected Open Web, ho mostrato la possibilità di fare self-hosting con WCF. Per chi me lo ha poi chiesto, riporto qui il codice completo:&lt;/p&gt;  &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 500px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Program&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Main(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;[] args)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;         var host = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ServiceHost(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(MyService), &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Uri(&lt;span style="color: #006080"&gt;&amp;quot;http://localhost:10101/dotnetside&amp;quot;&lt;/span&gt;));&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;         host.Description.Behaviors.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ServiceMetadataBehavior() { HttpGetEnabled = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt; });&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;         host.AddServiceEndpoint(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt; (MyService), &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; BasicHttpBinding(), &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt;         host.AddServiceEndpoint(ServiceMetadataBehavior.MexContractName, MetadataExchangeBindings.CreateMexHttpBinding(), &lt;span style="color: #006080"&gt;&amp;quot;mex&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt;         &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt;         host.Open();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum11"&gt;  11:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum12"&gt;  12:&lt;/span&gt;         Console.ReadLine();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum13"&gt;  13:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum14"&gt;  14:&lt;/span&gt;         host.Close();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum15"&gt;  15:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum16"&gt;  16:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum17"&gt;  17:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum18"&gt;  18:&lt;/span&gt; [ServiceContract]&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum19"&gt;  19:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; MyService&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum20"&gt;  20:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum21"&gt;  21:&lt;/span&gt;     [OperationContract]&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum22"&gt;  22:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; Get(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; name)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum23"&gt;  23:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum24"&gt;  24:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #006080"&gt;&amp;quot;Hi, &amp;quot;&lt;/span&gt; + name;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum25"&gt;  25:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum26"&gt;  26:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Questo è il risultato dal WcfTestClient:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://dotnetside.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fabio/image_5F00_02D15231.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://dotnetside.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fabio/image_5F00_thumb_5F00_323FC0FD.png" width="536" height="341" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fabio&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22998" width="1" height="1"&gt;</content><author><name>Fabio.Cozzolino</name><uri>http://dotnetside.org/members/Fabio.Cozzolino/default.aspx</uri></author><category term="Eventi" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Eventi/default.aspx" /><category term="Workshop" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Workshop/default.aspx" /><category term="WCF" scheme="http://dotnetside.org/blogs/fabio/archive/tags/WCF/default.aspx" /></entry><entry><title>Microsoft Integration platform: slides</title><link rel="alternate" type="text/html" href="/blogs/fabio/archive/2013/06/07/microsoft-integration-platform-slides.aspx" /><id>/blogs/fabio/archive/2013/06/07/microsoft-integration-platform-slides.aspx</id><published>2013-06-06T21:00:00Z</published><updated>2013-06-06T21:00:00Z</updated><content type="html">&lt;p&gt;Le slides della mia sessione sulla piattaforma Microsoft per l'integrazione:&lt;/p&gt;
&lt;p&gt;
&lt;iframe src="http://www.slideshare.net/slideshow/embed_code/22601804" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px"&gt; &lt;/iframe&gt; &lt;/p&gt;
&lt;div style="margin-bottom:5px"&gt; &lt;strong&gt; &lt;a href="http://www.slideshare.net/Fabio.Cozzolino/microsoft-integration-platform" title="Microsoft Integration Platform" target="_blank"&gt;Microsoft Integration Platform&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href="http://www.slideshare.net/Fabio.Cozzolino" target="_blank"&gt;Fabio.Cozzolino&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22999" width="1" height="1"&gt;</content><author><name>Fabio.Cozzolino</name><uri>http://dotnetside.org/members/Fabio.Cozzolino/default.aspx</uri></author><category term="WCF" scheme="http://dotnetside.org/blogs/fabio/archive/tags/WCF/default.aspx" /><category term="Web API" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Web+API/default.aspx" /><category term="Service Bus" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Service+Bus/default.aspx" /></entry><entry><title>Eventi in arrivo...</title><link rel="alternate" type="text/html" href="/blogs/fabio/archive/2013/06/01/eventi-in-arrivo.aspx" /><id>/blogs/fabio/archive/2013/06/01/eventi-in-arrivo.aspx</id><published>2013-06-01T09:16:00Z</published><updated>2013-06-01T09:16:00Z</updated><content type="html">&lt;p&gt;Siamo a giugno! Da calendario l'estate dovrebbe essere alle porte, ma quest'anno, come una bella donna, si sta facendo attendere. Ad ogni modo, noi di DotNetSide andiamo avanti. Gioved&amp;igrave; prossimo nuovo evento in cui si parla di architetture distribuite, servizi, SOAP, REST, WCF, BizTalk, WebAPI, ServiceStack, SignalR, e ovviamente tutto quello che ci volete mettere voi &lt;img src="http://dotnetside.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;. L'evento &amp;egrave;, come al solito, gratuito.&lt;/p&gt;
&lt;p&gt;Non mancher&amp;agrave; qualche benefit per i partecipanti &lt;img src="http://dotnetside.org/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;/p&gt;
&lt;p&gt;Vi consiglio assolutamente di non mancare!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22997" width="1" height="1"&gt;</content><author><name>Fabio.Cozzolino</name><uri>http://dotnetside.org/members/Fabio.Cozzolino/default.aspx</uri></author><category term="Eventi" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Eventi/default.aspx" /><category term="Workshop" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Workshop/default.aspx" /></entry><entry><title>Microsoft Integration MVP 2013</title><link rel="alternate" type="text/html" href="/blogs/fabio/archive/2013/04/17/microsoft-integration-mvp-2013.aspx" /><id>/blogs/fabio/archive/2013/04/17/microsoft-integration-mvp-2013.aspx</id><published>2013-04-17T06:14:00Z</published><updated>2013-04-17T06:14:00Z</updated><content type="html">&lt;p&gt;Renewed! &lt;/p&gt;
&lt;p&gt;Il 1 aprile, come ogni anno, c'&amp;egrave; il secondo ciclo (avviene ogni trimestre) di nomine/rinnovi dell'award MVP. Per il quarto anno di fila Microsoft sono stato premiato nella categoria "Integration" (aka Connected Systems). WOW!&lt;/p&gt;
&lt;p&gt;L'award &amp;egrave; un traguardo, ma anche un punto di partenza ed una responsabilit&amp;agrave; ulteriore per le mie attivit&amp;agrave; in DotNetSide.&lt;/p&gt;
&lt;p&gt;Un grazie a tutti e ... stay tuned ... novit&amp;agrave; in arrivo &lt;img src="http://dotnetside.org/emoticons/emotion-1.gif" alt="Smile" /&gt;!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22993" width="1" height="1"&gt;</content><author><name>Fabio.Cozzolino</name><uri>http://dotnetside.org/members/Fabio.Cozzolino/default.aspx</uri></author></entry><entry><title>.NET Campus 2013 @ Roma</title><link rel="alternate" type="text/html" href="/blogs/fabio/archive/2013/04/17/net-campus-2013-roma.aspx" /><id>/blogs/fabio/archive/2013/04/17/net-campus-2013-roma.aspx</id><published>2013-04-16T21:04:00Z</published><updated>2013-04-16T21:04:00Z</updated><content type="html">&lt;p&gt;Anche quest'anno ho avuto l'onore di rappresentare DotNetSide alla tappa romana del .NET Campus 2013, contribuendo con una sessione dal titolo "notify your windows store app", totalmente incentrata sull'utilizzo del Service Bus Notification Hub come backend per la gestione dell'intero ciclo di vita delle sottoscrizioni ai vari Push Notification Services e dell'invio delle notifiche.&lt;/p&gt;
&lt;p&gt;Il .NET Campus &amp;egrave; come sempre una splendida occasione per incontrare amici e poter fare due chiacchiere praticamente parlando di tutto. Gran bella esperienza :).&lt;/p&gt;
&lt;p&gt;Purtroppo durane la sessione il mio notebook ha dato i numeri e non sono riuscito, a tempo ormai scaduto, a mostrare quello che avrei voluto. Far&amp;ograve; al pi&amp;ugrave; presto un video. Nel frattempo qui potete visionare le slide della mia sessione.&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://skydrive.live.com/embed?cid=540D132F4650788F&amp;amp;resid=540D132F4650788F%213793&amp;amp;authkey=AGjx4MOJQ2X7pg8&amp;amp;em=2&amp;amp;wdAr=1.7777777777777777" width="350px" height="220px" frameborder="0"&gt;This is an embedded &amp;amp;lt;a target='_blank' href="http://office.com" mce_href="http://office.com"&amp;amp;gt;Microsoft Office&amp;amp;lt;/a&amp;amp;gt; presentation, powered by &amp;amp;lt;a target='_blank' href="http://office.com/webapps" mce_href="http://office.com/webapps"&amp;amp;gt;Office Web Apps&amp;amp;lt;/a&amp;amp;gt;.&lt;/iframe&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22992" width="1" height="1"&gt;</content><author><name>Fabio.Cozzolino</name><uri>http://dotnetside.org/members/Fabio.Cozzolino/default.aspx</uri></author><category term="Azure" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Azure/default.aspx" /><category term="Service Bus" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Service+Bus/default.aspx" /><category term="Service Bus Notification Hub" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Service+Bus+Notification+Hub/default.aspx" /></entry><entry><title>Novità e price-drop in Windows Azure</title><link rel="alternate" type="text/html" href="/blogs/fabio/archive/2012/12/22/novit-224-e-price-drop-in-windows-azure.aspx" /><id>/blogs/fabio/archive/2012/12/22/novit-224-e-price-drop-in-windows-azure.aspx</id><published>2012-12-22T14:51:00Z</published><updated>2012-12-22T14:51:00Z</updated><content type="html">&lt;p&gt;Ieri sono state annunciate da &lt;a href="http://weblogs.asp.net/scottgu/"&gt;Scott Guthrie&lt;/a&gt;&amp;nbsp;tante, ma davvero tante, novit&amp;agrave; per quanto riguarda Windows Azure. Queste le pi&amp;ugrave; rilevanti:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mobile Services (job scheduler support, Europe Region Support, Command Line Support)&lt;/li&gt;
&lt;li&gt;Web Sites (scale improvements, integrated source control)&lt;/li&gt;
&lt;li&gt;SQL Data Sync (support in the new HTML portal)&lt;/li&gt;
&lt;li&gt;ACS Management (support in the new HTML portal)&lt;/li&gt;
&lt;li&gt;Media Services (job and task management, blob storage support, reserved compute)&lt;/li&gt;
&lt;li&gt;Virtual Network enhancements&lt;/li&gt;
&lt;li&gt;Subscription Filtering Support&lt;/li&gt;
&lt;li&gt;Windows Azure Store (now available in more countries)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;La comodit&amp;agrave; di creare jobs per i &lt;strong&gt;Mobile Services&lt;/strong&gt;&amp;nbsp;&amp;egrave; sicuramente una bella opportunit&amp;agrave;, ma finalmente si possono "posizionare" i servizi, ancora in beta, anche in Europa :). Anche il supporto nel nuovo portale di SQL Data Sync &amp;egrave; una importante novit&amp;agrave;: consente infatti di mantenere sincronizzati due o pi&amp;ugrave; SQL Database o SQL Server che possono trovarsi sia on-premises sia nel cloud, magari posizionati in datacenters differenti.&amp;nbsp;Finalmente si intravede nel nuovo portale, con capacit&amp;agrave; limitate alla sola creazione/cancellazione, l'Access Control Service anche se solo come link alla vecchia pagina di gestione. Tutti i dettagli li trovate nel &lt;a href="http://weblogs.asp.net/scottgu/archive/2012/12/21/great-updates-to-windows-azure-mobile-services-web-sites-sql-data-sync-acs-media-more.aspx"&gt;post di ScottGu&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;&lt;b&gt;Windows Azure Storage price-drop&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Tra gli annunci di questa settimana, vi &amp;egrave; anche un ulteriore &lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2012/12/05/announcing-reduced-pricing-for-windows-azure-storage.aspx"&gt;price-drop per i servizi di Storage&lt;/a&gt;, con un abbassamento generale dei prezzi del 28% circa. Questi i nuovi prezzi per GB al mese, con le differenze tra storage ridondati geograficamente (diversi datacenter) e storage ridondati localmente (stesso datacenter):&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;
&lt;table cellpadding="0" cellspacing="0" border="1"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;Capacit&amp;agrave; dello Storage&lt;/th&gt;&lt;th style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;Geographically Redundant&lt;/th&gt;&lt;th style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;Locally Redundant&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;Primo 1 TB / Mese&lt;/td&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;&lt;span data-amount=".095" class="price-data"&gt;&amp;euro;0,0674&lt;/span&gt;&amp;nbsp;per GB&lt;/td&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;&lt;span data-amount=".070" class="price-data"&gt;&amp;euro;0,0497&lt;/span&gt;&amp;nbsp;per GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;Successivi 49 TB / Mese&lt;/td&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;&lt;span data-amount=".08" class="price-data"&gt;&amp;euro;0,0568&lt;/span&gt;&amp;nbsp;per GB&lt;/td&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;&lt;span data-amount=".065" class="price-data"&gt;&amp;euro;0,0461&lt;/span&gt;&amp;nbsp;per GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;Successivi&amp;nbsp;450 TB /&amp;nbsp;Mese&lt;/td&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;&lt;span data-amount=".07" class="price-data"&gt;&amp;euro;0,0497&lt;/span&gt;&amp;nbsp;per GB&lt;/td&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;&lt;span data-amount=".06" class="price-data"&gt;&amp;euro;0,0426&lt;/span&gt;&amp;nbsp;per GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;Successivi&amp;nbsp;500 TB /&amp;nbsp;Mese&lt;/td&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;&lt;span data-amount=".065" class="price-data"&gt;&amp;euro;0,0461&lt;/span&gt;&amp;nbsp;per GB&lt;/td&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;&lt;span data-amount=".055" class="price-data"&gt;&amp;euro;0,0391&lt;/span&gt;&amp;nbsp;per GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;Successivi&amp;nbsp;4,000 TB /&amp;nbsp;Mese&lt;/td&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;&lt;span data-amount=".06" class="price-data"&gt;&amp;euro;0,0426&lt;/span&gt;&amp;nbsp;per GB&lt;/td&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;&lt;span data-amount=".045" class="price-data"&gt;&amp;euro;0,032&lt;/span&gt;&amp;nbsp;per GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;Successivi&amp;nbsp;4.000 TB /&amp;nbsp;Mese&lt;/td&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;&lt;span data-amount=".055" class="price-data"&gt;&amp;euro;0,0391&lt;/span&gt;&amp;nbsp;per GB&lt;/td&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;&lt;span data-amount=".037" class="price-data"&gt;&amp;euro;0,0263&lt;/span&gt;&amp;nbsp;per GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;Oltre 9.000 TB /&amp;nbsp;Mese&lt;/td&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;&lt;a href="mailto:winazinqr@microsoft.com"&gt;contattare Microsoft&lt;/a&gt;&lt;/td&gt;
&lt;td style="border: 0;padding: 5px 15px;font-size: 12px;font-weight: normal;line-height: 20px;color: #434343;"&gt;&lt;a href="mailto:winazinqr@microsoft.com"&gt;contattare Microsoft&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Service Bus&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Recentemente sono anche stati modificati i limiti di utilizzo del Service Bus Relay. La documentazione ufficiale ad oggi non riporta i nuovi limiti, ma dovrebbe essere aggiornata a breve. Queste le novit&amp;agrave;:&lt;/p&gt;
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;Numero di endpoint massimi per namespace: 10.000 (equiparato al messaging)&lt;/li&gt;
&lt;li&gt;Numero di connessioni concorrenti per namespace: 5.000 (non c'&amp;egrave; un limite forzato per connessioni per endpoint)&lt;/li&gt;
&lt;li&gt;Numero di namespaces per sottoscrizione: 50&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;Insomma, sono giornate piene di novit&amp;agrave;. C'&amp;egrave; da dire che da quando Scott Guthrie, oltre un anno &amp;egrave; mezzo fa, ha preso in mano Windows Azure, le novit&amp;agrave; non si sono fatte attendere e c'&amp;egrave; stata una grandissima sferzata a tutta la piattaforma, che oggi ha raggiunto dimensioni notevoli, con un elevato numero di servizi a supporto e pronti per essere utilizzati.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Bene, bene, si prospetta un 2013 davvero interessante... &amp;nbsp;&lt;img src="http://dotnetside.org/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;/div&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22987" width="1" height="1"&gt;</content><author><name>Fabio.Cozzolino</name><uri>http://dotnetside.org/members/Fabio.Cozzolino/default.aspx</uri></author><category term="Azure Storage Services" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Azure+Storage+Services/default.aspx" /><category term="Windows Azure" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Windows+Azure/default.aspx" /><category term="Service Bus" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Service+Bus/default.aspx" /><category term="Azure Prices" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Azure+Prices/default.aspx" /></entry><entry><title>Cannot get entity ‘{queue name}’ because it is not of type QueueDescription</title><link rel="alternate" type="text/html" href="/blogs/fabio/archive/2012/11/11/cannot-get-entity-queue-name-because-it-is-not-of-type-queuedescription.aspx" /><id>/blogs/fabio/archive/2012/11/11/cannot-get-entity-queue-name-because-it-is-not-of-type-queuedescription.aspx</id><published>2012-11-11T02:13:00Z</published><updated>2012-11-11T02:13:00Z</updated><content type="html">&lt;p&gt;Se nell'utilizzo delle code del Service Bus di Windows Azure vi dovesse capitare di incappare in questo messaggio di errore, verificate di non aver gi&amp;agrave; creato un Topic con quello stesso nome &lt;img src="http://dotnetside.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22972" width="1" height="1"&gt;</content><author><name>Fabio.Cozzolino</name><uri>http://dotnetside.org/members/Fabio.Cozzolino/default.aspx</uri></author><category term="Windows Azure" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Windows+Azure/default.aspx" /><category term="Service Bus" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Service+Bus/default.aspx" /></entry><entry><title>Community Days 2012 @ Bari</title><link rel="alternate" type="text/html" href="/blogs/fabio/archive/2012/05/01/community-days-2012-bari.aspx" /><id>/blogs/fabio/archive/2012/05/01/community-days-2012-bari.aspx</id><published>2012-05-01T15:59:07Z</published><updated>2012-05-01T15:59:07Z</updated><content type="html">&lt;p&gt;&lt;img src="http://www.communitydays.it/GUI/header.jpg" width="528" height="337" /&gt;&lt;/p&gt;  &lt;p align="justify"&gt;La &lt;a href="http://www.communitydays.it/events/communitydaysbari-2012/" target="_blank"&gt;tappa di Bari dei Community Days&lt;/a&gt; è ormai alle porte, manca poco meno di una settimana a quello che sarà sicuramente un evento da ricordare. Due giorni con quattro track e diversi speaker e autori di libri riconosciuti a livello nazionale ed internazionale come non si era mai visto dalle “nostre parti” &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://dotnetside.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fabio/wlEmoticon_2D00_smile_5F00_0E789509.png" /&gt;.&lt;/p&gt;  &lt;p align="justify"&gt;L’&lt;a href="http://www.communitydays.it/events/communitydaysbari-2012/" target="_blank"&gt;agenda&lt;/a&gt; è bella ricca e densa di sessioni interessanti. Parleremo non solo di Windows Phone e di Azure, ma anche dell’imminente Windows 8 e di come cambierà il nostro approccio allo sviluppo di applicazioni. A completare il tutto ci saranno anche i lab in parallelo.&lt;/p&gt;  &lt;p align="justify"&gt;Se non vi siete ancora &lt;a href="http://www.communitydays.it/events/communitydaysbari-2012/" target="_blank"&gt;iscritti&lt;/a&gt;, fatelo perchè ne varrà senz’altro la pena.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.communitydays.it/GUI/logo.png" width="526" height="55" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22950" width="1" height="1"&gt;</content><author><name>Fabio.Cozzolino</name><uri>http://dotnetside.org/members/Fabio.Cozzolino/default.aspx</uri></author><category term=".netSide" scheme="http://dotnetside.org/blogs/fabio/archive/tags/.netSide/default.aspx" /><category term="Eventi" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Eventi/default.aspx" /><category term="Workshop" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Workshop/default.aspx" /></entry><entry><title>Un premio alla trasparenza…</title><link rel="alternate" type="text/html" href="/blogs/fabio/archive/2012/03/10/un-premio-alla-trasparenza.aspx" /><id>/blogs/fabio/archive/2012/03/10/un-premio-alla-trasparenza.aspx</id><published>2012-03-10T08:48:00Z</published><updated>2012-03-10T08:48:00Z</updated><content type="html">&lt;p&gt;…di Bill Laing e del team di Windows Azure. In &lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2012/03/09/summary-of-windows-azure-service-disruption-on-feb-29th-2012.aspx" target="_blank"&gt;questo post&lt;/a&gt; viene riportato un dettagliato report di quanto è successo, con spiegazioni tecniche del perchè è successo e di quelli che sono stati i passaggi fatti per risolvere il problema (anche gli errori).&lt;/p&gt;  &lt;p&gt;Ad ogni modo, questa frase descrive la natura del bug:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The leap day bug is that the GA calculated the valid-to date by simply taking the current date and adding one to its year.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Chiaramente il 2013 non è bisestile e il 29 febbraio non esiste…&lt;/p&gt;  &lt;p&gt;Il post si conclude con “abbiamo imparato la lezione, ora miglioriamo il servizio così…”. Davvero interessante anche dal punto di vista tecnico ed operativo.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22947" width="1" height="1"&gt;</content><author><name>Fabio.Cozzolino</name><uri>http://dotnetside.org/members/Fabio.Cozzolino/default.aspx</uri></author><category term="Azure" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Azure/default.aspx" /></entry><entry><title>Ancora un Price Drop per Windows Azure Storage e la Extra-Small Instance</title><link rel="alternate" type="text/html" href="/blogs/fabio/archive/2012/03/09/ancora-un-price-drop-per-windows-azure-storage-e-la-extra-small-instance.aspx" /><id>/blogs/fabio/archive/2012/03/09/ancora-un-price-drop-per-windows-azure-storage-e-la-extra-small-instance.aspx</id><published>2012-03-09T06:13:00Z</published><updated>2012-03-09T06:13:00Z</updated><content type="html">&lt;p&gt;Dopo i tagli ai prezzi dello Storage dello scorso ottobre, passati da $ 0,15/GB a $ 0,14/GB, e la &lt;a href="http://dotnetside.org/blogs/fabio/archive/2012/02/16/nuovi-prezzi-di-sql-azure.aspx" target="_blank"&gt;recente rivisitazione della politica dei prezzi di SQL Azure&lt;/a&gt;, da ieri 8 Marzo sono stati annunciati, e subito attuati, tagli per circa il 12%.&lt;/p&gt;  &lt;p&gt;Si passa quindi da &lt;strong&gt;$ 0,14/GB&lt;/strong&gt; a &lt;strong&gt;$ 0,125/GB&lt;/strong&gt; che in euro è &lt;strong&gt;€ &lt;/strong&gt;&lt;strong&gt;0,0887/GB&lt;/strong&gt;, con un risparmio quindi importante. In realtà la revisione è ben più articolata e, seguendo uno schema simile a quello di SQL Azure, è inversamente proporzionale rispetto alla quantità di dati utilizzata.&lt;/p&gt;  &lt;table style="line-height: 21px; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font-family: ; white-space: normal; orphans: 2; margin-bottom: 14px; color: ; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p style="margin: 0px 0px 14px"&gt;&lt;strong&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#000000"&gt;Impegno spazio di archiviazione&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p style="margin: 0px 0px 14px"&gt;&lt;strong&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#000000"&gt;Prezzo&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p style="margin: 0px 0px 14px"&gt;&lt;strong&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#000000"&gt;Tariffa standard scontata&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;         &lt;p style="margin: 0px 0px 14px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#000000"&gt;1 - 50 TB / mese&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p style="margin: 0px 0px 14px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#000000"&gt;€ 0,0781 / GB&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p style="margin: 0px 0px 14px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#000000"&gt;10,7%&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;         &lt;p style="margin: 0px 0px 14px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#000000"&gt;51 - 500 TB / mese&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p style="margin: 0px 0px 14px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#000000"&gt;€ 0,0681 / GB&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p style="margin: 0px 0px 14px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#000000"&gt;20%&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;         &lt;p style="margin: 0px 0px 14px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#000000"&gt;501 - 1.000 TB / mese&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p style="margin: 0px 0px 14px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#000000"&gt;€ 0,066 / GB&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p style="margin: 0px 0px 14px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#000000"&gt;26.4%&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;         &lt;p style="margin: 0px 0px 14px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#000000"&gt;1.001 TB - 5 PB / mese&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p style="margin: 0px 0px 14px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#000000"&gt;€ 0,0589 / GB&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p style="margin: 0px 0px 14px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#000000"&gt;29,3%&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;         &lt;p style="margin: 0px 0px 14px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#000000"&gt;Maggiore di 5 PB / mese&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p style="margin: 0px 0px 14px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt"&gt;&lt;font style="text-decoration: none" color="#000000"&gt;&lt;a title="[GMCP] Compose a new mail to Richiedere ulteriori informazioni" href="mailto:winazinqr@microsoft.com"&gt;Richiedere ulteriori informazioni&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p style="margin: 0px 0px 14px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt"&gt;&lt;font style="text-decoration: none" color="#000000"&gt;&lt;a title="[GMCP] Compose a new mail to Richiedere ulteriori informazioni" href="mailto:winazinqr@microsoft.com"&gt;Richiedere ulteriori informazioni&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Ma non basta. Un altro taglio del 50% riguarda la Extra-Small Instance che passa ora a &lt;strong&gt;€ 0,0142&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;A &lt;a href="https://www.windowsazure.com/it-it/pricing/details/" target="_blank"&gt;questa pagina&lt;/a&gt; trovate tutti i prezzi in euro aggiornati.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22945" width="1" height="1"&gt;</content><author><name>Fabio.Cozzolino</name><uri>http://dotnetside.org/members/Fabio.Cozzolino/default.aspx</uri></author><category term="Azure" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Azure/default.aspx" /><category term="Azure Storage Services" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Azure+Storage+Services/default.aspx" /><category term="Azure Prices" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Azure+Prices/default.aspx" /></entry><entry><title>Service Bus Explorer</title><link rel="alternate" type="text/html" href="/blogs/fabio/archive/2012/03/08/service-bus-explorer.aspx" /><id>/blogs/fabio/archive/2012/03/08/service-bus-explorer.aspx</id><published>2012-03-08T21:26:00Z</published><updated>2012-03-08T21:26:00Z</updated><content type="html">&lt;p&gt;"Rimbalzo" &lt;a href="http://ninocrudele.ugics.org/new-service-bus-explorer-released/"&gt;la notizia&lt;/a&gt; dal blog di &lt;a href="http://ninocrudele.ugics.org/"&gt;Nino Crudele&lt;/a&gt; che segnala l'uscita della nuova release del&lt;a href="http://code.msdn.microsoft.com/windowsazure/Service-Bus-Explorer-f2abca5a"&gt; Service Bus Explorer&lt;/a&gt;, il tool scritto da Paolo Salvatori che permette di gestire e testare il proprio Service Namespace.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;A &lt;a href="http://msdn.microsoft.com/en-us/library/hh532261(v=VS.103).aspx"&gt;questo link&lt;/a&gt; potete trovare l'articolo completo che ne spiega ampiamente le funzionalit&amp;agrave;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22944" width="1" height="1"&gt;</content><author><name>Fabio.Cozzolino</name><uri>http://dotnetside.org/members/Fabio.Cozzolino/default.aspx</uri></author><category term="Windows Azure AppFabric" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Windows+Azure+AppFabric/default.aspx" /><category term="Windows Azure" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Windows+Azure/default.aspx" /><category term="Service Bus" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Service+Bus/default.aspx" /></entry><entry><title>Dalle WCF Web API alle ASP.NET Web API</title><link rel="alternate" type="text/html" href="/blogs/fabio/archive/2012/02/18/dalle-wcf-web-api-alle-asp-net-web-api.aspx" /><id>/blogs/fabio/archive/2012/02/18/dalle-wcf-web-api-alle-asp-net-web-api.aspx</id><published>2012-02-18T17:39:09Z</published><updated>2012-02-18T17:39:09Z</updated><content type="html">&lt;p align="justify"&gt;Seguo da un po’ di tempo le evoluzioni delle WCF Web API, un framework che si poggia sull’infrastruttura di WCF per renderla meno ostica e facilmente estendibile, ma soprattutto adatta all’utilizzo di REST.&lt;/p&gt;  &lt;p align="justify"&gt;Quando sembrava che le WCF Web API sarebbero finalmente confluite all’interno di WCF 4.5, c’è stato un cambio di rotta: ASP.NET Web API. Le Web API, infatti, si sono sempre trovate in mezzo a due mondi: quello dei servizi (WCF) e quello web (ASP.NET). Il motivo per cui è stato infine scelto di far confluire il tutto in ASP.NET è riassunto nelle parole del comunicato comparso sul sito &lt;a href="http://wcf.codeplex.com/discussions/319671" target="_blank"&gt;WCF di codeplex&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p align="justify"&gt;&lt;em&gt;Web APIs have a foot in two worlds: the world of service orientation and the World Wide Web. We decided to align ASP.NET Web API with the rest of the Microsoft web platform, so we went with the brand that communicates this alignment. From a technical perspective we also decided to go with a new HTTP specific dispatcher instead of trying to carry forward the WCF dispatcher, so there is virtually no WCF code in the new stack.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="justify"&gt;Dal mio punto di vista, devo dire che non mi sembra la scelta migliore. Legare il concetto di Web API ad ASP.NET non mi sembra la strada corretta. Che significa? Che devo necessariamente utilizzare IIS? No, in realtà no, perchè posso utilizzare, in quel caso, il canale HTTP di WCF. Questo sembra generare già da ora confusione e i primi discorsi con qualche collega non fanno altro che confermarlo.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strike&gt;WCF&lt;/strike&gt; ASP.NET Web API, al di là di queste discussioni, sembra promettere diverse cose interessanti e nei prossimi giorni tornerò sicuramente su questo argomento.&lt;/p&gt;  &lt;p align="justify"&gt;Maggiori info le potete trovare &lt;a href="http://blogs.msdn.com/b/carlosfigueira/archive/2012/02/16/introducing-asp-net-mvc-4-beta-with-web-apis.aspx" target="_blank"&gt;qui&lt;/a&gt; e ovviamente anche &lt;a href="http://wcf.codeplex.com/documentation" target="_blank"&gt;qui&lt;/a&gt;. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22942" width="1" height="1"&gt;</content><author><name>Fabio.Cozzolino</name><uri>http://dotnetside.org/members/Fabio.Cozzolino/default.aspx</uri></author><category term="WCF" scheme="http://dotnetside.org/blogs/fabio/archive/tags/WCF/default.aspx" /><category term="REST" scheme="http://dotnetside.org/blogs/fabio/archive/tags/REST/default.aspx" /><category term="ASP.NET" scheme="http://dotnetside.org/blogs/fabio/archive/tags/ASP.NET/default.aspx" /><category term="Web API" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Web+API/default.aspx" /></entry><entry><title>Nuovi prezzi di SQL Azure</title><link rel="alternate" type="text/html" href="/blogs/fabio/archive/2012/02/16/nuovi-prezzi-di-sql-azure.aspx" /><id>/blogs/fabio/archive/2012/02/16/nuovi-prezzi-di-sql-azure.aspx</id><published>2012-02-16T06:47:00Z</published><updated>2012-02-16T06:47:00Z</updated><content type="html">&lt;p&gt;Qualche giorno fa &lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2012/02/14/announcing-reduced-pricing-on-sql-azure-and-new-100mb-database-option.aspx" target="_blank"&gt;è stata annunciato&lt;/a&gt; un nuovo taglio ai prezzi di SQL Azure. Questa la tabella di confronto:    &lt;br class="Apple-interchange-newline" /&gt;&lt;/p&gt;  &lt;p&gt;   &lt;table style="text-align: left; line-height: 21px; widows: 2; text-transform: none; background-color: rgb(224,224,224); text-indent: 0px; letter-spacing: normal; font-family: ; white-space: normal; orphans: 2; height: 295px; color: ; margin-left: 1px; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" border="1" cellspacing="2" cellpadding="2" width="518"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="20"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;b&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;GB&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="63"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;b&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;Previous Pricing&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="64"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;b&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;New Pricing&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="59"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;b&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;New Price/GB&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="55"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;b&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;Total % Decrease&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="20"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;5&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="63"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;€35,40&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="64"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;€18,43&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="59"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;€3,686&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="55"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;48%&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="20"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;10&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="63"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;€70,84&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="64"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;€32,66&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="59"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;€3,266&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="55"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;54%&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="20"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;25&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="63"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;€162,94&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="64"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;€53,85&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="59"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;€2,154&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="55"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;75%&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="20"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;50&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="63"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;€318,80*&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="64"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;€89,27&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="59"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;€1,785&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="55"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;75%&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="20"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;100&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="63"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;€318,80&lt;/font&gt;&lt;/font&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;*&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="64"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;€124,70&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="59"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;€1,247&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="55"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;65%&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="20"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;150&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="63"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;€318,80&lt;/font&gt;&lt;/font&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;*&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="64"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;€160,12&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="59"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;€1,067&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="55"&gt;           &lt;p style="margin-top: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#333333"&gt;55%&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;Oltre ai tagli, è stata annunciato anche un nuovo database size “entry-level” di 100MB, con un costo fisso di &lt;strong&gt;3,5425&lt;/strong&gt; euro al mese. Occhio, però, che il sistema di calcolo non è proprio rigido. Se il nostro DB occupa mediamente 3GB al mese, pagheremo la cifra parziale di &lt;strong&gt;12,753&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Il tutto è ben spiegato nella &lt;a href="https://www.windowsazure.com/it-it/pricing/details/#database" target="_blank"&gt;relativa sezione in questa pagina&lt;/a&gt; e che riporto per comodità e completezza:&lt;/p&gt;  &lt;blockquote&gt;   &lt;h4&gt;&lt;em&gt;Database, in base alle dimensioni del database:&lt;/em&gt;&lt;/h4&gt;    &lt;h5&gt;&lt;em&gt;Prezzo&lt;/em&gt;&lt;/h5&gt;    &lt;p&gt;&lt;em&gt;Il database di SQL Azure è fatturato in base a una tariffa progressiva basata sulle dimensioni del database. È disponibile in due edizioni: Web e Business. Il database Web Edition supporta fino a un massimo di 5 GB di database relazionale basato su T-SQL. Il database Business Edition supporta fino a una dimensione massima pari a 150 GB di database relazionale basato su T-SQL.&lt;/em&gt;&lt;/p&gt;    &lt;br class="Apple-interchange-newline" /&gt;    &lt;table style="line-height: 21px; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font-family: ; white-space: normal; orphans: 2; margin-bottom: 14px; color: ; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="tbl-standard"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;th style="padding-right: 20px" align="left"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#666666"&gt;Dimensioni del database&lt;/font&gt;&lt;/font&gt;&lt;/th&gt;          &lt;th style="padding-right: 20px" align="left"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#666666"&gt;Prezzo per database al mese&lt;/font&gt;&lt;/font&gt;&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td style="padding-right: 20px" align="left"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#666666"&gt;da 0 a 100 MB&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;          &lt;td style="padding-right: 20px" align="left"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#666666"&gt;Fisso € 3,5425&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td style="padding-right: 20px" align="left"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#666666"&gt;Maggiore di 100 MB fino a 1 GB&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;          &lt;td style="padding-right: 20px" align="left"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#666666"&gt;Fisso € 7,085&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td style="padding-right: 20px" align="left"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#666666"&gt;Maggiore di 1 GB fino a 10 GB&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;          &lt;td style="padding-right: 20px" align="left"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#666666"&gt;€ 7,085 per il primo GB, € 2,834 per ogni GB aggiuntivo&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td style="padding-right: 20px" align="left"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#666666"&gt;Maggiore di 10 GB fino a 50 GB&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;          &lt;td style="padding-right: 20px" align="left"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#666666"&gt;€ 32,5906 per i primi 10 GB, € 1,417 per ogni GB aggiuntivo&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td style="padding-right: 20px" align="left"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#666666"&gt;Maggiore di 50 GB fino a 150 GB&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;          &lt;td style="padding-right: 20px" align="left"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 10.5pt" color="#666666"&gt;€ 89,2699 per i primi 50 GB, € 0,7085 per ogni GB aggiuntivo&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;    &lt;h5&gt;&lt;em&gt;Dettagli fatturazione&lt;/em&gt;&lt;/h5&gt;    &lt;p&gt;&lt;em&gt;Per l'utilizzo di ogni database SQL Azure viene addebitata una tariffa mensile, la quale viene tuttavia ammortizzata sul mese e calcolata su base giornaliera. Per database maggiori di un 1 GB, i costi verranno addebitati nel successivo incremento da un gigabyte. Se ad esempio sono stati utilizzati due database Business Edition, uno da 4,4 GB e uno da 14,4 GB per 1 giorno in un mese di fatturazione, si verrà addebitati per 5 GB e 15 GB di database per tale giorno per un totale di € 1,8745. Di seguito sono riportati i calcoli:&lt;/em&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;em&gt;5 GB: (€ 7,085 per il primo GB + € 2,834 per GB per i 4 GB successivi) / 31 giorni = € 0,5944 &lt;/em&gt;&lt;/li&gt;      &lt;li&gt;&lt;em&gt;15 GB: (€ 32,5906 per i primi 10 GB + € 1,417 per GB per i 5 GB successivi) / 31 giorni = € 1,2802&lt;/em&gt;&lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;Per maggiori informazioni sui prezzi di Windows Azure:   &lt;br /&gt;&lt;a href="https://www.windowsazure.com/it-it/pricing/details/#top" target="_blank"&gt;https://www.windowsazure.com/it-it/pricing/details/#top&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22939" width="1" height="1"&gt;</content><author><name>Fabio.Cozzolino</name><uri>http://dotnetside.org/members/Fabio.Cozzolino/default.aspx</uri></author><category term="SQL Azure" scheme="http://dotnetside.org/blogs/fabio/archive/tags/SQL+Azure/default.aspx" /><category term="Windows Azure" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Windows+Azure/default.aspx" /></entry><entry><title>Utilizzare il Windows Azure Content Delivery Network</title><link rel="alternate" type="text/html" href="/blogs/fabio/archive/2012/02/10/utilizzare-il-windows-azure-content-delivery-network.aspx" /><id>/blogs/fabio/archive/2012/02/10/utilizzare-il-windows-azure-content-delivery-network.aspx</id><published>2012-02-10T06:18:00Z</published><updated>2012-02-10T06:18:00Z</updated><content type="html">&lt;p align="justify"&gt;Windows Azure CDN è un sistema che consente di spostare i contenuti dei blobs in un nodo di “caching” geograficamente localizzato in prossimità dell’utente che consuma quell’informazione. In sostanza invece di accedere al datacenter in cui si trova il dato, ad esempio un’immagine, la richiesta viene servita da un altro datacenter.&lt;/p&gt;  &lt;p align="justify"&gt;Sono due i vantaggi che derivano da questo utilizzo:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;div align="justify"&gt;Miglioramento delle performance perchè il dato è geograficamente più vicino;&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Miglioramento della scalabilità, dato che il carico di richieste non grava più su un unico datacenter, ma viene distribuito sui diversi nodi della rete;&lt;/div&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p align="justify"&gt;I nodi del CDN sono circa 24 sparsi nel mondo, mentre i datacenter di Azure sono 6. Dal punto di vista dei costi, sono identici a quelli degli Storage Services, il che non cambia nulla in termini di “spesa” mensile.&lt;/p&gt;  &lt;p align="justify"&gt;Ma come possiamo utilizzare il CDN? Dopo averlo &lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2009/11/05/introducing-the-windows-azure-content-delivery-network.aspx" target="_blank"&gt;attivato&lt;/a&gt;, se abbiamo scritto bene il codice per recuperare la stringa di connessione per l’accesso ai Blob Services, utilizzando questa sintassi:&lt;/p&gt;  &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; CloudStorageAccount account;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; account = CloudStorageAccount.FromConfigurationSetting(&lt;span style="color: #006080"&gt;&amp;quot;StorageConnection&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt; var client = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CloudBlobClient(account.BlobEndpoint, account.Credentials);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p align="justify"&gt;praticamente non dobbiamo far altro che modificare la stringa di connessione, anche con la nostra applicazione in produzione, aggiungendo il BlobEndpoint (&lt;strong&gt;BlobEndpoint=http://cdn.mycustomdomain.it&lt;/strong&gt;) che abbiamo assegnato al CDN:&lt;/p&gt;

&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #800000"&gt;xml&lt;/span&gt; &lt;span style="color: #ff0000"&gt;version&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;1.0&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;encoding&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;utf-16&amp;quot;&lt;/span&gt;?&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ServiceConfiguration&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns:xsi&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns:xsd&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;serviceName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;osFamily&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;2&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;osVersion&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;*&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Role&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;MyCloudApp&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ConfigurationSettings&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Setting&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Storage&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;DefaultEndpointsProtocol=http;AccountName=myaccount;AccountKey=ah7ym..z5u==;BlobEndpoint=http://cdn.mycustomdomain.it&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ConfigurationSettings&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;     &lt;span style="color: #008000"&gt;&amp;lt;!-- other settings --&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Role&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ServiceConfiguration&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p align="justify"&gt;Giusto il tempo di aggiornare gli le istanze ed il gioco è fatto &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://dotnetside.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fabio/wlEmoticon_2D00_smile_5F00_37B6EE64.png" /&gt;&lt;/p&gt;

&lt;p align="justify"&gt;Per approfondimenti: &lt;a href="https://www.windowsazure.com/en-us/home/tour/cdn/"&gt;https://www.windowsazure.com/en-us/home/tour/cdn/&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22938" width="1" height="1"&gt;</content><author><name>Fabio.Cozzolino</name><uri>http://dotnetside.org/members/Fabio.Cozzolino/default.aspx</uri></author><category term="Azure" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Azure/default.aspx" /><category term="Windows Azure CDN" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Windows+Azure+CDN/default.aspx" /><category term="Windows Azure Storage Services" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Windows+Azure+Storage+Services/default.aspx" /></entry><entry><title>Windows Azure SDK e Compute Emulator: gestione degli indirizzi locali</title><link rel="alternate" type="text/html" href="/blogs/fabio/archive/2012/02/09/windows-azure-sdk-e-compute-emulator-gestione-degli-indirizzi-locali.aspx" /><id>/blogs/fabio/archive/2012/02/09/windows-azure-sdk-e-compute-emulator-gestione-degli-indirizzi-locali.aspx</id><published>2012-02-09T17:48:00Z</published><updated>2012-02-09T17:48:00Z</updated><content type="html">&lt;p align="justify"&gt;Stimolato da un &lt;a href="http://bit.ly/A5pSo9" target="_blank"&gt;tweet&lt;/a&gt; di oggi del buon &lt;a href="http://letsfollowtheyellowbrickroad.blogspot.com/" target="_blank"&gt;Giorgio&lt;/a&gt;, ho riesumato questo vecchio post che avevo in coda da un po’ di tempo.&lt;/p&gt;  &lt;p align="justify"&gt;Fino alla versione 1.4, il Compute Emulator, l’ambiente di simulazione locale dell’infrastruttura di Windows Azure, non aveva la gestione del Load Balancer e ogni istanza veniva allocata con lo stesso indirizzo IP (127.0.0.1) ma con porte differenti ed incrementali: 81, 82, 83, e così via…&lt;/p&gt;  &lt;p align="justify"&gt;Dalla versione 1.5, invece, al fine di replicare quanto più possibile l’ambiente di produzione cloud, al Load Balancer viene assegnato, se non diversamente configurato, l’IP 127.0.0.1 con la porta 81 (incrementale se già occupata), mentre ai vari nodi l’indirizzo assegnato sarà diverso, tipicamente l’IP 127.255.0.0, con la porta 82 che questa volta sarà sempre la stessa. Quattro istanze, ad esempio, saranno così suddivise:&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="401"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="139"&gt;&amp;nbsp;&lt;/td&gt;        &lt;td valign="top" width="142"&gt;&lt;strong&gt;Indirizzo&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="118"&gt;&lt;strong&gt;Porta&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="139"&gt;Load Balancer&lt;/td&gt;        &lt;td valign="top" width="142"&gt;127.0.0.1&lt;/td&gt;        &lt;td valign="top" width="118"&gt;81&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="139"&gt;Nodo 1&lt;/td&gt;        &lt;td valign="top" width="142"&gt;127.255.0.0&lt;/td&gt;        &lt;td valign="top" width="118"&gt;82&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="139"&gt;Nodo 2&lt;/td&gt;        &lt;td valign="top" width="142"&gt;127.255.0.1&lt;/td&gt;        &lt;td valign="top" width="118"&gt;82&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="139"&gt;Nodo 3&lt;/td&gt;        &lt;td valign="top" width="142"&gt;127.255.0.3&lt;/td&gt;        &lt;td valign="top" width="118"&gt;82&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="139"&gt;Nodo 4&lt;/td&gt;        &lt;td valign="top" width="153"&gt;127.255.0.4&lt;/td&gt;        &lt;td valign="top" width="149"&gt;82&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p align="justify"&gt;Questa nuova modalità genera però alcune problematiche negli applicativi che recuperano l’indirizzo IP utilizzando l’HttpRequest e le proprietà come SERVER_PORT o LOCAL_ADDR. In questo caso, ovviamente, la porta e l’indirizzo sono quelle del nodo su cui l’applicativo è in esecuzione.&lt;/p&gt;  &lt;p align="justify"&gt;Per ovviare al problema è sufficiente recuperare utilizzare le proprietà host e port di Request.Uri per accedere ai relativi headers contenuti nella richiesta HTTP, che conterranno i valori corretti del load balancer proprio perchè è lì che viene inviata la richiesta:&lt;/p&gt;    &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; HttpRequest request = HttpContext.Current.Request;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; var builder = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; UriBuilder(request.Url.Scheme, request.Url.Host, request.Url.Port);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Infine per comodità utilizzo un UriBuilder.&lt;/p&gt;

&lt;p&gt;Fabio&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22937" width="1" height="1"&gt;</content><author><name>Fabio.Cozzolino</name><uri>http://dotnetside.org/members/Fabio.Cozzolino/default.aspx</uri></author><category term="Azure" scheme="http://dotnetside.org/blogs/fabio/archive/tags/Azure/default.aspx" /></entry></feed>