<?xml version="1.0"?>
<!-- RSS generated by Radio UserLand v8.0.8 on Thu, 18 Sep 2003 05:50:05 GMT -->
<rss version="2.0">
	<channel>
		<title>Scott Hanselman: Programming</title>
		<link>http://radio.weblogs.com/0106747/categories/webServices/</link>
		<description>From zygote to C# in 29 years</description>
		<language>en-us</language>
		<copyright>Copyright 2003 Scott Hanselman</copyright>
		<lastBuildDate>Thu, 18 Sep 2003 05:50:05 GMT</lastBuildDate>
		<docs>http://backend.userland.com/rss</docs>
		<generator>Radio UserLand v8.0.8</generator>
		<managingEditor>scott@hanselman.com</managingEditor>
		<webMaster>scott@hanselman.com</webMaster>
		<category domain="http://www.weblogs.com/rssUpdates/changes.xml">rssUpdates</category> 
		<skipHours>
			<hour>3</hour>
			<hour>4</hour>
			<hour>6</hour>
			<hour>1</hour>
			<hour>5</hour>
			<hour>7</hour>
			<hour>2</hour>
			<hour>20</hour>
			</skipHours>
		<cloud domain="radio.xmlstoragesystem.com" port="80" path="/RPC2" registerProcedure="xmlStorageSystem.rssPleaseNotify" protocol="xml-rpc"/>
		<ttl>60</ttl>
		<item>
			<title>Internet Explorer and the Magic of Microsoft KB Article Q293792</title>
			<link>http://support.microsoft.com/default.aspx?scid=kb;en-us;293792</link>
			<description>&lt;P&gt;Seems like a lot of my posts lately have started with something like &quot;Here&apos;s a weird IE bug&quot; or &quot;Here&apos;s something odd in .NET&quot; but...&lt;/P&gt;
&lt;P&gt;Here&apos;s&amp;nbsp;a weird IE thing.&amp;nbsp; We do a lot of Check Imaging and Statement stuff here, so if someone wants to go online and get an image of a check, they can.&amp;nbsp; We often use Web Services to talk to a Check Imaging Server.&amp;nbsp; Most often we retrieve PNG, JPEG, or GIF.&amp;nbsp; Sometimes, however, the client wants an Adobe Acrobat PDF.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;We&apos;ll make the SOAP call, get a PDF then stream it directly to the user (You don&apos;t want to save these kinds of things, for security purposes).&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Enter bug/feature Q293792.&amp;nbsp; &lt;A href=&quot;http://www.monsur.org/Entries/Entry31182.html&quot;&gt;Not a lot seems to have been written&lt;/A&gt; about this, and not a lot of people seem to care, but apparently when opening a full ActiveX embedding window (to host Acrobat, etc) IE makes either THREE or TWO requests for the content.&amp;nbsp; This is apparently &quot;by design&quot; as URLMON and MSHTML have trouble communicating.&amp;nbsp; So, MSHTML sends a request to &quot;sniff&quot; for the MIME type to figure out what app to load.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Other than being a bandwidth hog, this wouldn&apos;t be a big deal - except, when the generation/retrieval of a PDF is an expensive operation involving a WS call to the back end. (&lt;A href=&quot;http://samgentile.com/blog/posts/9890.aspx&quot;&gt;Wow, a &lt;STRONG&gt;production&lt;/STRONG&gt; Web Service! Madness! Heresy!&lt;/A&gt; ;) )&lt;/P&gt;
&lt;P&gt;What&apos;s interesting is that IE changes the UserAgent HTTP Header to &quot;&lt;EM&gt;contype&lt;/EM&gt;&quot; during the probe, obstensibly so we can simple return the MIME/type and not the actual data.&lt;/P&gt;
&lt;P&gt;So, we need to handle that...something like (in classic ASP &quot;psuedo-code&quot;):&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;P&gt;&lt;FONT face=&quot;Courier, Monospace&quot;&gt;&amp;nbsp;&amp;nbsp;If Instr(1, UserAgent, &quot;contype&quot;) &amp;gt; 0 Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&apos;Just send the mime/type&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.ContentType = &quot;application/pdf&quot;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.End&lt;BR&gt;&amp;nbsp;&amp;nbsp;End If&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;So, that&apos;s not too bad.&amp;nbsp; But, even the &quot;Fixed&quot; versions of IE still send TWO requests.&amp;nbsp; So, we want to detect the second request and not return the whole thing again.&amp;nbsp; &lt;/P&gt;
&lt;P dir=ltr&gt;Here&apos;s the other ODD point.&amp;nbsp; For reasons unknown to me, IE doesn&apos;t include the &lt;EM&gt;Accept-Language&lt;/EM&gt; header when making this second call, so, we have them use what has already been sent by saying &quot;Not-Modifed&quot;:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;P dir=ltr&gt;&lt;FONT face=&quot;Courier, Monospace&quot;&gt;&amp;nbsp;&amp;nbsp;Dim Language&lt;BR&gt;&amp;nbsp;&amp;nbsp;Language = Request.ServerVariables(&quot;HTTP_ACCEPT_LANGUAGE&quot;)&lt;BR&gt;&amp;nbsp;&amp;nbsp;If Language = &quot;&quot; then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.Clear&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.ContentType = &quot;application/pdf&quot;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.AddHeader &quot;Last-modified&quot;, &quot;Mon, 01 Sep 1997 01:03:33 GMT&quot;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.Status = &quot;304 Not Modified&quot;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.End&lt;BR&gt;&amp;nbsp;&amp;nbsp;End If&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;Ah, the fun of supporting older versions of IE.&amp;nbsp; I think we need an updated IE Roadmap.&amp;nbsp; &lt;/P&gt;
&lt;P dir=ltr&gt;The future of browsing, dear readers, is up in the air, IMHO.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/09/16.html#a453</guid>
			<pubDate>Wed, 17 Sep 2003 00:05:12 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=453&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F09%2F16.html%23a453</comments>
			</item>
		<item>
			<title>Rory asks, Why do I code?</title>
			<link>http://www.neopoleon.com/blog/permalink.aspx/a2f88d4b-c9eb-40d4-a5af-dee8ffa161aa</link>
			<description>&lt;P&gt;Why do I code?&amp;nbsp; Because I can&apos;t cook, or change my own oil, or mow lawns.&amp;nbsp; Because I lettered in drama in High School but I never got discovered walking an L.A. mall.&amp;nbsp; Because I never made any money doing standup.&amp;nbsp; Because, God help me, if I wasn&apos;t coding the only think I&apos;d be good at would be selling cars.&amp;nbsp; (I&apos;m REALLY good at selling cars.&amp;nbsp; Seriously.) &lt;/P&gt;
&lt;P&gt;For real, I code because I like solving problems that are decidedly solvable.&amp;nbsp; I mean, I hear the problem, I think for a moment, I figure it&apos;s &quot;possible&quot; and then I try to figure how to solve it in a way that &lt;EM&gt;feels&lt;/EM&gt; good.&amp;nbsp; Because I dig physics.&amp;nbsp; Because the end of the Carl Sagan&apos;s &quot;&lt;A href=&quot;http://www.amazon.com/exec/obidos/tg/detail/-/0671004107/diabeticbooks&quot;&gt;Contact&lt;/A&gt;&quot; was UNSPEAKABLY cool.&amp;nbsp; I code because of that feeling&amp;nbsp;I&apos;ve gotten 5 or 6 times when I just NAILED a problem and (while alone) raised my arms high in victory the same way that rapid sports fans do.&amp;nbsp; Except I look at them with a worried disdain when they do it, but secretly I wish I felt like that more often.&lt;/P&gt;
&lt;P&gt;I code because coding, at its best, is art and literature and math and physics all at the same time.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/09/11.html#a450</guid>
			<pubDate>Fri, 12 Sep 2003 00:33:35 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=450&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F09%2F11.html%23a450</comments>
			</item>
		<item>
			<title>The tragedy of November 9th</title>
			<link>http://radio.weblogs.com/0106747/categories/webServices/2003/09/10.html#a447</link>
			<description>&lt;P&gt;So, two people commented (one email, one blog comment) with some confusion over the 11/9.&amp;nbsp; Here&apos;s the explanation:&lt;/P&gt;
&lt;P&gt;It was an internationalization joke (and a good one I thought) When we say 9/11 (formatted mmddyy) most people in the STATES assume we mean September 11.&amp;nbsp; In the last two years the word &lt;EM&gt;&apos;nineeleven&apos;&lt;/EM&gt; means more than just a date.&amp;nbsp; But it&apos;s use and newly attached deep meaning underscores how alone we are as a nation (not just politically) in things like date formatting and the measuring systems.&amp;nbsp;&amp;nbsp; The rest of the &lt;STRONG&gt;&lt;EM&gt;planet &lt;/EM&gt;&lt;/STRONG&gt;uses ddmmyy, so they would say &quot;11/9&quot;.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://radio.weblogs.com/0106747/2003/09/10.html#a446&quot;&gt;The joke&lt;/A&gt; is, when we say &quot;oh, ya, 9/11 was a horrible day,&quot; a &lt;STRONG&gt;non&lt;/STRONG&gt;-american might say, &quot;November 9th? What happened?&quot;&amp;nbsp; Of course, nothing happened on 11/9, we just assume that 9/11 or 4/3 or 8/12 means the same thing to us as it does to them...&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;P.S. There was a local news report a while back that the local news had pulled off the AP NewsWire.&amp;nbsp; Some fellow came in on a Tourist Visa and transferred to a Student Visa.&amp;nbsp; At some point, he was arrested for some thing or the other and the local news lady, thinking this fellow had gotten away with some clever chicanery commented slyly that his identity was called into question when the news station &quot;discovered&quot; that his drivers license said he was born on 4/3 but his birth certificate listed his DOB as 3/4.&amp;nbsp; Oh, those wacky terrorists trying to pull one over on us.&amp;nbsp; If I had a nickel for every time an international friend reversed a date on a&amp;nbsp;form...&lt;/EM&gt;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/09/10.html#a447</guid>
			<pubDate>Wed, 10 Sep 2003 23:16:24 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=447&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F09%2F10.html%23a447</comments>
			</item>
		<item>
			<title>ASPLive! and flying on 9/11</title>
			<link>http://www.ftponline.com/conferences/vslive/2003/or/asp_sessions.asp</link>
			<description>&lt;P&gt;Tomorrow, I&apos;m leaving for Orlando to &lt;A href=&quot;http://www.ftponline.com/conferences/vslive/2003/or/asp_sessions.asp&quot;&gt;speak at ASPLive on Internationalization&lt;/A&gt;.&amp;nbsp; I&apos;ll be flying exactly two years (to the minute) from September 11.&amp;nbsp; Needless to say, the wife&apos;s justifiably not happy about it and I have mixed feelings.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://www.chrisbrooks.org&quot;&gt;My boss&lt;/A&gt; says that even flying on September 11th is safer than driving any day.&amp;nbsp; I&apos;m not sure about that, but I&apos;ll definitely be expecting some extra security.&amp;nbsp; It&apos;s always a challenge to get my &lt;A href=&quot;http://radio.weblogs.com/0106747/categories/diabetes/&quot;&gt;Insulin Pump&lt;/A&gt; through.&lt;/P&gt;
&lt;P&gt;If you&apos;re in Orlando at VSLive, please do stop by my Friday afternoon session called &quot;&lt;STRONG&gt;It&apos;s the WORLDWIDE Web.&lt;/STRONG&gt;&quot;&amp;nbsp; I&apos;ll be showing some cool stuff in ASP.NET like a banking site in English, Chinese, Malay, Spanish and Arabic.&amp;nbsp; We&apos;ll talk all about System.Globalization and dig into the issues around Dates, Currency, Culture and Right to Left languages.&amp;nbsp; It&apos;s a very interesting topic.&amp;nbsp; I may try to greet the crowd in at least 10 languages. :)&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Remember, when we talk about what happened on 9/11, most people in the world wonder what happened on November 9th...&lt;/EM&gt;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/09/10.html#a446</guid>
			<pubDate>Wed, 10 Sep 2003 21:30:30 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=446&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F09%2F10.html%23a446</comments>
			</item>
		<item>
			<title>Things that make my life better...thanks for sharing</title>
			<link>http://radio.weblogs.com/0106747/categories/webServices/2003/09/10.html#a445</link>
			<description>&lt;P&gt;Well, that was a nice little spike of traffic.&amp;nbsp; A few random thoughts:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Thanks to everyone for comments and author corrections for the tools on my List o&apos; Tools.&amp;nbsp; &lt;/LI&gt;
&lt;LI&gt;Too bad Radio doesn&apos;t appear to support Trackback/Pingback from &apos;Stories&apos; or I&apos;d know who&apos;s linking to me.&amp;nbsp; &lt;/LI&gt;
&lt;LI&gt;I&apos;ll continue to update the tools list as I add more.&amp;nbsp; I&apos;ll also try to categorize it one day.&amp;nbsp; &lt;/LI&gt;
&lt;LI&gt;Note that I only keep favorite tools - no cruft, no crap.&amp;nbsp; This isn&apos;t a list of&amp;nbsp;&quot;all tools&quot; or &quot;favorite tools&quot; but rather &quot;things that make my life better&quot;&lt;/LI&gt;
&lt;LI&gt;Some folks commented that it was mostly Windows and .NET stuff.&amp;nbsp; True, true.&amp;nbsp; That&apos;s where I live now, but some tools/utils I didn&apos;t include were Grep for Windows and Cygwin and Visual Studio Power Toys, etc, as I didn&apos;t think they qualified as simple little utils, although maybe they do.&lt;/LI&gt;
&lt;LI&gt;I didn&apos;t include a utilities that are internal (either Corillian-internal or Microsoft-internal) although I wish I could.&amp;nbsp; There&apos;s some amazing stuff out there.&lt;/LI&gt;
&lt;LI&gt;Now only if my list could get &lt;A href=&quot;http://radio.weblogs.com/0001011/&quot;&gt;Scobleized&lt;/A&gt; by Robert&apos;s 18 readers...&lt;/LI&gt;
&lt;LI&gt;As I sit here and look at my Start Menu, that fills my 1600x1200 screen and runs off the right edge, I see at least 40 other great utils that AREN&apos;T in C:/UTILS that I missed.&amp;nbsp; I&apos;ll add them one day.&lt;/LI&gt;&lt;/UL&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/09/10.html#a445</guid>
			<pubDate>Wed, 10 Sep 2003 18:49:06 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=445&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F09%2F10.html%23a445</comments>
			</item>
		<item>
			<title>Scott Hanselman&apos;s Ultimate Developer and Power Users Tools List v1</title>
			<link>http://radio.weblogs.com/0106747/stories/2003/09/09/scottHanselmansUltimateDeveloperAndPowerUsersToolsList.html</link>
			<description>&lt;!--StartFragment --&gt;&lt;A href=&quot;http://www.iserializable.com/&quot;&gt;Roy Osherove&lt;/A&gt; suggested that I post a list of the contents of my C:/UTILS folder.&amp;nbsp; Everyone collects utilities, and most folks have a list of a few that they feel are indispensable.&amp;nbsp; Here&apos;s mine.&amp;nbsp; Each has a distinct purpose, and I probably touch each at least a few times a week.&amp;nbsp; For me, util means utilitarian and it means don&apos;t clutter my tray.&amp;nbsp; If it saves me time, and seamlessly integrates with my life, it&apos;s the bomb. 
&lt;P dir=ltr&gt;Here are most of the contents of my C:/UTILS folder. These are all well loved and used.&amp;nbsp; I wouldn&apos;t recommend them if I didn&apos;t use them constantly. Perhaps Roy didn&apos;t realize what he was asking for. &lt;/P&gt;
&lt;P dir=ltr&gt;One day I&apos;ll categorize them (if someone cares) but until the, here&apos;s &quot;&lt;A href=&quot;http://radio.weblogs.com/0106747/stories/2003/09/09/scottHanselmansUltimateDeveloperAndPowerUsersToolsList.html&quot;&gt;Scott Hanselman&apos;s Ultimate Developer and Power Users Tools List&lt;/A&gt;&quot; for your approval.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/09/09.html#a444</guid>
			<pubDate>Tue, 09 Sep 2003 21:51:03 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=444&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F09%2F09.html%23a444</comments>
			</item>
		<item>
			<title>The Microsoft Roadmap Decoded</title>
			<link>http://www.synecology.net/roadmap.htm</link>
			<description>&lt;P&gt;Just when I&apos;m asked to start thinking about Technology Roadmaps, I find this &lt;A href=&quot;http://www.synecology.net/roadmap.htm&quot;&gt;great dissection of the Microsoft Technology Roadmap&lt;/A&gt;.&amp;nbsp; Some highlights:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;P&gt;&lt;FONT face=Verdana,Arial,sans-serif size=2&gt;&lt;B&gt;Disappearing Code Names (Gone, But Not Forgotten)&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE id=table34 cellPadding=4 border=2&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD bgColor=#d6deed&gt;&lt;B&gt;&lt;FONT style=&quot;FONT-SIZE: 9pt&quot; face=&quot;Trebuchet MS&quot;&gt;Product Name/ &quot;Code Name&quot;&lt;/FONT&gt;&lt;/B&gt;&lt;/TD&gt;
&lt;TD bgColor=#d6deed&gt;&lt;B&gt;&lt;FONT style=&quot;FONT-SIZE: 9pt&quot; face=&quot;Trebuchet MS&quot;&gt;Additional Info.&lt;/FONT&gt;&lt;/B&gt;&lt;/TD&gt;
&lt;TD bgColor=#d6deed&gt;&lt;B&gt;&lt;FONT style=&quot;FONT-SIZE: 9pt&quot; face=&quot;Trebuchet MS&quot;&gt;Projected Ship Date&lt;/FONT&gt;&lt;/B&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT style=&quot;FONT-SIZE: 9pt&quot; face=&quot;Trebuchet MS&quot;&gt;&quot;Shorthorn&quot; (33)&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT style=&quot;FONT-SIZE: 9pt&quot; face=&quot;Trebuchet MS&quot;&gt;Stopgap release of Windows client &lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT style=&quot;FONT-SIZE: 9pt&quot; face=&quot;Trebuchet MS&quot;&gt;2003&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT style=&quot;FONT-SIZE: 9pt&quot; face=&quot;Trebuchet MS&quot;&gt;.Net My Services/ &quot;Hailstorm&quot;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT style=&quot;FONT-SIZE: 9pt&quot; face=&quot;Trebuchet MS&quot;&gt;MS thought to be building many of these into future Windows editions&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT style=&quot;FONT-SIZE: 9pt&quot; face=&quot;Trebuchet MS&quot;&gt;2004&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT style=&quot;FONT-SIZE: 9pt&quot; face=&quot;Trebuchet MS&quot;&gt;&quot;BizOffice&quot;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT style=&quot;FONT-SIZE: 9pt&quot; face=&quot;Trebuchet MS&quot;&gt;combo BizTalk-Office application for B2B&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT style=&quot;FONT-SIZE: 9pt&quot; face=&quot;Trebuchet MS&quot;&gt;2003 (?)&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/09/08.html#a442</guid>
			<pubDate>Mon, 08 Sep 2003 23:53:21 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=442&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F09%2F08.html%23a442</comments>
			</item>
		<item>
			<title>It&apos;s happy utility day!</title>
			<link>http://www.mindreef.com/products/overview.html</link>
			<description>&lt;P&gt;Finally got around to installing my new shiny version of &lt;A href=&quot;http://www.mindreef.com/&quot;&gt;SoapScope&lt;/A&gt;, the little sniffer that could.&amp;nbsp; I showed an early beta at TechEd 2003 in Dallas, but now it&apos;s released!&amp;nbsp; It&apos;s wicked cheap, and when you&apos;re doing Web Services development in a workgroup situation, especially when the interface is in flux and the folks on the other side are in another time zone, it&apos;s slick.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;It stores all the traffic in a built-in database and others can view and debug the service as it moves through time using a web interface served by it&apos;s internal (Apache) web server.&amp;nbsp; It sniffs traffic via a packet capture OR as a proxy.&lt;/P&gt;
&lt;P&gt;Two new features that I&apos;m really digging are the &lt;A href=&quot;http://www.mindreef.com/products/images/analyze-detail-100.gif&quot;&gt;WSDL Analyzer&lt;/A&gt;&amp;nbsp;that checks for validity and compilance, and the &lt;A href=&quot;http://www.mindreef.com/products/images/wsdl-diff-100.jpg&quot;&gt;Diff-er&lt;/A&gt;, that gives a sweet view of what&apos;s been changing from call to call, version to version.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/09/08.html#a441</guid>
			<pubDate>Mon, 08 Sep 2003 22:52:56 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=441&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F09%2F08.html%23a441</comments>
			</item>
		<item>
			<title>DeveloperPlayground</title>
			<link>http://radio.weblogs.com/0106747/categories/webServices/2003/09/08.html#a440</link>
			<description>&lt;P&gt;My buddy &lt;A href=&quot;http://www.blunck.info/&quot;&gt;Jonas Blunck&lt;/A&gt;, hero of the people and maker of &lt;A href=&quot;http://www.blunck.info/comtrace.html&quot;&gt;ComTrace&lt;/A&gt; and &lt;A href=&quot;http://www.blunck.info/iehttpheaders.html&quot;&gt;IEHttpHeaders&lt;/A&gt; has done it again (along with &lt;A href=&quot;http://www.winwonk.com&quot;&gt;Kim Gr&amp;auml;sman&lt;/A&gt;) with &lt;A href=&quot;http://www.blunck.info/dp.html&quot;&gt;DeveloperPlayground&lt;/A&gt;.&amp;nbsp; At first it looks like Process Explorer from SysInternals, but it includes such cleverness as:&lt;!--StartFragment --&gt;&lt;/P&gt;
&lt;LI&gt;Shows run-time DLL dependencies for running processes &lt;/LI&gt;
&lt;LI&gt;Hooks any process, and tracing single calls to external DLLs &lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;Integrates with favorite tools such as Google, OleView, Depends and the Explorer&lt;/EM&gt;&lt;/LI&gt;
&lt;P&gt;DeveloperPlayground now lives happily in the hallowed halls of my C:/UTILS folder with the best of them.&amp;nbsp; Great job guys, keep it up!&amp;nbsp; I think be using and suggesting this util in my &lt;A href=&quot;http://www.computerzen.com/cst407&quot;&gt;C# Class&lt;/A&gt; this fall.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/09/08.html#a440</guid>
			<pubDate>Mon, 08 Sep 2003 22:04:29 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=440&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F09%2F08.html%23a440</comments>
			</item>
		<item>
			<title>Technical Debt</title>
			<link>http://martinfowler.com/bliki/TechnicalDebt.html</link>
			<description>&lt;P dir=ltr&gt;A nice clean way to describe the ramifications of the decisions we have to make every day.&amp;nbsp; Also, a way to describe to our bosses (in term$ they understand) why doing something quick-and-dirty may bite us in the ass.&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;P&gt;&lt;EM&gt;&quot;Technical Debt is a wonderful metaphor developed by Ward Cunningham to help us think about this problem. In this metaphor, doing things the quick and dirty way sets us up with a technical debt, which is similar to a financial debt. Like a financial debt, the technical debt incurs interest payments, which come in the form of the extra effort that we have to do in future development because of the quick and dirty design choice. We can choose to continue paying the interest, or we can pay down the principal by refactoring the quick and dirty design into the better design. Although it costs to pay down the principal, we gain by reduced interest payments in the future&quot; [&lt;A href=&quot;http://martinfowler.com/bliki/TechnicalDebt.html&quot;&gt;Martin&apos;s Bliki&lt;/A&gt;]&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/09/08.html#a439</guid>
			<pubDate>Mon, 08 Sep 2003 21:15:11 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=439&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F09%2F08.html%23a439</comments>
			</item>
		<item>
			<title>The Zen of .NET: Vacation Continues</title>
			<link>http://www.star-techcentral.com/teched/story.asp?file=/2003/8/28/teched/6164567&amp;sec=TechEd</link>
			<description>&lt;P&gt;Still on vacation...it&apos;s my first one in I don&apos;t know how long and I am ALL kinds of jet-lagged.&amp;nbsp; I just don&apos;t know what time it is.&amp;nbsp; When we went to Zimbabwe (+10 hours) I had no jet-lag, but Malaysia (+15) is messing me up.&lt;/P&gt;
&lt;P&gt;Anyway, turns out that the Zen of .NET presentation at TechEd Malaysia did all right.&amp;nbsp; Apparently there was &lt;A href=&quot;http://www.star-techcentral.com/teched/story.asp?file=/2003/8/28/teched/6164567&amp;amp;sec=TechEd&quot;&gt;a short write-up in the Malaysian newspaper &quot;The Star&quot; on &lt;EM&gt;The Zen of .NET&lt;/EM&gt;&lt;/A&gt;.&amp;nbsp; I don&apos;t remember saying some of the quotes, but it&apos;s still nice to see that the talk resonated with folks.&lt;/P&gt;
&lt;P&gt;Back to work, and too blogging on Monday.&amp;nbsp; I&apos;ve got a particularly interesting Web Services and WSE 2.0 multi-protocol problem I&apos;ve got to share.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/09/06.html#a438</guid>
			<pubDate>Sat, 06 Sep 2003 23:22:17 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=438&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F09%2F06.html%23a438</comments>
			</item>
		<item>
			<title>.NET Code and Intellectual Property</title>
			<link>http://www.riis.com/tools/watermark.aspx</link>
			<description>Here&apos;s an interesting idea via Bill Wagner - a code copyright watermarker...it creates &lt;A href=&quot;http://www.riis.com/tools/watermark.aspx&quot;&gt;an obfuscated function that contains your copyright notice&lt;/A&gt;.&amp;nbsp; Clever...of course when you look at the generated code, you can see it isn&apos;t required and it&apos;s easily removed.</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/09/02.html#a437</guid>
			<pubDate>Wed, 03 Sep 2003 03:37:59 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=437&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F09%2F02.html%23a437</comments>
			</item>
		<item>
			<title>PDC - The Blogging Begins...</title>
			<link>http://www.pdcbloggers.net</link>
			<description>&lt;P&gt;Kevin Schuler&apos;s &lt;A href=&quot;http://www.pdcbloggers.net/&quot;&gt;PDCBloggers.net&lt;/A&gt; is up and it looks like it&apos;s going to be HUGE - much bigger than TechEdBloggers.&amp;nbsp; Already the list of blogging Attendees is 46 and growing!&amp;nbsp;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/09/02.html#a436</guid>
			<pubDate>Wed, 03 Sep 2003 03:21:26 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=436&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F09%2F02.html%23a436</comments>
			</item>
		<item>
			<title>TechEd 2003 - DEV389 - Learning to love WSDL has been saved!</title>
			<link>http://radio.weblogs.com/0106747/2003/08/12.html#a415</link>
			<description>&lt;P&gt;I reported in August of the &lt;A href=&quot;http://radio.weblogs.com/0106747/2003/08/12.html#a415&quot;&gt;Tragedy Of The Missing TechEd DEV389 Session&lt;/A&gt; on the Conference DVDs. Fortunately, my Malaysian buddy Fun Jim Lim pointed out that my session is available &lt;A href=&quot;http://microsoft.sitestream.com/DEV/DEV389_files/default.htm&quot;&gt;online&lt;/A&gt;!&amp;nbsp; Glory of glories.&amp;nbsp; Now the 3 people who&apos;ve shown up here via Google looking for it will actually find something!&lt;/P&gt;
&lt;P&gt;TechEd 2003&apos;s DEV389: Learning to Love WSDL is here: &lt;A href=&quot;http://microsoft.sitestream.com/DEV/DEV389_files/default.htm&quot;&gt;&lt;a href=&quot;http://microsoft.sitestream.com/DEV/DEV389_files/default.htm&quot;&gt;http://microsoft.sitestream.com/DEV/DEV389_files/default.htm&lt;/a&gt;&lt;/A&gt;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/09/02.html#a435</guid>
			<pubDate>Wed, 03 Sep 2003 02:58:25 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=435&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F09%2F02.html%23a435</comments>
			</item>
		<item>
			<title>Yet another useful Utility - Snippet Compiler</title>
			<link>http://www.sliver.com/dotnet/SnippetCompiler/</link>
			<description>My blogging buddy &lt;A href=&quot;http://weblogs.asp.net/Jkey/&quot;&gt;Jeff Key&lt;/A&gt; (maker of the increasingly useful &lt;A href=&quot;http://www.sliver.com/dotnet/netping/&quot;&gt;NetPing&lt;/A&gt;) has posted yet another snazzy util, a &lt;A href=&quot;http://www.sliver.com/dotnet/SnippetCompiler/&quot;&gt;Code Snippet Compiler&lt;/A&gt;.&amp;nbsp; As .NET folks, we all&amp;nbsp;find ourselves creating junk Console applications with a Console.WriteLine just to test a snippet of code!&amp;nbsp; His utility sits in the tray and is always ready when you want to whip out a quick line or two. Very cool.</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/09/02.html#a434</guid>
			<pubDate>Wed, 03 Sep 2003 02:54:19 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=434&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F09%2F02.html%23a434</comments>
			</item>
		<item>
			<title>Rapid Fire Blogging</title>
			<link>http://radio.weblogs.com/0106747/categories/webServices/2003/09/02.html#a432</link>
			<description>&lt;P&gt;Well, we&apos;re back from Malaysia, and I&apos;m officially on my first vacation in recent memory.&amp;nbsp; I&apos;ve had a couple of bloggable things on my mind, but I&apos;ve been limited by time and internet access.&lt;/P&gt;
&lt;P&gt;I arrived home and checked my hanselman.com email from my home machine.&amp;nbsp; (I&apos;d been checking my email remotely with &lt;A href=&quot;http://www.oddpost.com&quot;&gt;OddPost&lt;/A&gt;, which is only the greatest remote email client since, well, ever.)&amp;nbsp;&amp;nbsp; I use POP3, as I don&apos;t trust my server enough to use IMAP, and I leave the mail on the server and retrieve it from three or four different locations and client.&amp;nbsp; We were gone for 10 days, and as I hit Send/Receive I notice the status bar informing me that I have 1784 emails.&amp;nbsp; Seems a smidge much for only 10 days.&amp;nbsp; Of this mails about 1600 were spam and the remaining ~180 were legitimate emails that I&apos;ll need to deal with.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;That&apos;s it.&amp;nbsp; It&apos;s whitelisting time.&amp;nbsp; I refuse to deal with this much spam.&amp;nbsp; For the last few months I&apos;ve been using &lt;A href=&quot;http://www.spamnet.com&quot;&gt;Spamnet&lt;/A&gt;, but I can&apos;t justify paying $1.99 a month to prevent email I didn&apos;t ask for!&amp;nbsp; So, I will now use the Junk Mail features in Outlook 2003 to automatically JUNK all email until I&apos;ve added emails to a local whitelist.&lt;/P&gt;
&lt;P&gt;Next step is to look into a server-based whitelisting system for all my &lt;A href=&quot;http://www.hanselman.com&quot;&gt;hanselman.com&lt;/A&gt; email account users and family members.&amp;nbsp; Anyone have any suggestions?&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/09/02.html#a432</guid>
			<pubDate>Wed, 03 Sep 2003 02:27:00 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=432&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F09%2F02.html%23a432</comments>
			</item>
		<item>
			<title>On the road and still more Web Services DON&apos;Ts</title>
			<link>http://radio.weblogs.com/0106747/categories/webServices/2003/08/21.html#a426</link>
			<description>&lt;P&gt;We&apos;ve just arrived in Hong Kong and we&apos;re wireless again.&amp;nbsp; I&apos;d post another picture, but it would look just like the last one except we&apos;d be more tired and have Chinese writing behind us.&lt;/P&gt;
&lt;P&gt;On a technical note, we&apos;re continuing to run into more Web Services No-No&apos;s.&amp;nbsp; This time it was interfacing .NET with a &quot;legacy&quot; Apache-SOAP implementation.&amp;nbsp; Oy vey.&amp;nbsp; It insisted on a custom Apache encoding style ala:&lt;/P&gt;&lt;FONT size=2&gt;
&lt;BLOCKQUOTE dir=ltr style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;P&gt;&lt;FONT face=&quot;Courier, Monospace&quot;&gt;&amp;lt;ns1:SomeMessage xmlns:ns1=&quot;urn:UpdateSubUser&quot; SOAP-ENV:encodingStyle=&quot;&lt;/FONT&gt;&lt;/FONT&gt;&lt;A href=&quot;http://xml.apache.org/xml-soap/literalxml&quot;&gt;&lt;U&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face=&quot;Courier, Monospace&quot;&gt;&lt;a href=&quot;http://xml.apache.org/xml-soap/literalxml&quot;&gt;http://xml.apache.org/xml-soap/literalxml&lt;/a&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;&quot;&amp;gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT size=3&gt;So, in the tradition of writing Soap Extensions we are ashamed of :) my CTO whiped up an custom attribute &quot;XmlForceEncoding&quot; that allows this madness to occur.&amp;nbsp; Also, the Web Services we were consuming was using the XSD spec from 1999, rather than 2001, so that was special.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT size=3&gt;Here&apos;s some things Chris and I learned (Chris&apos; words):&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;P&gt;&lt;EM&gt;The encodingStyle they are using is archaic and Apache-specific (non-standard).&amp;nbsp; It also violates the current WS-I Basic Profile (&lt;/EM&gt;&lt;A href=&quot;http://ws-i.org/Profiles/Basic/2003-08/BasicProfile-1.0a.htm#refinement35501800&quot;&gt;&lt;EM&gt;&lt;a href=&quot;http://ws-i.org/Profiles/Basic/2003-08/BasicProfile-1.0a.htm#refinement35501800&quot;&gt;http://ws-i.org/Profiles/Basic/2003-08/BasicProfile-1.0a.htm#refinement35501800&lt;/a&gt;&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;).&amp;nbsp; There are a number of messages on SOAPBuilders and elsewhere about challenges with interoperability for servers using this sort of encoding (see below).&amp;nbsp; The problem here is the contradiction between the use=&quot;literal&quot; attribute and the encodingStyle attribute.&amp;nbsp; In (modern) web services, use=&quot;literal&quot; means XSD schema-based encoding, so it is therefore unecessary (and redundant) to specify an encodingStyle.&amp;nbsp; In this case it is even contradictory. &lt;/EM&gt;&lt;A href=&quot;http://aspn.activestate.com/ASPN/Mail/Message/Apache-Soap-Users/736360&quot;&gt;&lt;EM&gt;&lt;a href=&quot;http://aspn.activestate.com/ASPN/Mail/Message/Apache-Soap-Users/736360&quot;&gt;http://aspn.activestate.com/ASPN/Mail/Message/Apache-Soap-Users/736360&lt;/a&gt;&lt;/EM&gt;&lt;/A&gt;&lt;FONT size=2&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/FONT&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/08/21.html#a426</guid>
			<pubDate>Thu, 21 Aug 2003 23:12:44 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=426&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F08%2F21.html%23a426</comments>
			</item>
		<item>
			<title>New NetPing from Jeff Key</title>
			<link>http://www.sliver.com/dotnet/netping/</link>
			<description>&lt;P&gt;&lt;A href=&quot;http://weblogs.asp.net/Jkey/&quot;&gt;Jeff Key&lt;/A&gt; has updated &lt;A href=&quot;http://www.sliver.com/dotnet/netping/&quot;&gt;NetPing&lt;/A&gt;.&amp;nbsp; NetPing is one of the primary examples I use when teaching newbies C#.&amp;nbsp; It&apos;s a nice utility that everyone can easily understand.&amp;nbsp; It&apos;s full of nice examples of Threading, WinForms, etc.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;It&apos;s also a cool addition to utils collections for the IT wonk.&amp;nbsp; He&apos;s updated it to include launching Remote Desktop, launch Computer Management and &lt;A href=&quot;http://www.sliver.com/dotnet/NetworkDriveInfo&quot;&gt;NetworkDriveInfo&lt;/A&gt; (another nice util).&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/08/19.html#a423</guid>
			<pubDate>Tue, 19 Aug 2003 17:50:54 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=423&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F08%2F19.html%23a423</comments>
			</item>
		<item>
			<title>Digging into the Exception Management Block</title>
			<link>http://radio.weblogs.com/0106747/categories/webServices/2003/08/13.html#a417</link>
			<description>&lt;P&gt;I&apos;ve been digging into the Exception Management Block and attending a lot of Exception-related meetings lately.&amp;nbsp; Here&apos;s a list of the most useful (to me) resources around this block.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Exception Management Application Block Overview&lt;BR&gt;&lt;A href=&quot;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/emab-rm.asp&quot;&gt;&lt;a href=&quot;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/emab-rm.asp&quot;&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/emab-rm.asp&lt;/a&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Exception Management Architecture Guide&lt;BR&gt;&lt;A href=&quot;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/exceptdotnet.asp&quot;&gt;&lt;a href=&quot;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/exceptdotnet.asp&quot;&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/exceptdotnet.asp&lt;/a&gt;&lt;/A&gt;&lt;BR&gt;(PDF here: &lt;A href=&quot;http://microsoft.com/downloads/details.aspx?FamilyId=73742594-DB15-4703-8892-75A569C4EB83&amp;amp;displaylang=en&quot;&gt;&lt;a href=&quot;http://microsoft.com/downloads/details.aspx?FamilyId=73742594-DB15-4703-8892-75A569C4EB83&amp;amp&quot;&gt;http://microsoft.com/downloads/details.aspx?FamilyId=73742594-DB15-4703-8892-75A569C4EB83&amp;amp&lt;/a&gt;;displaylang=en&lt;/A&gt;) &lt;/LI&gt;
&lt;LI&gt;Download the code for the Exception Management Block:&lt;BR&gt;&lt;A href=&quot;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=8CA8EB6E-6F4A-43DF-ADEB-8F22CA173E02&quot;&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp&quot;&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp&lt;/a&gt;;FamilyID=8CA8EB6E-6F4A-43DF-ADEB-8F22CA173E02&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;High Level Technical Articles explaining the &amp;#147;gist&amp;#148; of the EMAB&lt;BR&gt;&lt;A href=&quot;http://builder.com.com/5100-6373-5055434.html&quot;&gt;&lt;a href=&quot;http://builder.com.com/5100-6373-5055434.html&quot;&gt;http://builder.com.com/5100-6373-5055434.html&lt;/a&gt;&lt;/A&gt;&lt;BR&gt;&lt;A href=&quot;http://www.uml-zone.com/codemag/Article/10296&quot;&gt;&lt;a href=&quot;http://www.uml-zone.com/codemag/Article/10296&quot;&gt;http://www.uml-zone.com/codemag/Article/10296&lt;/a&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Explanatory PowerPoint on Exception Management&lt;BR&gt;&lt;A href=&quot;http://www.microsoft.com/usa/presentations/EMAB.ppt&quot;&gt;&lt;a href=&quot;http://www.microsoft.com/usa/presentations/EMAB.ppt&quot;&gt;http://www.microsoft.com/usa/presentations/EMAB.ppt&lt;/a&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/08/13.html#a417</guid>
			<pubDate>Wed, 13 Aug 2003 23:22:23 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=417&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F08%2F13.html%23a417</comments>
			</item>
		<item>
			<title>TechEd 2003 DVD: Tragedy Strikes!  I must buy a lottery ticket...</title>
			<link>http://radio.weblogs.com/0106747/categories/webServices/2003/08/12.html#a415</link>
			<description>Well...there was a 1 in 400 chance, and I was the one.&amp;nbsp; On the TechEd DVD boxed set that contains all the multimedia presentations for the sessions, if you sort by name, and look for DEV389.htm, you&apos;ll see DEV387, DEV388, DEV400, waaah?!?&amp;nbsp; Turns out the launching .HTM file is missing from the DVD set for my session.&amp;nbsp; If you look on Disc 2 and dig for the &lt;STRONG&gt;DEV389_files &lt;/STRONG&gt;folder, you can launch the default.htm from there and watch the talk with no problems.&amp;nbsp; But, for those using the menuing system (everyone) you&apos;ll get a broken link.&amp;nbsp; Bummer.</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/08/12.html#a415</guid>
			<pubDate>Tue, 12 Aug 2003 18:25:19 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=415&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F08%2F12.html%23a415</comments>
			</item>
		<item>
			<title>Intellectual property, decompilation, .NET and getting the &apos;gist&apos;</title>
			<link>http://radio.weblogs.com/0106747/2003/08/08.html#a413</link>
			<description>&lt;P&gt;Sergio Pereira asked a great question in the comments that I wanted to bring out to a full blown post.&amp;nbsp; He said:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;P&gt;&lt;EM&gt;I&apos;m with you on not touching if it works. As a regular user of Reflector I constantly find myself struggling with the moral issues of what I&apos;m doing. Do you consider what you just did a violation of Intellectual Property ? &lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;This is a great question and a slippery slope.&amp;nbsp; Here&apos;s some brainstorming and thoughts to get a discussion started.&lt;/P&gt;
&lt;P dir=ltr&gt;To start, I didn&apos;t simply &quot;decompile and copy-paste,&quot; not only is that shady (not to mention technically infeasible) but it wasn&apos;t my intent.&amp;nbsp; My intent was to get the &apos;gist&apos; of what is going on inside of ASP.NET&apos;s @Page Directive validateInput.&amp;nbsp; &lt;/P&gt;
&lt;P dir=ltr&gt;Some folks could argue that using ILDASM to get the &apos;gist&apos; of something is stealing intellectual property.&amp;nbsp; I believe that is usually true.&amp;nbsp; On the other hand I believe that Microsoft included ILDASM (and provides rich metadata in&amp;nbsp;.NET&amp;nbsp;and didn&apos;t obfuscate System.*) and wants us to understand the gist of the Windows .NET Framework.&amp;nbsp; They also have provided Rotor source code which many people, including myself, use as a reference implementation to get the &apos;gist/zen/gestalt&apos; of .NET.&amp;nbsp; &lt;/P&gt;
&lt;P dir=ltr&gt;So, what is appropriate use of ILDASM?&amp;nbsp; If someone ILDASMed the System.Collections and writes a better Dictionary, is that a gray area?&amp;nbsp; Who first thought up Dictionaries? Do I owe someone royalties?&amp;nbsp; We all look at other code, other libraries, and internal headers to get the &apos;gist.&apos;&amp;nbsp; &lt;/P&gt;
&lt;P dir=ltr&gt;However, I&apos;m not going to use this code until I&apos;m satisified that it is righteous.&amp;nbsp; Perhaps I&apos;ll write an MSDN Article on the subject of Cross Site Scripting and &lt;A href=&quot;http://radio.weblogs.com/0106747/2003/08/08.html#a413&quot;&gt;this backport&lt;/A&gt;.&amp;nbsp; Perhaps it will be useful and released as a sample, perhaps it will be quashed, perhaps it will be my own personal unused curiousity.&amp;nbsp;Any thoughts &lt;A href=&quot;http://weblogs.asp.net/ScottGu&quot;&gt;ScottGu&lt;/A&gt;?&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/08/11.html#a414</guid>
			<pubDate>Mon, 11 Aug 2003 18:34:29 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=414&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F08%2F11.html%23a414</comments>
			</item>
		<item>
			<title>My day: Back-porting Input Validation from ASP.NET 1.1 to ASP.NET 1.0</title>
			<link>http://radio.weblogs.com/0106747/categories/webServices/2003/08/08.html#a413</link>
			<description>&lt;P&gt;I don&apos;t know if this qualifies as evil, stupid, both, or neither, but here&apos;s a story.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Many clients move at a very, shall we say &quot;measured&quot; pace and don&apos;t take upgrading from Framework 1.0 to Framework 1.1 lightly.&amp;nbsp; We are very security focused here and javascript injection attacks are always a problem.&amp;nbsp; The client doesn&apos;t want want to upgrade to ASP.NET 1.1 until later this year, but they want to make sure they are in some way for script attacks.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;So, what to do?&amp;nbsp;&amp;nbsp;Using Lutz&apos;s Reflector, Anakrino, and ILDASM I &quot;examined&quot; System.Web.CrossSiteScriptingValidation, HttpValidationException and others, and &lt;EM&gt;&lt;STRONG&gt;back-ported&lt;/STRONG&gt; &lt;/EM&gt;the equivalent to ASP.NET @Page Directive &quot;&lt;STRONG&gt;validateInput = true&lt;/STRONG&gt;&quot; into an custom &lt;STRONG&gt;validateInput &lt;/STRONG&gt;HttpModule.&amp;nbsp; I hook &lt;STRONG&gt;PreRequestHandlerExecute &lt;/STRONG&gt;and quite happily detect scripting attacks in ASP.NET 1.0.&lt;/P&gt;
&lt;P&gt;Again, may be evil, but felt so good.&amp;nbsp;&amp;nbsp; When the site is upgraded to ASP.NET 1.1 later this year I&apos;ll just remove this line from the Web.config:&lt;/P&gt;&lt;B&gt;&lt;FONT size=4&gt;
&lt;P&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot;&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#800000&gt;httpModules&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot;&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/FONT&gt;&lt;FONT color=#800000&gt;add&lt;/FONT&gt;&lt;FONT color=#ff00ff&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000&gt;name&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;=&quot;ValidateInput&quot;&lt;/FONT&gt;&lt;FONT color=#ff00ff&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000&gt;type&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;=&quot;Corillian.Web.ValidateInput,ValidateInputASPNET10&quot;&lt;/FONT&gt;&lt;FONT color=#ff00ff&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot;&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;/&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&amp;lt;/&lt;/FONT&gt;&lt;FONT color=#800000&gt;httpModules&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;A couple of interesting questions came up, one of which was...&lt;/P&gt;
&lt;P&gt;A while loop is expanded when compiling IL, and the C# equivalent is something like this:&lt;/P&gt;&lt;B&gt;&lt;FONT size=4&gt;
&lt;P&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; color=#0000ff size=2&gt;goto&lt;/FONT&gt;&lt;B&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt; L_0045;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;L_0040:&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;&amp;nbsp;&amp;nbsp; index = (index + 1);&lt;BR&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;B&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;L_0045:&lt;BR&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;FONT face=&quot;Courier, Monospace&quot; color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;B&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt; (index &amp;gt;= len)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/B&gt;&lt;FONT face=&quot;Courier, Monospace&quot; color=#0000ff size=2&gt;goto&lt;/FONT&gt;&lt;B&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt; L_005E;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;FONT face=&quot;Courier, Monospace&quot; color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;B&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt; (CrossSiteScriptingValidation.IsAtoZ(s[index]))&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/B&gt;&lt;FONT face=&quot;Courier, Monospace&quot; color=#0000ff size=2&gt;goto&lt;/FONT&gt;&lt;B&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt; L_0040;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;B&gt;&lt;FONT face=Courier size=2&gt;L_005E:&lt;/FONT&gt;&lt;BR&gt;&lt;/B&gt;&lt;BR&gt;Should I (for tidying up&apos;s sake) roll it back up to something like this:&lt;/P&gt;&lt;B&gt;&lt;FONT size=4&gt;
&lt;P&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;&lt;a href=&quot;//Programmer&quot;&gt;//Programmer&lt;/a&gt; intent: look for non-alphas...&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; color=#0000ff size=2&gt;while&lt;/FONT&gt;&lt;B&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt; (index &amp;lt; len)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;FONT face=&quot;Courier, Monospace&quot; color=#0000ff size=2&gt;&amp;nbsp; if&lt;/FONT&gt;&lt;B&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt; (!CrossSiteScriptingValidation.IsAtoZ(s[index]))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/B&gt;&lt;FONT face=&quot;Courier, Monospace&quot; color=#0000ff size=2&gt;break&lt;/FONT&gt;&lt;B&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;&amp;nbsp; index++;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;/B&gt;
&lt;P&gt;or just leave well-enough (and well-equivalent) alone?&amp;nbsp; Remembering that this is a &lt;STRONG&gt;&lt;EM&gt;so very &lt;/EM&gt;&lt;/STRONG&gt;temporary and marginally not cool thing to do, perhaps it&apos;s best to let sleeping dogs lie.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/08/08.html#a413</guid>
			<pubDate>Fri, 08 Aug 2003 23:41:40 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=413&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F08%2F08.html%23a413</comments>
			</item>
		<item>
			<title>I will be there with Managed Bells on...</title>
			<link>http://radio.weblogs.com/0106747/categories/webServices/2003/08/07.html#a411</link>
			<description>&lt;P&gt;I shall be there.&amp;nbsp; I&apos;m really looking forward to this one.&amp;nbsp; TechEd is fun, but PDC is the social and technical event of any season.&lt;/P&gt;
&lt;P&gt;&lt;IMG height=60 alt=&quot;A picture named PDC2003.gif&quot; hspace=15 src=&quot;http://radio.weblogs.com/0106747/images/2003/08/07/PDC2003.gif&quot; width=120 vspace=5 border=0&gt;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/08/07.html#a411</guid>
			<pubDate>Fri, 08 Aug 2003 00:57:30 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=411&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F08%2F07.html%23a411</comments>
			</item>
		<item>
			<title>More interesting code from my buddy Sairama - How to create an object with a private constructor</title>
			<link>http://radio.weblogs.com/0106747/categories/webServices/2003/08/07.html#a410</link>
			<description>&lt;P class=MsoNormal&gt;&lt;FONT face=&quot;Courier New&quot; color=blue size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;using&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt; System;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; color=blue size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;namespace&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt; Corillian.Testing&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;{&lt;BR&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=blue&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;class&lt;/SPAN&gt;&lt;/FONT&gt; PrivateClass&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=blue&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;public&lt;/SPAN&gt;&lt;/FONT&gt; &lt;FONT color=blue&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;string&lt;/SPAN&gt;&lt;/FONT&gt; Name;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=blue&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;public&lt;/SPAN&gt;&lt;/FONT&gt; &lt;FONT color=blue&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;int&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp; &amp;nbsp; Age;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=blue&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;private&lt;/SPAN&gt;&lt;/FONT&gt; PrivateClass()&amp;nbsp;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&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;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&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; Name = &lt;FONT color=purple&gt;&lt;SPAN style=&quot;COLOR: purple&quot;&gt;&quot;not initialized&quot;&lt;/SPAN&gt;&lt;/FONT&gt;;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&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; Age = 0;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&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;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=blue&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;class&lt;/SPAN&gt;&lt;/FONT&gt; Test&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=blue&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;static&lt;/SPAN&gt;&lt;/FONT&gt; &lt;FONT color=blue&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;void&lt;/SPAN&gt;&lt;/FONT&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;Main&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;(&lt;FONT color=blue&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;string&lt;/SPAN&gt;&lt;/FONT&gt;[] args)&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&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;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;&lt;FONT color=green&gt;&lt;FONT face=&quot;Courier, Monospace&quot;&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; &lt;SPAN style=&quot;COLOR: gray&quot;&gt;&lt;a href=&quot;///&quot;&gt;///&lt;/a&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;COLOR: green&quot;&gt;&lt;FONT face=&quot;Courier, Monospace&quot; color=green&gt; The following statement will not work as the constructor is private&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;&lt;FONT face=&quot;Courier, Monospace&quot; color=green&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; &lt;/FONT&gt;&lt;SPAN style=&quot;COLOR: green&quot;&gt;&lt;FONT face=&quot;Courier, Monospace&quot; color=green&gt;&lt;a href=&quot;///&quot;&gt;///&lt;/a&gt; PrivateClass newpTest = new PrivateClass();&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;&lt;FONT face=&quot;Courier, Monospace&quot; color=green&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; &lt;/FONT&gt;&lt;SPAN style=&quot;COLOR: green&quot;&gt;&lt;FONT face=&quot;Courier, Monospace&quot; color=green&gt;&lt;a href=&quot;///&amp;nbsp&quot;&gt;///&amp;nbsp&lt;/a&gt;;But&amp;nbsp;you can create the object through Serialization&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&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; PrivateClass ptest = (PrivateClass)System.Runtime.Serialization.FormatterServices.GetUninitializedObject( &lt;FONT color=blue&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;typeof&lt;/SPAN&gt;&lt;/FONT&gt;(PrivateClass) );&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&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; ptest.Name = &lt;FONT color=purple&gt;&lt;SPAN style=&quot;COLOR: purple&quot;&gt;&quot;Scott&quot;&lt;/SPAN&gt;&lt;/FONT&gt;;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&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; ptest.Age = 0x1D;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&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; Console.WriteLine( String.Format(&quot;{0} {1}&quot;,ptest.Name,ptest.Age );&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&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;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier New&quot; size=2&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/08/07.html#a410</guid>
			<pubDate>Thu, 07 Aug 2003 17:46:19 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=410&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F08%2F07.html%23a410</comments>
			</item>
		<item>
			<title>How many ways to Beep and Make Noise in .NET and C#</title>
			<link>http://www.codeproject.com/csharp/MessageBeep.asp</link>
			<description>&lt;P&gt;At the PADNUG meeting last night the question (Lord knows why this always comes up :) on how to make the system &quot;beep&quot; was asked.&amp;nbsp; Here&apos;s two kinds of beeps, and&amp;nbsp;links to some source.&lt;/P&gt;
&lt;P&gt;The &quot;&lt;A href=&quot;http://www.codeproject.com/csharp/MessageBeep.asp&quot;&gt;PC Beep&lt;/A&gt;,&quot; including frequency and duration:&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=4&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt; System.Runtime.InteropServices;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; color=#0000ff size=2&gt;class&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt; MainClass&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;[DllImport(&quot;kernel32.dll&quot;)]&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face=&quot;Courier, Monospace&quot;&gt;&lt;FONT color=#0000ff&gt;public&lt;/FONT&gt; &lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot;&gt;&lt;FONT color=#0000ff&gt;static&lt;/FONT&gt; &lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot;&gt;&lt;FONT color=#0000ff&gt;extern&lt;/FONT&gt; &lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot;&gt;&lt;FONT color=#0000ff&gt;bool&lt;/FONT&gt; Beep(&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot;&gt;&lt;FONT color=#0000ff&gt;int&lt;/FONT&gt; freq,&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot;&gt;&lt;FONT color=#0000ff&gt;int&lt;/FONT&gt; duration);&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face=&quot;Courier, Monospace&quot;&gt;&lt;FONT color=#0000ff&gt;&lt;BR&gt;&amp;nbsp;public&lt;/FONT&gt; &lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot;&gt;&lt;FONT color=#0000ff&gt;static&lt;/FONT&gt; &lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot;&gt;&lt;FONT color=#0000ff&gt;void&lt;/FONT&gt; Main(&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; color=#0000ff&gt;string&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=4&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;[] args)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;Beep(1000,1000);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;&amp;nbsp; Beep(2000,500);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;&amp;nbsp;}&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;&lt;FONT size=3&gt;The considerably more interesting &quot;MessageBeep&quot; (via &lt;A href=&quot;http://blogs.gotdotnet.com/BradA/permalink.aspx/387620b1-f891-4a71-baba-638c3d7722ac&quot;&gt;BradA&lt;/A&gt;) that uses the Wav files that are configured in the Sounds Control Panel.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=4&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;public&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt; &lt;SPAN style=&quot;COLOR: blue&quot;&gt;enum&lt;/SPAN&gt; MessageBeepType&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Default = -1,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ok = 0x00000000,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Error = 0x00000010,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Question = 0x00000020,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Warning = 0x00000030,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Information = 0x00000040,&lt;BR&gt;}&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt&quot;&gt;&lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &apos;Courier New&apos;&quot;&gt;[DllImport(&quot;user32.dll&quot;, SetLastError=&lt;SPAN style=&quot;COLOR: blue&quot;&gt;true&lt;/SPAN&gt;)]&lt;BR&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;public&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue&quot;&gt;static&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue&quot;&gt;extern&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue&quot;&gt;bool&lt;/SPAN&gt; MessageBeep(&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBeepType type&lt;BR&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;/FONT&gt;</description>
			<guid>http://radio.weblogs.com/0106747/categories/webServices/2003/08/01.html#a408</guid>
			<pubDate>Fri, 01 Aug 2003 18:52:40 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=106747&amp;amp;p=408&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0106747%2F2003%2F08%2F01.html%23a408</comments>
			</item>
		</channel>
	</rss>
