<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><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:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>NSilverBullet</title>
    <link>http://www.nsilverbullet.net/</link>
    <description>Complex solutions for simple problems.</description>
    <language>en-us</language>
    <copyright>Joshua Anthony</copyright>
    <lastBuildDate>Thu, 16 Apr 2009 07:53:37 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.2.8279.16125</generator>
    <managingEditor>joshua.anthony@objectware.se</managingEditor>
    <webMaster>joshua.anthony@objectware.se</webMaster>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Nsilverbullet" type="application/rss+xml" /><item>
      <trackback:ping>http://www.nsilverbullet.net/Trackback.aspx?guid=442c0411-0f35-43bd-b082-118b14e76023</trackback:ping>
      <pingback:server>http://www.nsilverbullet.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.nsilverbullet.net/PermaLink,guid,442c0411-0f35-43bd-b082-118b14e76023.aspx</pingback:target>
      <dc:creator>Joshua Anthony</dc:creator>
      <wfw:comment>http://www.nsilverbullet.net/CommentView,guid,442c0411-0f35-43bd-b082-118b14e76023.aspx</wfw:comment>
      <wfw:commentRss>http://www.nsilverbullet.net/SyndicationService.asmx/GetEntryCommentsRss?guid=442c0411-0f35-43bd-b082-118b14e76023</wfw:commentRss>
      
      <title>100% CPU usage in BizTalk development environment</title>
      <guid isPermaLink="false">http://www.nsilverbullet.net/PermaLink,guid,442c0411-0f35-43bd-b082-118b14e76023.aspx</guid>
      <link>http://feedproxy.google.com/~r/Nsilverbullet/~3/LB4SIeXGLx0/100CPUUsageInBizTalkDevelopmentEnvironment.aspx</link>
      <pubDate>Thu, 16 Apr 2009 07:53:37 GMT</pubDate>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/m6CheyQBHYYJ8_zhGleDGjrmFN8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/m6CheyQBHYYJ8_zhGleDGjrmFN8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/m6CheyQBHYYJ8_zhGleDGjrmFN8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/m6CheyQBHYYJ8_zhGleDGjrmFN8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
These last few days I have been having enormous problems with my BizTalk development&#xD;
environment running in a windows Server 2003 Virtual PC environment. Whenever the&#xD;
BizTalkServerApplication host was started CPU usage would stay at 100% consistently.&#xD;
Stopping all my applications and even deleting them changed nothing. No running or&#xD;
suspended instances were visible. For some reason the sqlservr.exe process was consuming&#xD;
all available CPU resources. I found a couple of links that helped me solve the problem:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a title="http://www.tech-archive.net/Archive/BizTalk/microsoft.public.biztalk.general/2006-11/msg00243.html" href="http://www.tech-archive.net/Archive/BizTalk/microsoft.public.biztalk.general/2006-11/msg00243.html" target="_blank"&gt;http://www.tech-archive.net/Archive/BizTalk/microsoft.public.biztalk.general/2006-11/msg00243.html&lt;/a&gt;&#xD;
          &lt;br&gt;&#xD;
          &lt;a title="http://www.digitaldeposit.net/saravana/post/2008/06/04/Read-this-before-using-bts_CleanupMsgBox-stored-procedure.aspx" href="http://www.digitaldeposit.net/saravana/post/2008/06/04/Read-this-before-using-bts_CleanupMsgBox-stored-procedure.aspx" target="_blank"&gt;http://www.digitaldeposit.net/saravana/post/2008/06/04/Read-this-before-using-bts_CleanupMsgBox-stored-procedure.aspx&lt;/a&gt;&#xD;
          &lt;br&gt;&#xD;
          &lt;a title="http://technet.microsoft.com/en-us/library/bb727781.aspx" href="http://technet.microsoft.com/en-us/library/bb727781.aspx" target="_blank"&gt;http://technet.microsoft.com/en-us/library/bb727781.aspx&lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Basically running the following SQL: &#xD;
&lt;br&gt;&lt;/p&gt;&#xD;
        &lt;div class="wlWriterEditableSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:dc8e959a-9c7e-4738-9cf4-89d614e3a8c1" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&#xD;
          &lt;pre name="code" class="sql:nogutter:nocontrols"&gt;exec bts_CleanupMsgbox&lt;/pre&gt;&#xD;
        &lt;/div&gt;&#xD;
        &lt;p&gt;&#xD;
After installing the script according to the instructions provided by Microsoft solved&#xD;
my issues! I suspect that this could have to do with a problem with zombie messages&#xD;
that I have had. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
There is also a hotfix available in case you have the wrong version installed. &lt;a title="http://support.microsoft.com/kb/924715" href="http://support.microsoft.com/kb/924715" target="_blank"&gt;http://support.microsoft.com/kb/924715&lt;/a&gt;&lt;/p&gt;&#xD;
      &lt;/body&gt;&lt;img src="http://feeds.feedburner.com/~r/Nsilverbullet/~4/LB4SIeXGLx0" height="1" width="1"/&gt;</description>
      <comments>http://www.nsilverbullet.net/CommentView,guid,442c0411-0f35-43bd-b082-118b14e76023.aspx</comments>
      <category>BizTalk</category>
      <category>Fixes</category>
    <feedburner:origLink>http://www.nsilverbullet.net/2009/04/16/100CPUUsageInBizTalkDevelopmentEnvironment.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.nsilverbullet.net/Trackback.aspx?guid=5023395d-a44f-4fdf-8f16-86abeb2c0650</trackback:ping>
      <pingback:server>http://www.nsilverbullet.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.nsilverbullet.net/PermaLink,guid,5023395d-a44f-4fdf-8f16-86abeb2c0650.aspx</pingback:target>
      <dc:creator>Joshua Anthony</dc:creator>
      <wfw:comment>http://www.nsilverbullet.net/CommentView,guid,5023395d-a44f-4fdf-8f16-86abeb2c0650.aspx</wfw:comment>
      <wfw:commentRss>http://www.nsilverbullet.net/SyndicationService.asmx/GetEntryCommentsRss?guid=5023395d-a44f-4fdf-8f16-86abeb2c0650</wfw:commentRss>
      <slash:comments>1</slash:comments>
      
      <title>Reflections on three days at Tech Ed</title>
      <guid isPermaLink="false">http://www.nsilverbullet.net/PermaLink,guid,5023395d-a44f-4fdf-8f16-86abeb2c0650.aspx</guid>
      <link>http://feedproxy.google.com/~r/Nsilverbullet/~3/EUdE6JHv6rA/ReflectionsOnThreeDaysAtTechEd.aspx</link>
      <pubDate>Wed, 12 Nov 2008 13:26:08 GMT</pubDate>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4w5GjM9gXyzqOi6GpMahH_T1McY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4w5GjM9gXyzqOi6GpMahH_T1McY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4w5GjM9gXyzqOi6GpMahH_T1McY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4w5GjM9gXyzqOi6GpMahH_T1McY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
This is my third day at Tech Ed 2008 in Barcelona, the breadth of the technologies&#xD;
and languages that we as .Net developers now need to at least understand and preferably&#xD;
master to some degree is enormous. I believe that developers will need to specialize&#xD;
more explicitly on certain technology areas to remain productive in the future. It&#xD;
has been impossible to master all of Microsoft's products for many years now but up&#xD;
until a year or so ago it was at least conceivable for a developer to master all of&#xD;
the developer technologies that Microsoft had on offer. With the introduction of cloud&#xD;
based services and all the news in .Net, both libraries and new languages I cannot&#xD;
see how any one person will be able to master it all... I want to sum of some of my&#xD;
thoughts on the sessions that I have attended here at Tech Ed on Visual Studio 2010.&#xD;
&lt;/p&gt;&#xD;
        &lt;h3&gt;Fixing Continuous Integration&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
CI is a great principle and has moved into the mainstream along with many other agile&#xD;
principles. While Continuous Integration as such has never been broken there has always&#xD;
been a problem with developer discipline. If you check in something that is broken&#xD;
then it will be discovered quickly with CI but if you don't fix the broken code other&#xD;
developers will be less productive if they cannot get the latest code or have their&#xD;
own checkins fail in CI due to previously broken builds. With Visual Studio Team System&#xD;
2010 Microsoft is introducing a new concept for CI, the gated check. It is not a big&#xD;
change to the CI flow but a very clever use of a shelving, a feature in TFS which&#xD;
I find generally is underutilized. Instead of doing a standard checking in and then&#xD;
running a build on that code, gated checkins shelve the developers changes and then&#xD;
performs a build on the shelveset. If this build is successful then the shelveset&#xD;
is promoted to a proper check in, if the build fails then the check in is not committed&#xD;
to the mainline. The visibility that CI offers is maintained but using gated checkins&#xD;
other developers will never get failing code from other developers which was discoverable!&#xD;
Obviously undiscovered errors can still sneak into the code due to bad or missing&#xD;
tests or incorrect configuration of the build environment but it I believe that this&#xD;
will lower or eliminate the fear of checking in that some developers have. It will&#xD;
also allow you to check in before you go home without the need to wait and see that&#xD;
the CI build completes successfully. If I check in my code 5 minutes before I go home&#xD;
I should ideally wait to see that the build is successful, if it does not then I need&#xD;
to fix that immediately since other developers will be getting that code tomorrow&#xD;
morning when they come in. Using a gated check in I can go home, let the CI build&#xD;
complete on my shelved changes and if the build is successful then everyone can get&#xD;
my changes in the morning, if it fails I can safely wait until the morning before&#xD;
fixing the code and no one else is impacted by my errors.&#xD;
&lt;/p&gt;&#xD;
        &lt;h3&gt;Reproduction of Errors and Architecture Compilation Failures&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
Visual Studio 2010 looks like it contains some pretty good testing tools like the&#xD;
ability to record a testers GUI while performing manual tests and also including debugging&#xD;
and tracing info from remote machines. Pretty powerful stuff! It seems Microsoft have&#xD;
their mind set on eliminating the problem of irreproducible errors. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Another interesting feature is the architecture layer diagram which allows you to&#xD;
specify how the different layers in your application may and may not call each other.&#xD;
This is useful for validating that your code follows the intended architecture at&#xD;
compile time instead of detecting it when problems arise. All of these features (and&#xD;
there are more) are great but unfortunately Microsoft still has silly distinctions&#xD;
between different editions of Visual Studio Team System, so many of the cool demo&#xD;
features will probably be marginalized in most organisations due to them not actually&#xD;
having the appropriate edition of Visual Studio.&#xD;
&lt;/p&gt;&#xD;
      &lt;/body&gt;&lt;img src="http://feeds.feedburner.com/~r/Nsilverbullet/~4/EUdE6JHv6rA" height="1" width="1"/&gt;</description>
      <comments>http://www.nsilverbullet.net/CommentView,guid,5023395d-a44f-4fdf-8f16-86abeb2c0650.aspx</comments>
      <category>.Net</category>
      <category>BizTalk</category>
      <category>Ramblings</category>
      <category>Team System</category>
      <category>Tech Ed 2008</category>
      <category>Visual Studio</category>
    <feedburner:origLink>http://www.nsilverbullet.net/2008/11/12/ReflectionsOnThreeDaysAtTechEd.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.nsilverbullet.net/Trackback.aspx?guid=13c1b7b1-8254-4736-acc3-d45f1a3f235a</trackback:ping>
      <pingback:server>http://www.nsilverbullet.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.nsilverbullet.net/PermaLink,guid,13c1b7b1-8254-4736-acc3-d45f1a3f235a.aspx</pingback:target>
      <dc:creator>Joshua Anthony</dc:creator>
      <wfw:comment>http://www.nsilverbullet.net/CommentView,guid,13c1b7b1-8254-4736-acc3-d45f1a3f235a.aspx</wfw:comment>
      <wfw:commentRss>http://www.nsilverbullet.net/SyndicationService.asmx/GetEntryCommentsRss?guid=13c1b7b1-8254-4736-acc3-d45f1a3f235a</wfw:commentRss>
      <slash:comments>5</slash:comments>
      
      <title>BizTalk 2006 MQSC Adapter Encoding Solution</title>
      <guid isPermaLink="false">http://www.nsilverbullet.net/PermaLink,guid,13c1b7b1-8254-4736-acc3-d45f1a3f235a.aspx</guid>
      <link>http://feedproxy.google.com/~r/Nsilverbullet/~3/IH2QFFPCjY8/BizTalk2006MQSCAdapterEncodingSolution.aspx</link>
      <pubDate>Mon, 03 Nov 2008 15:45:34 GMT</pubDate>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0G5JBSSec_U2CnoMCgfF5zkRR8g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0G5JBSSec_U2CnoMCgfF5zkRR8g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0G5JBSSec_U2CnoMCgfF5zkRR8g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0G5JBSSec_U2CnoMCgfF5zkRR8g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Working with Websphere MQ and the MQSC adapter is quite new for me and I have been&#xD;
struggling with a couple of problems which have been very difficult to find solutions&#xD;
to. One of our main issues has been getting the correct character encoding of outgoing&#xD;
messages to MQ. BizTalk would output the message with the correct encoding (using&#xD;
a file send port to verify) and it looked like the messages on the WebSphere MQ queue&#xD;
were correctly encoded when we checked them using rhutilc. In our case we encoded&#xD;
our unicode messages as UTF-8 but when the Java system which is the destination read&#xD;
the messages any non-standard US characters came out as rubbish. They were correctly&#xD;
encoded as two bytes in the message but the destination system was reading them using&#xD;
codepage 850. Also all unicode messages that the Java system sent to us encoded with&#xD;
UTF-8 over MQ worked correctly in BizTalk.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
What I have found out through much trial and error and the sparse clues I have been&#xD;
able to find on the Internet is that the WebSphere client that BizTalk uses under&#xD;
the covers will set the character encoding of any messages that you write to the systems&#xD;
default codepage, which for windows is 850 according to IBM. This setting does not&#xD;
take into account the actual encoding that BizTalk 2006 has done to the message. If&#xD;
you force your message to be encoded as 850 in BizTalk then it will most likely work&#xD;
as long as you don't use characters that are outside the codepage. There is a context&#xD;
property in MQSeries.dll called MQMD_CodedCharSetId which will allow you to set the&#xD;
codepage value (CCSID in the MQ world) for your outgoing message.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I have found three ways to remedy the encoding problem:&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
Set the context property in an orchestration to whatever value you require. The drawback&#xD;
with this is that if you need to change your encoding you have to recompile and redeploy&#xD;
everything. Also changing your context property does not actually change the encoding&#xD;
just how MQ should interpret the message.&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Set an MQ environment variable named MQCCSID to the codepage that you send your messages&#xD;
as. This will override the system default value and force messages to be tagged with&#xD;
your required codepage. Obviously you can only have one system wide default so if&#xD;
you need to send messages out with different encodings this isn't going to help. Again&#xD;
the actual encoding of your messages is not going to be changed.&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Create an encoding pipeline component that allows you to set the MQ codepage for an&#xD;
outgoing message. This is the option that we have settled on for now. The encoding&#xD;
of your message is still not actually changed, unless you implement it, but now you&#xD;
can have different encodings for different destinations and you can change the encoding&#xD;
value using MMC and binding files.&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
One important point to remember is that UTF-8 is codepage 65001 in Windows but 1208&#xD;
in IBM, so wherever you set the codepage you need to have this in mind - as far as&#xD;
I know all other codepages have the same ids. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Using rfhutilc you can verify the codepage of a message in an MQ queue by browsing&#xD;
to the message and then checking what codepage has been set under the MQMD tab. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I have not verified this but the solutions that I have outlined above should work&#xD;
for EBCDIC and any other odd encodings that you may require as long as you can actually&#xD;
create a message with that encoding.&#xD;
&lt;/p&gt;&#xD;
      &lt;/body&gt;&lt;img src="http://feeds.feedburner.com/~r/Nsilverbullet/~4/IH2QFFPCjY8" height="1" width="1"/&gt;</description>
      <comments>http://www.nsilverbullet.net/CommentView,guid,13c1b7b1-8254-4736-acc3-d45f1a3f235a.aspx</comments>
      <category>.Net</category>
      <category>BizTalk</category>
      <category>Fixes</category>
      <category>Java</category>
    <feedburner:origLink>http://www.nsilverbullet.net/2008/11/03/BizTalk2006MQSCAdapterEncodingSolution.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.nsilverbullet.net/Trackback.aspx?guid=e61869c0-71ce-4c95-85e0-ed799284359b</trackback:ping>
      <pingback:server>http://www.nsilverbullet.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.nsilverbullet.net/PermaLink,guid,e61869c0-71ce-4c95-85e0-ed799284359b.aspx</pingback:target>
      <dc:creator>Joshua Anthony</dc:creator>
      <wfw:comment>http://www.nsilverbullet.net/CommentView,guid,e61869c0-71ce-4c95-85e0-ed799284359b.aspx</wfw:comment>
      <wfw:commentRss>http://www.nsilverbullet.net/SyndicationService.asmx/GetEntryCommentsRss?guid=e61869c0-71ce-4c95-85e0-ed799284359b</wfw:commentRss>
      <slash:comments>2</slash:comments>
      
      <title>Add intellisense for any file extension in Visual Studio 2005 or 2008</title>
      <guid isPermaLink="false">http://www.nsilverbullet.net/PermaLink,guid,e61869c0-71ce-4c95-85e0-ed799284359b.aspx</guid>
      <link>http://feedproxy.google.com/~r/Nsilverbullet/~3/Vt4PxXpkzp4/AddIntellisenseForAnyFileExtensionInVisualStudio2005Or2008.aspx</link>
      <pubDate>Thu, 30 Oct 2008 21:56:57 GMT</pubDate>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/c-b2O2FMGL9t68ASDkgwDtin9SU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/c-b2O2FMGL9t68ASDkgwDtin9SU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/c-b2O2FMGL9t68ASDkgwDtin9SU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/c-b2O2FMGL9t68ASDkgwDtin9SU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
I have been messing about with some template experiments in dasBlog using Notepad++&#xD;
and Visual Studio 2008. That is changing the site layout by editing &lt;em&gt;homeTemplate.blogtemplate&lt;/em&gt;, &lt;em&gt;dayTemplate.blogtemplate&lt;/em&gt; and &lt;em&gt;itemTemplate.blogtemplate&lt;/em&gt; for&#xD;
a dasBlog Theme. These files are basically html files with dasBlog specific macros&#xD;
for inserting the blog functionality.&#xD;
&lt;/p&gt;&#xD;
        &lt;h3&gt;Notepad++&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
First off I love Notepad++ as a &lt;a target="_blank" href="http://www.davidtan.org/replace-windows-notepad-with-notepad-plus/"&gt;replacement&#xD;
for Notepad&lt;/a&gt;.  I have had a hard time doing more complex things in Notepad++&#xD;
due to my addiction to Microsoft's intellisense... Editing the .blogtemplate&#xD;
files is dead simple in Notepad++ since it is very easy to get syntax coloring&#xD;
- you simply choose a language (html) from the language menu and viola everything&#xD;
is color coded. The file that you are editing doesn't need to have the correct extension&#xD;
or even be written in the language you choose. Notepad++ does its best and highlights&#xD;
whatever it can recognize. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
There is also an auto completion function that you access by pressing CTRL+space,&#xD;
but this function is really only a text completion function and does not take any&#xD;
notice of the context that you are typing in. It just pops up an alphabetical list&#xD;
of potential text candidates based on the letters that you have already typed. For&#xD;
simple programming tasks this is more than adequate and Notepad++ does have a significantly&#xD;
smaller footprint than Visual Studio, so you can install it on pretty much any computer&#xD;
or server without anyone complaining for quick debugging tasks.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
What I really have been missing is proper html intellisense for the .blogtemplate&#xD;
files.&#xD;
&lt;/p&gt;&#xD;
        &lt;h3&gt;Visual Studio 2008&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
Obviously Visual Studio does not have support for the .blogtemplate extension. For&#xD;
awhile I hacked my way around it by renaming the files to have a html extension while&#xD;
editing, which sort of works. The main problem is that I keep forgetting to change&#xD;
the extension back before I start testing my changes - so this was causing unnecessary&#xD;
pain... I had a vague memory of configuring something like this before and found &lt;a target="_blank" href="http://vladimir.bychkov.info/blog/PermaLink,guid,be76b3bf-c524-456c-9c8f-a2584924aa32.aspx"&gt;these&#xD;
instructions&lt;/a&gt;. For the sake of completeness I include them here also:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
1. Go to the &lt;strong&gt;Tools-&amp;gt;Options&lt;/strong&gt; menu.&lt;br&gt;&#xD;
2. Pick &lt;strong&gt;Text Editor -&amp;gt; File Extension&lt;/strong&gt; from the tree in the&#xD;
left part of the Options dialog.&lt;br&gt;&#xD;
3. Type your file extension, &lt;em&gt;.blogtemplate&lt;/em&gt; in my case, in the &lt;strong&gt;Extension&lt;/strong&gt; text&#xD;
box.&lt;br&gt;&#xD;
4. Select the appropriate editor from the &lt;strong&gt;Editor&lt;/strong&gt; dropdown.&lt;br&gt;&#xD;
5. Click &lt;strong&gt;Add &lt;/strong&gt;and then &lt;strong&gt;Ok&lt;/strong&gt; to close the dialog&#xD;
and re-open your files.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
If you cannot see the &lt;strong&gt;Text Editor&lt;/strong&gt; node in the tree view of the Options&#xD;
dialog then you probably need to click on &lt;strong&gt;Show all settings&lt;/strong&gt; in the&#xD;
bottom left hand corner of the dialog...&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Using this feature you can set up pretty much any color coding and intellisense support&#xD;
that you like in Visual Studio for file types that Visual Studio lacks support&#xD;
for. All I am missing now is auto completion for dasBlog macros in .blogtemplate files,&#xD;
this seems like a much tougher problem.&#xD;
&lt;/p&gt;&#xD;
      &lt;/body&gt;&lt;img src="http://feeds.feedburner.com/~r/Nsilverbullet/~4/Vt4PxXpkzp4" height="1" width="1"/&gt;</description>
      <comments>http://www.nsilverbullet.net/CommentView,guid,e61869c0-71ce-4c95-85e0-ed799284359b.aspx</comments>
      <category>dasBlog</category>
      <category>Fixes</category>
      <category>Reviews</category>
      <category>Team System</category>
      <category>Visual Studio</category>
      <category>Web</category>
    <feedburner:origLink>http://www.nsilverbullet.net/2008/10/30/AddIntellisenseForAnyFileExtensionInVisualStudio2005Or2008.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.nsilverbullet.net/Trackback.aspx?guid=e4c94fa0-0c0d-4461-873c-b89cf45c17b6</trackback:ping>
      <pingback:server>http://www.nsilverbullet.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.nsilverbullet.net/PermaLink,guid,e4c94fa0-0c0d-4461-873c-b89cf45c17b6.aspx</pingback:target>
      <dc:creator>Joshua Anthony</dc:creator>
      <wfw:comment>http://www.nsilverbullet.net/CommentView,guid,e4c94fa0-0c0d-4461-873c-b89cf45c17b6.aspx</wfw:comment>
      <wfw:commentRss>http://www.nsilverbullet.net/SyndicationService.asmx/GetEntryCommentsRss?guid=e4c94fa0-0c0d-4461-873c-b89cf45c17b6</wfw:commentRss>
      
      <title>Remove Byte Order Mark from a BizTalk 2006 outgoing messages</title>
      <guid isPermaLink="false">http://www.nsilverbullet.net/PermaLink,guid,e4c94fa0-0c0d-4461-873c-b89cf45c17b6.aspx</guid>
      <link>http://feedproxy.google.com/~r/Nsilverbullet/~3/V35BO4I4tT4/RemoveByteOrderMarkFromABizTalk2006OutgoingMessages.aspx</link>
      <pubDate>Fri, 10 Oct 2008 08:53:02 GMT</pubDate>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/28x2Jzd4QZ3S4GTxq6VUfuofYr8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/28x2Jzd4QZ3S4GTxq6VUfuofYr8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/28x2Jzd4QZ3S4GTxq6VUfuofYr8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/28x2Jzd4QZ3S4GTxq6VUfuofYr8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
The BOM is a two to four byte sequence at the start of an encoded file which tells&#xD;
the recipient if the characters are encoded using big-endian or little-endian byte&#xD;
order. In BizTalk generally the byte order mark is added when a file is UTF-8 or UTF-16&#xD;
encoded using an XML assembler in a send pipeline. Sometimes applications cannot handle&#xD;
the initial bytes and you don't want them to be added to your message. I recently&#xD;
read two articles about removing the Byte Order Mark (BOM) from outgoing messages&#xD;
in BizTalk 2006 one by &lt;a href="http://www.digitaldeposit.net/saravana/post/2006/08/23/Delete-Byte-Order-Mark-from-outgoing-messages-in-Biztalk-20042006.aspx"&gt;Saravana&#xD;
Kumar&lt;/a&gt; and the other an official &lt;a href="http://support.microsoft.com/kb/921044"&gt;Microsoft&#xD;
KB article&lt;/a&gt;. Both of them recommend creating a custom pipeline with an XML assemble&#xD;
stage where the PreserveBom property is set to false. I find it a little strange that&#xD;
they don't point out that you can accomplish this using the default XMLTransmit pipeline&#xD;
also. Just open the pipeline configuration in the Send Port properties and set PreserveBom&#xD;
to false... No custom Pipeline, no coding required.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.nsilverbullet.net/content/binary/WindowsLiveWriter/RemoveByteOrderMarkfromBizTalk2006outgoi_93F1/xmltransmitbom.png"&gt;&#xD;
            &lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="244" alt="xmltransmitbom" src="http://www.nsilverbullet.net/content/binary/WindowsLiveWriter/RemoveByteOrderMarkfromBizTalk2006outgoi_93F1/xmltransmitbom_thumb.png" width="223" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
      &lt;/body&gt;&lt;img src="http://feeds.feedburner.com/~r/Nsilverbullet/~4/V35BO4I4tT4" height="1" width="1"/&gt;</description>
      <comments>http://www.nsilverbullet.net/CommentView,guid,e4c94fa0-0c0d-4461-873c-b89cf45c17b6.aspx</comments>
      <category>.Net</category>
      <category>BizTalk</category>
      <category>Fixes</category>
      <category>Tips</category>
    <feedburner:origLink>http://www.nsilverbullet.net/2008/10/10/RemoveByteOrderMarkFromABizTalk2006OutgoingMessages.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.nsilverbullet.net/Trackback.aspx?guid=5575685e-ad2d-4df2-bb53-410fafd208fa</trackback:ping>
      <pingback:server>http://www.nsilverbullet.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.nsilverbullet.net/PermaLink,guid,5575685e-ad2d-4df2-bb53-410fafd208fa.aspx</pingback:target>
      <dc:creator>Joshua Anthony</dc:creator>
      <wfw:comment>http://www.nsilverbullet.net/CommentView,guid,5575685e-ad2d-4df2-bb53-410fafd208fa.aspx</wfw:comment>
      <wfw:commentRss>http://www.nsilverbullet.net/SyndicationService.asmx/GetEntryCommentsRss?guid=5575685e-ad2d-4df2-bb53-410fafd208fa</wfw:commentRss>
      
      <title>URL Rewrite Does Not Work on Vista</title>
      <guid isPermaLink="false">http://www.nsilverbullet.net/PermaLink,guid,5575685e-ad2d-4df2-bb53-410fafd208fa.aspx</guid>
      <link>http://feedproxy.google.com/~r/Nsilverbullet/~3/ilbL3EX9L00/URLRewriteDoesNotWorkOnVista.aspx</link>
      <pubDate>Wed, 08 Oct 2008 05:04:56 GMT</pubDate>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oJjodWgCsoz8Ra3xuIRHjLfBGTU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oJjodWgCsoz8Ra3xuIRHjLfBGTU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oJjodWgCsoz8Ra3xuIRHjLfBGTU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oJjodWgCsoz8Ra3xuIRHjLfBGTU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
While trying out a complex URL rewriting scenario in ASP.Net I ran into a pretty strange&#xD;
problem that resulted in a 404 error: &#xD;
&lt;/p&gt;&#xD;
        &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:f26be293-c663-4f2b-acf4-00c3085a0912" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&#xD;
          &lt;pre name="code" class="xml:nogutter:nocontrols"&gt;Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly. &#xD;
&#xD;
Requested Url: /6.aspx/t.aspx&#xD;
&lt;/pre&gt;&#xD;
        &lt;/div&gt;&#xD;
        &lt;p&gt;&#xD;
My code is very similar to a solution that I have created previously in ASP.Net 2.0&#xD;
on Windows XP so I was a little surprised that I was getting an error. The strange&#xD;
thing is that /6.aspx is the original URL and /default.aspx is the rewritten url,&#xD;
in the error message it looks like the original URL has partially overwritten the&#xD;
new URL! &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The exception that is caught has a stack trace that ends with: System.Web.UI.Util.CheckVirtualFileExists(VirtualPath&#xD;
virtualPath) &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Looking around the Internet for people who have already encountered this problem (as&#xD;
I always do) didn't lead to any immediate solutions. On the IIS forum there is one&#xD;
discussion on &lt;a href="http://forums.iis.net/p/1149754/1871196.aspx"&gt;Module doesn't&#xD;
work on IIS7 under vista business&lt;/a&gt; which lead me to a solution. It seems to me&#xD;
that URL rewriting is broken on Vista prior to SP1. Part of the SP1 upgrade incorporates&#xD;
changes to IIS 7 that were made in Windows Server 2008 as detailed on &lt;a href="http://technet.microsoft.com/en-us/library/cc709618.aspx"&gt;Microsoft&#xD;
TechNet&lt;/a&gt;. So after installing SP1 my solution works as expected.&#xD;
&lt;/p&gt;&#xD;
      &lt;/body&gt;&lt;img src="http://feeds.feedburner.com/~r/Nsilverbullet/~4/ilbL3EX9L00" height="1" width="1"/&gt;</description>
      <comments>http://www.nsilverbullet.net/CommentView,guid,5575685e-ad2d-4df2-bb53-410fafd208fa.aspx</comments>
      <category>.Net</category>
      <category>Bugs</category>
      <category>Fixes</category>
      <category>Vista</category>
      <category>Web</category>
    <feedburner:origLink>http://www.nsilverbullet.net/2008/10/08/URLRewriteDoesNotWorkOnVista.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.nsilverbullet.net/Trackback.aspx?guid=f1d406c6-aa2a-4027-95e4-d84038206e6d</trackback:ping>
      <pingback:server>http://www.nsilverbullet.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.nsilverbullet.net/PermaLink,guid,f1d406c6-aa2a-4027-95e4-d84038206e6d.aspx</pingback:target>
      <dc:creator>Joshua Anthony</dc:creator>
      <wfw:comment>http://www.nsilverbullet.net/CommentView,guid,f1d406c6-aa2a-4027-95e4-d84038206e6d.aspx</wfw:comment>
      <wfw:commentRss>http://www.nsilverbullet.net/SyndicationService.asmx/GetEntryCommentsRss?guid=f1d406c6-aa2a-4027-95e4-d84038206e6d</wfw:commentRss>
      <slash:comments>1</slash:comments>
      
      <title>SFTP Adapter authentication for BizTalk</title>
      <guid isPermaLink="false">http://www.nsilverbullet.net/PermaLink,guid,f1d406c6-aa2a-4027-95e4-d84038206e6d.aspx</guid>
      <link>http://feedproxy.google.com/~r/Nsilverbullet/~3/WXp6wl7bjTQ/SFTPAdapterAuthenticationForBizTalk.aspx</link>
      <pubDate>Fri, 04 Jul 2008 10:38:14 GMT</pubDate>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_GsjMpq9yS_m7rJB0wNggb3iL1Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_GsjMpq9yS_m7rJB0wNggb3iL1Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_GsjMpq9yS_m7rJB0wNggb3iL1Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_GsjMpq9yS_m7rJB0wNggb3iL1Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
There is a nice little SFTP adapter for BizTalk on CodePlex &lt;a title="http://www.codeplex.com/SftpAdapter/" href="http://www.codeplex.com/SftpAdapter/"&gt;http://www.codeplex.com/SftpAdapter/&lt;/a&gt;.&#xD;
I have been trying this out for a couple of days and it works quite nicely. I have&#xD;
been using &lt;a href="http://www.freesshd.com/" target="_blank"&gt;freeSSHd&lt;/a&gt; as SFTP&#xD;
server and &lt;a href="http://winscp.net/" target="_blank"&gt;WinScp&lt;/a&gt; as a client to&#xD;
see that the SFTP functionality works. WinScp comes with PuttyGen for generating key&#xD;
pairs for authentication and there are a couple of guides on the web which offer clues&#xD;
as to how this should all be configured but I still had to resort to trial and error&#xD;
to get the SFTP authentication working. So this is my super concise guide to getting&#xD;
it up and running for local testing (presuming you have installed all the software&#xD;
first).&#xD;
&lt;/p&gt;&#xD;
        &lt;h4&gt;Generate a keypair with PuTTYGen&#xD;
&lt;/h4&gt;&#xD;
        &lt;p&gt;&#xD;
Under WinScp in the start menu you have "Key Tools/PuTTYGen"&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.nsilverbullet.net/content/binary/WindowsLiveWriter/RecursiveSFTPAdapterforBizTalk_9BB3/image_10.png" target="_blank"&gt;&#xD;
            &lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="231" alt="image" src="http://www.nsilverbullet.net/content/binary/WindowsLiveWriter/RecursiveSFTPAdapterforBizTalk_9BB3/image_thumb_4.png" width="240" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Click "Generate" and move the mouse about. When PuTTYGen has created your keypair&#xD;
enter a comment so that you key is easier to identify, you can use a passphrase for&#xD;
your master key if you like. Save your private key as a .ppk file somewhere safe this&#xD;
is your master file and you can open it in PuTTYGen later if you need to export it&#xD;
again. Export the key (under the Conversions menu) as an OpenSSH key, but remove the&#xD;
passphrase first since the SFTP adapter doesn't currently support passphrases for&#xD;
private keys, save this key somewhere where the SFTP adapter can access it. This key&#xD;
should also be kept safe since it is the equivalent of a password. Select the entire&#xD;
textbox with the public key and copy to the clipboard.&#xD;
&lt;/p&gt;&#xD;
        &lt;h4&gt;Configure freeSSHd for public key authentication&#xD;
&lt;/h4&gt;&#xD;
        &lt;p&gt;&#xD;
Open up the freeSSHd settings dialogue and go to Authentication. Enter a directory&#xD;
where the public keys for your users will be stored. Make sure that "Public Key Authentication"&#xD;
is not set to disabled and that "Password Authentication" isn't required.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.nsilverbullet.net/content/binary/WindowsLiveWriter/RecursiveSFTPAdapterforBizTalk_9BB3/image_12.png" target="_blank"&gt;&#xD;
            &lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="227" alt="image" src="http://www.nsilverbullet.net/content/binary/WindowsLiveWriter/RecursiveSFTPAdapterforBizTalk_9BB3/image_thumb_5.png" width="240" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
You also need to set a directory under the SFTP tab for storing the files. Add users&#xD;
in the Users tab selecting "Public key (SSH only)" as the authorization method. Also&#xD;
make sure that the SFTP checkbox is selected.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.nsilverbullet.net/content/binary/WindowsLiveWriter/RecursiveSFTPAdapterforBizTalk_9BB3/image_14.png" target="_blank"&gt;&#xD;
            &lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="240" alt="image" src="http://www.nsilverbullet.net/content/binary/WindowsLiveWriter/RecursiveSFTPAdapterforBizTalk_9BB3/image_thumb_6.png" width="222" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Go to the directory that has been configured for freeSSHd keys. Create a text file&#xD;
named "username" ( the users login name and no extension) and paste the public key&#xD;
string from PuTTYGen into it making sure it is all on one line.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.nsilverbullet.net/content/binary/WindowsLiveWriter/RecursiveSFTPAdapterforBizTalk_9BB3/image_16.png"&gt;&#xD;
            &lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="47" alt="image" src="http://www.nsilverbullet.net/content/binary/WindowsLiveWriter/RecursiveSFTPAdapterforBizTalk_9BB3/image_thumb_7.png" width="244" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Test it with WinScp before trying it from BizTalk. Now you should be up and running&#xD;
with your SFTP adapter and an SFTP server.&#xD;
&lt;/p&gt;&#xD;
      &lt;/body&gt;&lt;img src="http://feeds.feedburner.com/~r/Nsilverbullet/~4/WXp6wl7bjTQ" height="1" width="1"/&gt;</description>
      <comments>http://www.nsilverbullet.net/CommentView,guid,f1d406c6-aa2a-4027-95e4-d84038206e6d.aspx</comments>
      <category>BizTalk</category>
      <category>Security</category>
      <category>Tips</category>
    <feedburner:origLink>http://www.nsilverbullet.net/2008/07/04/SFTPAdapterAuthenticationForBizTalk.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.nsilverbullet.net/Trackback.aspx?guid=f25fa61e-6b11-4045-becf-b1cf8dc063bc</trackback:ping>
      <pingback:server>http://www.nsilverbullet.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.nsilverbullet.net/PermaLink,guid,f25fa61e-6b11-4045-becf-b1cf8dc063bc.aspx</pingback:target>
      <dc:creator>Joshua Anthony</dc:creator>
      <wfw:comment>http://www.nsilverbullet.net/CommentView,guid,f25fa61e-6b11-4045-becf-b1cf8dc063bc.aspx</wfw:comment>
      <wfw:commentRss>http://www.nsilverbullet.net/SyndicationService.asmx/GetEntryCommentsRss?guid=f25fa61e-6b11-4045-becf-b1cf8dc063bc</wfw:commentRss>
      
      <title>Is EDA the way to go?</title>
      <guid isPermaLink="false">http://www.nsilverbullet.net/PermaLink,guid,f25fa61e-6b11-4045-becf-b1cf8dc063bc.aspx</guid>
      <link>http://feedproxy.google.com/~r/Nsilverbullet/~3/Oz-44zx9WRM/IsEDATheWayToGo.aspx</link>
      <pubDate>Tue, 01 Jul 2008 10:37:26 GMT</pubDate>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/U7IxSzF8U0bqBTEmj-KhlyItn5k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/U7IxSzF8U0bqBTEmj-KhlyItn5k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/U7IxSzF8U0bqBTEmj-KhlyItn5k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/U7IxSzF8U0bqBTEmj-KhlyItn5k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
I have been reading a lot about Event Driven Architecture (EDA) in relation to SOA&#xD;
recently and while the ideas are very interesting and the benefits are alluring it&#xD;
adds an additional complexity and uncertainty to the overall behaviour. Two good articles&#xD;
on EDA are &lt;a title="http://martinfowler.com/eaaDev/EventCollaboration.html" href="http://martinfowler.com/eaaDev/EventCollaboration.html" target="_blank"&gt;http://martinfowler.com/eaaDev/EventCollaboration.html&lt;/a&gt; and &lt;a title="http://eaipatterns.com/docs/EDA.pdf" href="http://eaipatterns.com/docs/EDA.pdf" target="_blank"&gt;http://eaipatterns.com/docs/EDA.pdf&lt;/a&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
From my view the main problem is that when implementing a business process that spans&#xD;
several services (for example entity services) we do not generally want the entity&#xD;
services to react to events and then store or retrieve data based on the events because&#xD;
this means that the services need to have some kind of knowledge of the expected behaviour&#xD;
relating to the process - generally seen as a bad thing in SOA, as the northbound&#xD;
- southbound dependencies get reversed. We also want to have some stability from a&#xD;
callers perspective that the overall flow will be moved forward, traditionally done&#xD;
by issuing a command. If events get turned into commands then I believe we will have&#xD;
problems coordinating the different actors (presuming that the command event was only&#xD;
meant to be acted on once). Jack Hof has an interesting take on the relationship between &lt;a href="http://soa-eda.blogspot.com/2006/11/how-eda-extends-soa-and-why-it-is.html" target="_blank"&gt;SOA&#xD;
and EDA&lt;/a&gt; especially his &lt;a href="http://jack.vanhoof.soa.eda.googlepages.com/How_EDA_extends_SOA_and_why_it_is_important_-_Jack_van_Hoof_-_v6.0_-_2006.pdf" target="_blank"&gt;extended&#xD;
pdf version&lt;/a&gt; has some interesting ideas about how to realise SOA and EDA together&#xD;
which contains a potential solution to the problem, basically by just combining EDA&#xD;
and SOA and knowing when to implement which principles. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
A related problem is what should our messages contain - are command messages even&#xD;
required? Two slightly different takes on the problem are presented &lt;a href="http://soa-eda.blogspot.com/2007/06/how-to-implement-loosely-coupled.html" target="_blank"&gt;here&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/nickmalik/archive/2007/08/07/getting-away-from-request-and-response-soa.aspx" target="_blank"&gt;here&lt;/a&gt;.&#xD;
Thinking about events and messages has lead me to attempt to create (a very crude)&#xD;
classification system for events that are related to a solution that I am developing&#xD;
for a client.&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
State-change events: no messages are published as long as the underlying values are&#xD;
not updated, the message is related to a specific instance of an entity or service.&#xD;
There is no expected behaviour for the recipient. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Scheduled events: messages are published at a certain frequency whether the values&#xD;
are updated or not, all available data should be published simultaneously within a&#xD;
single message or as multiple messages. There is no expected behaviour for the recipient. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Request or reservation events: these messages are requests for behaviour. A receiver&#xD;
may safely ignore the message, send a negative response if it cannot fulfil the request&#xD;
or a positive response if it can fulfil the request. The event needs to have a predefined&#xD;
response message which the event source can understand and the response needs to be&#xD;
able to be routed back to the source without the listener needing to have prior knowledge&#xD;
of all sources. This is basically an event which initiates a dialogue between two&#xD;
parties based on the &lt;a href="http://msdn.microsoft.com/en-us/library/ms954638.aspx" target="_blank"&gt;reservation&#xD;
pattern&lt;/a&gt;. It is the requestors responsibility to coordinate the possible responses&#xD;
and outcomes. There is an expected behaviour for recipients who return a positive&#xD;
response but no prescribed behaviour for those who ignore the event or actively return&#xD;
a negative response. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Command events: This must be an anti-pattern since a command denotes that the sender&#xD;
expects the recipient to perform some specific task and thus exhibit an expected behaviour,&#xD;
which is impossible in a loosely coupled, event-driven, service oriented world since&#xD;
the sender does not know who is listening.&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
The first two event types are just statements, the third (reservation) is really just&#xD;
a variation of a state-change event with additional semantics attached to it. Using&#xD;
EDA the expected behaviour that is needed for a specific business process must be&#xD;
realised with the help of some kind of process controller (notification server in&#xD;
Jack Hof's world) which follows the traditional Command and Control (call stack) approach&#xD;
for coordination but uses events to track what stage the overall process or task is&#xD;
at.&#xD;
&lt;/p&gt;&#xD;
      &lt;/body&gt;&lt;img src="http://feeds.feedburner.com/~r/Nsilverbullet/~4/Oz-44zx9WRM" height="1" width="1"/&gt;</description>
      <comments>http://www.nsilverbullet.net/CommentView,guid,f25fa61e-6b11-4045-becf-b1cf8dc063bc.aspx</comments>
      <category>Architecture</category>
      <category>EDA</category>
      <category>SOA</category>
    <feedburner:origLink>http://www.nsilverbullet.net/2008/07/01/IsEDATheWayToGo.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.nsilverbullet.net/Trackback.aspx?guid=a790b445-4d25-4a91-9db5-6657bcc5cd54</trackback:ping>
      <pingback:server>http://www.nsilverbullet.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.nsilverbullet.net/PermaLink,guid,a790b445-4d25-4a91-9db5-6657bcc5cd54.aspx</pingback:target>
      <dc:creator>Joshua Anthony</dc:creator>
      <wfw:comment>http://www.nsilverbullet.net/CommentView,guid,a790b445-4d25-4a91-9db5-6657bcc5cd54.aspx</wfw:comment>
      <wfw:commentRss>http://www.nsilverbullet.net/SyndicationService.asmx/GetEntryCommentsRss?guid=a790b445-4d25-4a91-9db5-6657bcc5cd54</wfw:commentRss>
      
      <title>Remember to always have a static customErrors page</title>
      <guid isPermaLink="false">http://www.nsilverbullet.net/PermaLink,guid,a790b445-4d25-4a91-9db5-6657bcc5cd54.aspx</guid>
      <link>http://feedproxy.google.com/~r/Nsilverbullet/~3/TSb3wylJc-4/RememberToAlwaysHaveAStaticCustomErrorsPage.aspx</link>
      <pubDate>Thu, 26 Jun 2008 11:10:37 GMT</pubDate>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/J4yThu8ntuidR4fxEo505Vb4hSg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/J4yThu8ntuidR4fxEo505Vb4hSg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/J4yThu8ntuidR4fxEo505Vb4hSg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/J4yThu8ntuidR4fxEo505Vb4hSg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
I was just surfing around on &lt;a href="http://forums.microsoft.com"&gt;http://forums.microsoft.com&lt;/a&gt; and&#xD;
got a yellow screen of death! &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.nsilverbullet.net/content/binary/WindowsLiveWriter/RemembertoalwayshaveastaticCustomErrorsp_9CD5/msforumsyellowscreenofdeath_2.png"&gt;&#xD;
            &lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="372" alt="msforumsyellowscreenofdeath" src="http://www.nsilverbullet.net/content/binary/WindowsLiveWriter/RemembertoalwayshaveastaticCustomErrorsp_9CD5/msforumsyellowscreenofdeath_thumb.png" width="644" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I must say I was slightly surprised. In web projects that I have been involved in&#xD;
we have always added two customErrors pages one to handle generic errors which redirects&#xD;
to an errorpage.aspx page and then a static html page errorpage.html which is only&#xD;
used when an error occurs on the dynamic error page... A sample configuration using&#xD;
location follows:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:a3557798-077c-4763-bd71-336a9f0da6f8" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&#xD;
          &lt;pre name="code" class="xml:nogutter:nocontrols"&gt;&amp;lt;configuration&amp;gt;&#xD;
&#xD;
&amp;lt;system.web&amp;gt;&#xD;
&amp;lt;customErrors mode="on" defaultRedirect="errorpage.aspx"/&amp;gt;&#xD;
&amp;lt;/system.web&amp;gt;&#xD;
&#xD;
&amp;lt;location path="errorpage.aspx"&amp;gt;&#xD;
&amp;lt;system.web&amp;gt;&#xD;
&amp;lt;customErrors mode="on" defaultRedirect="errorpage.html"/&amp;gt;&#xD;
&amp;lt;/system.web&amp;gt;&#xD;
&amp;lt;/location&amp;gt;&#xD;
&#xD;
&amp;lt;/configuration&amp;gt;&#xD;
&lt;/pre&gt;&#xD;
        &lt;/div&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
That way if we have a problem with our application that affects the entire site, for&#xD;
instance menu and navigational rendering, we can still show a nice error page with&#xD;
a message like "The site is temporarily unavailable, please try again in a few minutes." &#xD;
&lt;/p&gt;&#xD;
      &lt;/body&gt;&lt;img src="http://feeds.feedburner.com/~r/Nsilverbullet/~4/TSb3wylJc-4" height="1" width="1"/&gt;</description>
      <comments>http://www.nsilverbullet.net/CommentView,guid,a790b445-4d25-4a91-9db5-6657bcc5cd54.aspx</comments>
      <category>.Net</category>
      <category>Fixes</category>
      <category>Ramblings</category>
      <category>Web</category>
    <feedburner:origLink>http://www.nsilverbullet.net/2008/06/26/RememberToAlwaysHaveAStaticCustomErrorsPage.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.nsilverbullet.net/Trackback.aspx?guid=0e2765b5-d5d8-42cf-ac57-b3b24b9adc4c</trackback:ping>
      <pingback:server>http://www.nsilverbullet.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.nsilverbullet.net/PermaLink,guid,0e2765b5-d5d8-42cf-ac57-b3b24b9adc4c.aspx</pingback:target>
      <dc:creator>Joshua Anthony</dc:creator>
      <wfw:comment>http://www.nsilverbullet.net/CommentView,guid,0e2765b5-d5d8-42cf-ac57-b3b24b9adc4c.aspx</wfw:comment>
      <wfw:commentRss>http://www.nsilverbullet.net/SyndicationService.asmx/GetEntryCommentsRss?guid=0e2765b5-d5d8-42cf-ac57-b3b24b9adc4c</wfw:commentRss>
      
      <title>Duplicate User Accounts in Active Directory</title>
      <guid isPermaLink="false">http://www.nsilverbullet.net/PermaLink,guid,0e2765b5-d5d8-42cf-ac57-b3b24b9adc4c.aspx</guid>
      <link>http://feedproxy.google.com/~r/Nsilverbullet/~3/E4BHCAfHJNM/DuplicateUserAccountsInActiveDirectory.aspx</link>
      <pubDate>Thu, 26 Jun 2008 08:55:10 GMT</pubDate>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pl9Ob9Z7o1cSY5KeGacXj6AvJvY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pl9Ob9Z7o1cSY5KeGacXj6AvJvY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pl9Ob9Z7o1cSY5KeGacXj6AvJvY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pl9Ob9Z7o1cSY5KeGacXj6AvJvY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
We have just had a major Active Directory issue that has affected the Team Foundation&#xD;
Server instance that all the developers at the client that I am working at use. The&#xD;
problem occured when some users where erased in the Active Directory and were subsequently&#xD;
recreated with the same user names. These new user accounts cannot access the Team&#xD;
Foundation Server.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
A large part of the problem was solved by just removing users from TFS and then putting&#xD;
them back in again. This recreates all the wiring under the surface in TFS so that&#xD;
the users can access the server but all their existing workspace info, pending checkins&#xD;
and so on are lost locally yet exist in Team Foundation Server with a different Owner&#xD;
under the same user name... The only way to tell them apart is by their SID and that&#xD;
the original account may get suffixed with a number in workspace lists: AD\username:61. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
My first thought was to remove all the workspaces and pending checkins and let people&#xD;
manually resynch their projects. When I clicked undo pending change for a bunch of&#xD;
changes in Attrice Sidekicks an unhandled exception popped up: "Object reference not&#xD;
set to an instance of an object". I just can't undo these changes, there is a clue&#xD;
to the problem when I try to unlock a changed file, I get an Unlock error: &#xD;
&lt;/p&gt;&#xD;
        &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:c224a1a4-8b0e-4a73-842a-589d62384851" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&#xD;
          &lt;pre name="code" class="xml:nogutter:nocontrols"&gt;Failed to unlock $/Project/Path/file (TF14061: The workspace COMPUTERNAME; AD\username does not exist.)&lt;/pre&gt;&#xD;
        &lt;/div&gt;&#xD;
        &lt;p&gt;&#xD;
I can't search for workspaces by username either, even doing a simple TFSSecurtiy&#xD;
/i "ad\username" /server:TFSName for one of the affected accounts returns "Error:&#xD;
The identity cannot be resolved." Since the original accounts have been removed from&#xD;
Active Directory I cannot easily get hold of their SIDs for querying with TFSSecurity.&#xD;
Attempting to delete the workspaces from the command line return the following error: &#xD;
&lt;/p&gt;&#xD;
        &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:996e6e82-ea8b-4bc2-8802-01fa529d295b" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&#xD;
          &lt;pre name="code" class="xml:nogutter:nocontrols"&gt;TF14061: The workspace WORKSPACENAME;AD\username does not exist.&lt;/pre&gt;&#xD;
        &lt;/div&gt;&#xD;
        &lt;p&gt;&#xD;
Things seemed pretty messed up... I found some clues as to what was required to get&#xD;
things working again:&lt;br&gt;&lt;a title="http://support.microsoft.com/kb/948679" href="http://support.microsoft.com/kb/948679"&gt;http://support.microsoft.com/kb/948679&lt;/a&gt;&lt;br&gt;&lt;a href="http://support.microsoft.com/kb/823278"&gt;http://support.microsoft.com/kb/823278&lt;/a&gt;&lt;br&gt;&lt;a title="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=454060&amp;amp;SiteID=1" href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=454060&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=454060&amp;amp;SiteID=1&lt;/a&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
According to the KnowledgeBase articles trying to create a new project while TFS is&#xD;
in this state may result in the following error:&#xD;
&lt;/p&gt;&#xD;
        &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:60223321-090b-4415-871f-aa94d0c4b6df" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&#xD;
          &lt;pre name="code" class="xml:nogutter:nocontrols"&gt;TF30170: the plugin Microsoft.ProjectCreationWizard.WorkItemTracking Failed during task WITS from group WorkItemTracking&lt;/pre&gt;&#xD;
        &lt;/div&gt;&#xD;
        &lt;p&gt;&#xD;
Basically Team Foundation Server has a bug that causes deleted accounts to not be&#xD;
resynched correctly and SharePoint doesn't handle recreated user accounts at all -&#xD;
you have to resynch them manually. Unfortunately in addition to this there is a bug&#xD;
in TFS SP1 which prevents TfsAdminUtilI from correcting the SIDS! You get the following&#xD;
error:&#xD;
&lt;/p&gt;&#xD;
        &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:607fa7d5-0c70-4c4b-9170-bfc3328f6a60" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&#xD;
          &lt;pre name="code" class="xml:nogutter:nocontrols"&gt;ERROR: Could not access database.&lt;/pre&gt;&#xD;
        &lt;/div&gt;&#xD;
        &lt;p&gt;&#xD;
In the end I managed to correct all the problems, here are the steps required:&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
Contact Microsoft Support and request the hotfix for &lt;a title="http://support.microsoft.com/kb/934216" href="http://support.microsoft.com/kb/934216"&gt;http://support.microsoft.com/kb/934216&lt;/a&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Install the hotfix... &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Follow the steps in &lt;a href="http://support.microsoft.com/kb/948679"&gt;http://support.microsoft.com/kb/948679&lt;/a&gt; to&#xD;
resynch the users SIDs in TFS &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Follow the steps in &lt;a href="http://support.microsoft.com/kb/823278"&gt;http://support.microsoft.com/kb/823278&lt;/a&gt; to&#xD;
resynch the users in SharePoint &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Recycle the TFS App Pool to force an update of all users and groups in TFS.&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
Look out with users who have their workspaces mapped to "c:\documents and settings\"&#xD;
the new user accounts cannot necessarily access their old files there since they now&#xD;
log on with a new account (which just happens to have the same name).&#xD;
&lt;/p&gt;&#xD;
      &lt;/body&gt;&lt;img src="http://feeds.feedburner.com/~r/Nsilverbullet/~4/E4BHCAfHJNM" height="1" width="1"/&gt;</description>
      <comments>http://www.nsilverbullet.net/CommentView,guid,0e2765b5-d5d8-42cf-ac57-b3b24b9adc4c.aspx</comments>
      <category>.Net</category>
      <category>Bugs</category>
      <category>Fixes</category>
      <category>Team System</category>
    <feedburner:origLink>http://www.nsilverbullet.net/2008/06/26/DuplicateUserAccountsInActiveDirectory.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.nsilverbullet.net/Trackback.aspx?guid=864e0389-f756-41a8-a3e2-6b156fe1ef2b</trackback:ping>
      <pingback:server>http://www.nsilverbullet.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.nsilverbullet.net/PermaLink,guid,864e0389-f756-41a8-a3e2-6b156fe1ef2b.aspx</pingback:target>
      <dc:creator>Herbj�rn Wilhelmsen</dc:creator>
      <wfw:comment>http://www.nsilverbullet.net/CommentView,guid,864e0389-f756-41a8-a3e2-6b156fe1ef2b.aspx</wfw:comment>
      <wfw:commentRss>http://www.nsilverbullet.net/SyndicationService.asmx/GetEntryCommentsRss?guid=864e0389-f756-41a8-a3e2-6b156fe1ef2b</wfw:commentRss>
      <slash:comments>1</slash:comments>
      
      <title>Jim Webber: "Business people are spaghettiheads!"</title>
      <guid isPermaLink="false">http://www.nsilverbullet.net/PermaLink,guid,864e0389-f756-41a8-a3e2-6b156fe1ef2b.aspx</guid>
      <link>http://feedproxy.google.com/~r/Nsilverbullet/~3/cQCEHAu8aWw/JimWebberBusinessPeopleAreSpaghettiheads.aspx</link>
      <pubDate>Thu, 29 May 2008 06:29:20 GMT</pubDate>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fOJGp251yWCay-hpguEI19M0vVU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fOJGp251yWCay-hpguEI19M0vVU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fOJGp251yWCay-hpguEI19M0vVU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fOJGp251yWCay-hpguEI19M0vVU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;h5&gt;This is a guest post by Herbjörn Wilhelmsen @ Objectware &#xD;
&lt;/h5&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;h2&gt;After working for years with business people and SOA Jim Webber has come around&#xD;
to thinking that fighting against real world complexity is neither successful nor&#xD;
valuable.&#xD;
&lt;/h2&gt;&#xD;
        &lt;img style="FLOAT: right; MARGIN: 15px" alt="Jim Webber handling spaghetti?" src="http://www.nsilverbullet.net/content/binary/Jim.Webber.2008.250.jpg" border="0"&gt;&lt;/img&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://jim.webber.name/" target="_blank"&gt;Dr Jim "World Wide" Webber&lt;/a&gt; -&#xD;
an author as well as global architecture lead for &lt;a href="http://www.thoughtworks.com/" target="_blank"&gt;Thoughtworks&lt;/a&gt; -&#xD;
gave an interview last month after finishing his "Guerilla SOA" presentation at the &lt;a href="http://www.expertzone.se/dev08/speakers.aspx" target="_blank"&gt;Developer&#xD;
Summit 2008&lt;/a&gt; conference in Stockholm. &#xD;
&lt;/p&gt;&#xD;
        &lt;h4&gt;Watch the interview to see Jim Webber&#xD;
&lt;/h4&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
Say that &lt;b&gt;business people are spaghettiheads&lt;/b&gt;, tell us why &lt;b&gt;business people&#xD;
scare him&lt;/b&gt; and that &lt;b&gt;business people should be the architects&lt;/b&gt; of our projects! &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;b&gt;Come down hard&lt;/b&gt; on message oriented middleware (&lt;b&gt;ESB&lt;/b&gt;’s) and &lt;b&gt;WSDL&lt;/b&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Give his &lt;b&gt;definition of a what a service should be&lt;/b&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Talk about why &lt;b&gt;&lt;a href="http://jim.webber.name/2005/04/16/26e0bdcf-65de-4cce-9c0b-1f35bc43620e.aspx" target="_blank"&gt;M&lt;a&gt;&lt;a href="http://jim.webber.name/2005/02/02/31a34962-c0da-4ec2-93ff-a8c99f3659f1.aspx" target="_blank"&gt;E&lt;/a&gt;&lt;a href="http://savas.parastatidis.name/2004/11/09/92ede84c-ca1f-41ab-8feb-8ba50d07e86f.aspx" target="_blank"&gt;S&lt;/a&gt;&lt;a href="http://savas.parastatidis.name/2005/01/29/544a6902-40e1-47e8-a51c-18776f3dd036.aspx" target="_blank"&gt;T&lt;/a&gt; and &lt;a href="http://www.ssdl.org/" target="_blank"&gt;SSDL&lt;/a&gt; makes&#xD;
for better SOA&#xD;
&lt;/a&gt;&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Describe how &lt;b&gt;MEST and SSDL helps you handle versioning problems in an SOA&lt;/b&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Talk about &lt;b&gt;his next big thing: Middleware!&lt;/b&gt; (despite his grudge for ESB’s) &#xD;
&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Jim does a great job - he explains things that seem contradictory in a very smooth&#xD;
and straightforward way and in the end you just can't help yourself: You have to like&#xD;
him! &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Thanks for the interview Jim! &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I also want to thank my colleague Joshua Anthony (the owner of this blog) for standing&#xD;
behind the camera and doing a lot of post production work! &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
video://jim%20webber%201.flv,jimwebber_part1.jpg &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
video://jim%20webber%202.flv,jimwebber_part2.jpg &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;b&gt;Update&lt;/b&gt;: &#xD;
&lt;br&gt;&#xD;
During the interview Jim talked about the SOYA project and a case study. Here are&#xD;
some links: &#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://soya.sourceforge.net/" target="_blank"&gt;SOYA&lt;/a&gt; @ sourceforge &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
A description of the &lt;a href="http://soya.sourceforge.net/files/thesis.pdf " target="_blank"&gt;LIXI&#xD;
case study&lt;/a&gt; can be found inside Patric Fornasier’s master thesis &#xD;
&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
      &lt;/body&gt;&lt;img src="http://feeds.feedburner.com/~r/Nsilverbullet/~4/cQCEHAu8aWw" height="1" width="1"/&gt;</description>
      <comments>http://www.nsilverbullet.net/CommentView,guid,864e0389-f756-41a8-a3e2-6b156fe1ef2b.aspx</comments>
      <category>Architecture</category>
      <category>Interviews</category>
      <category>SOA</category>
    <feedburner:origLink>http://www.nsilverbullet.net/2008/05/29/JimWebberBusinessPeopleAreSpaghettiheads.aspx</feedburner:origLink></item>
  </channel>
</rss>
