<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>Code Zest</title>
        <link>http://codezest.com/Default.aspx</link>
        <description />
        <language>en-US</language>
        <copyright>Dave Schinkel</copyright>
        <managingEditor>dschinkel@gmail.com</managingEditor>
        <generator>Subtext Version 2.0.0.43</generator>
        <image><link>http://creativecommons.org/licenses/by-nc-nd/2.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image>
        <creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/CodeZest" type="application/rss+xml" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FCodeZest" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FCodeZest" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FCodeZest" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/CodeZest" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FCodeZest" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FCodeZest" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FCodeZest" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2FCodeZest" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FCodeZest" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FCodeZest" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2FCodeZest" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FCodeZest" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FCodeZest" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FCodeZest" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FCodeZest" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FCodeZest" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FCodeZest" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FCodeZest" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2FCodeZest" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
            <title>Microsoft Expression Super Preview Tool &amp;ndash; Completely Useless ?</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/dscjWxZTcA8/microsoft-expression-super-preview-tool-ndash-completely-useless.aspx</link>
            <description>&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b5b22f9e-9dbf-45b0-80c0-a38277512243" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Expression" rel="tag"&gt;Expression&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;Today I was all excited about ditching my VM running Windows XP that I use to test IE 6 as part of my cross-browser testing for our e-commerce website and to use Expression Super Preview instead.&lt;/p&gt;  &lt;p&gt;So I fired up Super Preview for the first time.  Very cool. I’ll be able to bring up any web site and see multiple views of it in most major browsers and their past and current versions right?  &lt;/p&gt;  &lt;p&gt;Well, it seemed like a huge productivity gain, until I actually tried to USE it that is…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/MicrosoftExpressionWebUseless_820F/superpreview1_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="superpreview1" border="0" alt="superpreview1" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/MicrosoftExpressionWebUseless_820F/superpreview1_thumb.png" width="607" height="371" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/MicrosoftExpressionWebUseless_820F/superpreview2_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="superpreview2" border="0" alt="superpreview2" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/MicrosoftExpressionWebUseless_820F/superpreview2_thumb.png" width="607" height="371" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/MicrosoftExpressionWebUseless_820F/superpreview3_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="superpreview3" border="0" alt="superpreview3" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/MicrosoftExpressionWebUseless_820F/superpreview3_thumb.png" width="608" height="372" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;There’s a MAJOR functional problem with it.  &lt;strong&gt;YOU CAN’T INTERACT WITH THE SITE THAT YOU PULL UP! &lt;/strong&gt; Look above, I can’t log in.  That means that most of the pages I can’t even view in this tool.  What’s the point of even using this tool then?&lt;/p&gt;  &lt;p&gt;How am I going to test anything if I can’t even log in or click around?  Because you simply can’t!  I tried to log into the site and all you get is the DOM elements shown at the bottom of the screen.&lt;/p&gt;  &lt;p&gt;Any serious non-static website these days require an auth before you even get to 80-90% of the pages!   So this tool is only good for at looking at the Homepage, an About or Legal static page on any website?  It’s pretty limiting don’t you think?&lt;/p&gt;  &lt;p&gt;So, sadly, MS pushes what could have been a &lt;strong&gt;very&lt;/strong&gt; useful and cool product to production that nobody else really has (at least not that I am aware of)  but we can’t use it in a realistic web world.&lt;/p&gt;  &lt;p&gt;It’s our job as customers/consumers of MS products to point these things out and challenge the usability of what they push to production.  Hell MS should already be doing this but in my observation of this tool alone, it’s still an issue…usability and therefore practicality to the real-world and daily process of a graphic designer or software engineer is really not being considered.&lt;/p&gt;  &lt;p&gt;Clearly they did not think about usability or practicality because so far, this Super Preview Tool (even the IE plug-in) is of no use to real business based developers &amp;amp; designers at this point which is really just amazing to me that the product is even being marketed as something that us usable in a real business environment.&lt;/p&gt;&lt;img src="http://codezest.com/aggbug/124.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/a00BlP-btJL2r_Q5vu_LjiqMoEE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a00BlP-btJL2r_Q5vu_LjiqMoEE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/a00BlP-btJL2r_Q5vu_LjiqMoEE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a00BlP-btJL2r_Q5vu_LjiqMoEE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=dscjWxZTcA8:ZZ3m1SBTD2o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=dscjWxZTcA8:ZZ3m1SBTD2o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=dscjWxZTcA8:ZZ3m1SBTD2o:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=dscjWxZTcA8:ZZ3m1SBTD2o:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=dscjWxZTcA8:ZZ3m1SBTD2o:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=dscjWxZTcA8:ZZ3m1SBTD2o:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=dscjWxZTcA8:ZZ3m1SBTD2o:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=dscjWxZTcA8:ZZ3m1SBTD2o:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=dscjWxZTcA8:ZZ3m1SBTD2o:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=dscjWxZTcA8:ZZ3m1SBTD2o:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=dscjWxZTcA8:ZZ3m1SBTD2o:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/dscjWxZTcA8" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/10/26/microsoft-expression-super-preview-tool-ndash-completely-useless.aspx</guid>
            <pubDate>Mon, 26 Oct 2009 16:39:56 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/124.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/10/26/microsoft-expression-super-preview-tool-ndash-completely-useless.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/124.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/124.aspx</trackback:ping>
        <feedburner:origLink>http://codezest.com/archive/2009/10/26/microsoft-expression-super-preview-tool-ndash-completely-useless.aspx</feedburner:origLink></item>
        <item>
            <title>Multiline Scroll Box in ASP.NET</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/CDS1IEvDlzk/multiline-scroll-box-in-asp.net.aspx</link>
            <description>&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6a400476-f91c-45e5-96e8-70f4f3a2cfa4" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;Just a quick little tip I came across while trying to figure out how to render HTML into a scrollable textbox.  Originally I wanted to create a Terms &amp;amp; Conditions scroll box, nothing special here.&lt;/p&gt;  &lt;p&gt;What was driving me nuts was the encoding.  I had created an ASP.NET textbox, set it to multi-line and set the text to it from code-behind.  &lt;/p&gt;  &lt;p&gt;I’m tired of using ASP.NET controls, especially when you can do something like this much easier with plain HTML and CSS and it’s working just fine cross browswer and always will.  And as I’ve worked a bit in MVC on a team, I move away more and more from ASP.NET controls when I still work in some classic ASP.NET environments also in mark-up.  You absolutely don’t even need those controls at all in ASP.NET.  So decided to switch to a div after finding out that you can just do this with a div like so:&lt;/p&gt;  &lt;pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"divTerms"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"scrollableDiv-500x130"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"server"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;Here’s the class (note that this won’t work with an id..as you know you can use for styling also):&lt;/p&gt;

&lt;pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;.&lt;span style="color: #800000"&gt;scrollableDiv-500x130&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;{
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;	&lt;span style="color: #ff0000"&gt;width&lt;/span&gt;: &lt;span style="color: #0000ff"&gt;500px&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;	&lt;span style="color: #ff0000"&gt;height&lt;/span&gt;: &lt;span style="color: #0000ff"&gt;130px&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;	&lt;span style="color: #ff0000"&gt;overflow&lt;/span&gt;: &lt;span style="color: #0000ff"&gt;auto&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;}&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;Now the ASP.NET part of it in terms of setting the text from code-behind:&lt;/p&gt;

&lt;p&gt;private void SetTermsText() 
  &lt;br /&gt;{ 

  &lt;br /&gt;    StringBuilder termsText = new StringBuilder(); 

  &lt;br /&gt;    termsText.AppendFormat(@"&amp;lt;p class=""bold_black_12""&amp;gt;Some text here..&amp;lt;/p&amp;gt;"); 

  &lt;br /&gt;    termsText.AppendFormat(@"&amp;lt;p&amp;gt;some more formatted text...&amp;lt;/p&amp;gt;");    &lt;/p&gt;

&lt;p&gt;    &lt;strong&gt;&lt;font color="#004000"&gt;divTerms.InnerHtml = termsText.ToString(); 
      &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;}&lt;/p&gt;

&lt;p /&gt;

&lt;p&gt;&lt;strong /&gt;&lt;/p&gt;
&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/MultilineScrollBoxinASP.NET_127A0/scrollablediv_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="scrollablediv" border="0" alt="scrollablediv" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/MultilineScrollBoxinASP.NET_127A0/scrollablediv_thumb.png" width="532" height="212" /&gt;&lt;/a&gt;&lt;img src="http://codezest.com/aggbug/123.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JIKwzZjskLHE2ta8swVm-x6AAr4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JIKwzZjskLHE2ta8swVm-x6AAr4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JIKwzZjskLHE2ta8swVm-x6AAr4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JIKwzZjskLHE2ta8swVm-x6AAr4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=CDS1IEvDlzk:hpiuTWlu7fc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=CDS1IEvDlzk:hpiuTWlu7fc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=CDS1IEvDlzk:hpiuTWlu7fc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=CDS1IEvDlzk:hpiuTWlu7fc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=CDS1IEvDlzk:hpiuTWlu7fc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=CDS1IEvDlzk:hpiuTWlu7fc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=CDS1IEvDlzk:hpiuTWlu7fc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=CDS1IEvDlzk:hpiuTWlu7fc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=CDS1IEvDlzk:hpiuTWlu7fc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=CDS1IEvDlzk:hpiuTWlu7fc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=CDS1IEvDlzk:hpiuTWlu7fc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/CDS1IEvDlzk" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/10/19/multiline-scroll-box-in-asp.net.aspx</guid>
            <pubDate>Tue, 20 Oct 2009 02:02:12 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/123.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/10/19/multiline-scroll-box-in-asp.net.aspx#feedback</comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/123.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/123.aspx</trackback:ping>
        <feedburner:origLink>http://codezest.com/archive/2009/10/19/multiline-scroll-box-in-asp.net.aspx</feedburner:origLink></item>
        <item>
            <title>Oh, That&amp;rsquo;s Just &amp;ldquo;Academic&amp;rdquo; Talk, Not Reality</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/1xztDW_VHf4/oh-thatrsquos-just-ldquoacademicrdquo-talk-not-reality.aspx</link>
            <description>&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5b774efb-8567-4275-8ba6-6869741100d5" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Rants" rel="tag"&gt;Rants&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Standards" rel="tag"&gt;Standards&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Architecture" rel="tag"&gt;Architecture&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;I’ve gotten pretty worked up lately about comments from those developers who frequently hack stuff together and apply code &amp;amp; run atmospheres in their shops because they just don’t know any better and think this is the way to satisfy the business and their development team.&lt;/p&gt;  &lt;p&gt;What am I talking about?  Comments like this:&lt;/p&gt;  &lt;p&gt;“Oh I’ve read articles before from people like that.  A lot of that is &lt;u&gt;just &lt;strong&gt;academic&lt;/strong&gt; and theory&lt;/u&gt;, and not reality”&lt;/p&gt;  &lt;p&gt;“You’re trying to make too perfect of code”&lt;/p&gt;  &lt;p&gt;“The UI doesn’t need to be pretty”&lt;/p&gt;  &lt;p&gt;“Just put it somewhere, &lt;u&gt;it doesn’t really matter&lt;/u&gt;.   I don’t care where it goes, just put it anywhere, whatever works”&lt;/p&gt;  &lt;p&gt;If there are comments that really annoy me, those would be the top 4 and when you hear this consistently, it outright makes you want to just quit sometimes and give up because you’re working with people like this.&lt;/p&gt;  &lt;p&gt;Comments like this are completely &lt;strong&gt;naive&lt;/strong&gt; and are stated to dodge a discussion.  &lt;/p&gt;  &lt;p&gt;Let me break it down for you.  &lt;strong&gt;“Academic” has nothing to do with&lt;/strong&gt;:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Properly scoping out a project based on some rough yet &lt;em&gt;fairly&lt;/em&gt; detailed Functional &amp;amp; Technical specs&lt;/li&gt;    &lt;li&gt;Developing by small feature iterations that are actually achievable (part of Agile)&lt;/li&gt;    &lt;li&gt;Caring about a UI in that you do care about aesthetics.  You do care about site flow.   You do care about graphic designers because it all helps to translate to USABILITY &lt;/li&gt;    &lt;li&gt;Caring about design patterns in code and applying them (but not over architecting) &lt;/li&gt;    &lt;li&gt;Caring about clean code so that the next developer doesn’t get lost in a mess &lt;/li&gt;    &lt;li&gt;Caring about physically architecting files, projects, etc.      &lt;ul&gt;       &lt;li&gt;using names that make sense for filenames, assembly/project names, folders to organize code files, etc. &lt;/li&gt;        &lt;li&gt;Think about MVC, you HAVE to! &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Actually prioritizing tasks based on “Business Needs”.  &lt;ul&gt;       &lt;li&gt;Not bait and switching every other day based on no reason other than this or that person thinks we need this feature but nobody actually thought about priority and ROI &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Applying all 3 types of testing: Unit testing, Quality Assurance, and Usability &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This is not Academic, &lt;strong&gt;it’s smart business&lt;/strong&gt;.  It’s not just related to IT.  If you create anything, are you going to blame engineers who care about producing a product that is maintainable and extensible and then say this is just being “Academic” or this is “Only For Big Teams”?&lt;/p&gt;  &lt;p&gt;It’s only those code &amp;amp; run developers that are the ones even using that kind of statement, and I resent the fact that these are the people running IT shops in a lot of cases.&lt;/p&gt;  &lt;p&gt;Stop with the BS.  Caring about producing quality extensible products has nothing to do with “Academic” vs. Real World.  And give me a break, I know what over documentation is, what over planning is, and what scope creep is.  It’s called Waterfall…been there.  I’ve had people assume that’s what I’m talking about.  Again, naive.  And obviously you can tell when something is being over architected but in many cases the person saying it’s being over architected thinks so because they routinely settle for dirty code.&lt;/p&gt;  &lt;p&gt;To say that because we want the team to continually focus (&lt;em&gt;I’m not talking about “perfection” or “pretty”…please stop it with the BS&lt;/em&gt;) on clean code, manageable files with names that make sense, class names that make sense, method names that make sense, using Interfaces in design is no reason to come back with a statement that includes “Academic”.&lt;/p&gt;  &lt;p&gt;In fact I came across an issue recently where I had an Ambiguous class name conflict because we did not think about naming some .aspx with names that make sense so consequently some DL classes had the same names and thus several Ambiguous references and name collisions that were totally avoidable.  Most likely it was because of this mentality that “fast” is the only way to go that it we had that conflict in the first place because we were in a rush to get it to market.&lt;/p&gt;  &lt;p&gt;If you’re one of these people who use excuses to dodge good process stated above, then I think you should rethink your profession and how you are abusing it.&lt;/p&gt;&lt;img src="http://codezest.com/aggbug/122.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Vq9dsbpMAiV3phFsllx4N7ihvIY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Vq9dsbpMAiV3phFsllx4N7ihvIY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Vq9dsbpMAiV3phFsllx4N7ihvIY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Vq9dsbpMAiV3phFsllx4N7ihvIY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=1xztDW_VHf4:ooH5isS_TjM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=1xztDW_VHf4:ooH5isS_TjM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=1xztDW_VHf4:ooH5isS_TjM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=1xztDW_VHf4:ooH5isS_TjM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=1xztDW_VHf4:ooH5isS_TjM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=1xztDW_VHf4:ooH5isS_TjM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=1xztDW_VHf4:ooH5isS_TjM:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=1xztDW_VHf4:ooH5isS_TjM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=1xztDW_VHf4:ooH5isS_TjM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=1xztDW_VHf4:ooH5isS_TjM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=1xztDW_VHf4:ooH5isS_TjM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/1xztDW_VHf4" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/10/07/oh-thatrsquos-just-ldquoacademicrdquo-talk-not-reality.aspx</guid>
            <pubDate>Thu, 08 Oct 2009 03:10:47 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/122.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/10/07/oh-thatrsquos-just-ldquoacademicrdquo-talk-not-reality.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/122.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/122.aspx</trackback:ping>
        <feedburner:origLink>http://codezest.com/archive/2009/10/07/oh-thatrsquos-just-ldquoacademicrdquo-talk-not-reality.aspx</feedburner:origLink></item>
        <item>
            <title>Worst Development Blog Post Ever &amp;ndash; By Joel Spolsky</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/YWbhJfDHWaQ/worst-development-blog-post-ever-ndash-by-joel-spolsky.aspx</link>
            <description>&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:945da7e4-5bc5-4b48-925e-e645d9b1f761" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Management" rel="tag"&gt;Management&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Standards" rel="tag"&gt;Standards&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Architecture" rel="tag"&gt;Architecture&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Rants" rel="tag"&gt;Rants&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/WorstDeveloperPostEverByJoelSpolsky_13306/kool-aidProgramming_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="kool-aidProgramming" border="0" alt="kool-aidProgramming" align="left" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/WorstDeveloperPostEverByJoelSpolsky_13306/kool-aidProgramming_thumb_1.png" width="174" height="240" /&gt;&lt;/a&gt; The good thing is, I don’t have to ramble on as to why this is probably the &lt;strong&gt;worst post I’ve ever read relating to development&lt;/strong&gt;.  I think if I did my rambling would be an 800 page book.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;But here it is, the most naive post I’ve ever read.&lt;/strong&gt;  I suppose I shouldn’t be acknowledging and giving this guy any kind of attention but it’s so bad, I feel an obligation to share a post from a true Salesman which is what he is, not a developer:&lt;/p&gt;  &lt;h4&gt;&lt;a href="http://www.joelonsoftware.com/items/2009/09/23.html" target="_blank"&gt;The Duct Tape Programmer&lt;/a&gt; &lt;font size="2"&gt;(la la la la Lame?)&lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;Interesting Joel, I wonder why you don’t enable commenting on your posts?&lt;/p&gt;  &lt;p&gt;I cannot even believe anyone would promote Code &amp;amp; Run.  No matter how you dice it, it’s not just over engineering that he’s talking about, read all of it!  He promotes Code &amp;amp; Run simple as that.&lt;/p&gt;  &lt;p&gt;No people, this is NOT reality or what should be reality in your development shop, and it’s NOT smart business sense.  Unfortunately there’s a lot of morons out there who think this code &amp;amp; run mentality fits the bill.  It’s called controlled iterations, prioritizing your tasks, realistic deadlines, and caring about wtf you produce and that means you don’t run to get things out the door no matter what you say about business needs this or that.&lt;/p&gt;  &lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;Now for the posters who obviously have a brain&lt;/strong&gt;:&lt;/font&gt;&lt;/p&gt;  &lt;h4&gt;&lt;a href="http://geekswithblogs.net/thomasweller/archive/2009/09/30/duct-tape-programming---certainly-not-that-way.aspx"&gt;Duct Tape Programming? - Certainly not THAT way...&lt;/a&gt;&lt;/h4&gt;  &lt;h4&gt;&lt;a href="http://blog.objectmentor.com/articles/2009/09/24/the-duct-tape-programmer"&gt;The Duct Tape Programmer&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;This is true to what I believe and Uncle Bob stated it perfectly:&lt;/p&gt;  &lt;p&gt;&lt;font color="#004040" size="4"&gt;“The programmer who spends weeks building the &lt;em&gt;perfect structure&lt;/em&gt; does just as much harm to the project as the programmer who hacks a bunch of crap together. Neither have struck the balance that’s required.”&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Now I don’t have to read Uncle Bob’s post either to know that, I have experience that has proven that.  It’s not “academic” and that’s a lame excuse and just dumb response that I often hear from some developers who do actually apply code &amp;amp; run chaos to their every day delivering for the business.&lt;/p&gt;  &lt;h4&gt;&lt;a href="http://blog.wekeroad.com/opinion/just-stop-please/"&gt;Just Stop. Please.&lt;/a&gt;&lt;/h4&gt;  &lt;h4&gt;&lt;a href="http://jeffreypalermo.com/blog/debunking-the-duct-tape-programmer/"&gt;Debunking the duct tape programmer&lt;/a&gt;&lt;/h4&gt;  &lt;h4&gt;&lt;a href="http://mynerditorium.blogspot.com/2009/10/state-of-spolsky-or-how-i-learned-to.html"&gt;The State of Spolsky or: How I Learned to Ignore the Legacy Programmer Boss&lt;/a&gt;&lt;/h4&gt;  &lt;h5&gt;&lt;a href="http://www.codinghorror.com/blog/archives/000679.html"&gt;Has Joel Spolsky Jumped the Shark?&lt;/a&gt; (this is old and unrelated but relevant)&lt;/h5&gt;  &lt;p&gt;WTF does academics have to do with smart project planning, not too much documentation (so you CAN get stuff done) and a BALANCE between finding the critical path in your code vs. over architecting an app?&lt;/p&gt;  &lt;p&gt;If I were to run my own business like this I’d be completely ashamed; this would surely reflect bad on me if I was the owner and probably my employees would hate working for me.  It’s like waking up every morning with your wife beater shirt on telling her to make coffee because I don’t even know how to run the damn machine myself.&lt;/p&gt;  &lt;p&gt;It makes me lose sleep at night knowing we have salesman posting about how to Code &amp;amp; Run out there.  Stick to selling, do not run an IT shop.&lt;/p&gt;  &lt;p&gt;Is Joel going to make some more &lt;strong&gt;Kool-aid&lt;/strong&gt; for us? And if you’re driving the big yellow bus, please do let me off soon please.&lt;/p&gt;&lt;img src="http://codezest.com/aggbug/121.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/S6Rq5rd8yh4RKfKr7IM082qwKbg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/S6Rq5rd8yh4RKfKr7IM082qwKbg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/S6Rq5rd8yh4RKfKr7IM082qwKbg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/S6Rq5rd8yh4RKfKr7IM082qwKbg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=YWbhJfDHWaQ:duj3jN3y1Nw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=YWbhJfDHWaQ:duj3jN3y1Nw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=YWbhJfDHWaQ:duj3jN3y1Nw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=YWbhJfDHWaQ:duj3jN3y1Nw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=YWbhJfDHWaQ:duj3jN3y1Nw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=YWbhJfDHWaQ:duj3jN3y1Nw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=YWbhJfDHWaQ:duj3jN3y1Nw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=YWbhJfDHWaQ:duj3jN3y1Nw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=YWbhJfDHWaQ:duj3jN3y1Nw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=YWbhJfDHWaQ:duj3jN3y1Nw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=YWbhJfDHWaQ:duj3jN3y1Nw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/YWbhJfDHWaQ" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/10/07/worst-development-blog-post-ever-ndash-by-joel-spolsky.aspx</guid>
            <pubDate>Thu, 08 Oct 2009 02:53:21 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/121.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/10/07/worst-development-blog-post-ever-ndash-by-joel-spolsky.aspx#feedback</comments>
            <slash:comments>7</slash:comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/121.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/121.aspx</trackback:ping>
        <feedburner:origLink>http://codezest.com/archive/2009/10/07/worst-development-blog-post-ever-ndash-by-joel-spolsky.aspx</feedburner:origLink></item>
        <item>
            <title>Page O&amp;rsquo; Nerds</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/_K2qFxpHBz4/page-orsquo-nerds.aspx</link>
            <description>&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d085fe75-8fd7-4ac4-be00-279b026af4ca" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Java" rel="tag"&gt;Java&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Rants" rel="tag"&gt;Rants&lt;/a&gt;&lt;/div&gt;  &lt;p&gt; &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="urkle" border="0" alt="urkle" align="left" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/PageONerds_11C52/urkle_thumb_3.jpg" width="166" height="240" /&gt;I was browsing the net, looking into what Lucene.NET is all about.  Interesting enough, I was awe-struck when I came across the official “&lt;a href="http://people.apache.org/gallery.html" target="_blank"&gt;&lt;strong&gt;Page O’Nerds&lt;/strong&gt;&lt;/a&gt;”!  In fact though it was the most interesting page in the entire apache site because it actually “drew my attention” and had some real content in it other than plain text.&lt;/p&gt;  &lt;p&gt;This link brought forth to you from an anti-&lt;a href="http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment-guide/contents.html" target="_blank"&gt;Java&lt;/a&gt;, Oracle, ColdFusion (believe it or not, some places still use it as sad as it is), PHP, &lt;a href="http://www.unix.org/version3/" target="_blank"&gt;Unix&lt;/a&gt;, and Apache dude…yes very shallow but true and I’m not afraid to admit it.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;You ever wonder why &lt;a href="http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment-guide/contents.html" target="_blank"&gt;Java&lt;/a&gt;, &lt;a href="http://www.unix.org/version3/" target="_blank"&gt;UNIX&lt;/a&gt;, and &lt;a href="http://projects.apache.org/docs/pmc.html" target="_blank"&gt;Apache&lt;/a&gt; pages are so damn boring&lt;/strong&gt; and why you get lost so much in them with useless information?  It’s because programmers who stick with this idea that “old school is cool” think that text is amazingly hip.  I think that’s just ridiculous and I get tired of sites that look like they were built in the early 1990s regardless if it’s “just a site about development”.  I just love the old school blue links…well, not really and I think it’s quite annoying to my eyes.  Blue needs to be phased out of nerd pages period…there’s just way too much of it.  Try some new colors besides red, aqua, grey, blue, and yellow people.&lt;/p&gt;  &lt;p&gt;I think I almost when blind with the red box on &lt;a href="http://people.apache.org/projects.html" target="_blank"&gt;this page&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Look at &lt;a href="http://stackoverflow.com/" target="_blank"&gt;StackOverflow.com&lt;/a&gt; for example.  Yea there may be nerds programming that site, however you’re not going to see any nerdy old school blue there, no way and I respect that.  If I had to code in Java and use Apache, I’d fall asleep looking at their sites.  I don’t care what you say, when you’re looking up stuff on the net for development (whether is documentation, forum, anything) it is nice to have a site that gets you a little more excited than a textbook looking 80s site these days especially when you’re on the net for hours looking stuff up.  How about we go back to black and white TV while we’re at it?&lt;/p&gt;  &lt;p&gt;Thumbs up too for sites like jQuery, Codeplex, etc. that actually get you excited about code because their site doesn’t make you drown in black and white text.  &lt;/p&gt;  &lt;p&gt;Yes, I am automatically a nerd…simply because I develop…I won’t argue that.  I suppose now you want me to post my picture to prove I’m “cool”; not a fat chance.  However between you and I (cool developers): &lt;strong&gt;blue links are just lame no matter what site you’re talking about&lt;/strong&gt;.  Style those f’ers.   &lt;/p&gt;  &lt;p&gt;And to the true “nerd Developers” (yes, architects..who might even be you right now) please get out of your tight blue jeans, puke colored pants, yellow stained shirts, shirts that look like they came from goodwill, unmatched shoes, and thick glasses and live in the today and that includes understanding that black and white terminals, blue links, and a site with just text is no longer acceptable or “cool”.  Have some respect for yourself other than just "I live in a cave”.  Fortunately I dress half way decent and present myself with a pair of shoes, shirt, and pants that “match” on a typical basis.&lt;/p&gt;  &lt;p&gt;I’ve said my peace about a few things in general about development here…one being that I think being “nerdy” is not “cool”.  Second being that I don’t understand why we as developers think it’s hip or cool to have a site today with all text and blue links. In other words, it’s getting old people.  And this is the only post you’re gonna see on my site categorized as Java so there’s my contribution.&lt;/p&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p&gt;Is this post lame?  probably.  And you’re definitely entitled to your opinion as well.&lt;/p&gt;&lt;img src="http://codezest.com/aggbug/120.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WE_7zQySYTL0JHOKXOmY1NwyMoM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WE_7zQySYTL0JHOKXOmY1NwyMoM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WE_7zQySYTL0JHOKXOmY1NwyMoM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WE_7zQySYTL0JHOKXOmY1NwyMoM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=_K2qFxpHBz4:_tWIb_w9XSM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=_K2qFxpHBz4:_tWIb_w9XSM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=_K2qFxpHBz4:_tWIb_w9XSM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=_K2qFxpHBz4:_tWIb_w9XSM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=_K2qFxpHBz4:_tWIb_w9XSM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=_K2qFxpHBz4:_tWIb_w9XSM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=_K2qFxpHBz4:_tWIb_w9XSM:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=_K2qFxpHBz4:_tWIb_w9XSM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=_K2qFxpHBz4:_tWIb_w9XSM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=_K2qFxpHBz4:_tWIb_w9XSM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=_K2qFxpHBz4:_tWIb_w9XSM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/_K2qFxpHBz4" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/10/06/page-orsquo-nerds.aspx</guid>
            <pubDate>Wed, 07 Oct 2009 01:13:44 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/120.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/10/06/page-orsquo-nerds.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/120.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/120.aspx</trackback:ping>
        <feedburner:origLink>http://codezest.com/archive/2009/10/06/page-orsquo-nerds.aspx</feedburner:origLink></item>
        <item>
            <title>Switch Connection String Being Used Based on Constructor Flag</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/NkxxbxUEGdQ/switch-connection-string-being-used-based-on-constructor-flag.aspx</link>
            <description>&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:be9c06ec-92f7-40f3-bf30-3a63aa854f4f" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;I want to talk about an interesting scenario I had in code recently.  We wanted to change up a connection string based on a flag to any Business Layer method calls being made.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;First here’s some facts:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1)&lt;/strong&gt; We had a base class called DatabaseBase&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2)&lt;/strong&gt; We had a derived class that inherited the base: SomeProjectDB : DatabaseBase&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3)&lt;/strong&gt; Business Layer method calls would eventually use an instance of SomeProjectDB in part to make the associated Data Layer method calls for a BL method&lt;/p&gt;  &lt;p&gt;So for example you might have a Business Layer method like so:&lt;/p&gt;  &lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  1: &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Order GetOrder(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; id)
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  2: {
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  3:      Order order = db.GetOrder(id);
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  4:           &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; order;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  5: }     &lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;You’d have an instance of &lt;strong&gt;db&lt;/strong&gt; which is an instance of SomeProjectDB.cs created somewhere in code so you can reference and use it.&lt;/p&gt;

&lt;p&gt;So then in one of my web services I could have something like this originally before I implement the check:&lt;/p&gt;

&lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  1: [WebMethod]
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  2: &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Order GetOrder(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; id)
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  3: {
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  4:      MyBusinessLayerNamespace.GetOrder(id);
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  5: }&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; We wanted to use a different connection string than the default if the business layer method calls were being made from a web service (.asmx) like above so that we could make calls using a more secure connection string (one that did not have so many permissions to stuff we really don’t need).  Since the alternative connection string would be much more secure than the one we normally are using.&lt;/p&gt;

&lt;p&gt;So for any BL method calls we were making in our service methods we are going to use this special connection string.  That connection’s SQL user would only have rights to any procs or other resources necessary to run any of the calls that were being made to any BL methods from our web service.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So here’s the base class:&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  1: &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; DatabaseBase
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  2: {
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  3:      &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;readonly&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; connectionString;
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  4:      &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; useCounters;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  5: 
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  6:      &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; DatabaseBase(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; connectionString)
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  7:      {
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  8:           &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.connectionString = connectionString;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  9:      }
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt; 10:  
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt; 11:      ... rest of code
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt; 12: }&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;And for example, here’s SomeProjectDB:&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  1: &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; SomeProjectDB : DatabaseBase
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  2: {
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  3:      &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; defaultConnString = ConfigurationManager.AppSettings["&lt;span style="color: #8b0000"&gt;DefaultConnString&lt;/span&gt;"];
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  4: 
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  5:      &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; SomProjectDB() : &lt;span style="color: #0000ff"&gt;base&lt;/span&gt;(defaultConnString)
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  6:      {
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  7:      }
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  8: 
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  9:      &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; SomeProjectDB(&lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; useWebServiceConnection) : &lt;span style="color: #0000ff"&gt;base&lt;/span&gt;(
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt; 10:             useWebServiceConnection ? defaultConnectionString : 
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt; 11:             ConfigurationManager.AppSettings["&lt;span style="color: #8b0000"&gt;SecureConnectionString&lt;/span&gt;"])
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt; 12:     {             
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt; 13:     }
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt; 14:   
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt; 15:     ...rest of code
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt; 16: }&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;Now I can create an instance of this two ways from a Business Layer method:&lt;/p&gt;

&lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;SomeProjectDB db = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SomeProjectDB(); &lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;this would use the default connection string.  Since calling the parameterless constructor would end up with the instance of SomeProjectDB passing the local backing field defaultConnString to the base class’s constructor&lt;/p&gt;

&lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;SomeProjectDB db = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SomeProjectDB(&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;);&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;this would call the overloaded constructor that requires useWebServiceConnection.  Then I’m passing the incoming useWebServiceConnection value straight to the base class’s constructor and checking whether that value is true to handle which connection string should be used.  If it’s set to true, use the special connection string with more security “SecureConnectionString”.&lt;/p&gt;

&lt;p&gt;So now, the call in my web service would look like this:&lt;/p&gt;

&lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  1: [WebMethod]
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  2: &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Order GetOrder(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; id)
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  3: {
&lt;/pre&gt;&lt;pre style="background-color: #f6f5de; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  4:      MyBusinessLayerNamespace.GetOrder(id, &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;);
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;  5: }&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;MyBusinessLayerNamespace.GetOrder&lt;/strong&gt; method would have a new overloaded method  that I could use which could take in the true parameter to determine that it should use the secure connection.  That BL method would then call db.GetOrder(true) and we’d use that object as part to call the data layer GetOrder method to ensure that DL method is making transactions over that more secure connection string.&lt;/p&gt;

&lt;p&gt;Anyway, it’s a lot to think about, thought this was kinda an interesting little problem.  This is how I solved it.&lt;/p&gt;&lt;img src="http://codezest.com/aggbug/118.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pam9qNzMux2uKUlVgORycvsZxQw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pam9qNzMux2uKUlVgORycvsZxQw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pam9qNzMux2uKUlVgORycvsZxQw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pam9qNzMux2uKUlVgORycvsZxQw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=NkxxbxUEGdQ:52FmLEWXkis:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=NkxxbxUEGdQ:52FmLEWXkis:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=NkxxbxUEGdQ:52FmLEWXkis:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=NkxxbxUEGdQ:52FmLEWXkis:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=NkxxbxUEGdQ:52FmLEWXkis:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=NkxxbxUEGdQ:52FmLEWXkis:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=NkxxbxUEGdQ:52FmLEWXkis:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=NkxxbxUEGdQ:52FmLEWXkis:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=NkxxbxUEGdQ:52FmLEWXkis:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=NkxxbxUEGdQ:52FmLEWXkis:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=NkxxbxUEGdQ:52FmLEWXkis:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/NkxxbxUEGdQ" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/10/04/switch-connection-string-being-used-based-on-constructor-flag.aspx</guid>
            <pubDate>Mon, 05 Oct 2009 03:43:51 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/118.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/10/04/switch-connection-string-being-used-based-on-constructor-flag.aspx#feedback</comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/118.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/118.aspx</trackback:ping>
        <feedburner:origLink>http://codezest.com/archive/2009/10/04/switch-connection-string-being-used-based-on-constructor-flag.aspx</feedburner:origLink></item>
        <item>
            <title>Do Not Return True/False on a Transaction Success/Fail</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/X5DAbVkQP34/do-not-return-truefalse-on-a-transaction-succeedfail.aspx</link>
            <description>&lt;p /&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:bad41114-58a8-40af-adfb-ed4561b62a5d" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;&lt;/div&gt;  &lt;p /&gt;  &lt;p&gt;There are many times in some shops I’ve worked where I’ve seen developers return a boolean back form a method for a transaction fail vs. succeed as a way to determine whether to do something next in code.  A transaction could be any type of work.  I talk about transaction here in a generic way; insert into a db, copying of a file to a directory, you name it.   &lt;/p&gt;  &lt;p&gt;Here’s an example:&lt;/p&gt;  &lt;div&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; DoSomething(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; someID, ..., ...)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; db.DoSomething(someID, ..., ...);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;div&gt; &lt;/div&gt;

&lt;div&gt;In this example the caller would get a true/false returned based on if the code was successful or not.&lt;/div&gt;

&lt;div&gt; &lt;/div&gt;

&lt;div&gt;&lt;strong&gt;Why is this horribly a bad way to handle success/failure of something that “happened”?  Well here are 2 obvious reasons:&lt;/strong&gt;&lt;/div&gt;

&lt;div&gt; &lt;/div&gt;

&lt;div&gt;&lt;strong&gt;1)&lt;/strong&gt; The caller gets a false back.  Ok, what the hell does that mean?  What if I need to know why for obvious debugging/troubleshooting purposes, especially if I’m gonna call this method from a service&lt;/div&gt;

&lt;div&gt; &lt;/div&gt;

&lt;div&gt;&lt;strong&gt;2)&lt;/strong&gt; I’m not returning something back that is useful.  A descriptive error is useful.  If not that then I should be sending back a more useful object that I can do something with.  No, a boolean in this case is not a smart idea.  It tells me something happened but nothing more.  It keeps me blind especially if I ever have to debug further at any time to figure out why it was false!&lt;/div&gt;

&lt;div&gt; &lt;/div&gt;

&lt;div&gt;To me, that’s a very lazy coding unless you want to purposely eat the error.  In this circumstance there’s no reason to eat it basically by sending back a false.  If you’re logging it fine but again, to the caller it’s not helping them at all.  While it might work, it’s not going to help when you keep getting false back and wished that the method would be much more helpful and not so mysterious.&lt;/div&gt;

&lt;div&gt; &lt;/div&gt;

&lt;div&gt;And you really shouldn’t be eating the error unless you have a good reason for it.  In this case you’re not handling anything and you’re not doing your caller any good or the rest of the code to be built on top of this because then that code becomes lazy also because all it has to do is check for false.  Soon all your code is checking for true/false and you have no real debugging capabilities when you wonder why am I getting false, false, false when you step through your code on a bunch of method calls to try to figure out wtf is going on.&lt;/div&gt;

&lt;div&gt; &lt;/div&gt;

&lt;div&gt;This is nothing new, just a reminder again to write write clean maintainable code.&lt;/div&gt;

&lt;div&gt; &lt;/div&gt;

&lt;hr /&gt;&lt;img src="http://codezest.com/aggbug/117.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LFHPl3-YPJF5PB7oxTL0r9xRBhc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LFHPl3-YPJF5PB7oxTL0r9xRBhc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LFHPl3-YPJF5PB7oxTL0r9xRBhc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LFHPl3-YPJF5PB7oxTL0r9xRBhc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=X5DAbVkQP34:bL1Z3EmKs5A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=X5DAbVkQP34:bL1Z3EmKs5A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=X5DAbVkQP34:bL1Z3EmKs5A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=X5DAbVkQP34:bL1Z3EmKs5A:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=X5DAbVkQP34:bL1Z3EmKs5A:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=X5DAbVkQP34:bL1Z3EmKs5A:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=X5DAbVkQP34:bL1Z3EmKs5A:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=X5DAbVkQP34:bL1Z3EmKs5A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=X5DAbVkQP34:bL1Z3EmKs5A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=X5DAbVkQP34:bL1Z3EmKs5A:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=X5DAbVkQP34:bL1Z3EmKs5A:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/X5DAbVkQP34" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/09/18/do-not-return-truefalse-on-a-transaction-succeedfail.aspx</guid>
            <pubDate>Sat, 19 Sep 2009 02:45:47 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/117.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/09/18/do-not-return-truefalse-on-a-transaction-succeedfail.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/117.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/117.aspx</trackback:ping>
        <feedburner:origLink>http://codezest.com/archive/2009/09/18/do-not-return-truefalse-on-a-transaction-succeedfail.aspx</feedburner:origLink></item>
        <item>
            <title>Can&amp;rsquo;t See Recent Commits in Tortoise SVN Log</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/LA382VlV_gI/canrsquot-see-recent-commits-in-tortoise-svn-history.aspx</link>
            <description>&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:568eca32-5d30-42e2-8541-7d69d45c850d" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Subversion" rel="tag"&gt;Subversion&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;After restoring a backup repository today and then checking in some code to it, I noticed that the commit showed successful but when browsing the log I did not see it in there.  In fact no commits were showing.&lt;/p&gt;  &lt;p&gt;It ended up being the History cache.  The solution was to disable it and update the existing cache (who knows if there’s a quicker/easier way but this is just what I did in the spur of the moment).&lt;/p&gt;  &lt;p&gt;So uncheck the caching (I don’t really care about performance):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/CantSeeRecentCommitsinTortoiseSVNHistory_12E50/cache1_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="cache1" border="0" alt="cache1" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/CantSeeRecentCommitsinTortoiseSVNHistory_12E50/cache1_thumb.jpg" width="537" height="359" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Then I updated the existing cache (again I don’t know if this is necessary, I just happened to try it without looking much into it):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/CantSeeRecentCommitsinTortoiseSVNHistory_12E50/cache_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="cache" border="0" alt="cache" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/CantSeeRecentCommitsinTortoiseSVNHistory_12E50/cache_thumb.jpg" width="537" height="360" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p /&gt;  &lt;hr /&gt;&lt;img src="http://codezest.com/aggbug/116.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZN-LI-pUGwX9KiPCcuoR36Wa5Ic/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZN-LI-pUGwX9KiPCcuoR36Wa5Ic/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZN-LI-pUGwX9KiPCcuoR36Wa5Ic/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZN-LI-pUGwX9KiPCcuoR36Wa5Ic/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=LA382VlV_gI:jTjvu6gtpdc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=LA382VlV_gI:jTjvu6gtpdc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=LA382VlV_gI:jTjvu6gtpdc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=LA382VlV_gI:jTjvu6gtpdc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=LA382VlV_gI:jTjvu6gtpdc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=LA382VlV_gI:jTjvu6gtpdc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=LA382VlV_gI:jTjvu6gtpdc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=LA382VlV_gI:jTjvu6gtpdc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=LA382VlV_gI:jTjvu6gtpdc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=LA382VlV_gI:jTjvu6gtpdc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=LA382VlV_gI:jTjvu6gtpdc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/LA382VlV_gI" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/09/18/canrsquot-see-recent-commits-in-tortoise-svn-history.aspx</guid>
            <pubDate>Sat, 19 Sep 2009 02:30:42 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/116.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/09/18/canrsquot-see-recent-commits-in-tortoise-svn-history.aspx#feedback</comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/116.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/116.aspx</trackback:ping>
        <feedburner:origLink>http://codezest.com/archive/2009/09/18/canrsquot-see-recent-commits-in-tortoise-svn-history.aspx</feedburner:origLink></item>
        <item>
            <title>Can't Open File txn-current-lock &amp;ndash; Tortoise/Subversion</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/Sh7lHgKB7u4/cant-open-file-txn-current-lock-tortoise.aspx</link>
            <description>&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:381d5ffb-55d7-42fd-a84e-f428b680ff0f" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Subversion" rel="tag"&gt;Subversion&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;Today I had to restore a backed up repository.  I backup our entire C:\Repository on our dev server and simply copy it back to restore it as the server had crashed (don’t ask me why..I was not involved nor was there an image to just take and restore).&lt;/p&gt;  &lt;p&gt;Anyway, after I did, the repository version was perfect and up-to-date so we could carry on.  One error I did get initially after starting to use the restored repository was this when I tried to check in a test change:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/CantOpenFiletxncurrentlockTortoise_12C28/errorscreenshot_4.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="errorscreenshot" border="0" alt="errorscreenshot" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/CantOpenFiletxncurrentlockTortoise_12C28/errorscreenshot_thumb_1.jpg" width="519" height="350" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This simply happened because my C:\Repositories folder was set to read-only on our Server 2008 dev server.  So, I simply removed that flag on the folder and it was fine and I was able to check in my code again.&lt;/p&gt;  &lt;p /&gt;  &lt;hr /&gt;&lt;img src="http://codezest.com/aggbug/115.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZBcVluHTaQjdQjpzhqak6XksFFs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZBcVluHTaQjdQjpzhqak6XksFFs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZBcVluHTaQjdQjpzhqak6XksFFs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZBcVluHTaQjdQjpzhqak6XksFFs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=Sh7lHgKB7u4:EmLkIsvmSjA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=Sh7lHgKB7u4:EmLkIsvmSjA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=Sh7lHgKB7u4:EmLkIsvmSjA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=Sh7lHgKB7u4:EmLkIsvmSjA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=Sh7lHgKB7u4:EmLkIsvmSjA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=Sh7lHgKB7u4:EmLkIsvmSjA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=Sh7lHgKB7u4:EmLkIsvmSjA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=Sh7lHgKB7u4:EmLkIsvmSjA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=Sh7lHgKB7u4:EmLkIsvmSjA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=Sh7lHgKB7u4:EmLkIsvmSjA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=Sh7lHgKB7u4:EmLkIsvmSjA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/Sh7lHgKB7u4" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/09/18/cant-open-file-txn-current-lock-tortoise.aspx</guid>
            <pubDate>Sat, 19 Sep 2009 02:21:29 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/115.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/09/18/cant-open-file-txn-current-lock-tortoise.aspx#feedback</comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/115.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/115.aspx</trackback:ping>
        <feedburner:origLink>http://codezest.com/archive/2009/09/18/cant-open-file-txn-current-lock-tortoise.aspx</feedburner:origLink></item>
        <item>
            <title>Quick Extension Method for Grabbing Exception.Data</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/Aw4gyilfWXc/quick-extension-method-for-grabbing-exception.data.aspx</link>
            <description>&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:27f937ac-7a70-4dd1-a5b5-e5868a165d74" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;This is nothing spectacular and exception methods are used all the time.  But thought to just post up for those of you who haven’t used them a lot.  Today I needed to check that Exception.Data is null.  If it was not, I wanted to then send a string.  &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#4d4d4d"&gt;First I added the data to the exception which is just the SOAP text that was sent via the HttpRequest that was used in a method that I called:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;XmlDocument doc = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; XmlDocument();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;doc = CreateRequestXML();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #008000"&gt;// Grab the SOAP that is being sent for possible logging later&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;_SOAPSent = doc.OuterXml;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;....&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;{ ....}&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (Exception ex)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #008000"&gt;// include SOAP string that was sent&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    ex.Data.Add(Constants.SoapRequestData, _SOAPSent);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;throw&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;&lt;font color="#4d4d4d"&gt;And I ended up just creating an extension method to handle checking for that value and if it’s null, and returning the string back without error if the data key is not available:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;namespace [CompanyName].[ProjectName].Extensions.ExceptionExtensions&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; ExceptionExtensions&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #008000"&gt;/// Gets the exception data.  If no data exists returns empty string&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #008000"&gt;/// &amp;lt;param name="ex"&amp;gt;The ex.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #008000"&gt;/// &amp;lt;param name="key"&amp;gt;The key.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #008000"&gt;/// &amp;lt;returns&amp;gt;Data retrieved from Exception.Data&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; string GetExceptionData(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt; Exception ex, string key)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (ex.Data != null &amp;amp;&amp;amp; ex.Data.Contains(key))&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; ex.Data[key].ToString();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; string.Empty;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p /&gt;

&lt;p&gt;&lt;strong&gt;&lt;font color="#4d4d4d"&gt;Now I can use it like this when I want to safely retrieve the data:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (Exception ex)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    string soapcalled = ex.GetExceptionData(Constants.SoapRequestData);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    service.LogFailure(..., ..., ..., soapcalled);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p /&gt;

&lt;p&gt;I used a string constant as the key to prevent magic strings being specified as a param.&lt;/p&gt;

&lt;hr /&gt;&lt;img src="http://codezest.com/aggbug/114.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YG5EjE5eAU0m1EVdzbZuaHG1Nvo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YG5EjE5eAU0m1EVdzbZuaHG1Nvo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YG5EjE5eAU0m1EVdzbZuaHG1Nvo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YG5EjE5eAU0m1EVdzbZuaHG1Nvo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=Aw4gyilfWXc:xcDRhUXPNdc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=Aw4gyilfWXc:xcDRhUXPNdc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=Aw4gyilfWXc:xcDRhUXPNdc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=Aw4gyilfWXc:xcDRhUXPNdc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=Aw4gyilfWXc:xcDRhUXPNdc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=Aw4gyilfWXc:xcDRhUXPNdc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=Aw4gyilfWXc:xcDRhUXPNdc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=Aw4gyilfWXc:xcDRhUXPNdc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=Aw4gyilfWXc:xcDRhUXPNdc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=Aw4gyilfWXc:xcDRhUXPNdc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=Aw4gyilfWXc:xcDRhUXPNdc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/Aw4gyilfWXc" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/09/11/quick-extension-method-for-grabbing-exception.data.aspx</guid>
            <pubDate>Fri, 11 Sep 2009 21:45:54 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/114.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/09/11/quick-extension-method-for-grabbing-exception.data.aspx#feedback</comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/114.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/114.aspx</trackback:ping>
        <feedburner:origLink>http://codezest.com/archive/2009/09/11/quick-extension-method-for-grabbing-exception.data.aspx</feedburner:origLink></item>
        <item>
            <title>Using Exception.Data to Append Extra Data to Your Exception</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/XvA3nXQ_DQo/using-exception.data-to-append-data-to-error-stack.aspx</link>
            <description>&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b0c18e46-224b-4f77-90f3-10e344b7d6a3" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;This is one of the rare times I’ve needed to append some data to an Exception.  And I really hadn’t used Exception.Data before.  So today was interesting.  I was tired of this third party API causing me inconsistent results when we call methods (because the API is not very reliable in the first place) so I wanted to log the SOAP request that’s being sent every time as part of any logging/debugging which is very useful when you only have just the .NET exception stack and really are missing the other piece of the puzzle, which is what was the SOAP data that was sent over the HttpRequest when you got the error in the first place.&lt;/p&gt;  &lt;p&gt;But if you’re handling exceptions correctly and logging them somewhere you should be able to get enough information from your logging to figure out what went wrong in most cases.&lt;/p&gt;  &lt;p&gt;Here’s an example of how I used Exception.Data today.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1)&lt;/strong&gt; I’ve got a Request.cs abstract class &lt;/p&gt;  &lt;p&gt;     In it, I’ve got the work of setting up and sending the actual HttpRequest via this method:&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Response.Response SendRequest()&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    Stream requestStream;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    Stream responseStream;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    XmlDocument doc = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; XmlDocument();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    doc = CreateRequestXML();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #008000"&gt;// Grab the SOAP that is being sent for possible logging later&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    _SOAPSent = doc.OuterXml;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #008000"&gt;// Determines if API call needs to use a session based URI&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; requestURI = UseAuthURI == &lt;span style="color: #0000ff"&gt;true&lt;/span&gt; ? _requestURIAuthBased + SessionID : _requestURI;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;byte&lt;/span&gt;[] data = XmlUtil.DocumentToBytes(doc);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    HttpWebResponse response = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #008000"&gt;// Create the atual Request instance&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    HttpWebRequest request = CreateWebRequest(requestURI, data.Length);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    request.ContentLength = data.Length;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    request.KeepAlive = &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    request.Timeout = 30000;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #008000"&gt;// Send the Request&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        requestStream = request.GetRequestStream();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        requestStream.Write(data, 0, data.Length);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        requestStream.Close();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #008000"&gt;// get response&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        response = (HttpWebResponse)request.GetResponse();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (Exception ex)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #008000"&gt;// include SOAP string that was sent&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        ex.Data.Add(Enums.ExceptionDataRequest.SOAPCalled, _SOAPSent);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;       &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #008000"&gt;//Throw to retain data&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #0000ff"&gt;throw&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    ....rest of &lt;span style="color: #0000ff"&gt;this&lt;/span&gt; returns a response back&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Notice these lines above:&lt;/p&gt;

&lt;pre&gt;&lt;blockquote&gt;&lt;pre&gt;   _SOAPSent = doc.OuterXml;
&lt;/pre&gt;&lt;/blockquote&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;pre&gt;        // include SOAP string that was sent&lt;/pre&gt;&lt;pre&gt;        ex.Data.Add(Enums.ExceptionDataRequest.SOAPCalled, _SOAPSent);&lt;/pre&gt;&lt;pre&gt;        //Throw to retain data&lt;/pre&gt;&lt;pre&gt;        throw;
&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;So I catch the exception and also appending some data to it using Exception.Data.   What I added to it was the SOAP text that was sent in the HttpRequest.&lt;/p&gt;

&lt;p&gt;Now here’s what you can’t forget to do.  You need to re-throw the exception to retain it as I did above or else you’ll lose that data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2)&lt;/strong&gt; So now in my code-behind of one of my .aspx I have the following:&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; SomeMethodInCodeBehind()&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    ...&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        xxx.UpdateFrequency(...);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (Exception ex)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        service.LogFailure(..., ex.Data[Enums.ExceptionDataRequest.SOAPCalled].ToString());&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;       &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    Response.Redirect(&lt;span style="color: #006080"&gt;"somepage.aspx?freq=1&amp;amp;action="&lt;/span&gt; + _actionID);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;So here I’m logging the exception and then retrieving that SOAP string that was sent to also log that:&lt;/p&gt;

&lt;pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;pre&gt;ex.Data[Enums.ExceptionDataRequest.SOAPCalled].ToString()&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;3)&lt;/strong&gt; xxx.UpdateFrequency, the method that I called from code-behind looks like this:&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; xxxFrequency(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; email, &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; actionID, &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; listID)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    ...&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    UpdateFrequencyRequest request = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; UpdateFrequencyRequest(actionID, email, listID);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    UpdateFrequencyResponse response = (UpdateFrequencyResponse)request.SendRequest();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    ...&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
So ultimately this is being wrapped in that try/catch in my code-behind.  I make the request and am calling SendRequest().  When the request fails, it will throw that error up the stack until it hits my catch statement in my code-behind in #2.  Then I can easily grab the SOAP that was called during that failure.&lt;/div&gt;

&lt;p&gt;Now I can log the SOAP anytime I call the request class’s SendRequest easily throughout my code and get something such as this to log and use for debugging if needed:&lt;/p&gt;

&lt;div&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;lt;Envelope&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;  &amp;lt;Body&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &amp;lt;SelectRecipient&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;      &amp;lt;LIST_ID&amp;gt;11111&amp;lt;/LIST_ID&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;      &amp;lt;EMAIL&amp;gt;someemail@domain.com&amp;lt;/EMAIL&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &amp;lt;/SelectRecipient&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;  &amp;lt;/Body&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;lt;/Envelope&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;div&gt; &lt;/div&gt;

&lt;div&gt; &lt;/div&gt;

&lt;div&gt;Notice that I also setup an Enum so that I don’t have any magic strings laying around when I’m accessing the keys from the data dictionary.&lt;/div&gt;

&lt;p&gt;Pretty cool stuff, common, just never used the data dictionary on the exception object much but definitely powerful.&lt;/p&gt;

&lt;hr /&gt;&lt;img src="http://codezest.com/aggbug/113.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2fdB0M6k3zgNgdEoALzFy-Dw6Gk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2fdB0M6k3zgNgdEoALzFy-Dw6Gk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2fdB0M6k3zgNgdEoALzFy-Dw6Gk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2fdB0M6k3zgNgdEoALzFy-Dw6Gk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=XvA3nXQ_DQo:-ZPwDZFNtnE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=XvA3nXQ_DQo:-ZPwDZFNtnE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=XvA3nXQ_DQo:-ZPwDZFNtnE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=XvA3nXQ_DQo:-ZPwDZFNtnE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=XvA3nXQ_DQo:-ZPwDZFNtnE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=XvA3nXQ_DQo:-ZPwDZFNtnE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=XvA3nXQ_DQo:-ZPwDZFNtnE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=XvA3nXQ_DQo:-ZPwDZFNtnE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=XvA3nXQ_DQo:-ZPwDZFNtnE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=XvA3nXQ_DQo:-ZPwDZFNtnE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=XvA3nXQ_DQo:-ZPwDZFNtnE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/XvA3nXQ_DQo" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/09/10/using-exception.data-to-append-data-to-error-stack.aspx</guid>
            <pubDate>Fri, 11 Sep 2009 01:14:42 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/113.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/09/10/using-exception.data-to-append-data-to-error-stack.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/113.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/113.aspx</trackback:ping>
        <feedburner:origLink>http://codezest.com/archive/2009/09/10/using-exception.data-to-append-data-to-error-stack.aspx</feedburner:origLink></item>
        <item>
            <title>Deploying a Web Application Project Still looks for Code-behind during Runtime</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/JsbNomDW8VQ/deploying-a-web-application-project-still-looks-for-code-behind-during.aspx</link>
            <description>&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:ce0b6def-14d2-48c8-8d87-41996133d4a0" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;When you deploy a WAP project, &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/03/27/New-Publish-Feature-with-VS-2005-Web-Application-Projects.aspx" target="_blank"&gt;you don’t need to copy up any code-behind pages&lt;/a&gt; for .aspx pages or user controls (.ascx).  &lt;/p&gt;  &lt;p&gt;However, I was stumped when recently I had an old WAP project that I was working on and needed to deploy some updates.  I published it via the &lt;strong&gt;Build | Publish&lt;/strong&gt; option in VS 2008 and then selected only to publish the minimum required: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/DeployingaWebApplicationProjectStilllook_B7E0/publishwap_4.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="publishwap" border="0" alt="publishwap" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/DeployingaWebApplicationProjectStilllook_B7E0/publishwap_thumb_1.jpg" width="427" height="312" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;But I was getting errors during runtime stating that it could not find the code-behind page to default.aspx.&lt;/p&gt;  &lt;p&gt;Anyway, the problem was I forgotten that about 4 years ago, I had copied the files from an old website to a WAP project.  &lt;u&gt;But at the time, I didn’t actually convert the .aspx pages to WAP&lt;/u&gt;.  That’s why I was still getting that error during runtime even though I had copied them into a brand new WAP project.  So I simply right-clicked the WAP project and did a “Convert to Application”.  Since this was a very small non-complicated web site, I had no issues and this resolved that deployment issue in production.&lt;/p&gt;  &lt;p&gt;In a future post, I will talk about how to convert a very large complex website project to WAP, something I had to do recently at work.  I’ve never really used websites and it’s always been WAP in the past 5  years so this was a royal pain in the ass due to the complexity of our huge .com public site.  Hopefully I will provide a very clear path to converting…because some of the articles out there are pretty lame and don’t really tell you all the details you need to know.  So look for that coming soon.   &lt;/p&gt;&lt;hr /&gt;&lt;img src="http://codezest.com/aggbug/112.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0re3RcUIi9u09RrXDAlRWE-3esk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0re3RcUIi9u09RrXDAlRWE-3esk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0re3RcUIi9u09RrXDAlRWE-3esk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0re3RcUIi9u09RrXDAlRWE-3esk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=JsbNomDW8VQ:dlq1bRYIeog:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=JsbNomDW8VQ:dlq1bRYIeog:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=JsbNomDW8VQ:dlq1bRYIeog:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=JsbNomDW8VQ:dlq1bRYIeog:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=JsbNomDW8VQ:dlq1bRYIeog:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=JsbNomDW8VQ:dlq1bRYIeog:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=JsbNomDW8VQ:dlq1bRYIeog:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=JsbNomDW8VQ:dlq1bRYIeog:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=JsbNomDW8VQ:dlq1bRYIeog:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=JsbNomDW8VQ:dlq1bRYIeog:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=JsbNomDW8VQ:dlq1bRYIeog:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/JsbNomDW8VQ" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/08/30/deploying-a-web-application-project-still-looks-for-code-behind-during.aspx</guid>
            <pubDate>Sun, 30 Aug 2009 18:53:13 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/112.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/08/30/deploying-a-web-application-project-still-looks-for-code-behind-during.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/112.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/112.aspx</trackback:ping>
        <feedburner:origLink>http://codezest.com/archive/2009/08/30/deploying-a-web-application-project-still-looks-for-code-behind-during.aspx</feedburner:origLink></item>
        <item>
            <title>Running 64-bit Binary References in Visual Studio</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/2jye-KWJKPQ/running-64-bit-binary-references-in-visual-studio.aspx</link>
            <description>&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:bf796372-b99a-457c-9534-2161a092481e" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/IIS" rel="tag"&gt;IIS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Visual+Studio" rel="tag"&gt;Visual Studio&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;I had an issue where we wanted to start including the 64-bit assemblies to our WAP project replacing the 32-bit references.  I was getting errors during runtime stating that it could not find the 64-bit assemblies when trying to run the web site on my local Vista 64-bit PC.  Yet if we added the 32-bit assemblies to the web project instead and then deployed to our 64-bit Server 2008 Development Server and then copied back over the 64-bit assemblies into the bin of our web project, the site ran fine.&lt;/p&gt;  &lt;p&gt;There is one little problem that I was not aware of till now since we’re now using a lot more 64-bit processes these days.  Visual Studio (in my case 2008) runs only a 32-bit built-in web server process.  Personally I like using IIS instead anyway when debugging my ASP.NET apps.  It’s truer to what a real environment is anyway rather than relying on the funky built-in web server which does some real weird things sometimes.  So because the built-in web server in IIS is only 32-bit it’s not going to be able to run or find 64-bit assemblies therefore you’ll get runtime errors like this.  So out goes the built-in web server option.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;So I changed my web project to use IIS instead&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1)&lt;/strong&gt; Go to the properties of your WAP project.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2)&lt;/strong&gt; Web Tab.  Select “Use Local IIS Server”&lt;/p&gt;  &lt;p&gt;     &lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/Running64bitBinaryReferencesinVisualStud_12750/useiis_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="useiis" border="0" alt="useiis" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/Running64bitBinaryReferencesinVisualStud_12750/useiis_thumb.jpg" width="591" height="212" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3)&lt;/strong&gt; Click “Create Virtual Directory”.  This will create a new Web Application automatically for you in IIS instead of having to create one from scratch yourself.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;4)&lt;/strong&gt; Now go to the app pool that your application is using.  Go to its basic settings and make sure you are using “Classic” for the Managed Pipeline Mode&lt;/p&gt;  &lt;p&gt;    &lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/Running64bitBinaryReferencesinVisualStud_12750/basicsettings_apppool_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="basicsettings_apppool" border="0" alt="basicsettings_apppool" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/Running64bitBinaryReferencesinVisualStud_12750/basicsettings_apppool_thumb.jpg" width="244" height="218" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;5)&lt;/strong&gt; Go to the advanced properties of your app pool and make sure “Enable 32-bit Applications” is set to false&lt;/p&gt;  &lt;p&gt;     &lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/Running64bitBinaryReferencesinVisualStud_12750/advancedproperties_apppool_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="advancedproperties_apppool" border="0" alt="advancedproperties_apppool" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/Running64bitBinaryReferencesinVisualStud_12750/advancedproperties_apppool_thumb.jpg" width="332" height="406" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After this, I was good to go.   I was able to attach the 64-bit assemblies and the site would run without any errors because it’s now running in a 64-bit process. &lt;/p&gt;  &lt;hr /&gt;&lt;img src="http://codezest.com/aggbug/110.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4ov2ZLsuM4W5_FcUSbVhlK4GVWM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4ov2ZLsuM4W5_FcUSbVhlK4GVWM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4ov2ZLsuM4W5_FcUSbVhlK4GVWM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4ov2ZLsuM4W5_FcUSbVhlK4GVWM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=2jye-KWJKPQ:-tWiS-1NcQg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=2jye-KWJKPQ:-tWiS-1NcQg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=2jye-KWJKPQ:-tWiS-1NcQg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=2jye-KWJKPQ:-tWiS-1NcQg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=2jye-KWJKPQ:-tWiS-1NcQg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=2jye-KWJKPQ:-tWiS-1NcQg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=2jye-KWJKPQ:-tWiS-1NcQg:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=2jye-KWJKPQ:-tWiS-1NcQg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=2jye-KWJKPQ:-tWiS-1NcQg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=2jye-KWJKPQ:-tWiS-1NcQg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=2jye-KWJKPQ:-tWiS-1NcQg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/2jye-KWJKPQ" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/08/24/running-64-bit-binary-references-in-visual-studio.aspx</guid>
            <pubDate>Tue, 25 Aug 2009 02:02:56 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/110.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/08/24/running-64-bit-binary-references-in-visual-studio.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/110.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/110.aspx</trackback:ping>
        <feedburner:origLink>http://codezest.com/archive/2009/08/24/running-64-bit-binary-references-in-visual-studio.aspx</feedburner:origLink></item>
        <item>
            <title>404 Error When Running Web Applications in IIS 7</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/mVWgbcBJi0I/404-error-when-running-web-applications-in-iis-7.aspx</link>
            <description>&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d5d6af7b-5a6e-458f-98c9-7d387ed08b59" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/IIS" rel="tag"&gt;IIS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Visual+Studio" rel="tag"&gt;Visual Studio&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;Today I was getting an annoying 404 (page not found) on any Application in IIS 7 I created.  I was trying to run our .NET 3.5 web application project and I knew everything was setup right in terms of configuring the site in the IIS Manager.  I looked at my hosts file, everything I could think of.&lt;/p&gt;  &lt;p&gt;I’d create an Application (right-click the default web site in IIS 7 and choose Create Application) manually as well as tried to create one through VS 2008 (in the web project properties, go to Web tab and select to use IIS and click the “Create Virtual Directory” button.  Both ways you can create an Application in IIS under whatever web site.&lt;/p&gt;  &lt;p&gt;Anyway, after all the troubleshooting it just came down to the fact that I did not have the IIS 6 Metabase and IIS 6 Configuration Compatibility portions of IIS installed.  I figured I did not need them because they were “legacy IIS 6 stuff”.  Well you do need them if running localhost.  I guess usually I had installed as I never had this problem before, but probably this time around on this new system figured I did not need it.  Well I was wrong.&lt;/p&gt;  &lt;p&gt;Honestly I think it’s just dumb that we need to enable a feature with something labeled “IIS 6” when we’re using IIS 7 and .NET 3.5 WAP projects in VS 2008.  It’s just weird.  MS what were you thinking?&lt;/p&gt;  &lt;p&gt;So Make sure you install this when you enable IIS.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/404ErrorWhenRunningIIS7WebSite_11F4F/iis6_4.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="iis6" border="0" alt="iis6" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/404ErrorWhenRunningIIS7WebSite_11F4F/iis6_thumb_1.jpg" width="336" height="283" /&gt;&lt;/a&gt;   &lt;/p&gt;  &lt;hr /&gt;&lt;img src="http://codezest.com/aggbug/109.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FMSRemi4CSK-L9A-wEvjIc8GvSs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FMSRemi4CSK-L9A-wEvjIc8GvSs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FMSRemi4CSK-L9A-wEvjIc8GvSs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FMSRemi4CSK-L9A-wEvjIc8GvSs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=mVWgbcBJi0I:30Snjf0YFVo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=mVWgbcBJi0I:30Snjf0YFVo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=mVWgbcBJi0I:30Snjf0YFVo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=mVWgbcBJi0I:30Snjf0YFVo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=mVWgbcBJi0I:30Snjf0YFVo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=mVWgbcBJi0I:30Snjf0YFVo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=mVWgbcBJi0I:30Snjf0YFVo:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=mVWgbcBJi0I:30Snjf0YFVo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=mVWgbcBJi0I:30Snjf0YFVo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=mVWgbcBJi0I:30Snjf0YFVo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=mVWgbcBJi0I:30Snjf0YFVo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/mVWgbcBJi0I" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/08/24/404-error-when-running-web-applications-in-iis-7.aspx</guid>
            <pubDate>Tue, 25 Aug 2009 01:43:05 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/109.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/08/24/404-error-when-running-web-applications-in-iis-7.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/109.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/109.aspx</trackback:ping>
        <feedburner:origLink>http://codezest.com/archive/2009/08/24/404-error-when-running-web-applications-in-iis-7.aspx</feedburner:origLink></item>
        <item>
            <title>&amp;ldquo;We want it fixed, but don&amp;rsquo;t spend too much time on it&amp;rdquo;</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/kZ7At5IfwMU/ldquodonrsquot-spend-too-much-time-on-itrdquo.aspx</link>
            <description>&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7045208f-f6a8-4728-b350-e9ee7f77ef87" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Management" rel="tag"&gt;Management&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/DontSpendTooMuchTimeonit_13629/tasks_2.jpg"&gt;&lt;strong&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="tasks" border="0" alt="tasks" align="left" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/DontSpendTooMuchTimeonit_13629/tasks_thumb.jpg" width="212" height="240" /&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; I just love this one.&lt;/strong&gt;  These kind of statements really piss me off as a developer especially when I have a task or two I’m already working on.  This has got to be one of the &lt;u&gt;worst&lt;/u&gt; lazy ass one liners you can get from a manager these days in development.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;So here’s the story:&lt;/strong&gt;  You get a new request in straight up from a user (because unfortunately there is no proper ticketing system or any process in place at any time whatsoever).  Boss asks “what’s the problem”.   You explain shortly to your boss the problem that the user painted.  Boss tells you to take care of it.  But at that point, it’s too late in the day to really start tackling it and you have other more important tasks that you already started for your boss that day.&lt;/p&gt;  &lt;p&gt;Next day comes, you now start on that task first thing in the morning.  Suddenly though you are invited and required to attend a 2 hour meeting that your boss never told you about...very nice.    He wants you to abruptly stop all you are doing to attend.  And granted this meeting was not an emergency.   You go to the meeting and get back.  Boss walks back from meeting and says “Hey, about that problem, we want it fixed but don’t spend too much time on it”.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;Stop.&lt;/font&gt;&lt;/strong&gt;  Lets rewind that again.  What’s wrong with this picture? A LOT.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1)&lt;/strong&gt; First and foremost above all else, are were expected to get existing tasks done.  That statement throws a wrench into the engine&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2)&lt;/strong&gt; You were unprofessionally interrupted about a meeting everyone else was informed of days before except you&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3)&lt;/strong&gt; Worse, there is obviously no priority system here and that IS a major problem from top down&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;4)&lt;/strong&gt; It’s complete chaos because it gives no conclusion on what your boss truly wants you to do.  It leaves the developer with questions, not direction.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;“&lt;font color="#ff0000"&gt;We want it fixed&lt;/font&gt;, but don’t spend too much time on it”.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If that’s not one of the worst contradiction a human can make, you tell me what is worse than this.  &lt;strong&gt;“We want it fixed”.&lt;/strong&gt;  It’s the blind leading the blind because notice that &lt;u&gt;your boss did not say when&lt;/u&gt;.  And he did not say now.  And yesterday when that came in he also did not say when it needs to get done.&lt;/p&gt;  &lt;p&gt;If you want it done but you don’t want me to spend time on it then YOU put it in a bug request and put a priority on it for me Mr. Manager.  Otherwise let me develop and work on the tasks you specified that are already being worked on.&lt;/p&gt;  &lt;p&gt;Isn’t it not the job of a manager to give direction?  Stating something like this just gives a developer indirection and that developer is left to figure out what the hell that manager REALLY means.  Or spend all day and night working overtime to do it ALL.  Whoops, there went your “work life balance”, nice.   &lt;/p&gt;&lt;hr /&gt;&lt;strong&gt;Side Note:&lt;/strong&gt;&lt;font color="#0000a0"&gt; &lt;/font&gt;  &lt;p&gt;&lt;font color="#0000a0"&gt;And I find it unbelievable that it’s usually these types of “people” are the ones who are rushing you to get something done with an unrealistic timeframe. A&lt;u&gt;nd then when you &lt;strong&gt;do&lt;/strong&gt; get something done&lt;/u&gt;, &lt;u&gt;you don’t hear from them for days, and you’re now sitting there with nothing to do&lt;/u&gt;!  So you’re being screwed on both sides of the coin.  On first hand, that statement tells you to rush to get it done “don’t take too much time on it” and then the other situation (sitting for a few days with no new work being passed onto you) puts you in a mindset “wtf, screw you”.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000a0"&gt;I say “people” because these “people” are not good enough to be “managers” because they operate in carelessness like this.&lt;/font&gt;    &lt;/p&gt;&lt;hr /&gt;&lt;strong&gt;&lt;font size="4"&gt;So&lt;/font&gt; when this happens&lt;/strong&gt;, &lt;u&gt;you put that task aside&lt;/u&gt;.  &lt;u&gt;Do not spend time on it&lt;/u&gt;.  Because in my eyes, that statement is careless and so you should treat it as so.  &lt;p&gt;&lt;strong&gt;See your existing tasks through till completion&lt;/strong&gt;.  Work on them and get them done.  Because if you do not produce results and you focus on that new task instead that your boss did not originally give to you and furthermore gives you contradicting statements on, you will not be producing results and ultimately your boss will not be happy in the end no matter what he had said about that “other” task.  &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Unfortunately in code &amp;amp; run shops, sometimes you simply have to make your own decisions&lt;/strong&gt; when you’re tossed chaos into your lap and constantly working in non-professional environments like this.  You have to be the manager because your boss is not capable in these situations.&lt;/p&gt;  &lt;p&gt;This kind of thing happens a lot in IT shops which have no planning, organization, realistic deadlines or priorities.  This is code &amp;amp; run and most likely a shop you do not want to work in.&lt;/p&gt;  &lt;p&gt;Go home and live your life, spend time with your kid, your spouse and stop worrying about it.  Spend time on it another day when your boss finally clears his head on that task and tells you to spend time on it, making it a priority in his disoriented mind.   &lt;/p&gt;&lt;hr /&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:left; margin:0px; padding:4px 4px 4px 4px;"&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[ar dzone_url = 'http://codezest.com/archive/2009/08/17/ldquodonrsquot-spend-too-much-time-on-itrdquo.aspx'; var dzone_title = '“We want it fixed, but don’t spend too much time on it”'; var dzone_blurb = '“We want it fixed, but don’t spend too much time on it”'; var dzone_style = '2';]]&gt;&lt;/script&gt;&lt;script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"&gt;&lt;/script&gt; &lt;/div&gt;&lt;img src="http://codezest.com/aggbug/108.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/w530yMKo9zf9j3FQM75FztBxx2s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/w530yMKo9zf9j3FQM75FztBxx2s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/w530yMKo9zf9j3FQM75FztBxx2s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/w530yMKo9zf9j3FQM75FztBxx2s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=kZ7At5IfwMU:reVWeBa9hS0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=kZ7At5IfwMU:reVWeBa9hS0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=kZ7At5IfwMU:reVWeBa9hS0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=kZ7At5IfwMU:reVWeBa9hS0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=kZ7At5IfwMU:reVWeBa9hS0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=kZ7At5IfwMU:reVWeBa9hS0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=kZ7At5IfwMU:reVWeBa9hS0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=kZ7At5IfwMU:reVWeBa9hS0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=kZ7At5IfwMU:reVWeBa9hS0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=kZ7At5IfwMU:reVWeBa9hS0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=kZ7At5IfwMU:reVWeBa9hS0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/kZ7At5IfwMU" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/08/17/ldquodonrsquot-spend-too-much-time-on-itrdquo.aspx</guid>
            <pubDate>Tue, 18 Aug 2009 03:36:07 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/108.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/08/17/ldquodonrsquot-spend-too-much-time-on-itrdquo.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/108.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/108.aspx</trackback:ping>
        <feedburner:origLink>http://codezest.com/archive/2009/08/17/ldquodonrsquot-spend-too-much-time-on-itrdquo.aspx</feedburner:origLink></item>
        <item>
            <title>Rate Your Employer Sites &amp;ndash; It&amp;rsquo;s About Damn Time</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/fI61kPK-u_E/rate-your-employer-sites-ndash-itrsquos-about-damn-time.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/RateYourEmployerSitesItsAboutDamnTime_E92C/office-space_2.jpg"&gt;&lt;img title="office-space" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="298" alt="office-space" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/RateYourEmployerSitesItsAboutDamnTime_E92C/office-space_thumb.jpg" width="401" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I’ve noticed lately a lot of new sites cropping up allowing developers to rate their employers.  I say it’s about damn time.  The state of IT and development shops is in pretty bad shape and money isn’t everything.  If your boss is an ass or can’t even manage himself, your department is in chaos mode 24x7, there is no planning and just run &amp;amp; code, or you’re being scolded for things that are just crazy or made up then there’s a little more than just money that can ruin your job, career, and family life.&lt;/p&gt;  &lt;p&gt;Obviously there are good shops and these sites help to highlight that as well.  But the problems with bad management, lack of process, code &amp;amp; run, overworking their employees are something you do not know about until you’re inside the organization.  Then it’s too late.  We need resources like this to help us in our job searches.  And the more we contribute to reviews, the more useful these sites will become.&lt;/p&gt;  &lt;p&gt;I highly urge anyone reading my blog to contribute.  Sincerely rate your development shop, managers, etc.  Talk about the problems in some kind of detail so others can really get an inside glimpse of the issues involved so that other developers don’t make the mistake of working in a bad environment.  &lt;u&gt;The more details the better to make your rating legit&lt;/u&gt;.  Do not name names, but give enough detail to let everyone know thumbs up or thumbs down.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Here are some sites you can contribute to and rate your development shop or organization as a whole&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://coderific.com" href="http://coderific.com"&gt;http://coderific.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.jobvent.com" href="http://www.jobvent.com"&gt;http://www.jobvent.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.rateitall.com/s-100-employers.aspx" href="http://www.rateitall.com/s-100-employers.aspx"&gt;http://www.rateitall.com/s-100-employers.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.gamewatch.org/phpbb3/" href="http://www.gamewatch.org/phpbb3/"&gt;http://www.gamewatch.org/phpbb3/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.ratemyemployer.ca/" href="http://www.ratemyemployer.ca/"&gt;http://www.ratemyemployer.ca/&lt;/a&gt; (Canada)&lt;/p&gt;  &lt;p&gt;If you need company profiles to help you enter in the information for your company, just search them on &lt;a href="www.linkedin.com" target="_blank"&gt;LinkedIn&lt;/a&gt; and you get a nice profile.&lt;/p&gt;  &lt;hr /&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:left; margin:0px; padding:4px 4px 4px 4px;"&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[ar dzone_url = 'http://codezest.com/archive/2009/08/16/rate-your-employer-sites-ndash-itrsquos-about-damn-time.aspx';]]&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[ar dzone_title = 'Rate Your Employer Sites – It’s About Damn Time';]]&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[ar dzone_blurb = 'Rate Your Employer Sites – It’s About Damn Time';]]&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[ar dzone_style = '2';]]&gt;&lt;/script&gt;&lt;script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"&gt;&lt;/script&gt; &lt;/div&gt;&lt;img src="http://codezest.com/aggbug/107.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OFlqyAzhf_Fg3O_cwFg6XKOc4iY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OFlqyAzhf_Fg3O_cwFg6XKOc4iY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OFlqyAzhf_Fg3O_cwFg6XKOc4iY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OFlqyAzhf_Fg3O_cwFg6XKOc4iY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=fI61kPK-u_E:bngVUaZEGQs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=fI61kPK-u_E:bngVUaZEGQs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=fI61kPK-u_E:bngVUaZEGQs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=fI61kPK-u_E:bngVUaZEGQs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=fI61kPK-u_E:bngVUaZEGQs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=fI61kPK-u_E:bngVUaZEGQs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=fI61kPK-u_E:bngVUaZEGQs:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=fI61kPK-u_E:bngVUaZEGQs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=fI61kPK-u_E:bngVUaZEGQs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=fI61kPK-u_E:bngVUaZEGQs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=fI61kPK-u_E:bngVUaZEGQs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/fI61kPK-u_E" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/08/16/rate-your-employer-sites-ndash-itrsquos-about-damn-time.aspx</guid>
            <pubDate>Sun, 16 Aug 2009 21:35:19 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/107.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/08/16/rate-your-employer-sites-ndash-itrsquos-about-damn-time.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/107.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/107.aspx</trackback:ping>
        <feedburner:origLink>http://codezest.com/archive/2009/08/16/rate-your-employer-sites-ndash-itrsquos-about-damn-time.aspx</feedburner:origLink></item>
        <item>
            <title>Cannot See Service Reference Proxy Class File in Solution Explorer</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/-v6dnhQSTGk/cannot-see-service-reference-proxy-class-file-in-solution-explorer.aspx</link>
            <description>&lt;p&gt;   &lt;/p&gt;&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4b7d3be9-acf9-49fb-b59a-353cb3d267a9" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/SOA" rel="tag"&gt;SOA&lt;/a&gt;&lt;/div&gt;   &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8ea8386d-1b69-4bd5-96db-0f8326ade565" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;Today I had added a Service Reference to my Web Project and after creation, I did not see the Proxy class file.  This was my first time creating a Service Reference which is the new way to do it in .NET 3.5 vs. the older Web Reference option that uses an .asmx when you right-click your web project.&lt;/p&gt;  &lt;p&gt;Anyway, it turned out that duh, I simply needed to simply show all files in Solution Explorer.  I’m not quite sure why it’s hidden in the first place but as soon as I did that I could clearly see the proxy class called Reference.cs:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/CannotSeeServiceReferenceProxyClass_12B00/autogenclasses_2.png"&gt;&lt;img title="autogenclasses" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="774" alt="autogenclasses" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/CannotSeeServiceReferenceProxyClass_12B00/autogenclasses_thumb.png" width="483" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Inside this Reference.cs is all the partial classes making up the objects based off the WSDL.  This was based on the PayPal Sandbox WSDL:&lt;/p&gt;  &lt;p&gt;&lt;a title="https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl" href="https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl"&gt;https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl&lt;/a&gt;&lt;/p&gt;  &lt;hr /&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:left; margin:0px; padding:4px 4px 4px 4px;"&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[ar dzone_url = 'http://codezest.com/archive/2009/07/30/cannot-see-service-reference-proxy-class-file-in-solution-explorer.aspx';]]&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[ar dzone_title = 'Cannot See Service Reference Proxy Class File in Solution Explorer';]]&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[ar dzone_blurb = 'Cannot See Service Reference Proxy Class File in Solution Explorer';]]&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[ar dzone_style = '2';]]&gt;&lt;/script&gt;&lt;script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"&gt;&lt;/script&gt; &lt;/div&gt;&lt;img src="http://codezest.com/aggbug/106.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zX55fnQiH_kQlWtzyxYC8D76d-Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zX55fnQiH_kQlWtzyxYC8D76d-Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zX55fnQiH_kQlWtzyxYC8D76d-Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zX55fnQiH_kQlWtzyxYC8D76d-Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=-v6dnhQSTGk:i4tgUH8NXgQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=-v6dnhQSTGk:i4tgUH8NXgQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=-v6dnhQSTGk:i4tgUH8NXgQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=-v6dnhQSTGk:i4tgUH8NXgQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=-v6dnhQSTGk:i4tgUH8NXgQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=-v6dnhQSTGk:i4tgUH8NXgQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=-v6dnhQSTGk:i4tgUH8NXgQ:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=-v6dnhQSTGk:i4tgUH8NXgQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=-v6dnhQSTGk:i4tgUH8NXgQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=-v6dnhQSTGk:i4tgUH8NXgQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=-v6dnhQSTGk:i4tgUH8NXgQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/-v6dnhQSTGk" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/07/30/cannot-see-service-reference-proxy-class-file-in-solution-explorer.aspx</guid>
            <pubDate>Fri, 31 Jul 2009 02:30:06 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/106.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/07/30/cannot-see-service-reference-proxy-class-file-in-solution-explorer.aspx#feedback</comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/106.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/106.aspx</trackback:ping>
        <enclosure url="https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl" length="189236" type="application/wsdl+xml" /><feedburner:origLink>http://codezest.com/archive/2009/07/30/cannot-see-service-reference-proxy-class-file-in-solution-explorer.aspx</feedburner:origLink></item>
        <item>
            <title>Sharing Folders in Vista OS Instance with Sun VirtualBox</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/1HrzBLCXKuo/sharing-folders-vista-os-sun-virtualbox.aspx</link>
            <description>&lt;p /&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:dd4fcb5b-d124-48f4-a5c2-4a79e220f926" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Tools" rel="tag"&gt;Tools&lt;/a&gt;&lt;/div&gt;  &lt;p /&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6936927d-e601-4442-9c88-16c9f7b15fc1" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/Tools" rel="tag"&gt;Tools&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;Sun’s &lt;a href="http://www.virtualbox.org/wiki/Downloads" target="_blank"&gt;VirtualBox&lt;/a&gt; virtual application just blows away Microsoft’s Virtual Machine and it’s free also.  And its so packed filled with features, much more than Microsoft’s VM solution.&lt;/p&gt;  &lt;p&gt;After you’ve installed Sun VirtualBox and got an OS running on it make sure you install the guest add-ons or else you’ll have to click Ctrl to escape out of your virtual machine when in it.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/SharingFoldersinVistaOSoverSunVirtualBox_11721/addons_2.png"&gt;&lt;img title="addons" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="317" alt="addons" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/SharingFoldersinVistaOSoverSunVirtualBox_11721/addons_thumb.png" width="292" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Then to share a folder you can do it 2 ways.  You can do it via the settings &lt;u&gt;when the VirtualMachine is turned off&lt;/u&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/SharingFoldersinVistaOSoverSunVirtualBox_11721/settings_4.png"&gt;&lt;img title="settings" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="209" alt="settings" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/SharingFoldersinVistaOSoverSunVirtualBox_11721/settings_thumb_1.png" width="531" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;(setting www on my hosts’s C to be shared to this virtual PC)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/SharingFoldersinVistaOSoverSunVirtualBox_11721/setshared_2.png"&gt;&lt;img title="setshared" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="518" alt="setshared" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/SharingFoldersinVistaOSoverSunVirtualBox_11721/setshared_thumb.png" width="533" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Or&lt;/strong&gt; you can do it &lt;u&gt;when the VirtualMachine instance is turned on&lt;/u&gt; through the Shared Folders option in the Devices menu:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/SharingFoldersinVistaOSoverSunVirtualBox_11721/shared_2.png"&gt;&lt;img title="shared" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="456" alt="shared" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/SharingFoldersinVistaOSoverSunVirtualBox_11721/shared_thumb.png" width="534" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;(setting software on drive E to be shared to this virtual PC)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/SharingFoldersinVistaOSoverSunVirtualBox_11721/setshared2_2.png"&gt;&lt;img title="setshared2" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="279" alt="setshared2" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/SharingFoldersinVistaOSoverSunVirtualBox_11721/setshared2_thumb.png" width="385" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Either way, you can add a shared folder and share anything from any of your Host’s drives (C, etc.).  But you’d want to use the first method when your Virtual PC is shut down because otherwise your shared folders will not stay each time you stop and restart that virtual machine that you’re sharing to.&lt;/p&gt;  &lt;p&gt;To access the shared folder on your VM in Vista specifically, type &lt;a href="file://\\vboxsvr\SharedFolderName"&gt;&lt;font color="#004080"&gt;\\vboxsvr\SharedFolderName&lt;/font&gt;&lt;/a&gt; in explorer and hit enter, then it should map a drive to it:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/SharingFoldersinVistaOSoverSunVirtualBox_11721/mapdrives_4.png"&gt;&lt;img title="mapdrives" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="395" alt="mapdrives" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/SharingFoldersinVistaOSoverSunVirtualBox_11721/mapdrives_thumb_1.png" width="535" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;there is how you’d share folders in Vista running on a Sun VirtualBox.  It’s a joy to use this Virtual Machine software, especially when it’s free!&lt;/p&gt;  &lt;p&gt;Another great thing about it is you can truly set as much ram as you want and really configure your machines to run blazingly fast if you have a ton of ram on your Host.  I have 8 gigs ram so I can easily specify 4 gigs for a Virtual machine:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/SharingFoldersinVistaOSoverSunVirtualBox_11721/memory_2.png"&gt;&lt;img title="memory" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="415" alt="memory" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/SharingFoldersinVistaOSoverSunVirtualBox_11721/memory_thumb.png" width="466" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;hr /&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:left; margin:0px; padding:4px 4px 4px 4px;"&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[ar dzone_url = 'http://codezest.com/archive/2009/07/30/sharing-folders-vista-os-sun-virtualbox.aspx';]]&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[ar dzone_title = 'Sharing Folders in Vista OS Instance with Sun VirtualBox';]]&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[ar dzone_blurb = 'Sharing Folders in Vista OS Instance with Sun VirtualBox';]]&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[ar dzone_style = '2';]]&gt;&lt;/script&gt;&lt;script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"&gt;&lt;/script&gt; &lt;/div&gt;&lt;img src="http://codezest.com/aggbug/105.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nwz0vX96nIRxqiKHsqzL5I-WnhQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nwz0vX96nIRxqiKHsqzL5I-WnhQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/nwz0vX96nIRxqiKHsqzL5I-WnhQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nwz0vX96nIRxqiKHsqzL5I-WnhQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=1HrzBLCXKuo:jiC88ZUdldg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=1HrzBLCXKuo:jiC88ZUdldg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=1HrzBLCXKuo:jiC88ZUdldg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=1HrzBLCXKuo:jiC88ZUdldg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=1HrzBLCXKuo:jiC88ZUdldg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=1HrzBLCXKuo:jiC88ZUdldg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=1HrzBLCXKuo:jiC88ZUdldg:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=1HrzBLCXKuo:jiC88ZUdldg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=1HrzBLCXKuo:jiC88ZUdldg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=1HrzBLCXKuo:jiC88ZUdldg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=1HrzBLCXKuo:jiC88ZUdldg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/1HrzBLCXKuo" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/07/30/sharing-folders-vista-os-sun-virtualbox.aspx</guid>
            <pubDate>Fri, 31 Jul 2009 01:10:25 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/105.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/07/30/sharing-folders-vista-os-sun-virtualbox.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/105.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/105.aspx</trackback:ping>
        <feedburner:origLink>http://codezest.com/archive/2009/07/30/sharing-folders-vista-os-sun-virtualbox.aspx</feedburner:origLink></item>
        <item>
            <title>'Make it Happen / Whatever it Takes Attitude&amp;rsquo;</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/5VlY4v5P6hI/make-it-happen-whatever-it-takes-attitudersquo.aspx</link>
            <description>&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b50f1fb4-324c-4368-aa8b-6601104b8748" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Rants" rel="tag"&gt;Rants&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Opinion" rel="tag"&gt;Opinion&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Management" rel="tag"&gt;Management&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/MakeitHappenWhateveritTakesAttitude_146B6/whipping_2.jpg"&gt;&lt;img title="whipping" style="border-top-width: 0px; display: inline; border-left-width: 0px; float: right; border-bottom-width: 0px; margin-bottom: 10px; vertical-align: text-top; margin-right: 20px; border-right-width: 0px" height="369" alt="whipping" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/MakeitHappenWhateveritTakesAttitude_146B6/whipping_thumb.jpg" width="277" border="0" /&gt;&lt;/a&gt; I often see this in job descriptions for Software Developer positions.  I don’t know about you but to me this kind of description is just getting ridiculous these days and I’m seeing this language more and more.  &lt;strong&gt;I mean is this kind of statement really necessary?&lt;/strong&gt;  We’re all adults and professionals here.  Personally when it’s that strongly stated in such a passive aggressive tone, it turns me off.  Yea yea, you’re telling me your environment is hard core and extremely high pressured.  Wonderful, as I woke up this morning I was thinking wow, I really need a lot more stress than I really already have at work.  That’s just what I was looking for.  Is that what you’re offering/selling to me, a potential candidate as I read your job description? &lt;strong&gt;Lame.&lt;/strong&gt;  Why would I want to work in an environment where I’m going to be constantly whipped which is what you’re telling me here.&lt;/p&gt;  &lt;p&gt;Because to me when stated so bluntly like this, it’s saying we don’t care if you get sick over the task you’re working on, just get it done.  That “pulling the load” to you most likely will mean not to ask any questions or hit any walls whatsoever during normal development because “that’s what you’re paid to do, to be perfect essentially”.  That we don’t care how many hours you work, or if you have to work till 2am and were dedicated (and also sacrificed personal time and family time) enough to come in and work that long for me; you better just have it done or you’re fired kind of lame attitude.  I think a lot of the managers who post this shit probably have no idea what reality is or they’re basically lead developers who really have lost touch with reality.&lt;/p&gt;  &lt;p&gt;Obviously you hear time and time again that “we have to do what it takes for the business”.  Give me a break, we know this.  But when the business is such a dictatorship that employees lives are ruined, I take that statement and shove it down the toilet.&lt;/p&gt;  &lt;p&gt;Personally I am very motivated and hard working (very entrepreneur).  My friends tell me I work way too hard for my employer but hey, I can’t help it.  I sincerely truly care about delivering for anyone I’m employed with and you can ask any of my collegues now or in the past to confirm.  However these kinds of statements from management is simply overboard, even unprofessional at times.  This kind of rigid no room for error, learning, or family life has to be discouraging to our profession.  While many of us get paid top dollars, we also have a LOT to deal with today in programming.&lt;/p&gt;  &lt;p&gt;What would be appropriate and sane?  Probably something like this:  &lt;font color="#008000"&gt;“Looking for a developer who is willing to learn new technologies quickly and apply them where needed while working with the team together to deliver results”. &lt;/font&gt;Why is this better?  Because &lt;strong&gt;it emphases working as a team and it emphases a positive working environment in order to “make it happen”&lt;/strong&gt;.  It is saying hey, we expect you to pull your load, but also we’re a team here (we’re human) and sometimes we need to help each other out when we’re stuck.  That’s what a development team should be.  Not this dictating “You figure out &lt;em&gt;everything&lt;/em&gt; on your own, I don’t care, leave you in the mud, get it done or you’re fired tomorrow” kind of luda overbearing attitude.&lt;/p&gt;  &lt;p&gt;I also love the &lt;strong&gt;“fast paced environment”&lt;/strong&gt; statement in job descriptions and statements like this in interviews.  &lt;strong&gt;What environment is &lt;u&gt;not&lt;/u&gt; “fast paced”&lt;/strong&gt; these days including in far too many cases a run &amp;amp; code shop.  I mean is this really necessary to put in a job description?  This is common knowledge.  Do you think with today’s pace with technology, that development is so easy that we’re going to have a lot of spare time?  Definitely not the case even if you’re not running at blazing speeds.  So why the hell state that in a job description.  It’s obvious.  I if you keep stating to me how face pace your environment is, it’s going to really make me think you truly are a code &amp;amp; run shop with no real management skills as the cause.  There’s a reason you keep saying this to me.  Therefore I can read between the lines if you keep repeating it.&lt;/p&gt;  &lt;p&gt;Take all the new languages, techniques, and changes that are happening day in and day out and it’s enough to really challenge any programmer these days anyway.  So we don’t need someone standing behind us with a whip every day with the fear of losing our job when we’re already busting our ass and have a fear of hitting any walls during the development process. This expectation to “make it happen” has to have some flexibility somewhere and some sort of saneness and breathing room!  &lt;/p&gt;  &lt;p&gt;There are many surprises that come up in software development, and often many walls daily.  We try hard to get past them as quickly as possible.  But when you have managers and leads just acting like assholes because you couldn’t figure something out in 2 seconds (and they say they can) it’s becoming unhealthy bullshit for employees.  Look, I’ll say it.  Sometimes we CAN’T figure out the work-arounds or fixes or whatever that quickly even after spending many hours working very hard on something.  Even the best developers get stumped and I’ve seen even my own leads say NO.  Sometimes they offer the business alternatives sometimes they say there is none.  While we are definitely supposed to and I agree to expect to be thinking about alternatives, work-arounds, etc. &lt;u&gt;sometimes some things are not possible&lt;/u&gt;.  That could be because of resources, bad or lack of planning, or whatever the case might be.  That’s when you come together as a team to discuss.  And that old saying “The business doesn’t want to hear not possible” fine.  But you know what?  The business better damn well be able to compromise and listen to their developers to the alternatives and move forward with them.&lt;/p&gt;  &lt;p&gt;Now I’m not saying we should not do our best, not have deadlines, or not work our asses off to deliver results.  But there is a point where this kind of expectation to get things done or get fired attitude has got to stop in development environments especially as our jobs are requiring us to master &lt;strong&gt;much much more (too much)&lt;/strong&gt; than we had to 10 years ago.  I remember when I could easily get out a huge application using classic asp.net, SQL, and JavaScript.  But now, we have to go way beyond just mastering 3 areas like this and supposedly the business is supposed to care about good design when most of them could care less (design patterns, useable code, testing, etc.).  To come at your developers with a breathing down your neck attitude every day nowadays makes it even worse.&lt;/p&gt;  &lt;p&gt;And I’m also not saying we as developers won’t have late nights at times.  But if the environment is so ridiculous that you’re up every night till 12 am coding because of the statement and attitude that you must produce perfect code and expect no stumbling blocks exists, you gotta ask wtf.  This extreme hang me over a cliff if not done in 2 days kind of attitude is ridiculous and really just plain stupidity.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Am I alone on this?&lt;/strong&gt;  Does anyone else see this trend becoming more and more “In your face” type of attitude from management so much so that we’re getting to a point were IT and American business will eventually come to a bubble and fail?  And where developers are just going to get burned out and turnover is going to get even more ramped because of the lack of reality in expectations?  &lt;/p&gt;  &lt;p&gt;There will be a point where businesses will just have to realize that they are becoming way too ridiculous in their delivery expectations and tone of language to the people they employ.  This unforgiving passive aggressive tone coming from management is becoming extremely abusive.  How about suggesting alternatives to help your team succeed rather than threatening ?  And they will also always eventually realize that hey, after all these years of “Get it done lightening fast” was implemented, they now have a pile of shit to either refactor or throw away losing many $$ because of this kind of slave driven environment.  And that they’ve lost many good developers and GOOD CAPABLE PEOPLE and most likely ruined a lot of lives because of this carelessness.&lt;/p&gt;  &lt;p&gt;I’d love to hear your thoughts and also what position you hold (meaning title) as you reply.  Hopefully this will be an interesting discussion.&lt;/p&gt;  &lt;hr /&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:left; margin:0px; padding:4px 4px 4px 4px;"&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[ar dzone_url = 'http://codezest.com/archive/2009/07/08/make-it-happen-whatever-it-takes-attitudersquo.aspx';]]&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[ar dzone_title = ''Make it Happen / Whatever it Takes Attitude’';]]&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[ar dzone_blurb = ''Make it Happen / Whatever it Takes Attitude’';]]&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[ar dzone_style = '2';]]&gt;&lt;/script&gt;&lt;script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"&gt;&lt;/script&gt; &lt;/div&gt;&lt;img src="http://codezest.com/aggbug/104.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/XReQy4xJ8QuKuU0Xh6F879DFuqA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XReQy4xJ8QuKuU0Xh6F879DFuqA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/XReQy4xJ8QuKuU0Xh6F879DFuqA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XReQy4xJ8QuKuU0Xh6F879DFuqA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=5VlY4v5P6hI:uYD1ROUlAkI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=5VlY4v5P6hI:uYD1ROUlAkI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=5VlY4v5P6hI:uYD1ROUlAkI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=5VlY4v5P6hI:uYD1ROUlAkI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=5VlY4v5P6hI:uYD1ROUlAkI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=5VlY4v5P6hI:uYD1ROUlAkI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=5VlY4v5P6hI:uYD1ROUlAkI:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=5VlY4v5P6hI:uYD1ROUlAkI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=5VlY4v5P6hI:uYD1ROUlAkI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=5VlY4v5P6hI:uYD1ROUlAkI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=5VlY4v5P6hI:uYD1ROUlAkI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/5VlY4v5P6hI" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/07/08/make-it-happen-whatever-it-takes-attitudersquo.aspx</guid>
            <pubDate>Thu, 09 Jul 2009 04:14:27 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/104.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/07/08/make-it-happen-whatever-it-takes-attitudersquo.aspx#feedback</comments>
            <slash:comments>7</slash:comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/104.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/104.aspx</trackback:ping>
        <feedburner:origLink>http://codezest.com/archive/2009/07/08/make-it-happen-whatever-it-takes-attitudersquo.aspx</feedburner:origLink></item>
        <item>
            <title>Making a jQuery JSON Request to an ASP.NET Handler And Back</title>
            <link>http://feedproxy.google.com/~r/CodeZest/~3/j5dSpTxA7AI/jquery-json-request-aspnet-handler.aspx</link>
            <description>&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0255265f-a09f-4b07-bda3-5e78cbdb3196" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/jQuery" rel="tag"&gt;jQuery&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/JSON" rel="tag"&gt;JSON&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;Recently I was working on a small project where we wanted to make requests to go get some data and pass it back via XML or JSON to a jQuery control.  So I picked out  a control that I thought would work (as it had hooks there for init, load, and other callback slots) and then thought ok, how the hell am I going do this.  Having never really created my own or used any HttpHandler (.ashx) before, I found out that this would be the way to do this.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The Goal:&lt;/strong&gt;  Make XML or JSON AJAX requests to the server, pick up some data, send it back and parse with jQuery.  Something pretty common but this was my first time attempting it with jQuery and first time using JSON.  And the reason do to this was for deferred loading of the jQuery plug-in that I was going to use.  To make a long story short, here’s a bit of information on how I did this.&lt;/p&gt;  &lt;p&gt;In one of my load functions on the jQuery plug-in, I ended up deciding to make JSON requests instead of XML for primarily 2 reasons:&lt;/p&gt;  &lt;p&gt;1) Obviously JSON is less data over the wire as compared to XML.  Just compare or look below to see that JSON has no tags like XML does, making it less overall.  It’s also much easier and less to read than XML.  To me it’s like the analogy of reading tableless design in an HTML page vs. clunky horrible table based layout design with a crap load of uneccessary tags.. &amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;, blah blah..who wants that crap in mark-up.  Well same for JSON vs. XML, who wants all those XML tags when you’ve got JSON!  Anyway, to me it’s just cleaner and I like JSON now a lot.&lt;/p&gt;  &lt;p&gt;2) jQuery JSON parses it much easier than parsing XML.  While it’s still very easy to parse XML with jQuery, it’s even easier with JSON because you have less code to deal with and also better yet, you get a nice typed object once you receive the data back that you can work with to access the variables in your returned JSON&lt;/p&gt;  &lt;p&gt;So here’s how it looks using the jQuery getJSON method:&lt;/p&gt;  &lt;div id="codeSnippetWrapper" style="border-right: silver 1px solid; padding-right: 4px; border-top: silver 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: silver 1px solid; width: 97.5%; cursor: text; direction: ltr; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: silver 1px solid; font-family: 'Courier New', courier, monospace; background-color: #f4f4f4; text-align: left"&gt;   &lt;div id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;     &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt; $.getJSON(&lt;span style="color: #006080"&gt;"http://someurl/SomeHandler.ashx?action=getproducts&amp;amp;ids="&lt;/span&gt; + ids,&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt;     function(data) &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum3" style="color: #606060"&gt;   3:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum4" style="color: #606060"&gt;   4:&lt;/span&gt;         ..some other code&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum5" style="color: #606060"&gt;   5:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum6" style="color: #606060"&gt;   6:&lt;/span&gt;         someplugin.add(i, decode(data[d].Image));&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum7" style="color: #606060"&gt;   7:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum8" style="color: #606060"&gt;   8:&lt;/span&gt;         ...rest of code&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum9" style="color: #606060"&gt;   9:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum10" style="color: #606060"&gt;  10:&lt;/span&gt; );&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p /&gt;

&lt;p&gt;Decode is just decodes HTML characters if any:&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="border-right: silver 1px solid; padding-right: 4px; border-top: silver 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: silver 1px solid; width: 97.5%; cursor: text; direction: ltr; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: silver 1px solid; font-family: 'Courier New', courier, monospace; background-color: #f4f4f4; text-align: left"&gt;
  &lt;div id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;
    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; decode(s) {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; s.replace(/&amp;amp;amp;/g, &lt;span style="color: #006080"&gt;"&amp;amp;"&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum3" style="color: #606060"&gt;   3:&lt;/span&gt;             .replace(/&amp;amp;quot;/g, &lt;span style="color: #006080"&gt;'"'&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum4" style="color: #606060"&gt;   4:&lt;/span&gt;             .replace(/&amp;amp;#039;/g, &lt;span style="color: #006080"&gt;"'"&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum5" style="color: #606060"&gt;   5:&lt;/span&gt;             .replace(/&amp;amp;lt;/g, &lt;span style="color: #006080"&gt;"&amp;lt;"&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum6" style="color: #606060"&gt;   6:&lt;/span&gt;             .replace(/&amp;amp;gt;/g, &lt;span style="color: #006080"&gt;"&amp;gt;"&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum7" style="color: #606060"&gt;   7:&lt;/span&gt; };&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Notice data[d].Image.  Data is returned back to the function after successfully parsed by the getJSON method.  This parsing happens automatically.  And only if successful enters into the function via whatever parameter name you give it.  It doesn’t matter what you name the parameter in function().  Now that we have the data, you can access it via index and then simply access the variables using a period.  So Image was a name in my JSON name/value pair:&lt;/p&gt;

&lt;p&gt;[ 
  &lt;br /&gt;    { 

  &lt;br /&gt;        "Image": "\u003cp\u003e\u003cimg src=\&lt;a href="http://www.xxx.com/image/25.jpg\"&gt;http://www.xxx.com/image/25.jpg\&lt;/a&gt; alt=\"SomeText\"\u003e\u003c/p\u003e\u003cp\u003e\u003ca href=\"somepage.aspx\"\some text\u003c/a\u003e\u003c/p\u003e\u003cp\u003e$20.95\u003c/p\u003e", 

  &lt;br /&gt;        "ProductID": "523" 

  &lt;br /&gt;    },&lt;/p&gt;

&lt;p&gt;    { 
  &lt;br /&gt;        "Image": "\u003cp\u003e\u003cimg src=\&lt;a href="http://www.xxx.com/image/44.jpg\"&gt;http://www.xxx.com/image/44.jpg\&lt;/a&gt; alt=\"SomeText\"\u003e\u003c/p\u003e\u003cp\u003e\u003ca href=\"somepage.aspx\"\some text\u003c/a\u003e\u003c/p\u003e\u003cp\u003e$20.95\u003c/p\u003e", 

  &lt;br /&gt;        "ProductID": "524" 

  &lt;br /&gt;    }, 

  &lt;br /&gt;]&lt;/p&gt;

&lt;p&gt;by the way, make sure you validate the retuned JSON using a &lt;a href="http://www.jsonlint.com/" target="_blank"&gt;JSON text validator&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Now on my .ashx side, I simply used the built-in &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/10/01/tip-trick-building-a-tojson-extension-method-using-net-3-5.aspx" target="_blank"&gt;JavaScriptSerializer in .NET 3.5&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In my .ashx, I simply created a function that cycles through products but populates another generic list based off a custom class that only has properties for what I really want to pass.  I don’t want to serialize the entire Product object because that’s too much data so I created a small class called ImageList to hold the values I’m actually going to really want to send back as JSON:&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="border-right: silver 1px solid; padding-right: 4px; border-top: silver 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: silver 1px solid; width: 97.5%; cursor: text; direction: ltr; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: silver 1px solid; font-family: 'Courier New', courier, monospace; background-color: #f4f4f4; text-align: left"&gt;
  &lt;div id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;
    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; MyCustomHandler : IHttpHandler {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt;     &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum3" style="color: #606060"&gt;   3:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum4" style="color: #606060"&gt;   4:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; IsReusable {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum5" style="color: #606060"&gt;   5:&lt;/span&gt;         get {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum6" style="color: #606060"&gt;   6:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum7" style="color: #606060"&gt;   7:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum8" style="color: #606060"&gt;   8:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum9" style="color: #606060"&gt;   9:&lt;/span&gt;     &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum10" style="color: #606060"&gt;  10:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; ProcessRequest(HttpContext context)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum11" style="color: #606060"&gt;  11:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum12" style="color: #606060"&gt;  12:&lt;/span&gt;       ...some code and then eventually:&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum13" style="color: #606060"&gt;  13:&lt;/span&gt;       &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum14" style="color: #606060"&gt;  14:&lt;/span&gt;             GetProductsJSON(context, products);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum15" style="color: #606060"&gt;  15:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum16" style="color: #606060"&gt;  16:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum17" style="color: #606060"&gt;  17:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; ImageList&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum18" style="color: #606060"&gt;  18:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum19" style="color: #606060"&gt;  19:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; Image { get; set; }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum20" style="color: #606060"&gt;  20:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; ProductID { get; set; }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum21" style="color: #606060"&gt;  21:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum22" style="color: #606060"&gt;  22:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum23" style="color: #606060"&gt;  23:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; GetProductsJSON(HttpContext context, &lt;span style="color: #0000ff"&gt;string&lt;/span&gt;[] products)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum24" style="color: #606060"&gt;  24:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum25" style="color: #606060"&gt;  25:&lt;/span&gt;         context.Response.ContentType = &lt;span style="color: #006080"&gt;"application/json"&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum26" style="color: #606060"&gt;  26:&lt;/span&gt;         context.Response.Charset = &lt;span style="color: #006080"&gt;"utf-8"&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum27" style="color: #606060"&gt;  27:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum28" style="color: #606060"&gt;  28:&lt;/span&gt;         List&amp;lt;ImageList&amp;gt; imageList = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;ImageList&amp;gt;();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum29" style="color: #606060"&gt;  29:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum30" style="color: #606060"&gt;  30:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (Product p &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; products)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum31" style="color: #606060"&gt;  31:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum32" style="color: #606060"&gt;  32:&lt;/span&gt;             StringBuilder productInfo = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; StringBuilder();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum33" style="color: #606060"&gt;  33:&lt;/span&gt;             &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum34" style="color: #606060"&gt;  34:&lt;/span&gt;             productInfo.AppendFormat(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #006080"&gt;@"&amp;lt;p&amp;gt;&amp;lt;img src="&lt;/span&gt;&lt;span style="color: #006080"&gt;"{0}"&lt;/span&gt;&lt;span style="color: #006080"&gt;" alt="&lt;/span&gt;&lt;span style="color: #006080"&gt;"{1}"&lt;/span&gt;&lt;span style="color: #006080"&gt;"&amp;gt;&amp;lt;/p&amp;gt;"&lt;/span&gt;, ImageUrl(p.Image, &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;), p.AltTag));&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum35" style="color: #606060"&gt;  35:&lt;/span&gt;             productInfo.AppendFormat(&lt;span style="color: #006080"&gt;@"&amp;lt;p&amp;gt;&amp;lt;a href="&lt;/span&gt;&lt;span style="color: #006080"&gt;"{0}"&lt;/span&gt;&lt;span style="color: #006080"&gt;"&amp;gt;{1}&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;"&lt;/span&gt;, ProductURL(p), p.Name);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum36" style="color: #606060"&gt;  36:&lt;/span&gt;             productInfo.AppendFormat(&lt;span style="color: #006080"&gt;"&amp;lt;p&amp;gt;{0}&amp;lt;/p&amp;gt;"&lt;/span&gt;, ProductUtil.ProductPrice(p));&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum37" style="color: #606060"&gt;  37:&lt;/span&gt;             &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum38" style="color: #606060"&gt;  38:&lt;/span&gt;             imageList.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ImageList { ImageTag = productInfo.ToString(), ProductID = p.Id.ToString()});&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum39" style="color: #606060"&gt;  39:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum40" style="color: #606060"&gt;  40:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum41" style="color: #606060"&gt;  41:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; jsonString = imageList.ToJSON();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum42" style="color: #606060"&gt;  42:&lt;/span&gt;         context.Response.Write(jsonString);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum43" style="color: #606060"&gt;  43:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum44" style="color: #606060"&gt;  44:&lt;/span&gt;   &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum45" style="color: #606060"&gt;  45:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;A few pointers (common mistakes or just good info here):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1)&lt;/strong&gt; Be sure that you set the content type and charset correctly.  And some settings don’t work for IE but will in FireFox.  You obviously want your returned JSON to be parsed successfully in both IE, FireFox and the rest so it’s very important that you use the following:&lt;/p&gt;

&lt;p&gt;context.Response.ContentType = "application/json"; 
  &lt;br /&gt;context.Response.Charset = "utf-8";&lt;/p&gt;

&lt;p&gt;or just&lt;/p&gt;

&lt;p&gt;context.Response.ContentType = "application/json;charset=utf-8";&lt;/p&gt;

&lt;p&gt;either or will do the trick.  Don’t make the mistake of only specifying the ContentType as "application/json" and then forgetting to set a Charset!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2)&lt;/strong&gt; If you are not using .NET 3.5, you can still get at the JavaScriptSerializer class by including the AJAX 1.0 library from Microsoft&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3)&lt;/strong&gt; Make sure the returned JSON does not have an extra comma at the end of the JSON string…jQuery will not parse as it’s not valid JSON&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4)&lt;/strong&gt; getJSON function of jQuery eats any errors on the returned JSON so you won’t get any notification that hey, the parse failed.  So if you really want to trap errors, I would recommend using the $.ajax method instead.  Here’s how  you’d do the equivilant above with $.ajax and trapping any errors on failure of the JSON parsing:&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="border-right: silver 1px solid; padding-right: 4px; border-top: silver 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: silver 1px solid; width: 97.5%; cursor: text; direction: ltr; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: silver 1px solid; font-family: 'Courier New', courier, monospace; background-color: #f4f4f4; text-align: left"&gt;
  &lt;div id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;
    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt; $.ajax({&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt;     type: &lt;span style="color: #006080"&gt;"GET"&lt;/span&gt;,&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum3" style="color: #606060"&gt;   3:&lt;/span&gt;     url: &lt;span style="color: #006080"&gt;"http://localhost:59396/somesite/SomeHandler.ashx?action=getproducts&amp;amp;ids="&lt;/span&gt; + ids,&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum4" style="color: #606060"&gt;   4:&lt;/span&gt;     &lt;span style="color: #008000"&gt;//data: "ids=" + ids,&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum5" style="color: #606060"&gt;   5:&lt;/span&gt;     dataType: &lt;span style="color: #006080"&gt;"json"&lt;/span&gt;,&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum6" style="color: #606060"&gt;   6:&lt;/span&gt;     success: function(data) {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum7" style="color: #606060"&gt;   7:&lt;/span&gt;         alert(data.length);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum8" style="color: #606060"&gt;   8:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum9" style="color: #606060"&gt;   9:&lt;/span&gt;         ...some code&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum10" style="color: #606060"&gt;  10:&lt;/span&gt;                 carousel.add(i, decode(data[d].Image));&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum11" style="color: #606060"&gt;  11:&lt;/span&gt;         ...rest of code&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum12" style="color: #606060"&gt;  12:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum13" style="color: #606060"&gt;  13:&lt;/span&gt;     },&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum14" style="color: #606060"&gt;  14:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum15" style="color: #606060"&gt;  15:&lt;/span&gt;     error: function() {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum16" style="color: #606060"&gt;  16:&lt;/span&gt;         alert(&lt;span style="color: #006080"&gt;"An error has occurred. Please try again."&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum17" style="color: #606060"&gt;  17:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum18" style="color: #606060"&gt;  18:&lt;/span&gt; });&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;hr /&gt;&lt;img src="http://codezest.com/aggbug/103.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1k9k5-w9XEe8-fyOe1qYHQ_3G_U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1k9k5-w9XEe8-fyOe1qYHQ_3G_U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1k9k5-w9XEe8-fyOe1qYHQ_3G_U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1k9k5-w9XEe8-fyOe1qYHQ_3G_U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=j5dSpTxA7AI:nZukX4KJFdM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=j5dSpTxA7AI:nZukX4KJFdM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=j5dSpTxA7AI:nZukX4KJFdM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=j5dSpTxA7AI:nZukX4KJFdM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=j5dSpTxA7AI:nZukX4KJFdM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=j5dSpTxA7AI:nZukX4KJFdM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=j5dSpTxA7AI:nZukX4KJFdM:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=j5dSpTxA7AI:nZukX4KJFdM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?i=j5dSpTxA7AI:nZukX4KJFdM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=j5dSpTxA7AI:nZukX4KJFdM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CodeZest?a=j5dSpTxA7AI:nZukX4KJFdM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CodeZest?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeZest/~4/j5dSpTxA7AI" height="1" width="1"/&gt;</description>
            <dc:creator>Dave Schinkel</dc:creator>
            <guid isPermaLink="false">http://codezest.com/archive/2009/07/07/jquery-json-request-aspnet-handler.aspx</guid>
            <pubDate>Wed, 08 Jul 2009 04:22:36 GMT</pubDate>
            <wfw:comment>http://codezest.com/comments/103.aspx</wfw:comment>
            <comments>http://codezest.com/archive/2009/07/07/jquery-json-request-aspnet-handler.aspx#feedback</comments>
            <wfw:commentRss>http://codezest.com/comments/commentRss/103.aspx</wfw:commentRss>
            <trackback:ping>http://codezest.com/services/trackbacks/103.aspx</trackback:ping>
        <feedburner:origLink>http://codezest.com/archive/2009/07/07/jquery-json-request-aspnet-handler.aspx</feedburner:origLink></item>
    </channel>
</rss>
