<?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/... - Tips</title>
    <link>http://blogs.breeze.net/mickb/</link>
    <description>Things hard and not so hard....</description>
    <language>en-us</language>
    <copyright>Breeze</copyright>
    <lastBuildDate>Mon, 20 May 2013 02:23:00 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=d2715669-1ba4-4827-9e48-3d75c1262cc0</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,d2715669-1ba4-4827-9e48-3d75c1262cc0.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,d2715669-1ba4-4827-9e48-3d75c1262cc0.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=d2715669-1ba4-4827-9e48-3d75c1262cc0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Well folks I’ve been greeted with the news that <strong>Microsoft Windows Azure will
be in 2 geo-replicated places here on Australian soil, </strong>coming ‘shortly’.
</p>
        <p>
As an Azure MVP &amp; from <a href="http://www.breeze.net" target="_blank">Breeze</a> (a
leading Microsoft Cloud Partner) perspective we invest heavily in cloud technologies.
</p>
        <p>
          <strong>What does this mean and why should I care?</strong> I hear you ask… good question
and I asked the same. 
</p>
        <p>
As most of you know I have a passion for Integration, sticking all sorts of things
together from small RFID devices, hand made hand-held devices, raspberry PIs through
to high end ERP, Financials &amp; many other types of systems. So before I get to
the WHY aspect, let me briefly set the context.
</p>
        <p>
There’s some great data coming out of Gartner a report which caught my eye - <a href="http://searchsoa.techtarget.com/news/2240173583/Gartner-Better-collaboration-for-new-era-of-application-integration">http://searchsoa.techtarget.com/news/2240173583/Gartner-Better-collaboration-for-new-era-of-application-integration</a> came
out with these:
</p>
        <ul>
          <li>
            <font style="background-color: #ffff00">Integration Costs to rise by 33% by 2016,
more than half of new system development costs will be spent on Integration </font>
          </li>
          <li>
            <font style="background-color: #ffff00">By 2017, over two-thirds of all new integration
flows will extend outside the enterprise firewall.</font>
          </li>
        </ul>
        <p>
          <strong>So Integration just took on a whole new face – successful integration is about
using the right tools (in the toolbox) for the right task.</strong> Now we have a
whole new drawer in our toolbox full of Azure goodies &amp; widgets. This functionality
is just too compelling to be ignored….
</p>
        <p>
…and now that it’s on Australian soil I’d be thinking that just about every Data center
service provider should be giving you cloud functionality.
</p>
        <p>
          <strong>Some quick cloud advantages</strong>:
</p>
        <ul>
          <li>
scale, provisioning and ease of use 
<ul><li>
Imagine being able to spin up a SharePoint site in the time it takes me to write this
article.<br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/243438c96f1b_11015/image_2.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/243438c96f1b_11015/image_thumb.png" width="244" height="173" /></a></li><li>
Imagine being able to ask for an extra load balanced highly available Server/Service
at the click of a button. Importantly – Imagine being able to give it back again at
the end of the weekend/day/next hour. 
<br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/243438c96f1b_11015/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; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/243438c96f1b_11015/image_thumb_1.png" width="244" height="95" /></a><br /></li></ul></li>
          <li>
Not wait the typical 12 weeks for a new server to be provisioned, oh and dont mention
filling out the right forms. Running an application on those machines and getting
a firewall port opened….that’ll be another 2 weeks…and on it goes.<br /></li>
          <li>
The much beloved Enlightenment for many companies of achieving Single Sign-On – Imagine
your customers being able to sign into your applications using their own Ids, Live
Ids, + a bunch of other Ids without you needing to provision more services. You can
house your identity accounts in Azure, locally or elsewhere – finally you don’t need
a Quantum Analyst to setup Single Sign-on.<br /></li>
          <li>
My experiences in the last few weeks on client sites have been back in the world of
old – classic encumbered infrastructure service providers wanting to claim everything,
put the brakes on any new ideas and have meetings around such concepts of adding an
extra 10gb disk space to existing servers. These guys should be ‘can do’ people –
it’s all about choosing the right tool for the job.<br /></li>
          <li>
Microsoft have done a great job on the developer tooling front from the classic MS
toolset through to Apple, PHP, Ruby, Phython etc. all being able to access, develop
on, publish and deploy.<br /></li>
          <li>
We could even give a bunch of HDD drives to Olaf (our gun cyclist @ Breeze) to ride
to the Azure Data Center and offload our data, while we wait for the NBN to never
come to our area.<br /></li>
          <li>
There are some great options on the horizon coming down the track.<br /></li>
        </ul>
        <p>
          <strong>So let’s say we’re keen to explore – how hard/easy is it to get ‘my’ own environment
&amp; what does this mean.</strong>
        </p>
        <p>
The short answer is you get an Azure Footprint which could be running in a ‘Data Center’
in Sydney. Depending on what you’re playing with you could get:
</p>
        <p>
- SQL Databases, Cloud Services, Scalable Mobile Device Services, Load balanced Websites/Services/Restful
endpoints…and the list of ‘widgets’ goes on and on.
</p>
        <p>
          <strong>How do I interact with this environment</strong>:
</p>
        <p>
Often the issue around alot of this is that because my beloved ‘servers’ are running
somewhere else I’m concerned over how much control we get.
</p>
        <p>
We enter into the <strong>Hybrid Integration </strong>space – where as you can imagine
not *everything* is suited for the Cloud, there will be things you keep exactly as
they are. So there will be many many scenarios where – we have something running locally
as well as something running in Azure. Some options we have available are to make
our servers ‘feel at home’:
</p>
        <ul>
          <li>
            <strong>VPN connection</strong> – we can have several flavours of a VPN connection
that connect our <strong>Azure Footprint</strong> to our local network. for e.g. local
network is 10.10.x.x/16, Azure network 10.50.x.x/16. Full access to all the machines/services
and other things you have running. CRON jobs, FTP, scripts, processes, linux boxes,
samba shares, etc etc.. (I do realise the integration world is never as easy as we
see it in the magazines)<br /></li>
          <li>
            <strong>RDP Connections – </strong>standard level of service really from any Service
provider.<br /></li>
          <li>
            <strong>Remote PowerShell Access 
<br /></strong>
          </li>
          <li>
            <strong>Azure Service Bus - Applications Level Web/WCF/Restful Services </strong>connectivity.
An Application Service can run either locally or in the cloud and this feature allows
your Service to be accessed through a consistent Endpoint within the cloud, but the
calls are Relayed down to your Application Service. There’s a few different ways we
can ‘relay’ but the public endpoint could house all the clients &amp; their device
requests, while your existing application infrastructure remains unchanged.<br /></li>
          <li>
            <strong>SQL Azure Data Sync – </strong>sync data between clouds &amp; local from your
databases. So for many clients, come 8pm each day, their local database has all the
Orders for the day as per normal, without the usual provisioning headaches as the
business responds to new market opportunities to support smart devices.<br /></li>
          <li>
            <strong>We even get pretty graphs….<br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/243438c96f1b_11015/image_6.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; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/243438c96f1b_11015/image_thumb_2.png" width="244" height="103" /></a></strong>
            <ul>
              <li>
But wait there’s more….. 
</li>
              <li>
These details are typical performance monitor counters + diagnostic information. We
can use Azure Admin tools to import these regularly and import them into our typical
tools. 
</li>
              <li>
System Center does exactly this – so our ‘dashboard’ of machines will list our local
machines as well as our cloud machines. Your IT guys have visibility into what’s going
on.</li>
            </ul>
          </li>
        </ul>
        <p>
We’ve been using Singapore DCs or West Coast US with pretty good performance times
across the infrastructure.  
</p>
        <p>
          <strong>What does having a local Windows Azure Data Center mean to me:</strong>
        </p>
        <ul>
          <li>
            <strong>Medical Industry</strong> – we have several medical clients allowing us to
innovate around Cloud technologies using HL7 transports. Faster time to market and
higher degrees of re-use. 
</li>
          <li>
            <strong>Cloud Lab Manager – </strong>
            <a href="http://www.cloudlabmanager.com">www.cloudlabmanager.com</a> can
run locally for all training providers. Breeze has created an award winning cloud
based application that will certainly benefit from this piece of great news. 
</li>
          <li>
            <strong>Creating a cloud based application is now feasible</strong> (this particular
one was due to the sensitive nature of information it carried) 
</li>
          <li>
            <strong>And lastly I can house my MineCraft server – </strong>well it’s my 10 yr old
sons and half the school I reckon.</li>
        </ul>
        <p>
          <strong>
          </strong> 
</p>
        <p>
          <strong>So for you…</strong>
        </p>
        <p>
Ask yourself the question – are you getting all these features from where you currently
host/run your hardware?
</p>
        <p>
Lack of infrastructure and provisioning challenges shouldn’t be holding back new ideas
&amp; business movement. iPads, smartphones, anywhere, any time access should be the
norm, not like we’re putting another person on the moon.
</p>
        <p>
          <strong>It’s all about using the right tool for the job</strong>
        </p>
        <p>
Enjoy folks as it’s certainly exciting times for us Aussies ahead!!
</p>
        <p>
          <a href="http://blogs.msdn.com/b/ausblog/archive/2013/05/16/windows-azure-expands-downunder.aspx" target="_blank">Microsoft’s
Announcement</a>
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=d2715669-1ba4-4827-9e48-3d75c1262cc0" />
      </body>
      <title>Local Windows Azure: Integrate, Innovate &amp; Australia just got smarter</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,d2715669-1ba4-4827-9e48-3d75c1262cc0.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2013/05/20/LocalWindowsAzureIntegrateInnovateAustraliaJustGotSmarter.aspx</link>
      <pubDate>Mon, 20 May 2013 02:23:00 GMT</pubDate>
      <description>&lt;p&gt;
Well folks I’ve been greeted with the news that &lt;strong&gt;Microsoft Windows Azure will
be in 2 geo-replicated places here on Australian soil, &lt;/strong&gt;coming ‘shortly’.
&lt;/p&gt;
&lt;p&gt;
As an Azure MVP &amp;amp; from &lt;a href="http://www.breeze.net" target="_blank"&gt;Breeze&lt;/a&gt; (a
leading Microsoft Cloud Partner) perspective we invest heavily in cloud technologies.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;What does this mean and why should I care?&lt;/strong&gt; I hear you ask… good question
and I asked the same. 
&lt;/p&gt;
&lt;p&gt;
As most of you know I have a passion for Integration, sticking all sorts of things
together from small RFID devices, hand made hand-held devices, raspberry PIs through
to high end ERP, Financials &amp;amp; many other types of systems. So before I get to
the WHY aspect, let me briefly set the context.
&lt;/p&gt;
&lt;p&gt;
There’s some great data coming out of Gartner a report which caught my eye - &lt;a href="http://searchsoa.techtarget.com/news/2240173583/Gartner-Better-collaboration-for-new-era-of-application-integration"&gt;http://searchsoa.techtarget.com/news/2240173583/Gartner-Better-collaboration-for-new-era-of-application-integration&lt;/a&gt; came
out with these:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font style="background-color: #ffff00"&gt;Integration Costs to rise by 33% by 2016,
more than half of new system development costs will be spent on Integration &lt;/font&gt; 
&lt;li&gt;
&lt;font style="background-color: #ffff00"&gt;By 2017, over two-thirds of all new integration
flows will extend outside the enterprise firewall.&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;So Integration just took on a whole new face – successful integration is about
using the right tools (in the toolbox) for the right task.&lt;/strong&gt; Now we have a
whole new drawer in our toolbox full of Azure goodies &amp;amp; widgets. This functionality
is just too compelling to be ignored….
&lt;/p&gt;
&lt;p&gt;
…and now that it’s on Australian soil I’d be thinking that just about every Data center
service provider should be giving you cloud functionality.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Some quick cloud advantages&lt;/strong&gt;:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
scale, provisioning and ease of use 
&lt;ul&gt;
&lt;li&gt;
Imagine being able to spin up a SharePoint site in the time it takes me to write this
article.&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/243438c96f1b_11015/image_2.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/243438c96f1b_11015/image_thumb.png" width="244" height="173"&gt;&lt;/a&gt; 
&lt;li&gt;
Imagine being able to ask for an extra load balanced highly available Server/Service
at the click of a button. Importantly – Imagine being able to give it back again at
the end of the weekend/day/next hour. 
&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/243438c96f1b_11015/image_4.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/243438c96f1b_11015/image_thumb_1.png" width="244" height="95"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
Not wait the typical 12 weeks for a new server to be provisioned, oh and dont mention
filling out the right forms. Running an application on those machines and getting
a firewall port opened….that’ll be another 2 weeks…and on it goes.&lt;br&gt;
&lt;li&gt;
The much beloved Enlightenment for many companies of achieving Single Sign-On – Imagine
your customers being able to sign into your applications using their own Ids, Live
Ids, + a bunch of other Ids without you needing to provision more services. You can
house your identity accounts in Azure, locally or elsewhere – finally you don’t need
a Quantum Analyst to setup Single Sign-on.&lt;br&gt;
&lt;li&gt;
My experiences in the last few weeks on client sites have been back in the world of
old – classic encumbered infrastructure service providers wanting to claim everything,
put the brakes on any new ideas and have meetings around such concepts of adding an
extra 10gb disk space to existing servers. These guys should be ‘can do’ people –
it’s all about choosing the right tool for the job.&lt;br&gt;
&lt;li&gt;
Microsoft have done a great job on the developer tooling front from the classic MS
toolset through to Apple, PHP, Ruby, Phython etc. all being able to access, develop
on, publish and deploy.&lt;br&gt;
&lt;li&gt;
We could even give a bunch of HDD drives to Olaf (our gun cyclist @ Breeze) to ride
to the Azure Data Center and offload our data, while we wait for the NBN to never
come to our area.&lt;br&gt;
&lt;li&gt;
There are some great options on the horizon coming down the track.&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;So let’s say we’re keen to explore – how hard/easy is it to get ‘my’ own environment
&amp;amp; what does this mean.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The short answer is you get an Azure Footprint which could be running in a ‘Data Center’
in Sydney. Depending on what you’re playing with you could get:
&lt;/p&gt;
&lt;p&gt;
- SQL Databases, Cloud Services, Scalable Mobile Device Services, Load balanced Websites/Services/Restful
endpoints…and the list of ‘widgets’ goes on and on.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;How do I interact with this environment&lt;/strong&gt;:
&lt;/p&gt;
&lt;p&gt;
Often the issue around alot of this is that because my beloved ‘servers’ are running
somewhere else I’m concerned over how much control we get.
&lt;/p&gt;
&lt;p&gt;
We enter into the &lt;strong&gt;Hybrid Integration &lt;/strong&gt;space – where as you can imagine
not *everything* is suited for the Cloud, there will be things you keep exactly as
they are. So there will be many many scenarios where – we have something running locally
as well as something running in Azure. Some options we have available are to make
our servers ‘feel at home’:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;VPN connection&lt;/strong&gt; – we can have several flavours of a VPN connection
that connect our &lt;strong&gt;Azure Footprint&lt;/strong&gt; to our local network. for e.g. local
network is 10.10.x.x/16, Azure network 10.50.x.x/16. Full access to all the machines/services
and other things you have running. CRON jobs, FTP, scripts, processes, linux boxes,
samba shares, etc etc.. (I do realise the integration world is never as easy as we
see it in the magazines)&lt;br&gt;
&lt;li&gt;
&lt;strong&gt;RDP Connections – &lt;/strong&gt;standard level of service really from any Service
provider.&lt;br&gt;
&lt;li&gt;
&lt;strong&gt;Remote PowerShell Access 
&lt;br&gt;
&lt;/strong&gt; 
&lt;li&gt;
&lt;strong&gt;Azure Service Bus - Applications Level Web/WCF/Restful Services &lt;/strong&gt;connectivity.
An Application Service can run either locally or in the cloud and this feature allows
your Service to be accessed through a consistent Endpoint within the cloud, but the
calls are Relayed down to your Application Service. There’s a few different ways we
can ‘relay’ but the public endpoint could house all the clients &amp;amp; their device
requests, while your existing application infrastructure remains unchanged.&lt;br&gt;
&lt;li&gt;
&lt;strong&gt;SQL Azure Data Sync – &lt;/strong&gt;sync data between clouds &amp;amp; local from your
databases. So for many clients, come 8pm each day, their local database has all the
Orders for the day as per normal, without the usual provisioning headaches as the
business responds to new market opportunities to support smart devices.&lt;br&gt;
&lt;li&gt;
&lt;strong&gt;We even get pretty graphs….&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/243438c96f1b_11015/image_6.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/243438c96f1b_11015/image_thumb_2.png" width="244" height="103"&gt;&lt;/a&gt;&lt;/strong&gt; 
&lt;ul&gt;
&lt;li&gt;
But wait there’s more….. 
&lt;li&gt;
These details are typical performance monitor counters + diagnostic information. We
can use Azure Admin tools to import these regularly and import them into our typical
tools. 
&lt;li&gt;
System Center does exactly this – so our ‘dashboard’ of machines will list our local
machines as well as our cloud machines. Your IT guys have visibility into what’s going
on.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
We’ve been using Singapore DCs or West Coast US with pretty good performance times
across the infrastructure.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;What does having a local Windows Azure Data Center mean to me:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Medical Industry&lt;/strong&gt; – we have several medical clients allowing us to
innovate around Cloud technologies using HL7 transports. Faster time to market and
higher degrees of re-use. 
&lt;li&gt;
&lt;strong&gt;Cloud Lab Manager – &lt;/strong&gt;&lt;a href="http://www.cloudlabmanager.com"&gt;www.cloudlabmanager.com&lt;/a&gt; can
run locally for all training providers. Breeze has created an award winning cloud
based application that will certainly benefit from this piece of great news. 
&lt;li&gt;
&lt;strong&gt;Creating a cloud based application is now feasible&lt;/strong&gt; (this particular
one was due to the sensitive nature of information it carried) 
&lt;li&gt;
&lt;strong&gt;And lastly I can house my MineCraft server – &lt;/strong&gt;well it’s my 10 yr old
sons and half the school I reckon.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;So for you…&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Ask yourself the question – are you getting all these features from where you currently
host/run your hardware?
&lt;/p&gt;
&lt;p&gt;
Lack of infrastructure and provisioning challenges shouldn’t be holding back new ideas
&amp;amp; business movement. iPads, smartphones, anywhere, any time access should be the
norm, not like we’re putting another person on the moon.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;It’s all about using the right tool for the job&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Enjoy folks as it’s certainly exciting times for us Aussies ahead!!
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.msdn.com/b/ausblog/archive/2013/05/16/windows-azure-expands-downunder.aspx" target="_blank"&gt;Microsoft’s
Announcement&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=d2715669-1ba4-4827-9e48-3d75c1262cc0" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,d2715669-1ba4-4827-9e48-3d75c1262cc0.aspx</comments>
      <category>Azure</category>
      <category>Azure/Integration</category>
      <category>Azure/ServiceBus</category>
      <category>BizTalk</category>
      <category>BizTalk/SharePoint</category>
      <category>Dev</category>
      <category>Events</category>
      <category>General</category>
      <category>Tips</category>
      <category>Training</category>
      <category>Win2012</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=caa4df19-1b36-4656-9e04-06b509bb3524</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,caa4df19-1b36-4656-9e04-06b509bb3524.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,caa4df19-1b36-4656-9e04-06b509bb3524.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=caa4df19-1b36-4656-9e04-06b509bb3524</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
“Ding ding” after spending 4 rounds(hours) in the ring with this guy, I’m taking the
gloves off and heading for the showers and salts.
</p>
        <p>
I’m in the middle of some BizTalk work (which is nice for a change) and I’m ticking
my tasks off.
</p>
        <p>
I’ve got a REST receive port exposed from BizTalk via IIS and published through the
WCF Publishing Wizard.
</p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/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/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/image_thumb.png" width="599" height="484" />
          </a>
        </p>
        <p>
(there’s Operations mappings and extracting variables from the URL to Context Properties
under the <strong>Configure – </strong>omitted for brevity)
</p>
        <p>
Couple of shots of the WCF Service Publishing Wizard:
</p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/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/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/image_thumb_1.png" width="621" height="484" />
          </a>
        </p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/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/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/image_thumb_2.png" width="621" height="484" />
          </a>
        </p>
        <p>
The issue here is that – once the Wizard completes you’ll get:
</p>
        <p>
          <strong>http://&lt;servername&gt;/coreapi/customer/Service1.svc</strong> as the URL
to call<strong>.</strong></p>
        <p>
          <strong>The task was simple:</strong>
        </p>
        <p>
I wanted to call URLs such as
</p>
        <p>
          <strong>http://&lt;servername&gt;/coreapi/customer/123456789/enquire</strong>
        </p>
        <p>
          <strong>http://&lt;servername&gt;/coreapi/customer/123456789/verify</strong>
        </p>
        <p>
          <strong>etc.</strong> 
</p>
        <p>
And not their equivalents of:
</p>
        <p>
          <strong>http://&lt;servername&gt;/coreapi/customer/Service1.svc/123456789/enquire</strong>
        </p>
        <p>
 
</p>
        <p>
The Solution was to use <strong>IIS URL Rewrite</strong> which looks to be the Swiss
Army knife that MacGuyver uses.. (but he only needs a paperclip to take out an entire
train).
</p>
        <p>
Lots of samples and numerous examples of solutions that work and people are high-fiving
in about 5 mins of starting…alas not for me <img class="wlEmoticon wlEmoticon-sadsmile" style="border-top-style: none; border-left-style: none; border-bottom-style: none; border-right-style: none" alt="Sad smile" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/wlEmoticon-sadsmile_2.png" />.
The other point to note here also is that a <strong>URL Rewrite </strong>module exists
for:
</p>
        <ul>
          <li>
Default Web Site</li>
          <li>
Each IIS Application under the Root Website.</li>
        </ul>
        <p>
I wanted to keep things confined to just my IIS Application and not have to have requirements
of changing the Default Web Site for instance.
</p>
        <p>
The tricky part was to find out how IIS works and it’s matching.
</p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/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; 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/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/image_thumb_3.png" width="184" height="155" />
          </a>
        </p>
        <p>
Underneath <strong>CoreApi </strong>I have <strong>Customer</strong> as an Application
as in
</p>
        <p>
/coreapi/customer 
</p>
        <p>
**The part that URL Rewrite appears to do** (that floored me for a while)
</p>
        <p>
It chunks the FULL REQUEST and passes just the part required to your app.
</p>
        <p>
So take the full URL:
</p>
        <p>
http://localhost/coreapi/customer/1234234/enquire
</p>
        <p>
As you traverse down the IIS ‘Application tree’ the URL that is passed to each URL
Rewrite in each underlying IIS Application is *different*, as in:
</p>
        <ul>
          <li>
/coreapi = ‘customer/1234234/enquire’</li>
          <li>
/coreapi/customer = ‘1234234/enquire’</li>
        </ul>
        <p>
This was possibly the hardest piece to figure out. I’d setup failed request tracing
in IIS and those logs, while I feel like I’m walking into the Engineering room of
the century with all the logs, pages and info… I wasn’t seeing ‘URL Rewrite failed
to apply your rule because …..’  - it just wasn’t appearing plain and simple.
</p>
        <p>
          <strong>URL Rewrite – the rules that won the show</strong>
        </p>
        <ol>
          <li>
Under <strong>/coreapi/customer in IIS Manager</strong></li>
          <li>
Started off with a <strong>Blank Rule</strong> and setup the following:</li>
        </ol>
        <ol>
          <li>
            <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/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; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/image_thumb_4.png" width="644" height="423" />
            </a>
          </li>
          <li>
            <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/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/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/image_thumb_6.png" width="644" height="249" />
            </a>
          </li>
        </ol>
        <p>
So the RegEx Rule (at this level) simply states – if the Request begins with a number,
then prepend ‘Service1.svc/’ to it.
</p>
        <p>
The key is knowing what the URL being passed to URL Rewrite is at this level in the
IIS Application/vdir tree.
</p>
        <p>
What the web.config says at this level:
</p>
        <p>
&lt;rewrite&gt;<br />
           &lt;rules&gt;<br />
              
&lt;rule name="CoreApi Rule" patternSyntax="ECMAScript"&gt;<br />
                  
&lt;match url="([0-9].*)" /&gt;<br />
                  
&lt;action type="Rewrite" url="Service1.svc/{R:1}" appendQueryString="false" logRewrittenUrl="true"
/&gt;<br />
              
&lt;/rule&gt;<br />
           &lt;/rules&gt;<br />
       &lt;/rewrite&gt;<br /></p>
        <p>
I hope I’ve saved you a bit of time on your next endeavour.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=caa4df19-1b36-4656-9e04-06b509bb3524" />
      </body>
      <title>BizTalk: REST getting nice URLs with IIS Url Rewrite</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,caa4df19-1b36-4656-9e04-06b509bb3524.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2013/02/19/BizTalkRESTGettingNiceURLsWithIISUrlRewrite.aspx</link>
      <pubDate>Tue, 19 Feb 2013 05:12:33 GMT</pubDate>
      <description>&lt;p&gt;
“Ding ding” after spending 4 rounds(hours) in the ring with this guy, I’m taking the
gloves off and heading for the showers and salts.
&lt;/p&gt;
&lt;p&gt;
I’m in the middle of some BizTalk work (which is nice for a change) and I’m ticking
my tasks off.
&lt;/p&gt;
&lt;p&gt;
I’ve got a REST receive port exposed from BizTalk via IIS and published through the
WCF Publishing Wizard.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/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/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/image_thumb.png" width="599" height="484"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
(there’s Operations mappings and extracting variables from the URL to Context Properties
under the &lt;strong&gt;Configure – &lt;/strong&gt;omitted for brevity)
&lt;/p&gt;
&lt;p&gt;
Couple of shots of the WCF Service Publishing Wizard:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/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/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/image_thumb_1.png" width="621" height="484"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/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/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/image_thumb_2.png" width="621" height="484"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The issue here is that – once the Wizard completes you’ll get:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;http://&amp;lt;servername&amp;gt;/coreapi/customer/Service1.svc&lt;/strong&gt; as the URL
to call&lt;strong&gt;.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The task was simple:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I wanted to call URLs such as
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;http://&amp;lt;servername&amp;gt;/coreapi/customer/123456789/enquire&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;http://&amp;lt;servername&amp;gt;/coreapi/customer/123456789/verify&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;etc.&lt;/strong&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
And not their equivalents of:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;http://&amp;lt;servername&amp;gt;/coreapi/customer/Service1.svc/123456789/enquire&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
The Solution was to use &lt;strong&gt;IIS URL Rewrite&lt;/strong&gt; which looks to be the Swiss
Army knife that MacGuyver uses.. (but he only needs a paperclip to take out an entire
train).
&lt;/p&gt;
&lt;p&gt;
Lots of samples and numerous examples of solutions that work and people are high-fiving
in about 5 mins of starting…alas not for me &lt;img class="wlEmoticon wlEmoticon-sadsmile" style="border-top-style: none; border-left-style: none; border-bottom-style: none; border-right-style: none" alt="Sad smile" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/wlEmoticon-sadsmile_2.png"&gt;.
The other point to note here also is that a &lt;strong&gt;URL Rewrite &lt;/strong&gt;module exists
for:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Default Web Site&lt;/li&gt;
&lt;li&gt;
Each IIS Application under the Root Website.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I wanted to keep things confined to just my IIS Application and not have to have requirements
of changing the Default Web Site for instance.
&lt;/p&gt;
&lt;p&gt;
The tricky part was to find out how IIS works and it’s matching.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/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; 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/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/image_thumb_3.png" width="184" height="155"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Underneath &lt;strong&gt;CoreApi &lt;/strong&gt;I have &lt;strong&gt;Customer&lt;/strong&gt; as an Application
as in
&lt;/p&gt;
&lt;p&gt;
/coreapi/customer 
&lt;/p&gt;
&lt;p&gt;
**The part that URL Rewrite appears to do** (that floored me for a while)
&lt;/p&gt;
&lt;p&gt;
It chunks the FULL REQUEST and passes just the part required to your app.
&lt;/p&gt;
&lt;p&gt;
So take the full URL:
&lt;/p&gt;
&lt;p&gt;
http://localhost/coreapi/customer/1234234/enquire
&lt;/p&gt;
&lt;p&gt;
As you traverse down the IIS ‘Application tree’ the URL that is passed to each URL
Rewrite in each underlying IIS Application is *different*, as in:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
/coreapi = ‘customer/1234234/enquire’&lt;/li&gt;
&lt;li&gt;
/coreapi/customer = ‘1234234/enquire’&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
This was possibly the hardest piece to figure out. I’d setup failed request tracing
in IIS and those logs, while I feel like I’m walking into the Engineering room of
the century with all the logs, pages and info… I wasn’t seeing ‘URL Rewrite failed
to apply your rule because …..’&amp;nbsp; - it just wasn’t appearing plain and simple.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;URL Rewrite – the rules that won the show&lt;/strong&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Under &lt;strong&gt;/coreapi/customer in IIS Manager&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
Started off with a &lt;strong&gt;Blank Rule&lt;/strong&gt; and setup the following:&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/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; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/image_thumb_4.png" width="644" height="423"&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/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/BizTalk-REST-getting-nice-URLs-with-IIS-_DCBD/image_thumb_6.png" width="644" height="249"&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;
&gt;
&lt;p&gt;
So the RegEx Rule (at this level) simply states – if the Request begins with a number,
then prepend ‘Service1.svc/’ to it.
&lt;/p&gt;
&lt;p&gt;
The key is knowing what the URL being passed to URL Rewrite is at this level in the
IIS Application/vdir tree.
&lt;/p&gt;
&lt;p&gt;
What the web.config says at this level:
&lt;/p&gt;
&lt;p&gt;
&amp;lt;rewrite&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;rules&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;rule name="CoreApi Rule" patternSyntax="ECMAScript"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;match url="([0-9].*)" /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;action type="Rewrite" url="Service1.svc/{R:1}" appendQueryString="false" logRewrittenUrl="true"
/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/rule&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/rules&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/rewrite&amp;gt;&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
I hope I’ve saved you a bit of time on your next endeavour.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=caa4df19-1b36-4656-9e04-06b509bb3524" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,caa4df19-1b36-4656-9e04-06b509bb3524.aspx</comments>
      <category>BizTalk</category>
      <category>BizTalk/BizTalk 2013</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=d4bde347-853b-41b0-9e1c-11ce2ecbf500</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,d4bde347-853b-41b0-9e1c-11ce2ecbf500.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,d4bde347-853b-41b0-9e1c-11ce2ecbf500.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=d4bde347-853b-41b0-9e1c-11ce2ecbf500</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
After wrestling with this tonight for sometime I’ve finally cracked it. SP2013 RTMed
and alot of the sample code fails due to the fact that you need to now add ‘..;odata=verbose’
onto pretty much every call to SharePoint.
</p>
        <p>
Basically you get a series of errors such as:
</p>
        <p>
          <strong>MIME</strong>
          <strong>type</strong>
          <strong>could</strong>
          <strong>not</strong>
          <strong>be
found</strong>
          <strong>that matches</strong>
          <strong>the content</strong>
          <strong>type</strong>
          <strong>of
the response</strong>. <strong>None</strong><strong>of the supported</strong><strong>type</strong>(<strong>s</strong>)
'<strong>application/atom+xml;type=entry</strong>, <strong>application/atom+xml</strong>, <strong>application/json;odata=verbose</strong></p>
        <p>
 
</p>
        <p>
Previously alot of the sample code has
</p>
        <p>
$.getJSON(….) as part of the call to the server – as mentioned we now need to add
some custom header values of ‘<strong>odata=verbose</strong>’, so to save you hours
of slogging on this, the getJSON call doesn’t allow custom header values. You need
to use the <strong>$.ajax(…)</strong> for these calls.
</p>
        <p>
          <strong>READING FROM A LIST</strong>
        </p>
        <p>
          <strong>function getCustomers() {<br /></strong> 
</p>
        <p>
  // begin work to call across network<br />
  var requestUri = _spPageContextInfo.webAbsoluteUrl +<br />
               
"/_api/Web/Lists/getByTitle('CustomersREST')/items/" +<br />
               
"?$select=Id,FirstName,Title,WorkPhone" +<br />
               
"&amp;$orderby=Title,FirstName";<br />
    
<br />
  var requestHeaders = {<br />
      "accept": "application/json;odata=verbose"<br />
  }<br />
    // execute AJAX request 
<br />
  $.ajax({<br />
      url: requestUri,<br />
      type: 'GET',<br />
      dataType: 'json',<br />
      headers: requestHeaders,<br />
      success: onDataReturned,<br />
      error: onError<br />
  });<br />
}
</p>
        <p>
 
</p>
        <p>
          <strong>UPDATING A LIST ITEM</strong>
        </p>
        <p>
//Sample code to update a Customer List Item in a Customer List called ‘CustomersREST’
</p>
        <p>
          <strong>function updateCustomer(</strong>dialogResult, returnValue) {
</p>
        <p>
  if (dialogResult == SP.UI.DialogResult.OK) {<br />
    var Id = returnValue.Id;<br />
    var FirstName = returnValue.FirstName;<br />
    var LastName = returnValue.LastName;<br />
    var WorkPhone = returnValue.WorkPhone;<br />
    var etag = returnValue.etag;
</p>
        <p>
    var requestUri = _spPageContextInfo.webAbsoluteUrl +<br />
              "/_api/Web/Lists/getByTitle('CustomersREST')/items("
+ Id + ")";
</p>
        <p>
    var customerData = {<br />
      __metadata: { "type": "SP.Data.CustomersRESTListItem"
},<br />
      Title: LastName,<br />
      FirstName: FirstName,<br />
      WorkPhone: WorkPhone<br />
    };
</p>
        <p>
    requestBody = JSON.stringify(customerData);
</p>
        <p>
    var requestHeaders = {<br />
        "accept": "application/json;odata=verbose",<br />
        "X-RequestDigest": $("#__REQUESTDIGEST").val(),<br />
        "X-HTTP-Method": "MERGE",<br />
        "content-length": requestBody.length,<br />
        "content-type" : "application/json;odata=verbose",<br />
        "If-Match": etag<br />
    }
</p>
        <p>
    $.ajax({<br />
      url: requestUri,<br />
      type: "POST",<br />
      contentType: "application/json;odata=verbose",<br />
      headers: requestHeaders,<br />
      data: requestBody,<br />
      success: onSuccess,<br />
      error: onError<br />
    });
</p>
        <p>
  }
</p>
        <p>
}
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=d4bde347-853b-41b0-9e1c-11ce2ecbf500" />
      </body>
      <title>SP2013: Updating a List using REST in OData format from JavaScript</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,d4bde347-853b-41b0-9e1c-11ce2ecbf500.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2013/02/11/SP2013UpdatingAListUsingRESTInODataFormatFromJavaScript.aspx</link>
      <pubDate>Mon, 11 Feb 2013 11:47:06 GMT</pubDate>
      <description>&lt;p&gt;
After wrestling with this tonight for sometime I’ve finally cracked it. SP2013 RTMed
and alot of the sample code fails due to the fact that you need to now add ‘..;odata=verbose’
onto pretty much every call to SharePoint.
&lt;/p&gt;
&lt;p&gt;
Basically you get a series of errors such as:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;MIME&lt;/strong&gt; &lt;strong&gt;type&lt;/strong&gt; &lt;strong&gt;could&lt;/strong&gt; &lt;strong&gt;not&lt;/strong&gt; &lt;strong&gt;be
found&lt;/strong&gt; &lt;strong&gt;that matches&lt;/strong&gt; &lt;strong&gt;the content&lt;/strong&gt; &lt;strong&gt;type&lt;/strong&gt; &lt;strong&gt;of
the response&lt;/strong&gt;. &lt;strong&gt;None&lt;/strong&gt; &lt;strong&gt;of the supported&lt;/strong&gt; &lt;strong&gt;type&lt;/strong&gt;(&lt;strong&gt;s&lt;/strong&gt;)
'&lt;strong&gt;application/atom+xml;type=entry&lt;/strong&gt;, &lt;strong&gt;application/atom+xml&lt;/strong&gt;, &lt;strong&gt;application/json;odata=verbose&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Previously alot of the sample code has
&lt;/p&gt;
&lt;p&gt;
$.getJSON(….) as part of the call to the server – as mentioned we now need to add
some custom header values of ‘&lt;strong&gt;odata=verbose&lt;/strong&gt;’, so to save you hours
of slogging on this, the getJSON call doesn’t allow custom header values. You need
to use the &lt;strong&gt;$.ajax(…)&lt;/strong&gt; for these calls.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;READING FROM A LIST&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;function getCustomers() {&lt;br&gt;
&lt;/strong&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp; // begin work to call across network&lt;br&gt;
&amp;nbsp; var requestUri = _spPageContextInfo.webAbsoluteUrl +&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
"/_api/Web/Lists/getByTitle('CustomersREST')/items/" +&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
"?$select=Id,FirstName,Title,WorkPhone" +&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
"&amp;amp;$orderby=Title,FirstName";&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
&amp;nbsp; var requestHeaders = {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "accept": "application/json;odata=verbose"&lt;br&gt;
&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; // execute AJAX request 
&lt;br&gt;
&amp;nbsp; $.ajax({&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url: requestUri,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type: 'GET',&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataType: 'json',&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; headers: requestHeaders,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; success: onDataReturned,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error: onError&lt;br&gt;
&amp;nbsp; });&lt;br&gt;
}
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;UPDATING A LIST ITEM&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
//Sample code to update a Customer List Item in a Customer List called ‘CustomersREST’
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;function updateCustomer(&lt;/strong&gt;dialogResult, returnValue) {
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp; if (dialogResult == SP.UI.DialogResult.OK) {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var Id = returnValue.Id;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var FirstName = returnValue.FirstName;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var LastName = returnValue.LastName;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var WorkPhone = returnValue.WorkPhone;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var etag = returnValue.etag;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var requestUri = _spPageContextInfo.webAbsoluteUrl +&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "/_api/Web/Lists/getByTitle('CustomersREST')/items("
+ Id + ")";
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var customerData = {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __metadata: { "type": "SP.Data.CustomersRESTListItem"
},&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Title: LastName,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FirstName: FirstName,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WorkPhone: WorkPhone&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; };
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; requestBody = JSON.stringify(customerData);
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var requestHeaders = {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "accept": "application/json;odata=verbose",&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "X-RequestDigest": $("#__REQUESTDIGEST").val(),&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "X-HTTP-Method": "MERGE",&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "content-length": requestBody.length,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "content-type" : "application/json;odata=verbose",&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "If-Match": etag&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $.ajax({&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url: requestUri,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type: "POST",&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; contentType: "application/json;odata=verbose",&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; headers: requestHeaders,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data: requestBody,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; success: onSuccess,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error: onError&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp; }
&lt;/p&gt;
&lt;p&gt;
}
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=d4bde347-853b-41b0-9e1c-11ce2ecbf500" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,d4bde347-853b-41b0-9e1c-11ce2ecbf500.aspx</comments>
      <category>.NET Developer</category>
      <category>SharePoint</category>
      <category>SharePoint/2013</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=6796a02c-0f1c-4d86-a7ef-8ed197666fda</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,6796a02c-0f1c-4d86-a7ef-8ed197666fda.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,6796a02c-0f1c-4d86-a7ef-8ed197666fda.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=6796a02c-0f1c-4d86-a7ef-8ed197666fda</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
While setting up a new SharePoint solution one of the requirements was to embed a
Yammer Feed.
</p>
        <p>
So I followed the help document only to have an unusual situation:
</p>
        <p>
1) the feed wouldnt render in browse mode.
</p>
        <p>
2) the feed WOULD render in Edit Mode.
</p>
        <p>
The key to the situation was to declare a little more on the sample script Yammer
gave – adding ‘text/javascript’
</p>
        <p>
Here’s the working script – (one for the bat –utility belt)
</p>
        <p>
*tested from Win8, Firefox *
</p>
        <p>
&lt;script data-app-id='hyB2pTvrL36Y50py8EWj6A' type='text/javascript' src='<a href="https://assets.yammer.com/platform/yam.js'">https://assets.yammer.com/platform/yam.js'</a>&gt;&lt;/script&gt;<br />
&lt;script type='text/javascript'&gt;<br />
yam.connect.embedFeed(<br />
{ container: '#embedded-feed'<br />
, network: 'yournetworkhere' 
<br />
});<br />
&lt;/script&gt;<br />
&lt;div id='embedded-feed'&gt;&lt;/div&gt;
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=6796a02c-0f1c-4d86-a7ef-8ed197666fda" />
      </body>
      <title>SP2013: Adding an Embedded Yammer Feed to SharePoint</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,6796a02c-0f1c-4d86-a7ef-8ed197666fda.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2013/02/07/SP2013AddingAnEmbeddedYammerFeedToSharePoint.aspx</link>
      <pubDate>Thu, 07 Feb 2013 12:41:39 GMT</pubDate>
      <description>&lt;p&gt;
While setting up a new SharePoint solution one of the requirements was to embed a
Yammer Feed.
&lt;/p&gt;
&lt;p&gt;
So I followed the help document only to have an unusual situation:
&lt;/p&gt;
&lt;p&gt;
1) the feed wouldnt render in browse mode.
&lt;/p&gt;
&lt;p&gt;
2) the feed WOULD render in Edit Mode.
&lt;/p&gt;
&lt;p&gt;
The key to the situation was to declare a little more on the sample script Yammer
gave – adding ‘text/javascript’
&lt;/p&gt;
&lt;p&gt;
Here’s the working script – (one for the bat –utility belt)
&lt;/p&gt;
&lt;p&gt;
*tested from Win8, Firefox *
&lt;/p&gt;
&lt;p&gt;
&amp;lt;script data-app-id='hyB2pTvrL36Y50py8EWj6A' type='text/javascript' src='&lt;a href="https://assets.yammer.com/platform/yam.js'"&gt;https://assets.yammer.com/platform/yam.js'&lt;/a&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;br&gt;
&amp;lt;script type='text/javascript'&amp;gt;&lt;br&gt;
yam.connect.embedFeed(&lt;br&gt;
{ container: '#embedded-feed'&lt;br&gt;
, network: 'yournetworkhere' 
&lt;br&gt;
});&lt;br&gt;
&amp;lt;/script&amp;gt;&lt;br&gt;
&amp;lt;div id='embedded-feed'&amp;gt;&amp;lt;/div&amp;gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=6796a02c-0f1c-4d86-a7ef-8ed197666fda" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,6796a02c-0f1c-4d86-a7ef-8ed197666fda.aspx</comments>
      <category>.NET Developer</category>
      <category>SharePoint/2013</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=5343b256-a491-434a-868f-471c514f2e1e</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,5343b256-a491-434a-868f-471c514f2e1e.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,5343b256-a491-434a-868f-471c514f2e1e.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=5343b256-a491-434a-868f-471c514f2e1e</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hi folks, I came across a very handy little tip the other day that works with *any*
set of Batch Commands that you want to run sequentially.
</p>
        <p>
Now before you jump out and tell me “Mick, what are you doing?! Powershell is where
it’s at!”….yes yes I know. I’ve half the guys at the office telling me that too.
</p>
        <p>
So onto the goodness on this one:
</p>
        <p>
          <strong>The key is</strong>
        </p>
        <p>
          <strong>&lt;cmd&gt; &amp;&amp; &lt;cmd&gt;<br /></strong>or<br /><strong>&lt;cmd&gt; &amp; &lt;cmd&gt;</strong></p>
        <p>
          <font color="#ff0000">Hold the Phone - we have an UPDATE (from a commenter upon whom
I owe a beer)</font>
        </p>
        <p>
          <font color="#ff0000">----- Update ----</font>
        </p>
        <p>
          <font color="#ff0000">Using a single ampersand achieves a similar result but with
a slight difference:<br /><br />
* single (&amp;): run command 1 then command 2<br />
* double (&amp;&amp;): run command 1, and if it returns success then run command 2<br /><br />
So in your example, if the print spooler is already stopped then "net stop" will fail
and "net start" will not be run. If you use a single ampersand instead, then "net
start" will still be run.</font>
        </p>
        <p>
          <font color="#ff0000">------ End of Update -----</font>
        </p>
        <p>
e.g.
</p>
        <p>
net stop “Print Spooler” &amp;&amp; net start “Print Spooler”
</p>
        <p>
 
</p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/General-Handy-little-Command-line-tip-fo_D933/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/General-Handy-little-Command-line-tip-fo_D933/image_thumb.png" width="681" height="443" />
          </a>
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=5343b256-a491-434a-868f-471c514f2e1e" />
      </body>
      <title>General: Handy little Command line tip for Restarting Services from a Batch File</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,5343b256-a491-434a-868f-471c514f2e1e.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2013/01/11/GeneralHandyLittleCommandLineTipForRestartingServicesFromABatchFile.aspx</link>
      <pubDate>Fri, 11 Jan 2013 04:28:28 GMT</pubDate>
      <description>&lt;p&gt;
Hi folks, I came across a very handy little tip the other day that works with *any*
set of Batch Commands that you want to run sequentially.
&lt;/p&gt;
&lt;p&gt;
Now before you jump out and tell me “Mick, what are you doing?! Powershell is where
it’s at!”….yes yes I know. I’ve half the guys at the office telling me that too.
&lt;/p&gt;
&lt;p&gt;
So onto the goodness on this one:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The key is&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&amp;lt;cmd&amp;gt; &amp;amp;&amp;amp; &amp;lt;cmd&amp;gt;&lt;br&gt;
&lt;/strong&gt;or&lt;br&gt;
&lt;strong&gt;&amp;lt;cmd&amp;gt; &amp;amp; &amp;lt;cmd&amp;gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#ff0000&gt;Hold the Phone - we have an UPDATE (from a commenter upon whom
I owe a beer)&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#ff0000&gt;----- Update ----&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#ff0000&gt;Using a single ampersand achieves a similar result but with a
slight difference:&lt;br&gt;
&lt;br&gt;
* single (&amp;amp;): run command 1 then command 2&lt;br&gt;
* double (&amp;amp;&amp;amp;): run command 1, and if it returns success then run command 2&lt;br&gt;
&lt;br&gt;
So in your example, if the print spooler is already stopped then "net stop" will fail
and "net start" will not be run. If you use a single ampersand instead, then "net
start" will still be run.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#ff0000&gt;------ End of Update -----&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
e.g.
&lt;/p&gt;
&lt;p&gt;
net stop “Print Spooler” &amp;amp;&amp;amp; net start “Print Spooler”
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/General-Handy-little-Command-line-tip-fo_D933/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/General-Handy-little-Command-line-tip-fo_D933/image_thumb.png" width=681 height=443&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=5343b256-a491-434a-868f-471c514f2e1e" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,5343b256-a491-434a-868f-471c514f2e1e.aspx</comments>
      <category>Dev</category>
      <category>Events</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=c722e5b5-e81a-4eb5-ad84-182059015c4d</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,c722e5b5-e81a-4eb5-ad84-182059015c4d.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <georss:point>0 0</georss:point>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,c722e5b5-e81a-4eb5-ad84-182059015c4d.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=c722e5b5-e81a-4eb5-ad84-182059015c4d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hi guys, while planning for an <strong>Azure Based Event </strong>(ABE) coming soooon….or
at least after Santa has come and gone &amp; given me a birthday pressie, I was directed
to a new site in the wings.
</p>
        <p>
Coatsy and his DPE crew have been busy creating a site just for us.
</p>
        <p>
One that accepts our slang and other Aussie quotes.
</p>
        <p>
Register and it will notify you of all the events and other up and coming tidbits.
</p>
        <p>
          <a href="http://azure.msdeveloper.com.au/Default.aspx?at=blogs" target="_blank">http://azure.msdeveloper.com.au/Default.aspx?at=blogs</a>
        </p>
        <p>
+1 for the Aussie know how (Even if we speak US (English) :))
</p>
        <p>
 
</p>
        <p>
Stay tuned…and keep this on the bat-utility belt. “Holy Azure Batman….”
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=c722e5b5-e81a-4eb5-ad84-182059015c4d" />
      </body>
      <title>Azure: Australian Developers Site</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,c722e5b5-e81a-4eb5-ad84-182059015c4d.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/12/04/AzureAustralianDevelopersSite.aspx</link>
      <pubDate>Tue, 04 Dec 2012 06:20:03 GMT</pubDate>
      <description>&lt;p&gt;
Hi guys, while planning for an &lt;strong&gt;Azure Based Event &lt;/strong&gt;(ABE) coming soooon….or
at least after Santa has come and gone &amp;amp; given me a birthday pressie, I was directed
to a new site in the wings.
&lt;/p&gt;
&lt;p&gt;
Coatsy and his DPE crew have been busy creating a site just for us.
&lt;/p&gt;
&lt;p&gt;
One that accepts our slang and other Aussie quotes.
&lt;/p&gt;
&lt;p&gt;
Register and it will notify you of all the events and other up and coming tidbits.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://azure.msdeveloper.com.au/Default.aspx?at=blogs" target="_blank"&gt;http://azure.msdeveloper.com.au/Default.aspx?at=blogs&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
+1 for the Aussie know how (Even if we speak US (English) :))
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Stay tuned…and keep this on the bat-utility belt. “Holy Azure Batman….”
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=c722e5b5-e81a-4eb5-ad84-182059015c4d" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,c722e5b5-e81a-4eb5-ad84-182059015c4d.aspx</comments>
      <category>Azure</category>
      <category>Azure/Integration</category>
      <category>General</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=ddd50d57-dc54-42c7-97c5-7f47fef1fc27</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,ddd50d57-dc54-42c7-97c5-7f47fef1fc27.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,ddd50d57-dc54-42c7-97c5-7f47fef1fc27.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=ddd50d57-dc54-42c7-97c5-7f47fef1fc27</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
While on SharePoint 2013 training we came across all the different ways of calling
SharePoint and it’s data through JavaScript, JQuery and all the bits.
</p>
        <p>
It was all looking good until we needed to <strong>update sharepoint</strong> – e.g.
a list, a list item etc.
</p>
        <p>
The MS Course notes say – “if you’re in SharePoint you can get the Form Digest from
the main SharePoint Form….”
</p>
        <p>
 
</p>
        <p>
What about if you’re running outside of SharePoint (a Provider App – they now call
it, or Cloud Hosted…depending on who wrote the help article)
</p>
        <p>
 
</p>
        <p>
The answer in the notes is… <strong>go and make an old fashion call to Sites.asmx
SOAP WebService….</strong> from client side javascript this is going to be a feat.
</p>
        <p>
….
</p>
        <p>
The Answer – <strong>make a REST call to get the ‘Context Info’ first</strong>, then
you’ll have the form digest and you’re done.
</p>
        <p>
          <a title="http://msdn.microsoft.com/en-us/library/fp142386(office.15).aspx#bk_synchronize" href="http://msdn.microsoft.com/en-us/library/fp142386(office.15).aspx#bk_synchronize">http://msdn.microsoft.com/en-us/library/fp142386(office.15).aspx#bk_synchronize</a> (just
at the top of this page)
</p>
        <p>
 
</p>
        <div class="caption" style="word-wrap: break-word; height: 20px; clear: both">
          <font face="Segoe UI">
            <font style="font-size: 9.7pt" color="#3f529c">
              <strong>Table
1. SPContextWebInformation structure initialization properties</strong>
            </font>
          </font>
        </div>
        <div class="tableSection" style="word-wrap: break-word">
          <table style="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">
                <th style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 4px; padding-top: 4px; padding-left: 4px; border-left: 1px solid; padding-right: 4px; background-color: #e5e5e5" height="21" align="left">
                  <p>
                    <font face="Segoe UI">
                      <font style="font-size: 12.9pt">Property</font>
                    </font>
                  </p>
                </th>
                <th style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 4px; padding-top: 4px; padding-left: 4px; border-left: 1px solid; padding-right: 4px; background-color: #e5e5e5" height="21" align="left">
                  <p>
                    <font face="Segoe UI">
                      <font style="font-size: 12.9pt">Description</font>
                    </font>
                  </p>
                </th>
              </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: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <span>
                      <span class="input">
                        <font face="Segoe UI">
                          <font style="font-size: 12pt">
                            <strong>webFullUrl</strong>
                          </font>
                        </font>
                      </span>
                    </span>
                  </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: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <font face="Segoe UI">
                      <font style="font-size: 12pt">Gets the server-relative URL of
the nearest site.</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: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <span>
                      <span class="input">
                        <font face="Segoe UI">
                          <font style="font-size: 12pt">
                            <strong>siteFullUrl</strong>
                          </font>
                        </font>
                      </span>
                    </span>
                  </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: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <font face="Segoe UI">
                      <font style="font-size: 12pt">Gets the server-relative URL of
the root of the site collection that the site is contained within.</font>
                    </font>
                  </p>
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <font face="Segoe UI">
                      <font style="font-size: 12pt">If the nearest web is the root
of a site collection, then the value of the <span><span class="input"><strong>webFullUrl</strong></span></span> property
is equal to the <span><span class="input"><strong>siteFullUrl</strong></span></span> property.</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: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <span>
                      <span class="input">
                        <font face="Segoe UI">
                          <font style="font-size: 12pt">
                            <strong>formDigestValue</strong>
                          </font>
                        </font>
                      </span>
                    </span>
                  </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: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <font face="Segoe UI">
                      <font style="font-size: 12pt">Gets the server's request form
digest.</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: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <span>
                      <span class="input">
                        <font face="Segoe UI">
                          <font style="font-size: 12pt">
                            <strong>LibraryVersion</strong>
                          </font>
                        </font>
                      </span>
                    </span>
                  </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: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <font face="Segoe UI">
                      <font style="font-size: 12pt">Gets the current version of the
REST library.</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: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <span>
                      <span class="input">
                        <font face="Segoe UI">
                          <font style="font-size: 12pt">
                            <strong>SupportedSchemaVersions</strong>
                          </font>
                        </font>
                      </span>
                    </span>
                  </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: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <font face="Segoe UI">
                      <font style="font-size: 12pt">Gets the versions of the schema
of the REST/CSOM library that are supported.</font>
                    </font>
                  </p>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
        <p style="word-wrap: break-word">
          <font face="Segoe UI">
            <font style="font-size: 9.7pt">To access this information, use
the </font>
          </font>
          <span class="code">
            <font face="Courier New">
              <font style="font-size: 10.2pt" color="#000066">/contextinfo</font>
            </font>
          </span>
          <font face="Segoe UI">
            <font style="font-size: 9.7pt"> operator.
For example: </font>
          </font>
        </p>
        <p style="word-wrap: break-word">
          <span class="code">
            <font face="Courier New">
              <font style="font-size: 10.2pt" color="#000066">http://server/web/doclib/forms/_api/contextinfo</font>
            </font>
          </span>
        </p>
        <p style="word-wrap: break-word">
          <font face="Segoe UI">
            <font style="font-size: 9.7pt">To increase security against
cross-site scripting attempts, the </font>
          </font>
          <span class="code">
            <font face="Courier New">
              <font style="font-size: 10.2pt" color="#000066">/contextinfo</font>
            </font>
          </span>
          <font face="Segoe UI">
            <font style="font-size: 9.7pt"> operator
accepts only <span><span class="input"><strong>POST</strong></span></span> requests.</font>
          </font>
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=ddd50d57-dc54-42c7-97c5-7f47fef1fc27" />
      </body>
      <title>SP2013: Getting a Form Digest for Update REST calls</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,ddd50d57-dc54-42c7-97c5-7f47fef1fc27.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/11/20/SP2013GettingAFormDigestForUpdateRESTCalls.aspx</link>
      <pubDate>Tue, 20 Nov 2012 04:43:32 GMT</pubDate>
      <description>&lt;p&gt;
While on SharePoint 2013 training we came across all the different ways of calling
SharePoint and it’s data through JavaScript, JQuery and all the bits.
&lt;/p&gt;
&lt;p&gt;
It was all looking good until we needed to &lt;strong&gt;update sharepoint&lt;/strong&gt; – e.g.
a list, a list item etc.
&lt;/p&gt;
&lt;p&gt;
The MS Course notes say – “if you’re in SharePoint you can get the Form Digest from
the main SharePoint Form….”
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
What about if you’re running outside of SharePoint (a Provider App – they now call
it, or Cloud Hosted…depending on who wrote the help article)
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
The answer in the notes is… &lt;strong&gt;go and make an old fashion call to Sites.asmx
SOAP WebService….&lt;/strong&gt; from client side javascript this is going to be a feat.
&lt;/p&gt;
&lt;p&gt;
….
&lt;/p&gt;
&lt;p&gt;
The Answer – &lt;strong&gt;make a REST call to get the ‘Context Info’ first&lt;/strong&gt;, then
you’ll have the form digest and you’re done.
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://msdn.microsoft.com/en-us/library/fp142386(office.15).aspx#bk_synchronize" href="http://msdn.microsoft.com/en-us/library/fp142386(office.15).aspx#bk_synchronize"&gt;http://msdn.microsoft.com/en-us/library/fp142386(office.15).aspx#bk_synchronize&lt;/a&gt; (just
at the top of this page)
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;div class="caption" style="word-wrap: break-word; height: 20px; clear: both"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt" color="#3f529c"&gt;&lt;strong&gt;Table
1. SPContextWebInformation structure initialization properties&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div class="tableSection" style="word-wrap: break-word"&gt;
&lt;table style="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;th style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 4px; padding-top: 4px; padding-left: 4px; border-left: 1px solid; padding-right: 4px; background-color: #e5e5e5" height="21" align="left"&gt;
&lt;p&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12.9pt"&gt;Property&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/th&gt;
&lt;th style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 4px; padding-top: 4px; padding-left: 4px; border-left: 1px solid; padding-right: 4px; background-color: #e5e5e5" height="21" align="left"&gt;
&lt;p&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12.9pt"&gt;Description&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/th&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: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;span&gt;&lt;span class="input"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;&lt;strong&gt;webFullUrl&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&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: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;Gets the server-relative URL of
the nearest site.&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: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;span&gt;&lt;span class="input"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;&lt;strong&gt;siteFullUrl&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&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: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;Gets the server-relative URL of
the root of the site collection that the site is contained within.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;If the nearest web is the root
of a site collection, then the value of the &lt;span&gt;&lt;span class="input"&gt;&lt;strong&gt;webFullUrl&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt; property
is equal to the &lt;span&gt;&lt;span class="input"&gt;&lt;strong&gt;siteFullUrl&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt; property.&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: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;span&gt;&lt;span class="input"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;&lt;strong&gt;formDigestValue&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&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: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;Gets the server's request form
digest.&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: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;span&gt;&lt;span class="input"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;&lt;strong&gt;LibraryVersion&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&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: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;Gets the current version of the
REST library.&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: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;span&gt;&lt;span class="input"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;&lt;strong&gt;SupportedSchemaVersions&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&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: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;Gets the versions of the schema
of the REST/CSOM library that are supported.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p style="word-wrap: break-word"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;To access this information, use
the &lt;/font&gt;&lt;/font&gt;&lt;span class="code"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size: 10.2pt" color="#000066"&gt;/contextinfo&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt; operator.
For example: &lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="word-wrap: break-word"&gt;
&lt;span class="code"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size: 10.2pt" color="#000066"&gt;http://server/web/doclib/forms/_api/contextinfo&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="word-wrap: break-word"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;To increase security against
cross-site scripting attempts, the &lt;/font&gt;&lt;/font&gt;&lt;span class="code"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size: 10.2pt" color="#000066"&gt;/contextinfo&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt; operator
accepts only &lt;span&gt;&lt;span class="input"&gt;&lt;strong&gt;POST&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt; requests.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=ddd50d57-dc54-42c7-97c5-7f47fef1fc27" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,ddd50d57-dc54-42c7-97c5-7f47fef1fc27.aspx</comments>
      <category>Dev</category>
      <category>SharePoint</category>
      <category>SharePoint/2013</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=a6498c89-d6b5-4a02-b97c-089bf888817d</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,a6498c89-d6b5-4a02-b97c-089bf888817d.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,a6498c89-d6b5-4a02-b97c-089bf888817d.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=a6498c89-d6b5-4a02-b97c-089bf888817d</wfw:commentRss>
      <title>Win 2012: Getting WebFolders or WebClient to work</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,a6498c89-d6b5-4a02-b97c-089bf888817d.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/09/09/Win2012GettingWebFoldersOrWebClientToWork.aspx</link>
      <pubDate>Sun, 09 Sep 2012 07:30:15 GMT</pubDate>
      <description>&lt;p&gt;
Firing up Win2012 Server for the first time you might notice that you can do a 
&lt;/p&gt;
&lt;p&gt;
‘&lt;strong&gt;net use * &lt;a href="http://mywebsite/docs&amp;rsquo;"&gt;http://mywebsite/docs
&lt;/strong&gt;’&gt; 
&lt;/p&gt;
&lt;p&gt;
Which is a classic thing we do in SharePoint or other WebDAV enabled Servers.
&lt;/p&gt;
&lt;p&gt;
After spending far too long on this issue the secret is to make sure the &lt;strong&gt;Desktop
Experience feature is installed.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
On 2012 here’s the way to do it - &lt;a title="http://www.win2012workstation.com/desktop-experience/" href="http://www.win2012workstation.com/desktop-experience/"&gt;http://www.win2012workstation.com/desktop-experience/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
2 hours I’ll never get back &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-left-style: none; border-bottom-style: none; border-right-style: none" alt="Smile" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Win-2012-Getting-WebFolders-or-WebClient_F4EC/wlEmoticon-smile_2.png"&gt;
&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=a6498c89-d6b5-4a02-b97c-089bf888817d" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,a6498c89-d6b5-4a02-b97c-089bf888817d.aspx</comments>
      <category>Tips</category>
      <category>Win2012</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=a91cb000-e8ab-4555-b075-1d8e0b1ae2d6</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,a91cb000-e8ab-4555-b075-1d8e0b1ae2d6.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,a91cb000-e8ab-4555-b075-1d8e0b1ae2d6.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=a91cb000-e8ab-4555-b075-1d8e0b1ae2d6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I recently ran into an interesting one while building some InfoPath forms for SP2010/2013
forms services.
</p>
        <p>
I wanted to return <strong>some Rich Text (XHTML) </strong>fields back from a WCF
WebService call.
</p>
        <p>
I was at the point as a developer, where I couldn’t even say ‘<strong>Works on my
machine…</strong>’.
</p>
        <p>
The problem was – no matter what I tried, I would always have *plain text* and no
‘richness’ of the Rich Text. Didn’t work for me.
</p>
        <p>
So I have:
</p>
        <p>
1) a basic WCF Web service – running on my dev environment.
</p>
        <p>
2) an InfoPath Form that makes the call and displays the results.
</p>
        <p>
          <strong>The WCF Service:</strong>
        </p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/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/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_1.png" width="358" height="310" />
          </a>
        </p>
        <p>
This is the field that I eventually want to return as RichText to InfoPath.
</p>
        <p>
Here’s the Service Method code (which basically goes into a file and returns back
a list of clauses) – just focus on the <strong>CONTENT = …GetXHTMLRichText(…)</strong></p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/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/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_2.png" width="561" height="401" />
          </a>
        </p>
        <p>
 
</p>
        <p>
          <strong>InfoPath and Returning a RichTextField<br /></strong>2 things need to happen for this to work.
</p>
        <p>
1. When InfoPath adds the WCF Service to the form, it needs to ‘detect’ the field
correctly when it build the underlying schema.<br /><br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/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/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_3.png" width="161" height="158" /></a><br /><br /><strong>You need (nb – ‘Content’ is my field name):<br /></strong>&lt;xs:element minOccurs="0" name="<strong>Content</strong>" nillable="true"&gt;<br />
               
&lt;xs:complexType mixed='true'&gt;<br />
                   
&lt;xs:sequence&gt;<br />
                       
&lt;xs:any minOccurs="0" processContents="lax" maxOccurs="unbounded" namespace="<a href="http://www.w3.org/1999/xhtml&quot;">http://www.w3.org/1999/xhtml"</a>&gt;&lt;/xs:any&gt;<br />
                   
&lt;/xs:sequence&gt;<br />
               
&lt;/xs:complexType&gt;
</p>
        <p>
&lt;/xs:element&gt;<br /><br />
Note the namespace on the ANY element above – this is the winner to tell InfoPath
that this is a richtext field.<br /></p>
        <p>
2. When returning data via this field (in my case the ‘<strong>Content’</strong> field),
it needs to be in a certain shape, as in:<br /><code>&lt;Content xmlns=<a href="http://yournamespace">http://yournamespace</a>&gt;<br />
    &lt;span xmlns="http://www.w3.org/1999/xhtml"&gt;Rich text here&lt;/div&gt;<br />
&lt;/Content&gt;</code></p>
        <p>
          <br />
Your rich text content needs to be ‘wrapped’ for InfoPath to play nicely with it.
</p>
        <p>
This was the purpose of my <strong>GetXMLRichText</strong> method as
</p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/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; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_4.png" width="546" height="263" />
          </a>
        </p>
        <p>
 
</p>
        <p>
          <strong>The gotcha</strong>:
</p>
        <p>
When I pointed InfoPath at my webservice and added a service reference I was getting
back a <strong>SimpleType</strong> for the field and not a <strong>ComplexType/Rich
Text field.</strong></p>
        <p>
The WCF Service WSDL was ‘almost there’ but not close enough:<br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/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/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_5.png" width="669" height="257" /></a><br /><br />
The <strong>Content </strong>field described in a <strong>ComplexType</strong> which
is almost there, but not quite.
</p>
        <p>
It’s missing the &lt;xs:complexType <strong>mixed=’true’</strong>&gt;…&lt;xs:any <strong>namespace=’http://www.w3.org/1999/xhtml’ </strong>…/&gt;.
The rest were good.
</p>
        <p>
          <strong>The fix:</strong>
        </p>
        <p>
Cutting a long story short, the simplest way forward here was to simply edit the form
components that InfoPath had built and correct the schema. Then reuse the form.
</p>
        <p>
The form looks like this:
</p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/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/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_8.png" width="848" height="479" />
          </a>
        </p>
        <p>
 
</p>
        <p>
From the <strong>File-&gt;Publish-&gt;Export Source Files </strong>you can get to
the source and edit the correct schema (XSD) file.
</p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/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/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_9.png" width="483" height="140" />
          </a>
          <br />
Close the form down in InfoPath (or you may even need to close InfoPath) to edit the
Schema.
</p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_22.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/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_10.png" width="666" height="463" />
          </a>
        </p>
        <p>
You may need to hunt through a few of them to find the right one. My file was <strong>GetKCCTerms12.xsd </strong></p>
        <p>
Modify, save and close that file.
</p>
        <p>
Right click on <strong>manifest.xsf –&gt; Design </strong>to launch InfoPath and then
select <strong>Save As</strong> to work with it as *.XSN form (*.xsn files are just
CABs with all these files inside)
</p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/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/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_11.png" width="647" height="74" />
          </a>
        </p>
        <p>
The final result as viewed from an InfoPath form – notice the bolding sent through.
</p>
        <p>
Enjoy,
</p>
        <p>
Mick.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=a91cb000-e8ab-4555-b075-1d8e0b1ae2d6" />
      </body>
      <title>InfoPath: Returning RichText from a WCF Service to a Form</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,a91cb000-e8ab-4555-b075-1d8e0b1ae2d6.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/08/30/InfoPathReturningRichTextFromAWCFServiceToAForm.aspx</link>
      <pubDate>Thu, 30 Aug 2012 11:25:47 GMT</pubDate>
      <description>&lt;p&gt;
I recently ran into an interesting one while building some InfoPath forms for SP2010/2013
forms services.
&lt;/p&gt;
&lt;p&gt;
I wanted to return &lt;strong&gt;some Rich Text (XHTML) &lt;/strong&gt;fields back from a WCF
WebService call.
&lt;/p&gt;
&lt;p&gt;
I was at the point as a developer, where I couldn’t even say ‘&lt;strong&gt;Works on my
machine…&lt;/strong&gt;’.
&lt;/p&gt;
&lt;p&gt;
The problem was – no matter what I tried, I would always have *plain text* and no
‘richness’ of the Rich Text. Didn’t work for me.
&lt;/p&gt;
&lt;p&gt;
So I have:
&lt;/p&gt;
&lt;p&gt;
1) a basic WCF Web service – running on my dev environment.
&lt;/p&gt;
&lt;p&gt;
2) an InfoPath Form that makes the call and displays the results.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The WCF Service:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/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/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_1.png" width="358" height="310"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This is the field that I eventually want to return as RichText to InfoPath.
&lt;/p&gt;
&lt;p&gt;
Here’s the Service Method code (which basically goes into a file and returns back
a list of clauses) – just focus on the &lt;strong&gt;CONTENT = …GetXHTMLRichText(…)&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/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/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_2.png" width="561" height="401"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;InfoPath and Returning a RichTextField&lt;br&gt;
&lt;/strong&gt;2 things need to happen for this to work.
&lt;/p&gt;
&lt;p&gt;
1. When InfoPath adds the WCF Service to the form, it needs to ‘detect’ the field
correctly when it build the underlying schema.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/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/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_3.png" width="161" height="158"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;You need (nb – ‘Content’ is my field name):&lt;br&gt;
&lt;/strong&gt;&amp;lt;xs:element minOccurs="0" name="&lt;strong&gt;Content&lt;/strong&gt;" nillable="true"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;xs:complexType mixed='true'&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;xs:sequence&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;xs:any minOccurs="0" processContents="lax" maxOccurs="unbounded" namespace="&lt;a href="http://www.w3.org/1999/xhtml&amp;quot;"&gt;http://www.w3.org/1999/xhtml"&lt;/a&gt;&amp;gt;&amp;lt;/xs:any&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/xs:sequence&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/xs:complexType&amp;gt;
&lt;/p&gt;
&lt;p&gt;
&amp;lt;/xs:element&amp;gt;&lt;br&gt;
&lt;br&gt;
Note the namespace on the ANY element above – this is the winner to tell InfoPath
that this is a richtext field.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
2. When returning data via this field (in my case the ‘&lt;strong&gt;Content’&lt;/strong&gt; field),
it needs to be in a certain shape, as in:&lt;br&gt;
&lt;code&gt;&amp;lt;Content xmlns=&lt;a href="http://yournamespace"&gt;http://yournamespace&lt;/a&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;span xmlns="http://www.w3.org/1999/xhtml"&amp;gt;Rich text here&amp;lt;/div&amp;gt;&lt;br&gt;
&amp;lt;/Content&amp;gt;&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
Your rich text content needs to be ‘wrapped’ for InfoPath to play nicely with it.
&lt;/p&gt;
&lt;p&gt;
This was the purpose of my &lt;strong&gt;GetXMLRichText&lt;/strong&gt; method as
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/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; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_4.png" width="546" height="263"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The gotcha&lt;/strong&gt;:
&lt;/p&gt;
&lt;p&gt;
When I pointed InfoPath at my webservice and added a service reference I was getting
back a &lt;strong&gt;SimpleType&lt;/strong&gt; for the field and not a &lt;strong&gt;ComplexType/Rich
Text field.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The WCF Service WSDL was ‘almost there’ but not close enough:&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/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/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_5.png" width="669" height="257"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
The &lt;strong&gt;Content &lt;/strong&gt;field described in a &lt;strong&gt;ComplexType&lt;/strong&gt; which
is almost there, but not quite.
&lt;/p&gt;
&lt;p&gt;
It’s missing the &amp;lt;xs:complexType &lt;strong&gt;mixed=’true’&lt;/strong&gt;&amp;gt;…&amp;lt;xs:any &lt;strong&gt;namespace=’http://www.w3.org/1999/xhtml’ &lt;/strong&gt;…/&amp;gt;.
The rest were good.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The fix:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Cutting a long story short, the simplest way forward here was to simply edit the form
components that InfoPath had built and correct the schema. Then reuse the form.
&lt;/p&gt;
&lt;p&gt;
The form looks like this:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/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/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_8.png" width="848" height="479"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
From the &lt;strong&gt;File-&amp;gt;Publish-&amp;gt;Export Source Files &lt;/strong&gt;you can get to
the source and edit the correct schema (XSD) file.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/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/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_9.png" width="483" height="140"&gt;&lt;/a&gt;
&lt;br&gt;
Close the form down in InfoPath (or you may even need to close InfoPath) to edit the
Schema.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_22.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/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_10.png" width="666" height="463"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
You may need to hunt through a few of them to find the right one. My file was &lt;strong&gt;GetKCCTerms12.xsd &lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Modify, save and close that file.
&lt;/p&gt;
&lt;p&gt;
Right click on &lt;strong&gt;manifest.xsf –&amp;gt; Design &lt;/strong&gt;to launch InfoPath and then
select &lt;strong&gt;Save As&lt;/strong&gt; to work with it as *.XSN form (*.xsn files are just
CABs with all these files inside)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/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/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_11.png" width="647" height="74"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The final result as viewed from an InfoPath form – notice the bolding sent through.
&lt;/p&gt;
&lt;p&gt;
Enjoy,
&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=a91cb000-e8ab-4555-b075-1d8e0b1ae2d6" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,a91cb000-e8ab-4555-b075-1d8e0b1ae2d6.aspx</comments>
      <category>.NET Developer</category>
      <category>Dev</category>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=6c12be50-a2af-41c1-9773-55355b6b0536</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,6c12be50-a2af-41c1-9773-55355b6b0536.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <georss:point>0 0</georss:point>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,6c12be50-a2af-41c1-9773-55355b6b0536.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=6c12be50-a2af-41c1-9773-55355b6b0536</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
With Hyper-V now available on Win8 it's more important than ever.
</p>
        <p>
VOTE here: <a href="https://connect.microsoft.com/WindowsServerFeedback/feedback/details/390443/hyper-v-needs-usb-support">https://connect.microsoft.com/WindowsServerFeedback/feedback/details/390443/hyper-v-needs-usb-support</a></p>
        <p>
The more votes...the more importance this issue has.
</p>
        <p>
Let's get it in there.
</p>
        <p>
p.s. I'm aware of the 'workarounds' after having to plug 183 usb devices into a virtual
environment. Hours I'll never get back
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=6c12be50-a2af-41c1-9773-55355b6b0536" />
      </body>
      <title>Hyper-V: Hyper-V needs native USB support</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,6c12be50-a2af-41c1-9773-55355b6b0536.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/08/13/HyperVHyperVNeedsNativeUSBSupport.aspx</link>
      <pubDate>Mon, 13 Aug 2012 09:59:38 GMT</pubDate>
      <description>&lt;p&gt;
With Hyper-V now available on Win8 it's more important than ever.
&lt;/p&gt;
&lt;p&gt;
VOTE here: &lt;a href="https://connect.microsoft.com/WindowsServerFeedback/feedback/details/390443/hyper-v-needs-usb-support"&gt;https://connect.microsoft.com/WindowsServerFeedback/feedback/details/390443/hyper-v-needs-usb-support&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The more votes...the more importance this issue has.
&lt;/p&gt;
&lt;p&gt;
Let's get it in there.
&lt;/p&gt;
&lt;p&gt;
p.s. I'm aware of the 'workarounds' after having to plug 183 usb devices into a virtual
environment. Hours I'll never get back
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=6c12be50-a2af-41c1-9773-55355b6b0536" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,6c12be50-a2af-41c1-9773-55355b6b0536.aspx</comments>
      <category>Dev</category>
      <category>General</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=bd73079f-c5df-44df-8c57-e462764d7e00</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,bd73079f-c5df-44df-8c57-e462764d7e00.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <georss:point>0 0</georss:point>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,bd73079f-c5df-44df-8c57-e462764d7e00.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=bd73079f-c5df-44df-8c57-e462764d7e00</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hi folks, you've probably heard a fair bit about the make over of Azure into 'Azure
2.0' (the SDK is still 1.7)
</p>
        <p>
There's some great new tools within VS.NET to manage your environment better, even
a Service Bus 'explorer' which was much needed.
</p>
        <p>
I've collected a few links to start with for you guys to read up on when you've got
a moment:
</p>
        <p>
Azure 2.0 Details on:
</p>
        <ul>
          <li>
Windows Azure Powershell Extension - <a title="http://cloud.github.com/downloads/WindowsAzure/azure-sdk-tools/windowsazure-powershell.0.6.0.msi" href="http://cloud.github.com/downloads/WindowsAzure/azure-sdk-tools/windowsazure-powershell.0.6.0.msi">http://cloud.github.com/downloads/WindowsAzure/azure-sdk-tools/windowsazure-powershell.0.6.0.msi</a></li>
          <li>
Command Line Tools Independent of WebPI - <a title="https://www.windowsazure.com/en-us/manage/downloads/" href="https://www.windowsazure.com/en-us/manage/downloads/">https://www.windowsazure.com/en-us/manage/downloads/</a></li>
          <li>
Virtual Machines - FAQs etc - <a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj156003">http://msdn.microsoft.com/en-us/library/windowsazure/jj156003</a></li>
          <li>
Windows Azure Virtual Network - <a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj156007">http://msdn.microsoft.com/en-us/library/windowsazure/jj156007</a><ul><li>
Get slides from my previous presentation here - <a href="http://blogs.breeze.net/mickb/2012/06/08/AzureConnectingCloudAndOnPremisesApplicationsUsingWindowsAzureVirtualNetworkBreeze.aspx">Azure
Virtual Network 2.0</a></li></ul></li>
          <li>
Windows Azure Media Services - <a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh973629">http://msdn.microsoft.com/en-us/library/windowsazure/hh973629</a></li>
          <li>
Create and Deploying WebSite walk through - <a href="https://www.windowsazure.com/en-us/manage/services/web-sites/how-to-create-websites/">https://www.windowsazure.com/en-us/manage/services/web-sites/how-to-create-websites/</a><ul><li>
(like we need this one - seriously takes 3 minutes! - well done MS!)</li></ul></li>
          <li>
Azure Chalk Talk Videos - <a href="http://www.meetwindowsazure.com/DigitalChalkTalks">http://www.meetwindowsazure.com/DigitalChalkTalks</a><ul><li>
Azure Virtual Machines - <a href="http://media.ch9.ms/ch9/364a/0163cb8a-b13e-45f7-9c3d-f0616939364a/WindowsAzureVMs_high.mp4">Part
I</a> &amp; <a href="http://media.ch9.ms/ch9/fb2c/f46d9da9-2cb6-4e5e-9a23-e2feb53ffb2c/AzureLinuxVirtualMachinesVid_high.mp4">Part
II</a></li><li><a href="http://media.ch9.ms/ch9/b8b3/515502d7-5d92-4b71-9bfa-da04c6f7b8b3/WindowsAzureWebSites_high.mp4">Web
Sites with ASP.NET</a> (NB: <span style="font-size: 11pt"><font color="#1f497d" face="Calibri"><span lang="en-US">SSL
is not supported, but it will arrive when Win Server 2012)</span></font></span></li><li><a href="http://media.ch9.ms/ch9/1ed0/c1bbeab5-1e5f-4139-994c-74a2da361ed0/WindowsAzureNodeJS_high.mp4">Web
Sites with node.js</a></li><li><a href="http://media.ch9.ms/ch9/15b8/498655d8-9b23-437e-ab2d-ffb748f215b8/WindowsAzureOSSWebmatrix_high.mp4">Web
Sites with OSS Apps &amp; Web Matrix</a></li><li><a href="http://media.ch9.ms/ch9/53ff/772b6c83-cbd0-4701-8a8a-99b959e153ff/WindowsAzureCmd_high.mp4">Azure
Cross Platform Command Line Tools</a></li><li><a href="http://media.ch9.ms/ch9/64f6/c9312b46-1d87-4c1b-b160-36a4e5c664f6/WindowsAzureCSUpdate_high.mp4">Cloud
Services (aka perviously web+worker roles)</a></li><li><a href="http://media.ch9.ms/ch9/d925/433610e7-2721-4663-8976-952517aed925/Hadoop_high.mp4">Apache
Hadoop Based Services On Windows Azure</a></li><li><a href="http://media.ch9.ms/ch9/41d8/0304e0e2-f706-46c8-a8db-7e5bcbf941d8/WAHostedTFS_high.mp4">TFS
Service Preview Intro</a></li><li><a href="http://media.ch9.ms/ch9/aa24/f119d33d-0e09-4bc5-9f9b-fc485b59aa24/WindowsAzureTFSCI_high.mp4">Azure
Websites - Continuous Integration with TFS</a>. 
</li><li><a href="http://media.ch9.ms/ch9/45c8/58d7040e-8f0e-4063-8fb8-d3698b2d45c8/WindowsAzureSQLDB_high.mp4">Azure
SQL Databases Intro</a></li><li><a href="http://media.ch9.ms/ch9/235e/121bd0a0-407e-4ae2-a1a6-f049be7a235e/WindowsAzureStorageIntro_high.mp4">Azure
Storage Introduction</a></li></ul></li>
        </ul>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=bd73079f-c5df-44df-8c57-e462764d7e00" />
      </body>
      <title>Azure: Azure 1.7 SDK tid bits</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,bd73079f-c5df-44df-8c57-e462764d7e00.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/06/13/AzureAzure17SDKTidBits.aspx</link>
      <pubDate>Wed, 13 Jun 2012 01:54:11 GMT</pubDate>
      <description>&lt;p&gt;
Hi folks, you've probably heard a fair bit about the make over of Azure into 'Azure
2.0' (the SDK is still 1.7)
&lt;/p&gt;
&lt;p&gt;
There's some great new tools within VS.NET to manage your environment better, even
a Service Bus 'explorer' which was much needed.
&lt;/p&gt;
&lt;p&gt;
I've collected a few links to start with for you guys to read up on when you've got
a moment:
&lt;/p&gt;
&lt;p&gt;
Azure 2.0 Details on:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Windows Azure Powershell Extension - &lt;a title="http://cloud.github.com/downloads/WindowsAzure/azure-sdk-tools/windowsazure-powershell.0.6.0.msi" href="http://cloud.github.com/downloads/WindowsAzure/azure-sdk-tools/windowsazure-powershell.0.6.0.msi"&gt;http://cloud.github.com/downloads/WindowsAzure/azure-sdk-tools/windowsazure-powershell.0.6.0.msi&lt;/a&gt; 
&lt;li&gt;
Command Line Tools Independent of WebPI - &lt;a title="https://www.windowsazure.com/en-us/manage/downloads/" href="https://www.windowsazure.com/en-us/manage/downloads/"&gt;https://www.windowsazure.com/en-us/manage/downloads/&lt;/a&gt; 
&lt;li&gt;
Virtual Machines - FAQs etc - &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj156003"&gt;http://msdn.microsoft.com/en-us/library/windowsazure/jj156003&lt;/a&gt; 
&lt;li&gt;
Windows Azure Virtual Network - &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj156007"&gt;http://msdn.microsoft.com/en-us/library/windowsazure/jj156007&lt;/a&gt; 
&lt;ul&gt;
&lt;li&gt;
Get slides from my previous presentation here - &lt;a href="http://blogs.breeze.net/mickb/2012/06/08/AzureConnectingCloudAndOnPremisesApplicationsUsingWindowsAzureVirtualNetworkBreeze.aspx"&gt;Azure
Virtual Network 2.0&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
Windows Azure Media Services - &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh973629"&gt;http://msdn.microsoft.com/en-us/library/windowsazure/hh973629&lt;/a&gt; 
&lt;li&gt;
Create and Deploying WebSite walk through - &lt;a href="https://www.windowsazure.com/en-us/manage/services/web-sites/how-to-create-websites/"&gt;https://www.windowsazure.com/en-us/manage/services/web-sites/how-to-create-websites/&lt;/a&gt; 
&lt;ul&gt;
&lt;li&gt;
(like we need this one - seriously takes 3 minutes! - well done MS!)&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
Azure Chalk Talk Videos - &lt;a href="http://www.meetwindowsazure.com/DigitalChalkTalks"&gt;http://www.meetwindowsazure.com/DigitalChalkTalks&lt;/a&gt; 
&lt;ul&gt;
&lt;li&gt;
Azure Virtual Machines - &lt;a href="http://media.ch9.ms/ch9/364a/0163cb8a-b13e-45f7-9c3d-f0616939364a/WindowsAzureVMs_high.mp4"&gt;Part
I&lt;/a&gt; &amp;amp; &lt;a href="http://media.ch9.ms/ch9/fb2c/f46d9da9-2cb6-4e5e-9a23-e2feb53ffb2c/AzureLinuxVirtualMachinesVid_high.mp4"&gt;Part
II&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://media.ch9.ms/ch9/b8b3/515502d7-5d92-4b71-9bfa-da04c6f7b8b3/WindowsAzureWebSites_high.mp4"&gt;Web
Sites with ASP.NET&lt;/a&gt; (NB: &lt;span style="font-size: 11pt"&gt;&lt;font color="#1f497d" face="Calibri"&gt;&lt;span lang="en-US"&gt;SSL
is not supported, but it will arrive when Win Server 2012)&lt;/span&gt;&lt;/font&gt;&lt;/span&gt; 
&lt;li&gt;
&lt;a href="http://media.ch9.ms/ch9/1ed0/c1bbeab5-1e5f-4139-994c-74a2da361ed0/WindowsAzureNodeJS_high.mp4"&gt;Web
Sites with node.js&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://media.ch9.ms/ch9/15b8/498655d8-9b23-437e-ab2d-ffb748f215b8/WindowsAzureOSSWebmatrix_high.mp4"&gt;Web
Sites with OSS Apps &amp;amp; Web Matrix&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://media.ch9.ms/ch9/53ff/772b6c83-cbd0-4701-8a8a-99b959e153ff/WindowsAzureCmd_high.mp4"&gt;Azure
Cross Platform Command Line Tools&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://media.ch9.ms/ch9/64f6/c9312b46-1d87-4c1b-b160-36a4e5c664f6/WindowsAzureCSUpdate_high.mp4"&gt;Cloud
Services (aka perviously web+worker roles)&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://media.ch9.ms/ch9/d925/433610e7-2721-4663-8976-952517aed925/Hadoop_high.mp4"&gt;Apache
Hadoop Based Services On Windows Azure&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://media.ch9.ms/ch9/41d8/0304e0e2-f706-46c8-a8db-7e5bcbf941d8/WAHostedTFS_high.mp4"&gt;TFS
Service Preview Intro&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://media.ch9.ms/ch9/aa24/f119d33d-0e09-4bc5-9f9b-fc485b59aa24/WindowsAzureTFSCI_high.mp4"&gt;Azure
Websites - Continuous Integration with TFS&lt;/a&gt;. 
&lt;li&gt;
&lt;a href="http://media.ch9.ms/ch9/45c8/58d7040e-8f0e-4063-8fb8-d3698b2d45c8/WindowsAzureSQLDB_high.mp4"&gt;Azure
SQL Databases Intro&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://media.ch9.ms/ch9/235e/121bd0a0-407e-4ae2-a1a6-f049be7a235e/WindowsAzureStorageIntro_high.mp4"&gt;Azure
Storage Introduction&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=bd73079f-c5df-44df-8c57-e462764d7e00" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,bd73079f-c5df-44df-8c57-e462764d7e00.aspx</comments>
      <category>.NET Developer</category>
      <category>Azure</category>
      <category>Azure/Integration</category>
      <category>Azure/ServiceBus</category>
      <category>Events</category>
      <category>Events/Recordings</category>
      <category>Tips</category>
      <category>Training</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=0cc6026c-bb31-4705-ae55-ef040a694201</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,0cc6026c-bb31-4705-ae55-ef040a694201.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <georss:point>0 0</georss:point>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,0cc6026c-bb31-4705-ae55-ef040a694201.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=0cc6026c-bb31-4705-ae55-ef040a694201</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Huge assortment of scripts for all the
family on many many many different jobs....<br /><br /><a href="http://gallery.technet.microsoft.com/ScriptCenter/">http://gallery.technet.microsoft.com/ScriptCenter/</a><br /><br />
Note to self: Why didn't I come across this sooner??<br /><br />
Enjoy,<br /><br />
Mick.<br /><p></p><img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=0cc6026c-bb31-4705-ae55-ef040a694201" /></body>
      <title>MS Script Center</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,0cc6026c-bb31-4705-ae55-ef040a694201.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/05/28/MSScriptCenter.aspx</link>
      <pubDate>Mon, 28 May 2012 07:03:50 GMT</pubDate>
      <description>Huge assortment of scripts for all the family on many many many different jobs....&lt;br&gt;
&lt;br&gt;
&lt;a href="http://gallery.technet.microsoft.com/ScriptCenter/"&gt;http://gallery.technet.microsoft.com/ScriptCenter/&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Note to self: Why didn't I come across this sooner??&lt;br&gt;
&lt;br&gt;
Enjoy,&lt;br&gt;
&lt;br&gt;
Mick.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=0cc6026c-bb31-4705-ae55-ef040a694201" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,0cc6026c-bb31-4705-ae55-ef040a694201.aspx</comments>
      <category>Dev</category>
      <category>General</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=b9e692ea-1f8e-4930-95ef-6fc8556b51c3</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,b9e692ea-1f8e-4930-95ef-6fc8556b51c3.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <georss:point>0 0</georss:point>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,b9e692ea-1f8e-4930-95ef-6fc8556b51c3.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=b9e692ea-1f8e-4930-95ef-6fc8556b51c3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Hi folks, recently I've been asked by several
students on how to create Parties, Agreements, Profiles etc. via code in BizTalk 2010.<br /><br />
I played with this along time ago while at Redmond as BizTalk 2010 was in the process
of being released.<br /><br />
So I've just rolled up my sleeves and provided a quick demo for you - the demo shows:<br /><ol><li>
How to enumerate and get at each of your TPM Partners.</li><li>
How to create Partners + Profiles within BizTalk 2010.</li></ol><b>Note: I've only tried this on BizTalk 2010</b> (&amp; needless to say I'm claiming
'works on my machine' :))<br /><br /><b>What we're talking about in BizTalk<br /></b>This section here....<br /><br /><img src="data:image/png;base64,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" alt="" /><br /><br /><br /><b>Show me the code....</b><br />
Well the magic is found in this DLL - 
<br /><b>C:\Program Files (x86)\Microsoft BizTalk Server 2010\Developer Tools\Microsoft.BizTalk.B2B.PartnerManagement.dll<br /></b><br />
- create a VS.NET 2010 app (for this demo I created a console app)<br />
- we make a reference to the above DLL (we also need to reference system.data.entity)<br />
- set a connectionstring to our BizTalk Management DB, mine is <b>BizTalkDB</b> (as
I rolled all the BizTalk DBs into one - for dev)<br />
- start enumerating.<br /><br /><b>C# Looks like this</b>-<br /><br /><pre><span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px"><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px">static</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px">void</span> Main(<span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px">string</span>[]
args) { <span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px">//enumerate
all the TPM Profiles in BizTalk</span> var builder <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px">=</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px">new</span> SqlConnectionStringBuilder(<span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px">"DATA
SOURCE=localhost;Initial Catalog=BizTalkDB;"</span><span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px">+</span><span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px">"Integrated
Security=SSPI;MultipleActiveResultSets=True"</span>); var tmpCtx <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px">=</span> TpmContext.Create(builder);
Console.WriteLine(<span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px">"Connected
to BizTalk Global Parties"</span>); var partners <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px">=</span> tmpCtx.Partners;
Console.WriteLine(<span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px">"Number
of Parters:{0}"</span>, partners.Count()); Console.WriteLine(<span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px">"------------"</span>); <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px">foreach</span> (var
ptr <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px">in</span> partners)
{ var profiles <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px">=</span> ptr.GetBusinessProfiles();
Console.WriteLine(<span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px">"{0}
Business Profiles:{1}"</span>, ptr.Name, profiles.Count); <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px">foreach</span> (var
profile <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px">in</span> profiles)
{ Console.WriteLine(<span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px">"\tProfile:{0}"</span>,
profile.Name); } } tmpCtx.Dispose(); <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px">if</span> (bCreateProfile)
{ createProfile(<span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px">"Breeze
Partner #"</span>); } Console.WriteLine(<span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px">"Finished"</span>);
Console.ReadLine(); }</span></pre><br /><b>Point to Note: </b>in the connection string I set 'MARS=true' just so we can enumerate
several collections at once through the one context. When updating or saving new,
partners and/or profiles I get errors and can't save through a MARs enabled connection.
(love to hear if you have different luck)<br /><br /><b>Creating a Partner + Profile<br /></b><pre><span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px"><span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px">//
need to do this through a single threaded connection - no MARS</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px">private</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px">static</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px">void</span> createProfile(<span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px">string</span> partnerName)
{ partnerName += DateTime.Now.ToString(<span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px">"yyyyMMdd-hhmmss"</span>) <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px">+</span> (<span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px">new</span> Random().Next(0,
65535)); Console.WriteLine(<span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px">"Writing
a new Profile for {0}"</span>, partnerName); var builder <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px">=</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px">new</span> SqlConnectionStringBuilder(<span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px">"DATA
SOURCE=localhost;Initial Catalog=BizTalkDB;Integrated Security=SSPI"</span>); var
tmpCtx <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px">=</span> TpmContext.Create(builder);
var ptr <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px">=</span> tmpCtx.CreatePartner(partnerName);
var pname <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px">=</span><span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px">"Breeze
Profile-#"</span><span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px">+</span> DateTime.Now.ToString(<span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px">"yyyyMMdd-hhmmss"</span>) <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px">+</span> (<span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px">new</span> Random().Next(0,
65535)); var bp <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px">=</span> ptr.CreateBusinessProfile(pname);
bp.Description <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px">=</span><span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px">"Created
from Code"</span>; var pcol <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px">=</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px">new</span> AS2ProtocolSettings(<span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px">"BreezeProtocolSettings"</span>);
bp.AddProtocolSettings(pcol); tmpCtx.SaveChanges(); tmpCtx.Dispose(); }</span></pre>And
that's pretty much all there is to it folks, have a play around with the APIs for
yourself - all undocumented of course.<br /><br />
Here's the Console App Solution I use (built for very demo purposes)<br /><br /><a href="http://blogs.breeze.net/mickb/content/binary/TPM%20API%20Demo.zip">TPM API
Demo.zip (32 KB)</a><br /><br />
Enjoy Mick!<br /><img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=b9e692ea-1f8e-4930-95ef-6fc8556b51c3" /></body>
      <title>BizTalk 2010: Creating TPM Partners through Code</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,b9e692ea-1f8e-4930-95ef-6fc8556b51c3.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/05/22/BizTalk2010CreatingTPMPartnersThroughCode.aspx</link>
      <pubDate>Tue, 22 May 2012 04:45:23 GMT</pubDate>
      <description>Hi folks, recently I've been asked by several students on how to create Parties, Agreements, Profiles etc. via code in BizTalk 2010.&lt;br&gt;
&lt;br&gt;
I played with this along time ago while at Redmond as BizTalk 2010 was in the process
of being released.&lt;br&gt;
&lt;br&gt;
So I've just rolled up my sleeves and provided a quick demo for you - the demo shows:&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;
How to enumerate and get at each of your TPM Partners.&lt;/li&gt;
&lt;li&gt;
How to create Partners + Profiles within BizTalk 2010.&lt;/li&gt;
&lt;/ol&gt;
&lt;b&gt;Note: I've only tried this on BizTalk 2010&lt;/b&gt; (&amp;amp; needless to say I'm claiming
'works on my machine' :))&lt;br&gt;
&lt;br&gt;
&lt;b&gt;What we're talking about in BizTalk&lt;br&gt;
&lt;/b&gt;This section here....&lt;br&gt;
&lt;br&gt;
&lt;img src="data:image/png;base64,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" alt=""&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Show me the code....&lt;/b&gt;
&lt;br&gt;
Well the magic is found in this DLL - 
&lt;br&gt;
&lt;b&gt;C:\Program Files (x86)\Microsoft BizTalk Server 2010\Developer Tools\Microsoft.BizTalk.B2B.PartnerManagement.dll&lt;br&gt;
&lt;/b&gt;
&lt;br&gt;
- create a VS.NET 2010 app (for this demo I created a console app)&lt;br&gt;
- we make a reference to the above DLL (we also need to reference system.data.entity)&lt;br&gt;
- set a connectionstring to our BizTalk Management DB, mine is &lt;b&gt;BizTalkDB&lt;/b&gt; (as
I rolled all the BizTalk DBs into one - for dev)&lt;br&gt;
- start enumerating.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;C# Looks like this&lt;/b&gt;-&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;static&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;void&lt;/span&gt; Main(&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;string&lt;/span&gt;[]
args) { &lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;//enumerate
all the TPM Profiles in BizTalk&lt;/span&gt; var builder &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;new&lt;/span&gt; SqlConnectionStringBuilder(&lt;span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px"&gt;"DATA
SOURCE=localhost;Initial Catalog=BizTalkDB;"&lt;/span&gt; &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;+&lt;/span&gt; &lt;span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px"&gt;"Integrated
Security=SSPI;MultipleActiveResultSets=True"&lt;/span&gt;); var tmpCtx &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;=&lt;/span&gt; TpmContext.Create(builder);
Console.WriteLine(&lt;span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px"&gt;"Connected
to BizTalk Global Parties"&lt;/span&gt;); var partners &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;=&lt;/span&gt; tmpCtx.Partners;
Console.WriteLine(&lt;span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px"&gt;"Number
of Parters:{0}"&lt;/span&gt;, partners.Count()); Console.WriteLine(&lt;span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px"&gt;"------------"&lt;/span&gt;); &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;foreach&lt;/span&gt; (var
ptr &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;in&lt;/span&gt; partners)
{ var profiles &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;=&lt;/span&gt; ptr.GetBusinessProfiles();
Console.WriteLine(&lt;span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px"&gt;"{0}
Business Profiles:{1}"&lt;/span&gt;, ptr.Name, profiles.Count); &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;foreach&lt;/span&gt; (var
profile &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;in&lt;/span&gt; profiles)
{ Console.WriteLine(&lt;span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px"&gt;"\tProfile:{0}"&lt;/span&gt;,
profile.Name); } } tmpCtx.Dispose(); &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;if&lt;/span&gt; (bCreateProfile)
{ createProfile(&lt;span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px"&gt;"Breeze
Partner #"&lt;/span&gt;); } Console.WriteLine(&lt;span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px"&gt;"Finished"&lt;/span&gt;);
Console.ReadLine(); }&lt;/span&gt;&lt;/pre&gt;
&lt;br&gt;
&lt;b&gt;Point to Note: &lt;/b&gt;in the connection string I set 'MARS=true' just so we can enumerate
several collections at once through the one context. When updating or saving new,
partners and/or profiles I get errors and can't save through a MARs enabled connection.
(love to hear if you have different luck)&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Creating a Partner + Profile&lt;br&gt;
&lt;/b&gt;&lt;pre&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;&lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;//
need to do this through a single threaded connection - no MARS&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;private&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;static&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;void&lt;/span&gt; createProfile(&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;string&lt;/span&gt; partnerName)
{ partnerName += DateTime.Now.ToString(&lt;span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px"&gt;"yyyyMMdd-hhmmss"&lt;/span&gt;) &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;+&lt;/span&gt; (&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;new&lt;/span&gt; Random().Next(0,
65535)); Console.WriteLine(&lt;span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px"&gt;"Writing
a new Profile for {0}"&lt;/span&gt;, partnerName); var builder &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;new&lt;/span&gt; SqlConnectionStringBuilder(&lt;span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px"&gt;"DATA
SOURCE=localhost;Initial Catalog=BizTalkDB;Integrated Security=SSPI"&lt;/span&gt;); var
tmpCtx &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;=&lt;/span&gt; TpmContext.Create(builder);
var ptr &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;=&lt;/span&gt; tmpCtx.CreatePartner(partnerName);
var pname &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;=&lt;/span&gt; &lt;span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px"&gt;"Breeze
Profile-#"&lt;/span&gt; &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;+&lt;/span&gt; DateTime.Now.ToString(&lt;span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px"&gt;"yyyyMMdd-hhmmss"&lt;/span&gt;) &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;+&lt;/span&gt; (&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;new&lt;/span&gt; Random().Next(0,
65535)); var bp &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;=&lt;/span&gt; ptr.CreateBusinessProfile(pname);
bp.Description &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;=&lt;/span&gt; &lt;span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px"&gt;"Created
from Code"&lt;/span&gt;; var pcol &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px"&gt;new&lt;/span&gt; AS2ProtocolSettings(&lt;span style="color: #666666; background-color: #e4e4e4; font-family: Courier New; font-size: 11px"&gt;"BreezeProtocolSettings"&lt;/span&gt;);
bp.AddProtocolSettings(pcol); tmpCtx.SaveChanges(); tmpCtx.Dispose(); }&lt;/span&gt;&lt;/pre&gt;And
that's pretty much all there is to it folks, have a play around with the APIs for
yourself - all undocumented of course.&lt;br&gt;
&lt;br&gt;
Here's the Console App Solution I use (built for very demo purposes)&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/TPM%20API%20Demo.zip"&gt;TPM API
Demo.zip (32 KB)&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Enjoy Mick!&lt;br&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=b9e692ea-1f8e-4930-95ef-6fc8556b51c3" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,b9e692ea-1f8e-4930-95ef-6fc8556b51c3.aspx</comments>
      <category>.NET Developer</category>
      <category>BizTalk</category>
      <category>BizTalk/2010</category>
      <category>BizTalk/2010 R2</category>
      <category>BizTalk/Insights</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=ba708e69-c4d6-4981-8534-dec90142ce92</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,ba708e69-c4d6-4981-8534-dec90142ce92.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,ba708e69-c4d6-4981-8534-dec90142ce92.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=ba708e69-c4d6-4981-8534-dec90142ce92</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Easy but effective
</p>
        <p>
&lt;script type='text/javascript'&gt; 
<br />
var msg = "your big title goes here…";<br />
msg = " ..... " + msg;pos = 0;<br />
function scrollTitle() {<br />
document.title = msg.substring(pos, msg.length) + msg.substring(0, pos); pos++;<br />
if (pos &gt; msg.length) pos = 0<br />
window.setTimeout("scrollTitle()",300);<br />
}<br />
scrollTitle();<br />
&lt;/script&gt;
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=ba708e69-c4d6-4981-8534-dec90142ce92" />
      </body>
      <title>HTML: How to Scroll the HTML Title of a Page</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,ba708e69-c4d6-4981-8534-dec90142ce92.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/03/10/HTMLHowToScrollTheHTMLTitleOfAPage.aspx</link>
      <pubDate>Sat, 10 Mar 2012 04:12:07 GMT</pubDate>
      <description>&lt;p&gt;
Easy but effective
&lt;/p&gt;
&lt;p&gt;
&amp;lt;script type='text/javascript'&amp;gt; 
&lt;br&gt;
var msg = "your big title goes here…";&lt;br&gt;
msg = " ..... " + msg;pos = 0;&lt;br&gt;
function scrollTitle() {&lt;br&gt;
document.title = msg.substring(pos, msg.length) + msg.substring(0, pos); pos++;&lt;br&gt;
if (pos &amp;gt; msg.length) pos = 0&lt;br&gt;
window.setTimeout("scrollTitle()",300);&lt;br&gt;
}&lt;br&gt;
scrollTitle();&lt;br&gt;
&amp;lt;/script&amp;gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=ba708e69-c4d6-4981-8534-dec90142ce92" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,ba708e69-c4d6-4981-8534-dec90142ce92.aspx</comments>
      <category>.NET Developer</category>
      <category>Dev</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=103e65c3-384b-4a16-8a22-3f34b95c35db</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,103e65c3-384b-4a16-8a22-3f34b95c35db.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,103e65c3-384b-4a16-8a22-3f34b95c35db.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=103e65c3-384b-4a16-8a22-3f34b95c35db</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
You know it’s a Friday when…who can spot the <strong>‘yes/no/cancel’</strong> buttons?
</p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/SharePoint-Form-Template-Upgrade_9C70/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/SharePoint-Form-Template-Upgrade_9C70/image_thumb_1.png" width="449" height="272" />
          </a>
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=103e65c3-384b-4a16-8a22-3f34b95c35db" />
      </body>
      <title>SharePoint: Form Template Upgrade</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,103e65c3-384b-4a16-8a22-3f34b95c35db.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/02/10/SharePointFormTemplateUpgrade.aspx</link>
      <pubDate>Fri, 10 Feb 2012 00:09:15 GMT</pubDate>
      <description>&lt;p&gt;
You know it’s a Friday when…who can spot the &lt;strong&gt;‘yes/no/cancel’&lt;/strong&gt; buttons?
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/SharePoint-Form-Template-Upgrade_9C70/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/SharePoint-Form-Template-Upgrade_9C70/image_thumb_1.png" width="449" height="272"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=103e65c3-384b-4a16-8a22-3f34b95c35db" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,103e65c3-384b-4a16-8a22-3f34b95c35db.aspx</comments>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=6f73ff34-2490-4749-b23a-19aac2630ab7</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,6f73ff34-2490-4749-b23a-19aac2630ab7.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,6f73ff34-2490-4749-b23a-19aac2630ab7.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=6f73ff34-2490-4749-b23a-19aac2630ab7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
While wrestling with SharePoint 2007 SP2 today, I got a great error message.
</p>
        <p>
“SharePoint Products and Technologies Configuration <strong>Wiza</strong>” – Wizzzzzaaaaaaaaahhhhhhh!<br />
(this sits nicely with Shazza, Mappa, Timmy, Kimmy, and on it goes…”)
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/Windows-Live-Writer/SharePoint-2007-SP2Turns-AUSSIE_C1E0/image_2.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/Windows-Live-Writer/SharePoint-2007-SP2Turns-AUSSIE_C1E0/image_thumb.png" width="487" height="250" />
          </a>
        </p>
        <p>
Now to sort the problem out…
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=6f73ff34-2490-4749-b23a-19aac2630ab7" />
      </body>
      <title>SharePoint 2007 SP2–Turns AUSSIE!!!!</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,6f73ff34-2490-4749-b23a-19aac2630ab7.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2011/10/18/SharePoint2007SP2TurnsAUSSIE.aspx</link>
      <pubDate>Tue, 18 Oct 2011 02:52:55 GMT</pubDate>
      <description>&lt;p&gt;
While wrestling with SharePoint 2007 SP2 today, I got a great error message.
&lt;/p&gt;
&lt;p&gt;
“SharePoint Products and Technologies Configuration &lt;strong&gt;Wiza&lt;/strong&gt;” – Wizzzzzaaaaaaaaahhhhhhh!&lt;br&gt;
(this sits nicely with Shazza, Mappa, Timmy, Kimmy, and on it goes…”)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/Windows-Live-Writer/SharePoint-2007-SP2Turns-AUSSIE_C1E0/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/Windows-Live-Writer/SharePoint-2007-SP2Turns-AUSSIE_C1E0/image_thumb.png" width="487" height="250"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Now to sort the problem out…
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=6f73ff34-2490-4749-b23a-19aac2630ab7" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,6f73ff34-2490-4749-b23a-19aac2630ab7.aspx</comments>
      <category>General</category>
      <category>SharePoint</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=95846a68-6a50-4612-a35a-9a023b3101d1</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,95846a68-6a50-4612-a35a-9a023b3101d1.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <georss:point>0 0</georss:point>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,95846a68-6a50-4612-a35a-9a023b3101d1.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=95846a68-6a50-4612-a35a-9a023b3101d1</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">So you've got an on-premise WCF Service
and you're going to expose the endpoint to the Cloud via ServiceBus.<br /><br />
I'm with a client excited about the prospect of Azure and using ServiceBus for connectivity
for our local WCF Services. 
<br /><br />
Remember <b>ServiceBus </b>is touted as the firewall friend communications mechanism.<br /><br />
Should be pretty easy right? - just follow an article like - http://msdn.microsoft.com/en-us/library/ee732535.aspx<br /><br />
If you are on a <b>Secure Server - i.e. one that doesn't have default open slather
access to the internet by default</b> you will fall <b>well short</b>.<br />
(nb: the Azure ServiceBus documentation is a little thin here also. ie no mention
whatsoever)<br /><br />
You will get 'can't contact watchdog.servicebus.windows.net' and many others....So....<br /><br />
After much head banging <a href="http://blogs.breeze.net/scotts">Scotty</a> sat down
one rainy day and looked at the full conversation to establish a connection to the
cloud via Service Bus<br /><br />
NB: XXXX is your ServiceBus endpoint name you configured in the Azure Management Portal
earlier. This endpoint lives in the Azure Singapore Data Center<br /><br /><span lang="en-AU"><div style="margin: 0pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d">When
ConnectionMode = TCP (Hybrid)</font></span></font></div><div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d">1.</font><font color="#1f497d"><span style="">       </span></font><font color="#1f497d">CNAME
lookup for </font><font color="#1f497d"><b>watchdog.servicebus.windows.net </b></font><font color="#1f497d">&gt;
returns </font><font color="#1f497d"><b>ns-sb-prod-sn1-001.cloudapp.net</b></font></span></font></div><div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d">2.</font><font color="#1f497d"><span style="">       </span></font><font color="#1f497d">Connect
to </font><font color="#1f497d"><b>ns-sb-prod-sn1-001.cloudapp.net</b></font><font color="#1f497d"> (port </font><font color="#1f497d"><b>9350</b></font><font color="#1f497d">)</font></span></font></div><div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d">3.</font><font color="#1f497d"><span style="">       </span></font><font color="#1f497d">CNAME
lookup for <b>XXXX</b></font><font color="#1f497d"><b>-sb.accesscontrol.windows.net </b></font><font color="#1f497d">returns </font><font color="#1f497d"><b>ns-ac-prod-sin-001.cloudapp.net</b></font></span></font></div><div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d">4.</font><font color="#1f497d"><span style="">       </span></font><font color="#1f497d">Connect
to </font><font color="#1f497d"><b>ns-</b></font><font color="#1f497d"><b>ac</b></font><font color="#1f497d"><b>-prod-sin-001.cloudapp.net</b></font><font color="#1f497d"> (port </font><font color="#1f497d"><b>443</b></font><font color="#1f497d">)</font></span></font></div><div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d">5.</font><font color="#1f497d"><span style="">       </span></font><font color="#1f497d">CNAME
lookup for <b>XXXX</b></font><font color="#1f497d"><b>.servicebus.windows.net</b></font><font color="#1f497d"> returns </font><font color="#1f497d"><b>ns-sb-prod-sin-001.cloudapp.net</b></font></span></font></div><div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d">6.</font><font color="#1f497d"><span style="">       </span></font><font color="#1f497d">Connect
to </font><font color="#1f497d"><b>ns-sb-prod-</b></font><font color="#1f497d"><b>sin</b></font><font color="#1f497d"><b>-001.cloudapp.net</b></font><font color="#1f497d"> (port </font><font color="#1f497d"><b>9351</b></font><font color="#1f497d">)</font></span></font></div><div style="margin: 0pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d"> </font></span></font></div><div style="margin: 0pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d">When
ConnectionMode = Http</font></span></font></div><div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d">1.</font><font color="#1f497d"><span style="">       </span></font><font color="#1f497d">CNAME
lookup for <b>XXXX</b></font><font color="#1f497d"><b>-sb.accesscontrol.windows.net</b></font><font color="#1f497d"> returns </font><font color="#1f497d"><b>ns-ac-prod-sin-001.cloudapp.net</b></font></span></font></div><div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d">2.</font><font color="#1f497d"><span style="">       </span></font><font color="#1f497d">Connect
to </font><font color="#1f497d"><b>ns-</b></font><font color="#1f497d"><b>ac</b></font><font color="#1f497d"><b>-prod-s</b></font><font color="#1f497d"><b>in</b></font><font color="#1f497d"><b>-001.cloudapp.net</b></font><font color="#1f497d"> (port </font><font color="#1f497d"><b>443</b></font><font color="#1f497d">)</font></span></font></div><div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d">3.</font><font color="#1f497d"><span style="">       </span></font><font color="#1f497d">CNAME
lookup for <b>XXXX</b></font><font color="#1f497d"><b>.servicebus.windows.net </b></font><font color="#1f497d">returns </font><font color="#1f497d"><b>ns-sb-prod-sin-001.cloudapp.net</b></font></span></font></div><div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d">4.</font><font color="#1f497d"><span style="">       </span></font><font color="#1f497d">Connect
to </font><font color="#1f497d"><b>ns-sb-prod-s</b></font><font color="#1f497d"><b>in</b></font><font color="#1f497d"><b>-001.cloudapp.net</b></font><font color="#1f497d"> (port </font><font color="#1f497d"><b>80</b></font><font color="#1f497d">)</font></span></font></div><div style="margin: 0pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d"> </font></span></font></div><div style="margin: 0pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d">Also,
when we lock this down to https endpoint step 4 above will be over 443</font></span></font></div><div style="margin: 0pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d"> </font></span></font></div><div style="margin: 0pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d">So
the complete firewall rules to support both modes should be:</font></span></font></div><div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d" face="Symbol">·</font><font color="#1f497d" face="Symbol"><span style="">         </span></font><font color="#1f497d"><b>watchdog.servicebus.windows.net
(9350-9353)</b></font></span></font></div><div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d" face="Symbol">·</font><font color="#1f497d" face="Symbol"><span style="">         </span></font><font color="#1f497d"><b>ns-sb-prod-sn1-001.cloudapp.net
(9350-9353)</b></font></span></font></div><div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d" face="Symbol">·</font><font color="#1f497d" face="Symbol"><span style="">         <font face="Calibri,sans-serif"><b>XXXX</b></font></span></font><font color="#1f497d"><b>-sb.accesscontrol.windows.net
(443)</b></font></span></font></div><div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d" face="Symbol">·</font><font color="#1f497d" face="Symbol"><span style="">         </span></font><font color="#1f497d"><b>ns-ac-prod-sin-001.cloudapp.net
(443)</b></font></span></font></div><div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d" face="Symbol">·</font><font color="#1f497d" face="Symbol"><span style="">         <font face="Calibri,sans-serif"><b>XXXX</b></font></span></font><font color="#1f497d"><b>.servicebus.windows.net
(80, 443, 9350-9353)</b></font></span></font></div><div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d" face="Symbol">·</font><font color="#1f497d" face="Symbol"><span style="">         </span></font><font color="#1f497d"><b>ns-sb-prod-sin-001.cloudapp.net
(80, 443, 9350-9353)</b></font></span></font></div><div style="margin: 0pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d"> </font></span></font></div><div style="margin: 0pt;"><font face="Calibri,sans-serif" size="2"><span style="font-size: 11pt;"><font color="#1f497d">Note
the difference between </font><font color="#1f497d"><b>ns-sb-prod-</b></font><font color="#1f497d"><span style="background-color: yellow;"><b>sn1</b></span></font><font color="#1f497d"><b>-001.cloudapp.net </b></font><font color="#1f497d">and
the others</font><font color="#1f497d"><b> ns-</b></font><font color="#1f497d"><span style="background-color: yellow;"><b>ac</b></span></font><font color="#1f497d"><b>-prod-</b></font><font color="#1f497d"><span style="background-color: yellow;"><b>sin</b></span></font><font color="#1f497d"><b>-001.cloudapp.net,
ns-sb-prod-</b></font><font color="#1f497d"><span style="background-color: yellow;"><b>sin</b></span></font><font color="#1f497d"><b>-001.cloudapp.net</b></font></span></font></div></span><br />
Hopefully you won't get caught out at a client site asking for firewall changes, one
at a time as you discover them.<br /><br />
Enjoy,<br /><br />
Mick + big thanks Scotty for the details.<br /><p></p><img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=95846a68-6a50-4612-a35a-9a023b3101d1" /></body>
      <title>Azure Service Bus: Required Firewall Rules - 'watchdog....'</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,95846a68-6a50-4612-a35a-9a023b3101d1.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2011/06/22/AzureServiceBusRequiredFirewallRulesWatchdog.aspx</link>
      <pubDate>Wed, 22 Jun 2011 02:24:38 GMT</pubDate>
      <description>So you've got an on-premise WCF Service and you're going to expose the endpoint to the Cloud via ServiceBus.&lt;br&gt;
&lt;br&gt;
I'm with a client excited about the prospect of Azure and using ServiceBus for connectivity
for our local WCF Services. 
&lt;br&gt;
&lt;br&gt;
Remember &lt;b&gt;ServiceBus &lt;/b&gt;is touted as the firewall friend communications mechanism.&lt;br&gt;
&lt;br&gt;
Should be pretty easy right? - just follow an article like - http://msdn.microsoft.com/en-us/library/ee732535.aspx&lt;br&gt;
&lt;br&gt;
If you are on a &lt;b&gt;Secure Server - i.e. one that doesn't have default open slather
access to the internet by default&lt;/b&gt; you will fall &lt;b&gt;well short&lt;/b&gt;.&lt;br&gt;
(nb: the Azure ServiceBus documentation is a little thin here also. ie no mention
whatsoever)&lt;br&gt;
&lt;br&gt;
You will get 'can't contact watchdog.servicebus.windows.net' and many others....So....&lt;br&gt;
&lt;br&gt;
After much head banging &lt;a href="http://blogs.breeze.net/scotts"&gt;Scotty&lt;/a&gt; sat down
one rainy day and looked at the full conversation to establish a connection to the
cloud via Service Bus&lt;br&gt;
&lt;br&gt;
NB: XXXX is your ServiceBus endpoint name you configured in the Azure Management Portal
earlier. This endpoint lives in the Azure Singapore Data Center&lt;br&gt;
&lt;br&gt;
&lt;span lang="en-AU"&gt;
&lt;div style="margin: 0pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d"&gt;When
ConnectionMode = TCP (Hybrid)&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d"&gt;1.&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;CNAME
lookup for &lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;watchdog.servicebus.windows.net &lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&amp;gt;
returns &lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;ns-sb-prod-sn1-001.cloudapp.net&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d"&gt;2.&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;Connect
to &lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;ns-sb-prod-sn1-001.cloudapp.net&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt; (port &lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;9350&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d"&gt;3.&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;CNAME
lookup for &lt;b&gt;XXXX&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;-sb.accesscontrol.windows.net &lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;returns &lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;ns-ac-prod-sin-001.cloudapp.net&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d"&gt;4.&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;Connect
to &lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;ns-&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;ac&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;-prod-sin-001.cloudapp.net&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt; (port &lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;443&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d"&gt;5.&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;CNAME
lookup for &lt;b&gt;XXXX&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;.servicebus.windows.net&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt; returns &lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;ns-sb-prod-sin-001.cloudapp.net&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d"&gt;6.&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;Connect
to &lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;ns-sb-prod-&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;sin&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;-001.cloudapp.net&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt; (port &lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;9351&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="margin: 0pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="margin: 0pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d"&gt;When
ConnectionMode = Http&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d"&gt;1.&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;CNAME
lookup for &lt;b&gt;XXXX&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;-sb.accesscontrol.windows.net&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt; returns &lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;ns-ac-prod-sin-001.cloudapp.net&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d"&gt;2.&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;Connect
to &lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;ns-&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;ac&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;-prod-s&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;in&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;-001.cloudapp.net&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt; (port &lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;443&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d"&gt;3.&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;CNAME
lookup for &lt;b&gt;XXXX&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;.servicebus.windows.net &lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;returns &lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;ns-sb-prod-sin-001.cloudapp.net&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d"&gt;4.&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;Connect
to &lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;ns-sb-prod-s&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;in&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;-001.cloudapp.net&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt; (port &lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;80&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="margin: 0pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="margin: 0pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d"&gt;Also,
when we lock this down to https endpoint step 4 above will be over 443&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="margin: 0pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="margin: 0pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d"&gt;So
the complete firewall rules to support both modes should be:&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d" face="Symbol"&gt;·&lt;/font&gt;&lt;font color="#1f497d" face="Symbol"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;watchdog.servicebus.windows.net
(9350-9353)&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d" face="Symbol"&gt;·&lt;/font&gt;&lt;font color="#1f497d" face="Symbol"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;ns-sb-prod-sn1-001.cloudapp.net
(9350-9353)&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d" face="Symbol"&gt;·&lt;/font&gt;&lt;font color="#1f497d" face="Symbol"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font face="Calibri,sans-serif"&gt;&lt;b&gt;XXXX&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;-sb.accesscontrol.windows.net
(443)&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d" face="Symbol"&gt;·&lt;/font&gt;&lt;font color="#1f497d" face="Symbol"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;ns-ac-prod-sin-001.cloudapp.net
(443)&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d" face="Symbol"&gt;·&lt;/font&gt;&lt;font color="#1f497d" face="Symbol"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font face="Calibri,sans-serif"&gt;&lt;b&gt;XXXX&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;.servicebus.windows.net
(80, 443, 9350-9353)&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="text-indent: -18pt; margin: 0pt 0pt 0pt 36pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d" face="Symbol"&gt;·&lt;/font&gt;&lt;font color="#1f497d" face="Symbol"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;ns-sb-prod-sin-001.cloudapp.net
(80, 443, 9350-9353)&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="margin: 0pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="margin: 0pt;"&gt;&lt;font face="Calibri,sans-serif" size="2"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;font color="#1f497d"&gt;Note
the difference between &lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;ns-sb-prod-&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;span style="background-color: yellow;"&gt;&lt;b&gt;sn1&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;-001.cloudapp.net &lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;and
the others&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt; ns-&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;span style="background-color: yellow;"&gt;&lt;b&gt;ac&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;-prod-&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;span style="background-color: yellow;"&gt;&lt;b&gt;sin&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;-001.cloudapp.net,
ns-sb-prod-&lt;/b&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;span style="background-color: yellow;"&gt;&lt;b&gt;sin&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#1f497d"&gt;&lt;b&gt;-001.cloudapp.net&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;/span&gt;
&lt;br&gt;
Hopefully you won't get caught out at a client site asking for firewall changes, one
at a time as you discover them.&lt;br&gt;
&lt;br&gt;
Enjoy,&lt;br&gt;
&lt;br&gt;
Mick + big thanks Scotty for the details.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=95846a68-6a50-4612-a35a-9a023b3101d1" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,95846a68-6a50-4612-a35a-9a023b3101d1.aspx</comments>
      <category>AppFabricServer</category>
      <category>Azure</category>
      <category>BizTalk</category>
      <category>BizTalk/2010</category>
      <category>BizTalk/BizTalk Adapter Pack</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=eed3722c-aef6-42e1-9ea5-6049a367a8d5</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,eed3722c-aef6-42e1-9ea5-6049a367a8d5.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,eed3722c-aef6-42e1-9ea5-6049a367a8d5.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=eed3722c-aef6-42e1-9ea5-6049a367a8d5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hi folks, I thought I’d share something that captivated me on this rainy Easter day
and that was
</p>
        <p>
          <strong>Visual Studio Asynchronous Programming - </strong>
          <a title="http://msdn.microsoft.com/en-au/vstudio/async" href="http://msdn.microsoft.com/en-au/vstudio/async">
            <strong>http://msdn.microsoft.com/en-au/vstudio/async</strong>
          </a>
          <br />
(you’ll need VS2010 + SP1 before you grab the CTP)<br />
There’s a new improved compiler + an extended library for us.
</p>
        <p>
Hands up who’s done async programming in either VB.NET or C#??? It’s a pain! Thread
management, Main UI threads can only update certain objects, passing values between
main + background threads, determining whether a thread has completed its tasks… and
so on… 
</p>
        <p>
Basically all these ‘issues’ keep us from delving further into the world of asynchronous
programming cause it very rapidly becomes complex just managing the two worlds – sync
+ async.
</p>
        <p>
          <strong>Today I was pleasantly surprised!!!</strong>
        </p>
        <p>
About a year ago I saw a great presentation on F# and I was amazed at how if they
wanted to run a bit of code async it was simple an extra character as in:
</p>
        <p>
set results = …..   &lt;-sync
</p>
        <p>
set results! = ….  &lt;- run this async
</p>
        <p>
(don’t quote me on the above, but it’s something like that – let’s call it pseudo
code)
</p>
        <p>
          <strong>Why are we interested in this?</strong> – that’s always the first question
to ask when investigating. Too many times we here ‘this is really cool’ and ‘check
this cool software out’ etc… but the real reason of WHY do we want to go down this
road is never answered. 
</p>
        <p>
On a ‘developers machine’ looking at 5 items, running a single test client – you’d
have to say “<strong>works on my machine” </strong>and you’d have no need to async
anything. True. Let’s move beyond our beloved developer box and think about UAT/PROD
environments and what your code is doing.<br /><br />
What happens if 4 concurrent requests come along – how is your code going to perform?
(As developers we’d be thinking …’it’s in the hands of IIS, not my issue’ :) )<br />
(I recently was presented with a solution that ran across 20 odd servers, the answer
to everything was get more hardware to make the app more performant, scalable etc
– couldnt be the code.)
</p>
        <p>
So as the requests start to build (don’t know an exact number but let’s say 100/sec),
what is happening to your code? how often do we sit down with profiling tools on our
code in this space? must be the disks..slow…and as always we have definitive proof <strong>works
on my machine</strong> says the developer!
</p>
        <p>
It’s not until we see our code running under load that we get an appreciation for
where things could be improved and are causing grief for not only IIS but other systems
as well.
</p>
        <p>
          <strong>Scalability, performance and scalability</strong> – single threaded app/service
vs multi-threaded. Multi-threaded tend to win all the time.
</p>
        <p>
Let me give you a couple of suggestions where this stuff is great:
</p>
        <ol>
          <li>
As part of a WF/WCF/Class where you want to ‘push’ some processing into the background
– critical things can be done upfront, and you can push some of the ‘other stuff’
into the background.<br /></li>
          <li>
Take advantage of some of the great multi-core/multi-cpu Servers out there – single
threaded tend to run on the same core on the same CPU (known as thread affinity)</li>
        </ol>
        <p>
Anyway enough jabbering from me and let’s see some of the hidden gems…
</p>
        <p>
          <strong>Async Programming Framework</strong>
        </p>
        <p>
Let me show you a couple of examples (from my set):
</p>
        <p>
1. <strong>Fetching a webpage</strong></p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_thumb.png" width="808" height="247" />
          </a>
        </p>
        <p>
Here I go off to twitter and search for all the BizTalk items.
</p>
        <p>
Couple of things to notice 
<br />
- <strong>…Async</strong> is added to the end of routines for convention, indicating
that these are Async callable routines.<br />
- not a <strong>single IAsyncResult</strong> to be seen, no <strong>StateObject </strong>and
no <strong>Callback routines!</strong><br />
– line 104 the <strong>async</strong> keyword indicating that this routine itself
can be called async if desired (more for the compiler)<br />
- line 108 the <strong>await </strong>keyword is used in the Async framework to ‘wait
for the async task to complete’  then move onto the next line.<br />
- line 108 <strong>WebRequest.Create(…).GetResponseAsync</strong> – it’s the <strong>GetResponseAsync</strong> that
is the async method, no …Begin or ..OnEnd calls! Just write it as you read it.<br />
- line 109 We get a reference to the response stream (I should check for the existence
of data etc – demo code, demo code :))<br />
- line 112 <strong>…await stm.ReadAsync(…</strong>) – reads the response stream into
a buffer on a background thread and we wait there until this completes (await keyword).
By all means there’s many other ways to program this, as in we don’t need to wait,
we could run this guy in the background quite happy and then check on him periodically.<br /><br />
That’s it! Not too tough at all, multi-threaded goodness right there. You can have
blocking and non-blocking calls etc.
</p>
        <p>
          <strong>2. What about a Chunk of CPU based code</strong>
        </p>
        <p>
NO Async Example – as per normal, doing some cpu things.<br /><br /><a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_thumb_1.png" width="604" height="262" /></a></p>
        <p>
Written in Async….<br /><br /><a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_6.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_thumb_2.png" width="608" height="349" /></a></p>
        <p>
        </p>
        <p>
        </p>
        <p>
Points to notice:<br />
- line 63 <strong>async Task&lt;int[]&gt;</strong> … to the Async framework the async
methods are wrapped within a <strong>Task</strong> class. We must ‘wrap’ anything
we return from our routines within a <strong>Task&lt;..&gt;</strong> – here I’m returning
an <strong>int[]<br /></strong>-line 66 <strong>… = TaskEx.Run(…something to run in a background thread…). </strong>As
we’re dealing with a block of code, there’s a <strong>Task Extension</strong> class
that allows us to run that bit of code Async.<br />
-line 79 <strong>await matrix</strong> – this line ensures that our async routine
has indeed completed (or errored) before we move onto the next line.
</p>
        <p>
Too easy if you’ve lived in the other world.
</p>
        <p>
As always remember this is CTP so I wouldn’t go rolling out into Prod just yet. The
perf numbers I get are pretty much identical to rolling all of this by hand with ThreadPool.QueueWorkItem(…)
and IAsyncResult etc.
</p>
        <p>
Well done MS!
</p>
        <p>
Enjoy and here’s my VS.NET Sample Solutions – I had great fun! Oh – this is also applicable
to Silverlight + WP7 apps :)<br /></p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:a0df05fc-9ae9-4249-bc41-83e6ce52876b" class="wlWriterEditableSmartContent">
          <p>
            <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/AsyncExperiments.zip" target="_blank">Samples
(114KB)</a>
          </p>
        </div>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=eed3722c-aef6-42e1-9ea5-6049a367a8d5" />
      </body>
      <title>Easier Async Programming Coming to C#/VB soon…</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,eed3722c-aef6-42e1-9ea5-6049a367a8d5.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2011/04/26/EasierAsyncProgrammingComingToCVBSoon.aspx</link>
      <pubDate>Tue, 26 Apr 2011 13:33:52 GMT</pubDate>
      <description>&lt;p&gt;
Hi folks, I thought I’d share something that captivated me on this rainy Easter day
and that was
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Visual Studio Asynchronous Programming - &lt;/strong&gt;&lt;a title="http://msdn.microsoft.com/en-au/vstudio/async" href="http://msdn.microsoft.com/en-au/vstudio/async"&gt;&lt;strong&gt;http://msdn.microsoft.com/en-au/vstudio/async&lt;/strong&gt;&lt;/a&gt;
&lt;br&gt;
(you’ll need VS2010 + SP1 before you grab the CTP)&lt;br&gt;
There’s a new improved compiler + an extended library for us.
&lt;/p&gt;
&lt;p&gt;
Hands up who’s done async programming in either VB.NET or C#??? It’s a pain! Thread
management, Main UI threads can only update certain objects, passing values between
main + background threads, determining whether a thread has completed its tasks… and
so on… 
&lt;/p&gt;
&lt;p&gt;
Basically all these ‘issues’ keep us from delving further into the world of asynchronous
programming cause it very rapidly becomes complex just managing the two worlds – sync
+ async.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Today I was pleasantly surprised!!!&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
About a year ago I saw a great presentation on F# and I was amazed at how if they
wanted to run a bit of code async it was simple an extra character as in:
&lt;/p&gt;
&lt;p&gt;
set results = …..&amp;nbsp;&amp;nbsp; &amp;lt;-sync
&lt;/p&gt;
&lt;p&gt;
set results! = ….&amp;nbsp; &amp;lt;- run this async
&lt;/p&gt;
&lt;p&gt;
(don’t quote me on the above, but it’s something like that – let’s call it pseudo
code)
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Why are we interested in this?&lt;/strong&gt; – that’s always the first question
to ask when investigating. Too many times we here ‘this is really cool’ and ‘check
this cool software out’ etc… but the real reason of WHY do we want to go down this
road is never answered. 
&lt;/p&gt;
&lt;p&gt;
On a ‘developers machine’ looking at 5 items, running a single test client – you’d
have to say “&lt;strong&gt;works on my machine” &lt;/strong&gt;and you’d have no need to async
anything. True. Let’s move beyond our beloved developer box and think about UAT/PROD
environments and what your code is doing.&lt;br&gt;
&lt;br&gt;
What happens if 4 concurrent requests come along – how is your code going to perform?
(As developers we’d be thinking …’it’s in the hands of IIS, not my issue’ :) )&lt;br&gt;
(I recently was presented with a solution that ran across 20 odd servers, the answer
to everything was get more hardware to make the app more performant, scalable etc
– couldnt be the code.)
&lt;/p&gt;
&lt;p&gt;
So as the requests start to build (don’t know an exact number but let’s say 100/sec),
what is happening to your code? how often do we sit down with profiling tools on our
code in this space? must be the disks..slow…and as always we have definitive proof &lt;strong&gt;works
on my machine&lt;/strong&gt; says the developer!
&lt;/p&gt;
&lt;p&gt;
It’s not until we see our code running under load that we get an appreciation for
where things could be improved and are causing grief for not only IIS but other systems
as well.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Scalability, performance and scalability&lt;/strong&gt; – single threaded app/service
vs multi-threaded. Multi-threaded tend to win all the time.
&lt;/p&gt;
&lt;p&gt;
Let me give you a couple of suggestions where this stuff is great:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
As part of a WF/WCF/Class where you want to ‘push’ some processing into the background
– critical things can be done upfront, and you can push some of the ‘other stuff’
into the background.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Take advantage of some of the great multi-core/multi-cpu Servers out there – single
threaded tend to run on the same core on the same CPU (known as thread affinity)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Anyway enough jabbering from me and let’s see some of the hidden gems…
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Async Programming Framework&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Let me show you a couple of examples (from my set):
&lt;/p&gt;
&lt;p&gt;
1. &lt;strong&gt;Fetching a webpage&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_thumb.png" width="808" height="247"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Here I go off to twitter and search for all the BizTalk items.
&lt;/p&gt;
&lt;p&gt;
Couple of things to notice 
&lt;br&gt;
- &lt;strong&gt;…Async&lt;/strong&gt; is added to the end of routines for convention, indicating
that these are Async callable routines.&lt;br&gt;
- not a &lt;strong&gt;single IAsyncResult&lt;/strong&gt; to be seen, no &lt;strong&gt;StateObject &lt;/strong&gt;and
no &lt;strong&gt;Callback routines!&lt;/strong&gt;
&lt;br&gt;
– line 104 the &lt;strong&gt;async&lt;/strong&gt; keyword indicating that this routine itself
can be called async if desired (more for the compiler)&lt;br&gt;
- line 108 the &lt;strong&gt;await &lt;/strong&gt;keyword is used in the Async framework to ‘wait
for the async task to complete’&amp;nbsp; then move onto the next line.&lt;br&gt;
- line 108 &lt;strong&gt;WebRequest.Create(…).GetResponseAsync&lt;/strong&gt; – it’s the &lt;strong&gt;GetResponseAsync&lt;/strong&gt; that
is the async method, no …Begin or ..OnEnd calls! Just write it as you read it.&lt;br&gt;
- line 109 We get a reference to the response stream (I should check for the existence
of data etc – demo code, demo code :))&lt;br&gt;
- line 112 &lt;strong&gt;…await stm.ReadAsync(…&lt;/strong&gt;) – reads the response stream into
a buffer on a background thread and we wait there until this completes (await keyword).
By all means there’s many other ways to program this, as in we don’t need to wait,
we could run this guy in the background quite happy and then check on him periodically.&lt;br&gt;
&lt;br&gt;
That’s it! Not too tough at all, multi-threaded goodness right there. You can have
blocking and non-blocking calls etc.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;2. What about a Chunk of CPU based code&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
NO Async Example – as per normal, doing some cpu things.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_thumb_1.png" width="604" height="262"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Written in Async….&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_thumb_2.png" width="608" height="349"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Points to notice:&lt;br&gt;
- line 63 &lt;strong&gt;async Task&amp;lt;int[]&amp;gt;&lt;/strong&gt; … to the Async framework the async
methods are wrapped within a &lt;strong&gt;Task&lt;/strong&gt; class. We must ‘wrap’ anything
we return from our routines within a &lt;strong&gt;Task&amp;lt;..&amp;gt;&lt;/strong&gt; – here I’m returning
an &lt;strong&gt;int[]&lt;br&gt;
&lt;/strong&gt;-line 66 &lt;strong&gt;… = TaskEx.Run(…something to run in a background thread…). &lt;/strong&gt;As
we’re dealing with a block of code, there’s a &lt;strong&gt;Task Extension&lt;/strong&gt; class
that allows us to run that bit of code Async.&lt;br&gt;
-line 79 &lt;strong&gt;await matrix&lt;/strong&gt; – this line ensures that our async routine
has indeed completed (or errored) before we move onto the next line.
&lt;/p&gt;
&lt;p&gt;
Too easy if you’ve lived in the other world.
&lt;/p&gt;
&lt;p&gt;
As always remember this is CTP so I wouldn’t go rolling out into Prod just yet. The
perf numbers I get are pretty much identical to rolling all of this by hand with ThreadPool.QueueWorkItem(…)
and IAsyncResult etc.
&lt;/p&gt;
&lt;p&gt;
Well done MS!
&lt;/p&gt;
&lt;p&gt;
Enjoy and here’s my VS.NET Sample Solutions – I had great fun! Oh – this is also applicable
to Silverlight + WP7 apps :)&lt;br&gt;
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:a0df05fc-9ae9-4249-bc41-83e6ce52876b" class="wlWriterEditableSmartContent"&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/AsyncExperiments.zip" target="_blank"&gt;Samples
(114KB)&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=eed3722c-aef6-42e1-9ea5-6049a367a8d5" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,eed3722c-aef6-42e1-9ea5-6049a367a8d5.aspx</comments>
      <category>.NET Developer</category>
      <category>Async</category>
      <category>Silverlight</category>
      <category>TechTalk</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=a32b8b17-60ee-4234-a345-12cf355dd10c</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,a32b8b17-60ee-4234-a345-12cf355dd10c.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,a32b8b17-60ee-4234-a345-12cf355dd10c.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=a32b8b17-60ee-4234-a345-12cf355dd10c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb.png" width="491" height="222" />
          </a>
        </p>
        <p>
While looking into an authentication problem I discovered this ‘new’ header sent back
from a SharePoint 2010 machine.
</p>
        <p>
          <strong>Health Score? </strong>hmmm… I thought, what’s the max and what’s the min
values. Is this good/bad? or don’t care?
</p>
        <p>
So SharePoint 2010 has several Throttling features it used such as <strong>Client
Auto Back-off</strong> which predominately when triggered, prioritises HTTP requests
– such as HTTP POSTS are non delayed or throttled, but HTTP GETs are and new HTTP
connections are throttled.
</p>
        <p>
Here is one <a href="http://msdn.microsoft.com/en-us/library/ff764951.aspx" target="_blank">MS
page</a> that barely describes the Header – could do with updating that one.
</p>
        <p>
SharePoint 2010 determines the <strong>health of a server</strong> by initially looking
at <strong>system counters.</strong></p>
        <p>
          <strong>Let’s dig further….</strong>
        </p>
        <p>
Upon Reflecting the classic Microsoft.SharePoint.dll, there’s a Microsoft.SharePoint.Diagnostics
section which I thought would be a great place to start. I found a 
<br /><strong>SPWebFrontEndDiagnosticsPerformanceCounterProvider </strong>class (amongst
others there’s a SPDatabaseServer class as well)
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_4.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb_1.png" width="567" height="350" />
          </a>
        </p>
        <p>
The line above <strong>collection[0] = ….</strong> refers to the following collection
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_8.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb_3.png" width="554" height="83" />
          </a>
        </p>
        <p>
So putting all this together, the performance counters are:
</p>
        <ul>
          <li>
            <strong>WebAppPool - “SharePoint Foundation”</strong>
          </li>
          <ul>
            <li>
              <strong>Global Heap Size</strong>
            </li>
            <li>
              <strong>Native Heap Count</strong>
            </li>
            <li>
              <strong>Process ID</strong>
            </li>
          </ul>
          <li>
            <strong>OWSTimer &amp; W3WP</strong>
          </li>
          <ul>
            <li>
              <strong>Private Bytes</strong>
            </li>
          </ul>
          <li>
            <strong>Processor (_total)</strong>
          </li>
          <ul>
            <li>
              <strong>Processor Time</strong>
            </li>
          </ul>
        </ul>
        <p>
It appears the main class behind all of this is<br /><strong>SPHttpThrottleSettings </strong>where it appears that the throttling setting
is turned off in ‘Single-Server’ deployments.
</p>
        <p>
Digging further I came across the big-daddy class of it all (I think) - 
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_10.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb_4.png" width="1028" height="644" />
          </a>
          <br />
          <strong>SPPerformanceInspector</strong> – notice the method <strong>IsInThrottling() </strong>and
the other is 2 constants that describe the displayed Throttled messages.
</p>
        <p>
I also noticed another method on this class <strong>SetupRegKeyHealthScore.</strong><br />
Where <strong>HKLM\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\14.0\WSS\ServerHealthScore</strong> is
the actual value you want to assign.
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_12.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb_5.png" width="761" height="380" />
          </a>
        </p>
        <p>
A value of 0 is great, 10 is bad. Over 10 means the server will go into Throttling
(letting your clients know as well).
</p>
        <p>
There’s many other things here, but I’ve got to head swimming. 
</p>
        <p>
Hope we unraveled this mystery a little more.
</p>
        <p>
Mick.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=a32b8b17-60ee-4234-a345-12cf355dd10c" />
      </body>
      <title>SharePoint 2010: X-SharePointHealthScore what is this?</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,a32b8b17-60ee-4234-a345-12cf355dd10c.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2011/01/27/SharePoint2010XSharePointHealthScoreWhatIsThis.aspx</link>
      <pubDate>Thu, 27 Jan 2011 05:43:16 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb.png" width="491" height="222"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
While looking into an authentication problem I discovered this ‘new’ header sent back
from a SharePoint 2010 machine.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Health Score? &lt;/strong&gt;hmmm… I thought, what’s the max and what’s the min
values. Is this good/bad? or don’t care?
&lt;/p&gt;
&lt;p&gt;
So SharePoint 2010 has several Throttling features it used such as &lt;strong&gt;Client
Auto Back-off&lt;/strong&gt; which predominately when triggered, prioritises HTTP requests
– such as HTTP POSTS are non delayed or throttled, but HTTP GETs are and new HTTP
connections are throttled.
&lt;/p&gt;
&lt;p&gt;
Here is one &lt;a href="http://msdn.microsoft.com/en-us/library/ff764951.aspx" target="_blank"&gt;MS
page&lt;/a&gt; that barely describes the Header – could do with updating that one.
&lt;/p&gt;
&lt;p&gt;
SharePoint 2010 determines the &lt;strong&gt;health of a server&lt;/strong&gt; by initially looking
at &lt;strong&gt;system counters.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Let’s dig further….&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Upon Reflecting the classic Microsoft.SharePoint.dll, there’s a Microsoft.SharePoint.Diagnostics
section which I thought would be a great place to start. I found a 
&lt;br&gt;
&lt;strong&gt;SPWebFrontEndDiagnosticsPerformanceCounterProvider &lt;/strong&gt;class (amongst
others there’s a SPDatabaseServer class as well)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb_1.png" width="567" height="350"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The line above &lt;strong&gt;collection[0] = ….&lt;/strong&gt; refers to the following collection
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb_3.png" width="554" height="83"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
So putting all this together, the performance counters are:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;WebAppPool - “SharePoint Foundation”&lt;/strong&gt;
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Global Heap Size&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Native Heap Count&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Process ID&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;strong&gt;OWSTimer &amp;amp; W3WP&lt;/strong&gt;
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Private Bytes&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;strong&gt;Processor (_total)&lt;/strong&gt;
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Processor Time&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;p&gt;
It appears the main class behind all of this is&lt;br&gt;
&lt;strong&gt;SPHttpThrottleSettings &lt;/strong&gt;where it appears that the throttling setting
is turned off in ‘Single-Server’ deployments.
&lt;/p&gt;
&lt;p&gt;
Digging further I came across the big-daddy class of it all (I think) - 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_10.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb_4.png" width="1028" height="644"&gt;&lt;/a&gt; 
&lt;br&gt;
&lt;strong&gt;SPPerformanceInspector&lt;/strong&gt; – notice the method &lt;strong&gt;IsInThrottling() &lt;/strong&gt;and
the other is 2 constants that describe the displayed Throttled messages.
&lt;/p&gt;
&lt;p&gt;
I also noticed another method on this class &lt;strong&gt;SetupRegKeyHealthScore.&lt;/strong&gt;
&lt;br&gt;
Where &lt;strong&gt;HKLM\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\14.0\WSS\ServerHealthScore&lt;/strong&gt; is
the actual value you want to assign.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_12.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb_5.png" width="761" height="380"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
A value of 0 is great, 10 is bad. Over 10 means the server will go into Throttling
(letting your clients know as well).
&lt;/p&gt;
&lt;p&gt;
There’s many other things here, but I’ve got to head swimming. 
&lt;/p&gt;
&lt;p&gt;
Hope we unraveled this mystery a little more.
&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=a32b8b17-60ee-4234-a345-12cf355dd10c" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,a32b8b17-60ee-4234-a345-12cf355dd10c.aspx</comments>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=9f08a8ad-7f84-49c8-8e4c-0048da4e730d</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,9f08a8ad-7f84-49c8-8e4c-0048da4e730d.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,9f08a8ad-7f84-49c8-8e4c-0048da4e730d.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=9f08a8ad-7f84-49c8-8e4c-0048da4e730d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I recently came across a SharePoint Portal that previously was working a treat up
until Christmas (just gone) and then the client got this on their <strong>Create Site
Page</strong>:
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010StrangerthanS.whencreating_B071/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010StrangerthanS.whencreating_B071/image_thumb.png" width="595" height="235" />
          </a>
        </p>
        <p>
So the good old “Parameter name: key” error…that old chestnut I thought (like I had
any idea at that stage).<br /><strong>Null – </strong>is always an interesting thing. So something is going through
a collection and not finding the value, not that they should have tested for the existence
of the value first…but we’ll leave that for another story.
</p>
        <p>
Why this was happening now? I haven’t got to the bottom of it, could be an update?
security patch? SQL update? code somewhere? I find these things happen on the night
before an important release date.
</p>
        <p>
So after sheer luck of me just ‘doodling’ on the Create Site Page, this appears to
have fixed it:
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010StrangerthanS.whencreating_B071/image_4.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010StrangerthanS.whencreating_B071/image_thumb_1.png" width="1016" height="635" />
          </a>
        </p>
        <p>
From the highlighted area – just simply fill in the empty(null) search box EVEN though
we are <strong>Creating a Site here.</strong></p>
        <p>
Go figure…
</p>
        <p>
Do I add SharePoint to the Wonders of the World list?
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=9f08a8ad-7f84-49c8-8e4c-0048da4e730d" />
      </body>
      <title>SharePoint 2010: Stranger than Strange error - “Key cannot be null.” when creating</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,9f08a8ad-7f84-49c8-8e4c-0048da4e730d.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2011/01/17/SharePoint2010StrangerThanStrangeErrorKeyCannotBeNullWhenCreating.aspx</link>
      <pubDate>Mon, 17 Jan 2011 01:33:00 GMT</pubDate>
      <description>&lt;p&gt;
I recently came across a SharePoint Portal that previously was working a treat up
until Christmas (just gone) and then the client got this on their &lt;strong&gt;Create Site
Page&lt;/strong&gt;:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010StrangerthanS.whencreating_B071/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010StrangerthanS.whencreating_B071/image_thumb.png" width="595" height="235"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
So the good old “Parameter name: key” error…that old chestnut I thought (like I had
any idea at that stage).&lt;br&gt;
&lt;strong&gt;Null – &lt;/strong&gt;is always an interesting thing. So something is going through
a collection and not finding the value, not that they should have tested for the existence
of the value first…but we’ll leave that for another story.
&lt;/p&gt;
&lt;p&gt;
Why this was happening now? I haven’t got to the bottom of it, could be an update?
security patch? SQL update? code somewhere? I find these things happen on the night
before an important release date.
&lt;/p&gt;
&lt;p&gt;
So after sheer luck of me just ‘doodling’ on the Create Site Page, this appears to
have fixed it:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010StrangerthanS.whencreating_B071/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010StrangerthanS.whencreating_B071/image_thumb_1.png" width="1016" height="635"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
From the highlighted area – just simply fill in the empty(null) search box EVEN though
we are &lt;strong&gt;Creating a Site here.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Go figure…
&lt;/p&gt;
&lt;p&gt;
Do I add SharePoint to the Wonders of the World list?
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=9f08a8ad-7f84-49c8-8e4c-0048da4e730d" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,9f08a8ad-7f84-49c8-8e4c-0048da4e730d.aspx</comments>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=f85a40cb-5655-4c6f-bf76-8f307d223564</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,f85a40cb-5655-4c6f-bf76-8f307d223564.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,f85a40cb-5655-4c6f-bf76-8f307d223564.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=f85a40cb-5655-4c6f-bf76-8f307d223564</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
I hope you’ve all been well over the break and enjoying the ‘thinking time’ – I’ve
been keeping one ear to the ground and just on the lookout for new bits. Here’s one….
</p>
        <p>
The BizTalk team have been busily working hard over the break and produced another
issue of BizTalk at it’s best – <strong>BizTalk Hotrod.</strong></p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalkNextHotrodissueavailable_13B15/image.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalkNextHotrodissueavailable_13B15/image_thumb.png" width="644" height="194" />
          </a>
        </p>
        <p>
          <b>
            <a href="http://biztalkhotrod.com/Documents/BizTalkHotrod11_Q4_2010.pdf">http://biztalkhotrod.com/Documents/BizTalkHotrod11_Q4_2010.pdf</a>
          </b>
        </p>
        <p>
          <strong>
          </strong>  
</p>
        <p>
Specifically this issues talks about: 
</p>
        <ul>
          <li>
Async communication with BizTalk across WCF-Duplex messaging. 
</li>
          <li>
Calling SAP RFCs from BizTalk – all you need to know.</li>
        </ul>
        <p>
Guys – the biztalk hotrod mag set is some of the best technical biztalk discussions
around, grab the previous issues and add them to your internal networks. A must.
</p>
        <p>
Enjoy and talk to you soon.
</p>
        <p>
Mick.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=f85a40cb-5655-4c6f-bf76-8f307d223564" />
      </body>
      <title>BizTalk: Next Hotrod issue available</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,f85a40cb-5655-4c6f-bf76-8f307d223564.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2011/01/09/BizTalkNextHotrodIssueAvailable.aspx</link>
      <pubDate>Sun, 09 Jan 2011 11:24:17 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
I hope you’ve all been well over the break and enjoying the ‘thinking time’ – I’ve
been keeping one ear to the ground and just on the lookout for new bits. Here’s one….
&lt;/p&gt;
&lt;p&gt;
The BizTalk team have been busily working hard over the break and produced another
issue of BizTalk at it’s best – &lt;strong&gt;BizTalk Hotrod.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalkNextHotrodissueavailable_13B15/image.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalkNextHotrodissueavailable_13B15/image_thumb.png" width="644" height="194"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;a href="http://biztalkhotrod.com/Documents/BizTalkHotrod11_Q4_2010.pdf"&gt;http://biztalkhotrod.com/Documents/BizTalkHotrod11_Q4_2010.pdf&lt;/a&gt;&lt;/b&gt; 
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;&amp;nbsp; 
&lt;p&gt;
Specifically this issues talks about: 
&lt;ul&gt;
&lt;li&gt;
Async communication with BizTalk across WCF-Duplex messaging. 
&lt;li&gt;
Calling SAP RFCs from BizTalk – all you need to know.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Guys – the biztalk hotrod mag set is some of the best technical biztalk discussions
around, grab the previous issues and add them to your internal networks. A must.
&lt;/p&gt;
&lt;p&gt;
Enjoy and talk to you soon.
&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=f85a40cb-5655-4c6f-bf76-8f307d223564" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,f85a40cb-5655-4c6f-bf76-8f307d223564.aspx</comments>
      <category>BizTalk</category>
      <category>BizTalk/2010</category>
      <category>BizTalk/BizTalk Adapter Pack/SAP</category>
      <category>BizTalk/Insights</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=8f301eb5-56fb-47fb-9502-7851c548812c</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,8f301eb5-56fb-47fb-9502-7851c548812c.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <georss:point>0 0</georss:point>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,8f301eb5-56fb-47fb-9502-7851c548812c.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=8f301eb5-56fb-47fb-9502-7851c548812c</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
There I was the other day slowly building up a new bts project in VS.NET.
</p>
        <p>
You know the way it goes, add some schemas, maybe maps and before long you have a
couple of helper assemblies and maybe a custom pipeline component or 2.
</p>
        <p>
The problem is that the C# Assemblies don't automatically get added to your BTS Application
in the BTS Admin console.
</p>
        <p>
Usually I'll drag down one of my mammoth powershell 'build all' scripts from a previous
project and customise this for the current project. 2 days later I usually stick my
head up to see which day it is, and typically as we developers do, build a ferrari
for something that a skateboard would do.
</p>
        <p>
So simply put - add the following line to your <strong>Post Build Events</strong> section
on your project in VS.NET.
</p>
        <p>
          <strong>btstask AddResource -ApplicationName:"Micks Demo App" -Type:System.BizTalk:Assembly
-Overwrite -Options:GacOnInstall,GacOnAdd -Source:"$(TargetPath)" -Destination:"%BTAD_InstallDir%\$(TargetFileName)"</strong>
        </p>
        <p>
Ahhh...too easy.
</p>
        <p>
Enjoy only a few more sleeps till Santa!
</p>
        <p>
Mick.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=8f301eb5-56fb-47fb-9502-7851c548812c" />
      </body>
      <title>BizTalk: Handy little post Build Event script - BTSTask-ing...</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,8f301eb5-56fb-47fb-9502-7851c548812c.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/12/15/BizTalkHandyLittlePostBuildEventScriptBTSTasking.aspx</link>
      <pubDate>Wed, 15 Dec 2010 05:11:08 GMT</pubDate>
      <description>&lt;p&gt;
There I was the other day slowly building up a new bts project in VS.NET.
&lt;/p&gt;
&lt;p&gt;
You know the way it goes, add some schemas, maybe maps and before long you have a
couple of helper assemblies and maybe a custom pipeline component or 2.
&lt;/p&gt;
&lt;p&gt;
The problem is that the C# Assemblies don't automatically get added to your BTS Application
in the BTS Admin console.
&lt;/p&gt;
&lt;p&gt;
Usually I'll drag down one of my mammoth powershell 'build all' scripts from a previous
project and customise this for the current project. 2 days later I usually stick my
head up to see which day it is, and typically as we developers do, build a ferrari
for something that a skateboard would do.
&lt;/p&gt;
&lt;p&gt;
So simply put - add the following line to your &lt;strong&gt;Post Build Events&lt;/strong&gt; section
on your project in VS.NET.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;btstask AddResource -ApplicationName:"Micks Demo App" -Type:System.BizTalk:Assembly
-Overwrite -Options:GacOnInstall,GacOnAdd -Source:"$(TargetPath)" -Destination:"%BTAD_InstallDir%\$(TargetFileName)"&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Ahhh...too easy.
&lt;/p&gt;
&lt;p&gt;
Enjoy only a few more sleeps till Santa!
&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=8f301eb5-56fb-47fb-9502-7851c548812c" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,8f301eb5-56fb-47fb-9502-7851c548812c.aspx</comments>
      <category>BizTalk</category>
      <category>BizTalk/2010</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=a125981c-195d-453f-8faf-947efac84e14</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,a125981c-195d-453f-8faf-947efac84e14.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,a125981c-195d-453f-8faf-947efac84e14.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=a125981c-195d-453f-8faf-947efac84e14</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Here’s something that I hope to save a few hours to you – <strong>InfoPath Forms Services.</strong></p>
        <p>
I recently ran into this dreaded error – "<a href="http://stackoverflow.com/questions/1237956/infopath-forms-services-is-not-turned-on">InfoPath
Forms Services is not turned on</a>” when trying to configure it from within SharePoint
Central Administration –&gt; General Application Settings.
</p>
        <p>
          <strong>Forms Services</strong> is part of <strong>SharePoint Enterprise Services</strong> (usually
activated via a Farm/Web Application/Site Collection or Site feature) and it relies
upon the <strong>State Service.</strong></p>
        <p>
So on our intranet, we’re revamping some InfoPath forms that were working in SP2007
and a new SP2010 using the database detach/attach method saw the intranet up and running…almost…except
for this <strong>InfoPath Forms Services.</strong></p>
        <p>
Most posts on the web talk about simply not having the feature enabled for either
a Site collection, and/or Central Admin (and various other red herrings in my case)<br /><a title="http://stackoverflow.com/questions/1237956/infopath-forms-services-is-not-turned-on" href="http://stackoverflow.com/questions/1237956/infopath-forms-services-is-not-turned-on">http://stackoverflow.com/questions/1237956/infopath-forms-services-is-not-turned-on</a><br /><a title="http://mundeep.wordpress.com/2009/02/17/infopath-forms-services-is-not-turned-on/" href="http://mundeep.wordpress.com/2009/02/17/infopath-forms-services-is-not-turned-on/">http://mundeep.wordpress.com/2009/02/17/infopath-forms-services-is-not-turned-on/</a></p>
        <p>
Basically my source of truth was <strong>SharePoint Manager 2010</strong> (great tool
from <a href="http://spm.codeplex.com/" target="_blank">CODEPLEX</a>) which allows
connections to SharePoint via the APIs as a standalone application (tip: make sure
you launch it in ‘run in administrator’ mode).<br /><br />
From here I saw that on my install I was <strong>missing</strong><strong>Forms Services </strong>listed
in the <strong>Farm’s Service Applications<br /><a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_thumb.png" width="635" height="484" /></a></strong></p>
        <p>
I initially thought it was some permissions issue and that I couldn’t see the service
under that account (even though I was farm admin), so I launched and checked under
the installer account and got the same result.
</p>
        <p>
My next questions were: <strong>How does Forms Services become missing? How do you
manually install/enable it?</strong></p>
        <p>
In this case, I had a classroom SharePoint 2010 VM easily available and looking at
it through SharePoint Manager, low and behold the <strong>Forms Service </strong>service
was there!! Listed.
</p>
        <p>
The machine I was having trouble with was a standard clean install, that I <strong>didn’t </strong>automatically
run the <strong>Configuration Wizard</strong> on – as I wanted to have control over
the naming of DBs. That was pretty much the difference between the two machines.
</p>
        <p>
So I tried a few things:
</p>
        <p>
a) installing just the InfoPath Web Admin Feature - <strong>stsadm -o installfeature
-name IPFSAdminWeb –force </strong>and then activating it with <strong>stsadm -o activatefeature
-name IPFSAdminWeb -url </strong><a href="http://sp2010:10000"><strong>http://sp2010:10000</strong></a><strong> –force</strong> (no
luck, it just gave me the InfoPath config under the Central Admin)
</p>
        <p>
b) reran the configuration wizard
</p>
        <p>
c) repaired setup
</p>
        <p>
d) tried to run just the InfoPath Forms Services MSI from the install source.
</p>
        <p>
…all to no avail.
</p>
        <p>
          <strong>InfoPath Forms Services – </strong>now with ‘deeper’ integration with SharePoint
2010, an internal service but with no real apparent way of getting to it.
</p>
        <p>
          <strong>The Answer:</strong>
          <br />
I got thinking and I decided to attempt a <strong>backup of the Service from my VM
and restore just the Service to the intranet Farm</strong>.
</p>
        <p>
- <strong>Perform a backup of just the configuration</strong></p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_3.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_thumb_3.png" width="644" height="384" />
          </a>
        </p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_4.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_thumb_4.png" width="1010" height="114" />
          </a>
        </p>
        <p>
Then from there I did a restore (more in hope than anything) such that this process
would ‘inject’ the right settings into the Farm Database.
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_5.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_thumb_5.png" width="644" height="227" />
          </a>
        </p>
        <p>
At this point anything with <strong>InfoPath Forms Services </strong>on it was a bonus.
</p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
In any rate, here’s the backup file in ZIP format from my VM, that you can use to
restore if ever faced with a similar challenge :)
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:1545f6bf-7625-43c8-ab85-dfcc498b1099" class="wlWriterEditableSmartContent">
          <p>
            <a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/InfoPathFormsServices.zip" target="_blank">InfoPathFormsServices.ZIP</a>
          </p>
        </div>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=a125981c-195d-453f-8faf-947efac84e14" />
      </body>
      <title>SharePoint 2010: InfoPath Forms Services is not turned on</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,a125981c-195d-453f-8faf-947efac84e14.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/10/25/SharePoint2010InfoPathFormsServicesIsNotTurnedOn.aspx</link>
      <pubDate>Mon, 25 Oct 2010 10:02:10 GMT</pubDate>
      <description>&lt;p&gt;
Here’s something that I hope to save a few hours to you – &lt;strong&gt;InfoPath Forms Services.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I recently ran into this dreaded error – "&lt;a href="http://stackoverflow.com/questions/1237956/infopath-forms-services-is-not-turned-on"&gt;InfoPath
Forms Services is not turned on&lt;/a&gt;” when trying to configure it from within SharePoint
Central Administration –&amp;gt; General Application Settings.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Forms Services&lt;/strong&gt; is part of &lt;strong&gt;SharePoint Enterprise Services&lt;/strong&gt; (usually
activated via a Farm/Web Application/Site Collection or Site feature) and it relies
upon the &lt;strong&gt;State Service.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
So on our intranet, we’re revamping some InfoPath forms that were working in SP2007
and a new SP2010 using the database detach/attach method saw the intranet up and running…almost…except
for this &lt;strong&gt;InfoPath Forms Services.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Most posts on the web talk about simply not having the feature enabled for either
a Site collection, and/or Central Admin (and various other red herrings in my case)&lt;br&gt;
&lt;a title="http://stackoverflow.com/questions/1237956/infopath-forms-services-is-not-turned-on" href="http://stackoverflow.com/questions/1237956/infopath-forms-services-is-not-turned-on"&gt;http://stackoverflow.com/questions/1237956/infopath-forms-services-is-not-turned-on&lt;/a&gt;
&lt;br&gt;
&lt;a title="http://mundeep.wordpress.com/2009/02/17/infopath-forms-services-is-not-turned-on/" href="http://mundeep.wordpress.com/2009/02/17/infopath-forms-services-is-not-turned-on/"&gt;http://mundeep.wordpress.com/2009/02/17/infopath-forms-services-is-not-turned-on/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Basically my source of truth was &lt;strong&gt;SharePoint Manager 2010&lt;/strong&gt; (great tool
from &lt;a href="http://spm.codeplex.com/" target="_blank"&gt;CODEPLEX&lt;/a&gt;) which allows
connections to SharePoint via the APIs as a standalone application (tip: make sure
you launch it in ‘run in administrator’ mode).&lt;br&gt;
&lt;br&gt;
From here I saw that on my install I was &lt;strong&gt;missing&lt;/strong&gt; &lt;strong&gt;Forms Services &lt;/strong&gt;listed
in the &lt;strong&gt;Farm’s Service Applications&lt;br&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_thumb.png" width="635" height="484"&gt;&lt;/a&gt; &lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I initially thought it was some permissions issue and that I couldn’t see the service
under that account (even though I was farm admin), so I launched and checked under
the installer account and got the same result.
&lt;/p&gt;
&lt;p&gt;
My next questions were: &lt;strong&gt;How does Forms Services become missing? How do you
manually install/enable it?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
In this case, I had a classroom SharePoint 2010 VM easily available and looking at
it through SharePoint Manager, low and behold the &lt;strong&gt;Forms Service &lt;/strong&gt;service
was there!! Listed.
&lt;/p&gt;
&lt;p&gt;
The machine I was having trouble with was a standard clean install, that I &lt;strong&gt;didn’t &lt;/strong&gt;automatically
run the &lt;strong&gt;Configuration Wizard&lt;/strong&gt; on – as I wanted to have control over
the naming of DBs. That was pretty much the difference between the two machines.
&lt;/p&gt;
&lt;p&gt;
So I tried a few things:
&lt;/p&gt;
&lt;p&gt;
a) installing just the InfoPath Web Admin Feature - &lt;strong&gt;stsadm -o installfeature
-name IPFSAdminWeb –force &lt;/strong&gt;and then activating it with &lt;strong&gt;stsadm -o activatefeature
-name IPFSAdminWeb -url &lt;/strong&gt;&lt;a href="http://sp2010:10000"&gt;&lt;strong&gt;http://sp2010:10000&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; –force&lt;/strong&gt; (no
luck, it just gave me the InfoPath config under the Central Admin)
&lt;/p&gt;
&lt;p&gt;
b) reran the configuration wizard
&lt;/p&gt;
&lt;p&gt;
c) repaired setup
&lt;/p&gt;
&lt;p&gt;
d) tried to run just the InfoPath Forms Services MSI from the install source.
&lt;/p&gt;
&lt;p&gt;
…all to no avail.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;InfoPath Forms Services – &lt;/strong&gt;now with ‘deeper’ integration with SharePoint
2010, an internal service but with no real apparent way of getting to it.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The Answer:&lt;/strong&gt;
&lt;br&gt;
I got thinking and I decided to attempt a &lt;strong&gt;backup of the Service from my VM
and restore just the Service to the intranet Farm&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
- &lt;strong&gt;Perform a backup of just the configuration&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_3.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_thumb_3.png" width="644" height="384"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_thumb_4.png" width="1010" height="114"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Then from there I did a restore (more in hope than anything) such that this process
would ‘inject’ the right settings into the Farm Database.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_5.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_thumb_5.png" width="644" height="227"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
At this point anything with &lt;strong&gt;InfoPath Forms Services &lt;/strong&gt;on it was a bonus.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
In any rate, here’s the backup file in ZIP format from my VM, that you can use to
restore if ever faced with a similar challenge :)
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:1545f6bf-7625-43c8-ab85-dfcc498b1099" class="wlWriterEditableSmartContent"&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/InfoPathFormsServices.zip" target="_blank"&gt;InfoPathFormsServices.ZIP&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=a125981c-195d-453f-8faf-947efac84e14" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,a125981c-195d-453f-8faf-947efac84e14.aspx</comments>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=1922491d-23f6-4c5e-b6c5-a6533e693d7a</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,1922491d-23f6-4c5e-b6c5-a6533e693d7a.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,1922491d-23f6-4c5e-b6c5-a6533e693d7a.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=1922491d-23f6-4c5e-b6c5-a6533e693d7a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Olaf and I were cracking away on some SharePoint 2010 work which we thought should
be simple…point SPMetal to the site and start LINQ-ing to our hearts content…..
</p>
        <p>
with the one exception that we couldn’t select items from a list based on their <strong>Content
Type</strong>.
</p>
        <p>
By default <strong>SPMetal.exe doesn’t include these ‘system’ fields</strong> (apart
from ID + Title – go figure) and the secret is to use an <strong>Override file.</strong></p>
        <p>
The good oil is:<a title="http://msdn.microsoft.com/en-us/library/ee535056.aspx" href="http://msdn.microsoft.com/en-us/library/ee535056.aspx">http://msdn.microsoft.com/en-us/library/ee535056.aspx</a><br />
(Here’s a good article on how .NET Types are mapped to SharePoint - <a title="http://msdn.microsoft.com/en-us/library/ee536245.aspx" href="http://msdn.microsoft.com/en-us/library/ee536245.aspx">http://msdn.microsoft.com/en-us/library/ee536245.aspx</a>)
</p>
        <p>
          <strong>The simple override/parameters file:</strong>
        </p>
        <pre style="font-family: consolas">
          <span style="color: blue">&lt;</span>
          <span style="color: #a31515">Web</span>
          <span style="color: blue"> </span>
          <span style="color: red">AccessModifier</span>
          <span style="color: blue">=</span>"<span style="color: blue">Internal</span>"<span style="color: blue"> </span><span style="color: red">xmlns</span><span style="color: blue">=</span>"<span style="color: blue">http://schemas.microsoft.com/SharePoint/2009/spmetal</span>"<span style="color: blue">&gt;</span><br /><span style="color: blue">  &lt;</span><span style="color: #a31515">ContentType</span><span style="color: blue"> </span><span style="color: red">Name</span><span style="color: blue">=</span>"<span style="color: blue">Item</span>"<span style="color: blue"> </span><span style="color: red">Class</span><span style="color: blue">=</span>"<span style="color: blue">Item</span>"<span style="color: blue">&gt;</span><br /><span style="color: blue">    &lt;</span><span style="color: #a31515">Column</span><span style="color: blue"> </span><span style="color: red">Name</span><span style="color: blue">=</span>"<span style="color: blue">ContentType</span>"<span style="color: blue"> </span><span style="color: red">Member</span><span style="color: blue">=</span>"<span style="color: blue">ContentType</span>"<span style="color: blue"> /&gt;</span><br /><span style="color: blue">   </span><br /><span style="color: blue">  &lt;/</span><span style="color: #a31515">ContentType</span><span style="color: blue">&gt;</span><br /><span style="color: blue">  </span><br /><span style="color: blue">&lt;/</span><span style="color: #a31515">Web</span><span style="color: blue">&gt;</span><br /></pre>
        <p>
 
</p>
        <p>
          <strong>The SPMetal Command Line</strong>
        </p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/Shar.exeandsystemfieldsnamelyContentType_FF88/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/Shar.exeandsystemfieldsnamelyContentType_FF88/image_thumb.png" width="667" height="52" />
          </a>
        </p>
        <p>
          <strong>The VS.NET Code</strong>
        </p>
        <blockquote>
          <pre style="font-family: consolas"> <span style="color: blue">static</span> <span style="color: blue">void</span> Main(<span style="color: blue">string</span>[]
args)<br />
        {<br />
            <span style="color: blue">using</span> (<span style="color: #2b91af">BreezeDataContext</span> dc
= <span style="color: blue">new</span> <span style="color: #2b91af">BreezeDataContext</span>(<span style="color: #a31515">"http://breezelocal"</span>))<br />
            {<br />
                <span style="color: blue">var</span> myitems
= <span style="color: blue">from</span> i <span style="color: blue">in</span> dc.GetList&lt;<span style="color: #2b91af">ContentListTraining</span>&gt;(<span style="color: #a31515">"My
Content List"</span>)<br />
                              <span style="color: blue">where</span> i.ContentType
== <span style="color: #a31515">"Training"</span><br />
                              <span style="color: blue">select</span> i;<br />
                <span style="color: blue">var</span> courses
= myitems.ToList&lt;<span style="color: #2b91af">ContentListTraining</span>&gt;();<br /><br />
                <span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">"There
are {0} items"</span>,courses[0].Title);<br />
                    
<br />
            }<br /><br />
            <span style="color: #2b91af">Console</span>.ReadLine();<br />
        }</pre>
        </blockquote>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=1922491d-23f6-4c5e-b6c5-a6533e693d7a" />
      </body>
      <title>SharePoint 2010: SPMetal.exe and system fields namely ContentType</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,1922491d-23f6-4c5e-b6c5-a6533e693d7a.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/07/28/SharePoint2010SPMetalexeAndSystemFieldsNamelyContentType.aspx</link>
      <pubDate>Wed, 28 Jul 2010 08:10:19 GMT</pubDate>
      <description>&lt;p&gt;
Olaf and I were cracking away on some SharePoint 2010 work which we thought should
be simple…point SPMetal to the site and start LINQ-ing to our hearts content…..
&lt;/p&gt;
&lt;p&gt;
with the one exception that we couldn’t select items from a list based on their &lt;strong&gt;Content
Type&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
By default &lt;strong&gt;SPMetal.exe doesn’t include these ‘system’ fields&lt;/strong&gt; (apart
from ID + Title – go figure) and the secret is to use an &lt;strong&gt;Override file.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The good oil is:&lt;a title="http://msdn.microsoft.com/en-us/library/ee535056.aspx" href="http://msdn.microsoft.com/en-us/library/ee535056.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee535056.aspx&lt;/a&gt;
&lt;br&gt;
(Here’s a good article on how .NET Types are mapped to SharePoint - &lt;a title="http://msdn.microsoft.com/en-us/library/ee536245.aspx" href="http://msdn.microsoft.com/en-us/library/ee536245.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee536245.aspx&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The simple override/parameters file:&lt;/strong&gt;
&lt;/p&gt;
&lt;pre style="font-family: consolas"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Web&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red"&gt;AccessModifier&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Internal&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;http://schemas.microsoft.com/SharePoint/2009/spmetal&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color: blue"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;ContentType&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Item&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red"&gt;Class&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Item&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Column&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;ContentType&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red"&gt;Member&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;ContentType&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;
&lt;br&gt;
&lt;span style="color: blue"&gt;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;ContentType&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color: blue"&gt;&amp;nbsp; &lt;/span&gt;
&lt;br&gt;
&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Web&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;/pre&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The SPMetal Command Line&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/Shar.exeandsystemfieldsnamelyContentType_FF88/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/Shar.exeandsystemfieldsnamelyContentType_FF88/image_thumb.png" width="667" height="52"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The VS.NET Code&lt;/strong&gt;
&lt;/p&gt;
&lt;blockquote&gt;&lt;pre style="font-family: consolas"&gt;&amp;nbsp;&lt;span style="color: blue"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue"&gt;void&lt;/span&gt; Main(&lt;span style="color: blue"&gt;string&lt;/span&gt;[]
args)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;using&lt;/span&gt; (&lt;span style="color: #2b91af"&gt;BreezeDataContext&lt;/span&gt; dc
= &lt;span style="color: blue"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color: #2b91af"&gt;BreezeDataContext&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"http://breezelocal"&lt;/span&gt;))&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;var&lt;/span&gt; myitems
= &lt;span style="color: blue"&gt;from&lt;/span&gt; i &lt;span style="color: blue"&gt;in&lt;/span&gt; dc.GetList&amp;lt;&lt;span style="color: #2b91af"&gt;ContentListTraining&lt;/span&gt;&amp;gt;(&lt;span style="color: #a31515"&gt;"My
Content List"&lt;/span&gt;)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;where&lt;/span&gt; i.ContentType
== &lt;span style="color: #a31515"&gt;"Training"&lt;/span&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;select&lt;/span&gt; i;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;var&lt;/span&gt; courses
= myitems.ToList&amp;lt;&lt;span style="color: #2b91af"&gt;ContentListTraining&lt;/span&gt;&amp;gt;();&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"There
are {0} items"&lt;/span&gt;,courses[0].Title);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.ReadLine();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;&lt;/blockquote&gt;&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=1922491d-23f6-4c5e-b6c5-a6533e693d7a" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,1922491d-23f6-4c5e-b6c5-a6533e693d7a.aspx</comments>
      <category>.NET Developer</category>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=49a2da15-d39a-48ba-bb70-7d8770a6385c</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,49a2da15-d39a-48ba-bb70-7d8770a6385c.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,49a2da15-d39a-48ba-bb70-7d8770a6385c.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=49a2da15-d39a-48ba-bb70-7d8770a6385c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I’m in the process of planning a SP2007 to SP2010 ‘migration’ moving over the content
database and other web artifacts.
</p>
        <p>
I was making sure all things were ticked off and available in the new SP2010 environment
such as – additional external scripts, paths, externally accessible images, webparts
+ flash movie files.
</p>
        <p>
Migrated over – fired up the browser and after some minor tweaking most things came
over, except for the <strong>flash movies.</strong></p>
        <p>
          <strong>The flash movie was not being displayed</strong>.
</p>
        <p>
So naturally you think – must be a path, permission, activeX, flash object declaration,
upload or even a masterpage might need a tweak…
</p>
        <p>
Fired up FireBug in firefox and went to work – we could access the *.swf file directly
from within the browser, but when the Page loaded with the link in there… <strong>no
go</strong>.
</p>
        <p>
          <strong>In fact we got a ‘304 not modified’ response</strong> within <strong>FireBug</strong> –
which seems pretty normal if the flash player already has the movie locally and it’s
just comparing the server version versus the local…but still no flash playing.
</p>
        <p>
          <strong>SharePoint 2010 Web Applications restrict ‘active’ content – aka Flash out
of the box.</strong>
        </p>
        <p>
After some digging and a seemingly unrelated option appeared in<strong></strong>Web
Application –&gt; General Settings.<br /><strong>Browser File Handling - Default setting: STRICT</strong></p>
        <p>
This was the culprit, setting this to permissive did the trick. 
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010FlashGotcha_C2E1/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010FlashGotcha_C2E1/image_thumb.png" width="628" height="565" />
          </a>
        </p>
        <p>
Wow! Have a great weekend folks!
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=49a2da15-d39a-48ba-bb70-7d8770a6385c" />
      </body>
      <title>SharePoint 2010: Flash Gotcha…</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,49a2da15-d39a-48ba-bb70-7d8770a6385c.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/07/16/SharePoint2010FlashGotcha.aspx</link>
      <pubDate>Fri, 16 Jul 2010 03:51:43 GMT</pubDate>
      <description>&lt;p&gt;
I’m in the process of planning a SP2007 to SP2010 ‘migration’ moving over the content
database and other web artifacts.
&lt;/p&gt;
&lt;p&gt;
I was making sure all things were ticked off and available in the new SP2010 environment
such as – additional external scripts, paths, externally accessible images, webparts
+ flash movie files.
&lt;/p&gt;
&lt;p&gt;
Migrated over – fired up the browser and after some minor tweaking most things came
over, except for the &lt;strong&gt;flash movies.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The flash movie was not being displayed&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
So naturally you think – must be a path, permission, activeX, flash object declaration,
upload or even a masterpage might need a tweak…
&lt;/p&gt;
&lt;p&gt;
Fired up FireBug in firefox and went to work – we could access the *.swf file directly
from within the browser, but when the Page loaded with the link in there… &lt;strong&gt;no
go&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;In fact we got a ‘304 not modified’ response&lt;/strong&gt; within &lt;strong&gt;FireBug&lt;/strong&gt; –
which seems pretty normal if the flash player already has the movie locally and it’s
just comparing the server version versus the local…but still no flash playing.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;SharePoint 2010 Web Applications restrict ‘active’ content – aka Flash out
of the box.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
After some digging and a seemingly unrelated option appeared in&lt;strong&gt; &lt;/strong&gt;Web
Application –&amp;gt; General Settings.&lt;br&gt;
&lt;strong&gt;Browser File Handling - Default setting: STRICT&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
This was the culprit, setting this to permissive did the trick. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010FlashGotcha_C2E1/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010FlashGotcha_C2E1/image_thumb.png" width="628" height="565"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Wow! Have a great weekend folks!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=49a2da15-d39a-48ba-bb70-7d8770a6385c" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,49a2da15-d39a-48ba-bb70-7d8770a6385c.aspx</comments>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=1147e92e-44e3-419c-a2fb-bfb380d25413</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,1147e92e-44e3-419c-a2fb-bfb380d25413.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,1147e92e-44e3-419c-a2fb-bfb380d25413.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=1147e92e-44e3-419c-a2fb-bfb380d25413</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
As you know I’m a big fan of Virtual Box being able to run my x64 VMs on my Win7 machine.
Yay!!
</p>
        <p>
So armed with my trusted new Core i7/8 GB laptop – I figured the VMs will be cooking
on this new kit…
</p>
        <p>
After installing the lastest VirtualBox (3.2.0) I was away – only to notice the machines
were running like a SLUG! (I actually have a cat that has the nick name ‘slug’ and
this machine was slower than her)
</p>
        <p>
After waiting a full 20mins (still booting - ‘loading windows files…’ etc) my machine
Blue Screened for a millisecond and then rebooted.
</p>
        <p>
So I rolled up my sleeves and started digging – could be the VHD, the bios, the machine,
the 1000 and 1 settings…
</p>
        <p>
Firstly I ran a command line command (from under the vbox install dir) -<br />
VBoxManage setextradata VMNAME "VBoxInternal/PDM/HaltOnReset" 1
</p>
        <p>
Finally I got a glimpse of the BSOD and it was an error “…STOP…7B…”
</p>
        <p>
I twigged this is an error of “Inaccessible boot device….” which I’ve had several
times when the SATA drivers couldn’t be loaded by the O/S during boot up.
</p>
        <p>
          <strong>Solution: (in my case)</strong>
          <br />
I configured the Virtual Box VM with <strong>IDE Storage Controllers and NOT SATA
ones</strong> for the bootup.(still connected to the same VHDs though)
</p>
        <p>
Win2008/R2 boots up and I’m able to load the SATA drivers in and we’re away.
</p>
        <p>
          <strong>Back to BizTalk 2010 Beta playing…. :)</strong>
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=1147e92e-44e3-419c-a2fb-bfb380d25413" />
      </body>
      <title>VirtualBox – Win 2008/Win 7 VHDs errors (BSOD) on boot up – new Core i7</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,1147e92e-44e3-419c-a2fb-bfb380d25413.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/05/23/VirtualBoxWin2008Win7VHDsErrorsBSODOnBootUpNewCoreI7.aspx</link>
      <pubDate>Sun, 23 May 2010 11:53:47 GMT</pubDate>
      <description>&lt;p&gt;
As you know I’m a big fan of Virtual Box being able to run my x64 VMs on my Win7 machine.
Yay!!
&lt;/p&gt;
&lt;p&gt;
So armed with my trusted new Core i7/8 GB laptop – I figured the VMs will be cooking
on this new kit…
&lt;/p&gt;
&lt;p&gt;
After installing the lastest VirtualBox (3.2.0) I was away – only to notice the machines
were running like a SLUG! (I actually have a cat that has the nick name ‘slug’ and
this machine was slower than her)
&lt;/p&gt;
&lt;p&gt;
After waiting a full 20mins (still booting - ‘loading windows files…’ etc) my machine
Blue Screened for a millisecond and then rebooted.
&lt;/p&gt;
&lt;p&gt;
So I rolled up my sleeves and started digging – could be the VHD, the bios, the machine,
the 1000 and 1 settings…
&lt;/p&gt;
&lt;p&gt;
Firstly I ran a command line command (from under the vbox install dir) -&lt;br&gt;
VBoxManage setextradata VMNAME "VBoxInternal/PDM/HaltOnReset" 1
&lt;/p&gt;
&lt;p&gt;
Finally I got a glimpse of the BSOD and it was an error “…STOP…7B…”
&lt;/p&gt;
&lt;p&gt;
I twigged this is an error of “Inaccessible boot device….” which I’ve had several
times when the SATA drivers couldn’t be loaded by the O/S during boot up.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Solution: (in my case)&lt;/strong&gt;
&lt;br&gt;
I configured the Virtual Box VM with &lt;strong&gt;IDE Storage Controllers and NOT SATA
ones&lt;/strong&gt; for the bootup.(still connected to the same VHDs though)
&lt;/p&gt;
&lt;p&gt;
Win2008/R2 boots up and I’m able to load the SATA drivers in and we’re away.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Back to BizTalk 2010 Beta playing…. :)&lt;/strong&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=1147e92e-44e3-419c-a2fb-bfb380d25413" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,1147e92e-44e3-419c-a2fb-bfb380d25413.aspx</comments>
      <category>BizTalk</category>
      <category>BizTalk/2010</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=5c54d037-cdfb-4d6d-b170-95a7230e92da</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,5c54d037-cdfb-4d6d-b170-95a7230e92da.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,5c54d037-cdfb-4d6d-b170-95a7230e92da.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=5c54d037-cdfb-4d6d-b170-95a7230e92da</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Here’s a handy set of commands when using in particular Virtual Machines with a ‘demo’
environment.
</p>
        <p>
We certainly create images for my students to take away with them and the common question
is:
</p>
        <p>
“<strong>When will this OS expire?” </strong>or more likely on the 3rd day of a 5
day course I get the error popping up stating the OS has expired and will shutdown
every 2hrs.
</p>
        <p>
          <strong>To know when the OS may expire from the command prompt:</strong>
        </p>
        <p>
          <strong>c:\slmgr –xpr</strong>
        </p>
        <p>
          <strong>To possibly EXTEND to trial period for the OS</strong>
        </p>
        <p>
          <strong>c:\slmgr –rearm</strong>
        </p>
        <p>
(note – you can only get away with this a few times)
</p>
        <p>
If this fails, you can always jump to MS and try and get a trial key off their site.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=5c54d037-cdfb-4d6d-b170-95a7230e92da" />
      </body>
      <title>Knowing when your VM O/S is expiring and extending</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,5c54d037-cdfb-4d6d-b170-95a7230e92da.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/02/21/KnowingWhenYourVMOSIsExpiringAndExtending.aspx</link>
      <pubDate>Sun, 21 Feb 2010 10:57:49 GMT</pubDate>
      <description>&lt;p&gt;
Here’s a handy set of commands when using in particular Virtual Machines with a ‘demo’
environment.
&lt;/p&gt;
&lt;p&gt;
We certainly create images for my students to take away with them and the common question
is:
&lt;/p&gt;
&lt;p&gt;
“&lt;strong&gt;When will this OS expire?” &lt;/strong&gt;or more likely on the 3rd day of a 5
day course I get the error popping up stating the OS has expired and will shutdown
every 2hrs.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;To know when the OS may expire from the command prompt:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;c:\slmgr –xpr&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;To possibly EXTEND to trial period for the OS&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;c:\slmgr –rearm&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
(note – you can only get away with this a few times)
&lt;/p&gt;
&lt;p&gt;
If this fails, you can always jump to MS and try and get a trial key off their site.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=5c54d037-cdfb-4d6d-b170-95a7230e92da" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,5c54d037-cdfb-4d6d-b170-95a7230e92da.aspx</comments>
      <category>General</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=25a2011d-0bfc-46d2-b394-c1421a3de166</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,25a2011d-0bfc-46d2-b394-c1421a3de166.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,25a2011d-0bfc-46d2-b394-c1421a3de166.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=25a2011d-0bfc-46d2-b394-c1421a3de166</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I got an email from David Marsh telling me about this new world from MS. Let me share
a little…<br />
Way back when…LOGO was one of the first languages I learnt as a kid.
</p>
        <p>
Moving a turtle around on a page with commands such as <strong>PenUp, PenDown, RightTurn
etc etc</strong> – pretty cool as a kid and then you could draw things (there was
a big version of the Turtle that interfaced into an Apple II via a ribbon cable as
wide as a 4 lane highway)
</p>
        <p>
MS Dev Labs have released a great <strong>SmallBasic</strong> environment that is
very simple to pickup (great for kids).<br />
It’s got a very simple set of commands <strong>AND it outputs straight to Silverlight</strong>.<br /><img src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/SmallBasicFunSimplePowerfulProgrammingf_B497/Small%20Basic_2.png" width="488" height="313" /><br /><br />
Pretty quick ways of building silverlight apps….nice!<br /><br />
Check out <a title="http://msdn.microsoft.com/en-us/devlabs/cc950524.aspx" href="http://smallbasic.com">http://smallbasic.com</a> –only
if you have some free time <img alt="smile_wink" src="http://spaces.live.com/rte/emoticons/smile_wink.gif" /></p>
        <p>
          <hr />
        </p>
        <p>
          <object id="sbapp" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="640" height="480">
            <param name="source" value="http://smallbasic.com/program/ClientBin/SBWeb.xap" />
            <param name="onError" value="onSilverlightError" />
            <param name="background" value="white" />
            <param name="minRuntimeVersion" value="3.0.40624.0" />
            <param name="autoUpgrade" value="true" />
            <param name="initParams" value="programId=WKN265" />
          </object>
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=25a2011d-0bfc-46d2-b394-c1421a3de166" />
      </body>
      <title>Turtle LOGO is reborn – Silverlight style</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,25a2011d-0bfc-46d2-b394-c1421a3de166.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/02/10/TurtleLOGOIsRebornSilverlightStyle.aspx</link>
      <pubDate>Wed, 10 Feb 2010 03:39:38 GMT</pubDate>
      <description>&lt;p&gt;
I got an email from David Marsh telling me about this new world from MS. Let me share
a little…&lt;br&gt;
Way back when…LOGO was one of the first languages I learnt as a kid.
&lt;/p&gt;
&lt;p&gt;
Moving a turtle around on a page with commands such as &lt;strong&gt;PenUp, PenDown, RightTurn
etc etc&lt;/strong&gt; – pretty cool as a kid and then you could draw things (there was
a big version of the Turtle that interfaced into an Apple II via a ribbon cable as
wide as a 4 lane highway)
&lt;/p&gt;
&lt;p&gt;
MS Dev Labs have released a great &lt;strong&gt;SmallBasic&lt;/strong&gt; environment that is
very simple to pickup (great for kids).&lt;br&gt;
It’s got a very simple set of commands &lt;strong&gt;AND it outputs straight to Silverlight&lt;/strong&gt;.&lt;br&gt;
&lt;img src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/SmallBasicFunSimplePowerfulProgrammingf_B497/Small%20Basic_2.png" width="488" height="313"&gt;
&lt;br&gt;
&lt;br&gt;
Pretty quick ways of building silverlight apps….nice!&lt;br&gt;
&lt;br&gt;
Check out &lt;a title="http://msdn.microsoft.com/en-us/devlabs/cc950524.aspx" href="http://smallbasic.com"&gt;http://smallbasic.com&lt;/a&gt; –only
if you have some free time &lt;img alt="smile_wink" src="http://spaces.live.com/rte/emoticons/smile_wink.gif"&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;hr&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;object id='sbapp' data='data:application/x-silverlight-2,' type='application/x-silverlight-2' width='640' height='480'&gt;
&lt;param name="source" value="http://smallbasic.com/program/ClientBin/SBWeb.xap" /&gt;
&lt;param name="onError" value="onSilverlightError" /&gt;
&lt;param name="background" value="white" /&gt;
&lt;param name="minRuntimeVersion" value="3.0.40624.0" /&gt;
&lt;param name="autoUpgrade" value="true" /&gt;
&lt;param name="initParams" value="programId=WKN265" /&gt;
&lt;/object&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=25a2011d-0bfc-46d2-b394-c1421a3de166" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,25a2011d-0bfc-46d2-b394-c1421a3de166.aspx</comments>
      <category>.NET Developer</category>
      <category>General</category>
      <category>Silverlight</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=cbb4380b-5355-4c52-8c95-f7c4adab44ff</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,cbb4380b-5355-4c52-8c95-f7c4adab44ff.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,cbb4380b-5355-4c52-8c95-f7c4adab44ff.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=cbb4380b-5355-4c52-8c95-f7c4adab44ff</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
From time to time I check out on what’s happening in my favourite ‘moon lighting’
area – Silverlight.
</p>
        <p>
Love the Silverlight potential – I’m a big fan.
</p>
        <p>
So from <a href="http://silverlight.net">http://silverlight.net</a> – I found a <strong>Z-80
EMULATOR!!!</strong> (like what’s next an Apple II)
</p>
        <p>
You hit the ‘Run’ button and far too many years has passed between me and my Computer
Engineering Degree of Demorgans Theorem and Fast Fourier Transforms.
</p>
        <p>
Great effort! (by someone whom had SOOO much time on their hands)
</p>
        <p>
          <a href="http://www.expertgig.com/slsample/sl_z80emu/SL_Z80emuTestPage.html" target="_blank">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/Silverlight4Beatthis_135AF/image_3.png" width="644" height="479" />
          </a>
        </p>
        <p>
          <a title="http://www.expertgig.com/slsample/sl_z80emu/SL_Z80emuTestPage.html" href="http://www.expertgig.com/slsample/sl_z80emu/SL_Z80emuTestPage.html">http://www.expertgig.com/slsample/sl_z80emu/SL_Z80emuTestPage.html</a>
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=cbb4380b-5355-4c52-8c95-f7c4adab44ff" />
      </body>
      <title>Silverlight 4: Beat this…</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,cbb4380b-5355-4c52-8c95-f7c4adab44ff.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/01/18/Silverlight4BeatThis.aspx</link>
      <pubDate>Mon, 18 Jan 2010 11:01:24 GMT</pubDate>
      <description>&lt;p&gt;
From time to time I check out on what’s happening in my favourite ‘moon lighting’
area – Silverlight.
&lt;/p&gt;
&lt;p&gt;
Love the Silverlight potential – I’m a big fan.
&lt;/p&gt;
&lt;p&gt;
So from &lt;a href="http://silverlight.net"&gt;http://silverlight.net&lt;/a&gt; – I found a &lt;strong&gt;Z-80
EMULATOR!!!&lt;/strong&gt; (like what’s next an Apple II)
&lt;/p&gt;
&lt;p&gt;
You hit the ‘Run’ button and far too many years has passed between me and my Computer
Engineering Degree of Demorgans Theorem and Fast Fourier Transforms.
&lt;/p&gt;
&lt;p&gt;
Great effort! (by someone whom had SOOO much time on their hands)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.expertgig.com/slsample/sl_z80emu/SL_Z80emuTestPage.html" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/Silverlight4Beatthis_135AF/image_3.png" width="644" height="479"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.expertgig.com/slsample/sl_z80emu/SL_Z80emuTestPage.html" href="http://www.expertgig.com/slsample/sl_z80emu/SL_Z80emuTestPage.html"&gt;http://www.expertgig.com/slsample/sl_z80emu/SL_Z80emuTestPage.html&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=cbb4380b-5355-4c52-8c95-f7c4adab44ff" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,cbb4380b-5355-4c52-8c95-f7c4adab44ff.aspx</comments>
      <category>General</category>
      <category>Silverlight</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=d927cfa7-e9f4-4771-a7b7-c8f50cfcbc72</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,d927cfa7-e9f4-4771-a7b7-c8f50cfcbc72.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,d927cfa7-e9f4-4771-a7b7-c8f50cfcbc72.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=d927cfa7-e9f4-4771-a7b7-c8f50cfcbc72</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Many times in BizTalk land we work with Schemas that are nested and have several related
Schemas that are <strong>Imported</strong> from URL locations etc.
</p>
        <p>
When you include these schemas and deploy to Production, you find out that the BizTalk
server doesn’t access the Internet directly. Hence all the schema Imports fail.
</p>
        <p>
You’ll then go and try hand edit the Imports, downloading the referenced Schema and
try and Mash up something that refers to local files and no URL based Schemas. It
may or may not work…till the next update…
</p>
        <p>
I recently came across a handy set of free tools that take all the pain out to do
with Schemas –&gt; 
</p>
        <p>
          <strong>
            <a href="http://www.xmlhelpline.com/tools/index.html" target="_blank">Xml
Help Line</a>
          </strong>
        </p>
        <p>
Which has <strong>Xml Schema Lightener, Xml Schema Flattener</strong></p>
        <p>
Another very handy tool not to leave home without.
</p>
        <p>
Enjoy. 
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=d927cfa7-e9f4-4771-a7b7-c8f50cfcbc72" />
      </body>
      <title>Handy XML Tools – Schema Tools</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,d927cfa7-e9f4-4771-a7b7-c8f50cfcbc72.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/01/14/HandyXMLToolsSchemaTools.aspx</link>
      <pubDate>Thu, 14 Jan 2010 22:43:18 GMT</pubDate>
      <description>&lt;p&gt;
Many times in BizTalk land we work with Schemas that are nested and have several related
Schemas that are &lt;strong&gt;Imported&lt;/strong&gt; from URL locations etc.
&lt;/p&gt;
&lt;p&gt;
When you include these schemas and deploy to Production, you find out that the BizTalk
server doesn’t access the Internet directly. Hence all the schema Imports fail.
&lt;/p&gt;
&lt;p&gt;
You’ll then go and try hand edit the Imports, downloading the referenced Schema and
try and Mash up something that refers to local files and no URL based Schemas. It
may or may not work…till the next update…
&lt;/p&gt;
&lt;p&gt;
I recently came across a handy set of free tools that take all the pain out to do
with Schemas –&amp;gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;a href="http://www.xmlhelpline.com/tools/index.html" target="_blank"&gt;Xml
Help Line&lt;/a&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Which has &lt;strong&gt;Xml Schema Lightener, Xml Schema Flattener&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Another very handy tool not to leave home without.
&lt;/p&gt;
&lt;p&gt;
Enjoy. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=d927cfa7-e9f4-4771-a7b7-c8f50cfcbc72" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,d927cfa7-e9f4-4771-a7b7-c8f50cfcbc72.aspx</comments>
      <category>.NET Developer</category>
      <category>BizTalk</category>
      <category>BizTalk/Insights</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=7eca4e14-c7e6-4bad-919b-c6bd20e24e1d</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,7eca4e14-c7e6-4bad-919b-c6bd20e24e1d.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <georss:point>0 0</georss:point>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,7eca4e14-c7e6-4bad-919b-c6bd20e24e1d.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=7eca4e14-c7e6-4bad-919b-c6bd20e24e1d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
There I was rebuilding a new VPC Image (which I'm running in Virtual Box) and the
base VHD is a parent of <b>16GB</b>.
</p>
        <p>
For an install of Win2008, VS.NET 2010, SQL2008... it's pretty much game over with
a full disk.<br /><br />
I spent the last 3 days shifting files around to clear space<br /><br />
So tonight I bit the bullet and Ghosted the partition over to a <b>200GB</b> - much
better :) 
<br /><br />
This issue I had was that the boot environment was different and 'in the good old
days' we'd change the BOOT.INI and bobs your uncle.<br /><br />
Welcome to Vista and beyond...as you know we have the <b>BCD Store</b><br />
There's a very common tool (blogged about everywhere) called <b>BCDEDIT.EXE</b> which
if GUIDs are your think and long command line options, you can 'manually' manage the
Store (there's also a bunch of 3rd party apps that say 'lets do this from the UI'
- I'm in recovery mode)<br /><br />
For the life of me I couldn't remember the tool I used last time this happened to
me, which I said 'don't forget Mick'.<br /><br /><b>BOOTREC /rebuildbcd</b><br />
Too easy...then if you can't sleep you could also crack onto BCDEDIT.EXE to 'customise'
some aspect. (e.g. booting up off multiple logical CORES) 
<br />
Bootrec 
<br />
Bootrec 
<br />
Bootrec 
<br /><br />
I will not forget <b>Bootrec</b><img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=7eca4e14-c7e6-4bad-919b-c6bd20e24e1d" /></p>
      </body>
      <title>Note to self: Remeber BOOTREC.EXE</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,7eca4e14-c7e6-4bad-919b-c6bd20e24e1d.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/11/27/NoteToSelfRemeberBOOTRECEXE.aspx</link>
      <pubDate>Fri, 27 Nov 2009 12:24:24 GMT</pubDate>
      <description>&lt;p&gt;
There I was rebuilding a new VPC Image (which I'm running in Virtual Box) and the
base VHD is a parent of &lt;b&gt;16GB&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;
For an install of Win2008, VS.NET 2010, SQL2008... it's pretty much game over with
a full disk.&lt;br&gt;
&lt;br&gt;
I spent the last 3 days shifting files around to clear space&lt;br&gt;
&lt;br&gt;
So tonight I bit the bullet and Ghosted the partition over to a &lt;b&gt;200GB&lt;/b&gt; - much
better :) 
&lt;br&gt;
&lt;br&gt;
This issue I had was that the boot environment was different and 'in the good old
days' we'd change the BOOT.INI and bobs your uncle.&lt;br&gt;
&lt;br&gt;
Welcome to Vista and beyond...as you know we have the &lt;b&gt;BCD Store&lt;/b&gt;
&lt;br&gt;
There's a very common tool (blogged about everywhere) called &lt;b&gt;BCDEDIT.EXE&lt;/b&gt; which
if GUIDs are your think and long command line options, you can 'manually' manage the
Store (there's also a bunch of 3rd party apps that say 'lets do this from the UI'
- I'm in recovery mode)&lt;br&gt;
&lt;br&gt;
For the life of me I couldn't remember the tool I used last time this happened to
me, which I said 'don't forget Mick'.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;BOOTREC /rebuildbcd&lt;/b&gt;
&lt;br&gt;
Too easy...then if you can't sleep you could also crack onto BCDEDIT.EXE to 'customise'
some aspect. (e.g. booting up off multiple logical CORES) 
&lt;br&gt;
Bootrec 
&lt;br&gt;
Bootrec 
&lt;br&gt;
Bootrec 
&lt;br&gt;
&lt;br&gt;
I will not forget &lt;b&gt;Bootrec&lt;/b&gt;&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=7eca4e14-c7e6-4bad-919b-c6bd20e24e1d" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,7eca4e14-c7e6-4bad-919b-c6bd20e24e1d.aspx</comments>
      <category>General</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=e5c86e51-559f-42e9-8a8c-99b56ed73134</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,e5c86e51-559f-42e9-8a8c-99b56ed73134.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,e5c86e51-559f-42e9-8a8c-99b56ed73134.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=e5c86e51-559f-42e9-8a8c-99b56ed73134</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">As part of a 'dev' machine setup, I run
on my latop Win2008R2 x64 Hyper-V...why? to simply run x64 hosts.<br />
Virtual PC, Virtual Server - will run on x64, but not host x64 O/Ss. So really the
only option is Hyper-V in the MS land.<br /><br />
I present, demo + and draw all over my tablet screen on a regular basis as well as
cut code in Server O/S.<br /><br />
The main <b>problems </b>I faced:<br />
- was my display <b>was dog slow</b>, especially running VS2010, ppt or generally
anything else that an average user might do.<br />
- I remove the Hyper-V role off my machine and low and behold it's back to normal. 
<br /><br />
A student pointed me to a TechNet article - <a href="http://support.microsoft.com/kb/961661">http://support.microsoft.com/kb/961661 </a>in
which the resolution is to install a VGA Display driver. 
<br />
This is kinda not an option for me presenting etc. 
<br /><br />
Still I needed to run those x64 bit guests.<br />
I was contemplating getting a monster laptop (the other day I was training with laptops
that had 8GB of RAM, 6GB allocated to the VM!) or setting up various 'Demo RDP Connections'
back into the office, so when I'm onsite and I need to demo then (somehow) I can get
internet connectivity and RDP back to a server based VM - lot's of potential issues
with this approach)<br /><br />
So the <b>MS Story in this space at the moment is:</b><br />
- 1) you want to run 32-bit hosts, VirtualPC or Virtual Server running on x64 or x86.
Only x86 guests!<br />
- 2) you want 64-bit guests -&gt; <b>Hyper-V</b> (therefore you're looking at running
Win2K8/R2). At work we have 15+ VMs running on Hyper-V machines really well, so no
complaints there when running on Servers. It's just running it on my laptop where's
it's not special.<br /><br /><b>Problem is - going fwd,</b> the latest wave of Server Products, SharePoint 2010,
Exchange 2010, CRM 5 etc....<b>only run on x64</b><br /><br /><b>So onto to my unbelievable experience....</b><br /><br />
Last night I caught up with a couple of buddies Andrew Mee and Guy Riddle, where Guy
mentioned all the pain he'd had in trying to get a x64 but guest up and running on
his laptop. Here is his current <b>solution</b>:<br /><br /><font size="4">Guy mentioned his setup:<br />
1) Win7x64<br />
2) <a href="http://www.virtualbox.org/">VirtualBox</a> - for VM emulation - WITH USB
SUPPORT!!!! wow! In the land of BizTalk RFID, I had major issues with USB devices
trying to be picked up inside the VM - 3rd party solutions etc. crazy.</font><br /><br />
He mentioned there were a few things to do around the disks etc...but he could run
x64 guests on his Win7 machine <b>AND the VMs FLEW!</b><br /><br />
So I thought there was a touch of the amber fluid talking and maybe he was indeed
onto something. When I got home later that night I decided tonight was the night to
refresh the laptop (fujitsu lifebook t4215/4GB/T7400) and <b>Install Win7x64</b>.<br /><br /><b>My potential issue with Virtual Box:<br />
- </b>I have a huge library of VHDs (parents, diffs etc) that for portability suites
me down to the ground. I walk into a training room and can transfer my VHDs to the
student machines and run them no hassles.<br />
- If there's a VirtualBox specific format (VDI) then it yet another step in my export
chain.<br /><br /><b>Alas - VirtualBox reads/writes VHDs automatically, unbelievable.</b><br /><br />
So I setup Win7x64 on my latop and got back to 9 sec bootup and shutdown times :-)
- gee that was refreshing after so long without.<br /><br />
I installed VirtualBox - it installed like a treat, and does 'snapshots' and has a
great user interface. I didn't need to visit the cmd line once.<br /><br />
So now for the test - I was going to fire up my SP2010 Beta2 (Win2K8 R2 x64) VHDs,
40GB in size, differencing and Parent, <b>straight from Hyper-V with Hyper-V extensions</b> (in
the past when I've done something like this, there's usually a blue screen invovled
saying 'boot device not found')<br /><br />
Let's give it a crack I thought - all from the UI.<br />
1) Within VirtualBox, I created a machine, added 2 CPUs, 1 NIC and 1400MB of RAM.<br />
2) Attached the Child VHD from my SP2010.<br />
3) I even had 3D graphic acceleration options for my VM, along with amd-v and 'nested
tables' for some sort of faster memory access. Turn them all on I thought! We'll put
it through its paces.<br /><br />
Started the machine......<br /><ol><li><b>upon first boot my hyper-v enabled VM booted straight up to the Login screen! Unbelievable</b> I
thought.</li><li>
logged in and it found my NIC within 10 secs and was on the network within 20 secs
(through NAT). If you've ever experienced a Hyper-V update where your Guests don't
talk to the network anymore, until you put the new hyper-v additions on - you'll know
the pain.</li><li>
mouse/keyboard recognised.</li><li>
I then thought - let me install the VirtualBox additions - can't hurt. 
<br /></li><li>
RDP support etc etc ...it's like shopping @ christmas - how good is this! yes I'll
have that...and this...<br /><br /><br /><br /><br /><div align="left">So back to Guy's immortal words - "it runs fast. Snappy, responsive
etc"
</div><b><br />
My SP2010B2 in 1.4GB RAM x64 VM runs fanstastic!</b> - Fastest I've seen a VM run
on my laptop for a long long time (unless it's WFW 3.11)<br /></li></ol>
        It's just so refreshing to have a responsive
VM running in reasonable memory. I found that if I allocated 2.5GB to a VM under hyper-v
I wouldn't notice a marked improvement. It's not like it flew, and then I had to tweak
it back to find that 'optimum sweet spot'<br /><br />
What an experience! What I'm seeing is that certainly for the desktop machine, VirtualBox
can be a serious contender for x64 guests.<br /><br />
Thanks Guy for planting the seed!!!<br /><br /><br /><br /><p></p><img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=e5c86e51-559f-42e9-8a8c-99b56ed73134" /></body>
      <title>Hyper-V-less What a Result</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,e5c86e51-559f-42e9-8a8c-99b56ed73134.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/11/20/HyperVlessWhatAResult.aspx</link>
      <pubDate>Fri, 20 Nov 2009 03:24:03 GMT</pubDate>
      <description>As part of a 'dev' machine setup, I run on my latop Win2008R2 x64 Hyper-V...why? to simply run x64 hosts.&lt;br&gt;
Virtual PC, Virtual Server - will run on x64, but not host x64 O/Ss. So really the
only option is Hyper-V in the MS land.&lt;br&gt;
&lt;br&gt;
I present, demo + and draw all over my tablet screen on a regular basis as well as
cut code in Server O/S.&lt;br&gt;
&lt;br&gt;
The main &lt;b&gt;problems &lt;/b&gt;I faced:&lt;br&gt;
- was my display &lt;b&gt;was dog slow&lt;/b&gt;, especially running VS2010, ppt or generally
anything else that an average user might do.&lt;br&gt;
- I remove the Hyper-V role off my machine and low and behold it's back to normal. 
&lt;br&gt;
&lt;br&gt;
A student pointed me to a TechNet article - &lt;a href="http://support.microsoft.com/kb/961661"&gt;http://support.microsoft.com/kb/961661 &lt;/a&gt;in
which the resolution is to install a VGA Display driver. 
&lt;br&gt;
This is kinda not an option for me presenting etc. 
&lt;br&gt;
&lt;br&gt;
Still I needed to run those x64 bit guests.&lt;br&gt;
I was contemplating getting a monster laptop (the other day I was training with laptops
that had 8GB of RAM, 6GB allocated to the VM!) or setting up various 'Demo RDP Connections'
back into the office, so when I'm onsite and I need to demo then (somehow) I can get
internet connectivity and RDP back to a server based VM - lot's of potential issues
with this approach)&lt;br&gt;
&lt;br&gt;
So the &lt;b&gt;MS Story in this space at the moment is:&lt;/b&gt;
&lt;br&gt;
- 1) you want to run 32-bit hosts, VirtualPC or Virtual Server running on x64 or x86.
Only x86 guests!&lt;br&gt;
- 2) you want 64-bit guests -&amp;gt; &lt;b&gt;Hyper-V&lt;/b&gt; (therefore you're looking at running
Win2K8/R2). At work we have 15+ VMs running on Hyper-V machines really well, so no
complaints there when running on Servers. It's just running it on my laptop where's
it's not special.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Problem is - going fwd,&lt;/b&gt; the latest wave of Server Products, SharePoint 2010,
Exchange 2010, CRM 5 etc....&lt;b&gt;only run on x64&lt;/b&gt; 
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;So onto to my unbelievable experience....&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Last night I caught up with a couple of buddies Andrew Mee and Guy Riddle, where Guy
mentioned all the pain he'd had in trying to get a x64 but guest up and running on
his laptop. Here is his current &lt;b&gt;solution&lt;/b&gt;:&lt;br&gt;
&lt;br&gt;
&lt;font size="4"&gt;Guy mentioned his setup:&lt;br&gt;
1) Win7x64&lt;br&gt;
2) &lt;a href="http://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt; - for VM emulation - WITH USB
SUPPORT!!!! wow! In the land of BizTalk RFID, I had major issues with USB devices
trying to be picked up inside the VM - 3rd party solutions etc. crazy.&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
He mentioned there were a few things to do around the disks etc...but he could run
x64 guests on his Win7 machine &lt;b&gt;AND the VMs FLEW!&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
So I thought there was a touch of the amber fluid talking and maybe he was indeed
onto something. When I got home later that night I decided tonight was the night to
refresh the laptop (fujitsu lifebook t4215/4GB/T7400) and &lt;b&gt;Install Win7x64&lt;/b&gt;.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;My potential issue with Virtual Box:&lt;br&gt;
- &lt;/b&gt;I have a huge library of VHDs (parents, diffs etc) that for portability suites
me down to the ground. I walk into a training room and can transfer my VHDs to the
student machines and run them no hassles.&lt;br&gt;
- If there's a VirtualBox specific format (VDI) then it yet another step in my export
chain.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Alas - VirtualBox reads/writes VHDs automatically, unbelievable.&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
So I setup Win7x64 on my latop and got back to 9 sec bootup and shutdown times :-)
- gee that was refreshing after so long without.&lt;br&gt;
&lt;br&gt;
I installed VirtualBox - it installed like a treat, and does 'snapshots' and has a
great user interface. I didn't need to visit the cmd line once.&lt;br&gt;
&lt;br&gt;
So now for the test - I was going to fire up my SP2010 Beta2 (Win2K8 R2 x64) VHDs,
40GB in size, differencing and Parent, &lt;b&gt;straight from Hyper-V with Hyper-V extensions&lt;/b&gt; (in
the past when I've done something like this, there's usually a blue screen invovled
saying 'boot device not found')&lt;br&gt;
&lt;br&gt;
Let's give it a crack I thought - all from the UI.&lt;br&gt;
1) Within VirtualBox, I created a machine, added 2 CPUs, 1 NIC and 1400MB of RAM.&lt;br&gt;
2) Attached the Child VHD from my SP2010.&lt;br&gt;
3) I even had 3D graphic acceleration options for my VM, along with amd-v and 'nested
tables' for some sort of faster memory access. Turn them all on I thought! We'll put
it through its paces.&lt;br&gt;
&lt;br&gt;
Started the machine......&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;b&gt;upon first boot my hyper-v enabled VM booted straight up to the Login screen! Unbelievable&lt;/b&gt; I
thought.&lt;/li&gt;
&lt;li&gt;
logged in and it found my NIC within 10 secs and was on the network within 20 secs
(through NAT). If you've ever experienced a Hyper-V update where your Guests don't
talk to the network anymore, until you put the new hyper-v additions on - you'll know
the pain.&lt;/li&gt;
&lt;li&gt;
mouse/keyboard recognised.&lt;/li&gt;
&lt;li&gt;
I then thought - let me install the VirtualBox additions - can't hurt. 
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
RDP support etc etc ...it's like shopping @ christmas - how good is this! yes I'll
have that...and this...&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;div align="left"&gt;So back to Guy's immortal words - "it runs fast. Snappy, responsive
etc"
&lt;/div&gt;
&lt;b&gt;
&lt;br&gt;
My SP2010B2 in 1.4GB RAM x64 VM runs fanstastic!&lt;/b&gt; - Fastest I've seen a VM run
on my laptop for a long long time (unless it's WFW 3.11)&lt;br&gt;
&lt;/li&gt;
&lt;/ol&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; It's just so refreshing to have a responsive
VM running in reasonable memory. I found that if I allocated 2.5GB to a VM under hyper-v
I wouldn't notice a marked improvement. It's not like it flew, and then I had to tweak
it back to find that 'optimum sweet spot'&lt;br&gt;
&lt;br&gt;
What an experience! What I'm seeing is that certainly for the desktop machine, VirtualBox
can be a serious contender for x64 guests.&lt;br&gt;
&lt;br&gt;
Thanks Guy for planting the seed!!!&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=e5c86e51-559f-42e9-8a8c-99b56ed73134" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,e5c86e51-559f-42e9-8a8c-99b56ed73134.aspx</comments>
      <category>General</category>
      <category>Tips</category>
      <category>Training</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=5113bb49-fc80-4892-8276-1514edd4b93a</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,5113bb49-fc80-4892-8276-1514edd4b93a.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,5113bb49-fc80-4892-8276-1514edd4b93a.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=5113bb49-fc80-4892-8276-1514edd4b93a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Guys – something that always gets me. 
<br /><font color="#ff0000" size="3">*** Update – I’m actually saying this is not good for
a server ***</font></p>
        <p>
          <strong>Q. Why when you install Win2K8/R2 out of the box settings have the POWER MODE=balanced???</strong>
        </p>
        <p>
I’m always amazed by this – there’s 101 other questions + answers you’re asked and
you give. But nowhere does the system say (oh a <strong>server system mind you</strong>)
</p>
        <p>
“BTW – you know the 8 Cores you have, you’re gonna use 2 of them at any one time…”
</p>
        <p>
It’s a <strong>Server O/S</strong> not a desktop (Desktop I can totally understand
– saving power, greener world etc etc) – server I don’t get.<br />
(The flip side to that coin is - “if the server actually ran at a faster capacity
– I’d be finished in 30 mins instead of 4hrs” –&gt; therefore you save 3.30mins of
green lush rainforest – or some nuclear radiation from entering the world)
</p>
        <p>
I find this power setting is always one of those elusive settings on Server, upon
first start up you get prompted for <strong>Roles, Features, Networking</strong> even <strong>IE
Security Settings</strong>….but nothing about limping along.
</p>
        <p>
You have been warned – you may think “What’s Mick on about”…did I tell you about the
TWO production environments I recently visited and they thought I was a miracle worker…
</p>
        <p>
I wonder is SCOM 2007 R2 reports that setting back to the main console??
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=5113bb49-fc80-4892-8276-1514edd4b93a" />
      </body>
      <title>Win 7/Win2008 R2 – something I don’t understand</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,5113bb49-fc80-4892-8276-1514edd4b93a.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/11/09/Win7Win2008R2SomethingIDontUnderstand.aspx</link>
      <pubDate>Mon, 09 Nov 2009 09:20:31 GMT</pubDate>
      <description>&lt;p&gt;
Guys – something that always gets me. 
&lt;br&gt;
&lt;font color="#ff0000" size="3"&gt;*** Update – I’m actually saying this is not good for
a server ***&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Q. Why when you install Win2K8/R2 out of the box settings have the POWER MODE=balanced???&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I’m always amazed by this – there’s 101 other questions + answers you’re asked and
you give. But nowhere does the system say (oh a &lt;strong&gt;server system mind you&lt;/strong&gt;)
&lt;/p&gt;
&lt;p&gt;
“BTW – you know the 8 Cores you have, you’re gonna use 2 of them at any one time…”
&lt;/p&gt;
&lt;p&gt;
It’s a &lt;strong&gt;Server O/S&lt;/strong&gt; not a desktop (Desktop I can totally understand
– saving power, greener world etc etc) – server I don’t get.&lt;br&gt;
(The flip side to that coin is - “if the server actually ran at a faster capacity
– I’d be finished in 30 mins instead of 4hrs” –&amp;gt; therefore you save 3.30mins of
green lush rainforest – or some nuclear radiation from entering the world)
&lt;/p&gt;
&lt;p&gt;
I find this power setting is always one of those elusive settings on Server, upon
first start up you get prompted for &lt;strong&gt;Roles, Features, Networking&lt;/strong&gt; even &lt;strong&gt;IE
Security Settings&lt;/strong&gt;….but nothing about limping along.
&lt;/p&gt;
&lt;p&gt;
You have been warned – you may think “What’s Mick on about”…did I tell you about the
TWO production environments I recently visited and they thought I was a miracle worker…
&lt;/p&gt;
&lt;p&gt;
I wonder is SCOM 2007 R2 reports that setting back to the main console??
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=5113bb49-fc80-4892-8276-1514edd4b93a" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,5113bb49-fc80-4892-8276-1514edd4b93a.aspx</comments>
      <category>General</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=33ab6078-ad6d-407e-a9d3-c5387cac9f5e</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,33ab6078-ad6d-407e-a9d3-c5387cac9f5e.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <georss:point>0 0</georss:point>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,33ab6078-ad6d-407e-a9d3-c5387cac9f5e.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=33ab6078-ad6d-407e-a9d3-c5387cac9f5e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A while back I created a script that restarts your BizTalk Hosts - pretty simple,
here http://blogs.breezetraining.com.au/mickb/2006/10/04/SimpleScriptToRestartAllBizTalkServices.aspx<br />
(also this script didn't pick up your service if it was previously stopped - limitation
of the 'sc query' command)<br /><br /><hr />
Now with PowerShell it's a one line job:<br />
It goes something like this:<br /><b>get-service BTS* | foreach-object -process {restart-service $_.Name}</b><br /><br />
You can also set all your BTS Services to start 'automatic' as follows:<br /><b>get-service BTS* | foreach-object -process {set-service $_.Name -startuptype automatic}</b><br />
(I'm actually trying to set the BTS Services to 'Automatic (Delayed)' but haven't
been able to do that yet) 
<br /></p>
Enjoy, 
<br />
Mick.<img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=33ab6078-ad6d-407e-a9d3-c5387cac9f5e" /></body>
      <title>BizTalk: Restarting your BTS Hosts - Powershell Style</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,33ab6078-ad6d-407e-a9d3-c5387cac9f5e.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/11/03/BizTalkRestartingYourBTSHostsPowershellStyle.aspx</link>
      <pubDate>Tue, 03 Nov 2009 23:54:54 GMT</pubDate>
      <description>&lt;p&gt;
A while back I created a script that restarts your BizTalk Hosts - pretty simple,
here http://blogs.breezetraining.com.au/mickb/2006/10/04/SimpleScriptToRestartAllBizTalkServices.aspx&lt;br&gt;
(also this script didn't pick up your service if it was previously stopped - limitation
of the 'sc query' command)&lt;br&gt;
&lt;br&gt;
&lt;hr&gt;
Now with PowerShell it's a one line job:&lt;br&gt;
It goes something like this:&lt;br&gt;
&lt;b&gt;get-service BTS* | foreach-object -process {restart-service $_.Name}&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
You can also set all your BTS Services to start 'automatic' as follows:&lt;br&gt;
&lt;b&gt;get-service BTS* | foreach-object -process {set-service $_.Name -startuptype automatic}&lt;/b&gt;
&lt;br&gt;
(I'm actually trying to set the BTS Services to 'Automatic (Delayed)' but haven't
been able to do that yet) 
&lt;br&gt;
&lt;/p&gt;
Enjoy, 
&lt;br&gt;
Mick.&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=33ab6078-ad6d-407e-a9d3-c5387cac9f5e" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,33ab6078-ad6d-407e-a9d3-c5387cac9f5e.aspx</comments>
      <category>BizTalk</category>
      <category>BizTalk/2009</category>
      <category>BizTalk/Insights</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=661ec631-4f23-410c-ab2b-32358a2fd6fa</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,661ec631-4f23-410c-ab2b-32358a2fd6fa.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,661ec631-4f23-410c-ab2b-32358a2fd6fa.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=661ec631-4f23-410c-ab2b-32358a2fd6fa</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Whilst on my travels last week I also ran into Oleg Lofman (MCS SharePoint Consultant)
whom amongst other things (showed me a great travel game - <a href="http://www.travelpod.com/traveler-iq?ba96=7587">http://www.travelpod.com/traveler-iq?ba96=7587</a>)
pointed me towards a tool called <strong>WIM2VHD</strong>.
</p>
        <p>
Basically this tool allows you to go straight from a <strong>WIM file to VHD!! </strong>You
can even specify an Answer file also. So no need to mount the ISO, go through the
bootloader and copy all the files needed, then expand etc etc as part of the setup.
</p>
        <p>
So seeing that Windows 7/Server 2008 R2 has a bunch of WIMs under the \Sources folder,
you can simply go there and take your pick as to how extensive you want the base OS
to be : Core…or something more!
</p>
        <p>
Check it out:
</p>
        <p>
          <a title="http://code.msdn.microsoft.com/wim2vhd" href="http://code.msdn.microsoft.com/wim2vhd">http://code.msdn.microsoft.com/wim2vhd</a>
        </p>
        <p>
As you can see below, it’s a pretty extensive and detailed tool: (you can even apply
hotfixes to the VHD during this process)
</p>
        <p>
--- snip from the above page ---
</p>
        <h4>Usage 
</h4>
        <a name="usage">
        </a>
        <pre>Usage: WIM2VHD.WSF /wim:&lt;wimPath&gt; /sku:&lt;sku&gt;
[/vhd:&lt;vhdPath&gt;] [/size:&lt;vhdSizeInMb&gt;] [/disktype:&lt;dynamic|fixed&gt;]
[/unattend:&lt;unattendXmlPath&gt;] [/qfe:&lt;qfe1,...,qfeN&gt;]
[/ref:&lt;ref1,...,refN] [/dbg:&lt;args&gt;] [/copylocal:&lt;localFolder&gt;]
[/passthru:&lt;physicalDrive&gt;] [/signdisk:&lt;true|false&gt;]
[/mergefolder:&lt;folderToMerge&gt;]
 
Required parameters:
 
  /wim:&lt;wimPath&gt;
 
    The path of the WIM file to use when creating the VHD.  For example:
    X:\sources\install.wim
 
    Where X: is the drive letter of your DVD ROM drive.
 
  /sku:&lt;skuName&gt;|&lt;skuIndex&gt;
 
    The SKU within the WIM to use when creating the VHD (e.g. "ServerStandard",
    "ServerDatacenterCore", "2", etc.).  This value can either be passed as a
    SKU name (typically the easiest method) or as a SKU index (which requires
    you to have manually inspected the WIM with a tool like IMAGEX.EXE).
 
Optional parameters:
 
  /vhd:&lt;vhdPath&gt;
 
    The path and name of the VHD to be created.  If a file with this name
    already exists, it will be overwritten.  If no VHD is specified, a VHD will
    be created in the current folder with a name in the following format:
    &lt;Major&gt;.&lt;Minor&gt;.&lt;Build&gt;.&lt;Rev&gt;.&lt;Arch&gt;.&lt;Branch&gt;.&lt;Timestamp&gt;.&lt;SKU&gt;.&lt;Lang&gt;.vhd
    ex:
       6.1.7100.0.x86fre.winmain_win7rc.090421-1700.Ultimate.en-us.vhd
 
    NOTE: If the language cannot be determined from the WIM, no &lt;Lang&gt; block
    will be included in the VHD name.
 
  /size:&lt;vhdSizeInMb&gt;
 
    For Fixed disks, this is the size in MB of the VHD that will be created.
    For Dynamic disks, this is the maximum size in MB that the VHD can grow to
    as additional space is required.
    If unspecified, a default value of 40960 MB (40 GB) will be used.
 
  /disktype:&lt;Dynamic|Fixed&gt;
 
    Specifies what kind of VHD should be created: Dynamic or Fixed.
    A Fixed disk allocates all of the necessary disk space for the VHD upon
    creation.  A Dynamic disk only allocates the space required by files in
    the VHD at any given time, and will grow as more space is required.
    The default value is Dynamic.
 
  /unattend:&lt;unattendXmlPath&gt;
 
    The path to an unattend.xml file that will be used to automate the OOBE
    portion of Windows setup the first time the VHD is booted.
 
  /qfe:&lt;qfe1,...,qfeN&gt;
 
    A comma-separated list of QFEs to apply to the VHD after the WIM is
    applied.  QFEs must be in the .MSU file format, which is the default
    QFE format for Windows 7.  They can also be provided in a .CAB format
    if you'd prefer to extract the .CABs from the .MSU files.
 
    To extract a CAB from an .MSU, use the following command:
 
    expand -f:win*.cab &lt;.MSU file&gt; &lt;location to extract to&gt;
 
  /ref:&lt;ref1,...,refN&gt;
 
    A comma-separated list of WIM pieces to apply to the VHD.
    A "WIM piece" is the result of a Split WIM, and typically has a .SWM
    file extension.  The first piece of the Split WIM should be specified with
    the /WIM switch. Subsequent pieces should be specified with /REF.
      ex: WIM2VHD.WSF /WIM:C:\split.swm /REF:C:\split2.swm,c:\split3.swm
 
    See IMAGEX.EXE /SPLIT /? for more information.
 
  /dbg:&lt;protocol&gt;,&lt;port/channel/target&gt;[,&lt;baudrate&gt;]
 
    Configures debugging in the OS on the VHD.
    examples:
      /dbg:serial,1,115200 - configures serial debugging on COM1 at 115200bps
      /dbg:1394,10 - configures 1394 debugging on channel 10
      /dbg:usb,debugging - configures USB debugging with the target DEBUGGING
 
  /copylocal:&lt;localFolder&gt;
 
    Copies all of the files necessary to run WIM2VHD.WSF to localFolder,
    eliminating the need to install the Windows AIK or OPK.  This does not
    include any WIM files, just the binaries that WIM2VHD.WSF depends on.
    After this operating completes, run WIM2VHD.WSF from localFolder.
    If this switch is specified, no VHD will be created.
 
  /passthru:&lt;physicalDrive&gt;
 
    Applies the WIM directly to the specified drive and makes it bootable.
    NOTE: The partition on the disk must be marked as ACTIVE in order to boot
    successfully. This action is NOT performed by WIM2VHD.WSF.
 
  /signdisk:&lt;true|false&gt;
 
    Specifies whether or not WIM2VHD.WSF should leave a signature on the VHD
    that indicates what version of WIM2VHD.WSF created the VHD, and the date
    of creation.  The signature will be located at &lt;VHD&gt;:\Windows\WIM2VHD.TXT.
    The default value is "true".
 
  /mergefolder:&lt;folderToMerge&gt;
 
    Copies the contents of folderToMerge to the root directory of the VHD.
    This includes all subfiles and subfolders.  Any files that already exist on
    the VHD will be overwritten.
</pre>
        <p>
          <br />
 
</p>
        <p>
 
</p>
        <p>
This will certainly make my life easier when it comes to building VMs!!! Thanks Oleg
for the tip.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=661ec631-4f23-410c-ab2b-32358a2fd6fa" />
      </body>
      <title>Making a Windows 7/ 2008 R2 Server VM the Easy Way – WIM2VHD Tool</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,661ec631-4f23-410c-ab2b-32358a2fd6fa.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/10/19/MakingAWindows72008R2ServerVMTheEasyWayWIM2VHDTool.aspx</link>
      <pubDate>Mon, 19 Oct 2009 00:24:16 GMT</pubDate>
      <description>&lt;p&gt;
Whilst on my travels last week I also ran into Oleg Lofman (MCS SharePoint Consultant)
whom amongst other things (showed me a great travel game - &lt;a href="http://www.travelpod.com/traveler-iq?ba96=7587"&gt;http://www.travelpod.com/traveler-iq?ba96=7587&lt;/a&gt;)
pointed me towards a tool called &lt;strong&gt;WIM2VHD&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
Basically this tool allows you to go straight from a &lt;strong&gt;WIM file to VHD!! &lt;/strong&gt;You
can even specify an Answer file also. So no need to mount the ISO, go through the
bootloader and copy all the files needed, then expand etc etc as part of the setup.
&lt;/p&gt;
&lt;p&gt;
So seeing that Windows 7/Server 2008 R2 has a bunch of WIMs under the \Sources folder,
you can simply go there and take your pick as to how extensive you want the base OS
to be : Core…or something more!
&lt;/p&gt;
&lt;p&gt;
Check it out:
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://code.msdn.microsoft.com/wim2vhd" href="http://code.msdn.microsoft.com/wim2vhd"&gt;http://code.msdn.microsoft.com/wim2vhd&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
As you can see below, it’s a pretty extensive and detailed tool: (you can even apply
hotfixes to the VHD during this process)
&lt;/p&gt;
&lt;p&gt;
--- snip from the above page ---
&lt;/p&gt;
&lt;h4&gt;Usage 
&lt;/h4&gt;
&lt;a name="usage"&gt;&lt;/a&gt;&lt;pre&gt;Usage: WIM2VHD.WSF /wim:&amp;lt;wimPath&amp;gt; /sku:&amp;lt;sku&amp;gt;
[/vhd:&amp;lt;vhdPath&amp;gt;] [/size:&amp;lt;vhdSizeInMb&amp;gt;] [/disktype:&amp;lt;dynamic|fixed&amp;gt;]
[/unattend:&amp;lt;unattendXmlPath&amp;gt;] [/qfe:&amp;lt;qfe1,...,qfeN&amp;gt;]
[/ref:&amp;lt;ref1,...,refN] [/dbg:&amp;lt;args&amp;gt;] [/copylocal:&amp;lt;localFolder&amp;gt;]
[/passthru:&amp;lt;physicalDrive&amp;gt;] [/signdisk:&amp;lt;true|false&amp;gt;]
[/mergefolder:&amp;lt;folderToMerge&amp;gt;]
 
Required parameters:
 
  /wim:&amp;lt;wimPath&amp;gt;
 
    The path of the WIM file to use when creating the VHD.  For example:
    X:\sources\install.wim
 
    Where X: is the drive letter of your DVD ROM drive.
 
  /sku:&amp;lt;skuName&amp;gt;|&amp;lt;skuIndex&amp;gt;
 
    The SKU within the WIM to use when creating the VHD (e.g. "ServerStandard",
    "ServerDatacenterCore", "2", etc.).  This value can either be passed as a
    SKU name (typically the easiest method) or as a SKU index (which requires
    you to have manually inspected the WIM with a tool like IMAGEX.EXE).
 
Optional parameters:
 
  /vhd:&amp;lt;vhdPath&amp;gt;
 
    The path and name of the VHD to be created.  If a file with this name
    already exists, it will be overwritten.  If no VHD is specified, a VHD will
    be created in the current folder with a name in the following format:
    &amp;lt;Major&amp;gt;.&amp;lt;Minor&amp;gt;.&amp;lt;Build&amp;gt;.&amp;lt;Rev&amp;gt;.&amp;lt;Arch&amp;gt;.&amp;lt;Branch&amp;gt;.&amp;lt;Timestamp&amp;gt;.&amp;lt;SKU&amp;gt;.&amp;lt;Lang&amp;gt;.vhd
    ex:
       6.1.7100.0.x86fre.winmain_win7rc.090421-1700.Ultimate.en-us.vhd
 
    NOTE: If the language cannot be determined from the WIM, no &amp;lt;Lang&amp;gt; block
    will be included in the VHD name.
 
  /size:&amp;lt;vhdSizeInMb&amp;gt;
 
    For Fixed disks, this is the size in MB of the VHD that will be created.
    For Dynamic disks, this is the maximum size in MB that the VHD can grow to
    as additional space is required.
    If unspecified, a default value of 40960 MB (40 GB) will be used.
 
  /disktype:&amp;lt;Dynamic|Fixed&amp;gt;
 
    Specifies what kind of VHD should be created: Dynamic or Fixed.
    A Fixed disk allocates all of the necessary disk space for the VHD upon
    creation.  A Dynamic disk only allocates the space required by files in
    the VHD at any given time, and will grow as more space is required.
    The default value is Dynamic.
 
  /unattend:&amp;lt;unattendXmlPath&amp;gt;
 
    The path to an unattend.xml file that will be used to automate the OOBE
    portion of Windows setup the first time the VHD is booted.
 
  /qfe:&amp;lt;qfe1,...,qfeN&amp;gt;
 
    A comma-separated list of QFEs to apply to the VHD after the WIM is
    applied.  QFEs must be in the .MSU file format, which is the default
    QFE format for Windows 7.  They can also be provided in a .CAB format
    if you'd prefer to extract the .CABs from the .MSU files.
 
    To extract a CAB from an .MSU, use the following command:
 
    expand -f:win*.cab &amp;lt;.MSU file&amp;gt; &amp;lt;location to extract to&amp;gt;
 
  /ref:&amp;lt;ref1,...,refN&amp;gt;
 
    A comma-separated list of WIM pieces to apply to the VHD.
    A "WIM piece" is the result of a Split WIM, and typically has a .SWM
    file extension.  The first piece of the Split WIM should be specified with
    the /WIM switch. Subsequent pieces should be specified with /REF.
      ex: WIM2VHD.WSF /WIM:C:\split.swm /REF:C:\split2.swm,c:\split3.swm
 
    See IMAGEX.EXE /SPLIT /? for more information.
 
  /dbg:&amp;lt;protocol&amp;gt;,&amp;lt;port/channel/target&amp;gt;[,&amp;lt;baudrate&amp;gt;]
 
    Configures debugging in the OS on the VHD.
    examples:
      /dbg:serial,1,115200 - configures serial debugging on COM1 at 115200bps
      /dbg:1394,10 - configures 1394 debugging on channel 10
      /dbg:usb,debugging - configures USB debugging with the target DEBUGGING
 
  /copylocal:&amp;lt;localFolder&amp;gt;
 
    Copies all of the files necessary to run WIM2VHD.WSF to localFolder,
    eliminating the need to install the Windows AIK or OPK.  This does not
    include any WIM files, just the binaries that WIM2VHD.WSF depends on.
    After this operating completes, run WIM2VHD.WSF from localFolder.
    If this switch is specified, no VHD will be created.
 
  /passthru:&amp;lt;physicalDrive&amp;gt;
 
    Applies the WIM directly to the specified drive and makes it bootable.
    NOTE: The partition on the disk must be marked as ACTIVE in order to boot
    successfully. This action is NOT performed by WIM2VHD.WSF.
 
  /signdisk:&amp;lt;true|false&amp;gt;
 
    Specifies whether or not WIM2VHD.WSF should leave a signature on the VHD
    that indicates what version of WIM2VHD.WSF created the VHD, and the date
    of creation.  The signature will be located at &amp;lt;VHD&amp;gt;:\Windows\WIM2VHD.TXT.
    The default value is "true".
 
  /mergefolder:&amp;lt;folderToMerge&amp;gt;
 
    Copies the contents of folderToMerge to the root directory of the VHD.
    This includes all subfiles and subfolders.  Any files that already exist on
    the VHD will be overwritten.
&lt;/pre&gt;
&lt;p&gt;
&lt;br&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
This will certainly make my life easier when it comes to building VMs!!! Thanks Oleg
for the tip.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=661ec631-4f23-410c-ab2b-32358a2fd6fa" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,661ec631-4f23-410c-ab2b-32358a2fd6fa.aspx</comments>
      <category>Tips</category>
      <category>WinPE</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=2ef0751d-ae18-47ca-af00-c2d9d46c113c</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,2ef0751d-ae18-47ca-af00-c2d9d46c113c.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,2ef0751d-ae18-47ca-af00-c2d9d46c113c.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=2ef0751d-ae18-47ca-af00-c2d9d46c113c</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Something that I’ve come across in recent years and it concerns me more and more…<strong>long
running transactions</strong>.
</p>
        <p>
For example let’s take an Insurance Company implementing a Claims Process.<br /><br />
The way it works is:
</p>
        <ul>
          <li>
            <strong>Design Long Running Business Processes around BizTalk Orchestrations</strong>
            <br />
Sounds great on the surface and since BizTalk 2004, the techniques for implementing
this were easier.<br />
Basically – the BizTalk Environment will look after ensuring state is maintained,
waiting Orchestrations are managed and Correlations are in place for return messages,
that may return seconds, minutes, weeks or months later.<br /><br />
So in this case we’d implement a main <strong>claims</strong> process manager which
is runs for the duration the claim is active in the system.<br /><br />
A Claim comes in, enters the System and the Claims Process Manager initiates and we’re
off and running.<br /><br />
A common technique with long running processes is to <strong>forcibly suspend biztalk
messages </strong>that are in error. At a later date someone looks into the BizTalk
Admin Console (or via a WMI query) and ‘deals with’ the suspended messages.<br /><br />
The benefit of these suspended messages is that they potentially can be resumed right
where they left off and these messages are stored in the MsgBoxDB awaiting attention.</li>
        </ul>
        <p>
The reason why <strong>I don’t think this works:</strong></p>
        <ul>
          <li>
Messages are immutable – meaning that while they’re in the MsgBoxDB they can’t be
changed (technically we *can* changed these messages as a hack, but it’s *not supported*).
So if the message is incorrect and in the overall process, we might fix the problem
and resubmit that message – we can’t do this from within the MessageBox. We have to
export the message out and provide some ‘resubmit to biztalk’ port (usually a file
port).<br /></li>
          <li>
BizTalk MessageBoxDB is keeping state of the system. In process Claims are part floating
around as part of our system (we could also be a bank processing Loans etc etc). If
we lose the MessageBoxDB this could spell even more trouble.<br /></li>
          <li>
Also system upgrade complexity moves up that extra notch, careful planning and various
considerations need to be thought out. Pending Orchestrations have to be allowed to
run through to completion; hydrated messages waiting to be sent through Ports, means
that those ports must stay around until these messages are dealt with… and many other.<br /></li>
          <li>
Backup – despite the recent advancements in SQL Server 2008 (mirroring) we can’t take
advantage of it in the BizTalk world.<br />
The supported Technique is to use <strong>Log Shipping</strong> – The recommended
backup interval is <strong>15 minutes</strong> so worse case your system is out 15
minutes in the case of a crash.<br /><br />
This is not entirely true… on busy systems the actual log shipping process may take
between 15-30 mins to backup. This means that during the time while log shipping backup
is running, the system is not being backed up. So all in all your system could be
running for 1hr (approx.) with no covering backup.<br /><br />
This essentially is the <strong>state of your solution</strong>.<br /></li>
        </ul>
        <p>
What <strong>Does Work</strong>….in my opinion.
</p>
        <ul>
          <li>
Manage the State of your System in another area, such as SQL or SharePoint.</li>
          <li>
Where possible keep the Orchestrations short running.</li>
          <li>
Upgrades are simplier</li>
          <li>
System maintenance is simplier.</li>
          <li>
Provide a MSMQ or File Inbound Port for ‘Resubmission into BizTalk’.</li>
          <li>
Use Content Based Routing to establish mutually exclusive processes.</li>
        </ul>
        <p>
Food for thought folks, from what I’ve worked on and noticed out in the field.
</p>
        <p>
Mick.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=2ef0751d-ae18-47ca-af00-c2d9d46c113c" />
      </body>
      <title>BizTalk: Long Running Processes – Friend or Foe?</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,2ef0751d-ae18-47ca-af00-c2d9d46c113c.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/10/04/BizTalkLongRunningProcessesFriendOrFoe.aspx</link>
      <pubDate>Sun, 04 Oct 2009 12:05:03 GMT</pubDate>
      <description>&lt;p&gt;
Something that I’ve come across in recent years and it concerns me more and more…&lt;strong&gt;long
running transactions&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
For example let’s take an Insurance Company implementing a Claims Process.&lt;br&gt;
&lt;br&gt;
The way it works is:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Design Long Running Business Processes around BizTalk Orchestrations&lt;/strong&gt;
&lt;br&gt;
Sounds great on the surface and since BizTalk 2004, the techniques for implementing
this were easier.&lt;br&gt;
Basically – the BizTalk Environment will look after ensuring state is maintained,
waiting Orchestrations are managed and Correlations are in place for return messages,
that may return seconds, minutes, weeks or months later.&lt;br&gt;
&lt;br&gt;
So in this case we’d implement a main &lt;strong&gt;claims&lt;/strong&gt; process manager which
is runs for the duration the claim is active in the system.&lt;br&gt;
&lt;br&gt;
A Claim comes in, enters the System and the Claims Process Manager initiates and we’re
off and running.&lt;br&gt;
&lt;br&gt;
A common technique with long running processes is to &lt;strong&gt;forcibly suspend biztalk
messages &lt;/strong&gt;that are in error. At a later date someone looks into the BizTalk
Admin Console (or via a WMI query) and ‘deals with’ the suspended messages.&lt;br&gt;
&lt;br&gt;
The benefit of these suspended messages is that they potentially can be resumed right
where they left off and these messages are stored in the MsgBoxDB awaiting attention.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The reason why &lt;strong&gt;I don’t think this works:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Messages are immutable – meaning that while they’re in the MsgBoxDB they can’t be
changed (technically we *can* changed these messages as a hack, but it’s *not supported*).
So if the message is incorrect and in the overall process, we might fix the problem
and resubmit that message – we can’t do this from within the MessageBox. We have to
export the message out and provide some ‘resubmit to biztalk’ port (usually a file
port).&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
BizTalk MessageBoxDB is keeping state of the system. In process Claims are part floating
around as part of our system (we could also be a bank processing Loans etc etc). If
we lose the MessageBoxDB this could spell even more trouble.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Also system upgrade complexity moves up that extra notch, careful planning and various
considerations need to be thought out. Pending Orchestrations have to be allowed to
run through to completion; hydrated messages waiting to be sent through Ports, means
that those ports must stay around until these messages are dealt with… and many other.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Backup – despite the recent advancements in SQL Server 2008 (mirroring) we can’t take
advantage of it in the BizTalk world.&lt;br&gt;
The supported Technique is to use &lt;strong&gt;Log Shipping&lt;/strong&gt; – The recommended
backup interval is &lt;strong&gt;15 minutes&lt;/strong&gt; so worse case your system is out 15
minutes in the case of a crash.&lt;br&gt;
&lt;br&gt;
This is not entirely true… on busy systems the actual log shipping process may take
between 15-30 mins to backup. This means that during the time while log shipping backup
is running, the system is not being backed up. So all in all your system could be
running for 1hr (approx.) with no covering backup.&lt;br&gt;
&lt;br&gt;
This essentially is the &lt;strong&gt;state of your solution&lt;/strong&gt;.&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
What &lt;strong&gt;Does Work&lt;/strong&gt;….in my opinion.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Manage the State of your System in another area, such as SQL or SharePoint.&lt;/li&gt;
&lt;li&gt;
Where possible keep the Orchestrations short running.&lt;/li&gt;
&lt;li&gt;
Upgrades are simplier&lt;/li&gt;
&lt;li&gt;
System maintenance is simplier.&lt;/li&gt;
&lt;li&gt;
Provide a MSMQ or File Inbound Port for ‘Resubmission into BizTalk’.&lt;/li&gt;
&lt;li&gt;
Use Content Based Routing to establish mutually exclusive processes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Food for thought folks, from what I’ve worked on and noticed out in the field.
&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=2ef0751d-ae18-47ca-af00-c2d9d46c113c" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,2ef0751d-ae18-47ca-af00-c2d9d46c113c.aspx</comments>
      <category>BizTalk/2009</category>
      <category>SharePoint/2010</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=c7c60419-142e-48cd-8538-d9beb3186eba</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,c7c60419-142e-48cd-8538-d9beb3186eba.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,c7c60419-142e-48cd-8538-d9beb3186eba.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=c7c60419-142e-48cd-8538-d9beb3186eba</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hi guys, thought I’d let you know about the rfid operations guide Microsoft recently
released.
</p>
        <p>
Covers things like HA, RFID Mobile and best practices… yours truly was one of the
authors so I’m happy to take any feedback you’ve got.
</p>
        <p>
Enjoy – here’s a snippet of what to expect.
</p>
        <blockquote>
          <p>
Welcome to the first edition of the Microsoft® BizTalk® Server RFID Operations Guide.
We created this guide to be a valuable resource for anyone involved in the implementation
and administration of a BizTalk Server RFID solution. 
</p>
          <p>
To download a copy of this guide in .chm or .docx form, go to <a href="http://go.microsoft.com/fwlink/?LinkId=158724">http://go.microsoft.com/fwlink/?LinkId=158724</a>. 
</p>
          <p>
            <strong>
              <img src="http://i.msdn.microsoft.com/Global/Images/clear.gif" />  Which
Versions of BizTalk Server RFID Does the Guide Cover?</strong>
          </p>
          <p>
            <a>
            </a>
          </p>
          <p>
This guide is primarily for the BizTalk Server RFID product that is released as part
of Microsoft BizTalk Server 2009. Even though most of the guidance applies to BizTalk
Server RFID that was released as part of BizTalk Server 2006 R2, the guide uses the
new platform changes wherever applicable. 
</p>
          <p>
            <strong>
              <img src="http://i.msdn.microsoft.com/Global/Images/clear.gif" />  What’s
in It?</strong>
          </p>
          <p>
            <a>
            </a>
          </p>
          <p>
This document applies to the operational readiness phase in the solution life cycle
management of the project. The operational readiness phase precedes deployment to
production. It consists of a set of tasks for ensuring a stable operating environment.
It is targeted toward system administrators responsible for BizTalk Server RFID (server
computers and RFID devices), DBAs responsible for the SQL servers used by BizTalk
Server RFID, and developers involved with maintaining the infrastructure and solution.
This document assumes that the BizTalk Server RFID solution has already been validated
in a Pilot stage and is prepared for deployment to production. 
</p>
          <p>
Key portions of this guide are new; however, a considerable portion consists of documentation
taken from BizTalk Server RFID Help, white papers, Knowledge Base articles, and other
sources. It has been reviewed and evaluated by experts from the community of BizTalk
Server IT professionals and members of the product development team, whom we gratefully
acknowledge at the end of this topic. We believe that the information presented here
will help BizTalk Server RFID users solve—and above all, avoid—many of the common
problems that can occur while deploying and maintaining a BizTalk Server RFID installation. 
</p>
          <p>
            <strong>
              <img src="http://i.msdn.microsoft.com/Global/Images/clear.gif" />  Interesting!
Where Do I Start?</strong>
          </p>
          <p>
            <a>
            </a>
          </p>
          <p>
We organized the guide according to the functional aspects of planning, deploying,
and managing a BizTalk Server RFID installation. You can therefore read it according
to these functional aspects. If you are performing the following tasks, you can start
with the related sections: 
</p>
          <ul>
            <li>
              <strong>Evaluating operational readiness.</strong> If you are focused on assessing
and evaluating the operational readiness of a BizTalk Server RFID deployment, then
start by reading the <a href="http://msdn.microsoft.com/en-us/library/ee309290(BTS.10).aspx">Operations
Checklists</a> section. 
</li>
            <li>
              <strong>Becoming operationally ready.</strong> To ensure that your BizTalk Server
RFID infrastructure and applications become operationally ready, refer to the <a href="http://msdn.microsoft.com/en-us/library/ee309293(BTS.10).aspx">Planning
the Environment for BizTalk Server RFID</a> section. 
</li>
            <li>
              <strong>Managing the operational environment.</strong> Most of the topics in this
operations guide assist you in managing and maintaining an operational BizTalk Server
RFID environment. You will find best practices, key concepts, and procedures for maintaining
an operational environment in <a href="http://msdn.microsoft.com/en-us/library/ee309294(BTS.10).aspx">Managing
BizTalk Server RFID</a> and <a href="http://msdn.microsoft.com/en-us/library/ee309287(BTS.10).aspx">Monitoring
BizTalk Server RFID</a>. 
</li>
          </ul>
          <p>
            <strong>Author: </strong>Rama Ramani (Microsoft) 
</p>
          <p>
            <strong>Editor: </strong>Mary Browning (Microsoft) 
</p>
          <p>
            <strong>Contributors</strong>
          </p>
          <ul>
            <li>
Mark Simms (Microsoft) 
</li>
            <li>
Rohan Makhija (Microsoft) 
</li>
            <li>
Ravi Vankamamidi (S3Edge) 
</li>
            <li>
Clint Tennill (Xterprise) 
</li>
            <li>
Damir Dobric, Andreas Erben (daenet) 
</li>
            <li>
Mick Badran (Breeze, BizTalk Server MVP) 
</li>
          </ul>
          <p>
            <strong>Reviewers</strong>
          </p>
          <ul>
            <li>
Petr Kratochvil (Microsoft) 
</li>
            <li>
Ewan Fairweather (Microsoft) 
</li>
            <li>
Quoc Bui (Microsoft) 
</li>
            <li>
Douglas Trimble (The Boeing Company) 
</li>
            <li>
Robert Auston (Vail Resorts Management Company) 
</li>
            <li>
Luke Rennells (Bank of America N.A.) 
</li>
          </ul>
        </blockquote>
        <p>
          <a href="http://msdn.microsoft.com/en-us/library/ee309289(BTS.10).aspx">Microsoft
BizTalk Server 2009 RFID Operations Guide</a>
          <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=c7c60419-142e-48cd-8538-d9beb3186eba" />
        </p>
      </body>
      <title>Microsoft BizTalk 2009 RFID Operations Guide – now out</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,c7c60419-142e-48cd-8538-d9beb3186eba.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/09/11/MicrosoftBizTalk2009RFIDOperationsGuideNowOut.aspx</link>
      <pubDate>Fri, 11 Sep 2009 11:56:50 GMT</pubDate>
      <description>&lt;p&gt;
Hi guys, thought I’d let you know about the rfid operations guide Microsoft recently
released.
&lt;/p&gt;
&lt;p&gt;
Covers things like HA, RFID Mobile and best practices… yours truly was one of the
authors so I’m happy to take any feedback you’ve got.
&lt;/p&gt;
&lt;p&gt;
Enjoy – here’s a snippet of what to expect.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
Welcome to the first edition of the Microsoft® BizTalk® Server RFID Operations Guide.
We created this guide to be a valuable resource for anyone involved in the implementation
and administration of a BizTalk Server RFID solution. 
&lt;p&gt;
To download a copy of this guide in .chm or .docx form, go to &lt;a href="http://go.microsoft.com/fwlink/?LinkId=158724"&gt;http://go.microsoft.com/fwlink/?LinkId=158724&lt;/a&gt;. 
&lt;p&gt;
&lt;strong&gt;&lt;img src="http://i.msdn.microsoft.com/Global/Images/clear.gif"&gt;&amp;nbsp; Which
Versions of BizTalk Server RFID Does the Guide Cover?&lt;/strong&gt; 
&lt;p&gt;
&lt;a&gt;&lt;/a&gt; 
&lt;p&gt;
This guide is primarily for the BizTalk Server RFID product that is released as part
of Microsoft BizTalk Server 2009. Even though most of the guidance applies to BizTalk
Server RFID that was released as part of BizTalk Server 2006 R2, the guide uses the
new platform changes wherever applicable. 
&lt;p&gt;
&lt;strong&gt;&lt;img src="http://i.msdn.microsoft.com/Global/Images/clear.gif"&gt;&amp;nbsp; What’s
in It?&lt;/strong&gt; 
&lt;p&gt;
&lt;a&gt;&lt;/a&gt; 
&lt;p&gt;
This document applies to the operational readiness phase in the solution life cycle
management of the project. The operational readiness phase precedes deployment to
production. It consists of a set of tasks for ensuring a stable operating environment.
It is targeted toward system administrators responsible for BizTalk Server RFID (server
computers and RFID devices), DBAs responsible for the SQL servers used by BizTalk
Server RFID, and developers involved with maintaining the infrastructure and solution.
This document assumes that the BizTalk Server RFID solution has already been validated
in a Pilot stage and is prepared for deployment to production. 
&lt;p&gt;
Key portions of this guide are new; however, a considerable portion consists of documentation
taken from BizTalk Server RFID Help, white papers, Knowledge Base articles, and other
sources. It has been reviewed and evaluated by experts from the community of BizTalk
Server IT professionals and members of the product development team, whom we gratefully
acknowledge at the end of this topic. We believe that the information presented here
will help BizTalk Server RFID users solve—and above all, avoid—many of the common
problems that can occur while deploying and maintaining a BizTalk Server RFID installation. 
&lt;p&gt;
&lt;strong&gt;&lt;img src="http://i.msdn.microsoft.com/Global/Images/clear.gif"&gt;&amp;nbsp; Interesting!
Where Do I Start?&lt;/strong&gt; 
&lt;p&gt;
&lt;a&gt;&lt;/a&gt; 
&lt;p&gt;
We organized the guide according to the functional aspects of planning, deploying,
and managing a BizTalk Server RFID installation. You can therefore read it according
to these functional aspects. If you are performing the following tasks, you can start
with the related sections: 
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Evaluating operational readiness.&lt;/strong&gt; If you are focused on assessing
and evaluating the operational readiness of a BizTalk Server RFID deployment, then
start by reading the &lt;a href="http://msdn.microsoft.com/en-us/library/ee309290(BTS.10).aspx"&gt;Operations
Checklists&lt;/a&gt; section. 
&lt;li&gt;
&lt;strong&gt;Becoming operationally ready.&lt;/strong&gt; To ensure that your BizTalk Server
RFID infrastructure and applications become operationally ready, refer to the &lt;a href="http://msdn.microsoft.com/en-us/library/ee309293(BTS.10).aspx"&gt;Planning
the Environment for BizTalk Server RFID&lt;/a&gt; section. 
&lt;li&gt;
&lt;strong&gt;Managing the operational environment.&lt;/strong&gt; Most of the topics in this
operations guide assist you in managing and maintaining an operational BizTalk Server
RFID environment. You will find best practices, key concepts, and procedures for maintaining
an operational environment in &lt;a href="http://msdn.microsoft.com/en-us/library/ee309294(BTS.10).aspx"&gt;Managing
BizTalk Server RFID&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/ee309287(BTS.10).aspx"&gt;Monitoring
BizTalk Server RFID&lt;/a&gt;. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Author: &lt;/strong&gt;Rama Ramani (Microsoft) 
&lt;p&gt;
&lt;strong&gt;Editor: &lt;/strong&gt;Mary Browning (Microsoft) 
&lt;p&gt;
&lt;strong&gt;Contributors&lt;/strong&gt; 
&lt;ul&gt;
&lt;li&gt;
Mark Simms (Microsoft) 
&lt;li&gt;
Rohan Makhija (Microsoft) 
&lt;li&gt;
Ravi Vankamamidi (S3Edge) 
&lt;li&gt;
Clint Tennill (Xterprise) 
&lt;li&gt;
Damir Dobric, Andreas Erben (daenet) 
&lt;li&gt;
Mick Badran (Breeze, BizTalk Server MVP) 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Reviewers&lt;/strong&gt; 
&lt;ul&gt;
&lt;li&gt;
Petr Kratochvil (Microsoft) 
&lt;li&gt;
Ewan Fairweather (Microsoft) 
&lt;li&gt;
Quoc Bui (Microsoft) 
&lt;li&gt;
Douglas Trimble (The Boeing Company) 
&lt;li&gt;
Robert Auston (Vail Resorts Management Company) 
&lt;li&gt;
Luke Rennells (Bank of America N.A.) 
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/en-us/library/ee309289(BTS.10).aspx"&gt;Microsoft
BizTalk Server 2009 RFID Operations Guide&lt;/a&gt;&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=c7c60419-142e-48cd-8538-d9beb3186eba" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,c7c60419-142e-48cd-8538-d9beb3186eba.aspx</comments>
      <category>BizTalk/2009</category>
      <category>BizTalk/RFID</category>
      <category>Tips</category>
      <category>Training</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=df1fa8ab-162f-4f62-a149-8e739d6f318f</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,df1fa8ab-162f-4f62-a149-8e739d6f318f.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,df1fa8ab-162f-4f62-a149-8e739d6f318f.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=df1fa8ab-162f-4f62-a149-8e739d6f318f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This was being sent around our office today that I thought I’d just have to share
with you….
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/2009/DonttellmeCant_D179/image.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2009/DonttellmeCant_D179/image_thumb.png" width="349" height="241" />
          </a>
        </p>
        <p>
My first thought was ‘photoshop’….but one of the South African born Girls here swears
black and blue that this is <strong>normal</strong>.
</p>
        <p>
Everything about this picture is wrong…at any point the goat could say “forget this…I
don’t have the right shoes on”<br />
(he would probably bleat it out to his mates)
</p>
        <p>
Just goes to show….we’re limited only by our own minds…
</p>
        <p>
Thought for “Micks Day”
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=df1fa8ab-162f-4f62-a149-8e739d6f318f" />
      </body>
      <title>Don&amp;rsquo;t tell me &amp;ldquo;Can&amp;rsquo;t&amp;rdquo;</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,df1fa8ab-162f-4f62-a149-8e739d6f318f.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/07/23/DonrsquotTellMeLdquoCanrsquotrdquo.aspx</link>
      <pubDate>Thu, 23 Jul 2009 04:54:06 GMT</pubDate>
      <description>&lt;p&gt;
This was being sent around our office today that I thought I’d just have to share
with you….
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2009/DonttellmeCant_D179/image.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2009/DonttellmeCant_D179/image_thumb.png" width="349" height="241"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
My first thought was ‘photoshop’….but one of the South African born Girls here swears
black and blue that this is &lt;strong&gt;normal&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
Everything about this picture is wrong…at any point the goat could say “forget this…I
don’t have the right shoes on”&lt;br&gt;
(he would probably bleat it out to his mates)
&lt;/p&gt;
&lt;p&gt;
Just goes to show….we’re limited only by our own minds…
&lt;/p&gt;
&lt;p&gt;
Thought for “Micks Day”
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=df1fa8ab-162f-4f62-a149-8e739d6f318f" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,df1fa8ab-162f-4f62-a149-8e739d6f318f.aspx</comments>
      <category>General</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=229e5f63-a2ea-4cc9-8fb7-6e8e75582259</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,229e5f63-a2ea-4cc9-8fb7-6e8e75582259.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,229e5f63-a2ea-4cc9-8fb7-6e8e75582259.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=229e5f63-a2ea-4cc9-8fb7-6e8e75582259</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hi folks,
</p>
        <p>
Much more of the BTS09 material (documentation etc) is starting to appear in the masses
from MS.
</p>
        <p>
Grab it <a href="http://www.microsoft.com/downloads/thankyou.aspx?familyId=d022a0a4-3b27-49cf-b47c-16d8458a1be2&amp;displayLang=en" target="_blank">Here</a> and
there are a bunch of others you’ll love to get also.
</p>
        <p>
          <a href="http://msdn.microsoft.com/en-us/library/dd450982.aspx" target="_blank">BizTalk
2009 Posters</a>
        </p>
        <p>
p.s. I’ve also added all the Install Guides and all the PDF posters within the ‘CSD
Bits’ Mesh Folder.
</p>
        <p>
Cheers,
</p>
        <p>
Mick.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=229e5f63-a2ea-4cc9-8fb7-6e8e75582259" />
      </body>
      <title>BizTalk 2009 Posters &amp;ndash; Runtime Architecture + more</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,229e5f63-a2ea-4cc9-8fb7-6e8e75582259.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/05/27/BizTalk2009PostersNdashRuntimeArchitectureMore.aspx</link>
      <pubDate>Wed, 27 May 2009 08:36:21 GMT</pubDate>
      <description>&lt;p&gt;
Hi folks,
&lt;/p&gt;
&lt;p&gt;
Much more of the BTS09 material (documentation etc) is starting to appear in the masses
from MS.
&lt;/p&gt;
&lt;p&gt;
Grab it &lt;a href="http://www.microsoft.com/downloads/thankyou.aspx?familyId=d022a0a4-3b27-49cf-b47c-16d8458a1be2&amp;amp;displayLang=en" target="_blank"&gt;Here&lt;/a&gt; and
there are a bunch of others you’ll love to get also.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/en-us/library/dd450982.aspx" target="_blank"&gt;BizTalk
2009 Posters&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
p.s. I’ve also added all the Install Guides and all the PDF posters within the ‘CSD
Bits’ Mesh Folder.
&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=229e5f63-a2ea-4cc9-8fb7-6e8e75582259" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,229e5f63-a2ea-4cc9-8fb7-6e8e75582259.aspx</comments>
      <category>BizTalk/2009</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=9d9e999a-10d7-43b1-9ddb-458a7b5f2be0</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,9d9e999a-10d7-43b1-9ddb-458a7b5f2be0.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,9d9e999a-10d7-43b1-9ddb-458a7b5f2be0.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=9d9e999a-10d7-43b1-9ddb-458a7b5f2be0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
My good friend <a href="http://blogs.msdn.com/cvidotto/archive/2009/05/19/biztalk-2009-best-practices-analyser.aspx" target="_blank">Chris
Vidotto</a> a once fearsome BTS warrior came up with the good oil on this.
</p>
        <p>
The BPA tool now supports bts09, sql08 and win08 in one update, as well as all the
previous environments. 
</p>
        <p>
The tool will go through and examine your environment in accordance to a predefined
set of rules (shipped with BPA) and report back accordingly.<br /><br />
Grab it now… from <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=93d432fe-1370-4b6d-aaa8-a0c43c30f5ab&amp;displaylang=en" target="_blank">HERE</a></p>
        <p>
Mick.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=9d9e999a-10d7-43b1-9ddb-458a7b5f2be0" />
      </body>
      <title>BizTalk Best Practices Analyser V1.2 Released</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,9d9e999a-10d7-43b1-9ddb-458a7b5f2be0.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/05/19/BizTalkBestPracticesAnalyserV12Released.aspx</link>
      <pubDate>Tue, 19 May 2009 03:54:18 GMT</pubDate>
      <description>&lt;p&gt;
My good friend &lt;a href="http://blogs.msdn.com/cvidotto/archive/2009/05/19/biztalk-2009-best-practices-analyser.aspx" target="_blank"&gt;Chris
Vidotto&lt;/a&gt; a once fearsome BTS warrior came up with the good oil on this.
&lt;/p&gt;
&lt;p&gt;
The BPA tool now supports bts09, sql08 and win08 in one update, as well as all the
previous environments. 
&lt;/p&gt;
&lt;p&gt;
The tool will go through and examine your environment in accordance to a predefined
set of rules (shipped with BPA) and report back accordingly.&lt;br&gt;
&lt;br&gt;
Grab it now… from &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=93d432fe-1370-4b6d-aaa8-a0c43c30f5ab&amp;amp;displaylang=en" target="_blank"&gt;HERE&lt;/a&gt;
&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=9d9e999a-10d7-43b1-9ddb-458a7b5f2be0" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,9d9e999a-10d7-43b1-9ddb-458a7b5f2be0.aspx</comments>
      <category>BizTalk</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=45f522ef-a2b7-4b72-a2d6-f1a85c158c6d</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,45f522ef-a2b7-4b72-a2d6-f1a85c158c6d.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,45f522ef-a2b7-4b72-a2d6-f1a85c158c6d.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=45f522ef-a2b7-4b72-a2d6-f1a85c158c6d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hi folks – from a previous post where I fudged a <a href="http://blogs.breezetraining.com.au/mickb/2008/02/19/DLPRFID164And32BitUSBDriversThatWORKOnWin2008X64RCYay.aspx" target="_blank">DLP-RFID1
x64 driver</a>, I’ve now tracked down ‘proper’ 64 bit version of the DLP-RFID1 Reader.
</p>
        <p>
Here it is here - 
</p>
        <p>
1. From this page <a title="http://www.ftdichip.com/Drivers/VCP.htm" href="http://www.ftdichip.com/Drivers/VCP.htm">http://www.ftdichip.com/Drivers/VCP.htm</a> download
the <a href="http://www.ftdichip.com/Drivers/CDM/CDM%202.04.16.exe" target="_blank">CDM
2.04.16.exe</a> which does the trick.
</p>
        <p>
2. Double click on the above EXE to install the drivers (the EXE will detect your
OS is x64) – the driver is then installed on the machine, but not auto assigned to
your RFID1 device.
</p>
        <p>
3. From Device Manager, right click on the DLP RFID1 Reader and select ‘Update Driver’,
select ‘Browse on My Machine’ and ‘Select from a List’ (near where you say ‘have disk’).
</p>
        <p>
4. From the Manufacturer list select ‘FTDI’ and select the very top Driver on the
RHS (USB Serial Converter)
</p>
        <p>
5. Unplug and replug your RFID1 Device – and viola! all good.
</p>
        <p>
6. Run this Test app <a href="http://dlpdesign.com/rfrdr/rfid1demo.exe" target="_blank">RFID1Demo.exe</a> to
make sure all is good from <a title="http://dlpdesign.com/rfrdr/" href="http://dlpdesign.com/rfrdr/">http://dlpdesign.com/rfrdr/</a> 
</p>
        <p>
NOTE: On my machine I still have an unknown Serial device in Device Manager, but all
works none the less.
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/DLPRFID1x64DriversrunningonWindows7well2_AE9B/image.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/DLPRFID1x64DriversrunningonWindows7well2_AE9B/image_thumb.png" width="216" height="86" />
          </a>
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=45f522ef-a2b7-4b72-a2d6-f1a85c158c6d" />
      </body>
      <title>DLP-RFID1 x64 Drivers running on Windows 7 (well 2008 R2 Actually)</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,45f522ef-a2b7-4b72-a2d6-f1a85c158c6d.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/05/19/DLPRFID1X64DriversRunningOnWindows7Well2008R2Actually.aspx</link>
      <pubDate>Tue, 19 May 2009 02:25:01 GMT</pubDate>
      <description>&lt;p&gt;
Hi folks – from a previous post where I fudged a &lt;a href="http://blogs.breezetraining.com.au/mickb/2008/02/19/DLPRFID164And32BitUSBDriversThatWORKOnWin2008X64RCYay.aspx" target="_blank"&gt;DLP-RFID1
x64 driver&lt;/a&gt;, I’ve now tracked down ‘proper’ 64 bit version of the DLP-RFID1 Reader.
&lt;/p&gt;
&lt;p&gt;
Here it is here - 
&lt;/p&gt;
&lt;p&gt;
1. From this page &lt;a title="http://www.ftdichip.com/Drivers/VCP.htm" href="http://www.ftdichip.com/Drivers/VCP.htm"&gt;http://www.ftdichip.com/Drivers/VCP.htm&lt;/a&gt; download
the &lt;a href="http://www.ftdichip.com/Drivers/CDM/CDM%202.04.16.exe" target="_blank"&gt;CDM
2.04.16.exe&lt;/a&gt; which does the trick.
&lt;/p&gt;
&lt;p&gt;
2. Double click on the above EXE to install the drivers (the EXE will detect your
OS is x64) – the driver is then installed on the machine, but not auto assigned to
your RFID1 device.
&lt;/p&gt;
&lt;p&gt;
3. From Device Manager, right click on the DLP RFID1 Reader and select ‘Update Driver’,
select ‘Browse on My Machine’ and ‘Select from a List’ (near where you say ‘have disk’).
&lt;/p&gt;
&lt;p&gt;
4. From the Manufacturer list select ‘FTDI’ and select the very top Driver on the
RHS (USB Serial Converter)
&lt;/p&gt;
&lt;p&gt;
5. Unplug and replug your RFID1 Device – and viola! all good.
&lt;/p&gt;
&lt;p&gt;
6. Run this Test app &lt;a href="http://dlpdesign.com/rfrdr/rfid1demo.exe" target="_blank"&gt;RFID1Demo.exe&lt;/a&gt; to
make sure all is good from &lt;a title="http://dlpdesign.com/rfrdr/" href="http://dlpdesign.com/rfrdr/"&gt;http://dlpdesign.com/rfrdr/&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
NOTE: On my machine I still have an unknown Serial device in Device Manager, but all
works none the less.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/DLPRFID1x64DriversrunningonWindows7well2_AE9B/image.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/DLPRFID1x64DriversrunningonWindows7well2_AE9B/image_thumb.png" width="216" height="86"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=45f522ef-a2b7-4b72-a2d6-f1a85c158c6d" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,45f522ef-a2b7-4b72-a2d6-f1a85c158c6d.aspx</comments>
      <category>BizTalk</category>
      <category>BizTalk/RFID</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=2aa34905-bef6-43e7-971c-600e1f1facab</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,2aa34905-bef6-43e7-971c-600e1f1facab.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,2aa34905-bef6-43e7-971c-600e1f1facab.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=2aa34905-bef6-43e7-971c-600e1f1facab</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Down at BizTalk 24*7 Saravana Kumar has been working hard to organise a whole collection
of BizTalk articles from us in Cyberspace
</p>
        <p>
He's done a great job!
</p>
        <p>
Check it out - <a href="http://blogdoc.biztalk247.com/">http://blogdoc.biztalk247.com/</a><br />
and yours truly is here - <a href="http://blogdoc.biztalk247.com/mick-badran">Mick
Badran</a></p>
        <p>
          <br />
          <img src="http://blogdoc.biztalk247.com/images/blogdoc.jpg" />
          <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=2aa34905-bef6-43e7-971c-600e1f1facab" />
        </p>
      </body>
      <title>BizTalk 24*7 Publishes blogs in a structured Index</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,2aa34905-bef6-43e7-971c-600e1f1facab.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/05/01/BizTalk247PublishesBlogsInAStructuredIndex.aspx</link>
      <pubDate>Fri, 01 May 2009 00:12:13 GMT</pubDate>
      <description>&lt;p&gt;
Down at BizTalk 24*7 Saravana Kumar has been working hard to organise a whole collection
of BizTalk articles from us in Cyberspace
&lt;/p&gt;
&lt;p&gt;
He's done a great job!
&lt;/p&gt;
&lt;p&gt;
Check it out - &lt;a href='http://blogdoc.biztalk247.com/'&gt;http://blogdoc.biztalk247.com/&lt;/a&gt; 
&lt;br&gt;
and yours truly is here - &lt;a href='http://blogdoc.biztalk247.com/mick-badran'&gt;Mick
Badran&lt;/a&gt;
&lt;p&gt;
&lt;br&gt;
&lt;img src='http://blogdoc.biztalk247.com/images/blogdoc.jpg'&gt;&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=2aa34905-bef6-43e7-971c-600e1f1facab" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,2aa34905-bef6-43e7-971c-600e1f1facab.aspx</comments>
      <category>BizTalk</category>
      <category>BizTalk/Insights</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=52851213-6244-4dae-8c43-13f3471e39eb</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,52851213-6244-4dae-8c43-13f3471e39eb.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,52851213-6244-4dae-8c43-13f3471e39eb.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=52851213-6244-4dae-8c43-13f3471e39eb</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
As I’m looking into sizing up systems currently for a project, the question that you
always ask “Is my CPU choice any good?” “Should I go Dual Quad Core or Quad Dual Core?”…
and the questions just keep on coming, even in your sleep sometimes :-)
</p>
        <p>
I recently came across a gem of a site that gave me all my answers. There’s a bunch
of other CPUs and options available also. Check it out.
</p>
        <p>
          <a title="http://www.cpubenchmark.net/cpu_lookup.php?cpu=%5BDual+CPU%5D+Intel+Xeon+E5420+%40+2.50GHz" href="http://www.cpubenchmark.net/cpu_lookup.php?cpu=%5BDual+CPU%5D+Intel+Xeon+E5420+%40+2.50GHz">http://www.cpubenchmark.net/cpu_lookup.php?cpu=%5BDual+CPU%5D+Intel+Xeon+E5420+%40+2.50GHz</a>
        </p>
        <p>
          <a href="http://www.cpubenchmark.net/cpu_lookup.php?cpu=%5BDual+CPU%5D+Intel+Xeon+E5420+%40+2.50GHz" target="_blank">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/CPUandtheirrespectiveperformance_8B1E/image.png" width="763" height="638" />
          </a>
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=52851213-6244-4dae-8c43-13f3471e39eb" />
      </body>
      <title>CPU and their respective performance</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,52851213-6244-4dae-8c43-13f3471e39eb.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/04/16/CPUAndTheirRespectivePerformance.aspx</link>
      <pubDate>Thu, 16 Apr 2009 23:56:27 GMT</pubDate>
      <description>&lt;p&gt;
As I’m looking into sizing up systems currently for a project, the question that you
always ask “Is my CPU choice any good?” “Should I go Dual Quad Core or Quad Dual Core?”…
and the questions just keep on coming, even in your sleep sometimes :-)
&lt;/p&gt;
&lt;p&gt;
I recently came across a gem of a site that gave me all my answers. There’s a bunch
of other CPUs and options available also. Check it out.
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.cpubenchmark.net/cpu_lookup.php?cpu=%5BDual+CPU%5D+Intel+Xeon+E5420+%40+2.50GHz" href="http://www.cpubenchmark.net/cpu_lookup.php?cpu=%5BDual+CPU%5D+Intel+Xeon+E5420+%40+2.50GHz"&gt;http://www.cpubenchmark.net/cpu_lookup.php?cpu=%5BDual+CPU%5D+Intel+Xeon+E5420+%40+2.50GHz&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.cpubenchmark.net/cpu_lookup.php?cpu=%5BDual+CPU%5D+Intel+Xeon+E5420+%40+2.50GHz" target="_blank"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/CPUandtheirrespectiveperformance_8B1E/image.png" width="763" height="638"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=52851213-6244-4dae-8c43-13f3471e39eb" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,52851213-6244-4dae-8c43-13f3471e39eb.aspx</comments>
      <category>General</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=657bd288-e488-4f09-88ec-b491552614f0</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,657bd288-e488-4f09-88ec-b491552614f0.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,657bd288-e488-4f09-88ec-b491552614f0.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=657bd288-e488-4f09-88ec-b491552614f0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
You want to know the ins and outs of WCF at a glance – then the mini-book is a winner.<br />
(Just let this puppy fall out of your back pocket in the office and watch the guys
instantly want to Sync up their Complete Series of Star Trek with you…)
</p>
        <p>
Seriously – great guide, easy to flick through and welcome to another 8 million lines
of code you thought you could live without :)
</p>
        <p>
Thanks to the efforts of <strong>Cliff Simpkins and his team</strong> for their dedication
on this.
</p>
        <p>
          <strong>6 Chapters + Code….are you man enough?</strong>
        </p>
        <p>
          <a title="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=netfxsamples&amp;DownloadId=4962" href="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=netfxsamples&amp;DownloadId=4962">http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=netfxsamples&amp;DownloadId=4962</a>
          <br />
          <br />
          <img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="WCF Channel Stack" border="0" alt="WCF Channel Stack" align="left" src="http://blogs.breezetraining.com.au/mickb/content/WCFChannelMiniBookrevived_12D5E/clip_image002.gif" width="407" height="297" />
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=657bd288-e488-4f09-88ec-b491552614f0" />
      </body>
      <title>WCF Channel Mini Book - revived</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,657bd288-e488-4f09-88ec-b491552614f0.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/03/12/WCFChannelMiniBookRevived.aspx</link>
      <pubDate>Thu, 12 Mar 2009 10:25:56 GMT</pubDate>
      <description>&lt;p&gt;
You want to know the ins and outs of WCF at a glance – then the mini-book is a winner.&lt;br&gt;
(Just let this puppy fall out of your back pocket in the office and watch the guys
instantly want to Sync up their Complete Series of Star Trek with you…)
&lt;/p&gt;
&lt;p&gt;
Seriously – great guide, easy to flick through and welcome to another 8 million lines
of code you thought you could live without :)
&lt;/p&gt;
&lt;p&gt;
Thanks to the efforts of &lt;strong&gt;Cliff Simpkins and his team&lt;/strong&gt; for their dedication
on this.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;6 Chapters + Code….are you man enough?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=netfxsamples&amp;amp;DownloadId=4962" href="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=netfxsamples&amp;amp;DownloadId=4962"&gt;http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=netfxsamples&amp;amp;DownloadId=4962&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="WCF Channel Stack" border="0" alt="WCF Channel Stack" align="left" src="http://blogs.breezetraining.com.au/mickb/content/WCFChannelMiniBookrevived_12D5E/clip_image002.gif" width="407" height="297"&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=657bd288-e488-4f09-88ec-b491552614f0" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,657bd288-e488-4f09-88ec-b491552614f0.aspx</comments>
      <category>.NET Developer</category>
      <category>BizTalk</category>
      <category>Tips</category>
      <category>WinWF</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=58783f92-d80e-42d3-baf4-166d3b4a54f9</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,58783f92-d80e-42d3-baf4-166d3b4a54f9.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,58783f92-d80e-42d3-baf4-166d3b4a54f9.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=58783f92-d80e-42d3-baf4-166d3b4a54f9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I just came across a great demonstration of a fantastic new piece of kit.<br /><br /><strong>Siftables </strong>they're called (shot this month) that 'interact' and play
with each other on a desk, table what ever.
</p>
        <p>
CubeWorld guys was something I'd had my eye on for a while.....<br /><br />
 <img src="http://www.radicauk.com/cubeworld/cubes1.gif" /><br /><br />
Siftables takes it far beyond the next level, check it out for yourself.
</p>
        <p>
          <a title="http://www.ted.com/index.php/talks/david_merrill_demos_siftables_the_smart_blocks.html" href="http://www.ted.com/index.php/talks/david_merrill_demos_siftables_the_smart_blocks.html">http://www.ted.com/index.php/talks/david_merrill_demos_siftables_the_smart_blocks.html</a>
          <br />
          <br />
          <a href="http://blogs.breezetraining.com.au/mickb/content/SiftablesLegoBroughtintotheNewAge_9B96/image.png">
            <img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/SiftablesLegoBroughtintotheNewAge_9B96/image_thumb.png" width="244" height="182" />
          </a>
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=58783f92-d80e-42d3-baf4-166d3b4a54f9" />
      </body>
      <title>Siftables - Lego Brought into the New Age</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,58783f92-d80e-42d3-baf4-166d3b4a54f9.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/02/18/SiftablesLegoBroughtIntoTheNewAge.aspx</link>
      <pubDate>Wed, 18 Feb 2009 00:04:48 GMT</pubDate>
      <description>&lt;p&gt;
I just came across a great demonstration of a fantastic new piece of kit.&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Siftables &lt;/strong&gt;they're called (shot this month) that 'interact' and play
with each other on a desk, table what ever.
&lt;/p&gt;
&lt;p&gt;
CubeWorld guys was something I'd had my eye on for a while.....&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&lt;img src="http://www.radicauk.com/cubeworld/cubes1.gif"&gt; 
&lt;br&gt;
&lt;br&gt;
Siftables takes it far beyond the next level, check it out for yourself.
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.ted.com/index.php/talks/david_merrill_demos_siftables_the_smart_blocks.html" href="http://www.ted.com/index.php/talks/david_merrill_demos_siftables_the_smart_blocks.html"&gt;http://www.ted.com/index.php/talks/david_merrill_demos_siftables_the_smart_blocks.html&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/SiftablesLegoBroughtintotheNewAge_9B96/image.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/SiftablesLegoBroughtintotheNewAge_9B96/image_thumb.png" width="244" height="182"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=58783f92-d80e-42d3-baf4-166d3b4a54f9" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,58783f92-d80e-42d3-baf4-166d3b4a54f9.aspx</comments>
      <category>General</category>
      <category>TechTalk</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=bb369219-6b19-423c-a9ce-01986577a2d5</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,bb369219-6b19-423c-a9ce-01986577a2d5.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,bb369219-6b19-423c-a9ce-01986577a2d5.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=bb369219-6b19-423c-a9ce-01986577a2d5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hi folks, 
</p>
        <p>
Just in case you want to be able to get an excel spreadsheet listing all the possible
errors or so, for monitoring and managing your production BizTalk environment (great
for rules and monitoring from MOM for e.g.). 
</p>
        <p>
  
</p>
        <p>
I came across this - <a href="http://blog.paul.somers.com/blog/_archives/2007/4/27/2909713.html">http://blog.paul.somers.com/blog/_archives/2007/4/27/2909713.html</a></p>
        <p>
  
</p>
        <p>
Written by fellow BizTalk MVP - thanks Paul!
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=bb369219-6b19-423c-a9ce-01986577a2d5" />
      </body>
      <title>Complete List of BizTalk Errors and their EventIDs</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,bb369219-6b19-423c-a9ce-01986577a2d5.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/01/08/CompleteListOfBizTalkErrorsAndTheirEventIDs.aspx</link>
      <pubDate>Thu, 08 Jan 2009 23:09:53 GMT</pubDate>
      <description>&lt;p&gt;
Hi folks, 
&lt;p&gt;
Just in case you want to be able to get an excel spreadsheet listing all the possible
errors or so, for monitoring and managing your production BizTalk environment (great
for rules and monitoring from MOM for e.g.). 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
I came across this - &lt;a href="http://blog.paul.somers.com/blog/_archives/2007/4/27/2909713.html"&gt;http://blog.paul.somers.com/blog/_archives/2007/4/27/2909713.html&lt;/a&gt; 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
Written by fellow BizTalk MVP - thanks Paul!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=bb369219-6b19-423c-a9ce-01986577a2d5" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,bb369219-6b19-423c-a9ce-01986577a2d5.aspx</comments>
      <category>BizTalk</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=a0e0f91a-8052-4935-907c-669ac496e4eb</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,a0e0f91a-8052-4935-907c-669ac496e4eb.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,a0e0f91a-8052-4935-907c-669ac496e4eb.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=a0e0f91a-8052-4935-907c-669ac496e4eb</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/InstallingBizTalkRFIDonaDCOhatlast_C91D/image.png">
            <img title="Cant do" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="184" alt="Cant do" src="http://blogs.breezetraining.com.au/mickb/content/InstallingBizTalkRFIDonaDCOhatlast_C91D/image_thumb.png" width="378" border="0" />
          </a>
        </p>
        <p>
          <strong>“The product cannot be installed on this machine since it seems to be a domain
controller”</strong>
        </p>
        <p>
What a start to 2009!!! – the above dreaded message when trying to (in this case)
install <strong>BizTalk RFID</strong> on a <strong>DC</strong>.<br />
For me – this happens quite a bit, as I’m building up a proof of concept, a demo,
something to show and present with.
</p>
        <p>
I always…always….forget to install BizTalk RFID bits before I promote to a DC (this
technique can also cause security acct issues after the machine has been promoted
to a DC – depends on how the authentication is setup etc)
</p>
        <p>
          <strong>NOTE: BTW – Installing BizTalk RFID on a DC is NOT SUPPORTED</strong> (had
to put that one in their – keeps both sides happy)
</p>
        <p>
For love or money I’ve bounced this question around for a while and come up empty,
until…today!!! Niklas Engfelt<strong> a senior MS support engineer came to my rescue </strong>(he
famously provided those thoughts from left field which were on the money! Big thank
you Niklas)
</p>
        <p>
He suggested grabbing <strong>Orca from the Platform SDK</strong> and having a browse
through – I’d used HEX editors, disassembled files, attached process monitors during
installs and looked through any config file with a fine tooth comb…but I’d never tried
a <strong>MSI Editor</strong>.
</p>
        <p>
          <strong>The steps to Enlightenment: </strong>(changing the installer validation conditions)
</p>
        <ol>
          <li>
Grab a download of <a href="http://www.technipages.com/download-orca-msi-editor.html" target="_blank">Orca
from here</a> (I didn’t have the platform SDK currently installed and wasn’t about
to install 1.2 GB worth either) and follow default install prompts.</li>
          <li>
If you haven’t done so already copy the <strong>RFID_x86 </strong>or <strong>RFID_x64</strong> folders
off the install media to a temp folder nearby (note: sometimes on Win2K8, the system
prevents copied files from being accessed until an admin comes along and says ‘these
are ok’ by going into File-&gt;Properties on each file. It’s weird I know, but I get
it every now and then)</li>
          <li>
            <strong>Locate the RFIDServices.msi</strong> under the RFID folder and you’re ready
to go.</li>
          <li>
            <strong>Launch Orca </strong>and <strong>open RFIDServices.msi </strong>to get something
like:</li>
          <li>
            <a href="http://blogs.breezetraining.com.au/mickb/content/InstallingBizTalkRFIDonaDCOhatlast_C91D/image_3.png" target="_blank">
              <img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="395" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/InstallingBizTalkRFIDonaDCOhatlast_C91D/image_thumb_3.png" width="621" border="0" />
            </a>
            <br />
          </li>
          <li>
Under the <strong>Tables Column</strong> select <strong>LaunchCondition </strong>and
drop the <strong>2nd Row </strong>as follows:<br /></li>
          <li>
            <a href="http://blogs.breezetraining.com.au/mickb/content/InstallingBizTalkRFIDonaDCOhatlast_C91D/image_4.png">
              <img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="404" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/InstallingBizTalkRFIDonaDCOhatlast_C91D/image_thumb_4.png" width="724" border="0" />
            </a>
            <br />
          </li>
          <li>
            <strong>Drop the Row and Save the MSI file again.</strong>
            <br />
          </li>
          <li>
Run Setup.exe as per normal.</li>
        </ol>
        <p>
Oh what a sweet day!
</p>
        <p>
p.s. I’m sure you’d be able to employ this technique onto other MSI’s causing grief.
</p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
Mick
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=a0e0f91a-8052-4935-907c-669ac496e4eb" />
      </body>
      <title>Installing BizTalk RFID on a DC!!! Oh at last!!!</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,a0e0f91a-8052-4935-907c-669ac496e4eb.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/01/05/InstallingBizTalkRFIDOnADCOhAtLast.aspx</link>
      <pubDate>Mon, 05 Jan 2009 03:18:43 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/InstallingBizTalkRFIDonaDCOhatlast_C91D/image.png"&gt;&lt;img title="Cant do" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="184" alt="Cant do" src="http://blogs.breezetraining.com.au/mickb/content/InstallingBizTalkRFIDonaDCOhatlast_C91D/image_thumb.png" width="378" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;“The product cannot be installed on this machine since it seems to be a domain
controller”&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
What a start to 2009!!! – the above dreaded message when trying to (in this case)
install &lt;strong&gt;BizTalk RFID&lt;/strong&gt; on a &lt;strong&gt;DC&lt;/strong&gt;.&lt;br&gt;
For me – this happens quite a bit, as I’m building up a proof of concept, a demo,
something to show and present with.
&lt;/p&gt;
&lt;p&gt;
I always…always….forget to install BizTalk RFID bits before I promote to a DC (this
technique can also cause security acct issues after the machine has been promoted
to a DC – depends on how the authentication is setup etc)
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;NOTE: BTW – Installing BizTalk RFID on a DC is NOT SUPPORTED&lt;/strong&gt; (had
to put that one in their – keeps both sides happy)
&lt;/p&gt;
&lt;p&gt;
For love or money I’ve bounced this question around for a while and come up empty,
until…today!!! Niklas Engfelt&lt;strong&gt; a senior MS support engineer came to my rescue &lt;/strong&gt;(he
famously provided those thoughts from left field which were on the money! Big thank
you Niklas)
&lt;/p&gt;
&lt;p&gt;
He suggested grabbing &lt;strong&gt;Orca from the Platform SDK&lt;/strong&gt; and having a browse
through – I’d used HEX editors, disassembled files, attached process monitors during
installs and looked through any config file with a fine tooth comb…but I’d never tried
a &lt;strong&gt;MSI Editor&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The steps to Enlightenment: &lt;/strong&gt;(changing the installer validation conditions)
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Grab a download of &lt;a href="http://www.technipages.com/download-orca-msi-editor.html" target="_blank"&gt;Orca
from here&lt;/a&gt; (I didn’t have the platform SDK currently installed and wasn’t about
to install 1.2 GB worth either) and follow default install prompts.&lt;/li&gt;
&lt;li&gt;
If you haven’t done so already copy the &lt;strong&gt;RFID_x86 &lt;/strong&gt;or &lt;strong&gt;RFID_x64&lt;/strong&gt; folders
off the install media to a temp folder nearby (note: sometimes on Win2K8, the system
prevents copied files from being accessed until an admin comes along and says ‘these
are ok’ by going into File-&amp;gt;Properties on each file. It’s weird I know, but I get
it every now and then)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Locate the RFIDServices.msi&lt;/strong&gt; under the RFID folder and you’re ready
to go.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Launch Orca &lt;/strong&gt;and &lt;strong&gt;open RFIDServices.msi &lt;/strong&gt;to get something
like:&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/InstallingBizTalkRFIDonaDCOhatlast_C91D/image_3.png" target="_blank"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="395" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/InstallingBizTalkRFIDonaDCOhatlast_C91D/image_thumb_3.png" width="621" border="0"&gt;&lt;/a&gt; 
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Under the &lt;strong&gt;Tables Column&lt;/strong&gt; select &lt;strong&gt;LaunchCondition &lt;/strong&gt;and
drop the &lt;strong&gt;2nd Row &lt;/strong&gt;as follows:&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/InstallingBizTalkRFIDonaDCOhatlast_C91D/image_4.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="404" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/InstallingBizTalkRFIDonaDCOhatlast_C91D/image_thumb_4.png" width="724" border="0"&gt;&lt;/a&gt; 
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Drop the Row and Save the MSI file again.&lt;/strong&gt;
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Run Setup.exe as per normal.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Oh what a sweet day!
&lt;/p&gt;
&lt;p&gt;
p.s. I’m sure you’d be able to employ this technique onto other MSI’s causing grief.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&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=a0e0f91a-8052-4935-907c-669ac496e4eb" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,a0e0f91a-8052-4935-907c-669ac496e4eb.aspx</comments>
      <category>.NET Developer</category>
      <category>BizTalk</category>
      <category>BizTalk/RFID</category>
      <category>General</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=b5e5e7c7-ab5a-4629-b892-a29d56baafed</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,b5e5e7c7-ab5a-4629-b892-a29d56baafed.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,b5e5e7c7-ab5a-4629-b892-a29d56baafed.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=b5e5e7c7-ab5a-4629-b892-a29d56baafed</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've been getting this question quite alot recently, "BizTalk accessing SQL in another
domain...", "SharePoint accessing Webservices via NTLM auth only in another domain..."
etc.
</p>
        <p>
Most of the time we can find a box to stick in a User Name/Password somewhere (e.g.
File Adapter in BTS) that will more than likely solve the problem.
</p>
        <p>
For the cases where you can't or there's some complicated RPC session (connect to <a href="file://\\server\IPC$">\\server\IPC$</a> share)
that's setup first (several MMC snap-ins for e.g.), then you're given access, <strong>"It's
so much easier if we're all part of the same domain..."</strong> speech you give yourself
over and over again....then I may have a technique to help you.
</p>
        <p>
          <strong>Basically we force our Windows to always use specific credentials when communicating
with the remote machine X</strong> - on a per user by user basis.
</p>
        <p>
It goes something like this:
</p>
        <p>
(1) login to the local server in question under the acct that is needing access (e.g.
svc_acct) - this is usually the 'Web App Pool identity' or the 'BizTalk Service Account'
(<strong>generally NOT your day to day account</strong>) 
</p>
        <p>
(2) under control panel -&gt; Stored User Names and Passwords (on Vista this is 'User
Accounts')<br /><br /><a href="http://blogs.breezetraining.com.au/mickb/content/ForcingWindowsAuthenticationAcrossDomain_B6DD/user11.jpg"><img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="Stored User Names and Passwords" src="http://blogs.breezetraining.com.au/mickb/content/ForcingWindowsAuthenticationAcrossDomain_B6DD/user11_thumb.jpg" width="617" height="484" /></a></p>
        <p>
(3) Then add the credentials to suit. 
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/ForcingWindowsAuthenticationAcrossDomain_B6DD/user21.jpg">
            <img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="user2[1]" src="http://blogs.breezetraining.com.au/mickb/content/ForcingWindowsAuthenticationAcrossDomain_B6DD/user21_thumb.jpg" width="619" height="484" />
          </a>
        </p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/ForcingWindowsAuthenticationAcrossDomain_B6DD/user32.jpg">
            <img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="user3[2]" src="http://blogs.breezetraining.com.au/mickb/content/ForcingWindowsAuthenticationAcrossDomain_B6DD/user32_thumb.jpg" width="619" height="484" />
          </a>
        </p>
        <p>
Viola - happy NTLM-ing &amp; Merry Christmas....... 
</p>
        <p>
  
</p>
        <p>
Mick. <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=b5e5e7c7-ab5a-4629-b892-a29d56baafed" /></p>
      </body>
      <title>Forcing Windows Authentication Across Domains</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,b5e5e7c7-ab5a-4629-b892-a29d56baafed.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2008/12/19/ForcingWindowsAuthenticationAcrossDomains.aspx</link>
      <pubDate>Fri, 19 Dec 2008 09:59:47 GMT</pubDate>
      <description>&lt;p&gt;
I've been getting this question quite alot recently, "BizTalk accessing SQL in another
domain...", "SharePoint accessing Webservices via NTLM auth only in another domain..."
etc.
&lt;/p&gt;
&lt;p&gt;
Most of the time we can find a box to stick in a User Name/Password somewhere (e.g.
File Adapter in BTS) that will more than likely solve the problem.
&lt;/p&gt;
&lt;p&gt;
For the cases where you can't or there's some complicated RPC session (connect to &lt;a href="file://\\server\IPC$"&gt;\\server\IPC$&lt;/a&gt; share)
that's setup first (several MMC snap-ins for e.g.), then you're given access, &lt;strong&gt;"It's
so much easier if we're all part of the same domain..."&lt;/strong&gt; speech you give yourself
over and over again....then I may have a technique to help you.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Basically we force our Windows to always use specific credentials when communicating
with the remote machine X&lt;/strong&gt; - on a per user by user basis.
&lt;/p&gt;
&lt;p&gt;
It goes something like this:
&lt;/p&gt;
&lt;p&gt;
(1) login to the local server in question under the acct that is needing access (e.g.
svc_acct) - this is usually the 'Web App Pool identity' or the 'BizTalk Service Account'
(&lt;strong&gt;generally NOT your day to day account&lt;/strong&gt;) 
&lt;p&gt;
(2) under control panel -&amp;gt; Stored User Names and Passwords (on Vista this is 'User
Accounts')&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/ForcingWindowsAuthenticationAcrossDomain_B6DD/user11.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="Stored User Names and Passwords" src="http://blogs.breezetraining.com.au/mickb/content/ForcingWindowsAuthenticationAcrossDomain_B6DD/user11_thumb.jpg" width="617" height="484"&gt;&lt;/a&gt; 
&lt;p&gt;
(3) Then add the credentials to suit. 
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/ForcingWindowsAuthenticationAcrossDomain_B6DD/user21.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="user2[1]" src="http://blogs.breezetraining.com.au/mickb/content/ForcingWindowsAuthenticationAcrossDomain_B6DD/user21_thumb.jpg" width="619" height="484"&gt;&lt;/a&gt; 
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/ForcingWindowsAuthenticationAcrossDomain_B6DD/user32.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="user3[2]" src="http://blogs.breezetraining.com.au/mickb/content/ForcingWindowsAuthenticationAcrossDomain_B6DD/user32_thumb.jpg" width="619" height="484"&gt;&lt;/a&gt; 
&lt;p&gt;
Viola - happy NTLM-ing &amp;amp; Merry Christmas....... 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
Mick. &lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=b5e5e7c7-ab5a-4629-b892-a29d56baafed" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,b5e5e7c7-ab5a-4629-b892-a29d56baafed.aspx</comments>
      <category>General</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=5f48acf0-5f34-4e5e-83c5-64e34f51c711</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,5f48acf0-5f34-4e5e-83c5-64e34f51c711.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,5f48acf0-5f34-4e5e-83c5-64e34f51c711.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=5f48acf0-5f34-4e5e-83c5-64e34f51c711</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you've ever had VPCs that you just want to run and use, irrespective of the actual
host time add/edit this little gem to the corresponding *.VMC file
</p>
        <p>
&lt;integration&gt;<br />
    &lt;microsoft&gt;<br />
        &lt;mouse&gt;<br />
            &lt;allow type="boolean"&gt;true&lt;/allow&gt;<br />
        &lt;/mouse&gt;<br />
        &lt;components&gt;<br />
            &lt;host_time_sync&gt;<br />
               
&lt;enabled type="boolean"&gt;false&lt;/enabled&gt;<br />
            &lt;/host_time_sync&gt;<br />
        &lt;/components&gt;
</p>
        <p>
         ...... - other entries here......<br />
    &lt;/microsoft&gt;<br />
&lt;/integration&gt;
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=5f48acf0-5f34-4e5e-83c5-64e34f51c711" />
      </body>
      <title>Stopping VPCs Syncing time with their Hosts</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,5f48acf0-5f34-4e5e-83c5-64e34f51c711.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2008/12/19/StoppingVPCsSyncingTimeWithTheirHosts.aspx</link>
      <pubDate>Fri, 19 Dec 2008 07:56:26 GMT</pubDate>
      <description>&lt;p&gt;
If you've ever had VPCs that you just want to run and use, irrespective of the actual
host time add/edit this little gem to the corresponding *.VMC file
&lt;/p&gt;
&lt;p&gt;
&amp;lt;integration&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;microsoft&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mouse&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;allow type="boolean"&amp;gt;true&amp;lt;/allow&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/mouse&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;components&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;host_time_sync&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;enabled type="boolean"&amp;gt;false&amp;lt;/enabled&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/host_time_sync&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/components&amp;gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...... - other entries here......&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/microsoft&amp;gt;&lt;br&gt;
&amp;lt;/integration&amp;gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=5f48acf0-5f34-4e5e-83c5-64e34f51c711" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,5f48acf0-5f34-4e5e-83c5-64e34f51c711.aspx</comments>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=7186d499-5f19-4315-b790-9e1675d7d634</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,7186d499-5f19-4315-b790-9e1675d7d634.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,7186d499-5f19-4315-b790-9e1675d7d634.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=7186d499-5f19-4315-b790-9e1675d7d634</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <b>
            <img alt="Microsoft BizTalk Server" src="https://connect.microsoft.com/siteimages/0862d686-2911-4ed8-a275-8574bc4c0f7a.jpg" width="208" height="53" />
          </b>
        </p>
        <p>
On the 8th of December 2008 - Microsoft announced general availability of BizTalk
2009 Beta.
</p>
        <p>
Here's the details
</p>
        <p>
          <font size="2">
            <strong>Public beta of BizTalk Server 2009</strong>.  Available
at <a target="_blank" href="https://connect.microsoft.com/site/sitehome.aspx?SiteID=218">https://connect.microsoft.com/site/sitehome.aspx?SiteID=218</a><br /><br />
1.       This beta is community supported.  The
TechNet forums will be the primary place for support - <a target="_blank" href="http://forums.microsoft.com/TechNet/ShowForum.aspx?ForumID=1470&amp;SiteID=17">http://forums.microsoft.com/TechNet/ShowForum.aspx?ForumID=1470&amp;SiteID=17</a><br /><br />
2.       General availability of BizTalk Server 2009
is still scheduled for the first-half of 2009 - we don't have a further update at
this time.
</font>
        </p>
        <ul>
          <li>
            <div class="PlainText">Availability of BizTalk RFID Mobile for all new customers and
current customers with SA
</div>
          </li>
          <li>
            <div class="PlainText">ESB Guidance 2.0 will also be available - <a target="_blank" href="http://msdn.microsoft.com/esb">http://msdn.microsoft.com/esb</a><br /></div>
          </li>
        </ul>
        <p class="PlainText">
For more information go to:
</p>
        <ul>
          <li>
            <div class="PlainText">BizTalk Website: <a target="_blank" href="http://www.microsoft.com/biztalk/">http://www.microsoft.com/biztalk/</a></div>
          </li>
          <li>
            <div class="PlainText">BizTalk Server Team Blog: <a target="_blank" href="http://blogs.msdn.com/biztalk_server_team_blog/">http://blogs.msdn.com/biztalk_server_team_blog/</a></div>
          </li>
          <li>
            <div class="PlainText">RFID Website: <a target="_blank" href="http://www.microsoft.com/biztalk/en/us/rfid.aspx">http://www.microsoft.com/biztalk/en/us/rfid.aspx</a></div>
          </li>
          <li>
            <div class="PlainText">Steven Martin, Senior Director, Developer Platform Division
blog: <a target="_blank" href="http://blogs.msdn.com/stevemar/default.aspx">http://blogs.msdn.com/stevemar/default.aspx</a><br /></div>
          </li>
        </ul>
        <p class="PlainText">
          <strong>Key Areas</strong>
          <br />
          <br />
          <strong>BizTalk Server 2009 Beta:</strong>
        </p>
        <strong>
          <ul>
            <li>
              <div class="PlainText">
              </div>
            </li>
          </ul>
        </strong>BizTalk Server 2009 is Microsoft's core enterprise connectivity solution,
which releases on schedule of every two years, and continues to extend capabilities
to core process management technologies both in and outside of the corporate boundaries.
<li><div class="PlainText">Microsoft continues to listen to its BizTalk Server 2009 customers
and will optimize feedback from the beta release for future BizTalk Server releases
</div></li><li><div class="PlainText"><strong>RFID Mobile:</strong></div></li><ul><li><div class="PlainText">BizTalk RFID Mobile extends RFID to the mobility industry to
demonstrate strong customer support with RFID intelligence on devices running on Win
CE/Win Mobile enabling businesses to make decisions in real-time.
</div></li></ul><p class="PlainText"><strong>FAQ<br /></strong><br /><strong>Q: What did Microsoft announce today?<br /></strong><br />
A: Today at the Gartner Application Architecture, Development and Integration (AADI)
Summit, Microsoft Corp. announced the general availability of BizTalk RFID Mobile
and BizTalk RFID Standards Pack, as well as the first public beta of BizTalk Server
2009 for download and an updated version of its architecture patterns and practices
guidance, Enterprise Service Bus (ESB) Guidance 2.0. Microsoft has made these investments
in the BizTalk Server product family to enable customers to more efficiently connect
applications and to provide customers with a clearer, actionable view into their day-to-day
operations.<br /><br /><strong>Q. When will the products be available?</strong><br /><br />
A: <strong>The BizTalk Server 2009 public beta and ESB Guidance 2.0 CTP are available
now at </strong><a target="_blank" href="http://www.codeplex.com/esb"><strong>http://www.codeplex.com/esb</strong></a><strong> for
community feedback.</strong> The final products are slated to ship in the first half
of CY09.  Evaluation versions of BizTalk RFID Mobile and the BizTalk RFID Standards
Pack are available at <a target="_blank" href="http://www.microsoft.com/biztalk/en/us/rfid-mobile.aspx">http://www.microsoft.com/biztalk/en/us/rfid-mobile.aspx</a> and <a target="_blank" href="http://www.microsoft.com/biztalk/en/us/rfid.aspx">http://www.microsoft.com/biztalk/en/us/rfid.aspx</a> respectively.<br /><br /><strong>Q: What new functionally will be delivered in BizTalk Server 2009?<br /></strong><br />
A:  BizTalk Server 2009 supports the latest Microsoft platform technologies,
including Windows Server 2008, Visual Studio 2008 SP1, SQL Server 2008 and the .NET
Framework 3.5 SP1. These platform updates enable greater scalability and reliability,
and many advances in the latest developer tools.<br /><br />
This BizTalk Server release will also deliver additional customer-requested capabilities
around enterprise connectivity, including:
</p><ul><li><div class="PlainText">New web service registry capabilities with support for UDDI
(Universal Description Discovery and Integration) version 3.0
</div></li><li><div class="PlainText">Enhanced service enablement of applications (through new and
enhanced adapters for LOB applications, databases, and legacy/host systems)
</div></li><li><div class="PlainText">Enhanced service enablement of "edge" devices through BizTalk
RFID Mobile
</div></li><li><div class="PlainText">Enhanced interoperability and connectivity support for industry
protocols (like SWIFT, EDI, HL7 etc)
</div></li><li><div class="PlainText">SOA patterns and best practices guidance to assist our customer's
implementations<br /></div></li></ul><p class="PlainText">
You can find more details about BizTalk Server 2009 at <a target="_blank" href="http://www.microsoft.com/biztalk/en/us/roadmap.aspx">http://www.microsoft.com/biztalk/en/us/roadmap.aspx</a><br /><br /><strong>Q: What is next for BizTalk Server after BizTalk Server 2009?<br /></strong><br />
A:  The charter of BizTalk Server remains consistent - it allows the Microsoft
application platform to connect  and interoperate with other kinds of systems
- LOB systems, legacy systems, smart devices (RFID), and B2B integration (SWIFT, EDI,
etc.).  This has been the focus of BizTalk Server since it was initially released
back in 2000 and continues to be its charter going forward.<br /><br />
At this point it's too early to comment on the specific features that will be part
of the BizTalk Server "7" release; however, you can find details about general priorities
for BizTalk Server at <a target="_blank" href="http://www.microsoft.com/biztalk/en/us/roadmap.aspx">http://www.microsoft.com/biztalk/en/us/roadmap.aspx</a>. 
We're in the middle of early planning on BizTalk Server "7" and will have more information
to share about the specific scope of that release.<br /><br /><strong>Q: What is BizTalk RFID Mobile?<br /></strong><br />
A: BizTalk RFID Mobile is an RFID platform for Windows Mobile and CE. BizTalk RFID
Mobile consists of a runtime engine, tools, and components to develop, deploy, and
manage RFID solutions on mobile devices.  In combination with BizTalk Server
RFID, the mobility release provides a platform for real-time decision making. 
BizTalk RFID Mobile extends management and event processing to mobile devices and
allows communication between the server and mobile platforms.<br /><br /><strong>Q. What is the price and licensing for BizTalk RFID Mobile?<br /></strong><br />
A: BizTalk RFID Mobile is available to all BizTalk Server 2006 R2 customers with Software
Assurance as well as new BizTalk Server 2006 R2 customers who purchase licenses with
Software Assurance. Our customers and partners told us that mobile RFID offerings
are used in conjunction with a server product.  As a result, we included BizTalk
RFID Mobile with each edition of BizTalk so that our customers can achieve the benefits
of RFID mobile solutions without incurring undue costs. For BizTalk Server customers
with Software Assurance this is a great opportunity to adopt a new product that can
deliver an economic value today. When BizTalk Server 2009 becomes generally available,
the customers will be able to acquire BizTalk RFID Mobile without software assurance.<br /><br /><strong>Q: Is BizTalk RFID Mobile dependant on BizTalk Server? Can't I just use a
free solution that's available rather than use BizTalk Server?<br /></strong><br />
A:  BizTalk RFID Mobile and BizTalk Server are better together.  Using BizTalk
RFID Mobile and BizTalk Server in tandem you can capture data on a mobile device and
then send the RFID data back to BizTalk Server for filtering and the application of
business rules.  There is no need to rewrite complex event filtering and business
rule logic on the device as that functionality is already provided by BizTalk Server. 
We have taken a platform approach that will ensure that you can write your mobile
applications once and run them on multiple devices in addition to local device management,
store and forward, and SQL Sink capabilities, which reduce your TCO.<br /><br />
BizTalk RFID Mobile and BizTalk RFID Standards Pack are a standard part of all editions
of BizTalk Server 2009.  Given the intense interest in these offerings from our
existing and new customers we decided to make them available now to BizTalk Server
2006 R2 customers with software assurance as well as new BizTalk Server 2006 R2 customers
who purchase licenses with Software Assurance.<br /><br />
Rather than charge a per device fee, we included BizTalk RFID Mobile with all editions
of BizTalk because we wanted to make it easier for customers to adopt mobile RFID
solutions.  RFID is a fundamental enabler for business processes and should not
be viewed as an isolated silo, which is why we have included our fixed and mobile
RFID offerings standard in all editions of BizTalk.<br /><br /><strong>Q: What is ESB Guidance?<br /></strong><br />
A: The Microsoft ESB Guidance (first released in November 2007) provides architectural
guidance, patterns, practices, and a set of BizTalk Server R2 and .NET components
to simplify the development of an Enterprise Service Bus (ESB) on the Microsoft platform
and to allow Microsoft customers to extend their own messaging and integration solutions. 
For additional information on the current 1.0 version please see <a target="_blank" href="http://msdn.microsoft.com/en-us/library/cc487894.aspx">http://msdn.microsoft.com/en-us/library/cc487894.aspx</a>.<br /><br />
We are announcing today the first public CTP release of the Microsoft ESB Guidance
2.0 for Microsoft BizTalk Server 2009. It incorporates many new and expanded features
include the following:<br /></p><ul><li><div class="PlainText"><strong>New samples:</strong></div></li><ul><li><div class="PlainText">SSO Configuration provider for Enterprise Library 4.0
</div></li><li><div class="PlainText">Multiple Web Service Execution Sample
</div></li><li><div class="PlainText">Exception Handling Service Sample<br /></div></li></ul><li><div class="PlainText"><strong>New ESB Web services:</strong></div></li><ul><li><div class="PlainText">Generic Itinerary Services ( no itinerary header required)
</div></li><li><div class="PlainText">New core features:
</div></li><ul><li><div class="PlainText">Alignment with Microsoft BizTalk Server 2009 ( Beta )
</div></li><ul><li><div class="PlainText">ESB Configuration tool
</div></li><li><div class="PlainText">Centralized itinerary store
</div></li><li><div class="PlainText">Itinerary resolver components
</div></li><li><div class="PlainText">Itinerary forwarder pipeline component
</div></li><li><div class="PlainText">Itinerary selector pipeline component
</div></li><li><div class="PlainText">Itinerary designer
</div></li><li><div class="PlainText">Centralized configuration uses Enterprise Library 4.0 Configuration
Block
</div></li><li><div class="PlainText">Centralized caching uses Enterprise Library 4.0 Caching Block
</div></li><li><div class="PlainText">Multiple service invocation using both messaging and orchestrations
</div></li><li><div class="PlainText">Itinerary BAM tracking
</div></li><li><div class="PlainText">Improved ESB Core engine and itinerary execution<br /></div></li></ul></ul></ul></ul><img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=7186d499-5f19-4315-b790-9e1675d7d634" /></body>
      <title>BizTalk Server 2009 Beta now available!</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,7186d499-5f19-4315-b790-9e1675d7d634.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2008/12/10/BizTalkServer2009BetaNowAvailable.aspx</link>
      <pubDate>Wed, 10 Dec 2008 06:55:57 GMT</pubDate>
      <description>&lt;p&gt;
&lt;b&gt;&lt;img alt="Microsoft BizTalk Server" src="https://connect.microsoft.com/siteimages/0862d686-2911-4ed8-a275-8574bc4c0f7a.jpg" width="208" height="53"&gt;&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;
On the 8th of December 2008 - Microsoft announced general availability of BizTalk
2009 Beta.
&lt;/p&gt;
&lt;p&gt;
Here's the details
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;&lt;strong&gt;Public beta of BizTalk Server 2009&lt;/strong&gt;.&amp;nbsp; Available
at &lt;a target="_blank" href="https://connect.microsoft.com/site/sitehome.aspx?SiteID=218"&gt;https://connect.microsoft.com/site/sitehome.aspx?SiteID=218&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
1.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This beta is community supported.&amp;nbsp; The
TechNet forums will be the primary place for support - &lt;a target="_blank" href="http://forums.microsoft.com/TechNet/ShowForum.aspx?ForumID=1470&amp;amp;SiteID=17"&gt;http://forums.microsoft.com/TechNet/ShowForum.aspx?ForumID=1470&amp;amp;SiteID=17&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
2.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; General availability of BizTalk Server 2009
is still scheduled for the first-half of 2009 - we don't have a further update at
this time.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Availability of BizTalk RFID Mobile for all new customers and
current customers with SA
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;ESB Guidance 2.0 will also be available - &lt;a target="_blank" href="http://msdn.microsoft.com/esb"&gt;http://msdn.microsoft.com/esb&lt;/a&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="PlainText"&gt;
For more information go to:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;BizTalk Website: &lt;a target="_blank" href="http://www.microsoft.com/biztalk/"&gt;http://www.microsoft.com/biztalk/&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;BizTalk Server Team Blog: &lt;a target="_blank" href="http://blogs.msdn.com/biztalk_server_team_blog/"&gt;http://blogs.msdn.com/biztalk_server_team_blog/&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;RFID Website: &lt;a target="_blank" href="http://www.microsoft.com/biztalk/en/us/rfid.aspx"&gt;http://www.microsoft.com/biztalk/en/us/rfid.aspx&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Steven Martin, Senior Director, Developer Platform Division
blog: &lt;a target="_blank" href="http://blogs.msdn.com/stevemar/default.aspx"&gt;http://blogs.msdn.com/stevemar/default.aspx&lt;/a&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="PlainText"&gt;
&lt;strong&gt;Key Areas&lt;/strong&gt;
&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;BizTalk Server 2009 Beta:&lt;/strong&gt;
&lt;/p&gt;
&lt;strong&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;
&lt;/strong&gt;BizTalk Server 2009 is Microsoft's core enterprise connectivity solution,
which releases on schedule of every two years, and continues to extend capabilities
to core process management technologies both in and outside of the corporate boundaries.&gt;
&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Microsoft continues to listen to its BizTalk Server 2009 customers
and will optimize feedback from the beta release for future BizTalk Server releases
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;&lt;strong&gt;RFID Mobile:&lt;/strong&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;BizTalk RFID Mobile extends RFID to the mobility industry to
demonstrate strong customer support with RFID intelligence on devices running on Win
CE/Win Mobile enabling businesses to make decisions in real-time.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&gt;
&lt;p class="PlainText"&gt;
&lt;strong&gt;FAQ&lt;br&gt;
&lt;/strong&gt;
&lt;br&gt;
&lt;strong&gt;Q: What did Microsoft announce today?&lt;br&gt;
&lt;/strong&gt;
&lt;br&gt;
A: Today at the Gartner Application Architecture, Development and Integration (AADI)
Summit, Microsoft Corp. announced the general availability of BizTalk RFID Mobile
and BizTalk RFID Standards Pack, as well as the first public beta of BizTalk Server
2009 for download and an updated version of its architecture patterns and practices
guidance, Enterprise Service Bus (ESB) Guidance 2.0. Microsoft has made these investments
in the BizTalk Server product family to enable customers to more efficiently connect
applications and to provide customers with a clearer, actionable view into their day-to-day
operations.&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Q. When will the products be available?&lt;/strong&gt;
&lt;br&gt;
&lt;br&gt;
A: &lt;strong&gt;The BizTalk Server 2009 public beta and ESB Guidance 2.0 CTP are available
now at &lt;/strong&gt;&lt;a target="_blank" href="http://www.codeplex.com/esb"&gt;&lt;strong&gt;http://www.codeplex.com/esb&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; for
community feedback.&lt;/strong&gt; The final products are slated to ship in the first half
of CY09.&amp;nbsp; Evaluation versions of BizTalk RFID Mobile and the BizTalk RFID Standards
Pack are available at &lt;a target="_blank" href="http://www.microsoft.com/biztalk/en/us/rfid-mobile.aspx"&gt;http://www.microsoft.com/biztalk/en/us/rfid-mobile.aspx&lt;/a&gt; and &lt;a target="_blank" href="http://www.microsoft.com/biztalk/en/us/rfid.aspx"&gt;http://www.microsoft.com/biztalk/en/us/rfid.aspx&lt;/a&gt; respectively.&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Q: What new functionally will be delivered in BizTalk Server 2009?&lt;br&gt;
&lt;/strong&gt;
&lt;br&gt;
A:&amp;nbsp; BizTalk Server 2009 supports the latest Microsoft platform technologies,
including Windows Server 2008, Visual Studio 2008 SP1, SQL Server 2008 and the .NET
Framework 3.5 SP1. These platform updates enable greater scalability and reliability,
and many advances in the latest developer tools.&lt;br&gt;
&lt;br&gt;
This BizTalk Server release will also deliver additional customer-requested capabilities
around enterprise connectivity, including:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;New web service registry capabilities with support for UDDI
(Universal Description Discovery and Integration) version 3.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Enhanced service enablement of applications (through new and
enhanced adapters for LOB applications, databases, and legacy/host systems)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Enhanced service enablement of "edge" devices through BizTalk
RFID Mobile
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Enhanced interoperability and connectivity support for industry
protocols (like SWIFT, EDI, HL7 etc)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;SOA patterns and best practices guidance to assist our customer's
implementations&lt;br&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="PlainText"&gt;
You can find more details about BizTalk Server 2009 at &lt;a target="_blank" href="http://www.microsoft.com/biztalk/en/us/roadmap.aspx"&gt;http://www.microsoft.com/biztalk/en/us/roadmap.aspx&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Q: What is next for BizTalk Server after BizTalk Server 2009?&lt;br&gt;
&lt;/strong&gt;
&lt;br&gt;
A:&amp;nbsp; The charter of BizTalk Server remains consistent - it allows the Microsoft
application platform to connect&amp;nbsp; and interoperate with other kinds of systems
- LOB systems, legacy systems, smart devices (RFID), and B2B integration (SWIFT, EDI,
etc.).&amp;nbsp; This has been the focus of BizTalk Server since it was initially released
back in 2000 and continues to be its charter going forward.&lt;br&gt;
&lt;br&gt;
At this point it's too early to comment on the specific features that will be part
of the BizTalk Server "7" release; however, you can find details about general priorities
for BizTalk Server at &lt;a target="_blank" href="http://www.microsoft.com/biztalk/en/us/roadmap.aspx"&gt;http://www.microsoft.com/biztalk/en/us/roadmap.aspx&lt;/a&gt;.&amp;nbsp;
We're in the middle of early planning on BizTalk Server "7" and will have more information
to share about the specific scope of that release.&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Q: What is BizTalk RFID Mobile?&lt;br&gt;
&lt;/strong&gt;
&lt;br&gt;
A: BizTalk RFID Mobile is an RFID platform for Windows Mobile and CE. BizTalk RFID
Mobile consists of a runtime engine, tools, and components to develop, deploy, and
manage RFID solutions on mobile devices.&amp;nbsp; In combination with BizTalk Server
RFID, the mobility release provides a platform for real-time decision making.&amp;nbsp;
BizTalk RFID Mobile extends management and event processing to mobile devices and
allows communication between the server and mobile platforms.&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Q. What is the price and licensing for BizTalk RFID Mobile?&lt;br&gt;
&lt;/strong&gt;
&lt;br&gt;
A: BizTalk RFID Mobile is available to all BizTalk Server 2006 R2 customers with Software
Assurance as well as new BizTalk Server 2006 R2 customers who purchase licenses with
Software Assurance. Our customers and partners told us that mobile RFID offerings
are used in conjunction with a server product.&amp;nbsp; As a result, we included BizTalk
RFID Mobile with each edition of BizTalk so that our customers can achieve the benefits
of RFID mobile solutions without incurring undue costs. For BizTalk Server customers
with Software Assurance this is a great opportunity to adopt a new product that can
deliver an economic value today. When BizTalk Server 2009 becomes generally available,
the customers will be able to acquire BizTalk RFID Mobile without software assurance.&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Q: Is BizTalk RFID Mobile dependant on BizTalk Server? Can't I just use a
free solution that's available rather than use BizTalk Server?&lt;br&gt;
&lt;/strong&gt;
&lt;br&gt;
A:&amp;nbsp; BizTalk RFID Mobile and BizTalk Server are better together.&amp;nbsp; Using BizTalk
RFID Mobile and BizTalk Server in tandem you can capture data on a mobile device and
then send the RFID data back to BizTalk Server for filtering and the application of
business rules.&amp;nbsp; There is no need to rewrite complex event filtering and business
rule logic on the device as that functionality is already provided by BizTalk Server.&amp;nbsp;
We have taken a platform approach that will ensure that you can write your mobile
applications once and run them on multiple devices in addition to local device management,
store and forward, and SQL Sink capabilities, which reduce your TCO.&lt;br&gt;
&lt;br&gt;
BizTalk RFID Mobile and BizTalk RFID Standards Pack are a standard part of all editions
of BizTalk Server 2009.&amp;nbsp; Given the intense interest in these offerings from our
existing and new customers we decided to make them available now to BizTalk Server
2006 R2 customers with software assurance as well as new BizTalk Server 2006 R2 customers
who purchase licenses with Software Assurance.&lt;br&gt;
&lt;br&gt;
Rather than charge a per device fee, we included BizTalk RFID Mobile with all editions
of BizTalk because we wanted to make it easier for customers to adopt mobile RFID
solutions.&amp;nbsp; RFID is a fundamental enabler for business processes and should not
be viewed as an isolated silo, which is why we have included our fixed and mobile
RFID offerings standard in all editions of BizTalk.&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Q: What is ESB Guidance?&lt;br&gt;
&lt;/strong&gt;
&lt;br&gt;
A: The Microsoft ESB Guidance (first released in November 2007) provides architectural
guidance, patterns, practices, and a set of BizTalk Server R2 and .NET components
to simplify the development of an Enterprise Service Bus (ESB) on the Microsoft platform
and to allow Microsoft customers to extend their own messaging and integration solutions.&amp;nbsp;
For additional information on the current 1.0 version please see &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/cc487894.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc487894.aspx&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
We are announcing today the first public CTP release of the Microsoft ESB Guidance
2.0 for Microsoft BizTalk Server 2009. It incorporates many new and expanded features
include the following:&lt;br&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;&lt;strong&gt;New samples:&lt;/strong&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;SSO Configuration provider for Enterprise Library 4.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Multiple Web Service Execution Sample
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Exception Handling Service Sample&lt;br&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;&lt;strong&gt;New ESB Web services:&lt;/strong&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Generic Itinerary Services ( no itinerary header required)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;New core features:
&lt;/div&gt;
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Alignment with Microsoft BizTalk Server 2009 ( Beta )
&lt;/div&gt;
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;ESB Configuration tool
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Centralized itinerary store
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Itinerary resolver components
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Itinerary forwarder pipeline component
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Itinerary selector pipeline component
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Itinerary designer
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Centralized configuration uses Enterprise Library 4.0 Configuration
Block
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Centralized caching uses Enterprise Library 4.0 Caching Block
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Multiple service invocation using both messaging and orchestrations
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Itinerary BAM tracking
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="PlainText"&gt;Improved ESB Core engine and itinerary execution&lt;br&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&gt;&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=7186d499-5f19-4315-b790-9e1675d7d634" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,7186d499-5f19-4315-b790-9e1675d7d634.aspx</comments>
      <category>BizTalk</category>
      <category>BizTalk/Insights</category>
      <category>Tips</category>
    </item>
  </channel>
</rss>