<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>/bill's House O Insomnia&lt;img src="http://www.williamgryan.com/images/originalcuckoo.jpg" alt="Bill Ryan" /&gt; : Humor, Coding Techniques</title><link>http://msmvps.com/blogs/williamryan/archive/tags/Humor/Coding+Techniques/default.aspx</link><description>Tags: Humor, Coding Techniques</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Comment of the week - Sql Server Reporting Services vs. Crystal</title><link>http://msmvps.com/blogs/williamryan/archive/2006/09/27/Comment-of-the-week-_2D00_-Sql-Server-Reporting-Services-vs.-Crystal.aspx</link><pubDate>Wed, 27 Sep 2006 05:27:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:142621</guid><dc:creator>William</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/williamryan/rsscomments.aspx?PostID=142621</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/williamryan/commentapi.aspx?PostID=142621</wfw:comment><comments>http://msmvps.com/blogs/williamryan/archive/2006/09/27/Comment-of-the-week-_2D00_-Sql-Server-Reporting-Services-vs.-Crystal.aspx#comments</comments><description>&lt;p&gt;A while ago, I posted &lt;a href="http://msmvps.com/blogs/williamryan/archive/2004/11/07/18148.aspx?CommentPosted=true#commentmessage"&gt;this&lt;/a&gt;&amp;nbsp;about how much a55 I think Crystal Reports sucks.&amp;nbsp; A long time ago, back at like v.7, I thought Crystal was a decent product.&amp;nbsp; And to be honest, it still is a decent product.&amp;nbsp; But it comes with a lot of baggage and has a lot that just makes it lame.&amp;nbsp; So I had almost total consenus on the Crystal Reports w/ .NET sucks side, I think there are two people that disagree.&amp;nbsp;Ignoring the fact that SSRS is very new product and Crystal has been around forever, I think side by side it&amp;#39;s a slam dunk.&amp;nbsp; But one big mouth said this: (NOTE:&amp;nbsp; I&amp;#39;m only posting a comment that was publicly posted on my site.&amp;nbsp; So hopefully the guy won&amp;#39;t be a &lt;a href="http://www.charlescarroll.com"&gt;cry baby&lt;/a&gt; about it and throw a temper tantrum over it)&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;quot;Either you guys are idiots or you have never used Crystal and don&amp;#39;t realize the minimal functionality that SQL Reporting Services offers. I have spent the last week evaluating SSRS and am greatly dissapointed. I came up with a list of over 250 items that SSRS could not do. As for all you Access reporters, your probably the only people to ever purchase Microsoft&amp;#39;s &amp;quot;Bob&amp;quot; product. &amp;quot;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;So the guy claims to know enough about Crystal to have cataloged over 250 features that SSRS doesn&amp;#39;t have.&amp;nbsp; That means that including the features he&amp;#39;ll admit it does have, he knows way more than 250 features.&amp;nbsp; I think that would qualify you as a fairly advanced Crystal user if you&amp;#39;ll pardon the oxymoron.&amp;nbsp; And he spent one week with SSRS.&amp;nbsp; And the only conclusion he can draw is that SSRS is definitely lacking those features and that it couldn&amp;#39;t possibly be that he just doesn&amp;#39;t know how to use them, right?&amp;nbsp; And far be it from me to say anything positive about Access, but come on, being a hard core Crystal user still means you&amp;#39;re the report ***, and that gives you credentials to snob no one. Certainly not Access developers&amp;nbsp;and certainly not Bob users.&amp;nbsp; Is he really claiming Bob was lame but Crystal Reports isn&amp;#39;t?&amp;nbsp; Pulllleeezz.&amp;nbsp; But if you read the context of the comments, the people were pointing out that Access, as lame as it is, provides more effective funcionality.&amp;nbsp; The fact this can even be debated speaks volumes don&amp;#39;t you think?&amp;nbsp; Is Access supposed to be first and foremost a report writer?&amp;nbsp; Last time I looked it&amp;#39;s main purpose was as a relational database (more precisely, a database that anyone can build with, that causes major headaches for the people that will inevitably be brought in to clean up the mess it made) not a report writer.&amp;nbsp; Reports are one of its features but one would certainly expect that a mature product who&amp;#39;s sole purpose is report writing ought to be a little better than a RDBMS product with reports added in.&lt;/p&gt;&lt;p&gt;So I offered a challenge, I asked him to post just 20 of his 250 features that CR can do that SSRS can&amp;#39;t.&amp;nbsp; I&amp;#39;ll see if they really can&amp;#39;t be done and post the results. If I&amp;#39;m wrong, I&amp;#39;ll admit it.&amp;nbsp; If he&amp;#39;s wrong I&amp;#39;ll point out what an a33hat he is.&amp;nbsp; I actually believe there are probably 20 or so features missing, but certainly not major ones.&amp;nbsp; Even assuming there were really 250 features missing, how many times do you need 250 features for a report?&amp;nbsp; Typically you need Grouping, Subreporting, charts/graphs, conditional formatting, functions and the like. He didn&amp;#39;t comment as to his evaluation of how each stacked up there - for reasons that are obvious.&amp;nbsp; Anyway, I believe his 250+ number about as much as I believe in the easter bunny so although *someone* could probably post 20 things lacking, I doubt he can.&amp;nbsp; One of us is very wrong here and hopefully it&amp;#39;s not me. We&amp;#39;ll have to wait and see.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=142621" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Humor/default.aspx">Humor</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/.NET+General/default.aspx">.NET General</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Coding+Techniques/default.aspx">Coding Techniques</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Mindless+Babbling/default.aspx">Mindless Babbling</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Misc+Technology/default.aspx">Misc Technology</category></item><item><title>Why Avoid Code  Behind?</title><link>http://msmvps.com/blogs/williamryan/archive/2006/03/26/87806.aspx</link><pubDate>Sat, 25 Mar 2006 23:17:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:87806</guid><dc:creator>William</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/williamryan/rsscomments.aspx?PostID=87806</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/williamryan/commentapi.aspx?PostID=87806</wfw:comment><comments>http://msmvps.com/blogs/williamryan/archive/2006/03/26/87806.aspx#comments</comments><description>&lt;FONT face=Verdana size=2&gt;I spent the good part of this week debugging and redoing a bunch of ASP.NET code that featured the no code behind approach prominently.&amp;nbsp; It was excrutiating to say the least. I know &lt;A href="http://www.learnasp.com/"&gt;Boiling Springs' Greatest Unemployed Guru&lt;/A&gt; is a big advocate of this approach, but is there really any possible benefit to avoiding Code Behind?&amp;nbsp; If so, please school me because I sure as hell don't see it.&lt;/FONT&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=87806" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Humor/default.aspx">Humor</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Coding+Techniques/default.aspx">Coding Techniques</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Mindless+Babbling/default.aspx">Mindless Babbling</category></item><item><title>Overriding ToString()</title><link>http://msmvps.com/blogs/williamryan/archive/2005/07/31/60033.aspx</link><pubDate>Sun, 31 Jul 2005 05:28:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:60033</guid><dc:creator>William</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/williamryan/rsscomments.aspx?PostID=60033</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/williamryan/commentapi.aspx?PostID=60033</wfw:comment><comments>http://msmvps.com/blogs/williamryan/archive/2005/07/31/60033.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;I had mentioned reading &lt;A href="http://www.amazon.com/exec/obidos/tg/detail/-/0321245660/qid=1122781265/sr=8-1/ref=pd_bbs_1/002-3152385-1817625?v=glance&amp;amp;s=books&amp;amp;n=507846"&gt;Effective C#, 50 Specific Ways to Improve Your C#&lt;/A&gt;&amp;nbsp; back a few &lt;A href="http://msmvps.com/williamryan/archive/2005/07/18/58016.aspx"&gt;posts ago&lt;/A&gt;.&amp;nbsp; So&amp;nbsp;I decided to show off a few of the techniques there as well as some new C# features&amp;nbsp;and &lt;A href="http://msmvps.com/williamryan/archive/2005/07/25/59599.aspx"&gt;began with this post.&lt;/A&gt;&amp;nbsp;.&amp;nbsp; Anyway,&amp;nbsp;when I started writing out the examples, I&amp;nbsp;kept adding new things and&amp;nbsp;it started to turn into a really long piece.&amp;nbsp; Well, I need&amp;nbsp;to start at the beginning&amp;nbsp;and just let things go from there, otherwise I'll never get finished.&amp;nbsp; So let's start at the absolute beginning.&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;I ran through a bunch of my existing code and looked for the number of times I did an&amp;nbsp; override on the ToString() method.&amp;nbsp; Except for a few times when I had&amp;nbsp;a specific need to do so, I didn't find many. Well, if you look at the Framework, it's obvious that many of the&amp;nbsp;classes have an override on the ToString() method and when they do, it's usually quite helpful.&amp;nbsp; I know, this is such an easy thing to do that it barely warrants discussion but I think that the fact that I (and&amp;nbsp;the majority of developers I know as well as the majority of code I've seen) so seldom&amp;nbsp;do it makes it worth emphasizing.&amp;nbsp; If you don't ever do&amp;nbsp;it, it won't have&amp;nbsp;ANY notable&amp;nbsp;effect on the&amp;nbsp;way your code runs.&amp;nbsp; However, it can (and does) make a difference in how user friendly your libraries are to developers using your code.&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Stated simply, you don't have to use XML Comments in your class libraries (and&amp;nbsp;until recently, if you used VB.NET, you couldn't unless you wired them in yourself or bought an&amp;nbsp;Add-In), you don't have to use enums to assist users with intellisense, you don't have to overload your constructors or other methods, but it sure makes your code a lot nicer to use if you do.&amp;nbsp; Well,&amp;nbsp;if you look at the original &lt;A href="http://msmvps.com/williamryan/archive/2005/07/25/59599.aspx"&gt;Shocker Class I wrote&lt;/A&gt;,&amp;nbsp;I&amp;nbsp;have a override&amp;nbsp;for ToString().&amp;nbsp;&amp;nbsp;Assuming you passed in &amp;#8220;Stink&amp;#8221; and &amp;#8220;Pink&amp;#8221; respectively to the&amp;nbsp;overloaded constructor, you'll&amp;nbsp;see &amp;#8220;One in the&amp;nbsp;Stink, Two in the Pink&amp;#8221; as the output.&amp;nbsp; However if you comment out the override, you'll &lt;A href="http://www.jjbresearch.org/acs/blogs/optionsscalper/archive/2005/07/21/DoubleIComments.aspx"&gt;DoubleI&lt;/A&gt;.TheShocker.Shocker.&amp;nbsp; Outside of the fact that this class was contrived and a bit flippant, the point should be obvious, namely, that you can provide a LOT more useful information than the Namespace.Class. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Outside of the Override though - you can overload the ToString() method and with a little footwork, have a much more user friendly&amp;nbsp;class (the intellisense support alone is worth the price of admission)&amp;nbsp; Anyway, I know this is pretty lame but I'm trying to formulate as many things as I can with a simple example though.&amp;nbsp; By taking full advantage of the XML Comments you can do quite a bit and just a combination like this, of two really simple techniques can make your class a lot more user friendly.&amp;nbsp; And before you call me a l4mer for posting this - hold your horses, I'm going somewhere with this.:&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#800000&gt;
&lt;P&gt;&lt;FONT size=2&gt;///&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#808080&gt; &lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;summary&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; Method to provide a more granular feedback mechanism&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; for the user by specifying what is returned by the ToString()&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; method.&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;/summary&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;param name=&lt;/FONT&gt;&lt;FONT color=#808080&gt;"formatOptions"&lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;gt;&amp;lt;see cref=&lt;/FONT&gt;&lt;FONT color=#808080&gt;"DoubleI.TheShocker.OutPutOptions"&lt;/FONT&gt;&lt;FONT color=#800000&gt;/&amp;gt;&lt;/FONT&gt;&lt;FONT color=#808080&gt; value&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; allowing the user to specify what they want to show.&lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;/param&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;returns&amp;gt;&amp;lt;see cref=&lt;/FONT&gt;&lt;FONT color=#808080&gt;"System.String"&lt;/FONT&gt;&lt;FONT color=#800000&gt;/&amp;gt;&lt;/FONT&gt;&lt;FONT color=#808080&gt; value showing the&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;see cref=&lt;/FONT&gt;&lt;FONT color=#808080&gt;"System.String"&lt;/FONT&gt;&lt;FONT color=#800000&gt;/&amp;gt;&lt;/FONT&gt;&lt;FONT color=#808080&gt; representation corresponding&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; to the &lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;see cref=&lt;/FONT&gt;&lt;FONT color=#808080&gt;"DoubleI.TheShocker.OutPutOptions"&lt;/FONT&gt;&lt;FONT color=#800000&gt;/&amp;gt;&lt;/FONT&gt;&lt;FONT color=#808080&gt; specified&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; by the user&lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;/returns&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;remarks&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; Values for the &lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;see cref=&lt;/FONT&gt;&lt;FONT color=#808080&gt;"DoubleI.TheShocker.OutPutOptions"&lt;/FONT&gt;&lt;FONT color=#800000&gt;/&amp;gt;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; parameter are specified below:&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;list&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;item&amp;gt;&lt;/FONT&gt;&lt;FONT color=#808080&gt;OutPutOptions.None = 0&lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;/item&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;item&amp;gt;&lt;/FONT&gt;&lt;FONT color=#808080&gt;OutPutOptions.PrivateMembers = 1&lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;/item&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;item&amp;gt;&lt;/FONT&gt;&lt;FONT color=#808080&gt;OutPutOptions.ProtectedMembers = 2&lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;/item&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;item&amp;gt;&lt;/FONT&gt;&lt;FONT color=#808080&gt;OutPutOptions.PublicMembers = 3&lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;/item&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;item&amp;gt;&lt;/FONT&gt;&lt;FONT color=#808080&gt;OutPutOptions.All = 4&lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;/item&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;item&amp;gt;&lt;/FONT&gt;&lt;FONT color=#808080&gt;OutPutOptions.Silliness = 5&lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;/item&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;/list&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;/remarks&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;example&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; Shocker ShockerSample = new Shocker("Stink", "Pink");&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; Console.WriteLine(ShockerSample.ToString(OutPutOptions.Silliness);&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; //Will yeild "One in the Stink, Two in the Pink&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000&gt;///&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;/FONT&gt;&lt;FONT color=#800000&gt;&amp;lt;/example&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;public&lt;/FONT&gt; &lt;FONT color=#008080&gt;String&lt;/FONT&gt; ToString(&lt;FONT color=#008080&gt;OutPutOptions&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt; formatOptions)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch&lt;/FONT&gt;&lt;FONT face="Courier New"&gt; (formatOptions)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&lt;/FONT&gt; &lt;FONT color=#008080&gt;OutPutOptions&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.None:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&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; return&lt;/FONT&gt; &lt;FONT color=#800000&gt;"Nice Going A55Munch, this is a useless overload and call"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case&lt;/FONT&gt; &lt;FONT color=#008080&gt;OutPutOptions&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.PrivateMembers:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&lt;/FONT&gt; &lt;FONT color=#008080&gt;String&lt;/FONT&gt;.Format(&lt;FONT color=#800000&gt;"_oneValue: {0}, _twoValue {1}"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;._oneValue,&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; this&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;._twoValue);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&lt;/FONT&gt; &lt;FONT color=#008080&gt;OutPutOptions&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.ProtectedMembers:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return&lt;/FONT&gt; &lt;FONT color=#800000&gt;"Bill was lazy and didn't create any protected members yet"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case&lt;/FONT&gt; &lt;FONT color=#008080&gt;OutPutOptions&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.PublicMembers:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&lt;/FONT&gt; &lt;FONT color=#008080&gt;String&lt;/FONT&gt;.Format(&lt;FONT color=#800000&gt;"OneValue: {0}, TwoValue {1}"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.OneValue,&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.TwoValue); &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case&lt;/FONT&gt; &lt;FONT color=#008080&gt;OutPutOptions&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.All:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=1&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&lt;/FONT&gt; &lt;FONT color=#008080&gt;String&lt;/FONT&gt;.Format(&lt;FONT color=#800000&gt;"_oneValue: {0}, _twoValue {1}"&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + &lt;/FONT&gt;&lt;FONT face="Courier New" color=#800000&gt;", OneValue: {2}, TwoValue{3}"&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;._oneValue,&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;._twoValue,&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.OneValue,&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.TwoValue ); &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case&lt;/FONT&gt; &lt;FONT color=#008080&gt;OutPutOptions&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.Silliness: &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&lt;/FONT&gt; &lt;FONT color=#008080&gt;String&lt;/FONT&gt;.Format(&lt;FONT color=#800000&gt;"One in the {0}, Two in the {1}"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; this&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.OneValue,&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; this&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.TwoValue);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=60033" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Humor/default.aspx">Humor</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/.NET+General/default.aspx">.NET General</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Coding+Techniques/default.aspx">Coding Techniques</category></item><item><title>Sql Injection Ad Naseaum</title><link>http://msmvps.com/blogs/williamryan/archive/2005/07/23/59418.aspx</link><pubDate>Sat, 23 Jul 2005 05:24:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:59418</guid><dc:creator>William</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/williamryan/rsscomments.aspx?PostID=59418</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/williamryan/commentapi.aspx?PostID=59418</wfw:comment><comments>http://msmvps.com/blogs/williamryan/archive/2005/07/23/59418.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;A while ago&amp;nbsp; &lt;A href="http://odetocode.com/Blogs/scott/"&gt;Scott&lt;/A&gt; had a great post about &lt;A href="http://odetocode.com/Blogs/scott/archive/2005/03/30/1158.aspx"&gt;demo code&lt;/A&gt;&amp;nbsp;.&amp;nbsp; So I was reading up on &lt;A href="http://www.codemilitia.com/blogs/tobin.titus/archive/2005/07/22/245.aspx"&gt;The Bleeding Edge, Never Been Done Before Technology Known As Ajax&lt;/A&gt;&amp;nbsp;and started surfing around a little b/c I wanted to get in on the mocumentary action.&amp;nbsp; So I come across &lt;A href="http://www.eggheadcafe.com/articles/20050514.asp"&gt;Peter's&lt;/A&gt;&amp;nbsp;where he warns you not to believe the hype.&amp;nbsp; Peter's got some examples on how to use it and then some d1ckhead points out that his code is vulnerable to Injection Attacks.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;This was like a total slashdot comment... Why?&amp;nbsp; Well, it's some really stupid unclever point that has nothing to do with the subject matter at hand.&amp;nbsp; I hate dynamic unparamaterized SQL as anyone, hell I started the club, but this code wasn't about Injection attacks and it was for demo puproses only.&amp;nbsp; Hmm, if we're going to nitpick abotu demo code, then there's a lot more to bitch about.&amp;nbsp; But I personally don't really want to start reading code blocks that comprise 10 lines of actual code but have three try/catch blocks in them which span only one line of code each.&amp;nbsp; This is after all, how we code in production but do we really want to see surgically precise exception handling in demo code?&amp;nbsp; Probably not.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;This type of sh1t really actually pisses me off.&amp;nbsp; A while ago, I was at a major conference back when the Compact Framework and the MMIT had just come out.&amp;nbsp; This guy was demoing the IBuySpy stuff on the compact framework w/ Sql Server CE.&amp;nbsp; There were about 300 people in the audience and he starts taking questions.&amp;nbsp; So some d1ckhead says &amp;#8220;I think it's totally irresponsible for you, as an expert in the field, to display code that's PARADING security flaws in front of developers who aren't experienced with this technology.&amp;nbsp; Your code is using dynamic sql and is open to an injection attack, and people here will look at your coding style and copy it.&amp;nbsp; So one oversight like this on your part could cause several security problems..&amp;#8221;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;IT WAS DEMO CODE ON SQL SERVER CE.&amp;nbsp; Hmmm, i have full control of the device and it's a demo anyway and I'm going to use a f~cking injection attack to destroy the db.&amp;nbsp; Boy, that's a 3:33t H4ck for you.&amp;nbsp; And this was probably the samef~cktard that was dissing Peter's example.&amp;nbsp;Everyone knows about injection attacks ok.&amp;nbsp; You don't need to point it out every time someone does a f!cking demo already.&amp;nbsp; Sure, if someone's using it at work, have at it.&amp;nbsp; But for demos, it's acceptable - and TRUST ME, you *DON'T* look smart or security conscious by pointing crap like this out when someone's trying to demo some new stuff for you.&amp;nbsp; It just distracts them and wastes everyone elses time.&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=59418" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Humor/default.aspx">Humor</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Me/default.aspx">Me</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Coding+Techniques/default.aspx">Coding Techniques</category></item><item><title>This didn't come from the "C#" Group</title><link>http://msmvps.com/blogs/williamryan/archive/2005/04/14/42139.aspx</link><pubDate>Thu, 14 Apr 2005 23:32:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:42139</guid><dc:creator>William</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/williamryan/rsscomments.aspx?PostID=42139</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/williamryan/commentapi.aspx?PostID=42139</wfw:comment><comments>http://msmvps.com/blogs/williamryan/archive/2005/04/14/42139.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;With that as your only hint, want to guess where it *did* come from:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&amp;#8220;Hi everyone,&lt;BR&gt;&lt;BR&gt;I am a newbee in the .NET world. Please guide me ??&lt;BR&gt;&lt;BR&gt;Scenario: I have a master computer, say, m1 in cityA. I have other client&lt;BR&gt;PCs in seperate cities, say, cityB, cityC&amp;nbsp; and cityD. Now I have stores at&lt;BR&gt;the three mentioned client sites.&lt;BR&gt;&lt;BR&gt;I want to develop a web application using VB.NET, so that I can sitting at&lt;BR&gt;m1, watch over my stores in the three cities using webcams etc.&lt;BR&gt;&lt;BR&gt;Please tell me how to go about it.&amp;#8221;&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=42139" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Humor/default.aspx">Humor</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Coding+Techniques/default.aspx">Coding Techniques</category></item><item><title>http://www.everythingado.net</title><link>http://msmvps.com/blogs/williamryan/archive/2005/01/30/34242.aspx</link><pubDate>Sun, 30 Jan 2005 08:45:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:34242</guid><dc:creator>William</dc:creator><slash:comments>20</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/williamryan/rsscomments.aspx?PostID=34242</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/williamryan/commentapi.aspx?PostID=34242</wfw:comment><comments>http://msmvps.com/blogs/williamryan/archive/2005/01/30/34242.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Well, I finally bit the bullet and purchased my site from Brinkster.&amp;nbsp; I'm going to be hosting blogs for a few of my disaffected DNJ friends - but well, due to the nature of the site - I'm not handing them out to everyone - If I know you, or you can convince me your not a dork, or if you're a dork and can convince me you have some technical content - drop me a line or if you're a&amp;nbsp;regular contributor to a newsgroup that begins with microsoft.public.dotnet.framework - if it ends with compactframework or adonet then you're automatically invited.&amp;nbsp;&amp;nbsp; I'm also going to have a Uncensored portion or which is going to be cool - Bridgette Kerkove, Jenna Jameson, Janine &amp;amp; TS&amp;nbsp;type of cool.&amp;nbsp; I'm debating about how to host the &amp;#8220;Unrelated Cool&amp;#8220; content - probably make it restricted access.&amp;nbsp; And on the off chance you're wondering - no, I'm not moving my blog over there.&amp;nbsp; I really dig it here.&amp;nbsp; But I want to do a few things.&amp;nbsp; Sahil already found a good place but it seems DNJ is going to crap these days - I see more Exception messages than I do content since 2005 began.&amp;nbsp; I also want to host a few web services that are public, a few private ones that I can dish out the tokens to if people are interested... etc etc.Part of the reason I want to host my own Text stuff is b/c I want to mod it out - and I can't create skinz and stuff without being an pain in the a33 to the wonderful patron of this site.&amp;nbsp; basically I just want a playground - ADO.NET and Compact Framework oriented - where I and other people that don't write me STUPID hate mail all the time can use.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;But the real rub is that it looks like they are going to let me install the 2.0 framework to run some ASP.NET 2.0 and Yukon samples on.&amp;nbsp; Still gotta check with MS and make sure this is ok but I think it will be.&amp;nbsp; If it is, then there's Lot's o Potential.&amp;nbsp; Can't get too into the details now - but using Yukon - there's potentially a much cooler way to send out notifications that articles have been posted, blogs updated, or Bridgette has another movie available.&amp;nbsp;Also, Sonny &amp;amp; EDC the Coding Cuckooz are going to be active in development - and you know what sort of stuff they are interested in.&amp;nbsp; Suffering at the moment from More ideas than ability to stay awake...............&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Setting up .Text is a total pain in the a33 - at least so far it has been.&amp;nbsp; It's mainly the web interface and all the f**** sql scripts that I have to run - ONE AT A TIME.&amp;nbsp; Anyway, I'm screwing around with .NET Nuke and one of the starter kits. can't figure out which one I prefer.&amp;nbsp; Feedback is welcome.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;I'm also working w/ one of the starter kits but I'm leaning more toward .NET Nuke.&amp;nbsp; Not sure if the hype is real but I hear it is - so sometime tomorrow hopefully I'll have made up my mind.&amp;nbsp; I won't be doing anything other than sitting in my apartment wondering why this whole f~ck1ng city is shut down b/c of 1/2 an inch of snow - so I should get something done. &lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=34242" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/williamryan/archive/tags/News/default.aspx">News</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Humor/default.aspx">Humor</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Compact+Framework/default.aspx">Compact Framework</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/MVP+Stuff/default.aspx">MVP Stuff</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Me/default.aspx">Me</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/.NET+General/default.aspx">.NET General</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Visual+Studio+.NET+2005/default.aspx">Visual Studio .NET 2005</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Coding+Techniques/default.aspx">Coding Techniques</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Mindless+Babbling/default.aspx">Mindless Babbling</category></item><item><title>From Scott - So you want to be an architect</title><link>http://msmvps.com/blogs/williamryan/archive/2005/01/25/33840.aspx</link><pubDate>Wed, 26 Jan 2005 02:32:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:33840</guid><dc:creator>William</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/williamryan/rsscomments.aspx?PostID=33840</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/williamryan/commentapi.aspx?PostID=33840</wfw:comment><comments>http://msmvps.com/blogs/williamryan/archive/2005/01/25/33840.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&lt;A href="http://odetocode.com/Blogs/scott/archive/2005/01/23/956.aspx"&gt;Here are the questions&lt;/A&gt;&amp;nbsp;:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Here are my answers:&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face=Tahoma size=2&gt;1) I'm with Andy - Fred's gone &lt;BR&gt;2) None of the above - Sir, It already is SOA compliant - however if we want to be trendsetters at the tradeshow instead of hanging on the bandwagon&amp;nbsp;- then we need to allocate some resources my direction.&amp;nbsp; For another 100,000k we can be the first to Roll out Delta Based Architectural Oriented Service Portals&lt;BR&gt;3) Send them in a Room together and tell them that in 4 minutes, I'm coming back and it better be figured out or they'll both be coding in VB6 and will have to use IE2.0 for all of their browsing &lt;BR&gt;4) I already fired Fred but I'd hire him back because he was threatening the technical writers. That's cool. I'd tell Jill that she's right - but what's her point? I'd move harry over to sales, it'd be a match made in heaven. And Jack - well, I'd tell him do as he pleases but we're going to deduct money from his paycheck for the time it takes him to fix a problem not caught by his Regresssion testing.&lt;/FONT&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=33840" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Humor/default.aspx">Humor</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Coding+Techniques/default.aspx">Coding Techniques</category></item><item><title>Again - this was written in VB6</title><link>http://msmvps.com/blogs/williamryan/archive/2004/12/08/23038.aspx</link><pubDate>Thu, 09 Dec 2004 03:25:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:23038</guid><dc:creator>William</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/williamryan/rsscomments.aspx?PostID=23038</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/williamryan/commentapi.aspx?PostID=23038</wfw:comment><comments>http://msmvps.com/blogs/williamryan/archive/2004/12/08/23038.aspx#comments</comments><description>&lt;FONT face=Tahoma size=2&gt;This may be the best one &lt;A href="http://thedailywtf.com/archive/2004/11/10/3480.aspx"&gt;I've ever seen&lt;/A&gt;&lt;/FONT&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=23038" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Humor/default.aspx">Humor</category><category domain="http://msmvps.com/blogs/williamryan/archive/tags/Coding+Techniques/default.aspx">Coding Techniques</category></item></channel></rss>