<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://aspadvice.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Paul D. Murphy</title><link>http://aspadvice.com/blogs/pmurphy/default.aspx</link><description>Better Lemonade Mousetraps</description><dc:language>en</dc:language><generator>CommunityServer 2.1 (Build: 60809.935)</generator><item><title>My Take on WinFS and Vista</title><link>http://aspadvice.com/blogs/pmurphy/archive/2006/06/26/18994.aspx</link><pubDate>Mon, 26 Jun 2006 17:26:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:18994</guid><dc:creator>pmurphy</dc:creator><slash:comments>1</slash:comments><comments>http://aspadvice.com/blogs/pmurphy/comments/18994.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/pmurphy/commentrss.aspx?PostID=18994</wfw:commentRss><description>&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;The doctors and technicians called it at 1:00pm on June 23&lt;SUP&gt;rd&lt;/SUP&gt; 2006. The critically acclaimed, technological marvel known as WinFS passed on. It was truly a sad day.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;I posted &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/winfs/archive/2006/06/23/644706.aspx"&gt;&lt;FONT face=Consolas&gt;this link&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Consolas&gt; to an email forum that I’m on and it generated the obvious question ‘From a business perspective, why will a company want to upgrade from XP?&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;What business advantage does Vista offer?’&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;I posted the response below and it generated an off list request for me to blog it. So let’s talk about the blogging thing. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;I just can’t get into it. Sorry. I tried. With the email lists, I can get back instant feedback on a topic and real, meaningful discussion will often occur. I find these discussions enlightening. Over a good number of years now, I have learned copious amounts of technical information, as well as political, cultural and various other ‘als’, in this format and I value it.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;Blogs and Forums just don’t deliver the same way email delivers. So any posts here (I took down my personal blog) will be informative stuff like this, and I suspect they will be rare occurrences.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;So that said, the answer I posted (with some minor edits).&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;Business will upgrade because they are locked into software assurance licensing agreements. OEM will support it because they are obligated under contract to ship current Windows versions. There is no compelling reason to purchase outright a Windows Vista upgrade for almost all businesses and the majority of consumers.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;For the first time ever a company is releasing an operating system where the primary design goals benefit someone other than the computers owner. The only new technology in Windows Vista that survived the toppling of the three pillars is the secure kernel architecture designed to enable DRM. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;Windows Vista will ship with technologies called the 'protected process' and the 'trusted installer'. These two technologies are designed for the media industry. They create a segment of your computer that you cannot tamper with. The architectural changes left in Vista are the only 'features' of the Longhorn era to see the light of day.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;Vista, to be as blunt as possible, is not being built for consumers or businesses. It's being built so Microsoft and Verizon can make money selling you movies. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;For almost 2 years, I've asked every Microsoft employee that I can find involved with Vista the 'my mom' question. It goes like this, "In one simple statement tell me why my mom should run Windows Vista over Windows XP". &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;I have never gotten a honest answer, which is fair; it's a loaded question.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;Anyone familiar with Vista knows that outside of some new eye candy and the DRM kernel mods there is no beef on the Vista bone. On a personal note, IMO the eye candy is pathetic compared to the now aging visuals included with Mac OS 10.x.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;Don't get me wrong. The work they did on the new video API and audio API is amazing stuff that really revolutionizes some things in OS architectures. But these changes are completely transparent to the end user and don't provide any immediate compelling benefit. Again, the only thing the changes enable is DRM - you need application specific audio and video channels if certain applications are going to be encrypted and will be required to run under a special process model. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;The 'benefit' to the end user that Microsoft is selling is "per-app mixing", the ability to set one applications volume different than another applications volume. Per-app mixing is weak. In fact it is an absurd reason to perform a major reimplementation of critical subsystems in an operating system of any scope, much less one as large as Windows. Now call me crazy, but I don't get the feeling the 'my mom' crowd is out there clamoring and begging to get per-app mixing onto their computer. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;The stock answers I get from Microsoft to the ‘my mom’ question are "it's more secure" and "it's a platform for future technologies". These are half truths. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;What Microsoft really means is &lt;I&gt;Windows Vista is secure from the threats presented by the consumer to content owners and that it provides a platform for digital distribution&lt;/I&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;Microsoft really missed the mark. They had a innovated vision that would propel the next generation of personal computing technology into the mainstream. The three tier stack of Avalon, WinFS and Indigo were compelling and forward thinking. The watered down version of Indigo, the poorly performing and *unused by Vista* Avalon stack and the complete evisceration of the relational file system are a complete about face from that original vision.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;Why they 86'd that plan and decided to get into the movie distribution business is beyond me.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;So that's my nickels worth. IMO if you don't care about having licensed high definition audio and video running on your computer, then Vista doesn't provide you with any benefit; business or consumer.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;That was my post. Now for something else that is getting under my craw…&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;It’s that friggen date. It just seems way to coincidental for a post &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/winfs/archive/2006/06/23/644706.aspx"&gt;&lt;FONT face=Consolas&gt;like this&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Consolas&gt; to go live at 1:00pm without foresight and planning. Now go read the previous post. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;So as early as a few days prior Microsoft was hyping WinFS with sessions and classes at TechEd. They were energizing a base of hard core developers about a technology they knew would never see the light of day. It’s this behavior that has pitted me against myself when it comes to Microsoft.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;Our relationship is now love-hate. I love Office, Visual Studio, ASP.NET and Windows XP. I hate the company, the decisions they make and the way the conduct business. I hate the way they treat me as a developer and an enthusiast about their products.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;It is simply misleading and wrong, and it flies in the face of transparency (remember that MS buzzword) to do things like they have done. It’s sad really. That arrogance and disrespect for ethics and honesty will cripple a great company.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;I have no options. There are too many benefits to sticking with tools like Visual Studio and the CLR to do something radical like switch to Linux and start programming Java. But I would if they presented a viable option and I never thought I would make a statement like that.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;WinFS was the nail in the coffin for Microsoft and I. They are no longer a company I respect and revere. They are now someone I have to watch out for and be weary of. They have lied to me one too many times.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Consolas&gt;Watch out Microsoft, Google understands the consumer whom you so arrogantly abuse.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;o:p&gt;&lt;FONT face=Consolas&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/pmurphy/archive/2006/06/26/18994.aspx&amp;amp;;subject=My+Take+on+WinFS+and+Vista" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2006/06/26/18994.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/pmurphy/archive/2006/06/26/18994.aspx&amp;amp;;title=My+Take+on+WinFS+and+Vista" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2006/06/26/18994.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2006/06/26/18994.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2006/06/26/18994.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2006/06/26/18994.aspx&amp;amp;title=My+Take+on+WinFS+and+Vista" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2006/06/26/18994.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/pmurphy/archive/2006/06/26/18994.aspx&amp;amp;;title=My+Take+on+WinFS+and+Vista" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2006/06/26/18994.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/pmurphy/archive/2006/06/26/18994.aspx&amp;amp;;title=My+Take+on+WinFS+and+Vista&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2006/06/26/18994.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=18994" width="1" height="1"&gt;</description></item><item><title>Syntax Highlighter Server Control</title><link>http://aspadvice.com/blogs/pmurphy/archive/2006/01/05/code-highlighter-server-control.aspx</link><pubDate>Thu, 05 Jan 2006 01:47:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:14545</guid><dc:creator>pmurphy</dc:creator><slash:comments>0</slash:comments><comments>http://aspadvice.com/blogs/pmurphy/comments/14545.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/pmurphy/commentrss.aspx?PostID=14545</wfw:commentRss><description>This blog post is an asp.net server control that wraps the syntax highlighter javascripts files found here: http://www.dreamprojections.com/syntaxhighlighter/Default.aspx...(&lt;a href="http://aspadvice.com/blogs/pmurphy/archive/2006/01/05/code-highlighter-server-control.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=14545" width="1" height="1"&gt;</description></item><item><title>Outlook 12</title><link>http://aspadvice.com/blogs/pmurphy/archive/2005/11/28/14018.aspx</link><pubDate>Mon, 28 Nov 2005 16:09:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:14018</guid><dc:creator>pmurphy</dc:creator><slash:comments>0</slash:comments><comments>http://aspadvice.com/blogs/pmurphy/comments/14018.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/pmurphy/commentrss.aspx?PostID=14018</wfw:commentRss><description>&lt;P&gt;Please... Please... Please.... Microsoft PLEASE give us a way to &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;create task dependecy chains&lt;/LI&gt;
&lt;LI&gt;link items together (entourage does this quite well)&lt;/LI&gt;&lt;/OL&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/pmurphy/archive/2005/11/28/14018.aspx&amp;amp;;subject=Outlook+12" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/28/14018.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/28/14018.aspx&amp;amp;;title=Outlook+12" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/28/14018.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/28/14018.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/28/14018.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/28/14018.aspx&amp;amp;title=Outlook+12" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/28/14018.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/28/14018.aspx&amp;amp;;title=Outlook+12" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/28/14018.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/28/14018.aspx&amp;amp;;title=Outlook+12&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/28/14018.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=14018" width="1" height="1"&gt;</description></item><item><title>Third Major Bug</title><link>http://aspadvice.com/blogs/pmurphy/archive/2005/11/14/13788.aspx</link><pubDate>Mon, 14 Nov 2005 20:15:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:13788</guid><dc:creator>pmurphy</dc:creator><slash:comments>0</slash:comments><comments>http://aspadvice.com/blogs/pmurphy/comments/13788.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/pmurphy/commentrss.aspx?PostID=13788</wfw:commentRss><description>&lt;p&gt;This *release* version of VS2005 is dog and I just can't take it anymore. 
Here is the 3rd bug I've found (I never found any at all in Everett)...&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a test project&lt;/li&gt;&lt;li&gt;add an app.config file&amp;nbsp;to the root of the project&lt;/li&gt;&lt;li&gt;add another app.config file called reallyImportantFile.config to the root of 
the project&lt;/li&gt;&lt;li&gt;set reallyImportantFile.config to BuildAction=Content and 
CopyToOutputDirectory=Copy Always&lt;/li&gt;&lt;li&gt;compile the project and peek out /bin/debug (it is there)&lt;/li&gt;&lt;li&gt;write a unit test that checks to see if the file exists 
Assert.IsTrue(File.Exists(fileName))&lt;/li&gt;&lt;li&gt;watch the test fail BECAUSE TEAM SYSTEM DOESN'T MOVE THE 'COPY ALWAYS' FILES 
INTO THE OUT DIRECTORY!&lt;/li&gt;
&lt;/ol&gt;----&lt;br&gt;
Update: 11/14/05 4:21pm EST&lt;br&gt;
You can work around this bug by manually including the files via the .testrunconfig deployment tab.&lt;br&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/pmurphy/archive/2005/11/14/13788.aspx&amp;amp;;subject=Third+Major+Bug" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/14/13788.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/14/13788.aspx&amp;amp;;title=Third+Major+Bug" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/14/13788.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/14/13788.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/14/13788.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/14/13788.aspx&amp;amp;title=Third+Major+Bug" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/14/13788.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/14/13788.aspx&amp;amp;;title=Third+Major+Bug" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/14/13788.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/14/13788.aspx&amp;amp;;title=Third+Major+Bug&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/14/13788.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=13788" width="1" height="1"&gt;</description></item><item><title>Another annoying bug... </title><link>http://aspadvice.com/blogs/pmurphy/archive/2005/11/12/13755.aspx</link><pubDate>Sat, 12 Nov 2005 02:12:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:13755</guid><dc:creator>pmurphy</dc:creator><slash:comments>0</slash:comments><comments>http://aspadvice.com/blogs/pmurphy/comments/13755.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/pmurphy/commentrss.aspx?PostID=13755</wfw:commentRss><description>seriously guys... I found 0 bugs in the Everett tools product cycle. IIRC it *never* got a service pack. This dog isn't even 2 weeks old... booo... boooo... shame on you guys...&lt;b&gt;&lt;br&gt;
&lt;br&gt;
&lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=132716&amp;SiteID=1&amp;mode=1"&gt;
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=132716&amp;SiteID=1&amp;mode=1&lt;/a&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/pmurphy/archive/2005/11/12/13755.aspx&amp;amp;;subject=Another+annoying+bug...+" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/12/13755.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/12/13755.aspx&amp;amp;;title=Another+annoying+bug...+" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/12/13755.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/12/13755.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/12/13755.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/12/13755.aspx&amp;amp;title=Another+annoying+bug...+" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/12/13755.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/12/13755.aspx&amp;amp;;title=Another+annoying+bug...+" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/12/13755.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/12/13755.aspx&amp;amp;;title=Another+annoying+bug...+&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/12/13755.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=13755" width="1" height="1"&gt;</description></item><item><title>Someone must get paid to think of everything....</title><link>http://aspadvice.com/blogs/pmurphy/archive/2005/11/02/13545.aspx</link><pubDate>Wed, 02 Nov 2005 20:57:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:13545</guid><dc:creator>pmurphy</dc:creator><slash:comments>0</slash:comments><comments>http://aspadvice.com/blogs/pmurphy/comments/13545.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/pmurphy/commentrss.aspx?PostID=13545</wfw:commentRss><description>I'm in the middle of a CLR port for the RTG SNMP Poller and I stumbled across this spiffy little warning.&lt;br&gt;
&lt;br&gt;
http://aspadvice.com/photos/pmurphy/category1328/picture13544.aspx
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/pmurphy/archive/2005/11/02/13545.aspx&amp;amp;;subject=Someone+must+get+paid+to+think+of+everything...." target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/02/13545.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/02/13545.aspx&amp;amp;;title=Someone+must+get+paid+to+think+of+everything...." target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/02/13545.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/02/13545.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/02/13545.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/02/13545.aspx&amp;amp;title=Someone+must+get+paid+to+think+of+everything...." target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/02/13545.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/02/13545.aspx&amp;amp;;title=Someone+must+get+paid+to+think+of+everything...." target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/02/13545.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/pmurphy/archive/2005/11/02/13545.aspx&amp;amp;;title=Someone+must+get+paid+to+think+of+everything....&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/11/02/13545.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=13545" width="1" height="1"&gt;</description></item><item><title>SQL/CLR IPAddress UDT</title><link>http://aspadvice.com/blogs/pmurphy/archive/2005/10/31/SQL-CLR-IPAddress-UDT.aspx</link><pubDate>Mon, 31 Oct 2005 21:18:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:13494</guid><dc:creator>pmurphy</dc:creator><slash:comments>0</slash:comments><comments>http://aspadvice.com/blogs/pmurphy/comments/13494.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/pmurphy/commentrss.aspx?PostID=13494</wfw:commentRss><description>Here is a little class that I whipped up to store IP Addresses in a strongly types fashion in SQL Server. As a general rules of thumb, I'm against UDTs in the database because once you deploy one, it's there forever. That said, because the IP Address class will almost certianly never change (and the underlying long type is NEVER going to change) it's a safe bet.&lt;br&gt;Historically we have stored IP Addresses in a char(15) column, but this requires a signifigant amount of validation to ensure proper formating. By delegating this validation to the underlying BCL we can ensure that IP Address data entered into our systems are always valid at the storage level.&lt;br&gt;There are some not implemented methods down at the bottom that most people will never use, so I didn't include them (they are pretty long). In a nutshell there are certain IP Addresses in the space that are private (10.... 192.168... etc) and there is are some address that are reserved (anything that ends in 255.255, addresses that start with 254 iirc). If anyone needs this additional code shoot me a short note from the contact page and I'll mail it to you when I find the most performant way to run it. Currently I'm using string comparisons, however I'm pretty sure that bit comparisons will be faster.&lt;br&gt;&lt;hr&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;using&lt;/span&gt;&lt;span&gt; 
System;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;using&lt;/span&gt;&lt;span&gt; 
System.Data;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;using&lt;/span&gt;&lt;span&gt; 
System.Data.SqlClient;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;using&lt;/span&gt;&lt;span&gt; 
System.Data.SqlTypes;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;using&lt;/span&gt;&lt;span&gt; 
System.IO;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;using&lt;/span&gt;&lt;span&gt; 
Net=System.Net;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;using&lt;/span&gt;&lt;span&gt; 
System.Net.Sockets;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;using&lt;/span&gt;&lt;span&gt; 
Microsoft.SqlServer.Server;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;[&lt;b&gt;&lt;span&gt;Serializable&lt;/span&gt;&lt;/b&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;[&lt;b&gt;&lt;span&gt;SqlUserDefinedType&lt;/span&gt;&lt;/b&gt;(&lt;b&gt;&lt;span&gt;Format&lt;/span&gt;&lt;/b&gt;.UserDefined, 
MaxByteSize=&lt;span&gt;sizeof&lt;/span&gt;(&lt;b&gt;&lt;span&gt;Int64&lt;/span&gt;&lt;/b&gt;))]&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;public&lt;/span&gt;&lt;span&gt;
&lt;span&gt;struct&lt;/span&gt; &lt;b&gt;&lt;span&gt;IPAddress&lt;/span&gt;&lt;/b&gt; 
: &lt;b&gt;&lt;span&gt;INullable&lt;/span&gt;&lt;/b&gt;, &lt;b&gt;
&lt;span&gt;IBinarySerialize&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    
#region&lt;/span&gt;&lt;span&gt; Private 
Members&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;   
&lt;span&gt;private&lt;/span&gt; Net.&lt;b&gt;&lt;span&gt;IPAddress&lt;/span&gt;&lt;/b&gt; 
_ipAddress; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    
#endregion&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    
#region&lt;/span&gt;&lt;span&gt; 
Construction&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;   
&lt;span&gt;private&lt;/span&gt; IPAddress(Net.&lt;b&gt;&lt;span&gt;IPAddress&lt;/span&gt;&lt;/b&gt; 
ipAddress)&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;        _ipAddress = 
ipAddress;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    } &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    
#endregion&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    
#region&lt;/span&gt;&lt;span&gt; 
INullable and SQL UDT Required Members&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;   
&lt;span&gt;public&lt;/span&gt; &lt;span&gt;override&lt;/span&gt;
&lt;b&gt;&lt;span&gt;String&lt;/span&gt;&lt;/b&gt; ToString()&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;return&lt;/span&gt; _ipAddress.ToString();&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;   
&lt;span&gt;public&lt;/span&gt; &lt;b&gt;&lt;span&gt;Boolean&lt;/span&gt;&lt;/b&gt; 
IsNull&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;get&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;        {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;            &lt;span&gt;if&lt;/span&gt; 
(&lt;span&gt;null&lt;/span&gt; == _ipAddress) &lt;span&gt;
return&lt;/span&gt; &lt;span&gt;true&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;           
&lt;span&gt;else&lt;/span&gt; &lt;span&gt;return&lt;/span&gt;
&lt;span&gt;false&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;        }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;   
&lt;span&gt;public&lt;/span&gt; &lt;span&gt;static&lt;/span&gt; &lt;b&gt;
&lt;span&gt;IPAddress&lt;/span&gt;&lt;/b&gt; Null&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;get&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;        {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;            &lt;b&gt;
&lt;span&gt;IPAddress&lt;/span&gt;&lt;/b&gt; result = &lt;span&gt;
new&lt;/span&gt; &lt;b&gt;&lt;span&gt;IPAddress&lt;/span&gt;&lt;/b&gt;();&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;           
&lt;span&gt;return&lt;/span&gt; result;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;        }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;   
&lt;span&gt;public&lt;/span&gt; &lt;span&gt;static&lt;/span&gt; &lt;b&gt;
&lt;span&gt;IPAddress&lt;/span&gt;&lt;/b&gt; Parse(&lt;b&gt;&lt;span&gt;SqlString&lt;/span&gt;&lt;/b&gt; 
s)&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;if&lt;/span&gt; (s.IsNull) &lt;span&gt;return&lt;/span&gt; 
Null;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;//  create our result&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;        Net.&lt;b&gt;&lt;span&gt;IPAddress&lt;/span&gt;&lt;/b&gt; 
newIPAddress = &lt;span&gt;null&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;//  attempt the parse&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;if&lt;/span&gt; (Net.&lt;b&gt;&lt;span&gt;IPAddress&lt;/span&gt;&lt;/b&gt;.TryParse(s.ToString(),
&lt;span&gt;out&lt;/span&gt; newIPAddress))&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;        {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;            &lt;b&gt;
&lt;span&gt;IPAddress&lt;/span&gt;&lt;/b&gt; result = &lt;span&gt;
new&lt;/span&gt; &lt;b&gt;&lt;span&gt;IPAddress&lt;/span&gt;&lt;/b&gt;(newIPAddress);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;           
&lt;span&gt;return&lt;/span&gt; result;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;        }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;else&lt;/span&gt; { &lt;span&gt;throw&lt;/span&gt;
&lt;span&gt;new&lt;/span&gt; &lt;b&gt;&lt;span&gt;
ArgumentException&lt;/span&gt;&lt;/b&gt;(&lt;span&gt;"Invalid IPAddress 
String"&lt;/span&gt;, &lt;span&gt;"s"&lt;/span&gt;); }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    } &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    
#endregion&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    
#region&lt;/span&gt;&lt;span&gt; 
IBinarySerialize Members (Required for user defined serialization)&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;   
&lt;span&gt;public&lt;/span&gt; &lt;span&gt;void&lt;/span&gt; 
Read(&lt;b&gt;&lt;span&gt;BinaryReader&lt;/span&gt;&lt;/b&gt; reader)&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;        &lt;b&gt;
&lt;span&gt;Int32&lt;/span&gt;&lt;/b&gt; byteLength = (&lt;b&gt;&lt;span&gt;Int32&lt;/span&gt;&lt;/b&gt;)reader.BaseStream.Length;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;        &lt;b&gt;
&lt;span&gt;Byte&lt;/span&gt;&lt;/b&gt;[] bytes = &lt;span&gt;new&lt;/span&gt;
&lt;b&gt;&lt;span&gt;Byte&lt;/span&gt;&lt;/b&gt;[byteLength];&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;        bytes = 
reader.ReadBytes(byteLength);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;        _ipAddress =
&lt;span&gt;new&lt;/span&gt; System.Net.&lt;b&gt;&lt;span&gt;IPAddress&lt;/span&gt;&lt;/b&gt;(bytes);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;   
&lt;span&gt;public&lt;/span&gt; &lt;span&gt;void&lt;/span&gt; 
Write(&lt;b&gt;&lt;span&gt;BinaryWriter&lt;/span&gt;&lt;/b&gt; writer)&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;        
writer.Write(_ipAddress.GetAddressBytes());&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    
#endregion&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    
#region&lt;/span&gt;&lt;span&gt; 
System.Net.IPAddress Public Member Wrappers&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;   
&lt;span&gt;public&lt;/span&gt; &lt;span&gt;override&lt;/span&gt;
&lt;b&gt;&lt;span&gt;Boolean&lt;/span&gt;&lt;/b&gt; Equals(&lt;span&gt;object&lt;/span&gt; 
obj)&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;if&lt;/span&gt; (obj &lt;span&gt;is&lt;/span&gt; &lt;b&gt;
&lt;span&gt;IPAddress&lt;/span&gt;&lt;/b&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;        {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;            &lt;b&gt;
&lt;span&gt;IPAddress&lt;/span&gt;&lt;/b&gt; ipAddress = (&lt;b&gt;&lt;span&gt;IPAddress&lt;/span&gt;&lt;/b&gt;)obj;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;           
&lt;span&gt;return&lt;/span&gt; _ipAddress.Equals(ipAddress);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;        }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;return&lt;/span&gt; &lt;span&gt;false&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;   
&lt;span&gt;public&lt;/span&gt; &lt;span&gt;override&lt;/span&gt;
&lt;b&gt;&lt;span&gt;Int32&lt;/span&gt;&lt;/b&gt; GetHashCode()&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;return&lt;/span&gt; _ipAddress.GetHashCode();&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;   
&lt;span&gt;public&lt;/span&gt; &lt;b&gt;&lt;span&gt;
AddressFamily&lt;/span&gt;&lt;/b&gt; AddressFamily&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;get&lt;/span&gt; { &lt;span&gt;return&lt;/span&gt; 
_ipAddress.AddressFamily; }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;   
&lt;span&gt;public&lt;/span&gt; &lt;b&gt;&lt;span&gt;Boolean&lt;/span&gt;&lt;/b&gt; 
IsIPv6LinkLocal&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;get&lt;/span&gt; { &lt;span&gt;return&lt;/span&gt; 
_ipAddress.IsIPv6LinkLocal; }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;   
&lt;span&gt;public&lt;/span&gt; &lt;b&gt;&lt;span&gt;Boolean&lt;/span&gt;&lt;/b&gt; 
IsIPv6Multicast&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;get&lt;/span&gt; { &lt;span&gt;return&lt;/span&gt; 
_ipAddress.IsIPv6Multicast; }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;   
&lt;span&gt;public&lt;/span&gt; &lt;b&gt;&lt;span&gt;Boolean&lt;/span&gt;&lt;/b&gt; 
IsIPv6SiteLocal&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;get&lt;/span&gt; { &lt;span&gt;return&lt;/span&gt; 
_ipAddress.IsIPv6SiteLocal; }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;   
&lt;span&gt;public&lt;/span&gt; &lt;b&gt;&lt;span&gt;Int64&lt;/span&gt;&lt;/b&gt; 
ScopeId&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;get&lt;/span&gt; { &lt;span&gt;return&lt;/span&gt; _ipAddress.ScopeId; 
}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;set&lt;/span&gt; { _ipAddress.ScopeId =
&lt;span&gt;value&lt;/span&gt;; }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;   
&lt;span&gt;public&lt;/span&gt; &lt;b&gt;&lt;span&gt;Boolean&lt;/span&gt;&lt;/b&gt; 
IsLoopback&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;get&lt;/span&gt; { &lt;span&gt;return&lt;/span&gt; 
Net.&lt;b&gt;&lt;span&gt;IPAddress&lt;/span&gt;&lt;/b&gt;.IsLoopback(_ipAddress); }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    #endregion&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    
#region&lt;/span&gt;&lt;span&gt; TODO - 
Need to talk to some network nerds about the best way to do this&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;   
&lt;span&gt;public&lt;/span&gt; &lt;b&gt;&lt;span&gt;Boolean&lt;/span&gt;&lt;/b&gt; 
IsPrivateNetwork&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;get&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;        {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;           
&lt;span&gt;throw&lt;/span&gt; &lt;span&gt;new&lt;/span&gt; &lt;b&gt;
&lt;span&gt;NotImplementedException&lt;/span&gt;&lt;/b&gt;();&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;        }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;   
&lt;span&gt;public&lt;/span&gt; &lt;b&gt;&lt;span&gt;Boolean&lt;/span&gt;&lt;/b&gt; 
IsReservedAddress&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;get&lt;/span&gt; { &lt;span&gt;throw&lt;/span&gt;
&lt;span&gt;new&lt;/span&gt; &lt;b&gt;&lt;span&gt;
NotImplementedException&lt;/span&gt;&lt;/b&gt;(); }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;   
&lt;span&gt;public&lt;/span&gt; &lt;b&gt;&lt;span&gt;Boolean&lt;/span&gt;&lt;/b&gt; 
IsPublicNetwork&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;       
&lt;span&gt;get&lt;/span&gt; { &lt;span&gt;return&lt;/span&gt; !IsPrivateNetwork 
&amp;&amp; !IsReservedAddress; }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;    #endregion&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt; &lt;/p&gt;&lt;br&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/pmurphy/archive/2005/10/31/SQL-CLR-IPAddress-UDT.aspx&amp;amp;;subject=SQL%2fCLR+IPAddress+UDT" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/10/31/SQL-CLR-IPAddress-UDT.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/pmurphy/archive/2005/10/31/SQL-CLR-IPAddress-UDT.aspx&amp;amp;;title=SQL%2fCLR+IPAddress+UDT" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/10/31/SQL-CLR-IPAddress-UDT.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/10/31/SQL-CLR-IPAddress-UDT.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/10/31/SQL-CLR-IPAddress-UDT.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/10/31/SQL-CLR-IPAddress-UDT.aspx&amp;amp;title=SQL%2fCLR+IPAddress+UDT" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/10/31/SQL-CLR-IPAddress-UDT.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/pmurphy/archive/2005/10/31/SQL-CLR-IPAddress-UDT.aspx&amp;amp;;title=SQL%2fCLR+IPAddress+UDT" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/10/31/SQL-CLR-IPAddress-UDT.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/pmurphy/archive/2005/10/31/SQL-CLR-IPAddress-UDT.aspx&amp;amp;;title=SQL%2fCLR+IPAddress+UDT&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/10/31/SQL-CLR-IPAddress-UDT.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=13494" width="1" height="1"&gt;</description></item><item><title>VS2005 RTM Concerns</title><link>http://aspadvice.com/blogs/pmurphy/archive/2005/10/28/VS2005-Quality-Concerns.aspx</link><pubDate>Fri, 28 Oct 2005 18:50:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:13474</guid><dc:creator>pmurphy</dc:creator><slash:comments>2</slash:comments><comments>http://aspadvice.com/blogs/pmurphy/comments/13474.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/pmurphy/commentrss.aspx?PostID=13474</wfw:commentRss><description>I have concerns about the quality of the VS2005 and SQL Server 2005 bits. Here are the steps to repro a bug that many people will find annoying. This bug *did not* exist in any build post beta2, which makes it a regression.&lt;br&gt;
------
&lt;br&gt;
1: create a connection to a sql database in the server explorer
&lt;br&gt;
2: right click on a table and select ‘Show Table Data’
&lt;br&gt;
3: click the command bar button to ‘Show Criteria Pane” – This should give you one row with a * for the column.
&lt;br&gt;
4:  via the drop down list select a column – This will create an alias for the column Expr1
&lt;br&gt;
5: change the sort on the new column selection to ascending
&lt;br&gt;
6: uncheck the output from the column
&lt;br&gt;
7: attempt to run query with error – “invalid column name expr1”
&lt;br&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/pmurphy/archive/2005/10/28/VS2005-Quality-Concerns.aspx&amp;amp;;subject=VS2005+RTM+Concerns" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/10/28/VS2005-Quality-Concerns.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/pmurphy/archive/2005/10/28/VS2005-Quality-Concerns.aspx&amp;amp;;title=VS2005+RTM+Concerns" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/10/28/VS2005-Quality-Concerns.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/10/28/VS2005-Quality-Concerns.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/10/28/VS2005-Quality-Concerns.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/10/28/VS2005-Quality-Concerns.aspx&amp;amp;title=VS2005+RTM+Concerns" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/10/28/VS2005-Quality-Concerns.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/pmurphy/archive/2005/10/28/VS2005-Quality-Concerns.aspx&amp;amp;;title=VS2005+RTM+Concerns" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/10/28/VS2005-Quality-Concerns.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/pmurphy/archive/2005/10/28/VS2005-Quality-Concerns.aspx&amp;amp;;title=VS2005+RTM+Concerns&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/10/28/VS2005-Quality-Concerns.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=13474" width="1" height="1"&gt;</description></item><item><title>short note</title><link>http://aspadvice.com/blogs/pmurphy/archive/2005/08/19/2111.aspx</link><pubDate>Fri, 19 Aug 2005 17:51:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:2111</guid><dc:creator>pmurphy</dc:creator><slash:comments>0</slash:comments><comments>http://aspadvice.com/blogs/pmurphy/comments/2111.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/pmurphy/commentrss.aspx?PostID=2111</wfw:commentRss><description>&lt;P&gt;It seems like the personal drama just won't end. I've been back in crisis mode over the last couple of days trying to put out some fires between a landlord and a friend. Long story short, I'm either gonna have to sue somone or lose a bunch of money I really can't afford to lose.&amp;nbsp;Ugh...&lt;/P&gt;
&lt;P&gt;I've written a bit of code and a good chunk of the post&amp;nbsp;about the Dollarville traffic light. It jumps right into threading code. I'm trying to present it in the context of dealing with the time line of the stop light from the time line of something else, but I'm not getting that far with the analogy. &lt;/P&gt;
&lt;P&gt;I was originally going to go with traffic, you know change the light to a regular light instead of a flasher and then incorporate traffic. But that's just friggen complicated. I'd have to write alot of code (which sucks); but even more importantly&amp;nbsp;a traffic emulator is a really complex thing.&lt;/P&gt;
&lt;P&gt;I got a nifty stoplight built, but the analogy breaks down because there really are no interactions between the light and... exactly. It's just a light that hangs and runs. The only real interaction is has is with a driver or a pedestrian. &lt;/P&gt;
&lt;P&gt;haha. I've written myself into a corner. Whatever, I'm sure I'll find a balance when I sit back down to do the rest of the work. l8r... :)&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/pmurphy/archive/2005/08/19/2111.aspx&amp;amp;;subject=short+note" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/19/2111.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/19/2111.aspx&amp;amp;;title=short+note" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/19/2111.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/19/2111.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/19/2111.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/19/2111.aspx&amp;amp;title=short+note" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/19/2111.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/19/2111.aspx&amp;amp;;title=short+note" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/19/2111.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/19/2111.aspx&amp;amp;;title=short+note&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/19/2111.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=2111" width="1" height="1"&gt;</description></item><item><title>Threading [2] - Dollarville</title><link>http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2110.aspx</link><pubDate>Tue, 16 Aug 2005 17:13:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:2110</guid><dc:creator>pmurphy</dc:creator><slash:comments>0</slash:comments><comments>http://aspadvice.com/blogs/pmurphy/comments/2110.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/pmurphy/commentrss.aspx?PostID=2110</wfw:commentRss><description>&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;I&amp;#8217;d like to introduce you to Dollarville. &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;Dollarville is a quant little town in the middle of nowhere. Like many old, small towns Dollarville has two main roads. There is Main Street and the state highway 9. These two roads intersect in the middle of town. There is a stop light that always flashes yellow for the state road and red for Main Street.&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;Downtown Dollarville has a general store, a gas station, a fire station and a post office. Janet Dollar runs the general store. Her nephew Tommy Dollar owns the gas station. Chief Dollar works at the fire station and Aunt Dollar takes up shop at the post office.&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;Life in Dollarville is serene and most days pass without anything exciting happening. This suits the Dollars just fine because every month on the 15&lt;SUP&gt;th&lt;/SUP&gt; all hell breaks loose. On the 15&lt;SUP&gt;th&lt;/SUP&gt; a caravan of travelers and merchants travel up the state highway 9 on their way to the big government auctions.&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;The problem is that since Dollarville wasn&amp;#8217;t designed to accommodate this much vehicle and foot traffic, on the 15&lt;SUP&gt;th&lt;/SUP&gt; Dollarville turns to gridlock. The single stop light that always flashes becomes a crippling point for people trying to use Main Street to cross the state highway. The parking lot of the gas station becomes another large bottleneck. &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;But these problems pale in comparison to the personal problems dumped upon the four members of the Dollar family this year. Mama Dollar is *really* sick and every hour one of the Dollars will need to close up their own shop and take 5 or 10 minutes to check up on mom. This is not a problem on every day except for the 15&lt;SUP&gt;th&lt;/SUP&gt;.&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;In order to solve this problem the Dollars have decided to hire a person who will move from store to store and help with the basic services for the 5 or 10 minutes while the proprietor is out looking in on Mama.&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;Over the course of the next dozen or so entries we are going to use Dollarville, it&amp;#8217;s people and their problems to look at common threading problems, techniques but more importantly concepts. In the last post I said that managing the intersection of timelines was the secret to threading and I can&amp;#8217;t stress that enough.&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;FONT color=#000080&gt;&lt;SPAN&gt;I&amp;#8217;m off to write some code. It&amp;#8217;s time to bring the Dollars to life. :)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2110.aspx&amp;amp;;subject=Threading+%5b2%5d+-+Dollarville" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2110.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2110.aspx&amp;amp;;title=Threading+%5b2%5d+-+Dollarville" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2110.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2110.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2110.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2110.aspx&amp;amp;title=Threading+%5b2%5d+-+Dollarville" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2110.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2110.aspx&amp;amp;;title=Threading+%5b2%5d+-+Dollarville" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2110.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2110.aspx&amp;amp;;title=Threading+%5b2%5d+-+Dollarville&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2110.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=2110" width="1" height="1"&gt;</description></item><item><title>Threading [I] - Get your head around it.</title><link>http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2109.aspx</link><pubDate>Tue, 16 Aug 2005 16:24:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:2109</guid><dc:creator>pmurphy</dc:creator><slash:comments>0</slash:comments><comments>http://aspadvice.com/blogs/pmurphy/comments/2109.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/pmurphy/commentrss.aspx?PostID=2109</wfw:commentRss><description>&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;Writing multithreaded code is just as easy as writing data access code or writing file IO code with .net. I believe that so long as you have a solid understanding of the threading object model, how that model is suppose to work and some common implementation techniques of the model it will be easy. I think this way about all object oriented code. Object oriented thread programming is no different than object oriented database programming. It&amp;#8217;s just code.&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;The difference is that threading presents a unique set of challenges that are a little more complicated to grasp up in the brain. Threading adds an additional dimension to your programming. It fundamentally changes the pallet from a linear 3D surface to a rich, non-linear 4D surface. &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;Hmm&amp;#8230; 3D, 4D&amp;#8230; I might have just confused some people (we aren&amp;#8217;t talking graphics :p ), so let&amp;#8217;s get into the dimensions of programming.&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT color=#0000ff&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&amp;#183;&lt;SPAN&gt;        &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;Polymorphic Class &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT color=#0000ff&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&amp;#183;&lt;SPAN&gt;        &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;Interface&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT color=#0000ff&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&amp;#183;&lt;SPAN&gt;        &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;Type&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;These dimensions are surfaces in object oriented programming that we use in conjunction with Boolean logical and flow control to make the computer do things. Most people have no trouble wrapping their mind around these baseline 3 dimension&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;SPAN&lt;/SPAN&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;Things start to get complicated mentally when you add the fourth dimension, time; AKA threading. With the three &amp;#8216;standard&amp;#8217; dimensions time is assumed at linear. This means that you can start walking through your code line by line and guarantee that on the time scale code will execute in order, one instruction after the next; statement by statement.&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;Threading turns this linear operations mindset upside down. When you incorporate threading into an application you are creating multiple timelines of execution. The secret to threading is learning how to manage the intersection of these timelines.&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;When you frame the issues of threading into the context of managing timelines, you can take a solid knowledge of the treading object model and develop incredibly effective solutions &amp;#8216;easily&amp;#8217;. Hopefully what follows will demystify the subject of threading&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;.&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2109.aspx&amp;amp;;subject=Threading+%5bI%5d+-+Get+your+head+around+it." target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2109.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2109.aspx&amp;amp;;title=Threading+%5bI%5d+-+Get+your+head+around+it." target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2109.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2109.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2109.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2109.aspx&amp;amp;title=Threading+%5bI%5d+-+Get+your+head+around+it." target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2109.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2109.aspx&amp;amp;;title=Threading+%5bI%5d+-+Get+your+head+around+it." target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2109.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2109.aspx&amp;amp;;title=Threading+%5bI%5d+-+Get+your+head+around+it.&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2109.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=2109" width="1" height="1"&gt;</description></item><item><title>Some Guys on the MSWebDev Lists Got Me Blogging Again...</title><link>http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2108.aspx</link><pubDate>Tue, 16 Aug 2005 16:21:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:2108</guid><dc:creator>pmurphy</dc:creator><slash:comments>1</slash:comments><comments>http://aspadvice.com/blogs/pmurphy/comments/2108.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/pmurphy/commentrss.aspx?PostID=2108</wfw:commentRss><description>yup... threading. I think that's a good place to start.
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2108.aspx&amp;amp;;subject=Some+Guys+on+the+MSWebDev+Lists+Got+Me+Blogging+Again..." target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2108.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2108.aspx&amp;amp;;title=Some+Guys+on+the+MSWebDev+Lists+Got+Me+Blogging+Again..." target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2108.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2108.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2108.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2108.aspx&amp;amp;title=Some+Guys+on+the+MSWebDev+Lists+Got+Me+Blogging+Again..." target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2108.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2108.aspx&amp;amp;;title=Some+Guys+on+the+MSWebDev+Lists+Got+Me+Blogging+Again..." target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2108.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2108.aspx&amp;amp;;title=Some+Guys+on+the+MSWebDev+Lists+Got+Me+Blogging+Again...&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/08/16/2108.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=2108" width="1" height="1"&gt;</description></item><item><title>team system marketing is just starting to piss me off</title><link>http://aspadvice.com/blogs/pmurphy/archive/2005/04/27/2107.aspx</link><pubDate>Wed, 27 Apr 2005 19:04:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:2107</guid><dc:creator>pmurphy</dc:creator><slash:comments>4</slash:comments><comments>http://aspadvice.com/blogs/pmurphy/comments/2107.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/pmurphy/commentrss.aspx?PostID=2107</wfw:commentRss><description>i keep getting asked questions like, should i use team system.&amp;nbsp;this question is absurd to me. :)
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;the problems team system solves have nothing to do with the size and the scope of the team. hell if you ask me, even 1 guy needs team system. microsoft has really screwed the pooch by trying to bill this thing as an enterprise tool. It's not an enterprise tool, it's a software development tool. period.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;marketing dictates that this is an enterprise tool, not the reality of software development. i've secretly been pushing to try and deliver a hosted version of team system. it's currently being discussed inside of microsoft, but there are licensing issues. simply put if i want to host it, it has to run under the spla (service providers licensing agreement). currently, this isn't in the mix. &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;i'm going to rant for a second here. when i first suggested hosted team system to a microsoft person, i got a response along the lines of why? who would need that? this answer shocked me. team system helps solve a myriad of problems, facilitating communication amongst a team is simply one aspect of it. issues like bug tracking are issues that teams of 200 or lone codeslingers have. issues like code churn, requirements tracking, associating a requirement with a scenraio, with an implementation, with a bug, with a fix&amp;nbsp;are all software development issues, not team issues. &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;i think everyone needs a team system. it's unfortuntate that microsoft doesn't... wake up redmond, teams of 1 have the same information and project management problems as teams of 1000. software development is no different with 1 or 1000. the issues are all the same. i'll conceed that communication becomes more difficult as the team size grows, but the fundamental problems of managing the information don't.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;arglefargle....&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Paul&lt;/DIV&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/pmurphy/archive/2005/04/27/2107.aspx&amp;amp;;subject=team+system+marketing+is+just+starting+to+piss+me+off" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/04/27/2107.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/pmurphy/archive/2005/04/27/2107.aspx&amp;amp;;title=team+system+marketing+is+just+starting+to+piss+me+off" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/04/27/2107.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/04/27/2107.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/04/27/2107.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/04/27/2107.aspx&amp;amp;title=team+system+marketing+is+just+starting+to+piss+me+off" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/04/27/2107.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/pmurphy/archive/2005/04/27/2107.aspx&amp;amp;;title=team+system+marketing+is+just+starting+to+piss+me+off" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/04/27/2107.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/pmurphy/archive/2005/04/27/2107.aspx&amp;amp;;title=team+system+marketing+is+just+starting+to+piss+me+off&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/04/27/2107.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=2107" width="1" height="1"&gt;</description></item><item><title>x64 Registry Tree for 32bit software</title><link>http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2106.aspx</link><pubDate>Tue, 19 Apr 2005 09:08:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:2106</guid><dc:creator>pmurphy</dc:creator><slash:comments>0</slash:comments><comments>http://aspadvice.com/blogs/pmurphy/comments/2106.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/pmurphy/commentrss.aspx?PostID=2106</wfw:commentRss><description>&lt;P&gt;I really like 2 games. World of Warcraft and Unreal Tournament 2004. Because these games are so large and take so long to install and because I seem to blow away my workstation every couple of weeks. I have gotten into the habit of keeping them installed on a seperate drive and simply importing the registry setting to 'install' them when I reinstall my OS. This model has worked fine for a long time.&lt;/P&gt;
&lt;P&gt;However I recently moved to the release version of x64 XP and this didn't work. Unreal would not run at all and WoW would run but the performance was total crap. When I started investigating the performance I noticed that Wow.exe was showing in the task manager as wow.exe as opposied to wow.exe*32 like it should. This was perplexing. &lt;/P&gt;
&lt;P&gt;My first attempt at a fix was to move the game into the Program Files(x86) directory thinking this would tell Windows to load me up as x86. This wasn't the case. Second I tried to put the application into 'Windows XP' compatibility mode. No luck thier either. &lt;/P&gt;
&lt;P&gt;After spelunking around the registry, I noticed that there was a new subtree titled Wow6432node inside of HKLM\Software. Moving the registry keys into here fixed it.&lt;/P&gt;
&lt;P&gt;Interesting problem, so I figured I'd share.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;UPDATE:: I sat down to play WoW tonight and it loaded it up and ran it as x64 again. I'm not sure what is going on. If anyone knows how to force an app to run as x86, I'd love to know how.&lt;/P&gt;
&lt;P&gt;UPDATE:: I take that back. It must have had something to do with the 1.40 patch installer launching the game. Now it is working fine again. Disregard that last update.&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2106.aspx&amp;amp;;subject=x64+Registry+Tree+for+32bit+software" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2106.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2106.aspx&amp;amp;;title=x64+Registry+Tree+for+32bit+software" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2106.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2106.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2106.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2106.aspx&amp;amp;title=x64+Registry+Tree+for+32bit+software" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2106.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2106.aspx&amp;amp;;title=x64+Registry+Tree+for+32bit+software" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2106.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2106.aspx&amp;amp;;title=x64+Registry+Tree+for+32bit+software&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2106.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=2106" width="1" height="1"&gt;</description></item><item><title>Team System Install Complete; no issues, 1 concern</title><link>http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2105.aspx</link><pubDate>Tue, 19 Apr 2005 09:02:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:2105</guid><dc:creator>pmurphy</dc:creator><slash:comments>1</slash:comments><comments>http://aspadvice.com/blogs/pmurphy/comments/2105.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/pmurphy/commentrss.aspx?PostID=2105</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Garamond&gt;I got team system installed today. It was a breeze.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Garamond&gt;There are couple of things I'd like to point out about the install that might matter if you are running on x64 hardware. While the installation docs do claim you can install on x64, it does not mention an important fact about running x64 ASP.NET. &lt;BR&gt;&lt;BR&gt;IIS can only load one version of the framework at a time. When you install .net 2.0 it changes IIS to run .net 2.0. This will break an app tier install because the app tier, which is WSS based requires the 1.1 version of the framework. This means that you will need to tweak some registry keys to force the correct version of ASP.NET to load. &lt;BR&gt;&lt;BR&gt;I personally haven't experienced the problem first hand as I installed on 32bit Windows, but having some experience with the x64 ASP.NET modules leads me to believe that the foundation servers CAN NOT run on 64 hardware even though the docs claim that it can (see reporting services would need the 2.0 runtime, while WSS would need 1.1.&lt;BR&gt;&lt;BR&gt;I got a buddy on the Team System team who is looking into this, so expect something official from Microsoft at some point in the near future. My advice at this point in time would be to either use a 2 tier configuration with the data tier running on x64 and the app tier running on x86, or just use a single tier x86 configuration.&lt;BR&gt;&lt;BR&gt;Again, this is just me talking here and I haven't really tested it myself. It just seems like there isn't any logical way for it to work. Stay tuned for more information.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Garamond&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Garamond&gt;UPDATE: 04/20/05 Yeah. this is confirmed. x64 is not currently supported for TFS for the reason outlined above. The docs are incorrect with regards to Opteron support.&lt;/FONT&gt;&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2105.aspx&amp;amp;;subject=Team+System+Install+Complete%3b+no+issues%2c+1+concern" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2105.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2105.aspx&amp;amp;;title=Team+System+Install+Complete%3b+no+issues%2c+1+concern" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2105.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2105.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2105.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2105.aspx&amp;amp;title=Team+System+Install+Complete%3b+no+issues%2c+1+concern" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2105.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2105.aspx&amp;amp;;title=Team+System+Install+Complete%3b+no+issues%2c+1+concern" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2105.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2105.aspx&amp;amp;;title=Team+System+Install+Complete%3b+no+issues%2c+1+concern&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/pmurphy/archive/2005/04/19/2105.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=2105" width="1" height="1"&gt;</description></item></channel></rss>