<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0">
  <channel>
    <title>.NET Meanderings</title>
    <link>http://www.dotnetconsult.co.uk/weblog/</link>
    <description />
    <copyright>Copyright 2003 Richard Blewett</copyright>
    <lastBuildDate>Wed, 06 Jun 2007 16:57:51 GMT</lastBuildDate>
    <generator>ChrisAn's BlogX</generator>
    <managingEditor>richard@nospam.dotnetconsult.co.uk</managingEditor>
    <webMaster>richard@nospam.dotnetconsult.co.uk</webMaster>
    <item>
      <title>My blog has moved</title>
      <guid>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/36988ba8-a1bc-4ba7-8e3b-e3689dc38057</guid>
      <link>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/36988ba8-a1bc-4ba7-8e3b-e3689dc38057</link>
      <pubDate>Wed, 06 Jun 2007 16:57:51 GMT</pubDate>
      <description>&lt;p&gt;My blog has moved over to dasBlog and can be found &lt;a href="http://www.dotnetconsult.co.uk/weblog2"&gt;Here&lt;/a&gt;</description>
      <comments>http://www.dotnetconsult.co.uk/weblog/commentview.aspx/36988ba8-a1bc-4ba7-8e3b-e3689dc38057</comments>
      <category>blog</category>
    </item>
    <item>
      <title>Sorry for the loss of service</title>
      <guid>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/015c9d35-0225-43ee-997c-26aff57ac233</guid>
      <link>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/015c9d35-0225-43ee-997c-26aff57ac233</link>
      <pubDate>Tue, 05 Jun 2007 14:39:43 GMT</pubDate>
      <description>&lt;p&gt;
My blog has been dead for a while due to someone managing to enter a comment that broke the very old blog engine I use (BlogX). Now I have this fixed I will also look at moving to a more modern blog engine ... watch this space
&lt;/p&gt;</description>
      <comments>http://www.dotnetconsult.co.uk/weblog/commentview.aspx/015c9d35-0225-43ee-997c-26aff57ac233</comments>
      <category>blog</category>
    </item>
    <item>
      <title>The connected systems roadshow goes to Dublin</title>
      <guid>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/9d64c0cd-da39-4864-a97f-ced639352e05</guid>
      <link>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/9d64c0cd-da39-4864-a97f-ced639352e05</link>
      <pubDate>Mon, 12 Feb 2007 14:34:19 GMT</pubDate>
      <description>&lt;p&gt;We're running another Connected Systems Roadshow in Dublin
next week.It
is being held at the &lt;a
 href="http://www.jurys-dublin-hotels.com/berkeleycourt_dublin"&gt;Berkley
Court Hotel&lt;/a&gt; on the 21st February starting at 10:00am. We'll
be talking about using WCF, BizTalk and SQL Service Broker in
distributed systems.&lt;/p&gt;
&lt;p&gt;If you would like to attend please register &lt;a
 href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032326573&amp;amp;Culture=en-IE"&gt;here&lt;/a&gt;.&lt;/p&gt;
</description>
      <comments>http://www.dotnetconsult.co.uk/weblog/commentview.aspx/9d64c0cd-da39-4864-a97f-ced639352e05</comments>
      <category>.NET</category>
    </item>
    <item>
      <title>An other successful UK BizTalk User Group meeting</title>
      <guid>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/1d2c9d89-153e-4b79-a026-a6cb5aa588ff</guid>
      <link>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/1d2c9d89-153e-4b79-a026-a6cb5aa588ff</link>
      <pubDate>Mon, 12 Feb 2007 14:16:50 GMT</pubDate>
      <description>The second meeting of the UK BizTalk User Group took place in London on
February 6th. We had talks on Using BAM for realtime aggregation and
RFID. Many thanks to Ben Goeltz and Simon Holloway for those talks. The
next meeting date has yet to be announced but should be sometime in May
(as long as we can find a venue as the Microsoft office in Great
Poultney Street, where we have run both of the meetings so far, is
closing down). I'll post an update when I have got more concrete
details for date and venue.
</description>
      <comments>http://www.dotnetconsult.co.uk/weblog/commentview.aspx/1d2c9d89-153e-4b79-a026-a6cb5aa588ff</comments>
      <category>biztalk</category>
    </item>
    <item>
      <title>Connected Systems Roadshow Slides and Demos</title>
      <guid>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/1d88b2ff-d6f9-483d-8667-5a0cfc8b3784</guid>
      <link>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/1d88b2ff-d6f9-483d-8667-5a0cfc8b3784</link>
      <pubDate>Fri, 01 Dec 2006 12:33:45 GMT</pubDate>
      <description>&lt;p&gt;Thanks to everyone that attended the DM Connected Systems
Roadshow in TVP over the last two days myself, &lt;a
 href="http://nielsb.wordpress.com/"&gt;Niels&lt;/a&gt; and &lt;a
 href="http://www.leastprivilege.com/"&gt;Dom&lt;/a&gt; had a
blast.&lt;/p&gt;
&lt;p&gt;As I promised, the slides and demos from the track me and
Niels did are now available &lt;a
 href="http://www.dotnetconsult.co.uk/samples/csroadshow.zip"&gt;here&lt;/a&gt;.
Dom's track materials are linked from &lt;a
 href="http://www.leastprivilege.com/TVPSlides.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Onwards to the next roadshow - watch this space for details&lt;/p&gt;
</description>
      <comments>http://www.dotnetconsult.co.uk/weblog/commentview.aspx/1d88b2ff-d6f9-483d-8667-5a0cfc8b3784</comments>
      <category>.NET</category>
    </item>
    <item>
      <title>WCF Self hosting snippet</title>
      <guid>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/a690ad56-3239-428f-89ac-f1f2245dc2a4</guid>
      <link>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/a690ad56-3239-428f-89ac-f1f2245dc2a4</link>
      <pubDate>Sun, 08 Oct 2006 14:44:47 GMT</pubDate>
      <description>&lt;p&gt;
While teaching &lt;a
 href="http://www.develop.com/training/course.aspx?id=376"&gt;Essential
WCF&lt;/a&gt; last week I got sick of creating the skeleton for a
simple self hosted service. &lt;a href="http://www.leastprivilege.com/"&gt;Dom&lt;/a&gt;
(who was co-teaching with me) suggested I write a snippet for it. This
is what I came up with:&lt;/p&gt;
&lt;p style="font-family: monospace;"&gt;&amp;lt;?xml
version="1.0" encoding="utf-8" ?&amp;gt;&lt;br&gt;
&amp;lt;CodeSnippets&amp;nbsp;
xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;CodeSnippet
Format="1.0.0"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Header&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Title&amp;gt;servicehost&amp;lt;/Title&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Shortcut&amp;gt;servicehost&amp;lt;/Shortcut&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Description&amp;gt;Code snippet
for creating a simple service&amp;lt;/Description&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Author&amp;gt;Richard
Blewett&amp;lt;/Author&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;SnippetTypes&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;lt;SnippetType&amp;gt;Expansion&amp;lt;/SnippetType&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/SnippetTypes&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/Header&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Snippet&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Declarations&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Literal&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ID&amp;gt;namespace&amp;lt;/ID&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ToolTip&amp;gt;Namespace&amp;lt;/ToolTip&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Default&amp;gt;Service&amp;lt;/Default&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/Literal&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Literal&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;ID&amp;gt;contract&amp;lt;/ID&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;ToolTip&amp;gt;Contract
name&amp;lt;/ToolTip&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;Default&amp;gt;IContract&amp;lt;/Default&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;lt;/Literal&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;lt;Literal&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;ID&amp;gt;service&amp;lt;/ID&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;ToolTip&amp;gt;Service
implementation&amp;lt;/ToolTip&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;Default&amp;gt;Service&amp;lt;/Default&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;lt;/Literal&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;lt;Literal&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;ID&amp;gt;field&amp;lt;/ID&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;ToolTip&amp;gt;The variable
backing this property&amp;lt;/ToolTip&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;Default&amp;gt;myVar&amp;lt;/Default&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;lt;/Literal&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Declarations&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Code Language="csharp"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;![CDATA[using System;&lt;br&gt;
using System.Collections.Generic;&lt;br&gt;
using System.Text;&lt;br&gt;
using System.ServiceModel;&lt;br&gt;
&lt;br&gt;
namespace $namespace$&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; [ServiceContract]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; interface $contract$&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
[OperationContract]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
void Method();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; class $service$ : $contract$$end$&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; class Program&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
static void Main(string[] 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;
using (ServiceHost host = new ServiceHost(typeof($service$), new
Uri("http://localhost/$service$")))&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;
host.Open();&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;
Console.WriteLine("Service Ready ...");&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;
Console.ReadLine();&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;
host.Close();&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; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&lt;br&gt;
}&lt;br&gt;
]]&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Code&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/Snippet&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/CodeSnippet&amp;gt;&lt;br&gt;
&amp;lt;/CodeSnippets&amp;gt;&lt;/p&gt;
&lt;p&gt;Hopefully someone will find this useful&lt;/p&gt;
</description>
      <comments>http://www.dotnetconsult.co.uk/weblog/commentview.aspx/a690ad56-3239-428f-89ac-f1f2245dc2a4</comments>
      <category>.net</category>
    </item>
    <item>
      <title>Something strange with the NetPeerTcpBinding validator</title>
      <guid>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/bc549032-ca5f-48df-87c9-bba8d7ff841a</guid>
      <link>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/bc549032-ca5f-48df-87c9-bba8d7ff841a</link>
      <pubDate>Sun, 08 Oct 2006 14:25:59 GMT</pubDate>
      <description>&lt;p&gt;I've been head down in WCF for a while now, culminating with
teaching
the first run of &lt;a href="http://www.develop.com"&gt;DevelopMentor&lt;/a&gt;'s
&lt;a href="http://www.develop.com/training/course.aspx?id=376"&gt;Essential
WCF&lt;/a&gt; course last week.&lt;/p&gt;
&lt;p&gt;After the Peer to Peer session I was talking to one of the
students about the possiblity of using the technology for scenarios
other than writing your own version of Windows Live Messenger (which is
what all the demos seem to do). I decided to have a play around and
along the way discovered a bug in the NetPeerTcpBinding validator.&lt;/p&gt;
&lt;p&gt;I'd defined by config file thus:&lt;/p&gt;
&lt;pre&gt;&amp;lt;bindings&amp;gt;&lt;br&gt;  &amp;lt;netPeerTcpBinding&amp;gt;&lt;br&gt;    &amp;lt;binding name="peer" port="0"&amp;gt;&lt;br&gt;      &amp;lt;resolver mode="Custom"&amp;gt;&lt;br&gt;        &amp;lt;custom address="http://localhost/stockPeerResolver"&lt;br&gt;                binding="basicHttpBinding" /&amp;gt;&lt;br&gt;      &amp;lt;/resolver&amp;gt;&lt;br&gt;      &amp;lt;security mode="None" /&amp;gt;&lt;br&gt;    &amp;lt;/binding&amp;gt;&lt;br&gt;  &amp;lt;/netPeerTcpBinding&amp;gt;&lt;br&gt;&amp;lt;/bindings&amp;gt;&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;The problem was I kept getting an error everytime I tried to
create my &lt;span style="font-family: monospace;"&gt;DuplexChannel&lt;/span&gt;.
The error read:&lt;/p&gt;
&lt;p style="font-style: italic;"&gt;"Specified resolver
settings are not enough to create a valid resolver.&amp;nbsp; Please
ensure that a ResolverType and an Address is specified for the custom
resolver."&lt;/p&gt;
Now, since I was developing on Win2003 I had to write my own Peer
Resolver (PNRP isn't available on Win2003). However, I was using WCF to
get to the resolver so I didn;t actually need to specify a custom type
in the binding - just the address and binding to get to the resolver.
After puzzling about this for some time - looking at another example I
had that was working - I discovered some very strange behavior.
Everything works if I modify the config file as folllows:&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;&amp;lt;bindings&amp;gt;&lt;br&gt;  &amp;lt;netPeerTcpBinding&amp;gt;&lt;br&gt;    &amp;lt;binding name="peer" port="0"&amp;gt;&lt;br&gt;      &amp;lt;resolver mode="Custom"&amp;gt;&lt;br&gt;        &amp;lt;custom address="http://localhost/stockPeerResolver"&lt;br&gt;                binding="basicHttpBinding"&lt;br&gt; &lt;span
 style="font-weight: bold;"&gt;               bindingConfiguration="wtf"&lt;/span&gt;/&amp;gt;&lt;br&gt;      &amp;lt;/resolver&amp;gt;&lt;br&gt;      &amp;lt;security mode="None" /&amp;gt;&lt;br&gt;    &amp;lt;/binding&amp;gt;&lt;br&gt;  &amp;lt;/netPeerTcpBinding&amp;gt;&lt;br&gt;  &amp;lt;basicHttpBinding&amp;gt;&lt;br&gt; &lt;span
 style="font-weight: bold;"&gt;   &amp;lt;binding name="wtf" /&amp;gt;&lt;/span&gt;&lt;br&gt;  &amp;lt;/basicHttpBinding&amp;gt;&lt;br&gt;&amp;lt;/bindings&amp;gt;&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;
So I had to add a reference to a binding configuration that did nothing
and it all suddenly works, even though the channel stack is built
exactly the same.&lt;/p&gt;
</description>
      <comments>http://www.dotnetconsult.co.uk/weblog/commentview.aspx/bc549032-ca5f-48df-87c9-bba8d7ff841a</comments>
      <category>.net</category>
    </item>
    <item>
      <title>It lives!</title>
      <guid>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/8593ce2e-ec7b-4e21-b33b-6eaf59782264</guid>
      <link>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/8593ce2e-ec7b-4e21-b33b-6eaf59782264</link>
      <pubDate>Sun, 08 Oct 2006 13:33:31 GMT</pubDate>
      <description>Well its been a long time since I blogged so its time to get back into
the groove. Hopefully this time I'll make more regular posts.
</description>
      <comments>http://www.dotnetconsult.co.uk/weblog/commentview.aspx/8593ce2e-ec7b-4e21-b33b-6eaf59782264</comments>
      <category>life</category>
    </item>
    <item>
      <title>Hmmm ... where have my menu items gone?</title>
      <guid>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/ead0636c-e86a-46a5-8241-76f343102556</guid>
      <link>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/ead0636c-e86a-46a5-8241-76f343102556</link>
      <pubDate>Thu, 30 Mar 2006 10:56:47 GMT</pubDate>
      <description>&lt;p&gt;I worked with the carnage that was the complex relationship
between
VS2005 and SQL 2005 betas and CTPs for pretty much the entire beta
cycle and got used to strange thinngs happening in the VS IDE. On
release I&amp;nbsp; installed the &amp;nbsp;RTM bits and everything
looked fine. However, teaching for &lt;a href="http://www.develop.com"&gt;DevelopMentor&lt;/a&gt;
I frequently end up using machines that I haven't myself configured. I
started to notice that the menus were sometimes different and took this
to be that they were different because I was debugging / editing a
certain file type / etc. &lt;/p&gt;
&lt;p&gt;
However, at a recent &lt;a
 href="http://www.develop.com/us/training/course.aspx?id=273"&gt;Guerrilla.NET&lt;/a&gt;
we had a conflict between the lab instructions and VS setup that meant
we had to investigate why a menu item wasn't appearing. It turns out
there are two important decisions that affect your menus. The first is
the question that you answer when you use VS for the first time "what
kind of developer are you" and depending on what you select you get
tuned menus. I believe that selecting "Visual Studio Developer" gets
you the full set.&lt;/p&gt;
&lt;p&gt;The second issue is more subtle though. The order in which you
install SQL Server 2005 and VS 2005 is significant. SQL Server 2005 can
install the Business Intelligence Workbench which is hosted in the VS
shell. If you install SQL Server 2005 first you&amp;nbsp;may find that
your menus are restricted to the BI Workbench items (an example of this
is having only two items on your Debug menu).&lt;/p&gt;
&lt;p&gt;The remedy to this is not obvious. I spent some time trawling
through the &lt;span
 style="font-family: Courier New,Courier,monospace; font-weight: bold;"&gt;Tools/Options&lt;/span&gt;
dialog to no avail. Finally I discovered the feature was controlled by &lt;span
 style="font-family: Courier New; font-weight: bold;"&gt;Tools /
Import and Export Settings&lt;/span&gt;. If you choose to import to you
can import one of the other configurations. Hopefully this post will
save others some time and frustration.&lt;/p&gt;
</description>
      <comments>http://www.dotnetconsult.co.uk/weblog/commentview.aspx/ead0636c-e86a-46a5-8241-76f343102556</comments>
      <category>.NET</category>
    </item>
    <item>
      <title>Thread.Abort still considered harmful</title>
      <guid>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/3e006a49-d8d0-4dc4-ace8-3b480bb92a8a</guid>
      <link>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/3e006a49-d8d0-4dc4-ace8-3b480bb92a8a</link>
      <pubDate>Tue, 07 Mar 2006 14:35:34 GMT</pubDate>
      <description>Back in the days of .NET 1.1 there was a nasty issue with &lt;span
 style="font-family: Courier New;"&gt;Thread.Abort&lt;/span&gt;
where the &lt;span style="font-family: Courier New;"&gt;ThreadAbortException&lt;/span&gt;
could be thrown out of a &lt;span style="font-family: Courier New;"&gt;finally&lt;/span&gt;
block this was one of the reasons you should not have called&lt;span
 style="font-family: Courier New;"&gt; Thread.Abort&lt;/span&gt;
in 1.1. For v2.0 this no longer happens, however, this can have its own
issues. Consider the following code: &lt;br&gt;
&lt;br&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;span
 style="background-color: rgb(255, 255, 255); font-family: Courier New;"&gt;&lt;span
 style="color: rgb(51, 51, 255);"&gt;class&lt;/span&gt; &lt;/span&gt;&lt;span
 style="font-family: Courier New;"&gt;Program&lt;/span&gt;&lt;br
 style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;span
 style="color: rgb(51, 51, 255); font-family: Courier New;"&gt;static
void&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;
Main(&lt;/span&gt;&lt;span
 style="color: rgb(51, 51, 255); font-family: Courier New;"&gt;string&lt;/span&gt;&lt;span
 style="font-family: Courier New;"&gt;[] args)&lt;/span&gt;&lt;br
 style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Thread t = &lt;/span&gt;&lt;span
 style="color: rgb(51, 51, 255); font-family: Courier New;"&gt;new&lt;/span&gt;&lt;span
 style="font-family: Courier New;"&gt; Thread(DoWork);&lt;/span&gt;&lt;br
 style="font-family: Courier New;"&gt;
&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
t.IsBackground = &lt;/span&gt;&lt;span
 style="color: rgb(51, 51, 255); font-family: Courier New;"&gt;true&lt;/span&gt;&lt;span
 style="font-family: Courier New;"&gt;;&lt;/span&gt;&lt;br
 style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
t.Start();&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Thread.Sleep(500);&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;span
 style="color: rgb(51, 51, 255); font-family: Courier New;"&gt;static
void&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;
DoWork()&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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&gt;&lt;span
 style="color: rgb(51, 51, 255); font-family: Courier New;"&gt;try&lt;/span&gt;&lt;br
 style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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&gt;&lt;span
 style="color: rgb(51, 51, 255); font-family: Courier New;"&gt;finally&lt;/span&gt;&lt;br
 style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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&gt;&lt;span
 style="color: rgb(51, 51, 255); font-family: Courier New;"&gt;while&lt;/span&gt;&lt;span
 style="font-family: Courier New;"&gt; (&lt;/span&gt;&lt;span
 style="color: rgb(51, 51, 255); font-family: Courier New;"&gt;true&lt;/span&gt;&lt;span
 style="font-family: Courier New;"&gt;)&lt;/span&gt;&lt;br
 style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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;
Console.Write(".");&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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;
Thread.Sleep(200);&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;
&amp;nbsp; }&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
This terminates quite happly as the thread is a back ground thread. Now
lets change the code slightly:&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-family: Courier New;"&gt;
&lt;/span&gt;&lt;span
 style="background-color: rgb(255, 255, 255); font-family: Courier New;"&gt;&lt;span
 style="color: rgb(51, 51, 255);"&gt;class&lt;/span&gt; &lt;/span&gt;&lt;span
 style="font-family: Courier New;"&gt;Program&lt;/span&gt;&lt;br
 style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;span
 style="color: rgb(51, 51, 255); font-family: Courier New;"&gt;static
void&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;
Main(&lt;/span&gt;&lt;span
 style="color: rgb(51, 51, 255); font-family: Courier New;"&gt;string&lt;/span&gt;&lt;span
 style="font-family: Courier New;"&gt;[] args)&lt;/span&gt;&lt;br
 style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Thread t = &lt;/span&gt;&lt;span
 style="color: rgb(51, 51, 255); font-family: Courier New;"&gt;new&lt;/span&gt;&lt;span
 style="font-family: Courier New;"&gt; Thread(DoWork);&lt;/span&gt;&lt;br
 style="font-family: Courier New;"&gt;
&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
t.IsBackground = &lt;/span&gt;&lt;span
 style="color: rgb(51, 51, 255); font-family: Courier New;"&gt;true&lt;/span&gt;&lt;span
 style="font-family: Courier New;"&gt;;&lt;/span&gt;&lt;br
 style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
t.Start();&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Thread.Sleep(500);&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
Console.WriteLine("aborting");&lt;/span&gt;&lt;br
 style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
t.Abort();&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;span
 style="color: rgb(51, 51, 255); font-family: Courier New;"&gt;static
void&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;
DoWork()&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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&gt;&lt;span
 style="color: rgb(51, 51, 255); font-family: Courier New;"&gt;try&lt;/span&gt;&lt;br
 style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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&gt;&lt;span
 style="color: rgb(51, 51, 255); font-family: Courier New;"&gt;finally&lt;/span&gt;&lt;br
 style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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&gt;&lt;span
 style="color: rgb(51, 51, 255); font-family: Courier New;"&gt;while&lt;/span&gt;&lt;span
 style="font-family: Courier New;"&gt; (&lt;/span&gt;&lt;span
 style="color: rgb(51, 51, 255); font-family: Courier New;"&gt;true&lt;/span&gt;&lt;span
 style="font-family: Courier New;"&gt;)&lt;/span&gt;&lt;br
 style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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;
Console.Write(".");&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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;
Thread.Sleep(200);&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&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&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;
&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;
&amp;nbsp; }&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
All we've done here is abort the thread. However, because the &lt;span
 style="font-family: Courier New;"&gt;Abort&lt;/span&gt; will
not take place until the thread is out of the &lt;span
 style="font-family: Courier New;"&gt;finally&lt;/span&gt;
block, Abort does not return and so the program now doesn't terminate
at all. So even though some of the problems with &lt;span
 style="font-family: Courier New;"&gt;Thread.Abort&lt;/span&gt;
have been fixed you still shouldn't call this API.
</description>
      <comments>http://www.dotnetconsult.co.uk/weblog/commentview.aspx/3e006a49-d8d0-4dc4-ace8-3b480bb92a8a</comments>
      <category>.NET</category>
    </item>
    <item>
      <title>Re-MVP'd</title>
      <guid>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/bdb45c92-fd06-413a-94b6-04236b0083e2</guid>
      <link>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/bdb45c92-fd06-413a-94b6-04236b0083e2</link>
      <pubDate>Thu, 05 Jan 2006 15:27:51 GMT</pubDate>
      <description>&lt;p&gt;Just found out that I've been awarded &lt;a href="http://mvp.support.microsoft.com/"&gt;MVP&lt;/a&gt; status again for this year so this is just to say thanks to those involved and you never know - I might even get the logo on to my website this year ;-)&lt;/p&gt;</description>
      <comments>http://www.dotnetconsult.co.uk/weblog/commentview.aspx/bdb45c92-fd06-413a-94b6-04236b0083e2</comments>
      <category>life</category>
    </item>
    <item>
      <title>It Lives!!!</title>
      <guid>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/b2717250-6c42-4e71-a046-0a414b2de13e</guid>
      <link>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/b2717250-6c42-4e71-a046-0a414b2de13e</link>
      <pubDate>Mon, 02 Jan 2006 10:54:44 GMT</pubDate>
      <description>&lt;p&gt;After more than a month of my blog offline I've finally got it back up and running.&lt;/p&gt;
&lt;p&gt;The server I share with &lt;a href="http://www.interact-sw.co.uk/iangblog/"&gt;Ian Griffiths&lt;/a&gt; died horribly at the end of November. However, Ian being far more concientious than me got his blog up and running fairly quickly after the server was repaired. i got snowed under by alot of &lt;a href="http://www.develop.com"&gt;teaching&lt;/a&gt; and the Christmas season but finally I've spent some time copying files around and changing server configuration settings.&lt;/p&gt;
&lt;p&gt;Its good to be back online&lt;/p&gt;</description>
      <comments>http://www.dotnetconsult.co.uk/weblog/commentview.aspx/b2717250-6c42-4e71-a046-0a414b2de13e</comments>
      <category>life</category>
    </item>
    <item>
      <title>H'asta la Vista</title>
      <guid>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/5f6a7094-0bf0-442a-b433-d0456a2d4b2f</guid>
      <link>http://www.dotnetconsult.co.uk/weblog/permalink.aspx/5f6a7094-0bf0-442a-b433-d0456a2d4b2f</link>
      <pubDate>Tue, 04 Oct 2005 12:06:34 GMT</pubDate>
      <description>&lt;p&gt;Well I gave it my best shot but unfortunately there were too
many bits
missing for me to be able to run with it as the platform for running
the &lt;a href="http://www.develop.com/training/course.aspx?id=339"&gt;Guerrilla
WinFX class on Nov 7th&lt;/a&gt;. I've repaved on to Win2003 now
and we'll run on that.&lt;/p&gt;
&lt;p&gt;The three things that were the crunch for me were:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;No IIS&lt;/li&gt;
  &lt;li&gt;No MSMQ&lt;/li&gt;
  &lt;li&gt;No ability to project through a projector (or at least none
that I could get to work)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So its a wait for beta 2 and re-evaluate then&lt;/p&gt;
</description>
      <comments>http://www.dotnetconsult.co.uk/weblog/commentview.aspx/5f6a7094-0bf0-442a-b433-d0456a2d4b2f</comments>
      <category>Vista</category>
    </item>
  </channel>
</rss>