<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:georss="http://www.georss.org/georss" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Mick's Breeze Blogs - Biztalk/Sharepoint/...</title>
    <link>http://blogs.breeze.net/mickb/</link>
    <description>Things hard and not so hard....</description>
    <language>en-us</language>
    <copyright>Breeze</copyright>
    <lastBuildDate>Thu, 02 Feb 2012 06:44:20 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>mickb@breezetraining.com.au</managingEditor>
    <webMaster>mickb@breezetraining.com.au</webMaster>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=a2534859-5ae2-4c5a-8a07-096f5a47193f</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,a2534859-5ae2-4c5a-8a07-096f5a47193f.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,a2534859-5ae2-4c5a-8a07-096f5a47193f.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=a2534859-5ae2-4c5a-8a07-096f5a47193f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
After ranting on a couple of emails today about a particular Azure issue, I’ve popped
up a couple of features to vote on.
</p>
        <p>
          <a title="http://www.mygreatwindowsazureidea.com/forums/34192-windows-azure-feature-voting" href="http://www.mygreatwindowsazureidea.com/forums/34192-windows-azure-feature-voting">http://www.mygreatwindowsazureidea.com/forums/34192-windows-azure-feature-voting</a>
        </p>
        <p>
Add yours now
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=a2534859-5ae2-4c5a-8a07-096f5a47193f" />
      </body>
      <title>Azure: My Great Windows Azure Idea</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,a2534859-5ae2-4c5a-8a07-096f5a47193f.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/02/02/AzureMyGreatWindowsAzureIdea.aspx</link>
      <pubDate>Thu, 02 Feb 2012 06:44:20 GMT</pubDate>
      <description>&lt;p&gt;
After ranting on a couple of emails today about a particular Azure issue, I’ve popped
up a couple of features to vote on.
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.mygreatwindowsazureidea.com/forums/34192-windows-azure-feature-voting" href="http://www.mygreatwindowsazureidea.com/forums/34192-windows-azure-feature-voting"&gt;http://www.mygreatwindowsazureidea.com/forums/34192-windows-azure-feature-voting&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Add yours now
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=a2534859-5ae2-4c5a-8a07-096f5a47193f" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,a2534859-5ae2-4c5a-8a07-096f5a47193f.aspx</comments>
      <category>Azure</category>
      <category>Azure/ServiceBus</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=7d63e5d6-8f80-4ec4-98cc-af690ff77155</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,7d63e5d6-8f80-4ec4-98cc-af690ff77155.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,7d63e5d6-8f80-4ec4-98cc-af690ff77155.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=7d63e5d6-8f80-4ec4-98cc-af690ff77155</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
With the ever changing Azure space, chances are you’ve had services working a treat
and then one day just fail.
</p>
        <p>
“Can’t connect…" etc.
</p>
        <p>
This has happened to me twice this week – with over 14 IP Address ranges defined in
the client’s firewall rules.
</p>
        <p>
It appears that my service bus services were spun up or assigned another IP outside
the ‘allowed range’.
</p>
        <p>
It gets frustrating at times as generally the process goes as follows:
</p>
        <p>
1) fill out a form to request firewall changes. Include as much detail as possible.
</p>
        <p>
2) hand to the client and they delegate to their security/ops team to implement.
</p>
        <p>
3) confirmation comes back.
</p>
        <p>
4) start up ServiceBus service
</p>
        <p>
5) could work?? may fail – due to *another* IP address allocated in Windows Azure
not on the ‘allowed list of ranges’.
</p>
        <p>
6) fill out another form asking for another IP Address…<br />
…<br />
By the 3rd iteration of this process it all is beginning to look very unprofessional.
(in comparison, these guys are used to tasks such as ‘Access to SQL Server XXX – here’s
the ports, there’s the machine and done’. Azure on the other hand – ‘What IP Addresses
do you need? What ports?’… we need better information in this area)
</p>
        <p>
Anyway – here’s the most update to date list 10/02/2011.
</p>
        <p>
          <a title="http://blogs.msdn.com/b/windowsazureappfabricannounce/archive/2010/01/28/additional-data-centers-for-windows-azure-platform-appfabric.aspx" href="http://blogs.msdn.com/b/windowsazureappfabricannounce/archive/2010/01/28/additional-data-centers-for-windows-azure-platform-appfabric.aspx">http://blogs.msdn.com/b/windowsazureappfabricannounce/archive/2010/01/28/additional-data-centers-for-windows-azure-platform-appfabric.aspx</a>
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=7d63e5d6-8f80-4ec4-98cc-af690ff77155" />
      </body>
      <title>Azure: Current IP Range of Data Centers</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,7d63e5d6-8f80-4ec4-98cc-af690ff77155.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/02/02/AzureCurrentIPRangeOfDataCenters.aspx</link>
      <pubDate>Thu, 02 Feb 2012 02:15:07 GMT</pubDate>
      <description>&lt;p&gt;
With the ever changing Azure space, chances are you’ve had services working a treat
and then one day just fail.
&lt;/p&gt;
&lt;p&gt;
“Can’t connect…" etc.
&lt;/p&gt;
&lt;p&gt;
This has happened to me twice this week – with over 14 IP Address ranges defined in
the client’s firewall rules.
&lt;/p&gt;
&lt;p&gt;
It appears that my service bus services were spun up or assigned another IP outside
the ‘allowed range’.
&lt;/p&gt;
&lt;p&gt;
It gets frustrating at times as generally the process goes as follows:
&lt;/p&gt;
&lt;p&gt;
1) fill out a form to request firewall changes. Include as much detail as possible.
&lt;/p&gt;
&lt;p&gt;
2) hand to the client and they delegate to their security/ops team to implement.
&lt;/p&gt;
&lt;p&gt;
3) confirmation comes back.
&lt;/p&gt;
&lt;p&gt;
4) start up ServiceBus service
&lt;/p&gt;
&lt;p&gt;
5) could work?? may fail – due to *another* IP address allocated in Windows Azure
not on the ‘allowed list of ranges’.
&lt;/p&gt;
&lt;p&gt;
6) fill out another form asking for another IP Address…&lt;br&gt;
…&lt;br&gt;
By the 3rd iteration of this process it all is beginning to look very unprofessional.
(in comparison, these guys are used to tasks such as ‘Access to SQL Server XXX – here’s
the ports, there’s the machine and done’. Azure on the other hand – ‘What IP Addresses
do you need? What ports?’… we need better information in this area)
&lt;/p&gt;
&lt;p&gt;
Anyway – here’s the most update to date list 10/02/2011.
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://blogs.msdn.com/b/windowsazureappfabricannounce/archive/2010/01/28/additional-data-centers-for-windows-azure-platform-appfabric.aspx" href="http://blogs.msdn.com/b/windowsazureappfabricannounce/archive/2010/01/28/additional-data-centers-for-windows-azure-platform-appfabric.aspx"&gt;http://blogs.msdn.com/b/windowsazureappfabricannounce/archive/2010/01/28/additional-data-centers-for-windows-azure-platform-appfabric.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=7d63e5d6-8f80-4ec4-98cc-af690ff77155" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,7d63e5d6-8f80-4ec4-98cc-af690ff77155.aspx</comments>
      <category>.NET Developer</category>
      <category>Azure</category>
      <category>Azure/Integration</category>
      <category>Azure/ServiceBus</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=6b6ec403-2e44-4bfa-9882-b9aef66a76d1</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,6b6ec403-2e44-4bfa-9882-b9aef66a76d1.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,6b6ec403-2e44-4bfa-9882-b9aef66a76d1.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=6b6ec403-2e44-4bfa-9882-b9aef66a76d1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Scotty &amp; myself have had this error going for over 2 weeks now, and have tried
many options, settings, registry keys, reboots and so on.<br />
(we have had this on 2 boxes now, that are *not* directly connected to the internet.
They are locked down servers with only required services accessible through the firewall)
</p>
        <p>
Generally you’ll encounter this error is you install <strong>Azure SDK v1.6</strong> –
there has been people that have revert back to <strong>Azure v1.5 SDK</strong> when
this error has been encountered and this seems to fix most of their problems.
</p>
        <p>
Here I’m using <strong>netTcpRelayBinding,</strong><strong>BizTalk 2010</strong> but
this could just have easily have been IIS or your own app.
</p>
        <p>
Finding the outbound ports and Azure datacenter address space is always the challenge.
Ports 80,443,9351 and 9352 are the main ones with the remote addresses being the network
segments of your Azure Datacenter.
</p>
        <p>
          <strong>The problem: “Oh it’s a chain validation thing, I’ll just go and turn off
Certificate checking…” </strong>let me see the options.<br />
(this is what we thought 2+ weeks ago)
</p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-ServiceBus_C204/image_4.png">
            <img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-ServiceBus_C204/image_thumb_1.png" width="553" height="584" />
          </a>
        </p>
        <p>
Here I have a BizTalk shot of the <strong>transportClientEndpointBehaviour</strong> with <strong>Authentication
node </strong>set to <strong>NoCheck and None</strong> (you would set these from code
or a config file outside of biztalk)<br /><br /><strong>We found that these currently have NO BEARING whatsoever…</strong>2 weeks
we’ll never get back.<br /><br />
Don’t be drawn into here, it’s a long windy path and you’ll most likely end up short.
</p>
        <p>
          <strong>I am currently waiting to hear back from the folks on the product team to
see what the answer is on this – BUT for now as a workaround we sat down with a network
sniffer to see the characteristics.</strong>
        </p>
        <p>
          <strong>Work around:</strong>
        </p>
        <p>
1. Add some <strong>Host Entries</strong></p>
        <p>
2. Create a dummy site so the checker is fooled into grabbing local CRLs.
</p>
        <p>
          <strong>Add these Entries to your HOSTs file</strong>.
</p>
        <p>
127.0.0.1    www.public-trust.com<br />
127.0.0.1    mscrl.microsoft.com<br />
127.0.0.1    crl.microsoft.com<br />
127.0.0.1    corppki
</p>
        <p>
          <strong>Download and extract these directories to your DEFAULT WEB SITE</strong> (i.e.
the one that answers to <a href="http://127.0.0.1/">http://127.0.0.1/</a>…..)<br />
This is usually under <strong>C:\inetpub\wwwroot </strong>(even if you have sharepoint
installed)<br /><iframe title="Preview" style="padding-bottom: 0px; padding-top: 0px; padding-left: 0px; padding-right: 0px; background-color: #fcfcfc" height="120" marginheight="0" src="https://skydrive.live.com/embed?cid=CAF608907D66AB49&amp;resid=CAF608907D66AB49%21216&amp;authkey=AKfISBLWiygZCQg" frameborder="0" width="98" marginwidth="0" scrolling="no"></iframe><br /><br /><br /><br /><strong>-------------------- The nasty error -------------------</strong></p>
        <p>
The Messaging Engine failed to add a receive location "&lt;receive location&gt;" with
URL "sb://&lt;rec url&gt;" to the adapter "WCF-Custom". Reason: "System.ServiceModel.Security.SecurityNegotiationException: <strong>The
X.509 certificate CN=servicebus.windows.net chain building failed</strong>. The certificate
that was used has a trust chain that cannot be verified. Replace the certificate or
change the certificateValidationMode. The revocation function was unable to check
revocation because the revocation server was offline.<br />
---&gt; System.IdentityModel.Tokens.SecurityTokenValidationException: The X.509 certificate
CN=servicebus.windows.net chain building failed. The certificate that was used has
a trust chain that cannot be verified. Replace the certificate or change the certificateValidationMode. <strong>The
revocation function was unable to check revocation because the revocation server was
offline.</strong></p>
        <p>
   at Microsoft.ServiceBus.Channels.Security.RetriableCertificateValidator.Validate(X509Certificate2
certificate)<br />
   at System.IdentityModel.Selectors.X509SecurityTokenAuthenticator.ValidateTokenCore(SecurityToken
token)<br />
   at System.IdentityModel.Selectors.SecurityTokenAuthenticator.ValidateToken(SecurityToken
token)<br />
   at System.ServiceModel.Channels.SslStreamSecurityUpgradeInitiator.ValidateRemoteCertificate(Object
sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)<br />
   at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback
remoteCertValidationCallback)<br />
   at System.Net.Security.SslState.CompleteHandshake()<br />
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken
message, AsyncProtocolRequest asyncRequest)<br />
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32
count, AsyncProtocolRequest asyncRequest)<br />
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32
count, AsyncProtocolRequest asyncRequest)<br />
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest
asyncRequest)<br />
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32
count, AsyncProtocolRequest asyncRequest)<br />
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32
count, AsyncProtocolRequest asyncRequest)<br />
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest
asyncRequest)<br />
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32
count, AsyncProtocolRequest asyncRequest)<br />
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32
count, AsyncProtocolRequest asyncRequest)<br />
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest
asyncRequest)<br />
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32
count, AsyncProtocolRequest asyncRequest)<br />
   at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst,
Byte[] buffer, AsyncProtocolRequest asyncRequest)<br />
   at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult
lazyResult)<br />
   at System.ServiceModel.Channels.SslStreamSecurityUpgradeInitiator.OnInitiateUpgrade(Stream
stream, SecurityMessageProperty&amp; remoteSecurity)<br />
   --- End of inner exception stack trace ---<br />
   at System.ServiceModel.Channels.SslStreamSecurityUpgradeInitiator.OnInitiateUpgrade(Stream
stream, SecurityMessageProperty&amp; remoteSecurity)<br />
   at System.ServiceModel.Channels.StreamSecurityUpgradeInitiatorBase.InitiateUpgrade(Stream
stream)<br />
   at System.ServiceModel.Channels.ConnectionUpgradeHelper.InitiateUpgrade(StreamUpgradeInitiator
upgradeInitiator, IConnection&amp; connection, ClientFramingDecoder decoder, IDefaultCommunicationTimeouts
defaultTimeouts, TimeoutHelper&amp; timeoutHelper)<br />
   at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.SendPreamble(IConnection
connection, ArraySegment`1 preamble, TimeoutHelper&amp; timeoutHelper)<br />
   at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.DuplexConnectionPoolHelper.AcceptPooledConnection(IConnection
connection, TimeoutHelper&amp; timeoutHelper)<br />
   at System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan
timeout)<br />
   at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen(TimeSpan
timeout)<br />
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)<br />
   at Microsoft.ServiceBus.RelayedOnewayTcpClient.RelayedOnewayChannel.Open(TimeSpan
timeout)<br />
   at Microsoft.ServiceBus.RelayedOnewayTcpClient.GetChannel(Uri via, TimeSpan
timeout)<br />
   at Microsoft.ServiceBus.RelayedOnewayTcpClient.ConnectRequestReplyContext.Send(Message
message, TimeSpan timeout, IDuplexChannel&amp; channel)<br />
   at Microsoft.ServiceBus.RelayedOnewayTcpListener.RelayedOnewayTcpListenerClient.Connect(TimeSpan
timeout)<br />
   at Microsoft.ServiceBus.RelayedOnewayTcpClient.EnsureConnected(TimeSpan
timeout)<br />
   at Microsoft.ServiceBus.Channels.CommunicationObject.Open(TimeSpan timeout)<br />
   at Microsoft.ServiceBus.Channels.RefcountedCommunicationObject.Open(TimeSpan
timeout)<br />
   at Microsoft.ServiceBus.RelayedOnewayChannelListener.OnOpen(TimeSpan
timeout)<br />
   at Microsoft.ServiceBus.Channels.CommunicationObject.Open(TimeSpan timeout)<br />
   at System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout)<br />
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)<br />
   at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)<br />
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)<br />
   at Microsoft.ServiceBus.SocketConnectionTransportManager.OnOpen(TimeSpan
timeout)<br />
   at Microsoft.ServiceBus.Channels.TransportManager.Open(TimeSpan timeout,
TransportChannelListener channelListener)<br />
   at Microsoft.ServiceBus.Channels.TransportManagerContainer.Open(TimeSpan
timeout, SelectTransportManagersCallback selectTransportManagerCallback)<br />
   at Microsoft.ServiceBus.SocketConnectionChannelListener`2.OnOpen(TimeSpan
timeout)<br />
   at Microsoft.ServiceBus.Channels.CommunicationObject.Open(TimeSpan timeout)<br />
   at System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout)<br />
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)<br />
   at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)<br />
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)<br />
   at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiveEndpoint.Enable()<br />
   at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiveEndpoint..ctor(BizTalkEndpointContext
endpointContext, IBTTransportProxy transportProxy, ControlledTermination control)<br />
   at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiver`2.AddReceiveEndpoint(String
url, IPropertyBag adapterConfig, IPropertyBag bizTalkConfig)".
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=6b6ec403-2e44-4bfa-9882-b9aef66a76d1" />
      </body>
      <title>Azure ServiceBus: Fixing the dreaded ‘The X.509 certificate CN=servicebus.windows.net chain building failed’ error</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,6b6ec403-2e44-4bfa-9882-b9aef66a76d1.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/01/31/AzureServiceBusFixingTheDreadedTheX509CertificateCNservicebuswindowsnetChainBuildingFailedError.aspx</link>
      <pubDate>Tue, 31 Jan 2012 03:08:41 GMT</pubDate>
      <description>&lt;p&gt;
Scotty &amp;amp; myself have had this error going for over 2 weeks now, and have tried
many options, settings, registry keys, reboots and so on.&lt;br&gt;
(we have had this on 2 boxes now, that are *not* directly connected to the internet.
They are locked down servers with only required services accessible through the firewall)
&lt;/p&gt;
&lt;p&gt;
Generally you’ll encounter this error is you install &lt;strong&gt;Azure SDK v1.6&lt;/strong&gt; –
there has been people that have revert back to &lt;strong&gt;Azure v1.5 SDK&lt;/strong&gt; when
this error has been encountered and this seems to fix most of their problems.
&lt;/p&gt;
&lt;p&gt;
Here I’m using &lt;strong&gt;netTcpRelayBinding,&lt;/strong&gt; &lt;strong&gt;BizTalk 2010&lt;/strong&gt; but
this could just have easily have been IIS or your own app.
&lt;/p&gt;
&lt;p&gt;
Finding the outbound ports and Azure datacenter address space is always the challenge.
Ports 80,443,9351 and 9352 are the main ones with the remote addresses being the network
segments of your Azure Datacenter.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The problem: “Oh it’s a chain validation thing, I’ll just go and turn off
Certificate checking…” &lt;/strong&gt;let me see the options.&lt;br&gt;
(this is what we thought 2+ weeks ago)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-ServiceBus_C204/image_4.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-ServiceBus_C204/image_thumb_1.png" width="553" height="584"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Here I have a BizTalk shot of the &lt;strong&gt;transportClientEndpointBehaviour&lt;/strong&gt; with &lt;strong&gt;Authentication
node &lt;/strong&gt;set to &lt;strong&gt;NoCheck and None&lt;/strong&gt; (you would set these from code
or a config file outside of biztalk)&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;We found that these currently have NO BEARING whatsoever…&lt;/strong&gt;2 weeks
we’ll never get back.&lt;br&gt;
&lt;br&gt;
Don’t be drawn into here, it’s a long windy path and you’ll most likely end up short.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;I am currently waiting to hear back from the folks on the product team to
see what the answer is on this – BUT for now as a workaround we sat down with a network
sniffer to see the characteristics.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Work around:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
1. Add some &lt;strong&gt;Host Entries&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
2. Create a dummy site so the checker is fooled into grabbing local CRLs.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Add these Entries to your HOSTs file&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
127.0.0.1&amp;nbsp;&amp;nbsp;&amp;nbsp; www.public-trust.com&lt;br&gt;
127.0.0.1&amp;nbsp;&amp;nbsp;&amp;nbsp; mscrl.microsoft.com&lt;br&gt;
127.0.0.1&amp;nbsp;&amp;nbsp;&amp;nbsp; crl.microsoft.com&lt;br&gt;
127.0.0.1&amp;nbsp;&amp;nbsp;&amp;nbsp; corppki
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Download and extract these directories to your DEFAULT WEB SITE&lt;/strong&gt; (i.e.
the one that answers to &lt;a href="http://127.0.0.1/"&gt;http://127.0.0.1/&lt;/a&gt;…..)&lt;br&gt;
This is usually under &lt;strong&gt;C:\inetpub\wwwroot &lt;/strong&gt;(even if you have sharepoint
installed)&lt;br&gt;
&lt;iframe title="Preview" style="padding-bottom: 0px; padding-top: 0px; padding-left: 0px; padding-right: 0px; background-color: #fcfcfc" height="120" marginheight="0" src="https://skydrive.live.com/embed?cid=CAF608907D66AB49&amp;amp;resid=CAF608907D66AB49%21216&amp;amp;authkey=AKfISBLWiygZCQg" frameborder="0" width="98" marginwidth="0" scrolling="no"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;-------------------- The nasty error -------------------&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The Messaging Engine failed to add a receive location "&amp;lt;receive location&amp;gt;" with
URL "sb://&amp;lt;rec url&amp;gt;" to the adapter "WCF-Custom". Reason: "System.ServiceModel.Security.SecurityNegotiationException: &lt;strong&gt;The
X.509 certificate CN=servicebus.windows.net chain building failed&lt;/strong&gt;. The certificate
that was used has a trust chain that cannot be verified. Replace the certificate or
change the certificateValidationMode. The revocation function was unable to check
revocation because the revocation server was offline.&lt;br&gt;
---&amp;gt; System.IdentityModel.Tokens.SecurityTokenValidationException: The X.509 certificate
CN=servicebus.windows.net chain building failed. The certificate that was used has
a trust chain that cannot be verified. Replace the certificate or change the certificateValidationMode. &lt;strong&gt;The
revocation function was unable to check revocation because the revocation server was
offline.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp; at Microsoft.ServiceBus.Channels.Security.RetriableCertificateValidator.Validate(X509Certificate2
certificate)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.IdentityModel.Selectors.X509SecurityTokenAuthenticator.ValidateTokenCore(SecurityToken
token)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.IdentityModel.Selectors.SecurityTokenAuthenticator.ValidateToken(SecurityToken
token)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.ServiceModel.Channels.SslStreamSecurityUpgradeInitiator.ValidateRemoteCertificate(Object
sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback
remoteCertValidationCallback)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.Net.Security.SslState.CompleteHandshake()&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken
message, AsyncProtocolRequest asyncRequest)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32
count, AsyncProtocolRequest asyncRequest)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32
count, AsyncProtocolRequest asyncRequest)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest
asyncRequest)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32
count, AsyncProtocolRequest asyncRequest)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32
count, AsyncProtocolRequest asyncRequest)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest
asyncRequest)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32
count, AsyncProtocolRequest asyncRequest)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32
count, AsyncProtocolRequest asyncRequest)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest
asyncRequest)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32
count, AsyncProtocolRequest asyncRequest)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst,
Byte[] buffer, AsyncProtocolRequest asyncRequest)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult
lazyResult)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.ServiceModel.Channels.SslStreamSecurityUpgradeInitiator.OnInitiateUpgrade(Stream
stream, SecurityMessageProperty&amp;amp; remoteSecurity)&lt;br&gt;
&amp;nbsp;&amp;nbsp; --- End of inner exception stack trace ---&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.ServiceModel.Channels.SslStreamSecurityUpgradeInitiator.OnInitiateUpgrade(Stream
stream, SecurityMessageProperty&amp;amp; remoteSecurity)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.ServiceModel.Channels.StreamSecurityUpgradeInitiatorBase.InitiateUpgrade(Stream
stream)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.ServiceModel.Channels.ConnectionUpgradeHelper.InitiateUpgrade(StreamUpgradeInitiator
upgradeInitiator, IConnection&amp;amp; connection, ClientFramingDecoder decoder, IDefaultCommunicationTimeouts
defaultTimeouts, TimeoutHelper&amp;amp; timeoutHelper)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.SendPreamble(IConnection
connection, ArraySegment`1 preamble, TimeoutHelper&amp;amp; timeoutHelper)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.DuplexConnectionPoolHelper.AcceptPooledConnection(IConnection
connection, TimeoutHelper&amp;amp; timeoutHelper)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan
timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen(TimeSpan
timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at Microsoft.ServiceBus.RelayedOnewayTcpClient.RelayedOnewayChannel.Open(TimeSpan
timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at Microsoft.ServiceBus.RelayedOnewayTcpClient.GetChannel(Uri via, TimeSpan
timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at Microsoft.ServiceBus.RelayedOnewayTcpClient.ConnectRequestReplyContext.Send(Message
message, TimeSpan timeout, IDuplexChannel&amp;amp; channel)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at Microsoft.ServiceBus.RelayedOnewayTcpListener.RelayedOnewayTcpListenerClient.Connect(TimeSpan
timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at Microsoft.ServiceBus.RelayedOnewayTcpClient.EnsureConnected(TimeSpan
timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at Microsoft.ServiceBus.Channels.CommunicationObject.Open(TimeSpan timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at Microsoft.ServiceBus.Channels.RefcountedCommunicationObject.Open(TimeSpan
timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at Microsoft.ServiceBus.RelayedOnewayChannelListener.OnOpen(TimeSpan
timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at Microsoft.ServiceBus.Channels.CommunicationObject.Open(TimeSpan timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at Microsoft.ServiceBus.SocketConnectionTransportManager.OnOpen(TimeSpan
timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at Microsoft.ServiceBus.Channels.TransportManager.Open(TimeSpan timeout,
TransportChannelListener channelListener)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at Microsoft.ServiceBus.Channels.TransportManagerContainer.Open(TimeSpan
timeout, SelectTransportManagersCallback selectTransportManagerCallback)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at Microsoft.ServiceBus.SocketConnectionChannelListener`2.OnOpen(TimeSpan
timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at Microsoft.ServiceBus.Channels.CommunicationObject.Open(TimeSpan timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiveEndpoint.Enable()&lt;br&gt;
&amp;nbsp;&amp;nbsp; at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiveEndpoint..ctor(BizTalkEndpointContext
endpointContext, IBTTransportProxy transportProxy, ControlledTermination control)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiver`2.AddReceiveEndpoint(String
url, IPropertyBag adapterConfig, IPropertyBag bizTalkConfig)".
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=6b6ec403-2e44-4bfa-9882-b9aef66a76d1" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,6b6ec403-2e44-4bfa-9882-b9aef66a76d1.aspx</comments>
      <category>AppFabricServer</category>
      <category>Azure</category>
      <category>Azure/Integration</category>
      <category>Azure/ServiceBus</category>
      <category>BizTalk</category>
      <category>BizTalk/2010</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=9b3c7d7a-8b95-4daf-a0df-19501552c209</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,9b3c7d7a-8b95-4daf-a0df-19501552c209.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,9b3c7d7a-8b95-4daf-a0df-19501552c209.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=9b3c7d7a-8b95-4daf-a0df-19501552c209</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Well folks it’s now 2 days after the swim and I’m beginning to feel back to normal.<br />
(I have 2 more swims to go, but this was the big one)
</p>
        <p>
Firstly I’d like to thank all of you whom sponsored me to face the sharks in 
</p>
        <p>
‘Jacques Cousteau’ style.<br /><br /><img src="http://thebigswim.org.au/images/imageTeamChallenge2.jpg" /><img src="http://thebigswim.org.au/images/imageAbout4.jpg" /></p>
        <p>
  
</p>
        <p>
There’s a great video that does a good job of covering the race and the beautiful
day we had. 
</p>
        <p>
  
</p>
        <p>
          <a href="http://www.youtube.com/watch?hl=en&amp;v=YXk7NXysslA&amp;gl=US">http://www.youtube.com/watch?hl=en&amp;v=YXk7NXysslA&amp;gl=US</a>
        </p>
        <p>
          <strong>The Race<br />
- </strong>I got there with a bit of time to spare grabbed my PINK cap + ankle bracelet
(which had to be worn on the LEFT ankle, as sharks eat only right ones <img class="wlEmoticon wlEmoticon-disappointedsmile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Disappointed smile" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/General-Palm-to-Whale-Beach-Big-Swim-201_B46E/wlEmoticon-disappointedsmile_2.png" /> )<br />
- The race kicked off at 10am with staggered starts and as it turned out my group
40-49yr males started last!<br />
- I got pretty nervous before the start…I’d kill for a cocktail out the back.<br />
- As the other groups were hitting the water, there were 16yr olds that I reckon would
be done before I got out past the break.<br />
- Livesavers were on hand, helicopters overhead and I stuck to my strategy ‘keep at
least one other person between you and the ocean’.<br />
- We hit the water and had about 400m around the first marker, and the 40-49s were
up for some serious competition. 
<br />
Elbows, knees, goggles off and I even had someone pull my foot. Anyone would think
we’re doing Olympic time trials!!! And this is in the first 200m.<br />
- The swell was up around the point and there was a lot of ups and downs, downs and
ups with some guys seeking help from nausea.<br />
- I swam close as I could to the rocks with the pack a good 100m to my left out to
sea. I did think ‘Micks' taken the wrong track here’<br />
- What seemed like forever around that headland and surf was up there, I finally rounded
the point into Whale beach. (the video has a great shot of this spot)<br />
- Headed for the last marker that I could see way down the other end of the beach.<br />
- Turned and headed towards the only break I could see….caught a wave in – which made
it all worth while and came in at 50mins (some people were around 25mins!)<br />
- As I emerged out of the water about to kiss the sand like the pope, my family was
literally 1m away right in front!!! Amazing!
</p>
        <p>
          <strong>Overall<br /></strong>It was a great experience with even an 82yr old man doing the swim – puts
me in my place.
</p>
        <p>
Thanks all for the support and 2 more to go for me.
</p>
        <p>
Cheers,
</p>
        <p>
Mick.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=9b3c7d7a-8b95-4daf-a0df-19501552c209" />
      </body>
      <title>General: Palm to Whale Beach Big Swim 2012</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,9b3c7d7a-8b95-4daf-a0df-19501552c209.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/01/31/GeneralPalmToWhaleBeachBigSwim2012.aspx</link>
      <pubDate>Tue, 31 Jan 2012 02:17:08 GMT</pubDate>
      <description>&lt;p&gt;
Well folks it’s now 2 days after the swim and I’m beginning to feel back to normal.&lt;br&gt;
(I have 2 more swims to go, but this was the big one)
&lt;/p&gt;
&lt;p&gt;
Firstly I’d like to thank all of you whom sponsored me to face the sharks in 
&lt;p&gt;
‘Jacques Cousteau’ style.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://thebigswim.org.au/images/imageTeamChallenge2.jpg"&gt;&lt;img src="http://thebigswim.org.au/images/imageAbout4.jpg"&gt; 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
There’s a great video that does a good job of covering the race and the beautiful
day we had. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&lt;a href="http://www.youtube.com/watch?hl=en&amp;amp;v=YXk7NXysslA&amp;amp;gl=US"&gt;http://www.youtube.com/watch?hl=en&amp;amp;v=YXk7NXysslA&amp;amp;gl=US&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The Race&lt;br&gt;
- &lt;/strong&gt;I got there with a bit of time to spare grabbed my PINK cap + ankle bracelet
(which had to be worn on the LEFT ankle, as sharks eat only right ones &lt;img class="wlEmoticon wlEmoticon-disappointedsmile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Disappointed smile" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/General-Palm-to-Whale-Beach-Big-Swim-201_B46E/wlEmoticon-disappointedsmile_2.png"&gt; )&lt;br&gt;
- The race kicked off at 10am with staggered starts and as it turned out my group
40-49yr males started last!&lt;br&gt;
- I got pretty nervous before the start…I’d kill for a cocktail out the back.&lt;br&gt;
- As the other groups were hitting the water, there were 16yr olds that I reckon would
be done before I got out past the break.&lt;br&gt;
- Livesavers were on hand, helicopters overhead and I stuck to my strategy ‘keep at
least one other person between you and the ocean’.&lt;br&gt;
- We hit the water and had about 400m around the first marker, and the 40-49s were
up for some serious competition. 
&lt;br&gt;
Elbows, knees, goggles off and I even had someone pull my foot. Anyone would think
we’re doing Olympic time trials!!! And this is in the first 200m.&lt;br&gt;
- The swell was up around the point and there was a lot of ups and downs, downs and
ups with some guys seeking help from nausea.&lt;br&gt;
- I swam close as I could to the rocks with the pack a good 100m to my left out to
sea. I did think ‘Micks' taken the wrong track here’&lt;br&gt;
- What seemed like forever around that headland and surf was up there, I finally rounded
the point into Whale beach. (the video has a great shot of this spot)&lt;br&gt;
- Headed for the last marker that I could see way down the other end of the beach.&lt;br&gt;
- Turned and headed towards the only break I could see….caught a wave in – which made
it all worth while and came in at 50mins (some people were around 25mins!)&lt;br&gt;
- As I emerged out of the water about to kiss the sand like the pope, my family was
literally 1m away right in front!!! Amazing!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Overall&lt;br&gt;
&lt;/strong&gt;It was a great experience with even an 82yr old man doing the swim – puts
me in my place.
&lt;/p&gt;
&lt;p&gt;
Thanks all for the support and 2 more to go for me.
&lt;/p&gt;
&lt;p&gt;
Cheers,
&lt;/p&gt;
&lt;p&gt;
Mick.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=9b3c7d7a-8b95-4daf-a0df-19501552c209" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,9b3c7d7a-8b95-4daf-a0df-19501552c209.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=2fb04e40-fa40-49f9-b4ce-f1a58f63adf5</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,2fb04e40-fa40-49f9-b4ce-f1a58f63adf5.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,2fb04e40-fa40-49f9-b4ce-f1a58f63adf5.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=2fb04e40-fa40-49f9-b4ce-f1a58f63adf5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>
            <font size="3">Windows Azure cannot perform a VIP swap between deployments
that have a different number of endpoints.</font>
          </strong>
        </p>
        <p>
          <font size="1">Which begs the question – what happens as part of an upgrade if you
add-endpoints???</font>
        </p>
        <p>
So clearly the VIP Swap operation is not a simple process.
</p>
        <p>
Now off to delete some production instances so I can get the changes through… <img class="wlEmoticon wlEmoticon-disappointedsmile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Disappointed smile" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-An-unexpected-VIP-Swap-ERROR_12C30/wlEmoticon-disappointedsmile_2.png" /></p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=2fb04e40-fa40-49f9-b4ce-f1a58f63adf5" />
      </body>
      <title>Azure: An unexpected VIP Swap ERROR</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,2fb04e40-fa40-49f9-b4ce-f1a58f63adf5.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/01/29/AzureAnUnexpectedVIPSwapERROR.aspx</link>
      <pubDate>Sun, 29 Jan 2012 10:23:24 GMT</pubDate>
      <description>&lt;p&gt;
&lt;strong&gt;&lt;font size="3"&gt;Windows Azure cannot perform a VIP swap between deployments
that have a different number of endpoints.&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size="1"&gt;Which begs the question – what happens as part of an upgrade if you
add-endpoints???&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
So clearly the VIP Swap operation is not a simple process.
&lt;/p&gt;
&lt;p&gt;
Now off to delete some production instances so I can get the changes through… &lt;img class="wlEmoticon wlEmoticon-disappointedsmile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Disappointed smile" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-An-unexpected-VIP-Swap-ERROR_12C30/wlEmoticon-disappointedsmile_2.png"&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=2fb04e40-fa40-49f9-b4ce-f1a58f63adf5" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,2fb04e40-fa40-49f9-b4ce-f1a58f63adf5.aspx</comments>
      <category>Azure</category>
      <category>Azure/Integration</category>
      <category>BizTalk</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=2ac84c34-76c2-4d0b-b20a-3d66a01ac265</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,2ac84c34-76c2-4d0b-b20a-3d66a01ac265.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,2ac84c34-76c2-4d0b-b20a-3d66a01ac265.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=2ac84c34-76c2-4d0b-b20a-3d66a01ac265</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Recently there’s been an update to the ‘on-premise’ AppFabric for Windows Server.
</p>
        <p>
Grab the update here - <a title="http://www.microsoft.com/download/en/details.aspx?id=27115" href="http://www.microsoft.com/download/en/details.aspx?id=27115">http://www.microsoft.com/download/en/details.aspx?id=27115</a> (runs
on win7, 2008, 2008R2)
</p>
        <p>
          <strong>What’s new</strong>
        </p>
        <p>
I’m in the process of updating my components, but the majority of updates seems to
be around caching and performance.
</p>
        <p>
          <a title="http://msdn.microsoft.com/en-us/library/hh351389.aspx" href="http://msdn.microsoft.com/en-us/library/hh351389.aspx">http://msdn.microsoft.com/en-us/library/hh351389.aspx</a>
        </p>
        <p>
 
</p>
        <h3 class="subHeading" style="word-wrap: break-word">
        </h3>
        <table style="word-wrap: break-word; border-top: #bbb 1px solid; border-right: #bbb 1px solid; border-collapse: collapse; border-bottom: #bbb 1px solid; border-left: #bbb 1px solid" width="100%">
          <tbody>
            <tr style="vertical-align: top">
              <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff">
                <p style="margin-bottom: 0px; position: relative">
                  <strong>
                    <font face="Segoe UI">
                      <font style="font-size: 9.7pt">Read-Through/Write-Behind</font>
                    </font>
                  </strong>
                </p>
              </td>
              <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff">
                <p style="margin-bottom: 0px; position: relative">
                  <font face="Segoe UI">
                    <font style="font-size: 9.7pt">This allows a backend provider
to be used on the cache servers to assist with retrieving and storing data to a backend,
such as a database. Read-through enables the cache to "read-through" to a backend
in the context of a Get request. Write-behind enables updates to cached data to be
saved asynchronously to the backend. For more information, see </font>
                  </font>
                  <font style="font-size: 9.7pt">
                    <a href="http://msdn.microsoft.com/en-us/library/hh361704.aspx">
                      <font color="#1364c4" face="Segoe UI">Creating
a Read-Through / Write-Behind Provider (AppFabric 1.1 Caching)</font>
                    </a>
                  </font>
                  <font face="Segoe UI">
                    <font style="font-size: 9.7pt">.</font>
                  </font>
                </p>
              </td>
            </tr>
            <tr style="vertical-align: top">
              <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff">
                <p style="margin-bottom: 0px; position: relative">
                  <strong>
                    <font face="Segoe UI">
                      <font style="font-size: 9.7pt">Graceful Shutdown</font>
                    </font>
                  </strong>
                </p>
              </td>
              <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff">
                <p style="margin-bottom: 0px; position: relative">
                  <font face="Segoe UI">
                    <font style="font-size: 9.7pt">This is useful for moving data
from a single cache hosts to rest of the servers in the cache cluster before shutting
down the cache host for maintenance. This helps to prevent unexpected loss of cached
data in a running cache cluster. This can be accomplished with the <strong>Graceful</strong> parameter
of the <strong>Stop-CacheHost</strong> Windows PowerShell command.</font>
                  </font>
                </p>
              </td>
            </tr>
            <tr style="vertical-align: top">
              <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff">
                <p style="margin-bottom: 0px; position: relative">
                  <strong>
                    <font face="Segoe UI">
                      <font style="font-size: 9.7pt">Domain Accounts</font>
                    </font>
                  </strong>
                </p>
              </td>
              <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff">
                <p style="margin-bottom: 0px; position: relative">
                  <font face="Segoe UI">
                    <font style="font-size: 9.7pt">In addition to running the AppFabric
Caching Service with the NETWORK SERVICE account, you can now run the service as a
domain account. For more information, see </font>
                  </font>
                  <font style="font-size: 9.7pt">
                    <a href="http://msdn.microsoft.com/en-us/library/hh386447.aspx">
                      <font color="#1364c4" face="Segoe UI">Change
the Caching Service Account (AppFabric 1.1 Caching)</font>
                    </a>
                  </font>
                  <font face="Segoe UI">
                    <font style="font-size: 9.7pt">.</font>
                  </font>
                </p>
              </td>
            </tr>
            <tr style="vertical-align: top">
              <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff">
                <p style="margin-bottom: 0px; position: relative">
                  <strong>
                    <font face="Segoe UI">
                      <font style="font-size: 9.7pt">New ASP.NET Session State
and Output Caching Provider</font>
                    </font>
                  </strong>
                </p>
              </td>
              <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff">
                <p style="margin-bottom: 0px; position: relative">
                  <font face="Segoe UI">
                    <font style="font-size: 9.7pt">New ASP.NET session state and
output caching providers are available. The new session state provider has support
for the lazy-loading of individual session state items using AppFabric Caching as
a backing store. This makes sites that have a mix of small and large session state
data more efficient, because pages that don't need large session state items won't
incur the cost of sending this data over the network. For more information, see </font>
                  </font>
                  <font style="font-size: 9.7pt">
                    <a href="http://msdn.microsoft.com/en-us/library/hh361705.aspx">
                      <font color="#1364c4" face="Segoe UI">Using
the ASP.NET 4 Caching Providers for AppFabric 1.1</font>
                    </a>
                  </font>
                  <font face="Segoe UI">
                    <font style="font-size: 9.7pt">.</font>
                  </font>
                </p>
              </td>
            </tr>
            <tr style="vertical-align: top">
              <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff">
                <p style="margin-bottom: 0px; position: relative">
                  <strong>
                    <font face="Segoe UI">
                      <font style="font-size: 9.7pt">Compression</font>
                    </font>
                  </strong>
                </p>
              </td>
              <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff">
                <p style="margin-bottom: 0px; position: relative">
                  <font face="Segoe UI">
                    <font style="font-size: 9.7pt">You can now enable compression
for cache clients. For more information, see </font>
                  </font>
                  <font style="font-size: 9.7pt">
                    <a href="http://msdn.microsoft.com/en-us/library/hh351483.aspx">
                      <font color="#1364c4" face="Segoe UI">Application
Configuration Settings (AppFabric 1.1 Caching)</font>
                    </a>
                  </font>
                  <font face="Segoe UI">
                    <font style="font-size: 9.7pt">.</font>
                  </font>
                </p>
              </td>
            </tr>
            <tr style="vertical-align: top">
              <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff">
                <p style="margin-bottom: 0px; position: relative">
                  <strong>
                    <font face="Segoe UI">
                      <font style="font-size: 9.7pt">Multiple Cache Client
Application Configuration Sections</font>
                    </font>
                  </strong>
                </p>
              </td>
              <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff">
                <p style="margin-bottom: 0px; position: relative">
                  <font face="Segoe UI">
                    <font style="font-size: 9.7pt">A new </font>
                  </font>
                  <font style="font-size: 9.7pt">
                    <code>dataCacheClients</code>
                    <font face="Segoe UI"> section
is available that allows you to specify multiple named </font>
                    <code>dataCacheClient</code>
                    <font face="Segoe UI"> sections
in an application configuration file. You can then programmatically specify which
group of cache client settings to use at runtime. For more information, see </font>
                    <a href="http://msdn.microsoft.com/en-us/library/hh351483.aspx">
                      <font color="#1364c4" face="Segoe UI">Application
Configuration Settings (AppFabric 1.1 Caching)</font>
                    </a>
                  </font>
                  <font face="Segoe UI">
                    <font style="font-size: 9.7pt">. </font>
                  </font>
                </p>
              </td>
            </tr>
          </tbody>
        </table>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=2ac84c34-76c2-4d0b-b20a-3d66a01ac265" />
      </body>
      <title>Microsoft AppFabric 1.1 for Windows Server–released!</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,2ac84c34-76c2-4d0b-b20a-3d66a01ac265.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/01/25/MicrosoftAppFabric11ForWindowsServerreleased.aspx</link>
      <pubDate>Wed, 25 Jan 2012 23:14:06 GMT</pubDate>
      <description>&lt;p&gt;
Recently there’s been an update to the ‘on-premise’ AppFabric for Windows Server.
&lt;/p&gt;
&lt;p&gt;
Grab the update here - &lt;a title="http://www.microsoft.com/download/en/details.aspx?id=27115" href="http://www.microsoft.com/download/en/details.aspx?id=27115"&gt;http://www.microsoft.com/download/en/details.aspx?id=27115&lt;/a&gt; (runs
on win7, 2008, 2008R2)
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;What’s new&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I’m in the process of updating my components, but the majority of updates seems to
be around caching and performance.
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://msdn.microsoft.com/en-us/library/hh351389.aspx" href="http://msdn.microsoft.com/en-us/library/hh351389.aspx"&gt;http://msdn.microsoft.com/en-us/library/hh351389.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h3 class="subHeading" style="word-wrap: break-word"&gt;
&lt;/h3&gt;
&lt;table style="word-wrap: break-word; border-top: #bbb 1px solid; border-right: #bbb 1px solid; border-collapse: collapse; border-bottom: #bbb 1px solid; border-left: #bbb 1px solid" width="100%"&gt;
&lt;tbody&gt;
&lt;tr style="vertical-align: top"&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative"&gt;
&lt;strong&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;Read-Through/Write-Behind&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;This allows a backend provider
to be used on the cache servers to assist with retrieving and storing data to a backend,
such as a database. Read-through enables the cache to "read-through" to a backend
in the context of a Get request. Write-behind enables updates to cached data to be
saved asynchronously to the backend. For more information, see &lt;/font&gt;&lt;/font&gt;&lt;font style="font-size: 9.7pt"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh361704.aspx"&gt;&lt;font color="#1364c4" face="Segoe UI"&gt;Creating
a Read-Through / Write-Behind Provider (AppFabric 1.1 Caching)&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="vertical-align: top"&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative"&gt;
&lt;strong&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;Graceful Shutdown&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;This is useful for moving data
from a single cache hosts to rest of the servers in the cache cluster before shutting
down the cache host for maintenance. This helps to prevent unexpected loss of cached
data in a running cache cluster. This can be accomplished with the &lt;strong&gt;Graceful&lt;/strong&gt; parameter
of the &lt;strong&gt;Stop-CacheHost&lt;/strong&gt; Windows PowerShell command.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="vertical-align: top"&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative"&gt;
&lt;strong&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;Domain Accounts&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;In addition to running the AppFabric
Caching Service with the NETWORK SERVICE account, you can now run the service as a
domain account. For more information, see &lt;/font&gt;&lt;/font&gt;&lt;font style="font-size: 9.7pt"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh386447.aspx"&gt;&lt;font color="#1364c4" face="Segoe UI"&gt;Change
the Caching Service Account (AppFabric 1.1 Caching)&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="vertical-align: top"&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative"&gt;
&lt;strong&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;New ASP.NET Session State
and Output Caching Provider&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;New ASP.NET session state and
output caching providers are available. The new session state provider has support
for the lazy-loading of individual session state items using AppFabric Caching as
a backing store. This makes sites that have a mix of small and large session state
data more efficient, because pages that don't need large session state items won't
incur the cost of sending this data over the network. For more information, see &lt;/font&gt;&lt;/font&gt;&lt;font style="font-size: 9.7pt"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh361705.aspx"&gt;&lt;font color="#1364c4" face="Segoe UI"&gt;Using
the ASP.NET 4 Caching Providers for AppFabric 1.1&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="vertical-align: top"&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative"&gt;
&lt;strong&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;Compression&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;You can now enable compression
for cache clients. For more information, see &lt;/font&gt;&lt;/font&gt;&lt;font style="font-size: 9.7pt"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh351483.aspx"&gt;&lt;font color="#1364c4" face="Segoe UI"&gt;Application
Configuration Settings (AppFabric 1.1 Caching)&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="vertical-align: top"&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative"&gt;
&lt;strong&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;Multiple Cache Client
Application Configuration Sections&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 14pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;A new &lt;/font&gt;&lt;/font&gt;&lt;font style="font-size: 9.7pt"&gt;&lt;code&gt;dataCacheClients&lt;/code&gt;&lt;font face="Segoe UI"&gt; section
is available that allows you to specify multiple named &lt;/font&gt;&lt;code&gt;dataCacheClient&lt;/code&gt;&lt;font face="Segoe UI"&gt; sections
in an application configuration file. You can then programmatically specify which
group of cache client settings to use at runtime. For more information, see &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh351483.aspx"&gt;&lt;font color="#1364c4" face="Segoe UI"&gt;Application
Configuration Settings (AppFabric 1.1 Caching)&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;. &lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=2ac84c34-76c2-4d0b-b20a-3d66a01ac265" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,2ac84c34-76c2-4d0b-b20a-3d66a01ac265.aspx</comments>
      <category>.NET Developer</category>
      <category>AppFabricServer</category>
      <category>Azure</category>
      <category>Azure/Integration</category>
      <category>BizTalk/2010</category>
      <category>BizTalk/2010 R2</category>
      <category>Dev</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=57f9b076-24b0-404a-a5b0-d10580298bda</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,57f9b076-24b0-404a-a5b0-d10580298bda.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,57f9b076-24b0-404a-a5b0-d10580298bda.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=57f9b076-24b0-404a-a5b0-d10580298bda</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hi folks, welcome to Monday…so I thought.
</p>
        <p>
Here I was registering a message inspector which should take 5 mins tops.
</p>
        <p>
Find the right config, make sure the .NET full assembly name is cool and away we go.
</p>
        <p>
I wanted to use this guy from my custom WCF Adapter within BizTalk – so I needed my
new message inspector to be seen by BizTalk.
</p>
        <p>
So I used:
</p>
        <p>
&lt;add name="wcfMsgPropPromoter" type="Breeze.WCF.Extensions.BreezeMessagePromoteBehaviour,Breeze.WCF.Extensions,Version=1.0.0.0,Culture=neutral,PublicKeyToken=c2c8c7e827e9dd6a"/&gt;
</p>
        <p>
and added this guy to the &lt;<strong>behaviorExtensions&gt; </strong>element in the <strong>Machine.Config
for .NET 4.0 x64/.NET 4.0 </strong>(&amp; .NET 2.0 for good measure)
</p>
        <p>
As if a scene from SpongeBob,… <strong>3 hours later….</strong></p>
        <p>
I had triple check GACs, caches, full assembly names etc…<a href="http://blogs.breeze.net/scotts" target="_blank">Scotty
popped</a> his head around and said “Oh yeah I had this one ages ago you need to use
this…”
</p>
        <p>
&lt;add name="wcfMsgPropPromoter" type="Breeze.WCF.Extensions.BreezeMessagePromoteBehaviour,
Breeze.WCF.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c2c8c7e827e9dd6a"/&gt;
</p>
        <p>
          <strong>Can you spot the difference?</strong>
        </p>
        <p>
SPACES!!!!
</p>
        <p>
Interestingly enough – this work is part of a .NET plugin I wrote for IIS 7.5 and
to register the plugin you use <strong>“Breeze.WCF.Extensions.BreezeMessagePromoteBehaviour,Breeze.WCF.Extensions,Version=1.0.0.0,Culture=neutral,PublicKeyToken=c2c8c7e827e9dd6a"</strong></p>
        <p>
          <strong>NO SPACES!</strong>
        </p>
        <p>
My head hurts for a Monday…
</p>
        <p>
Hopefully you reclaim the hours I’ve lost here.
</p>
        <p>
Mick.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=57f9b076-24b0-404a-a5b0-d10580298bda" />
      </body>
      <title>BizTalk: Registering a WCF Message Inspector–hours I’ll never get back!!!</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,57f9b076-24b0-404a-a5b0-d10580298bda.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/01/23/BizTalkRegisteringAWCFMessageInspectorhoursIllNeverGetBack.aspx</link>
      <pubDate>Mon, 23 Jan 2012 05:52:20 GMT</pubDate>
      <description>&lt;p&gt;
Hi folks, welcome to Monday…so I thought.
&lt;/p&gt;
&lt;p&gt;
Here I was registering a message inspector which should take 5 mins tops.
&lt;/p&gt;
&lt;p&gt;
Find the right config, make sure the .NET full assembly name is cool and away we go.
&lt;/p&gt;
&lt;p&gt;
I wanted to use this guy from my custom WCF Adapter within BizTalk – so I needed my
new message inspector to be seen by BizTalk.
&lt;/p&gt;
&lt;p&gt;
So I used:
&lt;/p&gt;
&lt;p&gt;
&amp;lt;add name="wcfMsgPropPromoter" type="Breeze.WCF.Extensions.BreezeMessagePromoteBehaviour,Breeze.WCF.Extensions,Version=1.0.0.0,Culture=neutral,PublicKeyToken=c2c8c7e827e9dd6a"/&amp;gt;
&lt;/p&gt;
&lt;p&gt;
and added this guy to the &amp;lt;&lt;strong&gt;behaviorExtensions&amp;gt; &lt;/strong&gt;element in the &lt;strong&gt;Machine.Config
for .NET 4.0 x64/.NET 4.0 &lt;/strong&gt;(&amp;amp; .NET 2.0 for good measure)
&lt;/p&gt;
&lt;p&gt;
As if a scene from SpongeBob,… &lt;strong&gt;3 hours later….&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I had triple check GACs, caches, full assembly names etc…&lt;a href="http://blogs.breeze.net/scotts" target="_blank"&gt;Scotty
popped&lt;/a&gt; his head around and said “Oh yeah I had this one ages ago you need to use
this…”
&lt;/p&gt;
&lt;p&gt;
&amp;lt;add name="wcfMsgPropPromoter" type="Breeze.WCF.Extensions.BreezeMessagePromoteBehaviour,
Breeze.WCF.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c2c8c7e827e9dd6a"/&amp;gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Can you spot the difference?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
SPACES!!!!
&lt;/p&gt;
&lt;p&gt;
Interestingly enough – this work is part of a .NET plugin I wrote for IIS 7.5 and
to register the plugin you use &lt;strong&gt;“Breeze.WCF.Extensions.BreezeMessagePromoteBehaviour,Breeze.WCF.Extensions,Version=1.0.0.0,Culture=neutral,PublicKeyToken=c2c8c7e827e9dd6a"&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;NO SPACES!&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
My head hurts for a Monday…
&lt;/p&gt;
&lt;p&gt;
Hopefully you reclaim the hours I’ve lost here.
&lt;/p&gt;
&lt;p&gt;
Mick.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=57f9b076-24b0-404a-a5b0-d10580298bda" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,57f9b076-24b0-404a-a5b0-d10580298bda.aspx</comments>
      <category>.NET Developer</category>
      <category>BizTalk/2010</category>
      <category>BizTalk/2010 R2</category>
      <category>Dev</category>
      <category>Dev/.NET Framework 4.5</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=d5afad9b-4262-4433-97c8-4cd7b07f8f9e</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,d5afad9b-4262-4433-97c8-4cd7b07f8f9e.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,d5afad9b-4262-4433-97c8-4cd7b07f8f9e.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=d5afad9b-4262-4433-97c8-4cd7b07f8f9e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Just came across this one – Microsoft of recently released the Storage Client source
code.
</p>
        <p>
Could come in handy!
</p>
        <p>
          <a title="https://github.com/WindowsAzure/azure-sdk-for-net" href="https://github.com/WindowsAzure/azure-sdk-for-net">https://github.com/WindowsAzure/azure-sdk-for-net</a>
        </p>
        <p>
Cheers,
</p>
        <p>
Mick.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=d5afad9b-4262-4433-97c8-4cd7b07f8f9e" />
      </body>
      <title>Azure: Storage client goes open source!</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,d5afad9b-4262-4433-97c8-4cd7b07f8f9e.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/01/17/AzureStorageClientGoesOpenSource.aspx</link>
      <pubDate>Tue, 17 Jan 2012 04:45:19 GMT</pubDate>
      <description>&lt;p&gt;
Just came across this one – Microsoft of recently released the Storage Client source
code.
&lt;/p&gt;
&lt;p&gt;
Could come in handy!
&lt;/p&gt;
&lt;p&gt;
&lt;a title="https://github.com/WindowsAzure/azure-sdk-for-net" href="https://github.com/WindowsAzure/azure-sdk-for-net"&gt;https://github.com/WindowsAzure/azure-sdk-for-net&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Cheers,
&lt;/p&gt;
&lt;p&gt;
Mick.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=d5afad9b-4262-4433-97c8-4cd7b07f8f9e" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,d5afad9b-4262-4433-97c8-4cd7b07f8f9e.aspx</comments>
      <category>Azure</category>
      <category>Azure/Integration</category>
      <category>BizTalk</category>
      <category>BizTalk/2010</category>
      <category>BizTalk/2010 R2</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=8542c9c1-5f48-4040-9375-7a98d98a28f4</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,8542c9c1-5f48-4040-9375-7a98d98a28f4.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,8542c9c1-5f48-4040-9375-7a98d98a28f4.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=8542c9c1-5f48-4040-9375-7a98d98a28f4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hi folks, we’ve set a cracking pace into 2012 and are in need of an additional team
member.
</p>
        <p>
If you love technology, we love technology and I’d love to hear from you to be part
of my team.
</p>
        <p>
You will be stimulated, constantly thinking and challenged – azure, integration, biztlak,
sql, windows phone 7 and many other technology areas you’ll be exposed to. Integration
is all about the glue we use to achieve the result.
</p>
        <p>
If you’re keen for a chat check out the blurb - <a href="http://www.breeze.net/about/jobs.aspx">http://www.breeze.net/about/jobs.aspx</a></p>
        <p>
Cheers,
</p>
        <p>
Mick.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=8542c9c1-5f48-4040-9375-7a98d98a28f4" />
      </body>
      <title>Position: Technical BizTalk Developer</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,8542c9c1-5f48-4040-9375-7a98d98a28f4.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/01/11/PositionTechnicalBizTalkDeveloper.aspx</link>
      <pubDate>Wed, 11 Jan 2012 12:32:16 GMT</pubDate>
      <description>&lt;p&gt;
Hi folks, we’ve set a cracking pace into 2012 and are in need of an additional team
member.
&lt;/p&gt;
&lt;p&gt;
If you love technology, we love technology and I’d love to hear from you to be part
of my team.
&lt;/p&gt;
&lt;p&gt;
You will be stimulated, constantly thinking and challenged – azure, integration, biztlak,
sql, windows phone 7 and many other technology areas you’ll be exposed to. Integration
is all about the glue we use to achieve the result.
&lt;/p&gt;
&lt;p&gt;
If you’re keen for a chat check out the blurb - &lt;a href="http://www.breeze.net/about/jobs.aspx"&gt;http://www.breeze.net/about/jobs.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Cheers,
&lt;/p&gt;
&lt;p&gt;
Mick.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=8542c9c1-5f48-4040-9375-7a98d98a28f4" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,8542c9c1-5f48-4040-9375-7a98d98a28f4.aspx</comments>
      <category>AppFabricServer</category>
      <category>Azure</category>
      <category>BizTalk</category>
      <category>BizTalk/2010</category>
      <category>Breeze</category>
      <category>Breeze/BET</category>
      <category>Dev</category>
      <category>General</category>
      <category>Jobs</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=e53c7f1f-b905-4781-a946-0d13c4ab0a52</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,e53c7f1f-b905-4781-a946-0d13c4ab0a52.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,e53c7f1f-b905-4781-a946-0d13c4ab0a52.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=e53c7f1f-b905-4781-a946-0d13c4ab0a52</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Thought I’d start off the year with a bang around Azure and what’s been happening
in the land of Integration. 
</p>
        <p>
  
</p>
        <p>
So I contacted a <a href="http://www.linkedin.com/in/conorbrady" target="_blank">Conor
Brady</a> to see what was cooking. 
</p>
        <p>
  
</p>
        <p>
The user group is meeting <strong>next Thursday 19th Jan 2012</strong>. 
</p>
        <p>
  
</p>
        <p>
Here’s the blurb….. 
</p>
        <p>
  
</p>
        <p>
----------------------------------------- 
</p>
        <p>
  
</p>
        <p>
          <strong>'Integration using Windows Azure Application Integration Services'</strong>
        </p>
        <p>
Local Integration &amp; Training guru Mick Badran CTO at Breeze Training &amp; Consulting
and veteran BizTalk Server MVP will present on 'Integration using Windows Azure Application
Integration Services' 
</p>
        <p>
The presentation will show how to use Microsoft Windows Azure to be the cornerstone
of your integration strategy, whether it’s a small piece or larger deployment. Find
out what new tools you can use to extend your existing toolbox and the best way to
use them. 
</p>
        <p>
This session will cover: 
</p>
        <p>
- Strategies on complementing your on-premise &lt;-&gt; cloud integration and what
tool to use when. 
</p>
        <p>
- High availability solutions with a demo of fault tolerance. 
</p>
        <p>
- Casting an eye what’s around the corner to new features coming out of Azure Labs
such as EAI, EAI Bridges, EDI – azure style and new XML over HTTP endpoints. 
</p>
        <p>
  
</p>
        <p>
------------------------------------------ 
</p>
        <p>
  
</p>
        <p>
Here’s the link to REGISTER - <a title="http://www.eventbrite.com/event/2739308345" href="http://www.eventbrite.com/event/2739308345">http://www.eventbrite.com/event/2739308345</a></p>
        <p>
  
</p>
        <p>
See you there! 
</p>
        <p>
  
</p>
        <p>
Mick.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=e53c7f1f-b905-4781-a946-0d13c4ab0a52" />
      </body>
      <title>I’m presenting this month at the Windows Azure Sydney User Group (WASUG)</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,e53c7f1f-b905-4781-a946-0d13c4ab0a52.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/01/09/ImPresentingThisMonthAtTheWindowsAzureSydneyUserGroupWASUG.aspx</link>
      <pubDate>Mon, 09 Jan 2012 04:18:16 GMT</pubDate>
      <description>&lt;p&gt;
Thought I’d start off the year with a bang around Azure and what’s been happening
in the land of Integration. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
So I contacted a &lt;a href="http://www.linkedin.com/in/conorbrady" target="_blank"&gt;Conor
Brady&lt;/a&gt; to see what was cooking. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
The user group is meeting &lt;strong&gt;next Thursday 19th Jan 2012&lt;/strong&gt;. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
Here’s the blurb….. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
----------------------------------------- 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&lt;strong&gt;'Integration using Windows Azure Application Integration Services'&lt;/strong&gt; 
&lt;p&gt;
Local Integration &amp;amp; Training guru Mick Badran CTO at Breeze Training &amp;amp; Consulting
and veteran BizTalk Server MVP will present on 'Integration using Windows Azure Application
Integration Services' 
&lt;p&gt;
The presentation will show how to use Microsoft Windows Azure to be the cornerstone
of your integration strategy, whether it’s a small piece or larger deployment. Find
out what new tools you can use to extend your existing toolbox and the best way to
use them. 
&lt;p&gt;
This session will cover: 
&lt;p&gt;
- Strategies on complementing your on-premise &amp;lt;-&amp;gt; cloud integration and what
tool to use when. 
&lt;p&gt;
- High availability solutions with a demo of fault tolerance. 
&lt;p&gt;
- Casting an eye what’s around the corner to new features coming out of Azure Labs
such as EAI, EAI Bridges, EDI – azure style and new XML over HTTP endpoints. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
------------------------------------------ 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
Here’s the link to REGISTER - &lt;a title="http://www.eventbrite.com/event/2739308345" href="http://www.eventbrite.com/event/2739308345"&gt;http://www.eventbrite.com/event/2739308345&lt;/a&gt; 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
See you there! 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
Mick.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=e53c7f1f-b905-4781-a946-0d13c4ab0a52" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,e53c7f1f-b905-4781-a946-0d13c4ab0a52.aspx</comments>
      <category>AppFabricServer</category>
      <category>Azure</category>
      <category>Azure/Integration</category>
      <category>BizTalk</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=a0ae34e6-cb75-42c0-9970-05baad02d8f2</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,a0ae34e6-cb75-42c0-9970-05baad02d8f2.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,a0ae34e6-cb75-42c0-9970-05baad02d8f2.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=a0ae34e6-cb75-42c0-9970-05baad02d8f2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Well folks – the appfabric labs have come out with a real gem recently.
</p>
        <p>
In CTP we have:
</p>
        <ul>
          <li>
EDI + EAI processing</li>
          <li>
AS2 http/s endpoints</li>
          <li>
‘Bridges’</li>
          <li>
Transforms</li>
        </ul>
        <p>
and of course the latest version of
</p>
        <ul>
          <li>
ServcieBus, Queues and Topics.</li>
        </ul>
        <p>
To get the real benefit from this ‘sneak peek’ there’s a bit of setup required. To
those familiar with BizTalk there’s a few EDI screens declaring parties/partners and
agreements you’ll have seen before.
</p>
        <p>
          <strong>To get cracking:</strong>
        </p>
        <ol>
          <li>
Update your local bits with the latest and greatest - <a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh689760.aspx" target="_blank">Installing
the Windows Azure Service Bus EAI and EDI Labs - December 2011</a><br />
Part of this install is to install the <strong>Service Bus Connect</strong> component,
which installs the <strong>BizTalk 2010 LOB Adapter pack</strong>.<br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_2.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb.png" width="644" height="284" /></a><br /><br />
So this is really quite interesting. As the WCF LOB Adapter SDK provides a framework
for developers to build out ‘adapters’ to connect systems/endpoints through a sync/async
messaging pattern.<br /><br />
The BizTalk Adapter Pack 2010 is the BizTalk Team set of adapters built on top of
the WCF Adapter Framework. The BizTalk Adapter pack includes:<br />
- SQL Server Adapter. Hi performance sql work, notifications, async reads, writes
etc.<br />
- SAP Adapter – uses the SAP Client APIs (under the hood) to talk directly to SAP.
Very powerful<br />
- SIEBEL Adapter<br />
- Oracle DB Adapter<br />
- Oracle ES Adapter<br /><br />
These adapters are exposed as ‘WCF Bindings’ with BizTalk or a small amount of code,
allows you to expose these adapters as callable WCF Services.<br /><br /><strong>What does this mean in our case here? </strong><br />
If you think about your on-premise Oracle system, we now have a local means of accessing
Oracle and we can then push the message processing (e.g. a new order arrived) into
our ‘cloud’ bridge where we have the immediate benefit of HA + Scale. Do some work
there, and spit the result out any which way you want. Maybe back down to on-premise,
or in a Queue or to Azure Storage.<br /><br /></li>
          <li>
Sign up to <strong>AppFabricLabs – </strong><a href="http://portal.appfabriclabs.com">http://portal.appfabriclabs.com</a> and
provision your ‘servicebus’ service.<br />
This provides your EDI/EAI relay endpoints and also provides a way for you to listen/send
requests to/from the cloud.<br /></li>
          <li>
Here I have used <strong>mickservices </strong>as my ServiceBus namespace.<br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_4.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_1.png" width="644" height="273" /></a><br />
(I created a Queue and a couple of Topics for later use – not really needed here)<br /><strong>Note: grab your HIDDEN KEY details from here – </strong>owner + &lt;key#&gt;<br /></li>
          <li>
From within the Portal <strong>Create a Queue called samples/gettingstarted/queueorders</strong><br /><br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_24.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_11.png" width="834" height="164" /></a><br /></li>
          <li>
            <strong>Register at the EDI Portal</strong> – <a href="http://edi.appfabriclabs.com">http://edi.appfabriclabs.com</a><br />
Even though this says ‘EDI’ think of it as your sandpit. It’s where all your ‘widgets’
live that are to run in Azure Integration Services.<br /><br />
The registration form had me stumped for a little bit. Here’s the details that work.<br /><br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_6.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_2.png" width="704" height="460" /></a><br /><br />
Notice my servicebus namespace – just the first word. I previously had the whole thing,
then variations of it.<br />
Issuer Name: owner<br />
Issuer secret: &lt;the hidden key from above&gt;<br /><br />
Click <strong>save/register</strong> and you should be good here.<br /></li>
          <li>
Once this is done – click on <strong>Settings –&gt; AS2 </strong>and <strong>Enable
AS2 message processing</strong> (which is EDI/HTTP – you might be lucky enough to
get the msgs as XML, but most times no). This will create some endpoints for you <strong>b2bgateway…</strong> style
endpoints.<br /><br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_8.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_3.png" width="1057" height="521" /></a><br /></li>
          <li>
At this stage, have a look under <strong>Resources </strong>and you’ll notice that
it’s empty. <strong>But…</strong>they have <strong>Schemas, Transforms and Certificates.</strong> We’ll
come back to that later.<br /></li>
          <li>
Let’s head to Visual Studio 2010 with the updates installed and open up the Sample
Order Processing project.<br /><br />
I installed my samples under <strong>c:\samples</strong><br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_10.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_4.png" width="244" height="167" /></a><br /><br />
If all opens well you should see:<br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_12.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_5.png" width="301" height="142" /></a><br /><br /><strong>Note: there’s a couple of new items here: </strong>(expand out artifacts)<br /><strong>*.bcs – </strong>Bridge. There’s a <a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh689768.aspx" target="_blank">MSDN
Article describing these</a> – I was like ‘what???’. Basically these are a ‘processing
pipe’ of which various operations can be performed on a message in stages. These stages
are ‘atomic’ and they also have ‘conditions’ as to whether they *need* to be applied
to the said message. So a bridge could take a message, convert it to XML and broadcast
the message out to a Topic.<br /><br />
Opening up the designer – it gets pretty cool I must say!!! 
<br /><br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_14.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_6.png" width="1362" height="595" /></a><br /><strong>Note the ‘operations’ on the LHS</strong>. I must have a play with these guys <img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Smile" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/wlEmoticon-smile_2.png" /> <br />
Another thought – how extensible is this? I’d bet we could write our own widgets to
throw on the design surface as well.<br /><br />
By double clicking on the <strong>BridgeOrders </strong>component, you can see the
designer surface come up with the ‘stage processing’.<br /><br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_16.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_7.png" width="344" height="560" /></a><br /><br />
Here you can see the ‘bridge’ (I wonder if that term will last till the release) will
accept only 2 types of message schemas – PO1 + PO2. Maps them out to a more generic <strong>PO
format</strong>.<br />
The map – XMLTransform from my initial testing only applies one map, the first one
that matches the source schema (this is the same as BizTalk).<br /><br />
Close the bridge view down and leave the <strong>BridgeConfiguration</strong> open.<br /></li>
          <li>
            <strong>Click anywhere on the white surface of the BridgeConfiguration</strong> and
set your <strong>Service Namespace </strong>property from the Properties window (this
guy was hard to find!!)<br />
Put <strong>&lt;your service namespace&gt;</strong> you created originally.<br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_18.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_8.png" width="362" height="126" /></a><br /></li>
          <li>
Save and click <strong>Deploy </strong>and a Deployment window comes up – put your
details in from above.<br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_20.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_9.png" width="442" height="244" /></a><br /><br />
After deployment completes, keep an eye on the Output window as this has all the URLs
you’ll need for the next step. In particular the <strong>BridgeOrders</strong>.<br /><br />
Feel free to go back to your Azure Portal –&gt; Resources and see your deployed bits
in there, Schemas, Transforms etc.<br /><br /></li>
          <li>
            <strong>Running what you’ve built</strong> – sending a message to the ‘bridge’ (here
I’ve borrowed info from the ‘Readme.html’ in the sample project folder)<br />
We don’t need to setup the whole EDI Trading partner piece. – just send messages to
a restful endpoint – aka the bridge.<br /></li>
        </ol>
        <ol>
          <li>
From the samples folder locate the <strong>Tools\MessageSender</strong> project. (you
may have to build it in VS.NET first)</li>
          <li>
from a command prompt run <strong>messagesender.exe 
<br /></strong><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_22.png"><strong><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_10.png" width="1190" height="53" /></strong></a><br /><br />
In my case it looks like this:<br /><br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_28.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_13.png" width="672" height="335" /></a><br /><br />
Took me a little to get this originally, make sure all your VS.NET stuff is deployed
properly.<br /><br />
So effectively we have sent PO1.xml to our ‘Bridge’ and it’s been accepted, validated
and transformed into ‘something else’ and popped onto a Queue called <strong>Samples/gettingstarted/QueueOrders.<br /><br />
We will now get the message Reader to Read it.<br /></strong></li>
        </ol>
        <li>
From under the <strong>Samples\Tools </strong>folder locate the <strong>MessageReceiver </strong>project
and build if required.</li>
        <li>
From a command prompt at that location, run the following to <strong>Listen</strong> to
the queue<br /><br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_30.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_14.png" width="672" height="335" /></a></li>
        <p>
          <br />
          <br />
        </p>
        <strong>
        </strong>
        <p>
          <br />
          <br />
        </p>
        <p>
          <br />
        </p>
        <p>
          <strong>Wrapping up - </strong>
          <br />
          <br />
Here is obviously a quick walk through of what’s possible, performance, scale and
throughput are other measures that we haven’t got here – given it’s CTP/Labs we’re
not quite ready for that conversation.
</p>
        <p>
BizTalk adapter pack will expose out for e.g. your SAP system to a wider audience
and imagine having restful WCF services to call that provide you customer data in
the format you want…or better still…deliver it straight to you!<br />
(currently in BTS 2010, the adapter pack is licensed separately, it’s part of BTS
standard or enterprise. BTS2009 it *was* licensed separately for RRP $5K. Maybe we’ll
see this as a separate component again.)<br />
Or you could do like the SharePoint team and write a brand new WCF Adapter (‘connector’
in their terms) – ‘Duet’ and spend 18 months doing so.<br /><br />
Some things I’d like to see here is a <strong>Rules Processor</strong> or Engine –
being a long long BizTalk fan, the rules engine is a massive strength of any loosely
coupled solution. The majority of BizTalk solutions I come across don’t employ any
rules engines…or better still, Windows Workflow 2,3+ (but not 4 or 4.5) has a rules
‘executor’ which is very powerful in it’s own right. Who’s heard or used the Policy
shape?
</p>
        <p>
Given that this is a sneak peak at what is on the horizon, this is definitely a space
not to miss.
</p>
        <p>
Get those trial accounts going and enjoy!
</p>
        <p>
In particular I’d like to call out <a href="http://rickgaribay.net/archive/2011/12/16/azure-service-bus-connect-eai-and-edi-ldquointegration-servicesrdquo-ctp.aspx" target="_blank">Rick’s
Article</a> (well done Rick!) for a great read on this space also.
</p>
        <p>
Mick.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=a0ae34e6-cb75-42c0-9970-05baad02d8f2" />
      </body>
      <title>Azure AppFabric Labs–EAI, Service Bus in the Cloud</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,a0ae34e6-cb75-42c0-9970-05baad02d8f2.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2011/12/17/AzureAppFabricLabsEAIServiceBusInTheCloud.aspx</link>
      <pubDate>Sat, 17 Dec 2011 11:08:00 GMT</pubDate>
      <description>&lt;p&gt;
Well folks – the appfabric labs have come out with a real gem recently.
&lt;/p&gt;
&lt;p&gt;
In CTP we have:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
EDI + EAI processing&lt;/li&gt;
&lt;li&gt;
AS2 http/s endpoints&lt;/li&gt;
&lt;li&gt;
‘Bridges’&lt;/li&gt;
&lt;li&gt;
Transforms&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
and of course the latest version of
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
ServcieBus, Queues and Topics.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
To get the real benefit from this ‘sneak peek’ there’s a bit of setup required. To
those familiar with BizTalk there’s a few EDI screens declaring parties/partners and
agreements you’ll have seen before.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;To get cracking:&lt;/strong&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Update your local bits with the latest and greatest - &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh689760.aspx" target="_blank"&gt;Installing
the Windows Azure Service Bus EAI and EDI Labs - December 2011&lt;/a&gt;
&lt;br&gt;
Part of this install is to install the &lt;strong&gt;Service Bus Connect&lt;/strong&gt; component,
which installs the &lt;strong&gt;BizTalk 2010 LOB Adapter pack&lt;/strong&gt;.&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_2.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb.png" width="644" height="284"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
So this is really quite interesting. As the WCF LOB Adapter SDK provides a framework
for developers to build out ‘adapters’ to connect systems/endpoints through a sync/async
messaging pattern.&lt;br&gt;
&lt;br&gt;
The BizTalk Adapter Pack 2010 is the BizTalk Team set of adapters built on top of
the WCF Adapter Framework. The BizTalk Adapter pack includes:&lt;br&gt;
- SQL Server Adapter. Hi performance sql work, notifications, async reads, writes
etc.&lt;br&gt;
- SAP Adapter – uses the SAP Client APIs (under the hood) to talk directly to SAP.
Very powerful&lt;br&gt;
- SIEBEL Adapter&lt;br&gt;
- Oracle DB Adapter&lt;br&gt;
- Oracle ES Adapter&lt;br&gt;
&lt;br&gt;
These adapters are exposed as ‘WCF Bindings’ with BizTalk or a small amount of code,
allows you to expose these adapters as callable WCF Services.&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;What does this mean in our case here? &lt;/strong&gt;
&lt;br&gt;
If you think about your on-premise Oracle system, we now have a local means of accessing
Oracle and we can then push the message processing (e.g. a new order arrived) into
our ‘cloud’ bridge where we have the immediate benefit of HA + Scale. Do some work
there, and spit the result out any which way you want. Maybe back down to on-premise,
or in a Queue or to Azure Storage.&lt;br&gt;
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Sign up to &lt;strong&gt;AppFabricLabs – &lt;/strong&gt;&lt;a href="http://portal.appfabriclabs.com"&gt;http://portal.appfabriclabs.com&lt;/a&gt; and
provision your ‘servicebus’ service.&lt;br&gt;
This provides your EDI/EAI relay endpoints and also provides a way for you to listen/send
requests to/from the cloud.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Here I have used &lt;strong&gt;mickservices &lt;/strong&gt;as my ServiceBus namespace.&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_4.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_1.png" width="644" height="273"&gt;&lt;/a&gt;
&lt;br&gt;
(I created a Queue and a couple of Topics for later use – not really needed here)&lt;br&gt;
&lt;strong&gt;Note: grab your HIDDEN KEY details from here – &lt;/strong&gt;owner + &amp;lt;key#&amp;gt;&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
From within the Portal &lt;strong&gt;Create a Queue called samples/gettingstarted/queueorders&lt;/strong&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_24.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_11.png" width="834" height="164"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Register at the EDI Portal&lt;/strong&gt; – &lt;a href="http://edi.appfabriclabs.com"&gt;http://edi.appfabriclabs.com&lt;/a&gt;
&lt;br&gt;
Even though this says ‘EDI’ think of it as your sandpit. It’s where all your ‘widgets’
live that are to run in Azure Integration Services.&lt;br&gt;
&lt;br&gt;
The registration form had me stumped for a little bit. Here’s the details that work.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_6.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_2.png" width="704" height="460"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Notice my servicebus namespace – just the first word. I previously had the whole thing,
then variations of it.&lt;br&gt;
Issuer Name: owner&lt;br&gt;
Issuer secret: &amp;lt;the hidden key from above&amp;gt;&lt;br&gt;
&lt;br&gt;
Click &lt;strong&gt;save/register&lt;/strong&gt; and you should be good here.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Once this is done – click on &lt;strong&gt;Settings –&amp;gt; AS2 &lt;/strong&gt;and &lt;strong&gt;Enable
AS2 message processing&lt;/strong&gt; (which is EDI/HTTP – you might be lucky enough to
get the msgs as XML, but most times no). This will create some endpoints for you &lt;strong&gt;b2bgateway…&lt;/strong&gt; style
endpoints.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_8.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_3.png" width="1057" height="521"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
At this stage, have a look under &lt;strong&gt;Resources &lt;/strong&gt;and you’ll notice that
it’s empty. &lt;strong&gt;But…&lt;/strong&gt;they have &lt;strong&gt;Schemas, Transforms and Certificates.&lt;/strong&gt; We’ll
come back to that later.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Let’s head to Visual Studio 2010 with the updates installed and open up the Sample
Order Processing project.&lt;br&gt;
&lt;br&gt;
I installed my samples under &lt;strong&gt;c:\samples&lt;/strong&gt; 
&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_10.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_4.png" width="244" height="167"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
If all opens well you should see:&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_12.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_5.png" width="301" height="142"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Note: there’s a couple of new items here: &lt;/strong&gt;(expand out artifacts)&lt;br&gt;
&lt;strong&gt;*.bcs – &lt;/strong&gt;Bridge. There’s a &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh689768.aspx" target="_blank"&gt;MSDN
Article describing these&lt;/a&gt; – I was like ‘what???’. Basically these are a ‘processing
pipe’ of which various operations can be performed on a message in stages. These stages
are ‘atomic’ and they also have ‘conditions’ as to whether they *need* to be applied
to the said message. So a bridge could take a message, convert it to XML and broadcast
the message out to a Topic.&lt;br&gt;
&lt;br&gt;
Opening up the designer – it gets pretty cool I must say!!! 
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_14.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_6.png" width="1362" height="595"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;strong&gt;Note the ‘operations’ on the LHS&lt;/strong&gt;. I must have a play with these guys &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Smile" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/wlEmoticon-smile_2.png"&gt;&amp;nbsp;&lt;br&gt;
Another thought – how extensible is this? I’d bet we could write our own widgets to
throw on the design surface as well.&lt;br&gt;
&lt;br&gt;
By double clicking on the &lt;strong&gt;BridgeOrders &lt;/strong&gt;component, you can see the
designer surface come up with the ‘stage processing’.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_16.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_7.png" width="344" height="560"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Here you can see the ‘bridge’ (I wonder if that term will last till the release) will
accept only 2 types of message schemas – PO1 + PO2. Maps them out to a more generic &lt;strong&gt;PO
format&lt;/strong&gt;.&lt;br&gt;
The map – XMLTransform from my initial testing only applies one map, the first one
that matches the source schema (this is the same as BizTalk).&lt;br&gt;
&lt;br&gt;
Close the bridge view down and leave the &lt;strong&gt;BridgeConfiguration&lt;/strong&gt; open.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Click anywhere on the white surface of the BridgeConfiguration&lt;/strong&gt; and
set your &lt;strong&gt;Service Namespace &lt;/strong&gt;property from the Properties window (this
guy was hard to find!!)&lt;br&gt;
Put &lt;strong&gt;&amp;lt;your service namespace&amp;gt;&lt;/strong&gt; you created originally.&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_18.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_8.png" width="362" height="126"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Save and click &lt;strong&gt;Deploy &lt;/strong&gt;and a Deployment window comes up – put your
details in from above.&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_20.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_9.png" width="442" height="244"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
After deployment completes, keep an eye on the Output window as this has all the URLs
you’ll need for the next step. In particular the &lt;strong&gt;BridgeOrders&lt;/strong&gt;.&lt;br&gt;
&lt;br&gt;
Feel free to go back to your Azure Portal –&amp;gt; Resources and see your deployed bits
in there, Schemas, Transforms etc.&lt;br&gt;
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Running what you’ve built&lt;/strong&gt; – sending a message to the ‘bridge’ (here
I’ve borrowed info from the ‘Readme.html’ in the sample project folder)&lt;br&gt;
We don’t need to setup the whole EDI Trading partner piece. – just send messages to
a restful endpoint – aka the bridge.&lt;br&gt;
&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;
From the samples folder locate the &lt;strong&gt;Tools\MessageSender&lt;/strong&gt; project. (you
may have to build it in VS.NET first)&lt;/li&gt;
&lt;li&gt;
from a command prompt run &lt;strong&gt;messagesender.exe 
&lt;br&gt;
&lt;/strong&gt;&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_22.png"&gt;&lt;strong&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_10.png" width="1190" height="53"&gt;&lt;/strong&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
In my case it looks like this:&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_28.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_13.png" width="672" height="335"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Took me a little to get this originally, make sure all your VS.NET stuff is deployed
properly.&lt;br&gt;
&lt;br&gt;
So effectively we have sent PO1.xml to our ‘Bridge’ and it’s been accepted, validated
and transformed into ‘something else’ and popped onto a Queue called &lt;strong&gt;Samples/gettingstarted/QueueOrders.&lt;br&gt;
&lt;br&gt;
We will now get the message Reader to Read it.&lt;br&gt;
&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;
From under the &lt;strong&gt;Samples\Tools &lt;/strong&gt;folder locate the &lt;strong&gt;MessageReceiver &lt;/strong&gt;project
and build if required.&lt;/li&gt;
&lt;li&gt;
From a command prompt at that location, run the following to &lt;strong&gt;Listen&lt;/strong&gt; to
the queue&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_30.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-AppFabric-LabsEAI-Service-Bus-in-t_11ED4/image_thumb_14.png" width="672" height="335"&gt;&lt;/a&gt;
&lt;/li&gt;&gt;
&lt;p&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;strong&gt;&lt;/strong&gt; 
&lt;p&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Wrapping up - &lt;/strong&gt;
&lt;br&gt;
&lt;br&gt;
Here is obviously a quick walk through of what’s possible, performance, scale and
throughput are other measures that we haven’t got here – given it’s CTP/Labs we’re
not quite ready for that conversation.
&lt;/p&gt;
&lt;p&gt;
BizTalk adapter pack will expose out for e.g. your SAP system to a wider audience
and imagine having restful WCF services to call that provide you customer data in
the format you want…or better still…deliver it straight to you!&lt;br&gt;
(currently in BTS 2010, the adapter pack is licensed separately, it’s part of BTS
standard or enterprise. BTS2009 it *was* licensed separately for RRP $5K. Maybe we’ll
see this as a separate component again.)&lt;br&gt;
Or you could do like the SharePoint team and write a brand new WCF Adapter (‘connector’
in their terms) – ‘Duet’ and spend 18 months doing so.&lt;br&gt;
&lt;br&gt;
Some things I’d like to see here is a &lt;strong&gt;Rules Processor&lt;/strong&gt; or Engine –
being a long long BizTalk fan, the rules engine is a massive strength of any loosely
coupled solution. The majority of BizTalk solutions I come across don’t employ any
rules engines…or better still, Windows Workflow 2,3+ (but not 4 or 4.5) has a rules
‘executor’ which is very powerful in it’s own right. Who’s heard or used the Policy
shape?
&lt;/p&gt;
&lt;p&gt;
Given that this is a sneak peak at what is on the horizon, this is definitely a space
not to miss.
&lt;/p&gt;
&lt;p&gt;
Get those trial accounts going and enjoy!
&lt;/p&gt;
&lt;p&gt;
In particular I’d like to call out &lt;a href="http://rickgaribay.net/archive/2011/12/16/azure-service-bus-connect-eai-and-edi-ldquointegration-servicesrdquo-ctp.aspx" target="_blank"&gt;Rick’s
Article&lt;/a&gt; (well done Rick!) for a great read on this space also.
&lt;/p&gt;
&lt;p&gt;
Mick.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=a0ae34e6-cb75-42c0-9970-05baad02d8f2" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,a0ae34e6-cb75-42c0-9970-05baad02d8f2.aspx</comments>
      <category>Async</category>
      <category>BizTalk</category>
      <category>BizTalk/2010 R2</category>
      <category>BizTalk/BizTalk Adapter Pack</category>
      <category>BizTalk/BizTalk Adapter Pack/SAP</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=41d4fa95-911d-4f07-9ba0-644285833106</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,41d4fa95-911d-4f07-9ba0-644285833106.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,41d4fa95-911d-4f07-9ba0-644285833106.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=41d4fa95-911d-4f07-9ba0-644285833106</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hi folks, as you may/may not have been aware these are the core corner stone technologies
of the MS Integration Stack.
</p>
        <p>
The teams have been busily plugging away and coming up with the new versions – 4.5
corresponding to .NET 4.5 framework.
</p>
        <p>
Here’s some links that describe what’s new from MS Santa &amp; his elves:
</p>
        <ol>
          <li>
            <a href="http://msdn.microsoft.com/en-us/library/dd456789(v=vs.110).aspx" target="_blank">What's
New in Windows Communication Foundation 4.5</a>
          </li>
        </ol>
        <ol>
          <li>
New Items I found of note are:</li>
        </ol>
        <ul>
          <li>
New Service Transport Default values – keep an eye on these.</li>
          <li>
Improvements from VS.NET 2011 – validation , better intellisence support.</li>
          <li>
Streaming improved – true async (yay!)</li>
          <li>
WebSocket support – through NetHttp(s)Binding</li>
          <li>
Single WSDL file generation with <strong>‘?singleWSDL’</strong> (which is pretty handy)</li>
          <li>
Self hosted + II hosted allow you to get to <strong>ServiceHost</strong> from code
for dynamic configuration.</li>
          <li>
Binary Encoder supports compression!! – this is generally <strong>gzip</strong> compression.</li>
          <li>
My personal favourite – <strong>UDP support<br /></strong></li>
        </ul>
        <li>
          <a href="http://msdn.microsoft.com/en-us/library/hh305677(v=vs.110).aspx" target="_blank">What's
New in Windows Workflow Foundation in .NET 4.5</a>
        </li>
        <ol>
          <li>
New Items of note are:</li>
        </ol>
        <ul>
          <li>
New Activites – NoPersistScope (possible previously but we needed to write code)</li>
          <li>
WF Designer improvements – several here, but the ‘Outline view’ looks to be easier
to work with.</li>
          <li>
            <strong>C# Expressions</strong> – where’s the F# ones <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-sadsmile" alt="Sad smile" src="http://blogs.breezetraining.com.au/mickb/content/binary/Windows-Live-Writer/WCF-4.5-WF-4.5-VSNET-2011-Some-details_9F80/wlEmoticon-sadsmile_2.png" /> ??</li>
          <li>
Designer Annotations – add your own comments to keep control of the jungle that is
built.</li>
          <li>
WF Versioning – use WorkflowIdentity &amp; DefinitionIdentity to define the version. <strong>WorkflowServiceHost</strong> supports
multiple versions of the same WF. All pretty cool.</li>
          <li>
WF Designers can still be <strong>rehosted</strong> – I’ve used that many a place.</li>
          <li>
Contract First Development – ticks the boxes.<br /></li>
        </ul>
        <li>
          <strong>WF Rules – still didn’t make the cut. </strong>There is a sample for WF4 using
a custom Activity calling back to WF 3.5 <strong>Policy4</strong> it’s called. It
uses ‘interop’ back to WF3.5 and is found here - <a title="http://msdn.microsoft.com/en-us/library/dd797584(v=VS.100).aspx" href="http://msdn.microsoft.com/en-us/library/dd797584(v=VS.100).aspx">http://msdn.microsoft.com/en-us/library/dd797584(v=VS.100).aspx</a></li>
        <ol>
          <li>
Will have to check out perf in this new land on these rules.<br /></li>
        </ol>
        <li>
          <strong>Async CTP – </strong>while this didn’t make the ‘whats new’ list, it certainly
does deserve a mention here.<br />
Over the last year I’ve built some pretty serious F# projects, and F# has the async
support through and through the language. After over coming the challenge of learning
it, the Async functionality is absolutely brilliant!!! F# does a great job in being
able to turn a non-async chunk of code/method/class into an async one with by using
the keyword <strong>async </strong>and a <strong>!</strong>. It’s straight forward
from that aspect.<br /><br />
It’s great to see the C# &amp; VB.NETs being able to use the same fundamentals (albeit
not as slick IMO <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://blogs.breezetraining.com.au/mickb/content/binary/Windows-Live-Writer/WCF-4.5-WF-4.5-VSNET-2011-Some-details_9F80/wlEmoticon-winkingsmile_2.png" />).
– see a previous POST - <a title="http://blogs.breezetraining.com.au/mickb/2011/04/26/EasierAsyncProgrammingComingToCVBSoon.aspx" href="http://blogs.breezetraining.com.au/mickb/2011/04/26/EasierAsyncProgrammingComingToCVBSoon.aspx">http://blogs.breezetraining.com.au/mickb/2011/04/26/EasierAsyncProgrammingComingToCVBSoon.aspx</a><br /><br />
As developers we sit here and say – <strong>what do I need this for?</strong> My code
runs fine as it….and yes for the most part of what we do on our machine it does. This
technology really comes into it’s own when you want consistent throughput from a solution
with 1 person or 10000 concurrent people using it. That’s the difference.<br /><br /><strong>To use it:</strong></li>
        <ol>
          <li>
            <strong>Get VSNET 2011 </strong>(as it requires a new compiler)</li>
          <li>
Use <strong>ASYNC CTP (refresh3) </strong>with <strong>VSNET2010 SP1<br /></strong></li>
        </ol>
        <li>
Check it out from here - <a title="http://msdn.microsoft.com/en-us/vstudio/gg316360" href="http://msdn.microsoft.com/en-us/vstudio/gg316360">http://msdn.microsoft.com/en-us/vstudio/gg316360</a></li>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=41d4fa95-911d-4f07-9ba0-644285833106" />
      </body>
      <title>WCF 4.5 WF 4.5 VSNET 2011: Some details</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,41d4fa95-911d-4f07-9ba0-644285833106.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2011/12/12/WCF45WF45VSNET2011SomeDetails.aspx</link>
      <pubDate>Mon, 12 Dec 2011 01:00:52 GMT</pubDate>
      <description>&lt;p&gt;
Hi folks, as you may/may not have been aware these are the core corner stone technologies
of the MS Integration Stack.
&lt;/p&gt;
&lt;p&gt;
The teams have been busily plugging away and coming up with the new versions – 4.5
corresponding to .NET 4.5 framework.
&lt;/p&gt;
&lt;p&gt;
Here’s some links that describe what’s new from MS Santa &amp;amp; his elves:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;a href="http://msdn.microsoft.com/en-us/library/dd456789(v=vs.110).aspx" target="_blank"&gt;What's
New in Windows Communication Foundation 4.5&lt;/a&gt;
&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;
New Items I found of note are:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
New Service Transport Default values – keep an eye on these.&lt;/li&gt;
&lt;li&gt;
Improvements from VS.NET 2011 – validation , better intellisence support.&lt;/li&gt;
&lt;li&gt;
Streaming improved – true async (yay!)&lt;/li&gt;
&lt;li&gt;
WebSocket support – through NetHttp(s)Binding&lt;/li&gt;
&lt;li&gt;
Single WSDL file generation with &lt;strong&gt;‘?singleWSDL’&lt;/strong&gt; (which is pretty handy)&lt;/li&gt;
&lt;li&gt;
Self hosted + II hosted allow you to get to &lt;strong&gt;ServiceHost&lt;/strong&gt; from code
for dynamic configuration.&lt;/li&gt;
&lt;li&gt;
Binary Encoder supports compression!! – this is generally &lt;strong&gt;gzip&lt;/strong&gt; compression.&lt;/li&gt;
&lt;li&gt;
My personal favourite – &lt;strong&gt;UDP support&lt;br&gt;
&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&gt;
&lt;li&gt;
&lt;a href="http://msdn.microsoft.com/en-us/library/hh305677(v=vs.110).aspx" target="_blank"&gt;What's
New in Windows Workflow Foundation in .NET 4.5&lt;/a&gt;
&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;
New Items of note are:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
New Activites – NoPersistScope (possible previously but we needed to write code)&lt;/li&gt;
&lt;li&gt;
WF Designer improvements – several here, but the ‘Outline view’ looks to be easier
to work with.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;C# Expressions&lt;/strong&gt; – where’s the F# ones &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-sadsmile" alt="Sad smile" src="http://blogs.breezetraining.com.au/mickb/content/binary/Windows-Live-Writer/WCF-4.5-WF-4.5-VSNET-2011-Some-details_9F80/wlEmoticon-sadsmile_2.png"&gt; ??&lt;/li&gt;
&lt;li&gt;
Designer Annotations – add your own comments to keep control of the jungle that is
built.&lt;/li&gt;
&lt;li&gt;
WF Versioning – use WorkflowIdentity &amp;amp; DefinitionIdentity to define the version. &lt;strong&gt;WorkflowServiceHost&lt;/strong&gt; supports
multiple versions of the same WF. All pretty cool.&lt;/li&gt;
&lt;li&gt;
WF Designers can still be &lt;strong&gt;rehosted&lt;/strong&gt; – I’ve used that many a place.&lt;/li&gt;
&lt;li&gt;
Contract First Development – ticks the boxes.&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;strong&gt;WF Rules – still didn’t make the cut. &lt;/strong&gt;There is a sample for WF4 using
a custom Activity calling back to WF 3.5 &lt;strong&gt;Policy4&lt;/strong&gt; it’s called. It
uses ‘interop’ back to WF3.5 and is found here - &lt;a title="http://msdn.microsoft.com/en-us/library/dd797584(v=VS.100).aspx" href="http://msdn.microsoft.com/en-us/library/dd797584(v=VS.100).aspx"&gt;http://msdn.microsoft.com/en-us/library/dd797584(v=VS.100).aspx&lt;/a&gt;
&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;
Will have to check out perf in this new land on these rules.&lt;br&gt;
&lt;/li&gt;
&lt;/ol&gt;
&gt;
&lt;li&gt;
&lt;strong&gt;Async CTP – &lt;/strong&gt;while this didn’t make the ‘whats new’ list, it certainly
does deserve a mention here.&lt;br&gt;
Over the last year I’ve built some pretty serious F# projects, and F# has the async
support through and through the language. After over coming the challenge of learning
it, the Async functionality is absolutely brilliant!!! F# does a great job in being
able to turn a non-async chunk of code/method/class into an async one with by using
the keyword &lt;strong&gt;async &lt;/strong&gt;and a &lt;strong&gt;!&lt;/strong&gt;. It’s straight forward
from that aspect.&lt;br&gt;
&lt;br&gt;
It’s great to see the C# &amp;amp; VB.NETs being able to use the same fundamentals (albeit
not as slick IMO &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://blogs.breezetraining.com.au/mickb/content/binary/Windows-Live-Writer/WCF-4.5-WF-4.5-VSNET-2011-Some-details_9F80/wlEmoticon-winkingsmile_2.png"&gt;).
– see a previous POST - &lt;a title="http://blogs.breezetraining.com.au/mickb/2011/04/26/EasierAsyncProgrammingComingToCVBSoon.aspx" href="http://blogs.breezetraining.com.au/mickb/2011/04/26/EasierAsyncProgrammingComingToCVBSoon.aspx"&gt;http://blogs.breezetraining.com.au/mickb/2011/04/26/EasierAsyncProgrammingComingToCVBSoon.aspx&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
As developers we sit here and say – &lt;strong&gt;what do I need this for?&lt;/strong&gt; My code
runs fine as it….and yes for the most part of what we do on our machine it does. This
technology really comes into it’s own when you want consistent throughput from a solution
with 1 person or 10000 concurrent people using it. That’s the difference.&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;To use it:&lt;/strong&gt;
&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Get VSNET 2011 &lt;/strong&gt;(as it requires a new compiler)&lt;/li&gt;
&lt;li&gt;
Use &lt;strong&gt;ASYNC CTP (refresh3) &lt;/strong&gt;with &lt;strong&gt;VSNET2010 SP1&lt;br&gt;
&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;
Check it out from here - &lt;a title="http://msdn.microsoft.com/en-us/vstudio/gg316360" href="http://msdn.microsoft.com/en-us/vstudio/gg316360"&gt;http://msdn.microsoft.com/en-us/vstudio/gg316360&lt;/a&gt;
&lt;/li&gt;&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=41d4fa95-911d-4f07-9ba0-644285833106" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,41d4fa95-911d-4f07-9ba0-644285833106.aspx</comments>
      <category>.NET Developer</category>
      <category>Async</category>
      <category>BizTalk</category>
      <category>Dev</category>
      <category>Dev/.NET Framework 4.5</category>
    </item>
  </channel>
</rss>
