<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Todd Taylor's Blog - ASP.NET</title>
    <link>http://blog.toddtaylor.com/</link>
    <description />
    <language>en-us</language>
    <copyright>Todd M. Taylor</copyright>
    <lastBuildDate>Sat, 02 Sep 2006 19:33:50 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>toddtaylor@toddtaylor.com</managingEditor>
    <webMaster>toddtaylor@toddtaylor.com</webMaster>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=ae1c9e78-7e0b-4c83-b949-2ecaaf324694</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,ae1c9e78-7e0b-4c83-b949-2ecaaf324694.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,ae1c9e78-7e0b-4c83-b949-2ecaaf324694.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=ae1c9e78-7e0b-4c83-b949-2ecaaf324694</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
When trying to test a long web form, it gets really annoying having to manually populate
the form with information only to submit the form to see your error and then have
to do the whole thing over again once you <em>think</em> you’ve fixed the problem.
</p>
        <p>
Since I don’t own a copy of Visual Studio .NET 2005 Testing Edition, I haven’t had
much luck with finding good ways to test the UI (i.e., good ways to pre-populate forms
for testing.) Of course, one way to test a form is to actually set all the values
in a form on the ASPX page and then hope you remember to delete all those values once
you publish the site. However, this becomes very annoying if you don’t get things
right the first time.
</p>
        <p>
To make my life easier and make UI testing less painful, I came-up with a nifty way
to "cheat"... I’ve started using conditional compilation to populate my forms when
Visual Studio is in DEBUG mode, but leave the forms blank when in RELEASE mode. So
far, it works pretty slick, provided that I remember to compile my code in release
mode before publishing it!
</p>
        <p>
I wish I would’ve know about conditional compilation a while ago… it’s a really neat
feature. It took me a while to get it working properly, and here is how.
</p>
        <ol>
          <li>
Start with a Visual <a title="http://webproject.scottgu.com/CSharp/Migration2/Migration2.aspx" href="http://webproject.scottgu.com/CSharp/Migration2/Migration2.aspx"><font color="#800080">Studio
2005 Web Application Project</font></a> instead of the Visual Studio 2005 Web Site
Project.  Note that you’ll have to <a title="http://msdn.microsoft.com/asp.net/reference/infrastructure/wap/default.aspx" href="http://msdn.microsoft.com/asp.net/reference/infrastructure/wap/default.aspx"><font color="#800080">download</font></a> the
Web Application Project because created after Visual Studio was released.  The
application project behaves more like the Visual Studio 2003 web project and gives
you “Build” options in the project’s Properties menu.<br /></li>
          <li>
Once you have the web project created, right-click on the project title and select <strong><font face="Courier New">Properties</font></strong> and
then the <strong><font face="Courier New">Build</font></strong> tab.  <a href="http://blog.toddtaylor.com/content/binary/WebProperties.png" target="_blank">You
should see a screen like this</a>.<br /><br /></li>
          <li>
While <strong><font face="Courier New">Configuration</font></strong> is set to <strong><font face="Courier New">Debug</font></strong>,
leave <strong><font face="Courier New">Define DEBUG constant</font></strong> and <strong><font face="Courier New">Define
TRACE constant</font></strong> checked.  Then switch <strong><font face="Courier New">Configuration</font></strong> is
set to <strong><font face="Courier New">Release</font></strong> and uncheck <strong><font face="Courier New">Define
DEBUG constant</font></strong> and <strong><font face="Courier New">Define TRACE constant</font></strong>.<br /><br /></li>
          <li>
The rest is easy.  In your code, you can use the conditional compilation directive <strong><font face="Courier New">#if</font></strong> to
make sure the code you use to pre-populate your forms only exists in your code when
Visual Studio .NET is in <strong><font face="Courier New">Debug</font></strong> mode:<br /><br /><span style="COLOR: blue; FONT-FAMILY: 'Courier New'">protected</span><span style="FONT-FAMILY: 'Courier New'"><span style="COLOR: blue">void</span> Page_Load(<span style="COLOR: blue">object</span> sender, <span style="COLOR: teal">EventArgs</span> e)
{</span><br /><p><span style="FONT-FAMILY: 'Courier New'">        <span style="COLOR: blue">if</span> (!Page.IsPostBack)
{</span></p><p style="TEXT-INDENT: 0.5in"><span style="COLOR: blue; FONT-FAMILY: 'Courier New'">#if</span><span style="FONT-FAMILY: 'Courier New'"> DEBUG</span></p><p><span style="FONT-FAMILY: 'Courier New'">            <span style="COLOR: blue">this</span>.txtFirstName.Text
= <span style="COLOR: maroon">"John Doe"</span>;</span></p><p style="TEXT-INDENT: 0.5in"><span style="COLOR: blue; FONT-FAMILY: 'Courier New'">#endif</span></p><p style="MARGIN-LEFT: 0.5in; TEXT-INDENT: 12pt"><span style="FONT-FAMILY: 'Courier New'">}<br />
}</span></p></li>
          <li>
Run your site in <font face="Courier New"><strong>Debug</strong></font><span style="FONT-WEIGHT: normal; FONT-FAMILY: 'Arial (W1)'"> mode
and you should see your textbox named </span><font face="Courier New"><strong>txtFirstName</strong></font><span style="FONT-WEIGHT: normal; FONT-FAMILY: 'Arial (W1)'"> populated
with “John Doe”.  Run it in </span><font face="Courier New"><strong>Release</strong></font> mode
and your form should be blank.  Sweet!</li>
        </ol>
        <p>
Obviously, to keep your code a bit cleaner, you should probably create a method that
contains all your form population code and you can mark that method with a conditional
attribute by marking it with <font face="Courier New"><strong>[Conditional(“DEBUG”)]</strong></font>. 
Note that you will have to add the <span style="FONT-FAMILY: 'Courier New'"><strong>System.Diagnostics</strong></span> namespace
to your file in order for this attribute to work.
</p>
        <p>
So there you have it!  Make your UI testing a bit easier and still keep your
production code clean.
</p>
      </body>
      <title>Using Conditional Compilation for UI Testing</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,ae1c9e78-7e0b-4c83-b949-2ecaaf324694.aspx</guid>
      <link>http://blog.toddtaylor.com/2006/09/02/UsingConditionalCompilationForUITesting.aspx</link>
      <pubDate>Sat, 02 Sep 2006 19:33:50 GMT</pubDate>
      <description>&lt;p&gt;
When trying to test a long web form, it gets really annoying having to manually populate
the form with information only to submit the form to see your error and then have
to do the whole thing over again once you &lt;em&gt;think&lt;/em&gt; you’ve fixed the problem.
&lt;/p&gt;
&lt;p&gt;
Since I don’t own a copy of Visual Studio .NET 2005 Testing Edition, I haven’t had
much luck with finding good ways to test the UI (i.e., good ways to pre-populate forms
for testing.)&amp;nbsp;Of course, one way to test a form is to actually set all the values
in a form on the ASPX page and then hope you remember to delete all those values once
you publish the site. However, this becomes very annoying if you don’t get things
right the first time.
&lt;/p&gt;
&lt;p&gt;
To make my life easier and make UI testing less painful, I came-up with a nifty way
to "cheat"... I’ve started using conditional compilation to populate my forms when
Visual Studio is in DEBUG mode, but leave the forms blank when in RELEASE mode. So
far, it works pretty slick, provided that I remember to compile my code in release
mode before publishing it!
&lt;/p&gt;
&lt;p&gt;
I wish I would’ve know about conditional compilation a while ago… it’s a really neat
feature. It took me a while to get it working properly, and here is how.
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Start with a Visual &lt;a title=http://webproject.scottgu.com/CSharp/Migration2/Migration2.aspx href="http://webproject.scottgu.com/CSharp/Migration2/Migration2.aspx"&gt;&lt;font color=#800080&gt;Studio
2005 Web Application Project&lt;/font&gt;&lt;/a&gt; instead of the Visual Studio 2005 Web Site
Project.&amp;nbsp; Note that you’ll have to &lt;a title=http://msdn.microsoft.com/asp.net/reference/infrastructure/wap/default.aspx href="http://msdn.microsoft.com/asp.net/reference/infrastructure/wap/default.aspx"&gt;&lt;font color=#800080&gt;download&lt;/font&gt;&lt;/a&gt; the
Web Application Project because created after Visual Studio was released. &amp;nbsp;The
application project behaves more like the Visual Studio 2003 web project and gives
you “Build” options in the project’s Properties menu.&lt;br&gt;
&lt;li&gt;
Once you have the web project created, right-click on the project title and select &lt;strong&gt;&lt;font face="Courier New"&gt;Properties&lt;/font&gt;&lt;/strong&gt; and
then the &lt;strong&gt;&lt;font face="Courier New"&gt;Build&lt;/font&gt;&lt;/strong&gt; tab.&amp;nbsp; &lt;a href="http://blog.toddtaylor.com/content/binary/WebProperties.png" target=_blank&gt;You
should see a screen like this&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;li&gt;
While &lt;strong&gt;&lt;font face="Courier New"&gt;Configuration&lt;/font&gt;&lt;/strong&gt; is set to &lt;strong&gt;&lt;font face="Courier New"&gt;Debug&lt;/font&gt;&lt;/strong&gt;,
leave &lt;strong&gt;&lt;font face="Courier New"&gt;Define DEBUG constant&lt;/font&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;font face="Courier New"&gt;Define
TRACE constant&lt;/font&gt;&lt;/strong&gt; checked.&amp;nbsp; Then switch &lt;strong&gt;&lt;font face="Courier New"&gt;Configuration&lt;/font&gt;&lt;/strong&gt; is
set to &lt;strong&gt;&lt;font face="Courier New"&gt;Release&lt;/font&gt;&lt;/strong&gt; and uncheck &lt;strong&gt;&lt;font face="Courier New"&gt;Define
DEBUG constant&lt;/font&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;font face="Courier New"&gt;Define TRACE constant&lt;/font&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;br&gt;
&lt;li&gt;
The rest is easy.&amp;nbsp; In your code, you can use the conditional compilation directive &lt;strong&gt;&lt;font face="Courier New"&gt;#if&lt;/font&gt;&lt;/strong&gt; to
make sure the code you use to pre-populate your forms only exists in your code when
Visual Studio .NET is in &lt;strong&gt;&lt;font face="Courier New"&gt;Debug&lt;/font&gt;&lt;/strong&gt; mode:&lt;br&gt;
&lt;br&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;protected&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; Page_Load(&lt;span style="COLOR: blue"&gt;object&lt;/span&gt; sender, &lt;span style="COLOR: teal"&gt;EventArgs&lt;/span&gt; e)
{&lt;/span&gt; 
&lt;br&gt;
&lt;p&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 style="COLOR: blue"&gt;if&lt;/span&gt; (!Page.IsPostBack)
{&lt;/span&gt;
&lt;/p&gt;
&lt;p style="TEXT-INDENT: 0.5in"&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;#if&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; DEBUG&lt;/span&gt;
&lt;/p&gt;
&lt;p&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 style="COLOR: blue"&gt;this&lt;/span&gt;.txtFirstName.Text
= &lt;span style="COLOR: maroon"&gt;"John Doe"&lt;/span&gt;;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="TEXT-INDENT: 0.5in"&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;#endif&lt;/span&gt;
&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 0.5in; TEXT-INDENT: 12pt"&gt;
&lt;span style="FONT-FAMILY: 'Courier New'"&gt;}&lt;br&gt;
}&lt;/span&gt;
&lt;/p&gt;
&lt;li&gt;
Run your site in &gt;&lt;font face="Courier New"&gt;&lt;strong&gt;Debug&lt;/strong&gt;&lt;/font&gt;&lt;span style="FONT-WEIGHT: normal; FONT-FAMILY: 'Arial (W1)'"&gt; mode
and you should see your textbox named &lt;/span&gt;&lt;font face="Courier New"&gt;&lt;strong&gt;txtFirstName&lt;/strong&gt;&lt;/font&gt;&lt;span style="FONT-WEIGHT: normal; FONT-FAMILY: 'Arial (W1)'"&gt; populated
with “John Doe”. &amp;nbsp;Run it in &lt;/span&gt;&lt;font face="Courier New"&gt;&lt;strong&gt;Release&lt;/strong&gt;&lt;/font&gt; mode
and your form should be blank. &amp;nbsp;Sweet!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Obviously, to keep your code a bit cleaner, you should probably create a method that
contains all your form population code and you can mark that method with a conditional
attribute by marking it with &lt;font face="Courier New"&gt;&lt;strong&gt;[Conditional(“DEBUG”)]&lt;/strong&gt;&lt;/font&gt;.&amp;nbsp;
Note that you will have to add the &lt;span style="FONT-FAMILY: 'Courier New'"&gt;&lt;strong&gt;System.Diagnostics&lt;/strong&gt;&lt;/span&gt; namespace
to your file in order for this attribute to work.
&lt;/p&gt;
&lt;p&gt;
So there you have it!&amp;nbsp; Make your UI testing a bit easier and still keep your
production code clean.
&lt;/p&gt;
&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,ae1c9e78-7e0b-4c83-b949-2ecaaf324694.aspx</comments>
      <category>ASP.NET</category>
      <category>C#</category>
      <category>Web Design</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=c74a7acf-fd0f-439a-816c-a77ae6756e8b</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,c74a7acf-fd0f-439a-816c-a77ae6756e8b.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,c74a7acf-fd0f-439a-816c-a77ae6756e8b.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c74a7acf-fd0f-439a-816c-a77ae6756e8b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
One thing that was painfully lacking in Visual Studio 2003 was the ability to work
with XML and XSLT.  Most people opted to purchase third party tools like XML
Spy to deal with VS.NET's inadequacies.  However, Visual Studio .NET 2005 has
a group of new tools that add things such as XSLT debugging and Intellisense that
make working with XML related files much more tolerable.
</p>
        <p>
In addition, the .NET Framework 2.0 has undergone some significant improvements in
the System.XML namespace.  If you work with XML on a frequent basis, you'll want
to be sure to read through these MSDN articles and see what's new in version 2:
</p>
        <ul>
          <li>
            <a href="http://msdn.microsoft.com/XML/BuildingXML/XMLinNETFramework/default.aspx?pull=/library/en-us/dnxmlnet/html/xmltools.asp">An
Introduction to the XML Tools in Visual Studio 2005</a>
          </li>
          <li>
            <a href="http://msdn.microsoft.com/XML/BuildingXML/XMLinNETFramework/default.aspx?pull=/library/en-us/dnexxml/html/xml05202002.asp">XML
Namespaces and How They Affect XPath and XSLT</a>
          </li>
          <li>
            <a href="http://msdn.microsoft.com/XML/BuildingXML/XMLinNETFramework/default.aspx?pull=/library/en-us/dnxml/html/sysxmlvs05.asp">What's
New in System.Xml for Visual Studio 2005 and the .NET Framework 2.0 Release</a>
          </li>
        </ul>
      </body>
      <title>Working with XML in the .NET 2.0 Framework</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,c74a7acf-fd0f-439a-816c-a77ae6756e8b.aspx</guid>
      <link>http://blog.toddtaylor.com/2006/06/07/WorkingWithXMLInTheNET20Framework.aspx</link>
      <pubDate>Wed, 07 Jun 2006 18:44:04 GMT</pubDate>
      <description>&lt;p&gt;
One thing that was painfully lacking in Visual Studio 2003 was the ability to work
with XML and XSLT. &amp;nbsp;Most people opted to purchase third party tools like XML
Spy to deal with VS.NET's inadequacies. &amp;nbsp;However, Visual Studio .NET 2005 has
a group of new tools that add things such as XSLT debugging and Intellisense that
make working with XML related files much more tolerable.
&lt;/p&gt;
&lt;p&gt;
In addition, the .NET Framework 2.0 has undergone some significant improvements in
the System.XML namespace. &amp;nbsp;If you work with XML on a frequent basis, you'll want
to be sure to read through these MSDN articles and see what's new in version 2:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://msdn.microsoft.com/XML/BuildingXML/XMLinNETFramework/default.aspx?pull=/library/en-us/dnxmlnet/html/xmltools.asp"&gt;An
Introduction to the XML Tools in Visual Studio 2005&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://msdn.microsoft.com/XML/BuildingXML/XMLinNETFramework/default.aspx?pull=/library/en-us/dnexxml/html/xml05202002.asp"&gt;XML
Namespaces and How They Affect XPath and XSLT&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://msdn.microsoft.com/XML/BuildingXML/XMLinNETFramework/default.aspx?pull=/library/en-us/dnxml/html/sysxmlvs05.asp"&gt;What's
New in System.Xml for Visual Studio 2005 and the .NET Framework 2.0 Release&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,c74a7acf-fd0f-439a-816c-a77ae6756e8b.aspx</comments>
      <category>ASP.NET</category>
      <category>C#</category>
      <category>VB.NET</category>
      <category>XML</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=25af4682-7a1f-4eae-ad2a-81f9bc662022</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,25af4682-7a1f-4eae-ad2a-81f9bc662022.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,25af4682-7a1f-4eae-ad2a-81f9bc662022.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=25af4682-7a1f-4eae-ad2a-81f9bc662022</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
            <span style="font-family:&quot;Arial \(W1\)&quot;">Note to self: Bookmark this link! <a href="http://msdn.microsoft.com/vstudio/downloads/101samples/default.aspx">MSDN:
101 Samples for Visual Studio 2005</a></span>
          </p>
        </div>
      </body>
      <title>101 Samples for Visual Studio 2005</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,25af4682-7a1f-4eae-ad2a-81f9bc662022.aspx</guid>
      <link>http://blog.toddtaylor.com/2006/04/29/101SamplesForVisualStudio2005.aspx</link>
      <pubDate>Sat, 29 Apr 2006 01:46:36 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
&lt;span style='font-family:"Arial \(W1\)"'&gt;Note to self: Bookmark this link! &lt;a href="http://msdn.microsoft.com/vstudio/downloads/101samples/default.aspx"&gt;MSDN:
101 Samples for Visual Studio 2005&lt;/a&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,25af4682-7a1f-4eae-ad2a-81f9bc662022.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=58fec02c-bc2d-4e45-8883-b206de816397</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,58fec02c-bc2d-4e45-8883-b206de816397.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,58fec02c-bc2d-4e45-8883-b206de816397.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=58fec02c-bc2d-4e45-8883-b206de816397</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
It seems like such a simple thing.  You have a form.  You have one submit
button.  Yet when you hit your Enter key, the form submits, the page posts back,
and… well, nothing.  For some reason Internet Explorer doesn’t seem
to understand that the Enter key should post the form.
</p>
          <p class="MsoNormal">
Thanks to some handy-work by the ASP.NET 2.0 developers, there is a solution for this. 
In your &lt;form&gt; tag, you now have a property called <b><span style="font-family:&quot;Courier New&quot;">defaultbutton</span></b> that
can be used to make sure that the button you want to be ‘clicked’ when
hitting the enter key actually is.
</p>
          <p class="MsoNormal">
            <span style="font-family:&quot;Courier New&quot;;color:blue">&lt;</span>
            <span style="font-family:&quot;Courier New&quot;;color:maroon">form</span>
            <span style="font-family:&quot;Courier New&quot;">
              <span style="color:red">id</span>
              <span style="color:blue">="form1"</span>  <span style="color:red">runat</span><span style="color:blue">="server"</span><b><span style="color:red">defaultbutton</span><span style="color:blue">="btnSearch"</span></b><span style="color:blue">&gt;</span></span>
          </p>
          <p class="MsoNormal">
But wait, there is more!  A new <b><span style="font-family:&quot;Courier New&quot;">defaultbutton</span></b> property
also makes it super easy to make sure that the cursor auto-magically starts on the
field of your choosing so you don’t have to write your own onload JavaScript
event handler:
</p>
          <p class="MsoNormal">
            <span style="font-family:&quot;Courier New&quot;;color:blue">&lt;</span>
            <span style="font-family:&quot;Courier New&quot;;color:maroon">form</span>
            <span style="font-family:&quot;Courier New&quot;">
              <span style="color:red">id</span>
              <span style="color:blue">="form1"</span>  <span style="color:red">runat</span><span style="color:blue">="server"</span><span style="color:red">defaultbutton</span><span style="color:blue">="btnSearch"</span><span style="color:red">defaultfocus</span><span style="color:blue">="txtSearch"&gt;</span></span>
          </p>
          <p class="MsoNormal">
The more I learn about ASP.NET 2.0 and Visual Studio .NET 2005, the more I’m
impressed.  It’s the little details like these that get me all excited!
</p>
        </div>
      </body>
      <title>Submitting a Form With the Enter Key in ASP.NET 2.0</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,58fec02c-bc2d-4e45-8883-b206de816397.aspx</guid>
      <link>http://blog.toddtaylor.com/2006/04/26/SubmittingAFormWithTheEnterKeyInASPNET20.aspx</link>
      <pubDate>Wed, 26 Apr 2006 13:14:07 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
It seems like such a simple thing.&amp;nbsp; You have a form.&amp;nbsp; You have one submit
button.&amp;nbsp; Yet when you hit your Enter key, the form submits, the page posts back,
and&amp;#8230; well, nothing.&amp;nbsp; For some reason Internet Explorer doesn&amp;#8217;t seem
to understand that the Enter key should post the form.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Thanks to some handy-work by the ASP.NET 2.0 developers, there is a solution for this.&amp;nbsp;
In your &amp;lt;form&amp;gt; tag, you now have a property called &lt;b&gt;&lt;span style='font-family:"Courier New"'&gt;defaultbutton&lt;/span&gt;&lt;/b&gt; that
can be used to make sure that the button you want to be &amp;#8216;clicked&amp;#8217; when
hitting the enter key actually is.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span style='font-family:"Courier New";color:blue'&gt;&amp;lt;&lt;/span&gt;&lt;span style='font-family:"Courier New";color:maroon'&gt;form&lt;/span&gt;&lt;span style='font-family:"Courier New"'&gt; &lt;span style='color:red'&gt;id&lt;/span&gt;&lt;span style='color:blue'&gt;=&amp;quot;form1&amp;quot;&lt;/span&gt;&amp;nbsp; &lt;span style='color:red'&gt;runat&lt;/span&gt;&lt;span style='color:blue'&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;b&gt;&lt;span style='color:red'&gt;defaultbutton&lt;/span&gt;&lt;span style='color:blue'&gt;=&amp;quot;btnSearch&amp;quot;&lt;/span&gt;&lt;/b&gt;&lt;span style='color:blue'&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
But wait, there is more!&amp;nbsp; A new &lt;b&gt;&lt;span style='font-family:"Courier New"'&gt;defaultbutton&lt;/span&gt;&lt;/b&gt; property
also makes it super easy to make sure that the cursor auto-magically starts on the
field of your choosing so you don&amp;#8217;t have to write your own onload JavaScript
event handler:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span style='font-family:"Courier New";color:blue'&gt;&amp;lt;&lt;/span&gt;&lt;span style='font-family:"Courier New";color:maroon'&gt;form&lt;/span&gt;&lt;span style='font-family:"Courier New"'&gt; &lt;span style='color:red'&gt;id&lt;/span&gt;&lt;span style='color:blue'&gt;=&amp;quot;form1&amp;quot;&lt;/span&gt;&amp;nbsp; &lt;span style='color:red'&gt;runat&lt;/span&gt;&lt;span style='color:blue'&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style='color:red'&gt;defaultbutton&lt;/span&gt;&lt;span style='color:blue'&gt;=&amp;quot;btnSearch&amp;quot;&lt;/span&gt; &lt;span style='color:red'&gt;defaultfocus&lt;/span&gt;&lt;span style='color:blue'&gt;=&amp;quot;txtSearch&amp;quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
The more I learn about ASP.NET 2.0 and Visual Studio .NET 2005, the more I&amp;#8217;m
impressed.&amp;nbsp; It&amp;#8217;s the little details like these that get me all excited!
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,58fec02c-bc2d-4e45-8883-b206de816397.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=7e0710f2-5022-45eb-836e-995afbf36278</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,7e0710f2-5022-45eb-836e-995afbf36278.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,7e0710f2-5022-45eb-836e-995afbf36278.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=7e0710f2-5022-45eb-836e-995afbf36278</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">If you have Visual Studio .NET and the
IE7 Beta installed on your PC, you might have noticed that the CSS Style Builder window
pops-up and then instantly disappears.  Apparently the glitch is caused by IE7
and a fix can be found on <a href="http://msdn.technetweb3.orcsweb.com/mab/archive/2006/03/26/561316.aspx">Marc
Brown’s MDSN blog</a>.</body>
      <title>Visual Studio .NET 2005 Style Builder Bug</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,7e0710f2-5022-45eb-836e-995afbf36278.aspx</guid>
      <link>http://blog.toddtaylor.com/2006/03/30/VisualStudioNET2005StyleBuilderBug.aspx</link>
      <pubDate>Thu, 30 Mar 2006 05:59:00 GMT</pubDate>
      <description>If you have Visual Studio .NET and the IE7 Beta installed on your PC, you might have noticed that the CSS Style Builder window pops-up and then instantly disappears. &amp;nbsp;Apparently the glitch is caused by IE7 and a fix can be found on &lt;a href="http://msdn.technetweb3.orcsweb.com/mab/archive/2006/03/26/561316.aspx"&gt;Marc
Brown’s MDSN blog&lt;/a&gt;.</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,7e0710f2-5022-45eb-836e-995afbf36278.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=30d0340b-1980-4ebb-9228-aa1b292012d6</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,30d0340b-1980-4ebb-9228-aa1b292012d6.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,30d0340b-1980-4ebb-9228-aa1b292012d6.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=30d0340b-1980-4ebb-9228-aa1b292012d6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">When ever a client requires that the application
you are going to build for them must be backwards compatible, their old browser become
you’re new problem.  Fortunately, if the old browser is Internet Explorer, you
now have hope!  Thanks to a link forwarded to me by my friend Mark Schmidt, there
are several ‘stand-alone’ versions of Internet Explorer available for download that
can be run along with your currently installed version of IE.  Visit <a href="http://browsers.evolt.org/?ie/32bit/standalone">Evolt.org</a> to
download everything from IE 3 to IE 6.</body>
      <title>Stand-Alone Internet Explorer for Backwards Compatibility</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,30d0340b-1980-4ebb-9228-aa1b292012d6.aspx</guid>
      <link>http://blog.toddtaylor.com/2006/03/21/StandAloneInternetExplorerForBackwardsCompatibility.aspx</link>
      <pubDate>Tue, 21 Mar 2006 03:52:16 GMT</pubDate>
      <description>When ever a client requires that the application you are going to build for them must be backwards compatible, their old browser become you’re new problem. &amp;nbsp;Fortunately, if the old browser is Internet Explorer, you now have hope! &amp;nbsp;Thanks to a link forwarded to me by my friend Mark Schmidt, there are several ‘stand-alone’ versions of Internet Explorer available for download that can be run along with your currently installed version of IE.&amp;nbsp; Visit &lt;a href="http://browsers.evolt.org/?ie/32bit/standalone"&gt;Evolt.org&lt;/a&gt; to download everything from IE 3 to IE 6.</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,30d0340b-1980-4ebb-9228-aa1b292012d6.aspx</comments>
      <category>ASP.NET</category>
      <category>Web Design</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=c7e40b6c-eefd-43c5-8f7c-50fef3d2b9d0</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,c7e40b6c-eefd-43c5-8f7c-50fef3d2b9d0.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,c7e40b6c-eefd-43c5-8f7c-50fef3d2b9d0.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c7e40b6c-eefd-43c5-8f7c-50fef3d2b9d0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
To customize the default VB file templates used in Visual Studio .NET 2003, modify
the following files to your heart’s content:
</p>
        <p>
          <font face="Courier New">C:\Program Files\Microsoft Visual Studio .NET 2003\Vb7\VBWizards\DesignerTemplates\1033</font>
        </p>
      </body>
      <title>Customizing Visual Studio .NET 2003 VB Templates</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,c7e40b6c-eefd-43c5-8f7c-50fef3d2b9d0.aspx</guid>
      <link>http://blog.toddtaylor.com/2006/03/17/CustomizingVisualStudioNET2003VBTemplates.aspx</link>
      <pubDate>Fri, 17 Mar 2006 22:52:32 GMT</pubDate>
      <description>&lt;p&gt;
To customize the default VB file templates used in Visual Studio .NET 2003, modify
the following files to your heart’s content:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;C:\Program Files\Microsoft Visual Studio .NET 2003\Vb7\VBWizards\DesignerTemplates\1033&lt;/font&gt;
&lt;/p&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,c7e40b6c-eefd-43c5-8f7c-50fef3d2b9d0.aspx</comments>
      <category>ASP.NET</category>
      <category>VB.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=219af265-ccfd-48f3-a9fb-6f8ee64a6031</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,219af265-ccfd-48f3-a9fb-6f8ee64a6031.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,219af265-ccfd-48f3-a9fb-6f8ee64a6031.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=219af265-ccfd-48f3-a9fb-6f8ee64a6031</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Maruis Marais from <a href="http://www.codeproject.com/">CodeProject.com</a> was nice
enough to share is extensive library of <a href="http://www.codeproject.com/dotnet/UnitTestCodeSnips.asp">Visual
Studio 2005 Unit Testing Code Snippets</a> (C#).  A VB.NET set would sure be
nice!   Upon trying to install these code snippets, I realized that the
Code Snippets Manager does not show-up on my Tools menu in Visual Studio 2005 and
I have no idea why.  I can still access the manager by typing Ctrl+K then Ctrl+B,
but it would be nice if I could just go to the Tools menu because I know I’ll forget
that key combination! ;-)
</p>
        <p>
Update: I was able to add the Code Snippets Manager back to the Tools menu by opening
VS.NET 2005 and navigating to <font face="Courier New">Tools &gt; Customize... &gt;
Commands (Tab) &gt; Category: Tools</font> and then dragging the Code Snippet Manager
back into the Tools menu.
</p>
      </body>
      <title>Visual Studio 2005 Unit Testing Code Snippets in C#</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,219af265-ccfd-48f3-a9fb-6f8ee64a6031.aspx</guid>
      <link>http://blog.toddtaylor.com/2006/02/25/VisualStudio2005UnitTestingCodeSnippetsInC.aspx</link>
      <pubDate>Sat, 25 Feb 2006 02:02:05 GMT</pubDate>
      <description>&lt;p&gt;
Maruis Marais from &lt;a href="http://www.codeproject.com/"&gt;CodeProject.com&lt;/a&gt; was nice
enough to share is extensive library of &lt;a href="http://www.codeproject.com/dotnet/UnitTestCodeSnips.asp"&gt;Visual
Studio 2005 Unit Testing Code Snippets&lt;/a&gt; (C#). &amp;nbsp;A VB.NET set would sure be
nice!&amp;nbsp;&amp;nbsp; Upon trying to install these code snippets, I realized that the
Code Snippets Manager does not show-up on my Tools menu in Visual Studio 2005 and
I have no idea why. &amp;nbsp;I can still access the manager by typing Ctrl+K then Ctrl+B,
but it would be nice if I could just go to the Tools menu because I know I’ll forget
that key combination! ;-)
&lt;/p&gt;
&lt;p&gt;
Update: I was able to add the Code Snippets Manager back to the Tools menu by opening
VS.NET 2005 and navigating to &lt;font face="Courier New"&gt;Tools &amp;gt; Customize... &amp;gt;
Commands (Tab) &amp;gt; Category: Tools&lt;/font&gt; and then dragging the Code Snippet Manager
back into the Tools menu.
&lt;/p&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,219af265-ccfd-48f3-a9fb-6f8ee64a6031.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=b704c7fc-008a-4703-8340-14a1b2411d9d</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,b704c7fc-008a-4703-8340-14a1b2411d9d.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,b704c7fc-008a-4703-8340-14a1b2411d9d.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=b704c7fc-008a-4703-8340-14a1b2411d9d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>Abstract class</strong> – Defines the methods and common attributes of a set
of classes that are conceptually similar.  Abstract classes are never instantiated.
</p>
        <p>
          <b>Attribute</b> - Data associated with an object (also called a <i>data member</i>.)<br /></p>
        <p>
          <strong>Class</strong> – Blueprint of an object - defines the methods and data of
an object of its type.
</p>
        <p>
          <b>Constructor</b> - Procedure that is invoked when an object is created.<br /></p>
        <p>
          <strong>Concrete class</strong> – A class that implements a particular type of behavior
for an abstract class. Concrete classes are specific, non-changing implementations
of a concept.
</p>
        <p>
          <b>Derived Class</b> - A class that is specialized from a base class.  Contains
all of the attributes and methods of the base class but may also contain other attributes
or different method implimentations.
</p>
        <p>
          <b>Destructor</b> - Procedure that is invoked when a object is deleted.<br /></p>
        <p>
          <strong>Encapsulation</strong> – Typically defined as data hiding, but better thought
of as any kind of hiding (type, implementation, design, and so on.) Objects encapsulate
their data.  Abstract classes encapsulate their derived concrete classes.
</p>
        <p>
          <b>Functional Decomposition</b> - A method of analysis in which a problem is broken
into smaller and smaller functions.<br /></p>
        <p>
          <strong>Inheritance</strong> – A way that a class is specialized, used to relate derived
classes with their base classes. A class inherits from another class when it receives
some or all of the qualities of that class.  The starting class is called the <i>base</i>, <i>super</i>, <i>parent</i>,
or <i>generalized</i> class, whereas the inheriting class is called the <i>derived</i>, <i>sub</i>, <i>child</i>,
or <i>specialized</i> class.
</p>
        <p>
          <strong>Instance</strong> – A particular example of a class. (It is always an object.)
A particular instance or entity of a class.  Each object has its own state. 
This enables me to have several objects of the same type (class).
</p>
        <p>
          <strong>Instantiation</strong> – The process of creating an instance of a class.
</p>
        <p>
          <strong>Interface</strong> – An interface is like a class, but only provides a specification
– and not an implementation – for its members.  It is similar to an abstract
class consisting only of abstract members.  When programming, you use interfaces
when you need several classes to share some characteristics that are not present in
a common base class and want to be sure that each class implements the characteristic
on its own (because each member is abstract.)
</p>
        <p>
          <b>Member</b> - Either data ora procedure of a class.
</p>
        <p>
          <b>Method</b> - Procedures that are associated with a class.
</p>
        <p>
          <b>Object</b> - An entity with responsibilities.  A special, self-contained holder
of both data and procedures that operate on that data.  An object's data is protected
from external objects.<br /></p>
        <p>
          <strong>Perspectives</strong> – There are three different perspectives for looking
at objects: <i>conceptual</i>, <i>specification</i>, and <i>implementation</i>.  These
distinctions are helpful in understanding the relationship between abstract classes
and their derivations.  The abstract class defines how to solve things conceptually. 
It also gives the specification for communicating with any object derived from it.
Each derivation provides the specific implementation needed.
</p>
        <p>
          <strong>Polymorphism</strong> – Being able to refer to different derivations of a
class in the same way, but getting the behavior appropriate to the derived class being
referred to.
</p>
        <p>
          <b>Superclass</b> - A class from which other classes are derived. Contains the master
definitions of data nad procedures that all derived classes will use (and for procedures,
possibly override.)<br /></p>
      </body>
      <title>Object-Oriented Programming Terminology</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,b704c7fc-008a-4703-8340-14a1b2411d9d.aspx</guid>
      <link>http://blog.toddtaylor.com/2006/02/15/ObjectOrientedProgrammingTerminology.aspx</link>
      <pubDate>Wed, 15 Feb 2006 21:39:36 GMT</pubDate>
      <description>&lt;p&gt;
&lt;strong&gt;Abstract class&lt;/strong&gt; – Defines the methods and common attributes of a set
of classes that are conceptually similar.&amp;nbsp; Abstract classes are never instantiated.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Attribute&lt;/b&gt; - Data associated with an object (also called a &lt;i&gt;data member&lt;/i&gt;.)&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Class&lt;/strong&gt; – Blueprint of an object - defines the methods and data of
an object of its type.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Constructor&lt;/b&gt; - Procedure that is invoked when an object is created.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Concrete class&lt;/strong&gt; – A class that implements a particular type of behavior
for an abstract class. Concrete classes are specific, non-changing implementations
of a concept.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Derived Class&lt;/b&gt; - A class that is specialized from a base class.&amp;nbsp; Contains
all of the attributes and methods of the base class but may also contain other attributes
or different method implimentations.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Destructor&lt;/b&gt; - Procedure that is invoked when a object is deleted.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Encapsulation&lt;/strong&gt; – Typically defined as data hiding, but better thought
of as any kind of hiding (type, implementation, design, and so on.) Objects encapsulate
their data.&amp;nbsp; Abstract classes encapsulate their derived concrete classes.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Functional Decomposition&lt;/b&gt; - A method of analysis in which a problem is broken
into smaller and smaller functions.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Inheritance&lt;/strong&gt; – A way that a class is specialized, used to relate derived
classes with their base classes. A class inherits from another class when it receives
some or all of the qualities of that class. &amp;nbsp;The starting class is called the &lt;i&gt;base&lt;/i&gt;, &lt;i&gt;super&lt;/i&gt;, &lt;i&gt;parent&lt;/i&gt;,
or &lt;i&gt;generalized&lt;/i&gt; class, whereas the inheriting class is called the &lt;i&gt;derived&lt;/i&gt;, &lt;i&gt;sub&lt;/i&gt;, &lt;i&gt;child&lt;/i&gt;,
or &lt;i&gt;specialized&lt;/i&gt; class.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Instance&lt;/strong&gt; – A particular example of a class. (It is always an object.)
A particular instance or entity of a class.&amp;nbsp; Each object has its own state.&amp;nbsp;
This enables me to have several objects of the same type (class).
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Instantiation&lt;/strong&gt; – The process of creating an instance of a class.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Interface&lt;/strong&gt; – An interface is like a class, but only provides a specification
– and not an implementation – for its members. &amp;nbsp;It is similar to an abstract
class consisting only of abstract members. &amp;nbsp;When programming, you use interfaces
when you need several classes to share some characteristics that are not present in
a common base class and want to be sure that each class implements the characteristic
on its own (because each member is abstract.)
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Member&lt;/b&gt; - Either data ora procedure of a class.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Method&lt;/b&gt; - Procedures that are associated with a class.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Object&lt;/b&gt; - An entity with responsibilities.&amp;nbsp; A special, self-contained holder
of both data and procedures that operate on that data.&amp;nbsp; An object's data is protected
from external objects.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Perspectives&lt;/strong&gt; – There are three different perspectives for looking
at objects: &lt;i&gt;conceptual&lt;/i&gt;, &lt;i&gt;specification&lt;/i&gt;, and &lt;i&gt;implementation&lt;/i&gt;. &amp;nbsp;These
distinctions are helpful in understanding the relationship between abstract classes
and their derivations. &amp;nbsp;The abstract class defines how to solve things conceptually.&amp;nbsp;
It also gives the specification for communicating with any object derived from it.
Each derivation provides the specific implementation needed.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Polymorphism&lt;/strong&gt; – Being able to refer to different derivations of a
class in the same way, but getting the behavior appropriate to the derived class being
referred to.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Superclass&lt;/b&gt; - A class from which other classes are derived. Contains the master
definitions of data nad procedures that all derived classes will use (and for procedures,
possibly override.)&lt;br&gt;
&lt;/p&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,b704c7fc-008a-4703-8340-14a1b2411d9d.aspx</comments>
      <category>ASP.NET</category>
      <category>VB.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=d8b5451e-ddf2-44be-9ea2-b3adca4c16de</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,d8b5451e-ddf2-44be-9ea2-b3adca4c16de.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,d8b5451e-ddf2-44be-9ea2-b3adca4c16de.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=d8b5451e-ddf2-44be-9ea2-b3adca4c16de</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
I recently downloaded the Microsoft Internet Explorer 7 Beta 2 and to my surprise,
one of my web site designs completely falls apart in IE 7 :-(  In my quest to
figure-out the problem, I figured the first thing I need to know is whether or not
IE 7 is displaying the web site in “quirks-mode” or not.  The browser
doesn’t display this information anywhere (that I’m aware of), but I found
a quick way to display this information.  In your browser’s address bar,
paste the following code:
</p>
          <p class="MsoNormal">
            <span style="font-family:&quot;Courier New&quot;;color:black">javascript:alert(document.compatMode)</span>
          </p>
        </div>
      </body>
      <title>Displaying Browser Compatibility Mode</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,d8b5451e-ddf2-44be-9ea2-b3adca4c16de.aspx</guid>
      <link>http://blog.toddtaylor.com/2006/02/10/DisplayingBrowserCompatibilityMode.aspx</link>
      <pubDate>Fri, 10 Feb 2006 17:14:42 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
I recently downloaded the Microsoft Internet Explorer 7 Beta 2 and to my surprise,
one of my web site designs completely falls apart in IE 7 :-(&amp;nbsp; In my quest to
figure-out the problem, I figured the first thing I need to know is whether or not
IE 7 is displaying the web site in &amp;#8220;quirks-mode&amp;#8221; or not.&amp;nbsp; The browser
doesn&amp;#8217;t display this information anywhere (that I&amp;#8217;m aware of), but I found
a quick way to display this information.&amp;nbsp; In your browser&amp;#8217;s address bar,
paste the following code:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span style='font-family:"Courier New";color:black'&gt;javascript:alert(document.compatMode)&lt;/span&gt;
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,d8b5451e-ddf2-44be-9ea2-b3adca4c16de.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=73946210-bb40-4541-8678-e912692e060d</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,73946210-bb40-4541-8678-e912692e060d.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,73946210-bb40-4541-8678-e912692e060d.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=73946210-bb40-4541-8678-e912692e060d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
The CopySourceAsHtml VS.NET plug-in certainly won’t make you a better programmer,
but it might help make your blog posts prettier :-)   The utility allows
you to keep the code coloring that is present in Visual Studio so you can post code
snippets into HTML documents without losing the coloring.  Get the plug-in by
visiting <a href="http://jasonhaley.com/blog/archive/2005/12/27/131246.aspx">Jason
Haley’s blog</a>.  You can download the plug-in <a href="http://jasonhaley.com/files/CopySourceAsHTML2005.zip">here</a>.
</p>
        </div>
      </body>
      <title>CopySourceAsHtml for VS.NET 2005</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,73946210-bb40-4541-8678-e912692e060d.aspx</guid>
      <link>http://blog.toddtaylor.com/2006/02/08/CopySourceAsHtmlForVSNET2005.aspx</link>
      <pubDate>Wed, 08 Feb 2006 14:30:42 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
The CopySourceAsHtml VS.NET plug-in certainly won&amp;#8217;t make you a better programmer,
but it might help make your blog posts prettier :-)&amp;nbsp;&amp;nbsp; The utility allows
you to keep the code coloring that is present in Visual Studio so you can post code
snippets into HTML documents without losing the coloring.&amp;nbsp; Get the plug-in by
visiting &lt;a href="http://jasonhaley.com/blog/archive/2005/12/27/131246.aspx"&gt;Jason
Haley&amp;#8217;s blog&lt;/a&gt;.&amp;nbsp; You can download the plug-in &lt;a href="http://jasonhaley.com/files/CopySourceAsHTML2005.zip"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,73946210-bb40-4541-8678-e912692e060d.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=10dca267-6185-41f2-8db5-dcbf21594edd</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,10dca267-6185-41f2-8db5-dcbf21594edd.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,10dca267-6185-41f2-8db5-dcbf21594edd.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=10dca267-6185-41f2-8db5-dcbf21594edd</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
Have you ever wanted your own MSDN action figure? Well, probably not, but in case
you do, visit the new <a href="http://msdn.microsoft.com/events/hero/">MSDN Webcast
Source Force</a> web site and get yourself a set of MSDN Lego-man-looking characters
just by watching webcasts!
</p>
        </div>
      </body>
      <title>MSDN Action Figures</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,10dca267-6185-41f2-8db5-dcbf21594edd.aspx</guid>
      <link>http://blog.toddtaylor.com/2006/01/26/MSDNActionFigures.aspx</link>
      <pubDate>Thu, 26 Jan 2006 23:12:23 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
Have you ever wanted your own MSDN action figure? Well, probably not, but in case
you do, visit the new &lt;a href="http://msdn.microsoft.com/events/hero/"&gt;MSDN Webcast
Source Force&lt;/a&gt; web site and get yourself a set of MSDN Lego-man-looking characters
just by watching webcasts!
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,10dca267-6185-41f2-8db5-dcbf21594edd.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=e143a5ee-e9e6-413e-93d4-ed03bb55f446</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,e143a5ee-e9e6-413e-93d4-ed03bb55f446.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,e143a5ee-e9e6-413e-93d4-ed03bb55f446.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=e143a5ee-e9e6-413e-93d4-ed03bb55f446</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
Once again, <a href="http://weblogs.asp.net/scottgu/">Scott Guthrie</a> posted some
more highly informative ASP.NET 2.0 information; this post being the first in a series
featuring typed datasets.
</p>
          <p class="MsoNormal">
Many people groan at the thought of using typed datasets because ‘purists’ feel that
using them generates a lot of unnecessary code (among other things which I won’t discuss
here.)  While this may be true, they are very useful for creating a very quick-n-dirty
data access layer with almost no need to write SQL or ADO code.  In addition,
getting ‘free’ strongly typed code (intellisense = good) makes me think that typed
datasets are well worth looking at!
</p>
          <ul>
            <li>
              <div class="MsoNormal">
                <a href="http://weblogs.asp.net/scottgu/archive/2006/01/15/435498.aspx">Part
1: Building a DAL using Strongly Typed TableAdapters and DataTables in VS 2005 and
ASP.NET 2.0</a>
              </div>
            </li>
            <li>
              <div class="MsoNormal">
                <a href="http://weblogs.asp.net/scottgu/archive/2006/01/17/435765.aspx">Part
2: Building Our Master Pages and Site Navigation Structure</a>
              </div>
            </li>
          </ul>
        </div>
      </body>
      <title>Typed Datasets End-to-End Examples</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,e143a5ee-e9e6-413e-93d4-ed03bb55f446.aspx</guid>
      <link>http://blog.toddtaylor.com/2006/01/16/TypedDatasetsEndtoEndExamples.aspx</link>
      <pubDate>Mon, 16 Jan 2006 15:34:32 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
Once again, &lt;a href="http://weblogs.asp.net/scottgu/"&gt;Scott Guthrie&lt;/a&gt; posted some
more highly informative ASP.NET 2.0 information; this post being the first in a series
featuring typed datasets.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Many people groan at the thought of using typed datasets because ‘purists’ feel that
using them generates a lot of unnecessary code (among other things which I won’t discuss
here.)&amp;nbsp; While this may be true, they are very useful for creating a very quick-n-dirty
data access layer with almost no need to write SQL or ADO code.&amp;nbsp; In addition,
getting ‘free’ strongly typed code (intellisense = good) makes me think that typed
datasets are well worth looking at!
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class=MsoNormal&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2006/01/15/435498.aspx"&gt;Part
1: Building a DAL using Strongly Typed TableAdapters and DataTables in VS 2005 and
ASP.NET 2.0&lt;/a&gt;
&lt;/div&gt;
&lt;li&gt;
&lt;div class=MsoNormal&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2006/01/17/435765.aspx"&gt;Part
2: Building Our Master Pages and Site Navigation Structure&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,e143a5ee-e9e6-413e-93d4-ed03bb55f446.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=1efe3458-ece6-48de-ab74-242c43799775</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,1efe3458-ece6-48de-ab74-242c43799775.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,1efe3458-ece6-48de-ab74-242c43799775.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=1efe3458-ece6-48de-ab74-242c43799775</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
The W3C has introduced a MIME type for XHTML documents. This new MIME type is application/xhtml+xml.
The W3C recommends that you use the application/xhtml+xml MIME type when serving XHTML
documents, because XHTML pages should be interpreted in a stricter way than legacy
HTML pages.
</p>
          <p class="MsoNormal">
You can serve an ASP.NET page with a particular MIME type by including the ContentType
attribute in a page directive. For example, including the following directive at the
top of an ASP.NET page causes the page to be served as application/xhtml+xml.
</p>
          <p class="MsoNormal">
            <span style="FONT-FAMILY: 'Courier New'">&lt;%@ ContentType="application/xhtml+xml"
%&gt;</span>
          </p>
          <p class="MsoNormal">
Doing so will force you to make sure your web pages are valid XHTML files because
they’ll break if your code is sloppy.
</p>
          <p class="MsoNormal">
Ok, that’s great… except for the fact that Internet Explorer will now display your
web site as an XML file instead of an HTML file!  There are a few work-arounds
for this, but the easiest one for ASP.NET 2.0 sites seems to be this simple addition
to the Global.asax file:
</p>
          <p class="MsoNormal">
            <span style="FONT-FAMILY: 'Courier New'">&lt;script runat="server"&gt;<br /><br />
    Sub Application_PreSendRequestHeaders(ByVal s As Object, _<br />
      ByVal e As EventArgs)<br />
        If Array.IndexOf(Request.AcceptTypes, _<br />
          "application/xhtml+xml") &gt;
-1 Then<br />
            Response.ContentType
= "application/xhtml+xml"<br />
        End If<br />
    End Sub<br /><br />
&lt;/script&gt;</span>
          </p>
        </div>
      </body>
      <title>Content Negotiation for XHTML MIME Types in ASP.NET 2.0</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,1efe3458-ece6-48de-ab74-242c43799775.aspx</guid>
      <link>http://blog.toddtaylor.com/2006/01/06/ContentNegotiationForXHTMLMIMETypesInASPNET20.aspx</link>
      <pubDate>Fri, 06 Jan 2006 22:13:13 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
The W3C has introduced a MIME type for XHTML documents. This new MIME type is application/xhtml+xml.
The W3C recommends that you use the application/xhtml+xml MIME type when serving XHTML
documents, because XHTML pages should be interpreted in a stricter way than legacy
HTML pages.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
You can serve an ASP.NET page with a particular MIME type by including the ContentType
attribute in a page directive. For example, including the following directive at the
top of an ASP.NET page causes the page to be served as application/xhtml+xml.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span style="FONT-FAMILY: 'Courier New'"&gt;&amp;lt;%@ ContentType="application/xhtml+xml"
%&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Doing so will force you to make sure your web pages are valid XHTML files because
they’ll break if your code is sloppy.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Ok, that’s great… except for the fact that Internet Explorer will now display your
web site as an XML file instead of an HTML file!&amp;nbsp; There are a few work-arounds
for this, but the easiest one for ASP.NET 2.0 sites seems to be this simple addition
to the Global.asax file:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span style="FONT-FAMILY: 'Courier New'"&gt;&amp;lt;script runat="server"&amp;gt;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Sub Application_PreSendRequestHeaders(ByVal s As Object, _&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ByVal e As EventArgs)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Array.IndexOf(Request.AcceptTypes, _&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "application/xhtml+xml") &amp;gt;
-1 Then&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; Response.ContentType
= "application/xhtml+xml"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;br&gt;
&lt;br&gt;
&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/div&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,1efe3458-ece6-48de-ab74-242c43799775.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=13939c30-248a-4574-81c9-6786f15db945</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,13939c30-248a-4574-81c9-6786f15db945.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,13939c30-248a-4574-81c9-6786f15db945.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=13939c30-248a-4574-81c9-6786f15db945</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
I’ve had a small obsession with learning about web standards recently, mostly because
a world of truly standards-compliant browsers is a world where web developers don’t
have to test their web sites on all the latest (and very quirky) browsers.
</p>
          <p class="MsoNormal">
Along with attaining standards compliance comes meeting the needs of those with disabilities,
such as those who are visually impaired or blind.  The Internet is a wonderful
place full of nearly unlimited amounts of information and it would be a shame if your
web site was preventing people from tapping into part of it!
</p>
          <p class="MsoNormal">
So how do you make your web site standards compliant and make sure it caters to the
needs of those with disabilities?   Well, this MSDN article does a great
job of explaining all of this:
</p>
          <p class="MsoNormal">
            <a href="http://msdn.microsoft.com/asp.net/reference/design/default.aspx?pull=/library/en-us/dnaspp/html/aspnetusstan.asp">MSDN:
Building ASP.NET 2.0 Web Sites Using Web Standards</a>
          </p>
          <p class="MsoNormal">
One thing I like about the article is that even though it is from Microsoft, it doesn’t
hide the fact that Internet Explorer isn’t quite up-to-snuff when it comes to meeting
some of the stricter standards (like XHTML Strict).  The article also offers
some work-arounds for some of the problems one will encounter with trying to make
a site fully standards compliant.
</p>
          <p class="MsoNormal">
In addition to the MSDN article, these two articles may also come in handy when designing
more usable web sites:
</p>
          <ul>
            <li>
              <div class="Picture-Logo">
                <a href="http://trace.wisc.edu/world/web/index.html">Trace
Research and Development: Designing More Useable Web Sites</a>
              </div>
            </li>
            <li>
              <div class="Picture-Logo">
                <a href="http://www.useit.com/alertbox/9610.html">UseIt.com:
Accessible Design for Users With Disabilities</a>
              </div>
            </li>
            <li>
              <div class="Picture-Logo">
                <a href="http://www.section508.gov/">Section 508: The Road
to Accessibility</a>
              </div>
            </li>
            <li>
              <div class="Picture-Logo">
                <a href="http://www.w3.org/WAI/Policy/">W3C Web Accessibilty
Initiative</a>
              </div>
            </li>
          </ul>
          <p class="MsoNormal">
As you'll read in some of these web sites, there are laws that require a web
site to be accessible (Section 508) when working with government agencies.
</p>
          <p class="MsoNormal">
As a site designer (in addition to being a developer), one thing I’m finding challenging
about creating accessible site designs for users with disabilities is that it greatly
limits what I can do with my site in terms of formatting and using scripting technologies
like DHTML.   It seems to me that when designing a site for a client that
has business requirement for designing an accessible site, it may be best to either
create a text-only version of the web site or make sure there is a CSS style sheet
that can display the web site without all the glitz.  This also means that dynamic
DHTML menus have to go away in favor of more static hyperlinks and sitemaps.
</p>
        </div>
      </body>
      <title>Web Standards and ADA Compliance</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,13939c30-248a-4574-81c9-6786f15db945.aspx</guid>
      <link>http://blog.toddtaylor.com/2006/01/06/WebStandardsAndADACompliance.aspx</link>
      <pubDate>Fri, 06 Jan 2006 20:14:13 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
I’ve had a small obsession with learning about web standards recently, mostly because
a world of truly standards-compliant browsers is a world where web developers don’t
have to test their web sites on all the latest (and very quirky) browsers.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Along with attaining standards compliance comes meeting the needs of those with disabilities,
such as those who are visually impaired or blind.&amp;nbsp; The Internet is a wonderful
place full of nearly unlimited amounts of information and it would be a shame if your
web site was preventing people from tapping into part of it!
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
So how do you make your web site standards compliant and make sure it caters to the
needs of those with disabilities?&amp;nbsp;&amp;nbsp; Well, this MSDN article does a great
job of explaining all of this:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;a href="http://msdn.microsoft.com/asp.net/reference/design/default.aspx?pull=/library/en-us/dnaspp/html/aspnetusstan.asp"&gt;MSDN:
Building ASP.NET 2.0 Web Sites Using Web Standards&lt;/a&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
One thing I like about the article is that even though it is from Microsoft, it doesn’t
hide the fact that Internet Explorer isn’t quite up-to-snuff when it comes to meeting
some of the stricter standards (like XHTML Strict).&amp;nbsp; The article also offers
some work-arounds for some of the problems one will encounter with trying to make
a site fully standards compliant.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
In addition to the MSDN article, these two articles may also come in handy when designing
more usable web sites:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class=Picture-Logo&gt;&lt;a href="http://trace.wisc.edu/world/web/index.html"&gt;Trace
Research and Development: Designing More Useable Web Sites&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class=Picture-Logo&gt;&lt;a href="http://www.useit.com/alertbox/9610.html"&gt;UseIt.com:
Accessible Design for Users With Disabilities&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class=Picture-Logo&gt;&lt;a href="http://www.section508.gov/"&gt;Section 508: The Road
to Accessibility&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class=Picture-Logo&gt;&lt;a href="http://www.w3.org/WAI/Policy/"&gt;W3C Web Accessibilty
Initiative&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=MsoNormal&gt;
As you'll read in some of these web sites, there are laws that require a&amp;nbsp;web
site to be accessible&amp;nbsp;(Section 508) when working with government agencies.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
As a site designer (in addition to being a developer), one thing I’m finding challenging
about creating accessible site designs for users with disabilities is that it greatly
limits what I can do with my site in terms of formatting and using scripting technologies
like DHTML.&amp;nbsp;&amp;nbsp; It seems to me that when designing a site for a client that
has business requirement for designing an accessible site, it may be best to either
create a text-only version of the web site or make sure there is a CSS style sheet
that can display the web site without all the glitz.&amp;nbsp; This also means that dynamic
DHTML menus have to go away in favor of more static hyperlinks and sitemaps.
&lt;/p&gt;
&lt;/div&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,13939c30-248a-4574-81c9-6786f15db945.aspx</comments>
      <category>ASP.NET</category>
      <category>Web Design</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=d60db8ae-0ffa-4a31-8e97-b7becef4b18b</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,d60db8ae-0ffa-4a31-8e97-b7becef4b18b.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,d60db8ae-0ffa-4a31-8e97-b7becef4b18b.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=d60db8ae-0ffa-4a31-8e97-b7becef4b18b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
            <a href="http://www.voiceoftech.com/timoday.htm">Click here to hear the Unit Test
song by Tim O’Day</a>.  As you might expect by his last name, it’s
an Irish song ;-)
</p>
        </div>
      </body>
      <title>The Unit Test Song</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,d60db8ae-0ffa-4a31-8e97-b7becef4b18b.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/12/29/TheUnitTestSong.aspx</link>
      <pubDate>Thu, 29 Dec 2005 17:09:47 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
&lt;a href="http://www.voiceoftech.com/timoday.htm"&gt;Click here to hear the Unit Test
song by Tim O&amp;#8217;Day&lt;/a&gt;.&amp;nbsp; As you might expect by his last name, it&amp;#8217;s
an Irish song ;-)
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,d60db8ae-0ffa-4a31-8e97-b7becef4b18b.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=3e67118f-29a9-40a6-9152-d84156c92cc0</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,3e67118f-29a9-40a6-9152-d84156c92cc0.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,3e67118f-29a9-40a6-9152-d84156c92cc0.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3e67118f-29a9-40a6-9152-d84156c92cc0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
If you’re upgrading a lot of web projects from Visual Studio .NET 2003 to Visual
Studio .NET 2005, you’ll want to be sure to install this latest update to the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=7CECD652-FC04-4EF8-A28A-25C5006677D8&amp;displaylang=en">Web
Project Conversion Wizard</a>.
</p>
        </div>
      </body>
      <title>Update to Visual Studio .NET 2005 Web Project Conversion Wizard</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,3e67118f-29a9-40a6-9152-d84156c92cc0.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/12/29/UpdateToVisualStudioNET2005WebProjectConversionWizard.aspx</link>
      <pubDate>Thu, 29 Dec 2005 16:29:38 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
If you&amp;#8217;re upgrading a lot of web projects from Visual Studio .NET 2003 to Visual
Studio .NET 2005, you&amp;#8217;ll want to be sure to install this latest update to the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=7CECD652-FC04-4EF8-A28A-25C5006677D8&amp;amp;displaylang=en"&gt;Web
Project Conversion Wizard&lt;/a&gt;.
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,3e67118f-29a9-40a6-9152-d84156c92cc0.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=83e3c9f3-1814-43a6-a659-0f8cfc764320</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,83e3c9f3-1814-43a6-a659-0f8cfc764320.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,83e3c9f3-1814-43a6-a659-0f8cfc764320.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=83e3c9f3-1814-43a6-a659-0f8cfc764320</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
One of the annoying features of VisualStudio.NET 2003 is that it isn’t very
easy to deploy a web project to a hosted web server via FTP.  Even if you use
VS.NET’s Copy Project utility, it’s pretty much an ‘all or nothing’
tool.  What happens when you only want to post a few files?  Most of use
end-up using some third-party FTP tool which is annoying.
</p>
          <p class="MsoNormal">
Anyway, your prayers have been answered by <a href="http://www.csharper.net/">Bobby
DeRosa</a> who spent the time solving this FTP problem by creating the <a href="http://www.csharper.net/blog/web deployer add in for visual studio 2003.aspx">Web
Deployer Add-in for Visual Studio 2003</a> (for C# projects.)  It integrates
nicely with VS.NET and allows you file-by-file control of what you want to upload.  
</p>
          <p class="MsoNormal">
Because Bobby is such a nice guy, he also made a <a href="http://www.csharper.net/blog/updated web deployer w  vb net support for visual studio 2003.aspx">VB.NET
flavor</a> of this tool as well :-)
</p>
          <p class="MsoNormal">
            <img border="0" width="404" height="389" src="http://blog.toddtaylor.com/content/binary/image0011234.gif" />
          </p>
        </div>
      </body>
      <title>Free FTP Deployment Tool for VisualStudio.NET 2003</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,83e3c9f3-1814-43a6-a659-0f8cfc764320.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/12/29/FreeFTPDeploymentToolForVisualStudioNET2003.aspx</link>
      <pubDate>Thu, 29 Dec 2005 16:16:30 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
One of the annoying features of VisualStudio.NET 2003 is that it isn&amp;#8217;t very
easy to deploy a web project to a hosted web server via FTP.&amp;nbsp; Even if you use
VS.NET&amp;#8217;s Copy Project utility, it&amp;#8217;s pretty much an &amp;#8216;all or nothing&amp;#8217;
tool.&amp;nbsp; What happens when you only want to post a few files?&amp;nbsp; Most of use
end-up using some third-party FTP tool which is annoying.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Anyway, your prayers have been answered by &lt;a href="http://www.csharper.net/"&gt;Bobby
DeRosa&lt;/a&gt; who spent the time solving this FTP problem by creating the &lt;a href="http://www.csharper.net/blog/web deployer add in for visual studio 2003.aspx"&gt;Web
Deployer Add-in for Visual Studio 2003&lt;/a&gt; (for C# projects.)&amp;nbsp; It integrates
nicely with VS.NET and allows you file-by-file control of what you want to upload.&amp;nbsp; 
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Because Bobby is such a nice guy, he also made a &lt;a href="http://www.csharper.net/blog/updated web deployer w  vb net support for visual studio 2003.aspx"&gt;VB.NET
flavor&lt;/a&gt; of this tool as well :-)
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;img border=0 width=404 height=389 src="http://blog.toddtaylor.com/content/binary/image0011234.gif"&gt;
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,83e3c9f3-1814-43a6-a659-0f8cfc764320.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=36a5e60d-fb73-495a-a936-bbecaf0e1d66</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,36a5e60d-fb73-495a-a936-bbecaf0e1d66.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,36a5e60d-fb73-495a-a936-bbecaf0e1d66.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=36a5e60d-fb73-495a-a936-bbecaf0e1d66</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
Note to self:  Do not add a reference to the assembly <b><span style="font-family:&quot;Courier New&quot;">System.Data.SqlClient</span></b> in
a VisualStudio.NET 2005 project, it is only necessary to have a reference to <b><span style="font-family:&quot;Courier New&quot;">System.Data</span></b>. 
If you reference both assemblies, you get this error in VisualStudio:
</p>
          <p class="MsoNormal">
            <b>
              <span style="font-family:&quot;Courier New&quot;">'SqlConnection' is ambiguous in the namespace
'System.Data.SqlClient'.</span>
            </b>
          </p>
          <p class="MsoNormal">
Why does this happen? According to Kevin Yu’s response in the Google <a href="http://groups.google.com/group/microsoft.public.dotnet.framework/browse frm/thread/65f0b8b3ccabb89a/47a34ee438666fbe?tvc=1&amp;q=Diff.+of+SqlClient+in+System.Data.dll+and+System.Data.SqlClient.dll#47a34ee438666fbe">microsoft.public.dotnet.framework
newsgroup</a>:
</p>
          <p class="MsoNormal" style="margin-left:.5in">
            <i>“The System.Data.SqlClient assembly under the PublicAssemblies is used by
VS.NET IDE internally. It is a party of the IDE and only the product team knows the
difference between this and the one under GAC.</i>
          </p>
          <p class="MsoNormal" style="margin-left:.5in">
            <i>This System.DataSqlClient is not intended to be called from the user code. Usage
of this assembly is not supported and might lead to unexpected results.</i>
          </p>
          <p class="MsoNormal" style="margin-left:.5in">
            <i>So if you need to connect to SQL Server in your code. Please reference the System.Data
assembly under GAC as MSDN refers to. It includes the namespace of System.Data.SqlClient.”</i>
          </p>
        </div>
      </body>
      <title>Do Not Reference System.Data.SqlClient in VS.NET 2005</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,36a5e60d-fb73-495a-a936-bbecaf0e1d66.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/12/29/DoNotReferenceSystemDataSqlClientInVSNET2005.aspx</link>
      <pubDate>Thu, 29 Dec 2005 14:55:58 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
Note to self:&amp;nbsp; Do not add a reference to the assembly &lt;b&gt;&lt;span style='font-family:"Courier New"'&gt;System.Data.SqlClient&lt;/span&gt;&lt;/b&gt; in
a VisualStudio.NET 2005 project, it is only necessary to have a reference to &lt;b&gt;&lt;span style='font-family:"Courier New"'&gt;System.Data&lt;/span&gt;&lt;/b&gt;.&amp;nbsp;
If you reference both assemblies, you get this error in VisualStudio:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;b&gt;&lt;span style='font-family:"Courier New"'&gt;'SqlConnection' is ambiguous in the namespace
'System.Data.SqlClient'.&lt;/span&gt;&lt;/b&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Why does this happen? According to Kevin Yu&amp;#8217;s response in the Google &lt;a href="http://groups.google.com/group/microsoft.public.dotnet.framework/browse frm/thread/65f0b8b3ccabb89a/47a34ee438666fbe?tvc=1&amp;amp;q=Diff.+of+SqlClient+in+System.Data.dll+and+System.Data.SqlClient.dll#47a34ee438666fbe"&gt;microsoft.public.dotnet.framework
newsgroup&lt;/a&gt;:
&lt;/p&gt;
&lt;p class=MsoNormal style='margin-left:.5in'&gt;
&lt;i&gt;&amp;#8220;The System.Data.SqlClient assembly under the PublicAssemblies is used by
VS.NET IDE internally. It is a party of the IDE and only the product team knows the
difference between this and the one under GAC.&lt;/i&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style='margin-left:.5in'&gt;
&lt;i&gt;This System.DataSqlClient is not intended to be called from the user code. Usage
of this assembly is not supported and might lead to unexpected results.&lt;/i&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style='margin-left:.5in'&gt;
&lt;i&gt;So if you need to connect to SQL Server in your code. Please reference the System.Data
assembly under GAC as MSDN refers to. It includes the namespace of System.Data.SqlClient.&amp;#8221;&lt;/i&gt;
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,36a5e60d-fb73-495a-a936-bbecaf0e1d66.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=22f818ce-06f9-4047-98af-16de9dedd1e1</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,22f818ce-06f9-4047-98af-16de9dedd1e1.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,22f818ce-06f9-4047-98af-16de9dedd1e1.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=22f818ce-06f9-4047-98af-16de9dedd1e1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
One of my favorite words in the English language is “free” :-)  If
you’re interested in learning more about the Agile Development, you be happy
to learn that the book “<a href="http://agileskills.org/">Essential Skills for
Agile Development</a>” is available online… for free!
</p>
          <p class="MsoNormal">
            <a href="http://www.amazon.com/gp/product/images/9993776726/ref=dp image 0/103-3339736-1326235?%5Fencoding=UTF8&amp;n=507846&amp;s=books" target="AmazonHelp">
              <span style="color:windowtext;text-decoration:none">
                <img border="0" width="240" height="240" id="prodImage" src="http://blog.toddtaylor.com/content/binary/image001123456.jpg" alt="Essential Skills for Agile Development" />
              </span>
            </a>
          </p>
        </div>
      </body>
      <title>Online Book: Essential Skills for Agile Development</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,22f818ce-06f9-4047-98af-16de9dedd1e1.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/12/27/OnlineBookEssentialSkillsForAgileDevelopment.aspx</link>
      <pubDate>Tue, 27 Dec 2005 18:10:49 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
One of my favorite words in the English language is &amp;#8220;free&amp;#8221; :-)&amp;nbsp; If
you&amp;#8217;re interested in learning more about the Agile Development, you be happy
to learn that the book &amp;#8220;&lt;a href="http://agileskills.org/"&gt;Essential Skills for
Agile Development&lt;/a&gt;&amp;#8221; is available online&amp;#8230; for free!
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;a href="http://www.amazon.com/gp/product/images/9993776726/ref=dp image 0/103-3339736-1326235?%5Fencoding=UTF8&amp;amp;n=507846&amp;amp;s=books" target=AmazonHelp&gt;&lt;span style='color:windowtext;text-decoration:none'&gt;&lt;img border=0 width=240 height=240 id=prodImage src="http://blog.toddtaylor.com/content/binary/image001123456.jpg" alt="Essential Skills for Agile Development"&gt;&lt;/span&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,22f818ce-06f9-4047-98af-16de9dedd1e1.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=9bf15235-8145-4b9f-8264-96b5d005eb34</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,9bf15235-8145-4b9f-8264-96b5d005eb34.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,9bf15235-8145-4b9f-8264-96b5d005eb34.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=9bf15235-8145-4b9f-8264-96b5d005eb34</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
In today’s programming world, it seems like any article you read that is six
months old or older is no longer relevant.  However, I recently found a very
interesting article written in 2003 that addresses the topic of off-shoring developer
jobs… and it discusses some things that we, as developers in the good ol’
US of A, can do about it:
</p>
          <p class="MsoNormal">
            <a href="http://www.15seconds.com/issue/031021.htm">Achieving Reuse in ASP.NET –
Part1: Barriers to Reuse</a> by Scott Bellware
</p>
          <p class="MsoNormal">
It wasn’t until recently that I jumped on the Test Driven Development (TDD)
bandwagon, as the article discusses, and I wish I would’ve done it sooner. 
Making my code a bit more reusable still seems like something I could use a lot of
work on as well.  I spend way too much time re-inventing the programmer wheel!
</p>
        </div>
      </body>
      <title>How to Save Your Programmer Hide</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,9bf15235-8145-4b9f-8264-96b5d005eb34.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/12/27/HowToSaveYourProgrammerHide.aspx</link>
      <pubDate>Tue, 27 Dec 2005 18:07:29 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
In today&amp;#8217;s programming world, it seems like any article you read that is six
months old or older is no longer relevant.&amp;nbsp; However, I recently found a very
interesting article written in 2003 that addresses the topic of off-shoring developer
jobs&amp;#8230; and it discusses some things that we, as developers in the good ol&amp;#8217;
US of A, can do about it:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;a href="http://www.15seconds.com/issue/031021.htm"&gt;Achieving Reuse in ASP.NET &amp;#8211;
Part1: Barriers to Reuse&lt;/a&gt; by Scott Bellware
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
It wasn&amp;#8217;t until recently that I jumped on the Test Driven Development (TDD)
bandwagon, as the article discusses, and I wish I would&amp;#8217;ve done it sooner.&amp;nbsp;
Making my code a bit more reusable still seems like something I could use a lot of
work on as well.&amp;nbsp; I spend way too much time re-inventing the programmer wheel!
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,9bf15235-8145-4b9f-8264-96b5d005eb34.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=b606ccb1-4b91-4115-973b-173ecbe2224a</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,b606ccb1-4b91-4115-973b-173ecbe2224a.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,b606ccb1-4b91-4115-973b-173ecbe2224a.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=b606ccb1-4b91-4115-973b-173ecbe2224a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
One of the biggest pains is testing a web application is testing the User Interface
(UI).  When you’re trying to track-down a bug that occurs after clicking through
20 different links on your site and having to fill-out multiple forms, you’ll soon
start pulling your hair-out but might have thought there was no other way around doing
this manual testing.
</p>
          <p class="MsoNormal">
For those of you who can’t afford Visual Studio Team System 2005 (which has a UI recording
tool), there is still hope!  <a href="http://www.alexfurman.net/" target=" blank">Alex
Furman</a> created an incredible application called the <a href="http://home.comcast.net/~furmana/SWIEAutomation.htm">SW
Explorer Automation Designer</a> that can automate UI tests for you and its free!
</p>
          <p class="MsoNormal">
            <a href="http://home.comcast.net/~furmana/images/SWDesigner.png">
              <span style="COLOR: windowtext; TEXT-DECORATION: none">
                <img style="WIDTH: 480px; HEIGHT: 408px" height="408" alt="Click here to enlarge" src="http://blog.toddtaylor.com/content/binary/image00112345.jpg" width="480" border="0" />
              </span>
            </a>
          </p>
          <p class="MsoNormal">
I just downloaded it and ran through the same scenario that is shown in the <a href="http://home.comcast.net/~furmana/SWExplorerAutomation.html">online
demonstration</a>.  I must say that I’m impressed and I wish I would’ve discovered
this tool a long time ago.  Granted, it only works with Internet Explorer, but
that’s ok for me as most of the applications I build target IE as the primary browser. 
I highly recommended going through the demo step-by-step (keep your cursor over the
‘pause’ button!) to learn how to use the tool.
</p>
          <p class="MsoNormal">
Setting-up a test takes a little bit of time, but I think it’s worth taking a few
minutes up-front to save you many minutes (or perhaps hours or days!) when testing
your site. If you'd like to integrate your SWE tests with your NUnit tests, <a href="http://www.testingreflections.com/node/view/2763">TestingReflections.com</a> has
an article explaining how to do that (in C#, of course :'( )
</p>
        </div>
      </body>
      <title>Testing Your Web UI with SW Explorer</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,b606ccb1-4b91-4115-973b-173ecbe2224a.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/12/22/TestingYourWebUIWithSWExplorer.aspx</link>
      <pubDate>Thu, 22 Dec 2005 17:18:10 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
One of the biggest pains is testing a web application is testing the User Interface
(UI).&amp;nbsp; When you’re trying to track-down a bug that occurs after clicking through
20 different links on your site and having to fill-out multiple forms, you’ll soon
start pulling your hair-out but might have thought there was no other way around doing
this manual testing.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
For those of you who can’t afford Visual Studio Team System 2005 (which has a UI recording
tool), there is still hope!&amp;nbsp; &lt;a href="http://www.alexfurman.net/" target=" blank"&gt;Alex
Furman&lt;/a&gt; created an incredible application called the &lt;a href="http://home.comcast.net/~furmana/SWIEAutomation.htm"&gt;SW
Explorer Automation Designer&lt;/a&gt; that can automate UI tests for you and its free!
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;a href="http://home.comcast.net/~furmana/images/SWDesigner.png"&gt;&lt;span style="COLOR: windowtext; TEXT-DECORATION: none"&gt;&lt;img style="WIDTH: 480px; HEIGHT: 408px" height=408 alt="Click here to enlarge" src="http://blog.toddtaylor.com/content/binary/image00112345.jpg" width=480 border=0&gt;&lt;/span&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
I just downloaded it and ran through the same scenario that is shown in the &lt;a href="http://home.comcast.net/~furmana/SWExplorerAutomation.html"&gt;online
demonstration&lt;/a&gt;.&amp;nbsp; I must say that I’m impressed and I wish I would’ve discovered
this tool a long time ago.&amp;nbsp; Granted, it only works with Internet Explorer, but
that’s ok for me as most of the applications I build target IE as the primary browser.&amp;nbsp;
I highly recommended going through the demo step-by-step (keep your cursor over the
‘pause’ button!) to learn how to use the tool.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Setting-up a test takes a little bit of time, but I think it’s worth taking a few
minutes up-front to save you many minutes (or perhaps hours or days!) when testing
your site. If you'd like to integrate your SWE tests with your NUnit tests, &lt;a href="http://www.testingreflections.com/node/view/2763"&gt;TestingReflections.com&lt;/a&gt; has
an article explaining how to do that (in C#, of course :'( )
&lt;/p&gt;
&lt;/div&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,b606ccb1-4b91-4115-973b-173ecbe2224a.aspx</comments>
      <category>ASP.NET</category>
      <category>Web Design</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=c485734c-2121-4def-b85d-c2f0bf3a2413</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,c485734c-2121-4def-b85d-c2f0bf3a2413.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,c485734c-2121-4def-b85d-c2f0bf3a2413.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c485734c-2121-4def-b85d-c2f0bf3a2413</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
Seems that a new HTML tag pop-ups every once in a while that I wasn’t aware of. 
Today it’s the <code><b>&lt;label&gt;</b></code> tag.
</p>
          <p class="MsoNormal">
So what is the label tag for? Using the label allows the user to click on the text
associated with a form control instead of having to click on the radio button, check
box, select box, etc.
</p>
          <p class="MsoNormal">
Granted, this isn’t likely to be hugely useful to you, but I know I’ve often found
it convenient to simply click on text next to a check box (or similar form field)
when I’m in a hurry, hence it increases the usability of your page.
</p>
          <p class="MsoNormal">
However, if an accessible web site for the visually impaired, using the label tag
helps those who visit your site with a screen reader to associate a fields label with
the field that it belongs to.
</p>
          <p class="MsoNormal">
How do you use it?  Here is how:
</p>
          <p class="MsoNormal">
            <code>
              <b>&lt;label for="radio1"&gt;</b>This Radio Button 1 has a label associated
with it.<b>&lt;/label&gt;</b></code>
          </p>
          <p class="MsoNormal">
            <code>&lt;input type="radio" value="Selected" name="Radio" <b>id="radio1"</b>&gt;</code>
          </p>
          <p class="MsoNormal">
One thing I find convenient about the label is that I can now create a CSS style for
the HTML label tag and know that all the field labels will be formatted the same.
I no longer have to create a &lt;span&gt; or &lt;div&gt; tag with a special CSS class
for field labels.
</p>
          <p class="MsoNormal">
            <strike>However, in ASP.NET, I could envision the label not working as it’s supposed
to in many cases because it’s often hard to predict the name of the field controls. 
For example, if I have a textbox with an ID of “txtFirstName” which is nested in a
User Control, which is nested in a Page, which is nested in a Master Page, ASP.NET
will rename the control and it’s ID to something like “ctl001 MyMasterPage MyPage
MyUserControl txtFirstName.”</strike>
          </p>
          <p class="MsoNormal">
            <strike>With that in-mind, the functionality of the label control might be limited
in ASP.NET applications, but at least it provides a new tag to bind CSS to! :-)</strike>
          </p>
          <p class="MsoNormal">
Update - 01/06/2006
</p>
          <p class="MsoNormal">
Those guys at Microsoft are no dummies... they made sure the ASP.NET 2.0 Framework
produces standards compliant and accessible code.  To assure that your ASP.NET
2.0 form fields are properly labeled, you must use the <strong>AssociatedId</strong> property for
the ASP.NET Label control in order to make the .NET Framework spew the correct HTML:
</p>
          <p class="MsoNormal">
            <font face="Courier New">    &lt;table&gt;<br />
    &lt;tr&gt;<br />
        &lt;td&gt;&lt;asp:Label AssociatedControlID="txtFirstName" 
<br />
          runat="server"&gt;First Name:&lt;/asp:Label&gt;&lt;/td&gt;<br />
        &lt;td&gt;&lt;asp:TextBox ID="txtFirstName"
runat="server" /&gt;&lt;/td&gt;<br />
    &lt;/tr&gt;<br />
    &lt;tr&gt;<br />
        &lt;td&gt;&lt;asp:Label AssociatedControlID="txtLastName" 
<br />
          runat="server"&gt;Last Name:&lt;/asp:Label&gt;&lt;/td&gt;<br />
        &lt;td&gt;&lt;asp:TextBox ID="txtLastName"
runat="server" /&gt;&lt;/td&gt;<br />
    &lt;/tr&gt;<br />
    &lt;/table&gt;</font>
          </p>
        </div>
      </body>
      <title>The HTML Label Tag</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,c485734c-2121-4def-b85d-c2f0bf3a2413.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/12/21/TheHTMLLabelTag.aspx</link>
      <pubDate>Wed, 21 Dec 2005 21:33:16 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
Seems that a new HTML tag pop-ups every once in a while that I wasn’t aware of.&amp;nbsp;
Today it’s the &lt;code&gt;&lt;b&gt;&amp;lt;label&amp;gt;&lt;/b&gt;&lt;/code&gt; tag.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
So what is the label tag for? Using the label allows the user to click on the text
associated with a form control instead of having to click on the radio button, check
box, select box, etc.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Granted, this isn’t likely to be hugely useful to you, but I know I’ve often found
it convenient to simply click on text next to a check box (or similar form field)
when I’m in a hurry, hence it increases the usability of your page.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
However, if an accessible web site for the visually impaired, using the label tag
helps those who visit your site with a screen reader to associate a fields label with
the field that it belongs to.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
How do you use it?&amp;nbsp; Here is how:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;code&gt;&lt;b&gt;&amp;lt;label for="radio1"&amp;gt;&lt;/b&gt;This Radio Button 1 has a label associated
with it.&lt;b&gt;&amp;lt;/label&amp;gt;&lt;/b&gt;&lt;/code&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;code&gt;&amp;lt;input type="radio" value="Selected" name="Radio" &lt;b&gt;id="radio1"&lt;/b&gt;&amp;gt;&lt;/code&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
One thing I find convenient about the label is that I can now create a CSS style for
the HTML label tag and know that all the field labels will be formatted the same.
I no longer have to create a &amp;lt;span&amp;gt; or &amp;lt;div&amp;gt; tag with a special CSS class
for field labels.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;strike&gt;However, in ASP.NET, I could envision the label not working as it’s supposed
to in many cases because it’s often hard to predict the name of the field controls.&amp;nbsp;
For example, if I have a textbox with an ID of “txtFirstName” which is nested in a
User Control, which is nested in a Page, which is nested in a Master Page, ASP.NET
will rename the control and it’s ID to something like “ctl001 MyMasterPage MyPage
MyUserControl txtFirstName.”&lt;/strike&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;strike&gt;With that in-mind, the functionality of the label control might be limited
in ASP.NET applications, but at least it provides a new tag to bind CSS to! :-)&lt;/strike&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Update - 01/06/2006
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Those guys at Microsoft are no dummies... they made sure the ASP.NET 2.0 Framework
produces standards compliant and accessible code.&amp;nbsp; To assure that your ASP.NET
2.0&amp;nbsp;form fields are properly labeled, you must use the &lt;strong&gt;AssociatedId&lt;/strong&gt; property&amp;nbsp;for
the ASP.NET Label control in order to make the .NET Framework spew the correct HTML:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;table&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;asp:Label AssociatedControlID="txtFirstName" 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; runat="server"&amp;gt;First Name:&amp;lt;/asp:Label&amp;gt;&amp;lt;/td&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;asp:TextBox ID="txtFirstName"
runat="server" /&amp;gt;&amp;lt;/td&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;asp:Label AssociatedControlID="txtLastName" 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; runat="server"&amp;gt;Last Name:&amp;lt;/asp:Label&amp;gt;&amp;lt;/td&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;asp:TextBox ID="txtLastName"
runat="server" /&amp;gt;&amp;lt;/td&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/table&amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/div&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,c485734c-2121-4def-b85d-c2f0bf3a2413.aspx</comments>
      <category>ASP.NET</category>
      <category>Web Design</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=36eb26ff-3c68-4110-873e-44afd9904c17</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,36eb26ff-3c68-4110-873e-44afd9904c17.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,36eb26ff-3c68-4110-873e-44afd9904c17.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=36eb26ff-3c68-4110-873e-44afd9904c17</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
With the release of the final version of Visual Studio Team Systems rapidly approaching
(January of 2006), many of you are probably wondering if it’s time to bail on
using NUnit for your ASP.NET 2.0 projects in favor of the VSTS unit testing tools. 
Well, worry no longer as Jim Newkirk has created a NUnit Add-On <span style="letter-spacing:.25pt">that
converts NUnit Test Code into tests compatible with Visual Studio 2005 Team System.</span></p>
          <p class="MsoNormal">
            <span style="letter-spacing:.25pt">The converter is a free download available on the
gotdotnet site:</span>
          </p>
          <p class="MsoNormal">
            <span style="letter-spacing:.25pt">
              <a href="http://www.gotdotnet.com/workspaces/workspace.aspx?id=91936c5e-461f-4027-bdba-8a46f52fefdb" target=" blank">NUnit
Add-Ons: Workspace Home</a>
            </span>
          </p>
        </div>
      </body>
      <title>NUnit to Visual Studio Team Systems Test Converter</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,36eb26ff-3c68-4110-873e-44afd9904c17.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/12/20/NUnitToVisualStudioTeamSystemsTestConverter.aspx</link>
      <pubDate>Tue, 20 Dec 2005 15:24:50 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
With the release of the final version of Visual Studio Team Systems rapidly approaching
(January of 2006), many of you are probably wondering if it&amp;#8217;s time to bail on
using NUnit for your ASP.NET 2.0 projects in favor of the VSTS unit testing tools.&amp;nbsp;
Well, worry no longer as Jim Newkirk has created a NUnit Add-On &lt;span style='letter-spacing:.25pt'&gt;that
converts NUnit Test Code into tests compatible with Visual Studio 2005 Team System.&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span style='letter-spacing:.25pt'&gt;The converter is a free download available on the
gotdotnet site:&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span style='letter-spacing:.25pt'&gt;&lt;a href="http://www.gotdotnet.com/workspaces/workspace.aspx?id=91936c5e-461f-4027-bdba-8a46f52fefdb" target=" blank"&gt;NUnit
Add-Ons: Workspace Home&lt;/a&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,36eb26ff-3c68-4110-873e-44afd9904c17.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=4260f172-dd96-4879-8c3b-d77d7d22ea4b</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,4260f172-dd96-4879-8c3b-d77d7d22ea4b.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,4260f172-dd96-4879-8c3b-d77d7d22ea4b.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=4260f172-dd96-4879-8c3b-d77d7d22ea4b</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
            <span style="COLOR: black">The following is Fritz Onion’s posting on <a href="http://pluralsight.com/blogs/fritz/archive/2005/12/16/17507.aspx">Complex
data binding expressions in ASP.NET</a>, converted into VB.NET:</span>
          </p>
          <p class="MsoNormal">
            <i>
              <span style="FONT-SIZE: 9pt; COLOR: black">I often find when using templated data-bound
controls (in either ASP.NET 1.1 or 2.0) that my expressions become rather difficult
to understand because of the need to fit all of your logic into a single expression.
For example, I have seen databound expressions that look something like:</span>
            </i>
          </p>
          <p class="MsoNormal" style="MARGIN-BOTTOM: 13.5pt; LINE-HEIGHT: 13.5pt">
            <span style="FONT-SIZE: 9pt; COLOR: blue">&lt;</span>
            <span style="FONT-SIZE: 9pt; COLOR: maroon">asp</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue">:</span>
            <span style="FONT-SIZE: 9pt; COLOR: maroon">TemplateField</span>
            <span style="FONT-SIZE: 9pt; COLOR: black">
            </span>
            <span style="FONT-SIZE: 9pt; COLOR: red">HeaderText</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue">="SomeColumn"&gt;<br />
  &lt;</span>
            <span style="FONT-SIZE: 9pt; COLOR: maroon">ItemTemplate</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue">&gt;<br /></span>
            <span style="FONT-SIZE: 9pt; COLOR: black">    &lt;%</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue">#</span>
            <span style="FONT-SIZE: 9pt; COLOR: black"> ((</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue">bool</span>
            <span style="FONT-SIZE: 9pt; COLOR: black">)Eval(</span>
            <span style="FONT-SIZE: 9pt; COLOR: maroon">"foo"</span>
            <span style="FONT-SIZE: 9pt; COLOR: black">))
? Eval(</span>
            <span style="FONT-SIZE: 9pt; COLOR: maroon">"bar"</span>
            <span style="FONT-SIZE: 9pt; COLOR: black">)
: (((</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue">bool</span>
            <span style="FONT-SIZE: 9pt; COLOR: black">)Eval(</span>
            <span style="FONT-SIZE: 9pt; COLOR: maroon">"quux"</span>
            <span style="FONT-SIZE: 9pt; COLOR: black">))
? Eval(</span>
            <span style="FONT-SIZE: 9pt; COLOR: maroon">"a"</span>
            <span style="FONT-SIZE: 9pt; COLOR: black">)
: Eval(</span>
            <span style="FONT-SIZE: 9pt; COLOR: maroon">"b"</span>
            <span style="FONT-SIZE: 9pt; COLOR: black">))
%&gt;<br /></span>
            <span style="FONT-SIZE: 9pt; COLOR: blue">  &lt;/</span>
            <span style="FONT-SIZE: 9pt; COLOR: maroon">ItemTemplate</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue">&gt;<br />
&lt;/</span>
            <span style="FONT-SIZE: 9pt; COLOR: maroon">asp</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue">:</span>
            <span style="FONT-SIZE: 9pt; COLOR: maroon">TemplateField</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue">&gt;</span>
          </p>
          <p class="MsoNormal" style="MARGIN-BOTTOM: 13.5pt; LINE-HEIGHT: 13.5pt">
            <i>
              <span style="FONT-SIZE: 9pt; COLOR: black">Which is even worse in 1.1 because each
Eval must be replaced with DataBinder.Eval(Container.DataItem, "xx"). There are also
occasions where you just can't compress all the logic you need to into a single expression.
An alternative, which I find myself using quite a bit, even when developing in 2.0,
is to write a single method in your code behind class to generate the desired string.
Have it take an object reference (which will be the bound row) and take as many lines
as you like to construct the string to be generated in the template. Here's a
method that returns the same string as the overly-complex expression above:</span>
            </i>
          </p>
          <p class="MsoNormal" style="MARGIN-BOTTOM: 13.5pt; LINE-HEIGHT: 13.5pt">
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">Protected Function </span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">GenerateFooString(</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">ByVal </span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">dataItem </span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">As Object</span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">) </span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">As String<br />
    Dim </span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">foo </span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">As Boolean = CType</span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">(DataBinder.Eval(dataItem, </span>
            <span style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Lucida Console'">"foo"</span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">),</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">Boolean</span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">)<br />
    </span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">Dim </span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">quux </span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">As Boolean = CType</span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">(DataBinder.Eval(dataItem, </span>
            <span style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Lucida Console'">"quux"</span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">),</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">Boolean</span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">)<br />
    </span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">Dim </span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">ret </span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">As String = string</span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">.Empty<br />
    </span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">If </span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">foo </span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">Then<br />
        </span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">ret </span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">= CType</span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">(DataBinder.Eval(dataItem, </span>
            <span style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Lucida Console'">"bar"</span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">),</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">String</span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">)<br />
    </span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">ElseIf </span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">quux </span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">Then<br />
        </span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">ret </span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">= CType</span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">(DataBinder.Eval(dataItem, </span>
            <span style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Lucida Console'">"a"</span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">),</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">String</span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">)<br />
    </span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">Else<br />
        </span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">ret </span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">= CType</span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">(DataBinder.Eval(dataItem, </span>
            <span style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Lucida Console'">"b"</span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">),</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">String</span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">)<br />
    </span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">End If<br />
    Return </span>
            <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'">ret<br /></span>
            <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'">End Function</span>
          </p>
          <p class="MsoNormal" style="MARGIN-BOTTOM: 13.5pt; LINE-HEIGHT: 13.5pt">
            <i>
              <span style="FONT-SIZE: 9pt; COLOR: black">And the simplified template now looks
like:</span>
            </i>
          </p>
          <p class="MsoNormal" style="MARGIN-BOTTOM: 13.5pt; LINE-HEIGHT: 13.5pt">
            <span style="FONT-SIZE: 9pt; COLOR: black"> </span>
            <span style="FONT-SIZE: 9pt; COLOR: blue">&lt;</span>
            <span style="FONT-SIZE: 9pt; COLOR: maroon">asp</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue">:</span>
            <span style="FONT-SIZE: 9pt; COLOR: maroon">TemplateField</span>
            <span style="FONT-SIZE: 9pt; COLOR: black">
            </span>
            <span style="FONT-SIZE: 9pt; COLOR: red">HeaderText</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue">="SomeColumn"&gt;<br />
  &lt;</span>
            <span style="FONT-SIZE: 9pt; COLOR: maroon">ItemTemplate</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue">&gt;<br /></span>
            <span style="FONT-SIZE: 9pt; COLOR: black">    &lt;%</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue">#</span>
            <span style="FONT-SIZE: 9pt; COLOR: black"> GenerateFooString(Container.DataItem)
%&gt;<br /></span>
            <span style="FONT-SIZE: 9pt; COLOR: blue">  &lt;/</span>
            <span style="FONT-SIZE: 9pt; COLOR: maroon">ItemTemplate</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue">&gt;<br />
&lt;/</span>
            <span style="FONT-SIZE: 9pt; COLOR: maroon">asp</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue">:</span>
            <span style="FONT-SIZE: 9pt; COLOR: maroon">TemplateField</span>
            <span style="FONT-SIZE: 9pt; COLOR: blue">&gt;</span>
          </p>
          <p class="MsoNormal" style="MARGIN-BOTTOM: 13.5pt; LINE-HEIGHT: 13.5pt">
            <span style="FONT-SIZE: 9pt">Once again, this is <u>not</u> my code or idea; it all
belongs to <a href="http://pluralsight.com/blogs/fritz/" target=" blank">Fritz Onion</a>!</span>
          </p>
        </div>
      </body>
      <title>Complex Data Binding Expressions</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,4260f172-dd96-4879-8c3b-d77d7d22ea4b.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/12/17/ComplexDataBindingExpressions.aspx</link>
      <pubDate>Sat, 17 Dec 2005 21:48:14 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
&lt;span style="COLOR: black"&gt;The following is Fritz Onion’s posting on &lt;a href="http://pluralsight.com/blogs/fritz/archive/2005/12/16/17507.aspx"&gt;Complex
data binding expressions in ASP.NET&lt;/a&gt;, converted into VB.NET:&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;i&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black"&gt;I often find when using templated data-bound
controls (in either ASP.NET 1.1 or 2.0) that my expressions become rather difficult
to understand because of the need to fit all of your logic into a single expression.
For example, I have seen databound expressions that look something like:&lt;/span&gt;&lt;/i&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN-BOTTOM: 13.5pt; LINE-HEIGHT: 13.5pt"&gt;
&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: maroon"&gt;asp&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;:&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: maroon"&gt;TemplateField&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: red"&gt;HeaderText&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;="SomeColumn"&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: maroon"&gt;ItemTemplate&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;%&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;#&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black"&gt; ((&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;bool&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black"&gt;)Eval(&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: maroon"&gt;"foo"&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black"&gt;))
? Eval(&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: maroon"&gt;"bar"&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black"&gt;)
: (((&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;bool&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black"&gt;)Eval(&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: maroon"&gt;"quux"&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black"&gt;))
? Eval(&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: maroon"&gt;"a"&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black"&gt;)
: Eval(&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: maroon"&gt;"b"&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black"&gt;))
%&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: maroon"&gt;ItemTemplate&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;&amp;gt;&lt;br&gt;
&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: maroon"&gt;asp&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;:&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: maroon"&gt;TemplateField&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN-BOTTOM: 13.5pt; LINE-HEIGHT: 13.5pt"&gt;
&lt;i&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black"&gt;Which is even worse in 1.1 because each
Eval must be replaced with DataBinder.Eval(Container.DataItem, "xx"). There are also
occasions where you just can't compress all the logic you need to into a single expression.
An alternative, which I find myself using quite a bit, even when developing in 2.0,
is to write a single method in your code behind class to generate the desired string.
Have it take an object reference (which will be the bound row) and take as many lines
as you like to construct the string to be generated in the template. Here's&amp;nbsp;a
method that returns the same string as the overly-complex expression above:&lt;/span&gt;&lt;/i&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN-BOTTOM: 13.5pt; LINE-HEIGHT: 13.5pt"&gt;
&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;Protected&amp;nbsp;Function&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;GenerateFooString(&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;ByVal&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;dataItem&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;As&amp;nbsp;Object&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;As&amp;nbsp;String&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dim&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;foo&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;As&amp;nbsp;Boolean&amp;nbsp;=&amp;nbsp;CType&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;(DataBinder.Eval(dataItem,&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Lucida Console'"&gt;"foo"&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;),&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;Boolean&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;Dim&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;quux&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;As&amp;nbsp;Boolean&amp;nbsp;=&amp;nbsp;CType&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;(DataBinder.Eval(dataItem,&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Lucida Console'"&gt;"quux"&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;),&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;Boolean&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;Dim&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;ret&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;As&amp;nbsp;String&amp;nbsp;=&amp;nbsp;string&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;.Empty&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;If&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;foo&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;Then&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;ret&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;=&amp;nbsp;CType&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;(DataBinder.Eval(dataItem,&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Lucida Console'"&gt;"bar"&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;),&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;String&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;ElseIf&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;quux&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;Then&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;ret&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;=&amp;nbsp;CType&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;(DataBinder.Eval(dataItem,&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Lucida Console'"&gt;"a"&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;),&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;String&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;Else&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;ret&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;=&amp;nbsp;CType&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;(DataBinder.Eval(dataItem,&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Lucida Console'"&gt;"b"&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;),&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;String&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;End&amp;nbsp;If&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Return&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Lucida Console'"&gt;ret&lt;br&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'"&gt;End&amp;nbsp;Function&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN-BOTTOM: 13.5pt; LINE-HEIGHT: 13.5pt"&gt;
&lt;i&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black"&gt;And the simplified template now looks
like:&lt;/span&gt;&lt;/i&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN-BOTTOM: 13.5pt; LINE-HEIGHT: 13.5pt"&gt;
&lt;span style="FONT-SIZE: 9pt; COLOR: black"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: maroon"&gt;asp&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;:&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: maroon"&gt;TemplateField&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: red"&gt;HeaderText&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;="SomeColumn"&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: maroon"&gt;ItemTemplate&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;%&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;#&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: black"&gt; GenerateFooString(Container.DataItem)
%&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: maroon"&gt;ItemTemplate&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;&amp;gt;&lt;br&gt;
&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: maroon"&gt;asp&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;:&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: maroon"&gt;TemplateField&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; COLOR: blue"&gt;&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN-BOTTOM: 13.5pt; LINE-HEIGHT: 13.5pt"&gt;
&lt;span style="FONT-SIZE: 9pt"&gt;Once again, this is &lt;u&gt;not&lt;/u&gt; my code or idea; it all
belongs to &lt;a href="http://pluralsight.com/blogs/fritz/" target=" blank"&gt;Fritz Onion&lt;/a&gt;!&lt;/span&gt;
&lt;/p&gt;
&lt;/div&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,4260f172-dd96-4879-8c3b-d77d7d22ea4b.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=2665ee56-4f3b-467f-bc79-ce0517a7595a</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,2665ee56-4f3b-467f-bc79-ce0517a7595a.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,2665ee56-4f3b-467f-bc79-ce0517a7595a.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2665ee56-4f3b-467f-bc79-ce0517a7595a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
            <span style="COLOR: black">I haven’t quite figured-out what this plugin does, but
it sounds like something I should use since I’m trying to work with standards compliant
CSS files in my latest web apps:</span>
          </p>
          <p class="MsoNormal">
            <span style="COLOR: black">
              <a href="http://www.asp.net/sandbox/app_sandman.aspx?tabindex=0&amp;tabid=1">CSS
Properties Window Plugin</a>
            </span>
          </p>
        </div>
      </body>
      <title>VS.NET 2005 CSS Properties Window Plugin</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,2665ee56-4f3b-467f-bc79-ce0517a7595a.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/12/17/VSNET2005CSSPropertiesWindowPlugin.aspx</link>
      <pubDate>Sat, 17 Dec 2005 21:37:49 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
&lt;span style="COLOR: black"&gt;I haven’t quite figured-out what this plugin does, but
it sounds like something I should use since I’m trying to work with standards compliant
CSS files in my latest web apps:&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span style="COLOR: black"&gt;&lt;a href="http://www.asp.net/sandbox/app_sandman.aspx?tabindex=0&amp;amp;tabid=1"&gt;CSS
Properties Window Plugin&lt;/a&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/div&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,2665ee56-4f3b-467f-bc79-ce0517a7595a.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=2454b287-76c5-4d25-b380-e3afb972d1df</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,2454b287-76c5-4d25-b380-e3afb972d1df.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,2454b287-76c5-4d25-b380-e3afb972d1df.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2454b287-76c5-4d25-b380-e3afb972d1df</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
Seems that most programmers are not good designers, and most designers are not good
programmers.  However, Microsoft is making it easier for programmers to not worry
so much about design by providing a set of new templates for VisualStudio.NET 2005. 
</p>
          <p class="MsoNormal">
The interesting part is that these templates are not only pretty nice looking, some
of them conform to the XHTML 1.1 Strict standard; that’s something you couldn’t
even dream of doing with VisualStudio.NET 2003!
</p>
          <p class="MsoNormal">
In addition to being standards compliant, these templates make use of Master Pages,
Themes, and Skins, so they should serve as good references on how to properly use
these new features in VS.NET 2005.
</p>
          <p class="MsoNormal">
            <a href="http://msdn.microsoft.com/asp.net/reference/design/templates/default.aspx" target=" blank">MSDN:
Design Templates</a>
          </p>
          <p class="MsoNormal">
            <img border="0" width="258" height="305" src="http://blog.toddtaylor.com/content/binary/image001123.jpg" />
          </p>
        </div>
      </body>
      <title>Web Site Templates for the Graphically Challenged</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,2454b287-76c5-4d25-b380-e3afb972d1df.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/12/14/WebSiteTemplatesForTheGraphicallyChallenged.aspx</link>
      <pubDate>Wed, 14 Dec 2005 14:53:37 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
Seems that most programmers are not good designers, and most designers are not good
programmers.&amp;nbsp; However, Microsoft is making it easier for programmers to not worry
so much about design by providing a set of new templates for VisualStudio.NET 2005. 
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
The interesting part is that these templates are not only pretty nice looking, some
of them conform to the XHTML 1.1 Strict standard; that&amp;#8217;s something you couldn&amp;#8217;t
even dream of doing with VisualStudio.NET 2003!
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
In addition to being standards compliant, these templates make use of Master Pages,
Themes, and Skins, so they should serve as good references on how to properly use
these new features in VS.NET 2005.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;a href="http://msdn.microsoft.com/asp.net/reference/design/templates/default.aspx" target=" blank"&gt;MSDN:
Design Templates&lt;/a&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;img border=0 width=258 height=305 src="http://blog.toddtaylor.com/content/binary/image001123.jpg"&gt;
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,2454b287-76c5-4d25-b380-e3afb972d1df.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=3e9f6d09-f4b4-4cb3-b908-45402110f2a2</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,3e9f6d09-f4b4-4cb3-b908-45402110f2a2.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,3e9f6d09-f4b4-4cb3-b908-45402110f2a2.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3e9f6d09-f4b4-4cb3-b908-45402110f2a2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
What? You don’t have any Microsoft certifications and you feel lonely? 
Not to worry, <a href="http://weblogs.asp.net/jamauss/archive/2005/11/12/430429.aspx" target=" blank">Jason
Mauss</a> has created some new Microsoft MVP awards that you can add to your web site
so that you’ll fit-in better ;-)<br /><br /></p>
          <p class="MsoNormal">
            <img border="0" width="128" height="225" src="http://blog.toddtaylor.com/content/binary/image00112.jpg" />      <img border="0" width="128" height="225" src="http://blog.toddtaylor.com/content/binary/image00212.jpg" />      <img border="0" width="128" height="225" src="http://blog.toddtaylor.com/content/binary/image003123.jpg" /><br />
  <br /><img border="0" width="128" height="225" src="http://blog.toddtaylor.com/content/binary/image00412.jpg" />    
 <img border="0" width="128" height="225" src="http://blog.toddtaylor.com/content/binary/image0051.jpg" />   
  <img border="0" width="128" height="225" src="http://blog.toddtaylor.com/content/binary/image006.gif" /></p>
        </div>
      </body>
      <title>Blog 'Flair'</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,3e9f6d09-f4b4-4cb3-b908-45402110f2a2.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/12/08/BlogFlair.aspx</link>
      <pubDate>Thu, 08 Dec 2005 17:17:30 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
What? You don&amp;#8217;t have any Microsoft certifications and you feel lonely?&amp;nbsp;
Not to worry, &lt;a href="http://weblogs.asp.net/jamauss/archive/2005/11/12/430429.aspx" target=" blank"&gt;Jason
Mauss&lt;/a&gt; has created some new Microsoft MVP awards that you can add to your web site
so that you&amp;#8217;ll fit-in better ;-)&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;img border=0 width=128 height=225 src="http://blog.toddtaylor.com/content/binary/image00112.jpg"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img border=0 width=128 height=225 src="http://blog.toddtaylor.com/content/binary/image00212.jpg"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img border=0 width=128 height=225 src="http://blog.toddtaylor.com/content/binary/image003123.jpg"&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&lt;br&gt;
&lt;img border=0 width=128 height=225 src="http://blog.toddtaylor.com/content/binary/image00412.jpg"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&lt;img border=0 width=128 height=225 src="http://blog.toddtaylor.com/content/binary/image0051.jpg"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&lt;img border=0 width=128 height=225 src="http://blog.toddtaylor.com/content/binary/image006.gif"&gt;
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,3e9f6d09-f4b4-4cb3-b908-45402110f2a2.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=de464b86-5db7-4cc8-9466-c34abb00395d</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,de464b86-5db7-4cc8-9466-c34abb00395d.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,de464b86-5db7-4cc8-9466-c34abb00395d.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=de464b86-5db7-4cc8-9466-c34abb00395d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
I like adding help messages to web forms, but I find that these help messages can
often make the page very long.  Since a user won’t like need a help message once
he has read it, it’s nice to be able to hide the message.
</p>
          <p class="MsoNormal">
With that in-mind, the JavaScripts below are nice samples of scripts that will display
or hide content that is within a specified <b><span style="FONT-FAMILY: 'Courier New'">&lt;DIV&gt;</span></b> tag. 
They can be called from a single button or hyperlink:
</p>
          <p class="StyleCourierNewBlack">
function toggleDiv(divName) {<br />
    thisDiv = document.getElementById(divName);<br />
    if (thisDiv) {<br />
        if (thisDiv.style.display == "none") {<br />
            thisDiv.style.display
= "block";<br />
        }<br />
        else {<br />
            thisDiv.style.display
= "none";<br />
        }<br />
    }<br />
    else {<br />
        alert("Error: Could not locate div with
id: " + divName);<br />
    }<br />
}
</p>
          <p class="MsoNormal">
function toggleDiv(divName) {<br />
    var thisDiv = document.getElementById(divName);<br />
    if (thisDiv) thisDiv.style.display = !thisDiv.offsetWidth ? "block"
:"none";<br />
    else alert("Error: Could not locate div with id: " + divName);<br />
}
</p>
        </div>
      </body>
      <title>Simple Toggle Layer Script</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,de464b86-5db7-4cc8-9466-c34abb00395d.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/12/06/SimpleToggleLayerScript.aspx</link>
      <pubDate>Tue, 06 Dec 2005 18:48:13 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
I like adding help messages to web forms, but I find that these help messages can
often make the page very long.&amp;nbsp; Since a user won’t like need a help message once
he has read it, it’s nice to be able to hide the message.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
With that in-mind, the JavaScripts below are nice samples of scripts that will display
or hide content that is within a specified &lt;b&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;&amp;lt;DIV&amp;gt;&lt;/span&gt;&lt;/b&gt; tag.&amp;nbsp;
They can be called from a single button or hyperlink:
&lt;/p&gt;
&lt;p class=StyleCourierNewBlack&gt;
function toggleDiv(divName) {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; thisDiv = document.getElementById(divName);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (thisDiv) {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (thisDiv.style.display == "none") {&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; thisDiv.style.display
= "block";&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; else {&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; thisDiv.style.display
= "none";&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;
&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert("Error: Could not locate div with
id: " + divName);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
}
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
function toggleDiv(divName) {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var thisDiv = document.getElementById(divName);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (thisDiv) thisDiv.style.display = !thisDiv.offsetWidth ? "block"
:"none";&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; else alert("Error: Could not locate div with id: " + divName);&lt;br&gt;
}
&lt;/p&gt;
&lt;/div&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,de464b86-5db7-4cc8-9466-c34abb00395d.aspx</comments>
      <category>ASP.NET</category>
      <category>Web Design</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=db14827e-c125-4780-8e5b-874dd726baad</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,db14827e-c125-4780-8e5b-874dd726baad.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,db14827e-c125-4780-8e5b-874dd726baad.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=db14827e-c125-4780-8e5b-874dd726baad</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
I recently took on the project of trying to create my own Business Logic Layer (BLL)
and Data Access Layer (DAL) in a personal web project so I could understand how the
various layers of n-tier architecture are supposed to work.  I didn’t get very
far before I realized that allowing NULL database values (<span style="FONT-FAMILY: 'Courier New'">System.DBNull.Value</span>)
in various fields in my database was going to give me a large headache :'(
</p>
          <p class="MsoNormal">
After doing a lot of research, I didn’t come-up with too many satisfactory methods
for dealing with <span style="FONT-FAMILY: 'Courier New'">DBNull</span>s.  At
best, it seemed like I’d have to write all sorts of methods for converting <span style="FONT-FAMILY: 'Courier New'">DBNull</span>s
to either a default value for each data type (I.e., define an integer to default to
zero, a string defaults to <span style="COLOR: blue; FONT-FAMILY: 'Courier New'">String</span><span style="FONT-FAMILY: 'Courier New'">.Empty</span>,
a date defaults to <span style="FONT-FAMILY: 'Courier New'">DateTime.MinValue</span>,
etc.) or use the new VB.NET 2.0 <a href="http://msdn2.microsoft.com/en-us/library/ms235245.aspx">Nullable
Types</a> and set each data type to <span style="COLOR: blue; FONT-FAMILY: 'Courier New'">Nothing</span>. 
This sounded like a lot of work and a lot of code… more code = more errors!
</p>
          <p class="MsoNormal">
I read a few articles on using <a href="http://msdn2.microsoft.com/en-us/library/w256ka79.aspx">Generic
Types in VB.NET 2.0</a> and it appeared to me as though they could be the answer to
my prayers:  Create one generic method that can check for <span style="FONT-FAMILY: 'Courier New'">DBNull</span>s
for all data types.  A <a href="http://dotnetjunkies.com/WebLog/saravana/archive/2005/05/14/76814.aspx">blog
post by Saravana Kumar</a> shows a way to accomplish this using C#. However, C# has
a keyword <span style="COLOR: blue; FONT-FAMILY: 'Courier New'"><a href="http://msdn2.microsoft.com/en-us/library/xwth0h0d.aspx">default</a></span>which
doesn’t exist in VB.NET (at least not that I could find.)  This keyword apparently
returns the default value for each data type, just like I wanted!
</p>
          <p class="MsoNormal">
After much tinkering, here is what I came-up after trying to convert Saravana’s code
to VB.NET:
</p>
          <p class="MsoNormal">
            <span style="COLOR: blue; FONT-FAMILY: 'Courier New'">Public</span>
            <span style="FONT-FAMILY: 'Courier New'">
              <span style="COLOR: blue">Shared</span>
              <span style="COLOR: blue">Function</span> ConvertDBNull(<span style="COLOR: blue">Of</span> T)(<span style="COLOR: blue">ByVal</span> obj <span style="COLOR: blue">As</span><span style="COLOR: blue">Object</span>) <span style="COLOR: blue">As</span> T<br /></span>
            <span style="FONT-FAMILY: 'Courier New'">    <span style="COLOR: blue">If</span> (obj <span style="COLOR: blue">Is</span> System.DBNull.Value) <span style="COLOR: blue">Then<br /></span></span>
            <span style="FONT-FAMILY: 'Courier New'">       
obj = <span style="COLOR: blue">Nothing<br /></span></span>
            <span style="FONT-FAMILY: 'Courier New'">    <span style="COLOR: blue">End</span><span style="COLOR: blue">If<br /></span></span>
            <span style="FONT-FAMILY: 'Courier New'">    <span style="COLOR: blue">Return</span><span style="COLOR: blue">CType</span>(obj,
T)<br /></span>
            <span style="COLOR: blue; FONT-FAMILY: 'Courier New'">End</span>
            <span style="FONT-FAMILY: 'Courier New'">
              <span style="COLOR: blue">Function</span>
            </span>
          </p>
          <p class="MsoNormal">
So far, it seems to work!  For example, with the following code:
</p>
          <p class="MsoNormal">
            <span style="COLOR: blue; FONT-FAMILY: 'Courier New'">Dim</span>
            <span style="FONT-FAMILY: 'Courier New'"> oSomeTestObject <span style="COLOR: blue">As</span><span style="COLOR: blue">Object</span> =
System.DBNull.Value<br /></span>
            <span style="COLOR: blue; FONT-FAMILY: 'Courier New'">Dim</span>
            <span style="FONT-FAMILY: 'Courier New'"> strResult <span style="COLOR: blue">As</span><span style="COLOR: blue">String</span> =
ConvertDBNull(<span style="COLOR: blue">Of</span><span style="COLOR: blue">Integer</span>)(oSomeTestObject)</span>
          </p>
          <p class="MsoNormal">
The value of <span style="FONT-FAMILY: 'Courier New'">strResult</span> is returned
as a zero.  Another example:<br /><br /><span style="COLOR: blue; FONT-FAMILY: 'Courier New'">Dim</span><span style="FONT-FAMILY: 'Courier New'"> oSomeTestObject <span style="COLOR: blue">As</span><span style="COLOR: blue">Object</span> =
System.DBNull.Value<br /></span><span style="COLOR: blue; FONT-FAMILY: 'Courier New'">Dim</span><span style="FONT-FAMILY: 'Courier New'"> strResult <span style="COLOR: blue">As</span><span style="COLOR: blue">String</span> =
ConvertDBNull(<span style="COLOR: blue">Of</span><span style="COLOR: blue">Date</span>)(oSomeTestObject)</span></p>
          <p class="MsoNormal">
The value of <span style="FONT-FAMILY: 'Courier New'">strResult</span> is returned
as a “12:00:00 AM”. For most dates that I display, I always format them as MM/dd/yyyy,
so a date value only exposing time won't show.
</p>
          <p class="MsoNormal">
I tested this new method on my BLL, and so far it works great! w00t! If you have
a better method for dealing with <span style="FONT-FAMILY: 'Courier New'">DBNull</span>s
in your Business Logic, let me know… I’m all ears!
</p>
        </div>
      </body>
      <title>Handling DbNulls in a Business Logic Layer with Generics</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,db14827e-c125-4780-8e5b-874dd726baad.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/11/29/HandlingDbNullsInABusinessLogicLayerWithGenerics.aspx</link>
      <pubDate>Tue, 29 Nov 2005 22:33:12 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
I recently took on the project of trying to create my own Business Logic Layer (BLL)
and Data Access Layer (DAL) in a personal web project so I could understand how the
various layers of n-tier architecture are supposed to work.&amp;nbsp; I didn’t get very
far before I realized that allowing NULL database values (&lt;span style="FONT-FAMILY: 'Courier New'"&gt;System.DBNull.Value&lt;/span&gt;)
in various fields in my database was going to give me a large headache :'(
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
After doing a lot of research, I didn’t come-up with too many satisfactory methods
for dealing with &lt;span style="FONT-FAMILY: 'Courier New'"&gt;DBNull&lt;/span&gt;s.&amp;nbsp; At
best, it seemed like I’d have to write all sorts of methods for converting &lt;span style="FONT-FAMILY: 'Courier New'"&gt;DBNull&lt;/span&gt;s
to either a default value for each data type (I.e., define an integer to default to
zero, a string defaults to &lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;String&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;.Empty&lt;/span&gt;,
a date defaults to &lt;span style="FONT-FAMILY: 'Courier New'"&gt;DateTime.MinValue&lt;/span&gt;,
etc.) or use the new VB.NET 2.0 &lt;a href="http://msdn2.microsoft.com/en-us/library/ms235245.aspx"&gt;Nullable
Types&lt;/a&gt; and set each data type to &lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;Nothing&lt;/span&gt;.&amp;nbsp;
This sounded like a lot of work and a lot of code… more code = more errors!
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
I read a few articles on using &lt;a href="http://msdn2.microsoft.com/en-us/library/w256ka79.aspx"&gt;Generic
Types in VB.NET 2.0&lt;/a&gt; and it appeared to me as though they could be the answer to
my prayers:&amp;nbsp; Create one generic method that can check for &lt;span style="FONT-FAMILY: 'Courier New'"&gt;DBNull&lt;/span&gt;s
for all data types.&amp;nbsp; A &lt;a href="http://dotnetjunkies.com/WebLog/saravana/archive/2005/05/14/76814.aspx"&gt;blog
post by Saravana Kumar&lt;/a&gt; shows a way to accomplish this using C#. However, C# has
a keyword &lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/xwth0h0d.aspx"&gt;default&lt;/a&gt; &lt;/span&gt;which
doesn’t exist in VB.NET (at least not that I could find.)&amp;nbsp; This keyword apparently
returns the default value for each data type, just like I wanted!
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
After much tinkering, here is what I came-up after trying to convert Saravana’s code
to VB.NET:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;Public&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;Shared&lt;/span&gt; &lt;span style="COLOR: blue"&gt;Function&lt;/span&gt; ConvertDBNull(&lt;span style="COLOR: blue"&gt;Of&lt;/span&gt; T)(&lt;span style="COLOR: blue"&gt;ByVal&lt;/span&gt; obj &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; &lt;span style="COLOR: blue"&gt;Object&lt;/span&gt;) &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; T&lt;br&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR: blue"&gt;If&lt;/span&gt; (obj &lt;span style="COLOR: blue"&gt;Is&lt;/span&gt; System.DBNull.Value) &lt;span style="COLOR: blue"&gt;Then&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
obj = &lt;span style="COLOR: blue"&gt;Nothing&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR: blue"&gt;End&lt;/span&gt; &lt;span style="COLOR: blue"&gt;If&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR: blue"&gt;Return&lt;/span&gt; &lt;span style="COLOR: blue"&gt;CType&lt;/span&gt;(obj,
T)&lt;br&gt;
&lt;/span&gt;&lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;End&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;Function&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
So far, it seems to work!&amp;nbsp; For example, with the following code:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;Dim&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; oSomeTestObject &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; &lt;span style="COLOR: blue"&gt;Object&lt;/span&gt; =
System.DBNull.Value&lt;br&gt;
&lt;/span&gt;&lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;Dim&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; strResult &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; &lt;span style="COLOR: blue"&gt;String&lt;/span&gt; =
ConvertDBNull(&lt;span style="COLOR: blue"&gt;Of&lt;/span&gt; &lt;span style="COLOR: blue"&gt;Integer&lt;/span&gt;)(oSomeTestObject)&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
The value of &lt;span style="FONT-FAMILY: 'Courier New'"&gt;strResult&lt;/span&gt; is returned
as a zero.&amp;nbsp; Another example:&lt;br&gt;
&lt;br&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;Dim&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; oSomeTestObject &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; &lt;span style="COLOR: blue"&gt;Object&lt;/span&gt; =
System.DBNull.Value&lt;br&gt;
&lt;/span&gt;&lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;Dim&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; strResult &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; &lt;span style="COLOR: blue"&gt;String&lt;/span&gt; =
ConvertDBNull(&lt;span style="COLOR: blue"&gt;Of&lt;/span&gt; &lt;span style="COLOR: blue"&gt;Date&lt;/span&gt;)(oSomeTestObject)&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
The value of &lt;span style="FONT-FAMILY: 'Courier New'"&gt;strResult&lt;/span&gt; is returned
as a “12:00:00 AM”. For most dates that I display, I always format them as MM/dd/yyyy,
so a date value only exposing time won't show.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
I tested this new method on my BLL, and so far it works great!&amp;nbsp;w00t! If you have
a better method for dealing with &lt;span style="FONT-FAMILY: 'Courier New'"&gt;DBNull&lt;/span&gt;s
in your Business Logic, let me know… I’m all ears!
&lt;/p&gt;
&lt;/div&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,db14827e-c125-4780-8e5b-874dd726baad.aspx</comments>
      <category>ASP.NET</category>
      <category>VB.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=2acba180-643a-4724-a04a-030d92ffb271</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,2acba180-643a-4724-a04a-030d92ffb271.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,2acba180-643a-4724-a04a-030d92ffb271.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2acba180-643a-4724-a04a-030d92ffb271</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
The December issue of MSDN Magazine has a nice listing of add-ins for Visual Studio,
most of which are free:<br /><span style="color:black"><a href="http://msdn.microsoft.com/msdnmag/issues/05/12/VisualStudioAddins/default.aspx">Visual
Studio Add-Ins Every Developer Should Download Now</a></span></p>
        </div>
      </body>
      <title>Top 10 Must-Have Add-Ins for Visual Studio.NET</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,2acba180-643a-4724-a04a-030d92ffb271.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/11/29/Top10MustHaveAddInsForVisualStudioNET.aspx</link>
      <pubDate>Tue, 29 Nov 2005 18:24:11 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
The December issue of MSDN Magazine has a nice listing of add-ins for Visual Studio,
most of which are free:&lt;br&gt;
&lt;span style='color:black'&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/05/12/VisualStudioAddins/default.aspx"&gt;Visual
Studio Add-Ins Every Developer Should Download Now&lt;/a&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,2acba180-643a-4724-a04a-030d92ffb271.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=04b1a383-cbf3-4556-bbb5-2c2356d99cc2</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,04b1a383-cbf3-4556-bbb5-2c2356d99cc2.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,04b1a383-cbf3-4556-bbb5-2c2356d99cc2.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=04b1a383-cbf3-4556-bbb5-2c2356d99cc2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
One thing it took me way too long to learn with Visual Studio 2003 is how to customize
the default file templates.  Well, it didn’t take me long to customize
the templates once I knew where they were, it was finding them that was hard. ;-)  
</p>
          <p class="MsoNormal">
For example, when you add a new web form to a project, you don’t have to put-up
with all the garbage tags in the HTML page header that Visual Studio auto-magically
generates. You can modify the ASPX page template to show what you want so you don’t
have to modify each new file.  The same can be done with class files, XML, etc.
</p>
          <p class="MsoNormal">
The template customization feature of VS.NET 2005 is pretty nice and the guys and
gals at MSDN have already created a lot of documentation for template customization:
</p>
          <p class="MsoNormal">
            <a href="http://msdn2.microsoft.com/en-us/library/6db0hwky(en-US,VS.80).aspx">MSDN2:
Visual Studio Templates</a>
          </p>
        </div>
      </body>
      <title>Visual Studio 2005 Templates</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,04b1a383-cbf3-4556-bbb5-2c2356d99cc2.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/11/28/VisualStudio2005Templates.aspx</link>
      <pubDate>Mon, 28 Nov 2005 22:37:16 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
One thing it took me way too long to learn with Visual Studio 2003 is how to customize
the default file templates.&amp;nbsp; Well, it didn&amp;#8217;t take me long to customize
the templates once I knew where they were, it was finding them that was hard. ;-)&amp;nbsp; 
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
For example, when you add a new web form to a project, you don&amp;#8217;t have to put-up
with all the garbage tags in the HTML page header that Visual Studio auto-magically
generates. You can modify the ASPX page template to show what you want so you don&amp;#8217;t
have to modify each new file. &amp;nbsp;The same can be done with class files, XML, etc.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
The template customization feature of VS.NET 2005 is pretty nice and the guys and
gals at MSDN have already created a lot of documentation for template customization:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/6db0hwky(en-US,VS.80).aspx"&gt;MSDN2:
Visual Studio Templates&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,04b1a383-cbf3-4556-bbb5-2c2356d99cc2.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=3a6370ea-11f9-4449-bccd-08238db6c3fc</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,3a6370ea-11f9-4449-bccd-08238db6c3fc.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,3a6370ea-11f9-4449-bccd-08238db6c3fc.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3a6370ea-11f9-4449-bccd-08238db6c3fc</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
There are a couple of web sites out there that cover exactly how I feel most of the
time while programming… here’s one of them: http://thedailywtf.com/
</p>
        </div>
      </body>
      <title>The Daily WTF?</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,3a6370ea-11f9-4449-bccd-08238db6c3fc.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/11/28/TheDailyWTF.aspx</link>
      <pubDate>Mon, 28 Nov 2005 21:45:14 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
There are a couple of web sites out there that cover exactly how I feel most of the
time while programming&amp;#8230; here&amp;#8217;s one of them: http://thedailywtf.com/
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,3a6370ea-11f9-4449-bccd-08238db6c3fc.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=846388be-2636-436a-bd90-a82bbb019144</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,846388be-2636-436a-bd90-a82bbb019144.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,846388be-2636-436a-bd90-a82bbb019144.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=846388be-2636-436a-bd90-a82bbb019144</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="inlinedMailPictureBox">
          <a href="http://blog.toddtaylor.com/content/binary/image001123.gif">
            <img class="inlinedMailPicture" src="http://blog.toddtaylor.com/content/binary/image001123-thumb.dasblog.JPG" border="0" />
          </a>
          <br />
          <a class="inlinedMailPictureLink" href="http://blog.toddtaylor.com/content/binary/image001123.gif">Click
image to enlarge</a>
        </div>
      </body>
      <title>Dilbert Does Agile Development</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,846388be-2636-436a-bd90-a82bbb019144.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/11/28/DilbertDoesAgileDevelopment.aspx</link>
      <pubDate>Mon, 28 Nov 2005 16:12:43 GMT</pubDate>
      <description>&lt;div class=inlinedMailPictureBox&gt;&lt;a href="http://blog.toddtaylor.com/content/binary/image001123.gif"&gt;&lt;img class=inlinedMailPicture src="http://blog.toddtaylor.com/content/binary/image001123-thumb.dasblog.JPG" border=0&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a class=inlinedMailPictureLink href="http://blog.toddtaylor.com/content/binary/image001123.gif"&gt;Click
image to enlarge&lt;/a&gt;
&lt;/div&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,846388be-2636-436a-bd90-a82bbb019144.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=5b89e69e-6472-4ac7-832c-83e717abe6e8</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,5b89e69e-6472-4ac7-832c-83e717abe6e8.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,5b89e69e-6472-4ac7-832c-83e717abe6e8.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=5b89e69e-6472-4ac7-832c-83e717abe6e8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
Have you ever found it annoying that any time you download some sample code you had
to configure a virtual directory in IIS just to see it work, only to delete it if
it wasn’t of use to you?  Well, with the .NET 2.0 Framework and a little
help from <a href="http://weblogs.asp.net/rmclaws/">Robert McLaws</a>, you can now
browse web sites from anywhere using the new built-in web server feature of ASP.NET
2.0:
</p>
          <p class="MsoNormal">
            <span style="font-size:9.0pt">
              <a href="http://weblogs.asp.net/rmclaws/archive/2005/10/25/428422.aspx">"ASP.NET
2.0 Web Server Here" Shell Extension</a>
            </span>
          </p>
          <p class="MsoNormal">
            <span style="font-size:9.0pt">In the above blog post, Robert had a few issues with
his solution which he apparently resolved with the .msi which can be downloaded <a href="http://weblogs.asp.net/rmclaws/archive/2005/10/26/428600.aspx">here</a>.</span>
          </p>
          <p class="MsoNormal">
            <span style="font-size:9.0pt">The coolest part is that it even works on ASP.NET 1.1
projects! w00t!</span>
          </p>
        </div>
      </body>
      <title>Launch a Web Server from Anywhere!</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,5b89e69e-6472-4ac7-832c-83e717abe6e8.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/11/22/LaunchAWebServerFromAnywhere.aspx</link>
      <pubDate>Tue, 22 Nov 2005 21:19:57 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
Have you ever found it annoying that any time you download some sample code you had
to configure a virtual directory in IIS just to see it work, only to delete it if
it wasn&amp;#8217;t of use to you?&amp;nbsp; Well, with the .NET 2.0 Framework and a little
help from &lt;a href="http://weblogs.asp.net/rmclaws/"&gt;Robert McLaws&lt;/a&gt;, you can now
browse web sites from anywhere using the new built-in web server feature of ASP.NET
2.0:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span style='font-size:9.0pt'&gt;&lt;a href="http://weblogs.asp.net/rmclaws/archive/2005/10/25/428422.aspx"&gt;&amp;quot;ASP.NET
2.0 Web Server Here&amp;quot; Shell Extension&lt;/a&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span style='font-size:9.0pt'&gt;In the above blog post, Robert had a few issues with
his solution which he apparently resolved with the .msi which can be downloaded &lt;a href="http://weblogs.asp.net/rmclaws/archive/2005/10/26/428600.aspx"&gt;here&lt;/a&gt;.&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span style='font-size:9.0pt'&gt;The coolest part is that it even works on ASP.NET 1.1
projects! w00t!&lt;/span&gt;
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,5b89e69e-6472-4ac7-832c-83e717abe6e8.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=46d9f9e3-ce6a-4cbd-8f2b-73db9f95a85d</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,46d9f9e3-ce6a-4cbd-8f2b-73db9f95a85d.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,46d9f9e3-ce6a-4cbd-8f2b-73db9f95a85d.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=46d9f9e3-ce6a-4cbd-8f2b-73db9f95a85d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
I’m going to have to make reading <a href="http://weblogs.asp.net/scottgu/">Scott
Guthrie’s blog</a> part of my daily ritual because nearly every post is packed with
useful information!  This article shows how to run a web application on your
development PC as though it was running at the top-level (or “root”) web site, even
if it’s configured to run in a virtual root:<br /><br /></p>
          <p class="MsoNormal">
            <a href="http://weblogs.asp.net/scottgu/archive/2005/11/21/431138.aspx">How to Run
a Root “/” Site with the VS/VWD 2005 Local Web Server </a>
          </p>
          <p class="MsoNormal">
Why is this cool?  If you haven’t already figured it out, here’s my lame explanation:
</p>
          <p class="MsoNormal">
When you configure a web site on a Windows 2003 Server using IIS 6, each site has
its own root directory because IIS 6 on a web server allows for the creation of multiple
web sites.  However, on a development machine running Windows XP Pro and IIS
5, you can only have one web site defined which means all other sites must be contained
in virtual root folders below the main site.   The problem that this creates
is that it becomes difficult to reference file paths to static files and folders.
</p>
          <p class="MsoNormal">
For example, if your site contains an “images” folder and a “templates” folder (which
contains your .ASCX user controls), you will likely want to reference images from
within one of your user controls.  On a web server, you could reference an image
path like this:
</p>
          <p class="MsoNormal">
            <span style="COLOR: blue; FONT-FAMILY: 'Courier New'">&lt;</span>
            <span style="COLOR: maroon; FONT-FAMILY: 'Courier New'">img</span>
            <span style="FONT-FAMILY: 'Courier New'">
              <span style="COLOR: red">src</span>
              <span style="COLOR: blue">=”/images/someimage.gif”</span>
              <span style="COLOR: red">alt</span>
              <span style="COLOR: blue">="My
Alt Tag"</span>
              <span style="COLOR: blue">/&gt;</span>
            </span>
          </p>
          <p class="MsoNormal">
However, that won’t work on a development PC running IIS 5 with a site defined as
a virtual root.  The path would then have to be:
</p>
          <p class="MsoNormal">
            <span style="COLOR: blue; FONT-FAMILY: 'Courier New'">&lt;</span>
            <span style="COLOR: maroon; FONT-FAMILY: 'Courier New'">img</span>
            <span style="FONT-FAMILY: 'Courier New'">
              <span style="COLOR: red">src</span>
              <span style="COLOR: blue">=”/myvirtualroot/images/someimage.gif”</span>
              <span style="COLOR: red">alt</span>
              <span style="COLOR: blue">="My
Alt Tag"</span>
              <span style="COLOR: blue">/&gt;</span>
            </span>
          </p>
          <p class="MsoNormal">
Starting to see the problem here?  In the second example, all your images will
break when you copy your files from your development PC to the live web server.  
Using the “../” method to navigate to images used to work:
</p>
          <p class="MsoNormal">
            <span style="COLOR: blue; FONT-FAMILY: 'Courier New'">&lt;</span>
            <span style="COLOR: maroon; FONT-FAMILY: 'Courier New'">img</span>
            <span style="FONT-FAMILY: 'Courier New'">
              <span style="COLOR: red">src</span>
              <span style="COLOR: blue">=”../images/someimage.gif”</span>
              <span style="COLOR: red">alt</span>
              <span style="COLOR: blue">="My
Alt Tag"</span>
              <span style="COLOR: blue">/&gt;</span>
            </span>
          </p>
          <p class="MsoNormal">
However, do to naughty people trying to run scripts through the address bar in the
browser, IIS often won’t allow for the “../” notation.  One solution is to use
the method ResolveURL along with the “~/” prefix:
</p>
          <p class="MsoNormal">
            <span style="COLOR: blue; FONT-FAMILY: 'Courier New'">&lt;</span>
            <span style="COLOR: maroon; FONT-FAMILY: 'Courier New'">img</span>
            <span style="FONT-FAMILY: 'Courier New'">
              <span style="COLOR: red">src</span>
              <span style="COLOR: blue">="</span>
              <span style="BACKGROUND: yellow">&lt;%</span>#
Control.ResolveUrl(“~/images/someimage.gif”) <span style="BACKGROUND: yellow">%&gt;</span><span style="COLOR: blue">"</span><span style="COLOR: red">alt</span><span style="COLOR: blue">="My
Alt Tag"</span><span style="COLOR: blue">/&gt;</span></span>
          </p>
          <p class="MsoNormal">
But that’s just plain ugly code!   Utilizing Scott’s trick, you can reference
your file paths as though you were working on a live web server without having to
do any ugly work-around. Schweet!
</p>
        </div>
      </body>
      <title>Running a Web Site in the Web Root</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,46d9f9e3-ce6a-4cbd-8f2b-73db9f95a85d.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/11/22/RunningAWebSiteInTheWebRoot.aspx</link>
      <pubDate>Tue, 22 Nov 2005 21:04:04 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
I’m going to have to make reading &lt;a href="http://weblogs.asp.net/scottgu/"&gt;Scott
Guthrie’s blog&lt;/a&gt; part of my daily ritual because nearly every post is packed with
useful information!&amp;nbsp; This article shows how to run a web application on your
development PC as though it was running at the top-level (or “root”) web site, even
if it’s configured to run in a virtual root:&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2005/11/21/431138.aspx"&gt;How to Run
a Root “/” Site with the VS/VWD 2005 Local Web Server &lt;/a&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Why is this cool?&amp;nbsp; If you haven’t already figured it out, here’s my lame explanation:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
When you configure a web site on a Windows 2003 Server using IIS 6, each site has
its own root directory because IIS 6 on a web server allows for the creation of multiple
web sites.&amp;nbsp; However, on a development machine running Windows XP Pro and IIS
5, you can only have one web site defined which means all other sites must be contained
in virtual root folders below the main site.&amp;nbsp;&amp;nbsp; The problem that this creates
is that it becomes difficult to reference file paths to static files and folders.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
For example, if your site contains an “images” folder and a “templates” folder (which
contains your .ASCX user controls), you will likely want to reference images from
within one of your user controls.&amp;nbsp; On a web server, you could reference an image
path like this:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon; FONT-FAMILY: 'Courier New'"&gt;img&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: red"&gt;src&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=”/images/someimage.gif”&lt;/span&gt; &lt;span style="COLOR: red"&gt;alt&lt;/span&gt;&lt;span style="COLOR: blue"&gt;="My
Alt Tag"&lt;/span&gt; &lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
However, that won’t work on a development PC running IIS 5 with a site defined as
a virtual root.&amp;nbsp; The path would then have to be:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon; FONT-FAMILY: 'Courier New'"&gt;img&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: red"&gt;src&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=”/myvirtualroot/images/someimage.gif”&lt;/span&gt; &lt;span style="COLOR: red"&gt;alt&lt;/span&gt;&lt;span style="COLOR: blue"&gt;="My
Alt Tag"&lt;/span&gt; &lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Starting to see the problem here?&amp;nbsp; In the second example, all your images will
break when you copy your files from your development PC to the live web server.&amp;nbsp;&amp;nbsp;
Using the “../” method to navigate to images used to work:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon; FONT-FAMILY: 'Courier New'"&gt;img&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: red"&gt;src&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=”../images/someimage.gif”&lt;/span&gt; &lt;span style="COLOR: red"&gt;alt&lt;/span&gt;&lt;span style="COLOR: blue"&gt;="My
Alt Tag"&lt;/span&gt; &lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
However, do to naughty people trying to run scripts through the address bar in the
browser, IIS often won’t allow for the “../” notation.&amp;nbsp; One solution is to use
the method ResolveURL along with the “~/” prefix:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon; FONT-FAMILY: 'Courier New'"&gt;img&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: red"&gt;src&lt;/span&gt;&lt;span style="COLOR: blue"&gt;="&lt;/span&gt;&lt;span style="BACKGROUND: yellow"&gt;&amp;lt;%&lt;/span&gt;#
Control.ResolveUrl(“~/images/someimage.gif”) &lt;span style="BACKGROUND: yellow"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;"&lt;/span&gt; &lt;span style="COLOR: red"&gt;alt&lt;/span&gt;&lt;span style="COLOR: blue"&gt;="My
Alt Tag"&lt;/span&gt; &lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
But that’s just plain ugly code!&amp;nbsp;&amp;nbsp; Utilizing Scott’s trick, you can reference
your file paths as though you were working on a live web server without having to
do any ugly work-around. Schweet!
&lt;/p&gt;
&lt;/div&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,46d9f9e3-ce6a-4cbd-8f2b-73db9f95a85d.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=268535fb-e22f-406b-a162-9f366720c7fd</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,268535fb-e22f-406b-a162-9f366720c7fd.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,268535fb-e22f-406b-a162-9f366720c7fd.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=268535fb-e22f-406b-a162-9f366720c7fd</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
The .NET 2.0 Framework supports a new string method for VB that should prove to be
useful:
</p>
          <span class="parameter">
            <span style="COLOR: #000066; FONT-FAMILY: 'Courier New'">
              <font size="2">
                <p>
returnValue = 
</p>
              </font>
              <font color="#0000ff" size="2">String</font>
              <font size="2">.IsNullOrEmpty(value)
</font>
            </span>
          </span>
          <p class="MsoNormal">
            <b>
              <span style="COLOR: black; FONT-FAMILY: Verdana">IsNullOrEmpty</span>
            </b>
            <span style="COLOR: black; FONT-FAMILY: Verdana"> is
a convenience method that enables you to simultaneously test whether a <b>String</b> is
a null reference (<b>Nothing</b> in Visual Basic) or its value is <b>Empty</b>.</span>
          </p>
          <p class="MsoNormal">
 
</p>
        </div>
      </body>
      <title>New Method for Checking Null or Empty Strings</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,268535fb-e22f-406b-a162-9f366720c7fd.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/11/22/NewMethodForCheckingNullOrEmptyStrings.aspx</link>
      <pubDate>Tue, 22 Nov 2005 19:37:43 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
The .NET 2.0 Framework supports a new string method for VB that should prove to be
useful:
&lt;/p&gt;
&lt;span class=parameter&gt;&lt;span style="COLOR: #000066; FONT-FAMILY: 'Courier New'"&gt;&lt;font size=2&gt; 
&lt;p&gt;
returnValue = 
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;String&lt;/font&gt;&lt;font size=2&gt;.IsNullOrEmpty(value)&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p class=MsoNormal&gt;
&lt;b&gt;&lt;span style="COLOR: black; FONT-FAMILY: Verdana"&gt;IsNullOrEmpty&lt;/span&gt;&lt;/b&gt;&lt;span style="COLOR: black; FONT-FAMILY: Verdana"&gt; is
a convenience method that enables you to simultaneously test whether a &lt;b&gt;String&lt;/b&gt; is
a null reference (&lt;b&gt;Nothing&lt;/b&gt; in Visual Basic) or its value is &lt;b&gt;Empty&lt;/b&gt;.&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;/div&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,268535fb-e22f-406b-a162-9f366720c7fd.aspx</comments>
      <category>ASP.NET</category>
      <category>VB.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=61f40ae6-5bdc-47e6-b648-0ec388598087</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,61f40ae6-5bdc-47e6-b648-0ec388598087.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,61f40ae6-5bdc-47e6-b648-0ec388598087.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=61f40ae6-5bdc-47e6-b648-0ec388598087</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
Note that if you are trying to configure Profiles in ASP.NET 2.0, there no longer
is a ‘Profile’ tab in the ASP.NET Web Site Administration Tool. 
This tab appears in the Beta 1 and found it’s way into a lot of documentation
and web casts, but was apparently removed in Beta 2 and the final release.  As
a result, if you want to configure custom Profile Properties or use a custom Profile
Provider, you must do so manually in the web.config file.
</p>
        </div>
      </body>
      <title>Missing Profiles Tab in ASP.NET 2.0 Web Admin Tool</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,61f40ae6-5bdc-47e6-b648-0ec388598087.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/11/22/MissingProfilesTabInASPNET20WebAdminTool.aspx</link>
      <pubDate>Tue, 22 Nov 2005 18:55:28 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
Note that if you are trying to configure Profiles in ASP.NET 2.0, there no longer
is a &amp;#8216;Profile&amp;#8217; tab in the ASP.NET Web Site Administration Tool.&amp;nbsp;
This tab appears in the Beta 1 and found it&amp;#8217;s way into a lot of documentation
and web casts, but was apparently removed in Beta 2 and the final release.&amp;nbsp; As
a result, if you want to configure custom Profile Properties or use a custom Profile
Provider, you must do so manually in the web.config file.
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,61f40ae6-5bdc-47e6-b648-0ec388598087.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=2b81501a-a0f2-459e-a6b1-0360f6d75f8f</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,2b81501a-a0f2-459e-a6b1-0360f6d75f8f.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,2b81501a-a0f2-459e-a6b1-0360f6d75f8f.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2b81501a-a0f2-459e-a6b1-0360f6d75f8f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
When writing SQL statements, it's a good practice to always use "AS" after calling
each field. This will allow for column name changes that won't break your code. 
For example, the following is a simple SELECT statement:
</p>
        <p>
          <font face="Courier New">SELECT <em>Id</em> AS UserId, <em>FirstName</em> AS FirstName, <em>LastName</em> AS
LastName FROM Users</font>
        </p>
        <p>
If some of the column names change, such as the FirstName and LastName columns, my
code won't break:
</p>
        <p>
          <font face="Courier New">SELECT <em>Id</em> AS UserId, <em>FirstName</em> AS NameFirst, <em>NameLast</em> AS
LastName FROM Users</font>
        </p>
        <p>
Thanks to <a href="http://jelle.druyts.net/PermaLink.aspx?guid=61676665-06a7-443a-9462-71dae713539e">Jelle
Druyts</a> for this useful tip.
</p>
      </body>
      <title>Abstraction in SQL Queries</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,2b81501a-a0f2-459e-a6b1-0360f6d75f8f.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/11/21/AbstractionInSQLQueries.aspx</link>
      <pubDate>Mon, 21 Nov 2005 22:21:18 GMT</pubDate>
      <description>&lt;p&gt;
When writing SQL statements, it's a good practice to always use "AS" after calling
each field. This will allow for column name changes that won't break your code.&amp;nbsp;
For example, the following is a simple SELECT statement:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;SELECT &lt;em&gt;Id&lt;/em&gt; AS UserId, &lt;em&gt;FirstName&lt;/em&gt; AS FirstName, &lt;em&gt;LastName&lt;/em&gt; AS
LastName FROM Users&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
If some of the column names change, such as the FirstName and LastName columns, my
code won't break:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;SELECT &lt;em&gt;Id&lt;/em&gt; AS UserId, &lt;em&gt;FirstName&lt;/em&gt; AS NameFirst, &lt;em&gt;NameLast&lt;/em&gt; AS
LastName FROM Users&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
Thanks to &lt;a href="http://jelle.druyts.net/PermaLink.aspx?guid=61676665-06a7-443a-9462-71dae713539e"&gt;Jelle
Druyts&lt;/a&gt; for this useful tip.
&lt;/p&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,2b81501a-a0f2-459e-a6b1-0360f6d75f8f.aspx</comments>
      <category>ASP.NET</category>
      <category>SQL</category>
      <category>VB.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=abb34908-4ce2-4466-8983-86c5138584d0</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,abb34908-4ce2-4466-8983-86c5138584d0.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,abb34908-4ce2-4466-8983-86c5138584d0.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=abb34908-4ce2-4466-8983-86c5138584d0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
Who says that developers are boring and weird?  Well, they are weird, but sometimes
they can be fun:<br /><br /></p>
          <p class="MsoNormal">
            <a title="http://www.microsoft.com/korea/events/ready2005/vs_song.asp" href="http://www.microsoft.com/korea/events/ready2005/vs_song.asp">
              <img title="Visual Studio Team Systems Rap" height="190" alt="VSTSRap_small1.jpg" src="http://blog.toddtaylor.com/content/binary/VSTSRap_small1.jpg" width="321" border="0" />
            </a>
          </p>
          <p class="MsoNormal">
            <a href="http://www.microsoft.com/korea/events/ready2005/vs_song.asp">http://www.microsoft.com/korea/events/ready2005/vs_song.asp</a>
          </p>
          <p class="MsoNormal">
I’m not sure if I think the video is funny because of the content or because of the
Korean language that I don’t understand!
</p>
          <p class="MsoNormal">
The lyrics are very good too <a href="http://blogs.msdn.com/johnlawr/archive/2005/10/30/487021.aspx">when
translated into English</a>... they seem to relate to my job pretty well!
</p>
        </div>
      </body>
      <title>Visual Studio Team Systems Rap</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,abb34908-4ce2-4466-8983-86c5138584d0.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/11/11/VisualStudioTeamSystemsRap.aspx</link>
      <pubDate>Fri, 11 Nov 2005 21:12:22 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
Who says that developers are boring and weird?&amp;nbsp; Well, they are weird, but sometimes
they can be fun:&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;a title=http://www.microsoft.com/korea/events/ready2005/vs_song.asp href="http://www.microsoft.com/korea/events/ready2005/vs_song.asp"&gt;&lt;img title="Visual Studio Team Systems Rap" height=190 alt=VSTSRap_small1.jpg src="http://blog.toddtaylor.com/content/binary/VSTSRap_small1.jpg" width=321 border=0&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;a href="http://www.microsoft.com/korea/events/ready2005/vs_song.asp"&gt;http://www.microsoft.com/korea/events/ready2005/vs_song.asp&lt;/a&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
I’m not sure if I think the video is funny because of the content or because of the
Korean language that I don’t understand!
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
The lyrics are very good too &lt;a href="http://blogs.msdn.com/johnlawr/archive/2005/10/30/487021.aspx"&gt;when
translated into English&lt;/a&gt;... they seem to relate to my job pretty well!
&lt;/p&gt;
&lt;/div&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,abb34908-4ce2-4466-8983-86c5138584d0.aspx</comments>
      <category>ASP.NET</category>
      <category>VB.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=c888988b-cd49-4f8d-9804-7866aeaf0d8d</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,c888988b-cd49-4f8d-9804-7866aeaf0d8d.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,c888988b-cd49-4f8d-9804-7866aeaf0d8d.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c888988b-cd49-4f8d-9804-7866aeaf0d8d</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In a quest to make my client web site’s XHTML compliant yet still highly configurable
by my client, I went on a search to replace the free RichTextBox editor I was using
in favor of one that supported XHTML.   Lucky for me, I found one that did
that and <i>much</i> more: <a href="http://www.fckeditor.net/">FCKeditor</a>.<br /><br /><a href="http://www.fckeditor.net/demo/default.html"><span style="COLOR: windowtext; TEXT-DECORATION: none"><img height="100" src="http://blog.toddtaylor.com/content/binary/image00112.gif" width="300" border="0" /></span></a><br /><br />
FCKeditor is on open-source rich textbox editor that works on nearly every major platform. 
To use it in an ASP.NET web page, as a user control, there is an <a href="http://sourceforge.net/project/showfiles.php?group id=75348&amp;package id=137125">additional
download</a> which provides the necessary .dll.<br /><br />
Configuring the textbox was relatively easy.  The only issue I had was trying
to get the file browser to work. The file browser is a very cool tool that allows
the user to browser to a specific folder on the hard drive and upload or link to files
and images to put into the content window.  This saves the end user from having
direct access to the web server to upload files and then having to guess at the URL
to those files to create links to them.
</p>
        <p>
The issue I had related to the path of the folder where users can store his
files.  That path is different on my workstation than it is on the live
web server because my workstation is running Windows XP and each web site is in a
virtual directory where as the live server is a Windows 2003 Server and each web site
is in its own IIS site.  
</p>
        <p>
For my workstation, I defined the file upload folder as:
</p>
        <p>
          <span style="FONT-FAMILY: 'Courier New'">
            <span style="COLOR: blue">&lt;</span>
            <span style="COLOR: maroon">appSettings</span>
            <span style="COLOR: fuchsia">
            </span>
            <span style="COLOR: red">file</span>
            <span style="COLOR: blue">="user.config"&gt;<br /></span>
          </span>
          <span style="FONT-FAMILY: 'Courier New'"> <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">add</span><span style="COLOR: fuchsia"></span><span style="COLOR: red">key</span><span style="COLOR: blue">="FCKeditor:UserFilesPath" </span><span style="COLOR: red">value</span><span style="COLOR: blue">="/MYVIRTUALSITE/userfiles"</span><span style="COLOR: fuchsia"></span><span style="COLOR: blue">/&gt;<br /></span></span>
          <span style="FONT-FAMILY: 'Courier New'">
            <span style="COLOR: blue">&lt;/</span>
            <span style="COLOR: maroon">appSettings</span>
            <span style="COLOR: blue">&gt;</span>
          </span>
        </p>
        <p>
… where as I had to define the path as follows on the live server:
</p>
        <p>
          <span style="FONT-FAMILY: 'Courier New'">
            <span style="COLOR: blue">&lt;</span>
            <span style="COLOR: maroon">appSettings</span>
            <span style="COLOR: fuchsia">
            </span>
            <span style="COLOR: red">file</span>
            <span style="COLOR: blue">="user.config"&gt;<br /></span>
          </span>
          <span style="FONT-FAMILY: 'Courier New'"> <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">add</span><span style="COLOR: fuchsia"></span><span style="COLOR: red">key</span><span style="COLOR: blue">="FCKeditor:UserFilesPath"</span><span style="COLOR: fuchsia"></span><span style="COLOR: red">value</span><span style="COLOR: blue">="/userfiles"</span><span style="COLOR: fuchsia"></span><span style="COLOR: blue">/&gt;<br /></span></span>
          <span style="FONT-FAMILY: 'Courier New'">
            <span style="COLOR: blue">&lt;/</span>
            <span style="COLOR: maroon">appSettings</span>
            <span style="COLOR: blue">&gt;</span>
          </span>
          <br />
          <br />
Note that the path must start with a forward slash “/” and not a “~/”.
</p>
      </body>
      <title>FCKeditor Rich Textbox Editor for ASP.NET</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,c888988b-cd49-4f8d-9804-7866aeaf0d8d.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/11/09/FCKeditorRichTextboxEditorForASPNET.aspx</link>
      <pubDate>Wed, 09 Nov 2005 00:28:13 GMT</pubDate>
      <description>&lt;p&gt;
In a quest to make my client web site’s XHTML compliant yet still highly configurable
by my client, I went on a search to replace the free RichTextBox editor I was using
in favor of one that supported XHTML.&amp;nbsp;&amp;nbsp; Lucky for me, I found one that did
that and &lt;i&gt;much&lt;/i&gt; more: &lt;a href="http://www.fckeditor.net/"&gt;FCKeditor&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.fckeditor.net/demo/default.html"&gt;&lt;span style="COLOR: windowtext; TEXT-DECORATION: none"&gt;&lt;img height=100 src="http://blog.toddtaylor.com/content/binary/image00112.gif" width=300 border=0&gt;&lt;/span&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
FCKeditor is on open-source rich textbox editor that works on nearly every major platform.&amp;nbsp;
To use it in an ASP.NET web page, as a user control, there is an &lt;a href="http://sourceforge.net/project/showfiles.php?group id=75348&amp;amp;package id=137125"&gt;additional
download&lt;/a&gt; which provides the necessary .dll.&lt;br&gt;
&lt;br&gt;
Configuring the textbox was relatively easy.&amp;nbsp; The only issue I had was trying
to get the file browser to work. The file browser is a very cool tool that allows
the user to browser to a specific folder on the hard drive and upload or link to files
and images to put into the content window.&amp;nbsp; This saves the end user from having
direct access to the web server to upload files and then having to guess at the URL
to those files to create links to them.
&lt;/p&gt;
&lt;p&gt;
The issue I had&amp;nbsp;related to&amp;nbsp;the path&amp;nbsp;of the folder where users can store&amp;nbsp;his
files.&amp;nbsp; That path&amp;nbsp;is different on my workstation than it is on the live
web server because my workstation is running Windows XP and each web site is in a
virtual directory where as the live server is a Windows 2003 Server and each web site
is in its own IIS site.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
For my workstation, I defined the file upload folder as:
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-FAMILY: 'Courier New'"&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;appSettings&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;file&lt;/span&gt;&lt;span style="COLOR: blue"&gt;="user.config"&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&lt;span style="COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;add&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;key&lt;/span&gt;&lt;span style="COLOR: blue"&gt;="FCKeditor:UserFilesPath" &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;="/MYVIRTUALSITE/userfiles"&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;appSettings&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
… where as I had to define the path as follows on the live server:
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-FAMILY: 'Courier New'"&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;appSettings&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;file&lt;/span&gt;&lt;span style="COLOR: blue"&gt;="user.config"&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&lt;span style="COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;add&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;key&lt;/span&gt;&lt;span style="COLOR: blue"&gt;="FCKeditor:UserFilesPath"&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;="/userfiles"&lt;/span&gt;&lt;span style="COLOR: fuchsia"&gt; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;appSettings&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
Note that the path must start with a forward slash “/” and not a “~/”.
&lt;/p&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,c888988b-cd49-4f8d-9804-7866aeaf0d8d.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=6183d745-cf31-4b73-8132-02e2f968de7d</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,6183d745-cf31-4b73-8132-02e2f968de7d.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,6183d745-cf31-4b73-8132-02e2f968de7d.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=6183d745-cf31-4b73-8132-02e2f968de7d</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
Free ASP.NET hosting for Christians… Does it get any better than this?
</p>
          <p class="MsoNormal">
http://www.christianasp.net/Hosting.aspx
</p>
        </div>
      </body>
      <title>Christian ASP.NET Web Hosting</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,6183d745-cf31-4b73-8132-02e2f968de7d.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/11/08/ChristianASPNETWebHosting.aspx</link>
      <pubDate>Tue, 08 Nov 2005 20:34:41 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
Free ASP.NET hosting for Christians&amp;#8230; Does it get any better than this?
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
http://www.christianasp.net/Hosting.aspx
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,6183d745-cf31-4b73-8132-02e2f968de7d.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=960931d2-72e2-48bf-a022-fa3b92fa3b9f</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,960931d2-72e2-48bf-a022-fa3b92fa3b9f.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,960931d2-72e2-48bf-a022-fa3b92fa3b9f.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=960931d2-72e2-48bf-a022-fa3b92fa3b9f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
Although this type of toolbar has been around for a long time for the FireFox browser,
the <a href="http://blogs.msdn.com/ie/archive/2005/11/01/487833.aspx">IE Team</a> at
Microsoft has finally gotten around to creating a <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e59c3964-672d-4511-bb3e-2d5e1db91038&amp;displaylang=en">Developer
Toolbar</a> add-in for IE.
</p>
        </div>
      </body>
      <title>Microsoft Internet Explorer Developer Toolbar</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,960931d2-72e2-48bf-a022-fa3b92fa3b9f.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/11/08/MicrosoftInternetExplorerDeveloperToolbar.aspx</link>
      <pubDate>Tue, 08 Nov 2005 17:40:00 GMT</pubDate>
      <description>

&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
Although this type of toolbar has been around for a long time for the FireFox browser,
the &lt;a href="http://blogs.msdn.com/ie/archive/2005/11/01/487833.aspx"&gt;IE Team&lt;/a&gt; at
Microsoft has finally gotten around to creating a &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e59c3964-672d-4511-bb3e-2d5e1db91038&amp;amp;displaylang=en"&gt;Developer
Toolbar&lt;/a&gt; add-in for IE.
&lt;/p&gt;
&lt;/div&gt;

</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,960931d2-72e2-48bf-a022-fa3b92fa3b9f.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=ac63dbdf-b428-4f8e-8905-33f81eb32607</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,ac63dbdf-b428-4f8e-8905-33f81eb32607.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,ac63dbdf-b428-4f8e-8905-33f81eb32607.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=ac63dbdf-b428-4f8e-8905-33f81eb32607</wfw:commentRss>
      <title>Comparing Dates and Time</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,ac63dbdf-b428-4f8e-8905-33f81eb32607.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/11/02/ComparingDatesAndTime.aspx</link>
      <pubDate>Wed, 02 Nov 2005 20:53:15 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
Sample comparing two dates:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;Dim&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; t1 &lt;/span&gt;&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;As&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;String&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;=&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; DateTime.Parse("3:30
PM").ToString("t") 
&lt;br&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;Dim&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; t2 &lt;/span&gt;&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;As&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;String&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;=&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; DateTime.Now.ToString("t") 
&lt;br&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;If&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; DateTime.Compare(DateTime.Parse(t1),
DateTime.Parse(t2)) &amp;lt; 0 &lt;/span&gt;&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;Then&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&lt;br&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;Response&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;Write&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;(t1.ToString()
&amp;amp; " is &amp;lt; than " &amp;amp; t2.ToString()) 
&lt;br&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;Else&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&lt;br&gt;
&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;Response&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;Write&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;(t1.ToString()
&amp;amp; " is &amp;gt; than " &amp;amp; t2.ToString())&lt;br&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue; FONT-FAMILY: 'Courier New'" ?&gt;End
If&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Sample comparing two moments in time:
&lt;/p&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue"&gt;Dim&lt;/span&gt; adate &lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue"&gt;As&lt;/span&gt; DateTime &lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: red"&gt;=&lt;/span&gt; DateTime.Parse("06/24/2003") 
&lt;br&gt;
&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue"&gt;Dim&lt;/span&gt; bdate &lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue"&gt;As&lt;/span&gt; DateTime &lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: red"&gt;=&lt;/span&gt; DateTime.Parse("06/28/2003") 
&lt;br&gt;
&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue"&gt;Dim&lt;/span&gt; ts &lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue"&gt;As&lt;/span&gt; &lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue"&gt;New&lt;/span&gt; TimeSpan(bdate.Ticks &lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: red"&gt;-&lt;/span&gt; adate.Ticks) 
&lt;br&gt;
&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue"&gt;Response&lt;/span&gt;.&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue"&gt;Write&lt;/span&gt;(ts.TotalDays
&amp;amp; "&amp;lt;br&amp;gt;") 
&lt;br&gt;
&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue"&gt;Response&lt;/span&gt;.&lt;span style="FONT-SIZE: 8.5pt; BACKGROUND: white; COLOR: blue"&gt;Write&lt;/span&gt;(ts.TotalHours
&amp;amp; ":" &amp;amp; ts.TotalMinutes &amp;amp; _&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ":" &amp;amp; ts.TotalSeconds &amp;amp; ":" &amp;amp;
ts.TotalMilliseconds)&amp;nbsp; &lt;/pre&gt;
&lt;/div&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,ac63dbdf-b428-4f8e-8905-33f81eb32607.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=962b8138-78f9-4692-9beb-ff9f7fef99fb</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,962b8138-78f9-4692-9beb-ff9f7fef99fb.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,962b8138-78f9-4692-9beb-ff9f7fef99fb.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=962b8138-78f9-4692-9beb-ff9f7fef99fb</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p>
When using a GridView in ASP.NET 2.0, note that you must set <b><span style="FONT-FAMILY: 'Courier New'">HtmlEncode</span></b> =
False in addition to setting the <b><span style="FONT-FAMILY: 'Courier New'">DataFormatString</span></b> or
else the formatting will not work:
</p>
          <p>
            <img title="GridView Field Edit Screen" height="369" alt="image0011.png" src="http://blog.toddtaylor.com/content/binary/image0011.png" width="462" border="0" />
          </p>
        </div>
      </body>
      <title>DataFormatString in GridView Does Not Honor Formatting</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,962b8138-78f9-4692-9beb-ff9f7fef99fb.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/10/30/DataFormatStringInGridViewDoesNotHonorFormatting.aspx</link>
      <pubDate>Sun, 30 Oct 2005 05:01:10 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p&gt;
When using a GridView in ASP.NET 2.0, note that you must set &lt;b&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;HtmlEncode&lt;/span&gt;&lt;/b&gt; =
False in addition to setting the &lt;b&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;DataFormatString&lt;/span&gt;&lt;/b&gt; or
else the formatting will not work:
&lt;/p&gt;
&lt;p&gt;
&lt;img title="GridView Field Edit Screen" height=369 alt=image0011.png src="http://blog.toddtaylor.com/content/binary/image0011.png" width=462 border=0&gt;
&lt;/p&gt;
&lt;/div&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,962b8138-78f9-4692-9beb-ff9f7fef99fb.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=5d76b29e-0227-44c6-8c65-858a8458cbb1</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,5d76b29e-0227-44c6-8c65-858a8458cbb1.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,5d76b29e-0227-44c6-8c65-858a8458cbb1.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=5d76b29e-0227-44c6-8c65-858a8458cbb1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Because of the cost and portability, I had a tendency to use Microsoft Access databases
as the back-end for many of my web sites.  Microsoft recently released Visual
Studio 2005 which includes SQL Express 2005.  SQL Express is designed to be used
in-place of Access for low volume web sites.
</p>
        <p>
With this in-mind, my first thought was, “How to I upsize my Access 2000 databases
to SQL Express 2005?”  It’s surprisingly easy.
</p>
        <h3>How to Upsize an Access 2000 Database to an SQL Express 2005 Database
</h3>
        <div class="Section1">1. Open the Access database you wish to up-size. 
</div>
        <div class="Section1"> 
</div>
        <div class="Section1">2. Select <b><span style="FONT-FAMILY: 'Courier New'">Tools
&gt; Database Utilities &gt; Upsizing Wizard</span></b></div>
        <b>
          <span style="FONT-FAMILY: 'Courier New'">
          </span>
        </b>
        <div class="Section1">
          <br />
          <img height="354" src="http://blog.toddtaylor.com/content/binary/image001.png" width="486" />
          <br />
          <br />
3. Select <b><span style="FONT-FAMILY: 'Courier New'">Create new database</span></b> and
then <b><span style="FONT-FAMILY: 'Courier New'">Next &gt;</span></b></div>
        <div class="Section1"> 
</div>
        <div class="Section1">4. This is probably the hardest part.  The instance of
your SQL Express database won’t show-up in the database dropdown list.   For
the name of your SQL Server, enter <b><span style="FONT-FAMILY: 'Courier New'">MACHINENAME\SQLExpress</span></b> or <b><span style="FONT-FAMILY: 'Courier New'">.\SQLExpress</span></b>. 
The former worked for me:<br /><br /><img height="354" src="http://blog.toddtaylor.com/content/binary/image002.png" width="486" /><br /><br />
5. Make sure you name the database, click Next &gt;, and the rest is the same as it’s
always been. 
</div>
        <p>
If you find that Access can’t connect to the SQL Express database, this FAQ might
be helpful:
</p>
        <p>
          <a href="http://blogs.msdn.com/sqlexpress/archive/2004/07/23/192044.aspx">FAQ: How
to connect to SQL Express from "downlevel clients"(Access 2003, VS 2003, VB 6, etc(basically
anything that is not using .Net 2.0 or the new SQL Native Client))</a>
        </p>
        <p>
You’ll also likely want to bookmark the <a href="http://blogs.msdn.com/sqlexpress/default.aspx">Microsoft
SQL Express Blog</a> to stay informed.
</p>
      </body>
      <title>Upsizing an Access 2000 Database to SQL Express 2005</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,5d76b29e-0227-44c6-8c65-858a8458cbb1.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/10/30/UpsizingAnAccess2000DatabaseToSQLExpress2005.aspx</link>
      <pubDate>Sun, 30 Oct 2005 03:15:06 GMT</pubDate>
      <description>&lt;p&gt;
Because of the cost and portability, I had a tendency to use Microsoft Access databases
as the back-end for many of my web sites. &amp;nbsp;Microsoft recently released Visual
Studio 2005 which includes SQL Express 2005.&amp;nbsp; SQL Express is designed to be used
in-place of Access for low volume web sites.
&lt;/p&gt;
&lt;p&gt;
With this in-mind, my first thought was, “How to I upsize my Access 2000 databases
to SQL Express 2005?”&amp;nbsp; It’s surprisingly easy.
&lt;/p&gt;
&lt;h3&gt;How to Upsize an Access 2000 Database to an SQL Express 2005 Database
&lt;/h3&gt;
&lt;div class=Section1&gt;1. Open the Access database you wish to up-size. 
&lt;/div&gt;
&lt;div class=Section1&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div class=Section1&gt;2. Select &lt;b&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;Tools &amp;gt;
Database Utilities &amp;gt; Upsizing Wizard&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;b&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;&lt;/span&gt;&lt;/b&gt; 
&lt;div class=Section1&gt;
&lt;br&gt;
&lt;img height=354 src="http://blog.toddtaylor.com/content/binary/image001.png" width=486&gt;
&lt;br&gt;
&lt;br&gt;
3. Select &lt;b&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;Create new database&lt;/span&gt;&lt;/b&gt; and
then &lt;b&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;Next &amp;gt;&lt;/span&gt;&lt;/b&gt; 
&lt;/div&gt;
&lt;div class=Section1&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div class=Section1&gt;4. This is probably the hardest part.&amp;nbsp; The instance of your
SQL Express database won’t show-up in the database dropdown list. &amp;nbsp;&amp;nbsp;For
the name of your SQL Server, enter &lt;b&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;MACHINENAME\SQLExpress&lt;/span&gt;&lt;/b&gt; or &lt;b&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;.\SQLExpress&lt;/span&gt;&lt;/b&gt;.&amp;nbsp;
The former worked for me:&lt;br&gt;
&lt;br&gt;
&lt;img height=354 src="http://blog.toddtaylor.com/content/binary/image002.png" width=486&gt;
&lt;br&gt;
&lt;br&gt;
5. Make sure you name the database, click Next &amp;gt;, and the rest is the same as it’s
always been. 
&lt;/div&gt;
&lt;p&gt;
If you find that Access can’t connect to the SQL Express database, this FAQ might
be helpful:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.msdn.com/sqlexpress/archive/2004/07/23/192044.aspx"&gt;FAQ: How
to connect to SQL Express from "downlevel clients"(Access 2003, VS 2003, VB 6, etc(basically
anything that is not using .Net 2.0 or the new SQL Native Client))&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
You’ll also likely want to bookmark the &lt;a href="http://blogs.msdn.com/sqlexpress/default.aspx"&gt;Microsoft
SQL Express Blog&lt;/a&gt; to stay informed.
&lt;/p&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,5d76b29e-0227-44c6-8c65-858a8458cbb1.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=d9e4efe5-a35e-41a6-af8d-3858291bebe7</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,d9e4efe5-a35e-41a6-af8d-3858291bebe7.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,d9e4efe5-a35e-41a6-af8d-3858291bebe7.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=d9e4efe5-a35e-41a6-af8d-3858291bebe7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p class="MsoNormal">
I recently spent a considerable amount of time converting a client site from not following
any particular standard to using the XHTML 1.0 Transitional standard.  This was
a difficult task since the site was created with VisualStudio.NET 2003 which doesn’t
care much about standards!  As a result, I spent most of my time designing pages
in Macromedia Dreamweaver MX and doing the code in VS.NET (Can you say, “pain-in-the-butt”?)
</p>
        <p class="MsoNormal">
In converting this site to XHTML, I learned <b>a lot</b> about CSS and the benefits
of separating HTML from styles… so much that I have no real desire to go back to the
old sloppy way of coding.<br />
With the release of VisualStudio.NET 2005, one of the great features of this new tool
is that it creates XHTML 1.0 Transitional code <u>by default</u>!  This doesn’t
necessarily mean that I can through Dreamweaver out the window, but at least I can
open my HTML and ASPX pages up in VS.NET and know it isn’t going to re-write and mangle
my code.
</p>
        <p class="MsoNormal">
The following article from the Microsoft ASP.NET Developer Center is very helpful
in explaining the new features of VS.NET 2005 in regards to web standards:
</p>
        <p class="MsoNormal">
          <a href="http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnaspp/html/aspnetusstan.asp">Building
ASP.NET 2.0 Web Sites Using Web Standards</a>
        </p>
        <p class="MsoNormal">
If XHTML Transitional isn't good enough and XHTML Strinct is preferred... no problem! 
Add the following in your project's web.config file:
</p>
        <code>
          <CONFIGURATION>
            <SYSTEM.WEB>
              <!--
            <xhtmlConformance mode = "Transitional" [Transitional | Legacy | Strict] />
        -->
              <XHTMLCONFORMANCE mode="Strict" />
            </SYSTEM.WEB>
          </CONFIGURATION>
        </code>Note that in addition to changing the runtime behavior to be strict, you can
also then change the validation drop-down in the VS toolbar to validate html/javascript
against XHTML strict as well.</body>
      <title>Building ASP.NET 2.0 Web Sites Using Web Standards</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,d9e4efe5-a35e-41a6-af8d-3858291bebe7.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/10/28/BuildingASPNET20WebSitesUsingWebStandards.aspx</link>
      <pubDate>Fri, 28 Oct 2005 19:49:44 GMT</pubDate>
      <description>&lt;p class=MsoNormal&gt;
I recently spent a considerable amount of time converting a client site from not following
any particular standard to using the XHTML 1.0 Transitional standard.&amp;nbsp; This was
a difficult task since the site was created with VisualStudio.NET 2003 which doesn’t
care much about standards!&amp;nbsp; As a result, I spent most of my time designing pages
in Macromedia Dreamweaver MX and doing the code in VS.NET (Can you say, “pain-in-the-butt”?)
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
In converting this site to XHTML, I learned &lt;b&gt;a lot&lt;/b&gt; about CSS and the benefits
of separating HTML from styles… so much that I have no real desire to go back to the
old sloppy way of coding.&lt;br&gt;
With the release of VisualStudio.NET 2005, one of the great features of this new tool
is that it creates XHTML 1.0 Transitional code &lt;u&gt;by default&lt;/u&gt;!&amp;nbsp; This doesn’t
necessarily mean that I can through Dreamweaver out the window, but at least I can
open my HTML and ASPX pages up in VS.NET and know it isn’t going to re-write and mangle
my code.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
The following article from the Microsoft ASP.NET Developer Center is very helpful
in explaining the new features of VS.NET 2005 in regards to web standards:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;a href="http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnaspp/html/aspnetusstan.asp"&gt;Building
ASP.NET 2.0 Web Sites Using Web Standards&lt;/a&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
If XHTML Transitional isn't good enough and XHTML Strinct is preferred... no problem!&amp;nbsp;
Add the following in your project's web.config file:
&lt;/p&gt;
&lt;code&gt;
&lt;CONFIGURATION&gt;
&lt;SYSTEM.WEB&gt;
&lt;!--
            &lt;xhtmlConformance mode = "Transitional" [Transitional | Legacy | Strict] /&gt;
        --&gt;
&lt;XHTMLCONFORMANCE mode="Strict" /&gt;
&lt;/SYSTEM.WEB&gt;
&lt;/CONFIGURATION&gt;
&lt;/code&gt;Note that in addition to changing the runtime behavior to be strict, you can also then change the validation drop-down in the VS toolbar to validate html/javascript against XHTML strict as well.</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,d9e4efe5-a35e-41a6-af8d-3858291bebe7.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=466c4af8-4299-4dde-b92e-268bd492d76f</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,466c4af8-4299-4dde-b92e-268bd492d76f.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,466c4af8-4299-4dde-b92e-268bd492d76f.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=466c4af8-4299-4dde-b92e-268bd492d76f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
The more articles I read about VisualStudio.NET 2005, the more excited I get! 
This article from Scott Guthrie explains how to use the new Custom Item Template feature
in VS.NET 2005 which will help eliminate the need to waste time “setting-up” a newly
created page ASPX page:
</p>
          <p class="MsoNormal">
            <a href="http://weblogs.asp.net/scottgu/archive/2005/09/09/424780.aspx">Defining Custom
Item Templates in Web Projects with VS 2005</a>
          </p>
          <p class="MsoNormal">
A helpful MSDN article relating to the templates:
</p>
          <p class="MsoNormal">
            <a href="http://msdn2.microsoft.com/en-us/library/ms247064(en-US,VS.80).aspx">MSDN:
Visual Studio Template Reference</a>
          </p>
        </div>
      </body>
      <title>Defining Custom Item Templates in Web Projects with VS 2005</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,466c4af8-4299-4dde-b92e-268bd492d76f.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/10/28/DefiningCustomItemTemplatesInWebProjectsWithVS2005.aspx</link>
      <pubDate>Fri, 28 Oct 2005 19:35:34 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
The more articles I read about VisualStudio.NET 2005, the more excited I get!&amp;nbsp;
This article from Scott Guthrie explains how to use the new Custom Item Template feature
in VS.NET 2005 which will help eliminate the need to waste time “setting-up” a newly
created page ASPX page:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2005/09/09/424780.aspx"&gt;Defining Custom
Item Templates in Web Projects with VS 2005&lt;/a&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
A&amp;nbsp;helpful MSDN article relating to the templates:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/ms247064(en-US,VS.80).aspx"&gt;MSDN:
Visual Studio Template Reference&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,466c4af8-4299-4dde-b92e-268bd492d76f.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=ef3c72f1-c81d-443d-9108-8efb6079aa4a</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,ef3c72f1-c81d-443d-9108-8efb6079aa4a.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,ef3c72f1-c81d-443d-9108-8efb6079aa4a.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=ef3c72f1-c81d-443d-9108-8efb6079aa4a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <fieldset>
          <legend>From Scott Guthrie's blog:</legend>
          <code>Basically, if you place a file with
this name in the root of a web application directory, ASP.NET 2.0 will shut-down the
application, unload the application domain from the server, and stop processing any
new incoming requests for that application.  ASP.NET will also then respond to
all requests for dynamic pages in the application by sending back the content of the
app offline.htm file (for example: you might want to have a “site under construction”
or “down for maintenance” message). 
<p>
This provides a convenient way to take down your application while you are making
big changes or copying in lots of new page functionality (and you want to avoid the
annoying problem of people hitting and activating your site in the middle of a content
update).  It can also be a useful way to immediately unlock and unload a SQL
Express or Access database whose .mdf or .mdb data files are residing in the /app
data directory.
</p><p>
Once you remove the app offline.htm file, the next request into the application will
cause ASP.NET to load the application and app-domain again, and life will continue
along as normal.
</p></code>
        </fieldset>
      </body>
      <title>Taking an ASP.NET 2.0 Web Site Offline With App_Offline.htm</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,ef3c72f1-c81d-443d-9108-8efb6079aa4a.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/10/28/TakingAnASPNET20WebSiteOfflineWithAppOfflinehtm.aspx</link>
      <pubDate>Fri, 28 Oct 2005 18:56:15 GMT</pubDate>
      <description>&lt;fieldset&gt;
&lt;legend&gt;From Scott Guthrie's blog:&lt;/legend&gt;&lt;code&gt;Basically, if you place a file with
this name in the root of a web application directory, ASP.NET 2.0 will shut-down the
application, unload the application domain from the server, and stop processing any
new incoming requests for that application.&amp;nbsp; ASP.NET will also then respond to
all requests for dynamic pages in the application by sending back the content of the
app offline.htm file (for example: you might want to have a “site under construction”
or “down for maintenance” message). 
&lt;p&gt;
This provides a convenient way to take down your application while you are making
big changes or copying in lots of new page functionality (and you want to avoid the
annoying problem of people hitting and activating your site in the middle of a content
update).&amp;nbsp; It can also be a useful way to immediately unlock and unload a SQL
Express or Access database whose .mdf or .mdb data files are residing in the /app
data directory.
&lt;/p&gt;
&lt;p&gt;
Once you remove the app offline.htm file, the next request into the application will
cause ASP.NET to load the application and app-domain again, and life will continue
along as normal.
&lt;/fieldset&gt;
&gt;
&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,ef3c72f1-c81d-443d-9108-8efb6079aa4a.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://blog.toddtaylor.com/Trackback.aspx?guid=9cd3ee49-a3e1-47cd-b1ad-cc6479fca218</trackback:ping>
      <pingback:server>http://blog.toddtaylor.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.toddtaylor.com/PermaLink,guid,9cd3ee49-a3e1-47cd-b1ad-cc6479fca218.aspx</pingback:target>
      <dc:creator>Todd M. Taylor</dc:creator>
      <wfw:comment>http://blog.toddtaylor.com/CommentView,guid,9cd3ee49-a3e1-47cd-b1ad-cc6479fca218.aspx</wfw:comment>
      <wfw:commentRss>http://blog.toddtaylor.com/SyndicationService.asmx/GetEntryCommentsRss?guid=9cd3ee49-a3e1-47cd-b1ad-cc6479fca218</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="Section1">
          <p class="MsoNormal">
I’m not sure if it’s a sign of getting old or just my personality type, but I like
things to be organized… and that includes the files in my web projects.  Lucky
for me, ASP.NET Grand-Pubba Scott Guthrie has written a nice article demonstrating
ways to clean-up and organize your web projects in VisualStudio.NET 2005:
</p>
          <p class="MsoNormal">
            <a href="http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnaspp/html/VS05WebFiles.asp">Some
Techniques for Better Managing Files in Visual Studio 2005 Web Projects</a>
          </p>
        </div>
      </body>
      <title>Managing Files in Visual Studio 2005 Web Projects</title>
      <guid isPermaLink="false">http://blog.toddtaylor.com/PermaLink,guid,9cd3ee49-a3e1-47cd-b1ad-cc6479fca218.aspx</guid>
      <link>http://blog.toddtaylor.com/2005/10/28/ManagingFilesInVisualStudio2005WebProjects.aspx</link>
      <pubDate>Fri, 28 Oct 2005 18:03:34 GMT</pubDate>
      <description>&lt;div class=Section1&gt;
&lt;p class=MsoNormal&gt;
I’m not sure if it’s a sign of getting old or just my personality type, but I like
things to be organized… and that includes the files in my web projects.&amp;nbsp; Lucky
for me, ASP.NET Grand-Pubba Scott Guthrie has written a nice article demonstrating
ways to clean-up and organize your web projects in VisualStudio.NET 2005:
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;a href="http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnaspp/html/VS05WebFiles.asp"&gt;Some
Techniques for Better Managing Files in Visual Studio 2005 Web Projects&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;</description>
      <comments>http://blog.toddtaylor.com/CommentView,guid,9cd3ee49-a3e1-47cd-b1ad-cc6479fca218.aspx</comments>
      <category>ASP.NET</category>
    </item>
  </channel>
</rss>