<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Channel 9 - Discussions by rasx</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Niners/rasx/Discussions/RSS"></atom:link>
	<image>
		<url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png</url>
		<title>Channel 9 - Discussions by rasx</title>
		<link>http://channel9.msdn.com/Niners/rasx/Discussions</link>
	</image>
	<description>Channel 9 keeps you up to date with the latest news and behind the scenes info from Microsoft that developers love to keep up with. From LINQ to SilverLight – Watch videos and hear about all the cool technologies coming and the people behind them.</description>
	<link>http://channel9.msdn.com/Niners/rasx/Discussions</link>
	<language>en</language>
	<pubDate>Tue, 18 Jun 2013 05:08:57 GMT</pubDate>
	<lastBuildDate>Tue, 18 Jun 2013 05:08:57 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<c9:totalResults>0</c9:totalResults>
	<c9:pageCount>0</c9:pageCount>
	<c9:pageSize>0</c9:pageSize>
	<item>
		<title>Tech Off - Blog Comment Spam Caused by Google (Blogspot.com)</title>
		<description><![CDATA[<p><p class="MsoNormal">With all due respect to the terrible infants at digg.com who may have pinged this “a long time ago,” I notice that my WordPress.org spam comments in moderation are coming from Google, its blogspot.com site. For the last few days, I’ve been
 stimulated by the possibility of eliminating <i>all</i> comment spam from my moderation queue—but some witty person(s) out there is holding blogspot.com hostage.</p>
<p class="MsoNormal">The implication is that someone has the ability to set up dummy accounts at blogspot.com and use them as spam robots probably from another zombie-controlling machine. I am surprised that the kids in the hall for dig.com are not up in arms
 about this one… Maybe Microsoft should unleash this one the wired world to rouse some anger.[6]</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/176879-Blog-Comment-Spam-Caused-by-Google-Blogspotcom/176879#176879</link>
		<pubDate>Tue, 11 Apr 2006 20:31:16 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/176879-Blog-Comment-Spam-Caused-by-Google-Blogspotcom/176879#176879</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>1</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - GoDaddy.com Does Not Support REST Calls for ASP.NET 2.0</title>
		<description><![CDATA[<p><p class="MsoNormal">Are you hip to the jive? Well let’s go daddy—go! So dig this:</p>
<pre>string uri = &quot;<a href="http://songhaysystem.com/xml/amazon_rest_calls.xml&quot;;">http&#58;&#47;&#47;songhaysystem.com&#47;xml&#47;amazon_rest_calls.xml&#34;&#59;</a><br><br>WebPermission perm = new WebPermission();<br><br>perm.AddPermission(NetworkAccess.Connect, uri);<br><br>perm.Demand();</pre>
<p class="MsoNormal">I do not like to be right about things like this—so do not hesitate to tell me that I am wrong. It appears that the last line of code above will
<i>always</i> throw an error for shared hosting accounts running on .NET Framework 2.0 (ASP.NET 2.0). This means that ASP.NET 2.0
<a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">REST</a> calls are impossible for GoDaddy.com shared hosting customers.</p>
<p class="MsoNormal">Since I have already contacted GoDaddy.com and have an understanding about their attitude regarding this problem, this is an opportunity for competitors out there to let me—and other GoDaddy.com customers—know how you deal with this problem.
 Is this a Microsoft “locked trust” problem? Is this just a configuration issue under the control of GoDaddy.com?</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/133151-GoDaddycom-Does-Not-Support-REST-Calls-for-ASPNET-20/133151#133151</link>
		<pubDate>Mon, 14 Nov 2005 22:00:46 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/133151-GoDaddycom-Does-Not-Support-REST-Calls-for-ASPNET-20/133151#133151</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>1</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Middle-Market products</title>
		<description><![CDATA[<p>I am supremely confident that you will not get a direct answer to this question from a qualified Microsoft employee, who is able to define, say “too expensive.”</p>
<p>When I am permitted to speculate, I would say that Microsoft defines a <i>small</i> business as one that makes just over a million U.S. dollars a year. You and I might define a small business as one that makes over $50,000 and under $100,000.</p>
<p>Our small businesses would definitely welcome SQL Server Express over MSDE and Access!</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/44853-Middle-Market-products/0852f551f9a446ed89d79dec0031fe55#0852f551f9a446ed89d79dec0031fe55</link>
		<pubDate>Mon, 07 Mar 2005 23:01:49 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/44853-Middle-Market-products/0852f551f9a446ed89d79dec0031fe55#0852f551f9a446ed89d79dec0031fe55</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>3</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Video suggestion</title>
		<description><![CDATA[<p>This thread begs the question, 'Which product teams are least likely to interview?'<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/44121-Video-suggestion/1c95697e4497483c8b9d9dec003140d7#1c95697e4497483c8b9d9dec003140d7</link>
		<pubDate>Thu, 03 Mar 2005 23:48:45 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/44121-Video-suggestion/1c95697e4497483c8b9d9dec003140d7#1c95697e4497483c8b9d9dec003140d7</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>12</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - A new browser....</title>
		<description><![CDATA[<p>This browser kicks *! I was running Fire Fox as my default browser but there was a subtle negative impact for doing this (starting with initial app' load speed), which flared up into a strange problem with MSIE truncating it's title bar text and replacing
 the glyphs in the status bar with empty rectangles (this problem is hard to explain with words and I have no time right now to show a picture of this).<br>
<br>
I am very close to donating to the Avant team! Avant &#43; FireFox = a complete replacement for MSIE. I am sure the next OS will make such app' patching obsolete.<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/42862-A-new-browser/67963fdaad7b4bbeaa459dec002faf16#67963fdaad7b4bbeaa459dec002faf16</link>
		<pubDate>Fri, 25 Feb 2005 20:40:13 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/42862-A-new-browser/67963fdaad7b4bbeaa459dec002faf16#67963fdaad7b4bbeaa459dec002faf16</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>17</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Reverse Engineering the MSDNTV Episodes Page</title>
		<description><![CDATA[<p><p class="MsoNormal"><font face="Times New Roman" size="3">This probably has been obvious for many web architects but I am now guessing that the
</font><a href="http://msdn.microsoft.com/msdntv/archive.aspx"><font face="Times New Roman" size="3">MSDNTV archive</font></a><font face="Times New Roman" size="3"> links to one page (</font><font face="Lucida Console"><code><span><font color="#000080">espisode.aspx</font></span></code></font><font face="Times New Roman" size="3">)
 that then loads thousands (or millions) of little XML files (manifests?) with the same schema.</font></p>
<p class="MsoNormal"><font face="Times New Roman" size="3">This means that InfoPath users can create and edit these XML manifest files and save them to a location where the web site code finds them. This is a quick and dirty static publishing model that works
 perfectly for small business people who already have Microsoft office with InfoPath—dropping SharePoint into the mix can’t hurt (too much) as well.</font></p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/41165-Reverse-Engineering-the-MSDNTV-Episodes-Page/41165#41165</link>
		<pubDate>Fri, 18 Feb 2005 23:10:07 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/41165-Reverse-Engineering-the-MSDNTV-Episodes-Page/41165#41165</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>2</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - MCAD / MCSD</title>
		<description><![CDATA[<p>I'm <a href="http://songhaysystem.com/document.php?cmd=listSubjects&amp;code=vsnet">
studying for certification</a> and don't expect the tests to updated this year.<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/36087-MCAD--MCSD/aea98c05673d4cdcb2679dea013dbfb2#aea98c05673d4cdcb2679dea013dbfb2</link>
		<pubDate>Mon, 24 Jan 2005 06:38:01 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/36087-MCAD--MCSD/aea98c05673d4cdcb2679dea013dbfb2#aea98c05673d4cdcb2679dea013dbfb2</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>17</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Flippant Remarks about AbiWord 2.014</title>
		<description><![CDATA[<p>I have answered my questions about what Word 2003 can do with XHTML. I really, really would have preferred someone sending me a clue about a year ago. Unfortunately, I had to answer my questions that drove me to AbiWord by myself:<br>
<br>
<a href="http://songhaysystem.com/document.php?cmd=getDoc&amp;get=24">XHTML Schemas in Word 2003 Documents</a></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/34417-Flippant-Remarks-about-AbiWord-2014/55b9910d52f9454bb3f09dea0117500f#55b9910d52f9454bb3f09dea0117500f</link>
		<pubDate>Sun, 16 Jan 2005 02:11:23 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/34417-Flippant-Remarks-about-AbiWord-2014/55b9910d52f9454bb3f09dea0117500f#55b9910d52f9454bb3f09dea0117500f</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>4</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Flippant Remarks about AbiWord 2.014</title>
		<description><![CDATA[<p><font face="Verdana">I am a Microsoft guy for historical and practical reasons---not for ideological reasons. When some Oracle guy has a smart remark, I say, Hey, smarty slacks, back in the early 1990s when I was learning SQL I could not walk into an Office
 Depot and pick up a $99 Oracle database (with that special, software-laundering, anti-trusting &quot;competitive upgrade&quot; price). But I could get my hands on Microsoft products and this got me hooked---the MS Borg assimilated another victim.<br>
<br>
Now that my Office Depot days are over, here comes MSDN Universal Subscriptions via my W2 labors---so now I'm on the harder stuff and from my W2 point of view I am getting Microsoft software &quot;for free.&quot; So why would I care to write about AbiWord, this Open
 Source fledgling?<br>
<br>
Well, Microsoft employees can console themselves by considering my flippant remarks a minority opinion (in every sense of the term) but I don't think I am suffering from a terminal case of brown-eyed myopia when I say that MS Office is a bloated nebula of COM
 objects---composed of balls of strange orange gas and truly stellar objects. The gassy part of MS Office is really starting to stink when I think of my data as cross-platform XML data sets---and I am writing this sentence being fully aware of InfoPath and
 the XML features in Word 2003. So when I hear that AbiWord can read and write XHTML, I sit up and take notice. Unfortunately, these are the first few AbiWord bullets flying past my head:<br>
<br>
* AbiWord 2.014 provides no way to edit http: or mailto: hyperlinks that I can see, coming from a Microsoft Word perspective (which means I right-click on the hyperlink and I see a command like Edit Hyperlink). This non-feature alone drives me away from AbiWord
 2.014.<br>
<br>
* The toolbars in AbiWord 2.014 are out of the early 1990s. Don't take me back.<br>
<br>
* Features that resemble replacing-text-as-we-type (Auto-Correct or Intelli-Sense) does not appear to be in AbiWord 2.014. And I say this while seeing the Insert &gt; AutoText command in AbiWord 2.014.<br>
<br>
* The kerning and hinting information of the default font in the Windows version of AbiWord 2.014 does not appear to be recognized. Inconveniences like these may be beyond AbiSource control. I am aware of how hostile Microsoft can be to its competitors big
 and small.<br>
<br>
* I see nothing in AbiWord 2.014 that handles XML Schema information. I do not think that AbiWord 2.014 is designed from the ground up to be part of an XML workflow. Microsoft is trying to begin to start thinking about tinkering with XML-based products but
 the design goals at Microsoft are preoccupied with domination instead of integration (and of course another patch Tuesday is coming up).<br>
<br>
The main point of this rant is that I am completely unaware of a tool that is as convenient as a Word processor but it also is a built for rich data interchange. With MS InfoPath the price of entry is having a definite schema in mind. With MS Word 2003 you
 don't need to have a definite schema to get started (you can add that later), but the formatting of your document effectively---by default---belongs to Microsoft. Out of the box, Microsoft Word 2003 will allow you to interchange your raw text data with a custom
 schema but it will not let you interchange your formatting information with a custom schema---and I say this with the letters WORDML dancing in my head. I suppose you can &quot;schema-tize&quot; your formatting but the temptation to write your own code is not far away
 (and I am well beyond tempted). This limitation is unacceptable and as long as Microsoft pays little or no attention to this &quot;minority problem&quot; I will keep my brown eyes on tools like AbiWord.</font></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/34417-Flippant-Remarks-about-AbiWord-2014/34417#34417</link>
		<pubDate>Thu, 13 Jan 2005 01:01:53 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/34417-Flippant-Remarks-about-AbiWord-2014/34417#34417</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>4</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Every VOTE</title>
		<description><![CDATA[<p>&quot;All the Bush league batters<br>
Are left to die on the diamond<br>
<br>
In the stands<br>
the home crowd scatters<br>
for the turnstiles...&quot;<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/26754-Every-VOTE/f242d41212da4b6b9a109dea01329337#f242d41212da4b6b9a109dea01329337</link>
		<pubDate>Wed, 03 Nov 2004 22:45:45 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/26754-Every-VOTE/f242d41212da4b6b9a109dea01329337#f242d41212da4b6b9a109dea01329337</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>2</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - On Windows Programming</title>
		<description><![CDATA[<p>I am over 18 by almost two decades. I consciously made the decision to learn “the way” of .NET because it features the best of OOP (Java) where years and years worth of my data is being held hostage (by Microsoft).</p>
<p>My training is in the sciences and my discipline is in writing (for humans). This implies that I produce data on a
<i>personal</i> level—not just on the level of a resource in some IT shop. And keep in mind that when I say the word
<i>data</i> I refer to everything created by the <b>Save As…</b> command as well as DBMS storage. The WinFS world intends to make this mindset famous.</p>
<p>I started storing my data on the Microsoft platform because Linux was not around in my formative years—compared to the available data management technologies featuring the office analogy (windows, desktops, files and folders—and the DBMS) Microsoft
<i>was</i> the Linux of my formative years, during the late 1980s and early 1990s.</p>
<p>In those days, using a UNIX system meant having academic privileges. Using a Mac meant being stuck with crappy tool like the early version of FileMaker Pro (Access 2.0 was far superior). Using an Amiga meant…</p>
<p>So Microsoft excelled in providing <i>personal</i> data management tools for “small business”—, which really means that the average citizen can perform data processing tasks that only huge organizations enjoyed. Trying to sell this concept to the general
 couch potato public and the “average” techie nerd seems to be very difficult. So it makes sense why the people who might fall under these gross categories would “wake up” and reject Microsoft outright.</p>
<p>I can’t just jump up and leave Microsoft because my data is stored in too many proprietary formats (especially my richly formatted Office documents). So for one
<i>last</i> time, I decided to learn a new technology from Microsoft: the .NET platform featuring C#. Now that I know that this tool is available on the Linux platform (and developing on the Mac platform), I am encouraged to invest
<i>one more</i> trek up the learning curve. I intend to get my data into standard formats (XML-based formats like DocBook and XHTML) and Microsoft will enjoy my relatively enthusiastic support of their platform and products until this process is complete. Now
 I do not have to “leave” Microsoft behind I just need to have the tools available to perform data interchange for all platforms I choose to recognize.</p>
<p>I see myself having a shallow relationship with Microsoft—right now, it’s relatively deep. The depth of this relationship is directly proportional to the shortcomings of their products. Microsoft “wants” me to have a shallow relationship with their products.
 They want “smart” tools that can guess what I am trying to do and “help” me do what I am trying to do without much thought and study. But at the same time, they “want” me to be dependent on the Microsoft platform.</p>
<p>The way Microsoft and other large commercial organizations (based on the cultural values of the Roman Empire) design dependency into their products will always find conflict with me. It is an error to assume that the Linux world will not be tempted by the
 desire for imperial/commercial power. It is an error to assume that I can “leave” Microsoft when I have so much data in their proprietary formats. My awareness of this fact makes me feel trapped not empowered.</p>
<p>I do not have to “leave” Microsoft I just need to have the tools available to perform data interchange for all platforms I choose to recognize. As of this writing, the .NET platform provides these tools.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/26512-On-Windows-Programming/976a890392d4401f93c99dea01327b66#976a890392d4401f93c99dea01327b66</link>
		<pubDate>Mon, 01 Nov 2004 21:52:48 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/26512-On-Windows-Programming/976a890392d4401f93c99dea01327b66#976a890392d4401f93c99dea01327b66</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>11</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - The Importance of Multi-Threading Handlers</title>
		<description><![CDATA[<p><blockquote>
<div>Mike Dimmick wrote:</div>
<div>The new piece is, I think, the <a target="_blank" href="http://msdn2.microsoft.com/library/4852et58.aspx">
BackgroundWorker</a> class. </div>
</blockquote>
<br>
<br>
Looks useful. I can see a lot of potential with BackgroundWorker.ProgressChanged.<br>
<br>
But what happens when DoWork contains a call to an object with events wired up to the UI thread? What Boolean will InvokeRequired equal inside the event handler(s)?<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/25694-The-Importance-of-Multi-Threading-Handlers/9f738c01baee477898949dea0115ae25#9f738c01baee477898949dea0115ae25</link>
		<pubDate>Thu, 28 Oct 2004 23:36:29 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/25694-The-Importance-of-Multi-Threading-Handlers/9f738c01baee477898949dea0115ae25#9f738c01baee477898949dea0115ae25</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>5</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - The Importance of Multi-Threading Handlers</title>
		<description><![CDATA[<p><blockquote>
<div>Simo wrote:</div>
<div>Interesting question re Forms 2.0.<br>
<br>
Does anybody know if there are improvements to the BeginInvoke / InvokeRequired/Is-my-code-back-running-on-the-UI-thread arena?<br>
<br>
</div>
</blockquote>
<br>
<br>
Chris S. and Justin G. send me email.We're close and stuff <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif' alt='Wink' /> They assure me that all of this stuff multi-threading handling will be very, very gone in WinForms 2.0. Now Chris has the inside track in Microsoft; he says as much as he is allowed to about this
 topic. He does not volunteer much information (to me) about exactly how this is going to happen---but he says it's going to happen.<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/25694-The-Importance-of-Multi-Threading-Handlers/89f533f4146942fea5679dea0115add1#89f533f4146942fea5679dea0115add1</link>
		<pubDate>Wed, 27 Oct 2004 21:35:27 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/25694-The-Importance-of-Multi-Threading-Handlers/89f533f4146942fea5679dea0115add1#89f533f4146942fea5679dea0115add1</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>5</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - The Importance of Multi-Threading Handlers</title>
		<description><![CDATA[<p><h1>Tuesday, October 26, 2004: Understanding Chris Sells Teachings about Multi-Threading in Windows Forms: The Importance of Multi-Threading Handlers</h1>
<p class="MsoNormal">Chapter 14 of Chris Sells, his book <i><a href="http://www.amazon.com/exec/obidos/ISBN=0321125193/thekintespacec00A/">Windows Forms Programming in Visual Basic .NET</a></i> (with
<a href="http://www.oreillynet.com/pub/au/760">Justin Gehtland</a> on drums) explains all we need to know about implementing multi-threading designs in all but the most complex Windows Forms. Unfortunately, I had to read this chapter about five times and I
 had to send several stern emails to Chris Sells (which he generously answered) before I understood these basic bits:</p>
<p class="MsoListBullet"><span><span>·<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Creating a worker thread can be an indirect procedure (by calling
<code><span>BeginInvoke</span></code>) or it can be a direct procedure by getting a new
<code><span>Threading.Thread</span></code> object. Sells discuses the disadvantages of using the latter method but I find I am able to name a new
<code><span>Threading.Thread</span></code> object and sets is priority—I will tentatively call these “advantages.”</p>
<p class="MsoListBullet"><span><span>·<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Think about implementing multi-threading handlers in the same manner you think about implementing error handling: every method that interacts with the UI thread (and is
<i>likely</i> to be called from a worker thread) must be designed with a pattern that interrogates the Boolean
<code><span>InvokeRequired</span></code> for <code><span>true</span></code>. The following is the Chris Sells multi-threading handler design pattern (written with my sense of style):</p>
<pre><code>Delegate Sub MySubDelegate(ByRef WinForm As MyNameSpace.MainForm)</code></pre>
<pre><code>Sub MySub(ByRef WinForm As MyNameSpace.MainForm)<br><br><br><br><span>&nbsp;&nbsp;&nbsp; </span>If WinForm.InvokeRequired Then<br><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Dim del As MySubDelegate _<br><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>= New MySubDelegate(</code>AddressOf MySub<code>)<br><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Call WinForm.BeginInvoke(del, New Object() {WinForm})<br><br><span>&nbsp;&nbsp;&nbsp; </span>Else<br><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>With WinForm<br><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;</span>'TODO: Do stuff to objects on the UI Thread.<br><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>End With<br><br><span>&nbsp;&nbsp;&nbsp; </span>End If<br><br><br><br>End Sub</code></pre>
<pre><code>'How will Windows Forms 2.0 eliminate the need for this pattern?</code></pre>
<p class="MsoListBullet"><span><span>·<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>When <code>
<span>InvokeRequired</span></code> is always <code><span>true</span></code>, the flawed design is probably calling
<code><span>Invoke()</span></code> or <code><span>BeginInvoke()</span></code> from an object created on the worker thread. The design pattern above avoids making this mistake by clearly showing that it is
<code><span>WinForm</span></code> making the call (there is, believe me, the temptation to use
<code><span>del.BeginInvoke</span></code>, which is incorrect—it puts wrinkles in Sells’
<a href="http://neopoleon.com/blog/posts/7962.aspx">Burning Man</a> kilt!).</p>
<p class="MsoListBullet"><span><span>·<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Calling back to the UI thread from the worker thread means calling from an object that ultimately derives from
<code><span>System.Windows.Forms.Control</span></code> that was instantiated by the UI thread.</p>
<p class="MsoListBullet"><span><span>·<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>The <code>
<span>ISynchronizeInvoke</span></code> interface contains the aforementioned worker-thread-to-UI-thread method invocations and the Boolean indicator that such an invocation is required. As of this writing, only one class implements this interface
<code><span>System.Windows.Forms.Control</span></code>. Explaining why the <code>
<span>ISynchronizeInvoke</span></code> interface exists in the first damn place would have gone a long way toward why multi-threading handlers are important.</p>
<p class="MsoListBullet"><span><span>·<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>There is the temptation to make all Windows Forms event handlers multi-threading handlers as well. I find that this design goal creates too much code what with the writing of delegates
 for every single event handler. Another way is to not set form control properties directly in event handlers but to create a Client Layer of static methods that set Windows Forms controls, each with their delegates and multi-threading handlers.</p>
<p class="MsoListBullet"><span><span>·<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>When all of the above bits are found to be valid and not addressed by Windows Forms 2.0 kudos to the brilliant author who thunk it all up! Until then, these ideas are all my fault. Sorry,
 Chris.</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/25694-The-Importance-of-Multi-Threading-Handlers/25694#25694</link>
		<pubDate>Tue, 26 Oct 2004 21:11:31 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/25694-The-Importance-of-Multi-Threading-Handlers/25694#25694</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>5</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Salary Raises</title>
		<description><![CDATA[<p>Everyone is making great points in this thread regarding the asking for pay issue. But let's not forget the &quot;technology used&quot; issue. This leads me to evaulate a company's technology plan which is a Warren-Buffet-like assesment of the IT department's ability
 to use technology over time.<br>
<br>
One of the worst feelings in the world is to paid a great salary but you are convinced that your organization's technology is literally stupid. Unless you know how to hang on quiet desperation, your co-workers at least will get wind of your opinion which could
 lead to a hostile work environment.<br>
<br>
So I must remember to interview the company when they interview me. I need to understand what they intend to do and what is actually there. The software &quot;speaks&quot; for itself. Since the folks at Microsoft use the word &quot;architect&quot; to describe the master code builders
 of IT organizations then we should be able to articulate their architectual design within a coherent narrative.<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/25028-Salary-Raises/583c59860d3f467bb6b39dea01309b02#583c59860d3f467bb6b39dea01309b02</link>
		<pubDate>Thu, 21 Oct 2004 00:33:17 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/25028-Salary-Raises/583c59860d3f467bb6b39dea01309b02#583c59860d3f467bb6b39dea01309b02</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>12</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - I hate computers...</title>
		<description><![CDATA[<p>We'll I am convinced that computers are made by human beings and these creatures constantly add to some historical record written to a harddrive that may crash---but it is often erased and reformatted.<br>
<br>
So I depend on the &quot;historians&quot; of <a href="http://arstechnica.com">ArsTechnica.com</a> to tell me what a reliable computer system is before I try to build a new computer---or add new parts to my computer. I used to depend on PC Magazine but these guys are
 too commerical now which means they represent a virtual person we call a corporation (so they write articles for virtual people) while the folks of ArsTechnica (for the time being) are human beings who may or may not be incorporated.<br>
<br>
So my question (that I am sure you are <i>not </i>wont to answer this late in the game) to you is, &quot;What brand of hard drive and motherboard are you using?&quot;<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/24902-I-hate-computers/fbf5bd9fa03b4ac6aa359dea013063bc#fbf5bd9fa03b4ac6aa359dea013063bc</link>
		<pubDate>Tue, 19 Oct 2004 21:59:02 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/24902-I-hate-computers/fbf5bd9fa03b4ac6aa359dea013063bc#fbf5bd9fa03b4ac6aa359dea013063bc</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>23</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - WSE 2.0 Services can replace some &amp;quot;old&amp;quot; Windows Services?</title>
		<description><![CDATA[<p><p class="MsoNormal"><font face="Verdana">VB6 guys would always brag about creating their first Windows Service. Now, the same VB.NET blokes would brag about creating their first Service—no, not Web Service or Windows Service, just
<i>Service</i>. WSE provides this capability. This is attractive to me for the following reasons:</font></p>
<p class="MsoListBullet"><font face="Verdana"><span><span>·<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Code access security “complications” should not be an issue with these services. The assumption here is that the code is started by a privileged user—and the code
 is called by users of unknown security permissions (outside of the context of WSE security features). We may not have to be so devoted to the principle of coding for least privilege.</font></p>
<p class="MsoListBullet"><font face="Verdana"><span><span>·<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>The “old” Windows Service components are bound to its hosting OS per machine while modern Service components “live” in an abstract layer punctuated with SOAP TCP addresses.</font></p>
<p class="MsoNormal"><font face="Verdana">The “DTS assembly” I just built a few days ago, loaded by reflection, looks like it can loaded by WSE instead. I am certain that loading an assembly with reflection has more security complications than simply calling
 a Service running under higher privileges.</font></p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/24575-WSE-20-Services-can-replace-some-quotoldquot-Windows-Services/24575#24575</link>
		<pubDate>Sun, 17 Oct 2004 08:38:48 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/24575-WSE-20-Services-can-replace-some-quotoldquot-Windows-Services/24575#24575</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>1</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - The Channel 9 guy&#39;s apartment</title>
		<description><![CDATA[<p>Don't let this self-deprecating portrait of the Channel9 Guy fool you. I ran into The Guy at the gym once and this little piece of plastic can push serious weight!</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/23888-The-Channel-9-guys-apartment/ecfade26e2a94de49d459dea012f075d#ecfade26e2a94de49d459dea012f075d</link>
		<pubDate>Sun, 10 Oct 2004 07:25:23 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/23888-The-Channel-9-guys-apartment/ecfade26e2a94de49d459dea012f075d#ecfade26e2a94de49d459dea012f075d</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>12</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Why must MSDN be re-organized every 5 minutes!?</title>
		<description><![CDATA[<p>The help files for VBA in the pre-Internet-hype versions of Office were immaculate tomes of wisdom compared to the rest of the personal desktop world. That's how Microsoft pulled me in...<br>
<br>
Now that &quot;core competency&quot; is getting a bit stale. I depend heavily on third-party web sites to tell me what Microsoft really means about certain issues. This is why I developed the Funky KB (at songhaysystem.com) to keep &quot;cliff notes&quot; on what the hell three
 or four MSKB articles are talking about...<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/23556-Why-must-MSDN-be-re-organized-every-5-minutes/b810c9273a6547fdbf6c9dea012eb83c#b810c9273a6547fdbf6c9dea012eb83c</link>
		<pubDate>Fri, 08 Oct 2004 20:53:24 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/23556-Why-must-MSDN-be-re-organized-every-5-minutes/b810c9273a6547fdbf6c9dea012eb83c#b810c9273a6547fdbf6c9dea012eb83c</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>9</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Microsoft targeting younger generations...</title>
		<description><![CDATA[<p>Hades, yes!<br>
<br>
Hell, yeah!<br>
<br>
That's straight how you roll it and thangs!<br>
<br>
Drop science! Rap out your thesis with the threat of violence!<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/23669-Microsoft-targeting-younger-generations/9d1b7485af59404692519dea012ee370#9d1b7485af59404692519dea012ee370</link>
		<pubDate>Wed, 06 Oct 2004 22:39:58 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/23669-Microsoft-targeting-younger-generations/9d1b7485af59404692519dea012ee370#9d1b7485af59404692519dea012ee370</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>8</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Why Macs Suck video</title>
		<description><![CDATA[<p>Editing is not all Mac-based for us happy, few Sony Pictures Digital users.<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/23412-Why-Macs-Suck-video/4039e79dc6e94824abf99dea012e8a44#4039e79dc6e94824abf99dea012e8a44</link>
		<pubDate>Mon, 04 Oct 2004 20:00:23 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/23412-Why-Macs-Suck-video/4039e79dc6e94824abf99dea012e8a44#4039e79dc6e94824abf99dea012e8a44</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>5</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Microsoft&#39;s &amp;quot;Software BILL of rights&amp;quot;</title>
		<description><![CDATA[<p>I like the whole thang, baby. I am straight stealing &quot;We're on a mission from dude.&quot; It's a perfect mantra of postmodern imperialism, Wild West Style!<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/23402-Microsofts-quotSoftware-BILL-of-rightsquot/107a9fc6b2974dc9b2639dea012e7ee7#107a9fc6b2974dc9b2639dea012e7ee7</link>
		<pubDate>Mon, 04 Oct 2004 19:52:42 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/23402-Microsofts-quotSoftware-BILL-of-rightsquot/107a9fc6b2974dc9b2639dea012e7ee7#107a9fc6b2974dc9b2639dea012e7ee7</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>19</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Inheriting the Designer of ASP.NET Controls</title>
		<description><![CDATA[<p><p class="MsoNormal"><font face="Verdana">So, here I am actually <i>trying</i> to drink the Kool-Aid™ and I can’t find the cup! I am stepping away from writing it all in code and trying to inherit a control from, say an HTML Label control such that I am able
 to manipulate this control in the Visual Studio designer without building my own designer from the ground up.</font></p>
<p class="MsoNormal"><font face="Verdana">I erroneously thought that I can just drop a Designer Attribute referring to the HTML Control Designer (or even the
<i>Intrinsic</i> HTML Control Designer) and somehow Visual Studio would show me the appropriate Label-derived designer.</font></p>
<p class="MsoNormal"><font face="Verdana">Are we forced to build our own designer for all controls we write? Is there
<i>any</i> concept of “designer inheritance” addressed in ASP.NET 2.0? Please feel free to tell me that this question has been answered in your favorite Blog-style newsgroup so that I can find my answers there. Or it would be cool to answer a technical question
 here for a change.</font></p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/21549-Inheriting-the-Designer-of-ASPNET-Controls/21549#21549</link>
		<pubDate>Tue, 14 Sep 2004 22:37:40 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/21549-Inheriting-the-Designer-of-ASPNET-Controls/21549#21549</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>1</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - I don&#39;t even bother checking the Coffeehouse</title>
		<description><![CDATA[<p>I use Sage in FireFox to pick new posts. So this one was easy to find. Sounds like another reasonable guy trying to change the world one heart at a time---and I am not being sarcastic. We just need know what ancient forces we are up against.<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/21494-I-dont-even-bother-checking-the-Coffeehouse/c19e861b2a09426992c99dea012bc05d#c19e861b2a09426992c99dea012bc05d</link>
		<pubDate>Tue, 14 Sep 2004 22:25:43 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/21494-I-dont-even-bother-checking-the-Coffeehouse/c19e861b2a09426992c99dea012bc05d#c19e861b2a09426992c99dea012bc05d</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>8</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Why dont Micorsoft use windows forms?</title>
		<description><![CDATA[<p>Chris Sells and his homies won't admit it openly but Windows Forms 1.x is brittle. I was just remarking yesterday that the jump from ASP to ASP.NET was serious quantum leap. Going from a VB6 form to a Windows form is like skipping around a bit.<br>
<br>
First of all, threading is <i>the </i>problem. Windows Forms 2.0 will take care of this problem (we hope) with the Background Worker thingy. However, I
<i>have </i>moved out of Access forms and into Windows forms with reckless abandon.<br>
<br>
ASP.NET applications are worth your time. They will not break your heart. Windows Forms are still toys. You can open a Windows Form designer and your controls can mysteriously vanish and then reappear after closing VS.NET. Let's see the next version.<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/20659-Why-dont-Micorsoft-use-windows-forms/47c40258ff8a49e7a1c29dea01143f50#47c40258ff8a49e7a1c29dea01143f50</link>
		<pubDate>Fri, 10 Sep 2004 00:01:21 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/20659-Why-dont-Micorsoft-use-windows-forms/47c40258ff8a49e7a1c29dea01143f50#47c40258ff8a49e7a1c29dea01143f50</guid>
		<dc:creator>rasx</dc:creator>
		<slash:comments>17</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rasx/Discussions/RSS</wfw:commentRss>
	</item>
</channel>
</rss>