<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Kev's Big Log - .NET</title>
    <link>http://blog.zygonia.net/</link>
    <description>Plugging holes in the universe, what are you doing today?</description>
    <image>
      <url>http://blog.zygonia.net/images/tism.jpg</url>
      <title>Kev's Big Log - .NET</title>
      <link>http://blog.zygonia.net/</link>
    </image>
    <language>en-us</language>
    <copyright>Kevin Kenny</copyright>
    <lastBuildDate>Wed, 26 Jul 2006 23:25:57 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>kevin.kenny@zygonia.net</managingEditor>
    <webMaster>kevin.kenny@zygonia.net</webMaster>
    <item>
      <trackback:ping>http://blog.zygonia.net/Trackback.aspx?guid=d9a4801e-e5db-4177-84f3-576616e51062</trackback:ping>
      <pingback:server>http://blog.zygonia.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.zygonia.net/PermaLink,guid,d9a4801e-e5db-4177-84f3-576616e51062.aspx</pingback:target>
      <dc:creator>Kev</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Scheduled for Q3 this year - <a href="http://msdn.microsoft.com/vstudio/support/servicing/sp1_vs05/default.aspx">http://msdn.microsoft.com/vstudio/support/servicing/sp1_vs05/default.aspx</a></p>
        <p>
Looking forward to seeing what they've fixed/tweaked as I've got a short list (in
my head and should probably write down) of wierdness they'll hopefully have ironed
out. But overall it's a nice tool. Makes VS03 feel yesteryear already.
</p>
        <img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=d9a4801e-e5db-4177-84f3-576616e51062" />
      </body>
      <title>VS05 Service Pack 1</title>
      <guid isPermaLink="false">http://blog.zygonia.net/PermaLink,guid,d9a4801e-e5db-4177-84f3-576616e51062.aspx</guid>
      <link>http://blog.zygonia.net/2006/07/26/VS05ServicePack1.aspx</link>
      <pubDate>Wed, 26 Jul 2006 23:25:57 GMT</pubDate>
      <description>&lt;p&gt;
Scheduled for&amp;nbsp;Q3 this year - &lt;a href="http://msdn.microsoft.com/vstudio/support/servicing/sp1_vs05/default.aspx"&gt;http://msdn.microsoft.com/vstudio/support/servicing/sp1_vs05/default.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Looking forward to seeing what they've fixed/tweaked as I've got a short list (in
my head and should probably write down) of wierdness they'll hopefully have ironed
out. But overall it's a nice tool. Makes VS03 feel yesteryear already.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=d9a4801e-e5db-4177-84f3-576616e51062" /&gt;</description>
      <category>.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.zygonia.net/Trackback.aspx?guid=041995bd-df90-4e74-8f84-a846be8b8a6d</trackback:ping>
      <pingback:server>http://blog.zygonia.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.zygonia.net/PermaLink,guid,041995bd-df90-4e74-8f84-a846be8b8a6d.aspx</pingback:target>
      <dc:creator>Kev</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Yay! MS have a shiney new website just for IIS at <a href="http://www.iis.net">http://www.iis.net</a>.
If I were you, my first port of call would be the .NET show interview with <a href="http://blogs.iis.net/bills/default.aspx">Bill
Staples</a> and <a href="http://weblogs.asp.net/scottgu">Scot Guthrie</a> where they
show off some of the really cool features that are going to be part of IIS7.
</p>
        <img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=041995bd-df90-4e74-8f84-a846be8b8a6d" />
      </body>
      <title>Microsofts new IIS Website</title>
      <guid isPermaLink="false">http://blog.zygonia.net/PermaLink,guid,041995bd-df90-4e74-8f84-a846be8b8a6d.aspx</guid>
      <link>http://blog.zygonia.net/2006/05/25/MicrosoftsNewIISWebsite.aspx</link>
      <pubDate>Thu, 25 May 2006 23:04:38 GMT</pubDate>
      <description>&lt;p&gt;
Yay! MS have a shiney new website just for IIS at &lt;a href="http://www.iis.net"&gt;http://www.iis.net&lt;/a&gt;.
If I were you, my first port of call would be the .NET show interview with &lt;a href="http://blogs.iis.net/bills/default.aspx"&gt;Bill
Staples&lt;/a&gt; and &lt;a href="http://weblogs.asp.net/scottgu"&gt;Scot Guthrie&lt;/a&gt; where they
show off some of the really cool features that are going to be part of IIS7.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=041995bd-df90-4e74-8f84-a846be8b8a6d" /&gt;</description>
      <category>.NET</category>
      <category>Techy</category>
    </item>
    <item>
      <trackback:ping>http://blog.zygonia.net/Trackback.aspx?guid=0321f34b-06ac-4e1f-9dc2-b7680ed7deca</trackback:ping>
      <pingback:server>http://blog.zygonia.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.zygonia.net/PermaLink,guid,0321f34b-06ac-4e1f-9dc2-b7680ed7deca.aspx</pingback:target>
      <dc:creator>Kev</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://blogs.msdn.com/tess/default.aspx">Tess Ferrandez</a> has a <a href="http://blogs.msdn.com/tess/archive/2006/04/13/575364.aspx">great
article</a> on why debug=true is generally a bad thing to leave lying around in your
ASP.NET app's web.config file. This can be a pain for hosting companies like the one
I work for when customers upload their app still as a debug build and with debug=true
left switched on. We have shared servers that have up to 700 websites on them and
it took us a fair bit of time and effort to tune the Application Pools to work around
this problem in ASP.NET 1.x. Fortunately now we get to turn it off globally in the
machine.config file in ASP.NET 2.0.
</p>
        <img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=0321f34b-06ac-4e1f-9dc2-b7680ed7deca" />
      </body>
      <title>ASP.NET and debug=true</title>
      <guid isPermaLink="false">http://blog.zygonia.net/PermaLink,guid,0321f34b-06ac-4e1f-9dc2-b7680ed7deca.aspx</guid>
      <link>http://blog.zygonia.net/2006/04/14/ASPNETAndDebugtrue.aspx</link>
      <pubDate>Fri, 14 Apr 2006 00:41:38 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blogs.msdn.com/tess/default.aspx"&gt;Tess Ferrandez&lt;/a&gt; has a &lt;a href="http://blogs.msdn.com/tess/archive/2006/04/13/575364.aspx"&gt;great
article&lt;/a&gt; on why debug=true is generally a bad thing to leave lying around in your
ASP.NET app's web.config file. This can be a pain for hosting companies like the one
I work for when customers upload their app still as a debug build and with debug=true
left switched on. We have shared servers that have up to 700 websites on them and
it took us a fair bit of time and effort to tune the Application Pools to work around
this problem in ASP.NET 1.x. Fortunately now we get to turn it off globally in the
machine.config file in ASP.NET 2.0.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=0321f34b-06ac-4e1f-9dc2-b7680ed7deca" /&gt;</description>
      <category>.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.zygonia.net/Trackback.aspx?guid=02143dbd-e789-4d2d-bf9a-df520778741d</trackback:ping>
      <pingback:server>http://blog.zygonia.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.zygonia.net/PermaLink,guid,02143dbd-e789-4d2d-bf9a-df520778741d.aspx</pingback:target>
      <dc:creator>Kev</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Doug Stewart <a href="http://blogs.msdn.com/dougste/archive/2006/04/05/568671.aspx">has
a nice article</a> about keeping your production ASP.NET apps happy and healthy. All
good stuff.
</p>
        <img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=02143dbd-e789-4d2d-bf9a-df520778741d" />
      </body>
      <title>Doug Stewart's "Nine tips for a healthy "in production" ASP.NET application"</title>
      <guid isPermaLink="false">http://blog.zygonia.net/PermaLink,guid,02143dbd-e789-4d2d-bf9a-df520778741d.aspx</guid>
      <link>http://blog.zygonia.net/2006/04/13/DougStewartsNineTipsForAHealthyInProductionASPNETApplication.aspx</link>
      <pubDate>Thu, 13 Apr 2006 10:01:23 GMT</pubDate>
      <description>&lt;p&gt;
Doug Stewart &lt;a href="http://blogs.msdn.com/dougste/archive/2006/04/05/568671.aspx"&gt;has
a nice article&lt;/a&gt; about keeping your production ASP.NET apps happy and healthy. All
good stuff.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=02143dbd-e789-4d2d-bf9a-df520778741d" /&gt;</description>
      <category>.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.zygonia.net/Trackback.aspx?guid=419c72aa-ec58-49ab-a1c5-c249e798a1df</trackback:ping>
      <pingback:server>http://blog.zygonia.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.zygonia.net/PermaLink,guid,419c72aa-ec58-49ab-a1c5-c249e798a1df.aspx</pingback:target>
      <dc:creator>Kev</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This is a pretty handy feature for taking your ASP.NET 2.0 app offline (for maintenance
or whatever) and displaying a friendly message explaining why the site is down.
</p>
        <p>
Just place a file called 'App_offline.htm' in the root of your site with whatever
message you want to give your users and bingo your app shuts down and the contents
of App_offline.htm are served. Just delete or rename App_offline.htm to something
else to bring the app back online again.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=419c72aa-ec58-49ab-a1c5-c249e798a1df" />
      </body>
      <title>App_offline.htm</title>
      <guid isPermaLink="false">http://blog.zygonia.net/PermaLink,guid,419c72aa-ec58-49ab-a1c5-c249e798a1df.aspx</guid>
      <link>http://blog.zygonia.net/2006/04/04/Appofflinehtm.aspx</link>
      <pubDate>Tue, 04 Apr 2006 00:31:19 GMT</pubDate>
      <description>&lt;p&gt;
This is a pretty handy feature for taking your ASP.NET 2.0 app offline (for maintenance
or whatever) and displaying a friendly message explaining why the site is down.
&lt;/p&gt;
&lt;p&gt;
Just place&amp;nbsp;a file called 'App_offline.htm' in the root of your site with whatever
message you want to give your users and bingo your app shuts down and the contents
of App_offline.htm are served. Just delete or rename&amp;nbsp;App_offline.htm to something
else&amp;nbsp;to bring the app back online again.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=419c72aa-ec58-49ab-a1c5-c249e798a1df" /&gt;</description>
      <category>.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.zygonia.net/Trackback.aspx?guid=9c132e5c-b0f5-4854-9ed2-f5a88c240e8a</trackback:ping>
      <pingback:server>http://blog.zygonia.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.zygonia.net/PermaLink,guid,9c132e5c-b0f5-4854-9ed2-f5a88c240e8a.aspx</pingback:target>
      <dc:creator>Kev</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
You may know this already but if you're running ASP.NET 1.1 and ASP.NET 2.0 on the
same box then make sure you create a separate application pool for ASP.NET 2.0. You
can just clone the Default Application pool if you want, but that can have security
implications if you're box is a shared hosting environment because re-using NETWORK
SERVICE as the process identity will leave your 2.0 sites open to <a href="http://blog.zygonia.net/PermaLink,guid,7e068a80-e08b-44a9-83b0-efe7e4223ba1.aspx">file
harvesting by Full Trust 1.1 apps</a> (that said you are encrypting your connection
strings, aren't you? :-) ).
</p>
        <p>
Once you've created the app domain, goto the site or vdir that needs to run ASP.NET
2.0, open the property pages, choose ASP.NET 2.0 from the ASP.NET tab then choose
the new ASP.NET 2.0 Application Pool in Home Directory Tab -&gt; Application Settings:
Application Pool drop down.
</p>
        <p>
Failure to run ASP.NET 2.0 in it's own app pool will result in the evil 'Server Application
Unavailable' message because the ASP.NET 1.1 and 2.0 runtimes can't co-reside in the
same worker process.
</p>
        <img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=9c132e5c-b0f5-4854-9ed2-f5a88c240e8a" />
      </body>
      <title>Running ASP.NET 1.1 and ASP.NET 2.0 side by side</title>
      <guid isPermaLink="false">http://blog.zygonia.net/PermaLink,guid,9c132e5c-b0f5-4854-9ed2-f5a88c240e8a.aspx</guid>
      <link>http://blog.zygonia.net/2006/03/13/RunningASPNET11AndASPNET20SideBySide.aspx</link>
      <pubDate>Mon, 13 Mar 2006 00:55:59 GMT</pubDate>
      <description>&lt;p&gt;
You may know this already but if you're running ASP.NET 1.1 and ASP.NET 2.0 on the
same box then make sure you create a separate application pool for ASP.NET 2.0. You
can just clone the Default Application pool if you want, but that can have security
implications if you're box is a shared hosting environment because re-using NETWORK
SERVICE as the process identity will leave your 2.0 sites open to &lt;a href="http://blog.zygonia.net/PermaLink,guid,7e068a80-e08b-44a9-83b0-efe7e4223ba1.aspx"&gt;file
harvesting by Full Trust 1.1 apps&lt;/a&gt; (that said you are&amp;nbsp;encrypting your connection
strings, aren't you? :-) ).
&lt;/p&gt;
&lt;p&gt;
Once you've created the app domain, goto the site or vdir that needs to run ASP.NET
2.0, open the property pages, choose ASP.NET 2.0 from the ASP.NET tab then choose
the new ASP.NET 2.0 Application Pool in Home Directory Tab -&amp;gt; Application Settings:
Application Pool drop down.
&lt;/p&gt;
&lt;p&gt;
Failure to run ASP.NET 2.0 in it's own app pool will result in the evil 'Server Application
Unavailable' message because the ASP.NET 1.1 and 2.0 runtimes can't co-reside in the
same worker process.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=9c132e5c-b0f5-4854-9ed2-f5a88c240e8a" /&gt;</description>
      <category>.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.zygonia.net/Trackback.aspx?guid=3c02a284-ab1f-4ff5-84a5-349155248c9e</trackback:ping>
      <pingback:server>http://blog.zygonia.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.zygonia.net/PermaLink,guid,3c02a284-ab1f-4ff5-84a5-349155248c9e.aspx</pingback:target>
      <dc:creator>Kev</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This is old hat and more of a bookmark for me when I bump into this each time I'm
working with XML documents that have default namespace declared. But I thought I'd
share anyway.
</p>
        <p>
Take the following simple XML document:
</p>
        <p>
          <font face="Courier New">&lt;?<font color="#800000" size="1">xml</font><font color="#0000ff" size="1"></font><font color="#ff0000" size="1">version</font><font color="#0000ff" size="1">=</font><font color="#000000" size="1">"</font><font color="#0000ff" size="1">1.0</font><font color="#000000" size="1">"</font><font color="#0000ff" size="1"></font><font color="#ff0000" size="1">encoding</font><font color="#0000ff" size="1">=</font><font color="#000000" size="1">"</font><font color="#0000ff" size="1">utf-8</font><font color="#000000" size="1">"</font></font>
          <font face="Courier New">
            <font color="#0000ff" size="1"> ?&gt;<br />
&lt;</font>
            <font color="#800000" size="1">products</font>
            <font color="#0000ff" size="1">
            </font>
            <font color="#ff0000" size="1">xmlns</font>
            <font color="#0000ff" size="1">=</font>
            <font color="#000000" size="1">"</font>
            <font color="#0000ff" size="1">urn:backoffice:products</font>
            <font color="#000000" size="1">"</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
   &lt;</font>
            <font color="#800000" size="1">product</font>
            <font color="#0000ff" size="1">
            </font>
            <font color="#ff0000" size="1">id</font>
            <font color="#0000ff" size="1">=</font>
            <font color="#000000" size="1">"</font>
            <font color="#0000ff" size="1">100-1100</font>
            <font color="#000000" size="1">"</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
      &lt;</font>
            <font color="#800000" size="1">description</font>
            <font color="#0000ff" size="1">&gt;</font>
            <font color="#000000" size="1">JVC
CD Player</font>
            <font color="#0000ff" size="1">&lt;/</font>
            <font color="#800000" size="1">description</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
      &lt;</font>
            <font color="#800000" size="1">price</font>
            <font color="#0000ff" size="1">&gt;</font>
            <font color="#000000" size="1">120.99</font>
            <font color="#0000ff" size="1">&lt;/</font>
            <font color="#800000" size="1">price</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
      &lt;</font>
            <font color="#800000" size="1">category</font>
            <font color="#0000ff" size="1">&gt;</font>
            <font color="#000000" size="1">100</font>
            <font color="#0000ff" size="1">&lt;/</font>
            <font color="#800000" size="1">category</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
   &lt;/</font>
            <font color="#800000" size="1">product</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
   &lt;</font>
            <font color="#800000" size="1">product</font>
            <font color="#0000ff" size="1">
            </font>
            <font color="#ff0000" size="1">id</font>
            <font color="#0000ff" size="1">=</font>
            <font color="#000000" size="1">"</font>
            <font color="#0000ff" size="1">100-1101</font>
            <font color="#000000" size="1">"</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
      &lt;</font>
            <font color="#800000" size="1">description</font>
            <font color="#0000ff" size="1">&gt;</font>
            <font color="#000000" size="1">Sony
CD Player</font>
            <font color="#0000ff" size="1">&lt;/</font>
            <font color="#800000" size="1">description</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
      &lt;</font>
            <font color="#800000" size="1">price</font>
            <font color="#0000ff" size="1">&gt;</font>
            <font color="#000000" size="1">122.99</font>
            <font color="#0000ff" size="1">&lt;/</font>
            <font color="#800000" size="1">price</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
      &lt;</font>
            <font color="#800000" size="1">category</font>
            <font color="#0000ff" size="1">&gt;</font>
            <font color="#000000" size="1">100</font>
            <font color="#0000ff" size="1">&lt;/</font>
            <font color="#800000" size="1">category</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
   &lt;/</font>
            <font color="#800000" size="1">product</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
   &lt;</font>
            <font color="#800000" size="1">product</font>
            <font color="#0000ff" size="1">
            </font>
            <font color="#ff0000" size="1">id</font>
            <font color="#0000ff" size="1">=</font>
            <font color="#000000" size="1">"</font>
            <font color="#0000ff" size="1">100-1102</font>
            <font color="#000000" size="1">"</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
      &lt;</font>
            <font color="#800000" size="1">description</font>
            <font color="#0000ff" size="1">&gt;</font>
            <font color="#000000" size="1">LG
DVD Player</font>
            <font color="#0000ff" size="1">&lt;/</font>
            <font color="#800000" size="1">description</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
      &lt;</font>
            <font color="#800000" size="1">price</font>
            <font color="#0000ff" size="1">&gt;</font>
            <font color="#000000" size="1">109.99</font>
            <font color="#0000ff" size="1">&lt;/</font>
            <font color="#800000" size="1">price</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
      &lt;</font>
            <font color="#800000" size="1">category</font>
            <font color="#0000ff" size="1">&gt;</font>
            <font color="#000000" size="1">110</font>
            <font color="#0000ff" size="1">&lt;/</font>
            <font color="#800000" size="1">category</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
   &lt;/</font>
            <font color="#800000" size="1">product</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
   &lt;</font>
            <font color="#800000" size="1">product</font>
            <font color="#0000ff" size="1">
            </font>
            <font color="#ff0000" size="1">id</font>
            <font color="#0000ff" size="1">=</font>
            <font color="#000000" size="1">"</font>
            <font color="#0000ff" size="1">100-1103</font>
            <font color="#000000" size="1">"</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
      &lt;</font>
            <font color="#800000" size="1">description</font>
            <font color="#0000ff" size="1">&gt;</font>
            <font color="#000000" size="1">Technics
DVD Player</font>
            <font color="#0000ff" size="1">&lt;/</font>
            <font color="#800000" size="1">description</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
      &lt;</font>
            <font color="#800000" size="1">price</font>
            <font color="#0000ff" size="1">&gt;</font>
            <font color="#000000" size="1">199.99</font>
            <font color="#0000ff" size="1">&lt;/</font>
            <font color="#800000" size="1">price</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
      &lt;</font>
            <font color="#800000" size="1">category</font>
            <font color="#0000ff" size="1">&gt;</font>
            <font color="#000000" size="1">110</font>
            <font color="#0000ff" size="1">&lt;/</font>
            <font color="#800000" size="1">category</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
   &lt;/</font>
            <font color="#800000" size="1">product</font>
          </font>
          <font face="Courier New">
            <font color="#0000ff" size="1">&gt;<br />
&lt;/</font>
            <font color="#800000" size="1">products</font>
            <font color="#0000ff" size="1">&gt;</font>
          </font>
        </p>
        <p>
You might expect that the code to select all the product nodes would look
like:
</p>
        <p>
          <font size="1">
            <font face="Courier New">
              <font color="#000080">XmlNamespaceManager</font> nsm
= <font color="#0000ff">new</font><font color="#000080">XmlNamespaceManager</font>(<font color="#0000ff">new</font><font color="#000080">NameTable</font>());<br />
nsm.AddNamespace(<font color="#008000">""</font>, <font color="#008000">"urn:backoffice:products"</font>);<br /><font color="#000080">XmlNodeList</font> productList = products.SelectNodes(<font color="#008000">"/products/*"</font>,
nsm);</font>
          </font>
        </p>
        <p>
The above seems the logical thing to do because the default namespace doesn't have
a prefix so you naturally go ahead and specify String.Empty (or "", whichever) when
adding it to the namespace manager. Additionally if you execute the code and breakpoint
after setting adding the namespace and inspect the DefaultNamespace property of 'nsm'
you'll see that it's even set to "urn:backoffice:products". However, the XmlNodeList
returned from products.SelectNodes has no nodes.
</p>
        <p>
This confused the hell out of me when I first encountered it way back when and I tripped
up on it again last week. What's going on?
</p>
        <p>
Basically XPath expressions select nodes that are either in a namespace or in the
empty namespace. The XPath expression '/products/*' is selecting nodes from the empty
namespace (xmlns="") but the document above is defining a default namespace of 'urn:backoffice:products'
which is not the empty namespace. We have to tell XPath to select nodes from the namespace
'urn:backoffice:products' otherwise no nodes will be returned.
</p>
        <p>
So how do we do this?
</p>
        <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
          <font size="1">
            <p>
            </p>
          </font>
          <font color="#000080" size="1">XmlNamespaceManager</font>
          <font size="1"> nsm
= </font>
          <font color="#0000ff" size="1">new</font>
          <font size="1">
          </font>
          <font color="#000080" size="1">XmlNamespaceManager</font>
          <font size="1">(</font>
          <font color="#0000ff" size="1">new</font>
          <font size="1">
          </font>
          <font color="#000080" size="1">NameTable</font>
          <font size="1">());<br />
nsm.AddNamespace(</font>
          <font color="#008000" size="1">"p"</font>
          <font size="1">, </font>
          <font color="#008000" size="1">"urn:backoffice:products"</font>
          <font size="1">);<br /></font>
          <font color="#000080" size="1">XmlNodeList</font>
          <font size="1"> productList
= products.SelectNodes(</font>
          <font color="#008000" size="1">"/p:products/*"</font>
          <font size="1">,
nsm);
</font>
        </span>
        <p>
We add the namespace with an arbitrary prefix and the XmlNamespaceManager is used
to expand 'p' to the default namespace name which then brings the nodes we're interested
in into scope.
</p>
        <p>
One thing still puzzles me though is the purpose of the DefaultNamespace property
in the XmlNamespaceManager and I guess some digging around will uncover it's intentions
because the MS docs are pretty vague.<br /></p>
        <p>
          <font color="#0000ff" size="1">
            <font size="1">
              <font face="Courier New">
                <font size="1"> 
</font>
              </font>
            </font>
          </font>
        </p>
        <img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=3c02a284-ab1f-4ff5-84a5-349155248c9e" />
      </body>
      <title>System.Xml.XmlNamespaceManager, XPath and the Default Namespace</title>
      <guid isPermaLink="false">http://blog.zygonia.net/PermaLink,guid,3c02a284-ab1f-4ff5-84a5-349155248c9e.aspx</guid>
      <link>http://blog.zygonia.net/2006/03/12/SystemXmlXmlNamespaceManagerXPathAndTheDefaultNamespace.aspx</link>
      <pubDate>Sun, 12 Mar 2006 04:49:49 GMT</pubDate>
      <description>&lt;p&gt;
This is old hat and more of a bookmark for me when I bump into this each time I'm
working with XML documents that have default namespace declared. But I thought I'd
share anyway.
&lt;/p&gt;
&lt;p&gt;
Take the following simple XML document:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;lt;?&lt;font color=#800000 size=1&gt;xml&lt;/font&gt;&lt;font color=#0000ff size=1&gt; &lt;/font&gt;&lt;font color=#ff0000 size=1&gt;version&lt;/font&gt;&lt;font color=#0000ff size=1&gt;=&lt;/font&gt;&lt;font color=#000000 size=1&gt;"&lt;/font&gt;&lt;font color=#0000ff size=1&gt;1.0&lt;/font&gt;&lt;font color=#000000 size=1&gt;"&lt;/font&gt;&lt;font color=#0000ff size=1&gt; &lt;/font&gt;&lt;font color=#ff0000 size=1&gt;encoding&lt;/font&gt;&lt;font color=#0000ff size=1&gt;=&lt;/font&gt;&lt;font color=#000000 size=1&gt;"&lt;/font&gt;&lt;font color=#0000ff size=1&gt;utf-8&lt;/font&gt;&lt;font color=#000000 size=1&gt;"&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt; ?&amp;gt;&lt;br&gt;
&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=1&gt;products&lt;/font&gt;&lt;font color=#0000ff size=1&gt; &lt;/font&gt;&lt;font color=#ff0000 size=1&gt;xmlns&lt;/font&gt;&lt;font color=#0000ff size=1&gt;=&lt;/font&gt;&lt;font color=#000000 size=1&gt;"&lt;/font&gt;&lt;font color=#0000ff size=1&gt;urn:backoffice:products&lt;/font&gt;&lt;font color=#000000 size=1&gt;"&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=1&gt;product&lt;/font&gt;&lt;font color=#0000ff size=1&gt; &lt;/font&gt;&lt;font color=#ff0000 size=1&gt;id&lt;/font&gt;&lt;font color=#0000ff size=1&gt;=&lt;/font&gt;&lt;font color=#000000 size=1&gt;"&lt;/font&gt;&lt;font color=#0000ff size=1&gt;100-1100&lt;/font&gt;&lt;font color=#000000 size=1&gt;"&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=1&gt;description&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;/font&gt;&lt;font color=#000000 size=1&gt;JVC
CD Player&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#800000 size=1&gt;description&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=1&gt;price&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;/font&gt;&lt;font color=#000000 size=1&gt;120.99&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#800000 size=1&gt;price&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=1&gt;category&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;/font&gt;&lt;font color=#000000 size=1&gt;100&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#800000 size=1&gt;category&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/font&gt;&lt;font color=#800000 size=1&gt;product&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=1&gt;product&lt;/font&gt;&lt;font color=#0000ff size=1&gt; &lt;/font&gt;&lt;font color=#ff0000 size=1&gt;id&lt;/font&gt;&lt;font color=#0000ff size=1&gt;=&lt;/font&gt;&lt;font color=#000000 size=1&gt;"&lt;/font&gt;&lt;font color=#0000ff size=1&gt;100-1101&lt;/font&gt;&lt;font color=#000000 size=1&gt;"&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=1&gt;description&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;/font&gt;&lt;font color=#000000 size=1&gt;Sony
CD Player&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#800000 size=1&gt;description&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=1&gt;price&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;/font&gt;&lt;font color=#000000 size=1&gt;122.99&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#800000 size=1&gt;price&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=1&gt;category&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;/font&gt;&lt;font color=#000000 size=1&gt;100&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#800000 size=1&gt;category&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/font&gt;&lt;font color=#800000 size=1&gt;product&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=1&gt;product&lt;/font&gt;&lt;font color=#0000ff size=1&gt; &lt;/font&gt;&lt;font color=#ff0000 size=1&gt;id&lt;/font&gt;&lt;font color=#0000ff size=1&gt;=&lt;/font&gt;&lt;font color=#000000 size=1&gt;"&lt;/font&gt;&lt;font color=#0000ff size=1&gt;100-1102&lt;/font&gt;&lt;font color=#000000 size=1&gt;"&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=1&gt;description&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;/font&gt;&lt;font color=#000000 size=1&gt;LG
DVD Player&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#800000 size=1&gt;description&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=1&gt;price&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;/font&gt;&lt;font color=#000000 size=1&gt;109.99&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#800000 size=1&gt;price&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=1&gt;category&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;/font&gt;&lt;font color=#000000 size=1&gt;110&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#800000 size=1&gt;category&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/font&gt;&lt;font color=#800000 size=1&gt;product&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=1&gt;product&lt;/font&gt;&lt;font color=#0000ff size=1&gt; &lt;/font&gt;&lt;font color=#ff0000 size=1&gt;id&lt;/font&gt;&lt;font color=#0000ff size=1&gt;=&lt;/font&gt;&lt;font color=#000000 size=1&gt;"&lt;/font&gt;&lt;font color=#0000ff size=1&gt;100-1103&lt;/font&gt;&lt;font color=#000000 size=1&gt;"&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=1&gt;description&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;/font&gt;&lt;font color=#000000 size=1&gt;Technics
DVD Player&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#800000 size=1&gt;description&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=1&gt;price&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;/font&gt;&lt;font color=#000000 size=1&gt;199.99&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#800000 size=1&gt;price&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=1&gt;category&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;/font&gt;&lt;font color=#000000 size=1&gt;110&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#800000 size=1&gt;category&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/font&gt;&lt;font color=#800000 size=1&gt;product&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;br&gt;
&amp;lt;/&lt;/font&gt;&lt;font color=#800000 size=1&gt;products&lt;/font&gt;&lt;font color=#0000ff size=1&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
You&amp;nbsp;might&amp;nbsp;expect that the code to select all the product nodes would look
like:
&lt;/p&gt;
&lt;p&gt;
&lt;font size=1&gt;&lt;font face="Courier New"&gt;&lt;font color=#000080&gt;XmlNamespaceManager&lt;/font&gt; nsm
= &lt;font color=#0000ff&gt;new&lt;/font&gt; &lt;font color=#000080&gt;XmlNamespaceManager&lt;/font&gt;(&lt;font color=#0000ff&gt;new&lt;/font&gt; &lt;font color=#000080&gt;NameTable&lt;/font&gt;());&lt;br&gt;
nsm.AddNamespace(&lt;font color=#008000&gt;""&lt;/font&gt;, &lt;font color=#008000&gt;"urn:backoffice:products"&lt;/font&gt;);&lt;br&gt;
&lt;font color=#000080&gt;XmlNodeList&lt;/font&gt; productList = products.SelectNodes(&lt;font color=#008000&gt;"/products/*"&lt;/font&gt;,
nsm);&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
The above seems the logical thing to do because the default namespace doesn't have
a prefix so you naturally go ahead and specify String.Empty (or "", whichever) when
adding it to the namespace manager. Additionally if you execute the code and breakpoint
after setting adding the namespace and inspect the DefaultNamespace property of 'nsm'
you'll see that it's even set to "urn:backoffice:products". However, the XmlNodeList
returned from products.SelectNodes has no nodes.
&lt;/p&gt;
&lt;p&gt;
This confused the hell out of me when I first encountered it way back when and I tripped
up on it again last week. What's going on?
&lt;/p&gt;
&lt;p&gt;
Basically XPath expressions select nodes that are either in a namespace or in the
empty namespace. The XPath expression '/products/*' is selecting nodes from the empty
namespace (xmlns="") but the document above is defining a default namespace of 'urn:backoffice:products'
which is not the empty namespace. We have to tell XPath to select nodes from the namespace
'urn:backoffice:products' otherwise no nodes will be returned.
&lt;/p&gt;
&lt;p&gt;
So how do we do this?
&lt;/p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;font size=1&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#000080 size=1&gt;XmlNamespaceManager&lt;/font&gt;&lt;font size=1&gt; nsm = &lt;/font&gt;&lt;font color=#0000ff size=1&gt;new&lt;/font&gt;&lt;font size=1&gt; &lt;/font&gt;&lt;font color=#000080 size=1&gt;XmlNamespaceManager&lt;/font&gt;&lt;font size=1&gt;(&lt;/font&gt;&lt;font color=#0000ff size=1&gt;new&lt;/font&gt;&lt;font size=1&gt; &lt;/font&gt;&lt;font color=#000080 size=1&gt;NameTable&lt;/font&gt;&lt;font size=1&gt;());&lt;br&gt;
nsm.AddNamespace(&lt;/font&gt;&lt;font color=#008000 size=1&gt;"p"&lt;/font&gt;&lt;font size=1&gt;, &lt;/font&gt;&lt;font color=#008000 size=1&gt;"urn:backoffice:products"&lt;/font&gt;&lt;font size=1&gt;);&lt;br&gt;
&lt;/font&gt;&lt;font color=#000080 size=1&gt;XmlNodeList&lt;/font&gt;&lt;font size=1&gt; productList = products.SelectNodes(&lt;/font&gt;&lt;font color=#008000 size=1&gt;"/p:products/*"&lt;/font&gt;&lt;font size=1&gt;,
nsm);&gt;
&lt;/font&gt;&lt;/span&gt; 
&lt;p&gt;
We add the namespace with an arbitrary prefix and the XmlNamespaceManager is used
to expand 'p' to the default namespace name which then brings the nodes we're interested
in into scope.
&lt;/p&gt;
&lt;p&gt;
One thing still puzzles me though is the purpose of the DefaultNamespace property
in the XmlNamespaceManager and I guess some digging around will uncover it's intentions
because the MS docs are pretty vague.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#0000ff size=1&gt;&lt;font size=1&gt;&lt;font face="Courier New"&gt;&lt;font size=1&gt;&amp;nbsp;
&lt;/p&gt;
&gt;&gt;&gt;&gt;&lt;img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=3c02a284-ab1f-4ff5-84a5-349155248c9e" /&gt;</description>
      <category>.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.zygonia.net/Trackback.aspx?guid=6a8a433a-5f8d-4e42-bc9a-d63b41ba5a03</trackback:ping>
      <pingback:server>http://blog.zygonia.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.zygonia.net/PermaLink,guid,6a8a433a-5f8d-4e42-bc9a-d63b41ba5a03.aspx</pingback:target>
      <dc:creator>Kev</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This week I'm down at <a href="http://www.devweek.com/sessions/">DevWeek 2006</a> which
I also attended last year. It's quite good value for money and the quality of the <a href="http://www.devweek.com/speakers/">speakers</a> and
topics is good again this year. The sessions I've attended so far are:
</p>
        <p>
Tuesday:
</p>
        <p>
Keynote - Dave Wheeler<br />
Power ASP.NET 2.0 Programming - Jeff Prosise<br />
Exploring Unit Testing with Visual Studio Team System - Kevin Jones<br />
Writing Extensible Applications Using Reflection - Jason Clark<br /><br />
Wednesday:<br /><br />
Understanding Threads and Thread Synchronisation - Jason Clark<br />
Distributed .NET - Ted Neward<br />
Extending System.Xml - Ted Neward<br />
ASP.NET, AJAX, and you: Introducing MS AJAX - Jeff Prosise
</p>
        <p>
It's nice to know from sessions such as the Jason Clark ones that I'm doing all the
right things :-)
</p>
        <p>
More later.
</p>
        <img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=6a8a433a-5f8d-4e42-bc9a-d63b41ba5a03" />
      </body>
      <title>DevWeek 2006</title>
      <guid isPermaLink="false">http://blog.zygonia.net/PermaLink,guid,6a8a433a-5f8d-4e42-bc9a-d63b41ba5a03.aspx</guid>
      <link>http://blog.zygonia.net/2006/02/23/DevWeek2006.aspx</link>
      <pubDate>Thu, 23 Feb 2006 00:48:51 GMT</pubDate>
      <description>&lt;p&gt;
This week I'm down at &lt;a href="http://www.devweek.com/sessions/"&gt;DevWeek 2006&lt;/a&gt; which
I also attended last year. It's quite good value for money and the quality of the &lt;a href="http://www.devweek.com/speakers/"&gt;speakers&lt;/a&gt; and
topics is good again this year. The sessions I've attended so far are:
&lt;/p&gt;
&lt;p&gt;
Tuesday:
&lt;/p&gt;
&lt;p&gt;
Keynote - Dave Wheeler&lt;br&gt;
Power ASP.NET 2.0 Programming - Jeff Prosise&lt;br&gt;
Exploring Unit Testing with Visual Studio Team System - Kevin Jones&lt;br&gt;
Writing Extensible Applications Using Reflection - Jason Clark&lt;br&gt;
&lt;br&gt;
Wednesday:&lt;br&gt;
&lt;br&gt;
Understanding Threads and Thread Synchronisation - Jason Clark&lt;br&gt;
Distributed .NET - Ted Neward&lt;br&gt;
Extending System.Xml - Ted Neward&lt;br&gt;
ASP.NET, AJAX, and you: Introducing MS AJAX - Jeff Prosise
&lt;/p&gt;
&lt;p&gt;
It's nice to know from sessions such as the Jason Clark ones that I'm doing all the
right things :-)
&lt;/p&gt;
&lt;p&gt;
More later.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=6a8a433a-5f8d-4e42-bc9a-d63b41ba5a03" /&gt;</description>
      <category>.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.zygonia.net/Trackback.aspx?guid=6c7ad550-a73f-4aa7-be1e-d3312d69b7d0</trackback:ping>
      <pingback:server>http://blog.zygonia.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.zygonia.net/PermaLink,guid,6c7ad550-a73f-4aa7-be1e-d3312d69b7d0.aspx</pingback:target>
      <dc:creator>Kev</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://weblogs.asp.net/scottgu/">Scott Guthrie</a> announced the release
of the second preview of the Web Application Project type for VS05. You can read about
it <a href="http://weblogs.asp.net/scottgu/archive/2006/02/10/437943.aspx">here</a> and
download it from <a href="http://msdn.microsoft.com/asp.net/reference/infrastructure/wap/default.aspx">here</a>. 
</p>
        <img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=6c7ad550-a73f-4aa7-be1e-d3312d69b7d0" />
      </body>
      <title>Latest preview of Web Application Project is available</title>
      <guid isPermaLink="false">http://blog.zygonia.net/PermaLink,guid,6c7ad550-a73f-4aa7-be1e-d3312d69b7d0.aspx</guid>
      <link>http://blog.zygonia.net/2006/02/13/LatestPreviewOfWebApplicationProjectIsAvailable.aspx</link>
      <pubDate>Mon, 13 Feb 2006 22:11:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://weblogs.asp.net/scottgu/"&gt;Scott Guthrie&lt;/a&gt; announced the release
of the second preview of the Web Application Project type for VS05. You can read about
it &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/02/10/437943.aspx"&gt;here&lt;/a&gt;&amp;nbsp;and
download it from &lt;a href="http://msdn.microsoft.com/asp.net/reference/infrastructure/wap/default.aspx"&gt;here&lt;/a&gt;. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=6c7ad550-a73f-4aa7-be1e-d3312d69b7d0" /&gt;</description>
      <category>.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.zygonia.net/Trackback.aspx?guid=0ac0b546-ece2-46f4-804c-a9a7b2d08401</trackback:ping>
      <pingback:server>http://blog.zygonia.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.zygonia.net/PermaLink,guid,0ac0b546-ece2-46f4-804c-a9a7b2d08401.aspx</pingback:target>
      <dc:creator>Kev</dc:creator>
      <title>VS05 reports - "Unable to start debugging..."</title>
      <guid isPermaLink="false">http://blog.zygonia.net/PermaLink,guid,0ac0b546-ece2-46f4-804c-a9a7b2d08401.aspx</guid>
      <link>http://blog.zygonia.net/2006/02/11/VS05ReportsUnableToStartDebugging.aspx</link>
      <pubDate>Sat, 11 Feb 2006 03:09:01 GMT</pubDate>
      <description>&lt;p&gt;
If you're developing Visual Studio 2005 ASP.NET 2.0 websites on Windows 2003 server
and you're creating a separate IIS website for each project then there's a new gotcha
I discovered today. 
&lt;/p&gt;
&lt;p&gt;
I prefer developing on Windows 2003 because at the very least you can organise your
web projects more sensibly (and sanely) rather than lumping everything into the Default
website. There are also many projects we undertake where we need the whole of an existing
site on the dev box when we're adding new functionality - often we find absolute urls
to scripts or images and unless the darned code gets to live in&amp;nbsp;its own website&amp;nbsp;it
can be a bugger to work with. 
&lt;/p&gt;
&lt;p&gt;
I know there's a hack to coerce IIS on XP to have more than one Website but it's inconvenient
especially when you need to switch between projects quickly (a current project is
having a bunch of new functionality added to two sites which will be shared) and lets
face it, it's a dirty hack. 
&lt;/p&gt;
&lt;p&gt;
Anyway if you start debugging a VS05 website&amp;nbsp;created under IIS&amp;nbsp;(you really
shouldn't use the cassini based thing for anything other than knocking up quicky snippets
of code, see: &lt;a href="http://www.leastprivilege.com/CassiniConsideredHarmful.aspx"&gt;Cassini
considered harmful&lt;/a&gt; (leastprivilege.com) and you encounter the error: &lt;strong&gt;"Unable
to start debugging on the web server. Logon failure: unknown user name or bad password"&lt;/strong&gt; then
check out this kb article -
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://support.microsoft.com/?id=896861"&gt;You receive error 401.1 when you
browse a Web site that uses Integrated Authentication and is hosted on IIS 5.1 or
IIS 6&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
You also need to start the Visual Studio Remote Debugging Monitor and make sure your
logon is added to the Permissions for Remote Debugging under Tools-&amp;gt;Permissions.
This seems to be a new thing because VS02/03 worked just fine without it&amp;nbsp;in the
past. Now please can I have the last 4 hours of my life back?&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I forgot to add that the following event is logged when the vs 2005&amp;nbsp;login failure
occurs -
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; &lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;font size=1&gt;Event Type:&amp;nbsp;Failure Audit&lt;br&gt;
Event Source:&amp;nbsp;Security&lt;br&gt;
Event Category:&amp;nbsp;Logon/Logoff 
&lt;br&gt;
Event ID:&amp;nbsp;537&lt;br&gt;
Date:&amp;nbsp;&amp;nbsp;10/02/2006&lt;br&gt;
Time:&amp;nbsp;&amp;nbsp;01:40:21&lt;br&gt;
User:&amp;nbsp;&amp;nbsp;NT AUTHORITY\SYSTEM&lt;br&gt;
Computer:&amp;nbsp;UKM-W2K3-003&lt;br&gt;
Description:&lt;br&gt;
Logon Failure:&lt;br&gt;
&amp;nbsp;&amp;nbsp;Reason:&amp;nbsp;&amp;nbsp;An error occurred during logon&lt;br&gt;
&amp;nbsp;&amp;nbsp;User Name:&amp;nbsp;Kevin&lt;br&gt;
&amp;nbsp;&amp;nbsp;Domain:&amp;nbsp;&amp;nbsp;MYSERVER&lt;br&gt;
&amp;nbsp;&amp;nbsp;Logon Type:&amp;nbsp;3&lt;br&gt;
&amp;nbsp;&amp;nbsp;Logon Process:&amp;nbsp;O&amp;shy;&lt;br&gt;
&amp;nbsp;&amp;nbsp;Authentication Package:&amp;nbsp;NTLM&lt;br&gt;
&amp;nbsp;&amp;nbsp;Workstation Name:&amp;nbsp;MYSERVER&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp; Status code:&amp;nbsp;0xC000006D&lt;br&gt;
&amp;nbsp;&amp;nbsp;Substatus code:&amp;nbsp;0x0&lt;br&gt;
&amp;nbsp;&amp;nbsp;Caller User Name:&amp;nbsp;-&lt;br&gt;
&amp;nbsp;&amp;nbsp;Caller Domain:&amp;nbsp;-&lt;br&gt;
&amp;nbsp;&amp;nbsp;Caller Logon ID:&amp;nbsp;-&lt;br&gt;
&amp;nbsp;&amp;nbsp;Caller Process ID:&amp;nbsp;-&lt;br&gt;
&amp;nbsp;&amp;nbsp;Transited Services:&amp;nbsp;-&lt;br&gt;
&amp;nbsp;&amp;nbsp;Source Network Address:&amp;nbsp;192.168.100.59&lt;br&gt;
&amp;nbsp;&amp;nbsp;Source Port:&amp;nbsp;0&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt;&lt;/blockquote&gt; 
&lt;p&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=0ac0b546-ece2-46f4-804c-a9a7b2d08401" /&gt;</description>
      <category>.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.zygonia.net/Trackback.aspx?guid=da789376-3ca6-4237-91d1-573dbea5f4ac</trackback:ping>
      <pingback:server>http://blog.zygonia.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.zygonia.net/PermaLink,guid,da789376-3ca6-4237-91d1-573dbea5f4ac.aspx</pingback:target>
      <dc:creator>Kev</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Oldish news now but it's the first chance I've had to play with it. 
</p>
        <p>
If you miss the VS.NET 2002/3 web project concept or are migrating larger legacy projects
to VS 2005 then this should make your day.
</p>
        <p>
The ASP.NET team have released a preview of the Web Application Project for VS 2005.
</p>
        <p>
One of the neat things is that unlike in VS.NET 2003/3 the dependancy on FPSE to open/edit
projects is gone, and gone is the fragile .webinfo file and hardcoded http:// paths
in the solution file.
</p>
        <p>
Remember it's a preview and so isn't feature complete yet.
</p>
        <p>
Check out Scott Guthries blog entries:
</p>
        <p>
          <a href="http://weblogs.asp.net/scottgu/archive/2005/12/07/432630.aspx">http://weblogs.asp.net/scottgu/archive/2005/12/07/432630.aspx</a>
        </p>
        <p>
          <a href="http://weblogs.asp.net/scottgu/archive/2005/12/16/433374.aspx">http://weblogs.asp.net/scottgu/archive/2005/12/16/433374.aspx</a>
        </p>
        <p>
Web Application Project website:
</p>
        <p>
          <a href="http://webproject.scottgu.com/Default.aspx">http://webproject.scottgu.com/Default.aspx</a>
          <br />
        </p>
        <img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=da789376-3ca6-4237-91d1-573dbea5f4ac" />
      </body>
      <title>New Web Application Project type for VS 2005 </title>
      <guid isPermaLink="false">http://blog.zygonia.net/PermaLink,guid,da789376-3ca6-4237-91d1-573dbea5f4ac.aspx</guid>
      <link>http://blog.zygonia.net/2006/01/10/NewWebApplicationProjectTypeForVS2005.aspx</link>
      <pubDate>Tue, 10 Jan 2006 02:00:34 GMT</pubDate>
      <description>&lt;p&gt;
Oldish news now but it's the first chance I've had to play with it. 
&lt;/p&gt;
&lt;p&gt;
If you miss the VS.NET 2002/3 web project concept or are migrating larger legacy projects
to VS 2005 then this should make your day.
&lt;/p&gt;
&lt;p&gt;
The ASP.NET team have released a preview of the Web Application Project for VS 2005.
&lt;/p&gt;
&lt;p&gt;
One of the neat things is that unlike in VS.NET 2003/3 the dependancy on FPSE to open/edit
projects is gone, and gone is the fragile .webinfo file and hardcoded http:// paths
in the solution file.
&lt;/p&gt;
&lt;p&gt;
Remember it's a preview and so isn't feature complete yet.
&lt;/p&gt;
&lt;p&gt;
Check out Scott Guthries blog entries:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2005/12/07/432630.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2005/12/07/432630.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2005/12/16/433374.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2005/12/16/433374.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Web Application Project website:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://webproject.scottgu.com/Default.aspx"&gt;http://webproject.scottgu.com/Default.aspx&lt;/a&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.zygonia.net/aggbug.ashx?id=da789376-3ca6-4237-91d1-573dbea5f4ac" /&gt;</description>
      <category>.NET</category>
    </item>
  </channel>
</rss>