<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/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>Wimdows.NET</title><link>http://weblogs.asp.net/wim/default.aspx</link><description>Wim&amp;#39;s .NET blog</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Unexpected behaviour: Defining values in enums</title><link>http://weblogs.asp.net/wim/archive/2007/02/23/unpexpected-behaviour-defining-values-in-enums.aspx</link><pubDate>Fri, 23 Feb 2007 15:35:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1769622</guid><dc:creator>Wim</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/wim/rsscomments.aspx?PostID=1769622</wfw:commentRss><comments>http://weblogs.asp.net/wim/archive/2007/02/23/unpexpected-behaviour-defining-values-in-enums.aspx#comments</comments><description>&lt;p&gt;I don&amp;#39;t normally regurgitate other blogger&amp;#39;s posts like a headless chicken, but in this case it&amp;#39;s worth mentioning.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://kntajus.blogspot.com/"&gt;Stephen&lt;/a&gt;, a colleague of mine, and a picky sod (who puts their enums in alphabetical order? - no serious comments on that remark, pulllleazee!), ran into some &lt;a href="http://kntajus.blogspot.com/2007/02/defining-values-in-enums.html"&gt;unexpected behaviour with regards to enums&lt;/a&gt;. Worth a read.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1769622" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/wim/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/wim/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/wim/archive/tags/enum/default.aspx">enum</category></item><item><title>Teaser - upcoming forum software / message board AtlasForums</title><link>http://weblogs.asp.net/wim/archive/2006/10/10/Teaser-_2D00_-upcoming-forum-software-_2F00_-message-board-AtlasForums.aspx</link><pubDate>Tue, 10 Oct 2006 19:34:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:648012</guid><dc:creator>Wim</dc:creator><slash:comments>14</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/wim/rsscomments.aspx?PostID=648012</wfw:commentRss><comments>http://weblogs.asp.net/wim/archive/2006/10/10/Teaser-_2D00_-upcoming-forum-software-_2F00_-message-board-AtlasForums.aspx#comments</comments><description>&lt;p&gt;Here&amp;#39;s a quick screen grab from an upcoming forum project I&amp;#39;m working on: AtlasForums. As I progress with this, I&amp;#39;ll post more and more details as I get closer to launch.&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.wimdows.com/af.png" alt="" width="747" height="536" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Hope you like what you see so far.&lt;br /&gt;&lt;br /&gt;Cheers! &lt;br /&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=648012" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/wim/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/wim/archive/tags/Community+News/default.aspx">Community News</category></item><item><title>Bug in Community Server URL Rewriter</title><link>http://weblogs.asp.net/wim/archive/2006/10/02/Bug-in-Community-Server-URL-Rewriter.aspx</link><pubDate>Mon, 02 Oct 2006 17:26:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:605597</guid><dc:creator>Wim</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/wim/rsscomments.aspx?PostID=605597</wfw:commentRss><comments>http://weblogs.asp.net/wim/archive/2006/10/02/Bug-in-Community-Server-URL-Rewriter.aspx#comments</comments><description>&lt;p&gt;As just seen when trying to access &lt;a href="http://weblogs.asp.net/pleloup/archive/2006/10/02/Message-Board_3A00_-which-one-are-you-using_3F00_.aspx"&gt;Patrick&amp;#39;s blog post&lt;/a&gt; about Forums.&lt;/p&gt;&lt;p&gt;Looks like the CS URL rewrite engine looks for forward slash followed by &amp;quot;Forums&amp;quot; and zero or more characters, ending at &amp;quot;.aspx&amp;quot;, which obviously messes up any blog posts starting with Forums in the title...oops!&lt;/p&gt;&lt;p&gt;Sounds like a straight forward enough fix though. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: this seems to have been fixed now.&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=605597" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/wim/archive/tags/Community+News/default.aspx">Community News</category><category domain="http://weblogs.asp.net/wim/archive/tags/Community+Server/default.aspx">Community Server</category></item><item><title>CreativeCreek.net - portfolio website service launched (ASP.NET 2.0)!</title><link>http://weblogs.asp.net/wim/archive/2006/09/24/CreativeCreek.net-_2D00_-portfolio-website-service-launched-_2800_ASP.NET-2.0_29002100_.aspx</link><pubDate>Sun, 24 Sep 2006 14:06:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:578259</guid><dc:creator>Wim</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/wim/rsscomments.aspx?PostID=578259</wfw:commentRss><comments>http://weblogs.asp.net/wim/archive/2006/09/24/CreativeCreek.net-_2D00_-portfolio-website-service-launched-_2800_ASP.NET-2.0_29002100_.aspx#comments</comments><description>&lt;p&gt;Just like to let you all know I&amp;#39;ve just launched a porfolio website service, &lt;a href="http://www.creativecreek.net"&gt;CreativeCreek.net&lt;/a&gt;, developed in ASP.NET 2.0.&lt;/p&gt;&lt;p&gt;It&amp;#39;s been a limited beta for a while now, but you need to get apps out there first in order to get useful iteration cycles going and expand on all the &lt;a href="http://www.creativecreek.net/features.aspx"&gt;features&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;If you&amp;#39;re into photography or know someone who is, you may want to &lt;a href="http://www.creativecreek.net"&gt;check it out&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=578259" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/wim/archive/tags/Community+News/default.aspx">Community News</category></item><item><title>Dump the Module keyword in VB.NET!</title><link>http://weblogs.asp.net/wim/archive/2006/09/03/Dump-the-Module-keyword-in-VB.NET_2100_.aspx</link><pubDate>Sun, 03 Sep 2006 11:53:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:515155</guid><dc:creator>Wim</dc:creator><slash:comments>24</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/wim/rsscomments.aspx?PostID=515155</wfw:commentRss><comments>http://weblogs.asp.net/wim/archive/2006/09/03/Dump-the-Module-keyword-in-VB.NET_2100_.aspx#comments</comments><description>Though I&amp;#39;m mainly a C# developer, I now and then get exposed to some VB.NET stuff. No, this is not going to be a C# vs. VB.NET debate. We&amp;#39;ve seen enough heated arguments and flame wars on that topic over the years.&lt;br /&gt;
&lt;br /&gt;
Something about VB.NET Console applications created in Visual Studio.NET (all versions), bugs me though: the dreaded Module keyword. The default skeleton for a Console app in VB.NET looks like this:&lt;br /&gt;
&lt;br /&gt;
&lt;font face="Courier"&gt;Module Module1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Sub Main()&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;End Sub&lt;br /&gt;
End Module&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
Whilst under the hood, a module is simply a class with static members and a private default constructor to prevent instantiation, I don&amp;#39;t think its use should be promoted like that. And I really wonder why MS hasn&amp;#39;t changed the default Console app skeleton to look as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;font face="Courier"&gt;Class Program&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Shared Sub Main()&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;End Sub&lt;br /&gt;
End Class&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
In my opinion, the Module keyword shouldn&amp;#39;t have even existed in VB.NET. It&amp;#39;s one of the reasons why a lot of VB.NET code I&amp;#39;ve seen simply gets dumped in a Module, and Object Oriented Programming goes out the window. Of course, there&amp;#39;s nothing stopping you coding like that in VB.NET without using the Module keyword, or even in C# for that matter. But it is a step in the right direction in trying to get developers to think about object oriented class design first (static/shared vs. instance members etc), before shoving anything and everything in a Module.&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=515155" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/wim/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/wim/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/wim/archive/tags/VB.NET/default.aspx">VB.NET</category></item><item><title>Zune MP3 player - DRM'ed or not?</title><link>http://weblogs.asp.net/wim/archive/2006/08/26/Zen-MP3-player-_2D00_-DRM_2700_ed-or-not_3F00_.aspx</link><pubDate>Fri, 25 Aug 2006 23:27:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:488097</guid><dc:creator>Wim</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/wim/rsscomments.aspx?PostID=488097</wfw:commentRss><comments>http://weblogs.asp.net/wim/archive/2006/08/26/Zen-MP3-player-_2D00_-DRM_2700_ed-or-not_3F00_.aspx#comments</comments><description>Here&amp;#39;s a question for a debate. Do you think Microsoft&amp;#39;s upcoming audio player, dubbed Zune, will play only DRM compatible content?&lt;br /&gt;&amp;nbsp;&lt;br /&gt;
If that is the case, I won&amp;#39;t be touching it with a barge-pole; same reason I haven&amp;#39;t got myself an iPod.&lt;br /&gt;&lt;br /&gt;
If I have legal MP3 files, ripped them from CD&amp;#39;s I own or bought them legally I feel I should be able to play this on however many devices I want, as long as I own them. That means my MP3 player, my phone, server, desktop, laptop, you name it - without restrictions.&lt;br /&gt;&lt;br /&gt;If Microsoft wants to have an edge over the IPod, they need to make sure it works without DRM mangled content. If not, it will flop. Big time.&lt;br /&gt;&lt;br /&gt;
What do you guys think?&amp;nbsp;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=488097" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/wim/archive/tags/Community+News/default.aspx">Community News</category><category domain="http://weblogs.asp.net/wim/archive/tags/General+Software+Development/default.aspx">General Software Development</category></item><item><title>ViewState, CheckBox, ControlState...errr...</title><link>http://weblogs.asp.net/wim/archive/2006/08/24/ViewState_2C00_-CheckBox_2C00_-ControlState_2E002E002E00_errr_2E002E002E00_.aspx</link><pubDate>Thu, 24 Aug 2006 14:49:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:482553</guid><dc:creator>Wim</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/wim/rsscomments.aspx?PostID=482553</wfw:commentRss><comments>http://weblogs.asp.net/wim/archive/2006/08/24/ViewState_2C00_-CheckBox_2C00_-ControlState_2E002E002E00_errr_2E002E002E00_.aspx#comments</comments><description>&lt;a href="http://weblogs.asp.net/palermo4"&gt;J. Michael Palermo&lt;/a&gt; &lt;a href="http://weblogs.asp.net/palermo4/archive/2006/08/23/CheckBox-Control-Divorced-From-ViewState.aspx"&gt;writes&lt;/a&gt; about the CheckBox in ASP.NET maintaining its state regardless of the EnableViewState attribute to False in ASP.NET 2.0.&lt;br /&gt;&lt;br /&gt;
Hang on - isn&amp;#39;t that the same in ASP.NET 1.0 and 1.1? Oh yes.&lt;br /&gt;&lt;br /&gt;All web controls that implement the IPostBackDataHandler maintain their basic &amp;#39;value-state&amp;#39; (for lack of a better description) using the HTTP POST form collection. Irrespective of setting the EnableViewState property for the web control to False.&lt;br /&gt;&lt;br /&gt;Nothing has changed in ASP.NET 2.0 as far as that is concerned. The CheckBox control along with TextBox and other controls that implement the IPostBackDataHandler interface, still maintain their basic value-state using their respective HTTP POST values. ControlState has nothing to do with this.&lt;br /&gt;&lt;br /&gt;ControlState is a way to allow more fine-grained control over individual portions or behavioural elements of a web control, which under the bonnet actually still uses the ViewState statebag. &lt;a href="http://pluralsight.com/blogs/fritz/archive/2004/07/01/472.aspx"&gt;Fritz Onion&amp;#39;s article&lt;/a&gt; outlines this nicely and in more detail.&lt;br /&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=482553" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/wim/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/wim/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Generic Parse method on Enum - a solution</title><link>http://weblogs.asp.net/wim/archive/2006/07/06/Generic-Parse-method-on-Enum-_2D00_-a-solution.aspx</link><pubDate>Thu, 06 Jul 2006 08:59:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:455696</guid><dc:creator>Wim</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/wim/rsscomments.aspx?PostID=455696</wfw:commentRss><comments>http://weblogs.asp.net/wim/archive/2006/07/06/Generic-Parse-method-on-Enum-_2D00_-a-solution.aspx#comments</comments><description>&lt;a href="http://weblogs.asp.net/dfindley"&gt;David Findley&lt;/a&gt; writes about how he &lt;a href="http://weblogs.asp.net/dfindley/archive/2006/07/05/Can-we-get-a-generic-Parse-method-on-Enum-in-the-next-version-of-.NET_3F00_.aspx"&gt;wishes&lt;/a&gt; we had a generic Parse method on the Enum class in .NET 2.0.&lt;br&gt;&lt;br&gt;Though I agree in principle, it's actually quite trivial to create a generic static class with a Parse method, which alleviates some of the pain.&lt;br&gt;&lt;br&gt;Here's my stab at it:&lt;br&gt;&lt;font face="Courier New" size="2"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static class EnumUtil&amp;lt;T&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static T Parse(string s)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (T)Enum.Parse(typeof(T), s);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br&gt;&lt;br&gt;Say we have the following enum:&lt;br&gt;&lt;br&gt;&lt;font face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public enum Color&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Black,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; White,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Blue,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Red,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Green&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;/font&gt;&lt;br&gt;We can now simply use the generic EnumUtil class as follows:&lt;br&gt;&lt;br&gt;&lt;font face="Courier New" size="2"&gt;Color c = EnumUtil&amp;lt;Color&amp;gt;.Parse("Black");&lt;/font&gt;&lt;br&gt;&lt;br&gt;I feel that this helper method doesn't actually warrant a class in its own right, so you may want to add it to one of your Util classes (if you happen to have a generic one!) instead.&lt;br&gt;&lt;br&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=455696" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/wim/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/wim/archive/tags/enum/default.aspx">enum</category></item><item><title>ArraySegment Structure - what were they thinking?</title><link>http://weblogs.asp.net/wim/archive/2006/06/14/ArraySegment-Structure---what-were-they-thinking_3F00_.aspx</link><pubDate>Wed, 14 Jun 2006 14:24:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:452412</guid><dc:creator>Wim</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/wim/rsscomments.aspx?PostID=452412</wfw:commentRss><comments>http://weblogs.asp.net/wim/archive/2006/06/14/ArraySegment-Structure---what-were-they-thinking_3F00_.aspx#comments</comments><description>From the &lt;a href="http://msdn2.microsoft.com/en-us/1hsbd92d.aspx"&gt;MSDN docs&lt;/a&gt;:&lt;br /&gt;&lt;em&gt;&lt;span&gt;&lt;strong&gt;ArraySegment&lt;/strong&gt; is a wrapper around an array that delimits a range of elements in that array. Multiple &lt;strong&gt;ArraySegment&lt;/strong&gt; instances can refer to the same original array and can overlap.&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;span&gt;&lt;br /&gt;Turns out this structure doesn&amp;#39;t even deserve the definition &amp;#39;wrapper&amp;#39;. It simply takes the array, offset and number of elements in your segment, and sets a few properties accordingly.&lt;br /&gt;&lt;br /&gt;Subsequently when you want to iterate over the items in your ArraySegment, you still need to use a combination of Offset and Count to achieve this. How is this different from not creating an ArraySegment and define your Offset in-situ as well as the number of elements?&lt;br /&gt;&lt;br /&gt;I was expecting to be able to do something like this:&lt;br /&gt;&lt;br /&gt;&lt;font face="Courier New" size="2"&gt;ArraySegment&amp;lt;string&amp;gt; seg = new ArraySegment&amp;lt;string&amp;gt;(new string[] { &amp;quot;John&amp;quot;,&amp;quot;Jack&amp;quot;,&amp;quot;Jill&amp;quot;,&amp;quot;Joe&amp;quot;},1,2);&lt;br /&gt;// Access first item in segment&lt;br /&gt;string first = seg[0];&lt;br /&gt;// Iterate through ArraySegment&lt;br /&gt;foreach (string s in seg)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(s);&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Turns out you can&amp;#39;t. There&amp;#39;s no indexer for ArraySegment and no enumerator. You have to access the .Array property and use .Count and .Offset as passed to the constructor. What is the point of that!?&lt;br /&gt;&lt;br /&gt;So I rolled my own generic DelimitedArray class which does exactly that. See the inline code below.&lt;br /&gt;&lt;br /&gt;&lt;font face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class DelimitedArray&amp;lt;T&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public DelimitedArray(T[] array, int offset, int count)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this._array = array;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this._offset = offset;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this._count = count;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private int _offset;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private T[] _array;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private int _count;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int Count&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return this._count; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public T this[int index]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int idx = this._offset + index;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (idx &amp;gt; this.Count - 1 || idx&amp;lt;0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new IndexOutOfRangeException(&amp;quot;Index &amp;#39;&amp;quot; + idx + &amp;quot;&amp;#39; was outside the bounds of the array.&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return this._array[idx];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public IEnumerator&amp;lt;T&amp;gt; GetEnumerator()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = this._offset; i &amp;lt; this._offset + this.Count; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; yield return this._array[i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Hope this is of use to someone.&lt;br /&gt;&lt;/span&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=452412" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/wim/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/wim/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/wim/archive/tags/ArraySegment/default.aspx">ArraySegment</category><category domain="http://weblogs.asp.net/wim/archive/tags/array/default.aspx">array</category></item><item><title>ASP.NET 1.1 server control for &lt;link&gt; - enabling relative URL paths using tilde "~"</title><link>http://weblogs.asp.net/wim/archive/2006/04/27/444169.aspx</link><pubDate>Thu, 27 Apr 2006 10:56:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:444169</guid><dc:creator>Wim</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/wim/rsscomments.aspx?PostID=444169</wfw:commentRss><comments>http://weblogs.asp.net/wim/archive/2006/04/27/444169.aspx#comments</comments><description>Here's a simple - but useful Link webcontrol class that supports the "~" tilde syntax for relative paths for the href attribute of the &amp;lt;link&amp;gt; element.&lt;br /&gt;&lt;br /&gt;&lt;font face="Courier New" size="2"&gt;[DefaultProperty("Text"),ToolboxData("&amp;lt;{0}:Link runat=server Href=\"\" Rel=\"Stylesheet\" Type=\"text/css\"&amp;gt;&amp;lt;/{0}:Link&amp;gt;")]&lt;br /&gt;public class Link : System.Web.UI.WebControls.WebControl&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;private string _href;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;public string Href&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;get { return _href; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;set { _href = value; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;protected override void Render(HtmlTextWriter output)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;output.WriteBeginTag("link");&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;output.WriteAttribute("href",base.ResolveUrl(this.Href));&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach (string key in this.Attributes.Keys)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;output.WriteAttribute(key,this.Attributes[key]);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;output.Write(HtmlTextWriter.TagRightChar);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;output.WriteEndTag("link");&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;You can then simply drop it in the &amp;lt;head&amp;gt; section of your page (provided you've used the Register directive to register the assembly):&lt;br /&gt;&lt;br /&gt;&lt;islington:link id="Link1" runat="server" type="text/css" rel="Stylesheet" href="%7E/my.css" myattribute="Whatever"&gt;&lt;/islington:link&gt;&lt;islington:link id="Link1" runat="server" type="text/css" rel="Stylesheet" href="%7E/my.css" myattribute="Whatever"&gt;&lt;/islington:link&gt;&lt;islington:link id="Link1" runat="server" type="text/css" rel="Stylesheet" href="%7E/my.css" myattribute="Whatever"&gt;&lt;/islington:link&gt;&lt;font face="Courier New" size="2"&gt;&amp;lt;cc1:Link id="Link1" runat="server" Type="text/css" Rel="Stylesheet" Href="~/my.css" myattribute="Whatever"&amp;gt;&amp;lt;/cc1:Link&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;The reason I had to roll my own is that when you add runat="server" for the &amp;lt;link&amp;gt; element, it turns into a HtmlGenericControl instance on the server, which is obviously used for numerous HTML elements, and as such no specific path resolve mechanism is applied to any of its attributes, since the attributes are different per HTML element.&lt;br /&gt;&lt;br /&gt;Hope it helps someone out.&lt;br /&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=444169" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/wim/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/wim/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/wim/archive/tags/Techie+Stuff/default.aspx">Techie Stuff</category></item><item><title>PayPal API: what a nightmare!!!</title><link>http://weblogs.asp.net/wim/archive/2006/01/27/436664.aspx</link><pubDate>Fri, 27 Jan 2006 12:42:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:436664</guid><dc:creator>Wim</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/wim/rsscomments.aspx?PostID=436664</wfw:commentRss><comments>http://weblogs.asp.net/wim/archive/2006/01/27/436664.aspx#comments</comments><description>I've been trying to get up and running with the PayPal API, see &lt;a href="http://www.paypal.com/developer"&gt;www.paypal.com/developer&lt;/a&gt;.What a complete nuisance that is!&lt;br /&gt;&lt;br /&gt;The test accounts you create (on the sandbox, &lt;a href="http://www.sandbox.paypal.com"&gt;http://www.sandbox.paypal.com&lt;/a&gt;) actually need to be verified, before you can request an API cerificate. I finally managed to complete 2 out of the 3 verification steps but setting up the bank funding just fails:&lt;br /&gt;&lt;br /&gt;I can add a US bank account, and according to the documentation (&lt;a href="https://www.paypal.com/en_US/pdf/PP_Sandbox_UserGuide.pdf"&gt;PP_Sandbox_UserGuide&lt;/a&gt; , page 22), you will see the 'Continue' button after adding an account which will take you to the overview page. Well, there is no 'Continue' button, and no 'Confirm Bank Account' link in the Activate&amp;nbsp; Account box either, which means I cannot complete that step, and can't request an API cert. to start using the API.&lt;br /&gt;&lt;br /&gt;I have tried to add a UK bank account, using the sortcode prodived in the same user guide, but it always fails saying that it's an incorrect sort code and incorrect 8 digit account number.&lt;br /&gt;&lt;br /&gt;Why the bloody heck is their documentation inconsistent with the behaviour of the sandbox? And why on earth do people have to jump through so many hoops to use their API?&lt;br /&gt;&lt;br /&gt;Have you used the PayPal API? Any thoughts on this?&lt;br /&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=436664" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/wim/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/wim/archive/tags/Techie+Stuff/default.aspx">Techie Stuff</category></item><item><title>Public available data - FREE screenscraping or pay for API</title><link>http://weblogs.asp.net/wim/archive/2006/01/23/436245.aspx</link><pubDate>Mon, 23 Jan 2006 20:42:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:436245</guid><dc:creator>Wim</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/wim/rsscomments.aspx?PostID=436245</wfw:commentRss><comments>http://weblogs.asp.net/wim/archive/2006/01/23/436245.aspx#comments</comments><description>Been working on a semi-commercial pet project of mine, for which I need a data feed.&lt;br /&gt;&lt;br /&gt;A decent enough subset of this data feed is publicly available from this content provider's main website. However, the full dataset (though I won't need all that) is available through an HTTP GET XML API... For a flat fee of over 500 dollars per year.&lt;br /&gt;&lt;br /&gt;What would you do? 1) Roll it yourself in about 20 lines of .NET code (using HttpWebRequest &amp;amp; Regex's) and scrape it; 2) Pay for the API...?&lt;br /&gt;&lt;br /&gt;Needless to say, I went for 1)...even for just the fun.&lt;br /&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=436245" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/wim/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/wim/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>Hack: turn your optical mouse into a scanner</title><link>http://weblogs.asp.net/wim/archive/2006/01/12/435171.aspx</link><pubDate>Thu, 12 Jan 2006 18:06:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:435171</guid><dc:creator>Wim</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/wim/rsscomments.aspx?PostID=435171</wfw:commentRss><comments>http://weblogs.asp.net/wim/archive/2006/01/12/435171.aspx#comments</comments><description>Why? Because it can be done. :-)&lt;br /&gt;&lt;br /&gt;"&lt;i&gt;Ever wonder what your desk surface looks like up close? No. No one has. Not even [Sprite_tm], but upon disassembling his optical mouse and discovering its 18x18 CCD he decided to put it to use (well, a different use). The optical chip outputs serial information to the USB chip in the mouse. [Sprite_tm] wired the optical chip to a parallel port and wrote a simple program to interpret the data. Not really useful, but it does generate some interesting pictures. Program provided, natch.&lt;/i&gt;"&lt;br /&gt;&lt;br /&gt;&lt;img src="http://img.engadget.com/common/images/3060000000059096.JPG?0.1986605715926001" /&gt;&lt;br /&gt;&lt;br /&gt;Via: &lt;a href="http://www.hackaday.com/entry/1234000770073476/"&gt;Hackaday.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Very cool, indeed.&lt;br /&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=435171" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/wim/archive/tags/Techie+Stuff/default.aspx">Techie Stuff</category></item><item><title>Tesco's UK - only 3,000 XBOX 360's at launch....!!!</title><link>http://weblogs.asp.net/wim/archive/2005/12/01/432038.aspx</link><pubDate>Thu, 01 Dec 2005 23:16:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:432038</guid><dc:creator>Wim</dc:creator><slash:comments>20</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/wim/rsscomments.aspx?PostID=432038</wfw:commentRss><comments>http://weblogs.asp.net/wim/archive/2005/12/01/432038.aspx#comments</comments><description>Just been told by a member of staff of Tesco, here in the UK that there's only around 3,000 XBOX 360's in Britain. I'm definitely guessing he meant 3,000 XBOX 360's at launch with Tesco's, which seems like an incredibly small amount for such a big superstore.&lt;br /&gt; &lt;br /&gt; I phoned a big Tesco Extra's store in Swansea, Wales. They only had 11 XBOX 360's in! And people had been waiting for them from 6'o clock...&lt;br /&gt; &lt;br /&gt; Surely MS must be putting some pressure on the production of these units! Get on with it! If you want to win the battle with Sony's PS3, better increase production! Sounds like the demand is enormous...despite the rumours of crashes and BSOD's etc.&lt;br /&gt; &lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=432038" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/wim/archive/tags/Techie+Stuff/default.aspx">Techie Stuff</category><category domain="http://weblogs.asp.net/wim/archive/tags/General/default.aspx">General</category></item><item><title>Why don't we see any patches for Visual Studio .NET? (2002, 2003, 2005...)</title><link>http://weblogs.asp.net/wim/archive/2005/11/04/429507.aspx</link><pubDate>Fri, 04 Nov 2005 13:36:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:429507</guid><dc:creator>Wim</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/wim/rsscomments.aspx?PostID=429507</wfw:commentRss><comments>http://weblogs.asp.net/wim/archive/2005/11/04/429507.aspx#comments</comments><description>&lt;A href="http://weblogs.asp.net/fbouma"&gt;Frans&lt;/a&gt; has mentioned this on &lt;A href="http://weblogs.asp.net/fbouma/archive/2004/03/13/89021.aspx"&gt;numerous occasions&lt;/a&gt; I believe, and this topic has &lt;A href="http://weblogs.asp.net/fbouma/archive/2005/11/03/429371.aspx"&gt;reared&lt;/a&gt; its ugly head &lt;A href="http://weblogs.asp.net/pleloup/archive/2005/11/04/429496.aspx"&gt;once again&lt;/a&gt;. &lt;a href="http://blogs.msdn.com/danielfe/archive/2004/03/13/89006.aspx"&gt;Dan Fernandez' post&lt;/a&gt; back in March 2004, doesn't really address the reasoning behind it.&lt;br /&gt; &lt;br /&gt; Personally, I really don't see the difficulty for Microsoft in releasing publicly available patches or hotfixes for VS.NET. It happens for the .NET framework, all OS'es and Office products, why not for VS.NET?&lt;br /&gt; &lt;br /&gt; At the lowest level, it's only shuffling around a few bits and bytes for the affected binary files. Even with the different VS.NET product versions, they could release a patch for each version if needs be.&lt;br /&gt; &lt;br /&gt; Anyone care to comment on the reasoning behind this?&lt;br /&gt; &lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=429507" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/wim/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/wim/archive/tags/Techie+Stuff/default.aspx">Techie Stuff</category></item></channel></rss>