<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Journey of a Software Developer</title>
	<atom:link href="http://www.tyronedavisjr.com/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tyronedavisjr.com</link>
	<description>HTML &#124; CSS &#124; JavaScript &#124; ASP.NET &#124; PHP &#124; C# &#124; Java &#124; VB.NET &#124; MS SQL &#124; MySQL &#124; Flash</description>
	<pubDate>Sat, 28 Jun 2008 23:53:47 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>What I have been up to lately&#8230;</title>
		<link>http://www.tyronedavisjr.com/index.php/2008/06/28/what-i-have-been-up-to-lately/</link>
		<comments>http://www.tyronedavisjr.com/index.php/2008/06/28/what-i-have-been-up-to-lately/#comments</comments>
		<pubDate>Sat, 28 Jun 2008 23:53:47 +0000</pubDate>
		<dc:creator>Tyrone</dc:creator>
		
		<category><![CDATA[Basic Stamp]]></category>

		<category><![CDATA[Electronics]]></category>

		<category><![CDATA[Microcontrollers]]></category>

		<guid isPermaLink="false">http://www.tyronedavisjr.com/index.php/2008/06/28/what-i-have-been-up-to-lately/</guid>
		<description><![CDATA[
 
&#160;
What is this? It’s a Basic Stamp&#160;Microcontroller board that is manufactured by Parallax, Inc.&#160; Some of you may not know; but I originally got started with Programming as a Electronics Engineering student in college. Electronics was my first love.&#160; However, when I graduated the market demands were for programmers and not electronic engineers so [...]]]></description>
			<content:encoded><![CDATA[</p>
<p><a href="http://www.tyronedavisjr.com/wp-content/2008/06/board-homework-bread.jpg"><img title="board_homework_bread" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="199" alt="board_homework_bread" src="http://www.tyronedavisjr.com/wp-content/2008/06/board-homework-bread-thumb.jpg" width="244" border="0" /></a> </p>
<p>&#160;</p>
<p>What is this? It’s a <a href="http://en.wikipedia.org/wiki/BASIC_Stamp" target="_blank">Basic Stamp</a>&#160;<a href="http://en.wikipedia.org/wiki/Microcontroller" target="_blank">Microcontroller</a> board that is manufactured by <a href="http://www.parallax.com/" target="_blank">Parallax, Inc.</a>&#160; Some of you may not know; but I originally got started with Programming as a Electronics Engineering student in college. Electronics was my first love.&#160; However, when I graduated the market demands were for programmers and not electronic engineers so I decided to go where the demands were. This was over&#160; 6 years ago and I pretty much forgot everything, so I figured I would re-teach myself the basics of electronics and learn how to program microcontrollers in the process. I did have some experience programming the <a href="http://en.wikipedia.org/wiki/Motorola_68000" target="_blank">Motorola 68000</a> which were found in the early Apple computers. But, I wanted something that was a little easier to set up and have a better programming environment. The 68000 chip had to be programmed using <a href="http://en.wikipedia.org/wiki/Assembly_language" target="_blank">Assembly Language</a> and a EEPROM programmer. But of course, I didn’t want to go back to using Assembly Language after writing C# for all these years. To program the <a href="http://en.wikipedia.org/wiki/BASIC_Stamp" target="_blank">Basic Stamp</a> all you need is a PC and a serial port. I do have to learn a new language called <a href="http://en.wikipedia.org/wiki/PBASIC" target="_blank">PBASIC</a>, which looks as feel a lot like the original BASIC language. To start of with, I would advise anyone to purchase the <a href="http://www.parallax.com/Store/Microcontrollers/BASICStampProgrammingKits/tabid/136/ProductID/313/List/1/Default.aspx?SortField=ProductName,ProductName" target="_blank">Basic Stamp Activity Kit</a> as it includes everything (except the 9V battery) you need to get started with.&#160; The documentation is very easy to read and they have a great <a href="http://forums.parallax.com/forums/default.aspx?f=5" target="_blank">forum</a> you can use to post any questions that you may have.</p>
<p>In my next post, I would like to have at least 1 project completed and I will take some pictures of the circuit board layout and post the code for you to see how easy it is. Obviously, the more complex circuit you have, the more code you have to write. So, I will start off with something simple.&#160; Hopefully, this post has inspired you to start a new adventure in any area of your life. This is one adventure that I hope I can keep up with until something else comes along :-).&#160; Until next time…</p>
<p>&#160;</p>
<p>Happy Coding!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tyronedavisjr.com/index.php/2008/06/28/what-i-have-been-up-to-lately/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ASP.NET and Password TextBox with initial value</title>
		<link>http://www.tyronedavisjr.com/index.php/2008/05/23/aspnet-and-password-textbox-with-initial-value/</link>
		<comments>http://www.tyronedavisjr.com/index.php/2008/05/23/aspnet-and-password-textbox-with-initial-value/#comments</comments>
		<pubDate>Fri, 23 May 2008 14:54:31 +0000</pubDate>
		<dc:creator>Tyrone</dc:creator>
		
		<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">http://www.tyronedavisjr.com/index.php/2008/05/23/aspnet-and-password-textbox-with-initial-value/</guid>
		<description><![CDATA[Some asked me a question the other day about an issue they were experiencing with pre-loading a password text box with some initial text. Here is what their code looked like:
ASPX
&#60;asp:TextBox id=&#34;txtPassword&#34; runat=&#34;server&#34; TextMode=&#34;Password&#34; /&#62;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; [...]]]></description>
			<content:encoded><![CDATA[<p>Some asked me a question the other day about an issue they were experiencing with pre-loading a password text box with some initial text. Here is what their code looked like:</p>
<p>ASPX</p>
<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">asp:TextBox</span> <span class="attr">id</span><span class="kwrd">=&quot;txtPassword&quot;</span> <span class="attr">runat</span><span class="kwrd">=&quot;server&quot;</span> <span class="attr">TextMode</span><span class="kwrd">=&quot;Password&quot;</span> <span class="kwrd">/&gt;</span></pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<p>Code-Behind</p>
<pre class="csharpcode">txtPassword.Text = <span class="str">&quot;mypassword&quot;</span>;</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<p>But, when the page loaded, there was no value contained in the password text box. So, what&#8217;s the issue? Apparently, this is a restriction that the ASP.NET developers thought that should be in place due to security reasons. However, a workaround for this is to add the value to the attributes collection of the web server control:</p>
<pre class="csharpcode">txtPassword.Attributes.Add(<span class="str">&quot;value&quot;</span>, <span class="str">&quot;mypassword&quot;</span>);</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<p>Doing this would cause the Value attribute of the &lt;input type=&quot;password&quot;&gt; HTML control to be populated. So, here is what will be sent to the browser for rendering:</p>
<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">input</span> <span class="attr">type</span><span class="kwrd">=&quot;password&quot;</span> <span class="attr">id</span><span class="kwrd">=&quot;txtPassword&quot;</span> <span class="attr">name</span><span class="kwrd">=&quot;txtPassword&quot;</span> <span class="attr">value</span><span class="kwrd">=&quot;mypassword&quot;</span> <span class="kwrd">/&gt;</span></pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<p>It should be noted that even though the value of the password will be masked in the browser, the value will show up in clear text if you view the page source. So, if this is not the behavior you would like to have, then this is not the solution for you. Hopefully, this was of some help to you. </p>
<p>Until next time&#8230;</p>
<p>&#160;</p>
<p>Happy Coding!</p>
<p>&#160;</p>
</p>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
]]></content:encoded>
			<wfw:commentRss>http://www.tyronedavisjr.com/index.php/2008/05/23/aspnet-and-password-textbox-with-initial-value/feed/</wfw:commentRss>
		</item>
		<item>
		<title>My Experience with Visual Studio 2008 Remote Debugging</title>
		<link>http://www.tyronedavisjr.com/index.php/2008/04/14/my-experience-with-visual-studio-2008-remote-debugging/</link>
		<comments>http://www.tyronedavisjr.com/index.php/2008/04/14/my-experience-with-visual-studio-2008-remote-debugging/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 04:16:37 +0000</pubDate>
		<dc:creator>Tyrone</dc:creator>
		
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.tyronedavisjr.com/index.php/2008/04/14/my-experience-with-visual-studio-2008-remote-debugging/</guid>
		<description><![CDATA[Surprisingly, it&#8217;s been quite pleasant.&#160; I have tried Remote Debugging with VS.NET 2003, and I didn&#8217;t have much luck with it. However, last week there was a scenario where I desperately needed it and given that we have upgraded to VS 2008, I thought I should give it another try. There is two steps I [...]]]></description>
			<content:encoded><![CDATA[<p>Surprisingly, it&#8217;s been quite pleasant.&#160; I have tried Remote Debugging with VS.NET 2003, and I didn&#8217;t have much luck with it. However, last week there was a scenario where I desperately needed it and given that we have upgraded to VS 2008, I thought I should give it another try. There is two steps I had to perform to get this to work correctly:</p>
<ol>
<li>Configure your client machine using the Remote Debugger Configuration Wizard. </li>
<li>Copy the Remote Debugger server components to the remote machine </li>
</ol>
<p>That&#8217;s it.&#160; Ok. I didn&#8217;t give you much here, so here is some more detail.</p>
<p>To run the Remote Debugger Configuration Wizard go to:</p>
<p>Start -&gt; Program -&gt; Microsoft Visual Studio 2008 -&gt; Visual Studio Tools -&gt; Visual Studio 2008 Remote Debugger Configuration Wizard</p>
<p>The wizard will begin and you will be brought to this screen:</p>
<p><a href="http://www.tyronedavisjr.com/wp-content/2008/04/image4.png"></a></p>
<p><a href="http://www.tyronedavisjr.com/wp-content/2008/04/image5.png"><img style="border-right: 0px; border-top: 0px; vertical-align: text-bottom; border-left: 0px; border-bottom: 0px" height="285" alt="" src="http://www.tyronedavisjr.com/wp-content/2008/04/image-thumb4.png" width="302" border="0" /></a></p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>This screen is basically asking if you want to run the remote debugger as a Windows Service. For me, I didn&#8217;t check the box to run as a service and it&#8217;s probably not even necessary. There is nothing much else to do but to click Next until the wizard completes. At the end it will tell you that all the necessary ports (most likely TCP) were opened and ready to connect to remote machines.</p>
<p>To run the server components on the remote machine, you need to copy the contents of this folder to the remote machine.</p>
<p>C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x86</p>
<p>Once copied to the remote machine you will just have to run the msvsmon.exe program. The main window would look like this when it&#8217;s ready to accept incoming connections:</p>
<p><a href="http://www.tyronedavisjr.com/wp-content/2008/04/image1.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="135" alt="image" src="http://www.tyronedavisjr.com/wp-content/2008/04/image-thumb1.png" width="387" border="0" /></a></p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>Play close attention to the server name listed in the entry. This is the name you will need to enter into the Qualifier field in the Debug -&gt; Attach to Process screen inside Visual Studio when you want to begin the debugging process.</p>
<p><a href="http://www.tyronedavisjr.com/wp-content/2008/04/image2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="246" alt="image" src="http://www.tyronedavisjr.com/wp-content/2008/04/image-thumb2.png" width="354" border="0" /></a></p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>Remember to set your breakpoint first and attach to the process you want on the remote machine. The process you will want to debug should be listed in the Available Processes list.</p>
<p>One thing to watch out for is that in my setup, my username and password on my client machine and my remote machine were kept in sync. This way I don&#8217;t run into any unexpected access/permissions issues when connecting to the remote machine. I would also note that I was an Administrator on both machines so this would rule out any permission issues.</p>
<p>Let me know if you found this helpful. I do appreciate how the Visual Studio tools team simplified this process to it is as easy as following the 2 steps I listed above.</p>
<p>Until next time&#8230;</p>
<p>Happy coding!</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.tyronedavisjr.com%2findex.php%2f2008%2f04%2f14%2fmy-experience-with-visual-studio-2008-remote-debugging%2f"><img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.tyronedavisjr.com%2findex.php%2f2008%2f04%2f14%2fmy-experience-with-visual-studio-2008-remote-debugging%2f" border="0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tyronedavisjr.com/index.php/2008/04/14/my-experience-with-visual-studio-2008-remote-debugging/feed/</wfw:commentRss>
		</item>
		<item>
		<title>I&#8217;m Back!!</title>
		<link>http://www.tyronedavisjr.com/index.php/2008/03/22/im-back/</link>
		<comments>http://www.tyronedavisjr.com/index.php/2008/03/22/im-back/#comments</comments>
		<pubDate>Sat, 22 Mar 2008 14:14:27 +0000</pubDate>
		<dc:creator>Tyrone</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.tyronedavisjr.com/index.php/2008/03/22/im-back/</guid>
		<description><![CDATA[So, based on my last post you could probably tell that I&#8217;ve been quite busy lately. It&#8217;s been over 2 months now and Keira is doing wonderful. She just got her shots yesterday and now we could start taking her out a few places. Having said that, I have plans to begin posting again at [...]]]></description>
			<content:encoded><![CDATA[<p>So, based on my last post you could probably tell that I&#8217;ve been quite busy lately. It&#8217;s been over 2 months now and Keira is doing wonderful. She just got her shots yesterday and now we could start taking her out a few places. Having said that, I have plans to begin posting again at least once a week. I apologize for that long, long commercial break; but it was necessary and worth it.&#160; Here is the most recent photo of her. She is now 9 lbs 4oz and looking beautiful.</p>
<p>&#160;</p>
<p><a href="http://www.tyronedavisjr.com/wp-content/2008/03/keira-2-months.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="282" alt="Keira_2_Months" src="http://www.tyronedavisjr.com/wp-content/2008/03/keira-2-months-thumb.jpg" width="375" border="0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tyronedavisjr.com/index.php/2008/03/22/im-back/feed/</wfw:commentRss>
		</item>
		<item>
		<title>We interrupt your regular schedule programming to introduce&#8230;</title>
		<link>http://www.tyronedavisjr.com/index.php/2008/01/20/we-interrupt-your-regular-schedule-programming-to-introduce/</link>
		<comments>http://www.tyronedavisjr.com/index.php/2008/01/20/we-interrupt-your-regular-schedule-programming-to-introduce/#comments</comments>
		<pubDate>Sun, 20 Jan 2008 23:42:25 +0000</pubDate>
		<dc:creator>Tyrone</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.tyronedavisjr.com/index.php/2008/01/20/we-interrupt-your-regular-schedule-programming-to-introduce/</guid>
		<description><![CDATA[





Name: Keira Cheyenne Davis
Born:  1/18/2008 @ 10:42am
Size:   4lbs. 10oz. 18 in.



Wow! Isn&#8217;t she beautiful!
]]></description>
			<content:encoded><![CDATA[<table border="0" width="500" cellPadding="2" cellSpacing="0">
<tr>
<td width="500" vAlign="top"><a href="http://www.tyronedavisjr.com/wp-content/2008/01/p1180026-small.jpg"><img border="0" width="244" src="http://www.tyronedavisjr.com/wp-content/2008/01/p1180026-small-thumb.jpg" alt="P1180026_SMALL" height="220" style="border: 0px" /></p>
<p></a><a href="http://www.tyronedavisjr.com/wp-content/2008/01/p1180029.jpg"><img border="0" width="184" src="http://www.tyronedavisjr.com/wp-content/2008/01/p1180029-thumb.jpg" alt="P1180029" height="244" style="border: 0px" /></a></td>
</tr>
<tr>
<td width="500" vAlign="top"><font size="4">Name: Keira Cheyenne Davis<br />
Born:  1/18/2008 @ 10:42am<br />
Size:   4lbs. 10oz. 18 in.</p>
<p></font></td>
</tr>
</table>
<p><font size="4">Wow! Isn&#8217;t she beautiful!</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tyronedavisjr.com/index.php/2008/01/20/we-interrupt-your-regular-schedule-programming-to-introduce/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Feature: Organize using statements with VS 2008</title>
		<link>http://www.tyronedavisjr.com/index.php/2008/01/15/new-feature-organize-using-statements-with-vs-2008/</link>
		<comments>http://www.tyronedavisjr.com/index.php/2008/01/15/new-feature-organize-using-statements-with-vs-2008/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 19:21:11 +0000</pubDate>
		<dc:creator>Tyrone</dc:creator>
		
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.tyronedavisjr.com/index.php/2008/01/15/new-feature-organize-using-statements-with-vs-2008/</guid>
		<description><![CDATA[Wow!&#160; I will be using ( no pun intended ) this feature quite often!
&#160;







&#160;
I&#8217;ve seen some VS macros that currently do this in VS 2005 and I think Visual Studio IDE enhancement tools like Resharper, has this feature already baked into their product. However, in VS 2008, we get this for free, at least if [...]]]></description>
			<content:encoded><![CDATA[<p>Wow!&nbsp; I will be using ( no pun intended ) this feature quite often!</p>
<p>&nbsp;</p>
<table cellspacing="0" cellpadding="2" width="600" border="0">
<tbody>
<tr>
<td valign="top" width="598"><a href="http://www.tyronedavisjr.com/wp-content/2008/01/organizeusings4.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="306" alt="OrganizeUsings" src="http://www.tyronedavisjr.com/wp-content/2008/01/organizeusings-thumb3.png" width="558" border="0"></a></td>
</tr>
<tr>
<td valign="top" width="598">
<p>&nbsp;</p>
<p>I&#8217;ve seen some VS macros that currently do this in VS 2005 and I think Visual Studio IDE enhancement tools like Resharper, has this feature already baked into their product. However, in VS 2008, we get this for free, at least if you are using C#. Until next time&#8230;</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Happy Coding!</p>
<p>&nbsp;</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.tyronedavisjr.com%2findex.php%2f2008%2f01%2f15%2fnew-feature-organize-using-statements-with-vs-2008%2f"><img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.tyronedavisjr.com%2findex.php%2f2008%2f01%2f15%2fnew-feature-organize-using-statements-with-vs-2008%2f" border="0"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tyronedavisjr.com/index.php/2008/01/15/new-feature-organize-using-statements-with-vs-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Strongly-Typed Session Properties in ASP.NET</title>
		<link>http://www.tyronedavisjr.com/index.php/2008/01/09/strongly-typed-session-properties-in-aspnet/</link>
		<comments>http://www.tyronedavisjr.com/index.php/2008/01/09/strongly-typed-session-properties-in-aspnet/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 04:02:11 +0000</pubDate>
		<dc:creator>Tyrone</dc:creator>
		
		<category><![CDATA[.NET Framework]]></category>

		<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">http://www.tyronedavisjr.com/index.php/2008/01/09/strongly-typed-session-properties-in-aspnet/</guid>
		<description><![CDATA[I recently was given the opportunity to comment on a blog post which discussed a method of using Strongly-Types Session Properties with ASP.NET. After reading it, I noticed that the implementation was quite similar to something I have been using for months now. I was able to provide some feedback on how his implementation differed [...]]]></description>
			<content:encoded><![CDATA[<p>I recently was given the opportunity to comment on a blog post which discussed a method of using Strongly-Types Session Properties with ASP.NET. After reading it, I noticed that the implementation was quite similar to something I have been using for months now. I was able to provide some feedback on how his implementation differed from mine. Anyway&#8217;s, the link below will take you to the blog post which I am referring to and you could decide for yourself.</p>
<p><strong>UPDATE: 1/11/2008</strong></p>
<p>For those who would like to see my implementation here it is:</p>
<div class="csharpcode">
<pre class="alt"><span class="lnum">   1:  </span><span class="kwrd">using</span> System;</pre>
<pre><span class="lnum">   2:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">   3:  </span><span class="kwrd">using</span> System.Web;</pre>
<pre><span class="lnum">   4:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">   5:  </span>[Serializable]</pre>
<pre><span class="lnum">   6:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">   7:  </span><span class="kwrd">public</span> <span class="kwrd">sealed</span> <span class="kwrd">class</span> SessionManager {</pre>
<pre><span class="lnum">   8:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">   9:  </span>   <span class="kwrd">private</span> <span class="kwrd">const</span> <span class="kwrd">string</span> SESSION_MANAGER = <span class="str">&#8220;SESSION_MANAGER&#8221;</span>;</pre>
<pre><span class="lnum">  10:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  11:  </span>   <span class="kwrd">private</span> Product _product = <span class="kwrd">null</span>;</pre>
<pre><span class="lnum">  12:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  13:  </span>   <span class="kwrd">private</span> SessionManager( ) {</pre>
<pre><span class="lnum">  14:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  15:  </span>   }</pre>
<pre><span class="lnum">  16:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  17:  </span>   <span class="kwrd">public</span> <span class="kwrd">static</span> SessionManager Current {</pre>
<pre><span class="lnum">  18:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  19:  </span>       get {</pre>
<pre><span class="lnum">  20:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  21:  </span>           HttpContext context = HttpContext.Current;</pre>
<pre><span class="lnum">  22:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  23:  </span>           SessionManager manager =</pre>
<pre><span class="lnum">  24:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  25:  </span>               context.Session[ SESSION_MANAGER ] <span class="kwrd">as</span> SessionManager;</pre>
<pre><span class="lnum">  26:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  27:  </span>           <span class="kwrd">if</span> ( manager == <span class="kwrd">null</span> ) {</pre>
<pre><span class="lnum">  28:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  29:  </span>               manager = <span class="kwrd">new</span> SessionManager( );</pre>
<pre><span class="lnum">  30:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  31:  </span>               context.Session[ SESSION_MANAGER ] = manager;</pre>
<pre><span class="lnum">  32:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  33:  </span>           }</pre>
<pre><span class="lnum">  34:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  35:  </span>           <span class="kwrd">return</span> manager;</pre>
<pre><span class="lnum">  36:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  37:  </span>       }</pre>
<pre><span class="lnum">  38:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  39:  </span>   }</pre>
<pre><span class="lnum">  40:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  41:  </span>   <span class="kwrd">public</span> Product ActiveProduct {</pre>
<pre><span class="lnum">  42:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  43:  </span>       get {</pre>
<pre><span class="lnum">  44:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  45:  </span>           <span class="kwrd">return</span> <span class="kwrd">this</span>._product;</pre>
<pre><span class="lnum">  46:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  47:  </span>       }</pre>
<pre><span class="lnum">  48:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  49:  </span>       set {</pre>
<pre><span class="lnum">  50:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  51:  </span>           <span class="kwrd">this</span>._product = <span class="kwrd">value</span>;</pre>
<pre><span class="lnum">  52:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  53:  </span>       }</pre>
<pre><span class="lnum">  54:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  55:  </span>   }</pre>
<pre><span class="lnum">  56:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  57:  </span>}</pre>
<pre><span class="lnum">  58:  </span> </pre>
<pre class="alt"><span class="lnum">  59:  </span><span class="rem">//And to access this property</span></pre>
<pre><span class="lnum">  60:  </span>SessionManager.Current.ActiveProduct = <span class="kwrd">new</span> Product();</pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p>&nbsp;</p>
<p>If you would like to see what others have implemented, see the article below:</p>
<p><a href="http://weblogs.asp.net/cstewart/archive/2008/01/09/strongly-typed-session-in-asp-net.aspx?CommentPosted=true#commentmessage" target="_blank">Strongly-Typed Session in ASP.NET - Chris Stewart&#8217;s ASP.NET Blog</a> </p>
<p>Until next time&#8230;</p>
<p>&nbsp;</p>
<p>Happy Coding!</p>
<p>&nbsp;</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.tyronedavisjr.com%2findex.php%2f2008%2f01%2f09%2fstrongly-typed-session-properties-in-aspnet%2f"><img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.tyronedavisjr.com%2findex.php%2f2008%2f01%2f09%2fstrongly-typed-session-properties-in-aspnet%2f" border="0"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tyronedavisjr.com/index.php/2008/01/09/strongly-typed-session-properties-in-aspnet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ctrl-S in web.config in Visual Studio 2008 closes web.config file</title>
		<link>http://www.tyronedavisjr.com/index.php/2008/01/05/ctrl-s-in-webconfig-in-visual-studio-2008-closes-webconfig-file/</link>
		<comments>http://www.tyronedavisjr.com/index.php/2008/01/05/ctrl-s-in-webconfig-in-visual-studio-2008-closes-webconfig-file/#comments</comments>
		<pubDate>Sun, 06 Jan 2008 03:00:24 +0000</pubDate>
		<dc:creator>Tyrone</dc:creator>
		
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.tyronedavisjr.com/index.php/2008/01/05/ctrl-s-in-webconfig-in-visual-studio-2008-closes-webconfig-file/</guid>
		<description><![CDATA[Finally! Someone found a fix and root cause for this nagging bug I&#8217;ve been encountering with VS2008. You can find everything you need here. Thanks Rick!&#160; 
Until next time&#8230;
&#160;
Happy Coding!
]]></description>
			<content:encoded><![CDATA[<p>Finally! Someone found a fix and root cause for this nagging bug I&#8217;ve been encountering with VS2008. You can find everything you need <a href="http://west-wind.com/weblog/posts/222394.aspx" target="_blank">here</a>. Thanks Rick!&#160; </p>
<p>Until next time&#8230;</p>
<p>&#160;</p>
<p>Happy Coding!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tyronedavisjr.com/index.php/2008/01/05/ctrl-s-in-webconfig-in-visual-studio-2008-closes-webconfig-file/feed/</wfw:commentRss>
		</item>
		<item>
		<title>TSQL, Looping through a result set without using database cursor</title>
		<link>http://www.tyronedavisjr.com/index.php/2007/12/12/tsql-looping-through-a-result-set-without-using-database-cursor/</link>
		<comments>http://www.tyronedavisjr.com/index.php/2007/12/12/tsql-looping-through-a-result-set-without-using-database-cursor/#comments</comments>
		<pubDate>Wed, 12 Dec 2007 18:18:56 +0000</pubDate>
		<dc:creator>Tyrone</dc:creator>
		
		<category><![CDATA[SQL Server]]></category>

		<category><![CDATA[TSQL]]></category>

		<guid isPermaLink="false">http://www.tyronedavisjr.com/index.php/2007/12/12/tsql-looping-through-a-result-set-without-using-database-cursor/</guid>
		<description><![CDATA[A few years ago a project that I was working on required me to loop through a result set from a select statement.&#160; Most examples that I saw used database cursors. However, I came across an old article that shows an alternative method for doing this.&#160; Let&#8217;s say we have a table that looks like [...]]]></description>
			<content:encoded><![CDATA[<p>A few years ago a project that I was working on required me to loop through a result set from a select statement.&nbsp; Most examples that I saw used database cursors. However, I came across an old <a href="http://www.databasejournal.com/features/mssql/article.php/3111031" target="_blank">article</a> that shows an alternative method for doing this.&nbsp; Let&#8217;s say we have a table that looks like this:</p>
<p>Table Name : Contacts</p>
<table cellspacing="0" cellpadding="2" width="400" border="1">
<tbody>
<tr>
<td valign="top" width="54"><u>ID</u></td>
<td valign="top" width="94"><u>FirstName</u></td>
<td valign="top" width="93"><u>LastName</u></td>
<td valign="top" width="157"><u>EmailAddress</u></td>
</tr>
<tr>
<td valign="top" width="52">1</td>
<td valign="top" width="94">Jack</td>
<td valign="top" width="93">Bauer</td>
<td valign="top" width="159"><a href="mailto:jbauer@fox24.com">jbauer@fox24.com</a></td>
</tr>
<tr>
<td valign="top" width="52">2</td>
<td valign="top" width="94">Dan</td>
<td valign="top" width="92">Marino</td>
<td valign="top" width="160"><a href="mailto:dmarino@dolphins.com">dmarino@dolphins.com</a></td>
</tr>
<tr>
<td valign="top" width="52">3</td>
<td valign="top" width="94">George</td>
<td valign="top" width="92">Bush</td>
<td valign="top" width="160"><a href="mailto:gbush@whitehouse.gov">gbush@whitehouse.gov</a></td>
</tr>
<tr>
<td valign="top" width="52">4</td>
<td valign="top" width="94">Michael</td>
<td valign="top" width="92">Jordan</td>
<td valign="top" width="160"><a href="mailto:mjordan@bulls.com">mjordan@bulls.com</a></td>
</tr>
<tr>
<td valign="top" width="52">5</td>
<td valign="top" width="103">Bill</td>
<td valign="top" width="108">Clinton</td>
<td valign="top" width="163"><a href="mailto:bj@whitehouse.gov">bj@whitehouse.gov</a></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Please don&#8217;t pay attention to the names. I&#8217;m sure you did so already. Anyway, let&#8217;s pretend that we had a scenario that we want to loop over the rows in this table and send an email out to these individuals.&nbsp; We can do this without using a database cursor. Here is some code to ponder on:</p>
<pre class="alt">&nbsp;</pre>
<div class="csharpcode">
<pre class="alt"><span class="lnum">   1:  </span><span class="kwrd">declare</span> @email <span class="kwrd">varchar</span>(20)</pre>
<pre><span class="lnum">   2:  </span><span class="kwrd">declare</span> @id <span class="kwrd">int</span></pre>
<pre class="alt"><span class="lnum">   3:  </span><span class="kwrd">declare</span> @rowNum <span class="kwrd">int</span></pre>
<pre><span class="lnum">   4:  </span><span class="kwrd">declare</span> @maxrows <span class="kwrd">int</span></pre>
<pre class="alt"><span class="lnum">   5:  </span>&nbsp;</pre>
<pre><span class="lnum">   6:  </span><span class="kwrd">select</span> <span class="kwrd">top</span> 1 @id = ID, @email = EmailAddress <span class="kwrd">from</span> Contacts</pre>
<pre class="alt"><span class="lnum">   7:  </span><span class="kwrd">select</span> @maxRows = <span class="kwrd">count</span>(*) <span class="kwrd">from</span> Contacts</pre>
<pre><span class="lnum">   8:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">   9:  </span><span class="kwrd">set</span> @rowNum = 0</pre>
<pre><span class="lnum">  10:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  11:  </span><span class="rem">&#8211; this will until the last row is reached</span></pre>
<pre><span class="lnum">  12:  </span><span class="kwrd">WHILE</span> @rowNum &lt; @maxRows</pre>
<pre class="alt"><span class="lnum">  13:  </span> <span class="kwrd">BEGIN</span></pre>
<pre><span class="lnum">  14:  </span>    <span class="kwrd">set</span> @rowNum = @rowNum + 1</pre>
<pre class="alt"><span class="lnum">  15:  </span>    <span class="rem">&#8211; this is where you can now do something like sending an email</span></pre>
<pre><span class="lnum">  16:  </span>    <span class="rem">&#8211; for now, we will just print the email to the output screen</span></pre>
<pre class="alt"><span class="lnum">  17:  </span>    <span class="kwrd">print</span> (<span class="str">&#8216;Sending email to: &#8216;</span> + @email)</pre>
<pre><span class="lnum">  18:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  19:  </span>    <span class="rem">&#8211; now we grab the next row making sure the ID of the next row</span></pre>
<pre><span class="lnum">  20:  </span>    <span class="rem">&#8211; is greater than previous row</span></pre>
<pre class="alt"><span class="lnum">  21:  </span>    <span class="kwrd">select</span> <span class="kwrd">top</span> 1 @id = ID, @email = EmailAddress <span class="kwrd">from</span> Contacts <span class="kwrd">where</span> ID &gt; @id</pre>
<pre><span class="lnum">  22:  </span> END</pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<pre class="alt">&nbsp;</pre>
<p>I have tried to include additional comments in this code snippet so that it doesn&#8217;t require much explanation. However, you can see the original <a href="http://www.databasejournal.com/features/mssql/article.php/3111031" target="_blank">article</a> if you need additional details.. Until next time&#8230;</p>
<p>&nbsp;</p>
<p>Happy Coding!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.tyronedavisjr.com%2findex.php%2f2007%2f12%2f12%2ftsql-looping-through-a-result-set-without-using-database-cursor%2f"><img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.tyronedavisjr.com%2findex.php%2f2007%2f12%2f12%2ftsql-looping-through-a-result-set-without-using-database-cursor%2f" border="0"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tyronedavisjr.com/index.php/2007/12/12/tsql-looping-through-a-result-set-without-using-database-cursor/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Appreciating a good, well-designed API</title>
		<link>http://www.tyronedavisjr.com/index.php/2007/12/11/appreciating-a-good-well-designed-api/</link>
		<comments>http://www.tyronedavisjr.com/index.php/2007/12/11/appreciating-a-good-well-designed-api/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 21:46:08 +0000</pubDate>
		<dc:creator>Tyrone</dc:creator>
		
		<category><![CDATA[.NET Framework]]></category>

		<guid isPermaLink="false">http://www.tyronedavisjr.com/index.php/2007/12/11/appreciating-a-good-well-designed-api/</guid>
		<description><![CDATA[I have been using the .NET Framework heavily since 2002, and sometimes I have to sit back an marvel at a good, well-designed the API. I say this because just today I had to write some code to write to the file system, and it&#8217;s remarkable how simple it is to create a text file [...]]]></description>
			<content:encoded><![CDATA[<p>I have been using the .NET Framework heavily since 2002, and sometimes I have to sit back an marvel at a good, well-designed the API. I say this because just today I had to write some code to write to the file system, and it&#8217;s remarkable how simple it is to create a text file and write information to it.&#160; You can all do it in just 2 lines of code using the <a href="http://msdn2.microsoft.com/en-us/library/system.io.file_members.aspx" target="_blank">System.IO.File</a> class. Simply put, this class is a fa&#231;ade (or a wrapper) around the classes in the .NET Framework that work together to provide access to the file system on a Windows machine.&#160; All the methods are static (shared for VB.NET) and it provides the most common functionality that you would normally need from the file system. Here is a little code to show you what I mean:</p>
<div class="csharpcode">&#160;</div>
<div class="csharpcode">
<pre class="alt"><span class="lnum">   1:  </span><span class="kwrd">using</span> System;</pre>
<pre><span class="lnum">   2:  </span><span class="kwrd">using</span> System.IO;</pre>
<pre class="alt"><span class="lnum">   3:  </span><span class="kwrd">using</span> System.Text;</pre>
<pre><span class="lnum">   4:  </span>&#160;</pre>
<pre class="alt"><span class="lnum">   5:  </span><span class="kwrd">namespace</span> SimpleFileWriter {</pre>
<pre><span class="lnum">   6:  </span>    <span class="kwrd">class</span> Program {</pre>
<pre class="alt"><span class="lnum">   7:  </span>        <span class="kwrd">static</span> <span class="kwrd">void</span> Main( <span class="kwrd">string</span>[ ] args ) {</pre>
<pre><span class="lnum">   8:  </span>            <span class="kwrd">using</span> (StreamWriter writer = File.CreateText( <span class="str">@&quot;c:\temp\test.txt&quot;</span> ))</pre>
<pre class="alt"><span class="lnum">   9:  </span>                writer.WriteLine( <span class="str">&quot;Hello World!&quot;</span> );</pre>
<pre><span class="lnum">  10:  </span>&#160;</pre>
<pre class="alt"><span class="lnum">  11:  </span>        }</pre>
<pre><span class="lnum">  12:  </span>    }</pre>
<pre class="alt"><span class="lnum">  13:  </span>}</pre>
</div>
<div class="csharpcode">&#160;</div>
<div class="csharpcode">&#160;</div>
<p>I have posted the entire program just for your reference; but only lines 8 and 9 are needed to write data to the file system.&#160; You can find more information on the other members of the File class <a href="http://msdn2.microsoft.com/en-us/library/system.io.file_members.aspx" target="_blank">here</a>. I&#8217;m sure this may not be new to some of you; but the intent of this post was to emphasize how a well-designed API goes a long way. Until next time&#8230;</p>
<p>Happy Coding!</p>
</p>
<p>&#160;</p>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.tyronedavisjr.com%2findex.php%2f2007%2f12%2f11%2fappreciating-a-good-well-designed-api%2f"><img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.tyronedavisjr.com%2findex.php%2f2007%2f12%2f11%2fappreciating-a-good-well-designed-api%2f" border="0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tyronedavisjr.com/index.php/2007/12/11/appreciating-a-good-well-designed-api/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
