<rss version="2.0" 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/">
    <channel>
        <title>Jobs / Career</title>
        <link>http://blog.caffeinatedsoftware.com/category/20.aspx</link>
        <description>Jobs / Career</description>
        <language>en-US</language>
        <copyright>&lt;i&gt;&lt;b&gt;Caffeinated&lt;/b&gt;&lt;/i&gt; Software</copyright>
        <managingEditor>robbiep@caffeinatedsoftware.com</managingEditor>
        <generator>Subtext Version 1.9.5.176</generator>
        <item>
            <title>Return of a Jedi  </title>
            <link>http://blog.caffeinatedsoftware.com/archive/2008/02/13/return-of-a-jedi.aspx</link>
            <description>&lt;p&gt;&lt;img alt="" align="left" src="http://blog.caffeinatedsoftware.com/images/blog_caffeinatedsoftware_com/021308_2055_ReturnofaJe1.png" /&gt; It was a long, long time ago… It was a time of a great civil war between the Outlook/Office and the Exchange teams… It was a time of great browser wars and much uncertainty... It was an era in which ancient languages such as C++ ruled the galaxy and web browsers weren't considered application development platforms. &lt;/p&gt;
&lt;p&gt;It was during this time, I had the opportunity to work on a product that would help redefine web based e-mail and more importantly define what web applications were capable of. I was one of the first developers on the Outlook Web Access team (or as it was known back then, the Exchange Web Client). During 1996-1998, I worked with Bob Gering (R.I.P.) and &lt;a href="http://msexchangeteam.com/archive/2005/06/21/406646.aspx"&gt;Jim Van Eaton&lt;/a&gt;, where I created the original appointment / meeting request form, the contact form, and the Java date picker. Needless to say, it was the highlight of my professional career at Microsoft. &lt;/p&gt;
&lt;p&gt;Unfortunately, during this great civil war, my career ended up following a different path, than that of my good friends, and I joined "the confederacy". During this period, I ended up working on random Office apps in native code, as I meandered around aimlessly from group to group, either working on products I wasn't passionate about or working for managers who were mediocre. After a few years of my career going nowhere, I left Microsoft. &lt;/p&gt;
&lt;p style="TEXT-ALIGN: justify"&gt;During this time, my friend Qui-Gon Jim (Van Eaton) became the Jedi Master of the &lt;a href="http://www.microsoft.com/exchange/code/OWA/index.html"&gt;Outlook Web Access&lt;/a&gt; team, and under his stewardship &lt;a href="http://www.alexhopmann.com/story-of-xmlhttp/"&gt;OWA became the first web application to use the XMLHTTP technology&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/AJAX"&gt;which is today referred to as AJAX&lt;/a&gt; and continued to grow its proud legacy into the great application you know and love today. Unless of course, you use a browser &lt;a href="http://www.getfirefox.com"&gt;that doesn't suck&lt;/a&gt;, in which case you'll never know how good OWA really is, which brings us to the present day. &lt;/p&gt;
&lt;p&gt;You see, Microsoft fumbled the ball during the dot com bust. After building a huge market share &amp;amp; mind share lead in the browser wars, Microsoft disbanded the IE team and essentially walked away from improving its client side internet technologies (fortunately, they invented .net during this time, and improved it's server side software, but IE was essentially trapped in a time capsule from 2001-2005). I suppose at the time it seemed like a smart move since AOL purchased Netscape, and neither AOL, Netscape nor the Mozilla foundation were going anywhere. Furthermore, Steve Jobs second coming at Apple was still in its early stages and Google was merely a good search engine and not yet a verb. &lt;/p&gt;
&lt;p&gt;Except, at some point during that era, we hit a strategic inflection point. Firefox got invented, kept improving and kept innovating. All while the majority of the former IE team was trapped in &lt;a href="http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959"&gt;the Vista tar pit&lt;/a&gt;. In a few short years, IE 6 went from first to worst in mind share, due to the Firefox team playing the tortoise to Microsoft's hare. Even worse, Google took advantage of Microsoft's internet client myopia and made a web e-mail client that worked great on IE and Firefox (and gave away gigabytes of storage space to sweeten the deal). Shortly afterward Apple released Safari, Google released Google Maps, Microsoft released Virtual earth, and the Web was re-born. &lt;/p&gt;
&lt;p&gt;Anyway, the OWA team kept innovating during this era of uncertainty, and ended up with a great AJAX client that only worked on IE because when it was designed 1) there were no other browsers that supported AJAX / DHTML except IE and 2) there were no standards to follow because there were no other browsers that had implemented them yet. I suppose myopia played a role as well, but by the time the other browsers gained mind share, the OWA's development plans were already set in &lt;a href="http://starwars.wikia.com/wiki/Carbon_freezing"&gt;Carbonite&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;When I was on the OWA team, we supported IE &amp;amp; Netscape equally well (perhaps equally poorly is a better choice of words, because web browsers and web applications were so much simpler &amp;amp; less complex back then). However, during the past 10 years, we've witnessed the rise and fall of Internet Explorer (and &lt;a href="http://blogs.msdn.com/ie/archive/2007/12/19/internet-explorer-8-and-acid2-a-milestone.aspx"&gt;possible redemption&lt;/a&gt;) and the World Wide Web is once again a chaotic and exciting area of uncertainty and innovation. &lt;/p&gt;
&lt;p&gt;So, with that back story, I am now announcing that this epic tale, is taking a new, if small, unexpected twist. Qui-Gon Jim has asked this former Jedi Knight to return to the &lt;a href="http://www.nytimes.com/2005/08/24/technology/24valley.html"&gt;Rebel Alliance&lt;/a&gt;, where we both hope we can defeat &lt;a href="http://thesithari.blogspot.com/"&gt;Darth Page and Darth Brin&lt;/a&gt; of the &lt;a href="http://www.oreillynet.com/windows/blog/2005/08/is_google_evil.html"&gt;Google Empire&lt;/a&gt;. For the past few years, I've been peacefully living on &lt;a href="http://en.wikipedia.org/wiki/Tatooine"&gt;Tatooine&lt;/a&gt;, but Qui-Gon Jim's call to battle was too compelling to resist. &lt;/p&gt;
&lt;p&gt;With a lot of hard work, and a little luck, perhaps I shall become a Jedi Master and re-join the Jedi Council. If nothing else, perhaps I'll merely play Han Solo for a few months and pay off Jabba the Hutt. &lt;/p&gt;
&lt;p&gt;&lt;img alt="" align="right" src="http://blog.caffeinatedsoftware.com/images/blog_caffeinatedsoftware_com/021308_2055_ReturnofaJe2.png" /&gt;One thing is for certain, the light saber fights with the Sith are going to be fun to watch and I'm looking forward to seeing something other than IE 6 bugs for next several months. Wish me luck in my &lt;a href="http://blogs.msdn.com/oldnewthing/"&gt;old / new job&lt;/a&gt; on Microsoft's Outlook Web Access team!&lt;/p&gt;&lt;img src="http://blog.caffeinatedsoftware.com/aggbug/33.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>&lt;i&gt;&lt;b&gt;Caffeinated&lt;/b&gt;&lt;/i&gt; Software</dc:creator>
            <guid>http://blog.caffeinatedsoftware.com/archive/2008/02/13/return-of-a-jedi.aspx</guid>
            <pubDate>Wed, 13 Feb 2008 20:55:51 GMT</pubDate>
            <wfw:comment>http://blog.caffeinatedsoftware.com/comments/33.aspx</wfw:comment>
            <comments>http://blog.caffeinatedsoftware.com/archive/2008/02/13/return-of-a-jedi.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://blog.caffeinatedsoftware.com/comments/commentRss/33.aspx</wfw:commentRss>
            <trackback:ping>http://blog.caffeinatedsoftware.com/services/trackbacks/33.aspx</trackback:ping>
        </item>
        <item>
            <title>Best ASP.net Interview Question Ever (Part 2)</title>
            <link>http://blog.caffeinatedsoftware.com/archive/2008/01/12/best-asp.net-interview-question-ever-part-2.aspx</link>
            <description>&lt;p&gt;&lt;img align="left" alt="Comic Book Guy thinks &amp;quot;IE 6 - worst browser ever&amp;quot;" src="http://blog.caffeinatedsoftware.com/images/blog_caffeinatedsoftware_com/011208_1759_BestASPnetI1.gif" title="Comic Book Guy thinks &amp;quot;IE 6 - worst browser ever&amp;quot;" /&gt;&lt;a href="http://blog.caffeinatedsoftware.com/archive/2008/01/11/best-asp.net-interview-question-ever-part-1.aspx"&gt;Last time&lt;/a&gt;, I whined about ASP.net byte bloat. As long as I'm bitching about Microsoft's internet platform, I might as well hold nothing back. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Microsoft doesn't care enough about Internet Explorer.&lt;/strong&gt; It is the red headed step child of Microsoft's internet platform. MS seriously lost a lot of client side credibility and goodwill by disbanding the Windows IE team for 3+ years after Windows XP / IE 6 shipped and letting the &lt;a href="http://www.mozilla.com/en-US/about/"&gt;Mozilla / Firefox team&lt;/a&gt; catch up and surpass it.&lt;br /&gt;
&lt;br /&gt;
I'm sure &lt;a href="http://www.theregister.co.uk/2005/12/19/ms_kills_ie_mac/"&gt;killing Mac IE&lt;/a&gt; &amp;amp; &lt;a href="http://www.extremetech.com/article2/0,1697,587342,00.asp"&gt;killing Unix IE&lt;/a&gt; didn't help matters either (not that anybody ever used them). Shipping a mediocre IE 7 along with a &lt;a href="http://blog.caffeinatedsoftware.com/archive/2007/04/15/My-Vista-Test-Drive.aspx"&gt;disappointing Vista&lt;/a&gt; last year, has further hindered Microsoft's ability to convince people that it does have a great server side web platform and annoyed its supporters. I'm also annoyed that after IE 7 shipped, the &lt;a href="http://blogs.msdn.com/ie/"&gt;IE blog&lt;/a&gt; has been less informative during the IE 8 dev cycle than it was during IE 7's. I'm optimistic that after the recent &lt;a href="http://blogs.msdn.com/ie/archive/2007/12/19/internet-explorer-8-and-acid2-a-milestone.aspx"&gt;IE 8 Acid Test&lt;/a&gt; post, the group is just being quiet instead of dead. &lt;/p&gt;
&lt;p&gt;However, barring a &lt;a href="http://seattletimes.nwsource.com/html/jerrybrewer/2004109750_brewer06.html"&gt;Seahawk like comeback&lt;/a&gt; by the IE 8 team, my money is on &lt;a href="http://mozillalinks.org/wp/category/subject/firefox3/"&gt;Firefox 3&lt;/a&gt; being the champ in the 2008 browser bowl. Ever since &lt;a href="http://blogs.msdn.com/dmassy/"&gt;Coach Dave Massy left the IE team&lt;/a&gt;, I think they've taken a step backwards. Maybe they need to give IE to Coach &lt;a href="http://weblogs.asp.net/scottgu/"&gt;Scott Guthrie&lt;/a&gt; (GM for all things &lt;a href="http://www.iis.net"&gt;IIS&lt;/a&gt;, &lt;a href="http://asp.net/"&gt;ASP.net&lt;/a&gt;, &lt;a href="http://silverlight.net/"&gt;Silverlight&lt;/a&gt;, and all other MS web technologies that don't suck) or perhaps the GM Windows Live team (Did you know &lt;a href="http://weblogs.mozillazine.org/mitchell/archives/2007/01/the_mozilla_foundation_achievi.html"&gt;Firefox development is almost completely funded by Google ad revenue&lt;/a&gt;?) All I know is that IE is too important to be left in the Windows group. Microsoft needs to show more forward progress and give the season ticket holders reason to be hopeful. Otherwise, IE will be like Shaun Alexander, a browser/back that has a great history and a disappointing present.&lt;br /&gt;
&lt;br /&gt;
OK, I got the big 2 gripes off my chest. Here are some minor ones. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why does ASP.net AJAX download so many Javascript files? &lt;/strong&gt;I think there's a new &lt;a href="http://msmvps.com/blogs/luisabreu/archive/2007/06/12/toolkitscriptmanager-there-s-a-new-scriptmanager-in-town.aspx"&gt;ScriptManager on CodePlex&lt;/a&gt; that combines several embedded scripts on a single download. Still, it would've been nice if it was this way by default.&lt;strong&gt;&lt;br /&gt;
&lt;br /&gt;
Why is HTTP compression the best kept secret of IIS? &lt;/strong&gt;Seriously, it seems the vast majority ASP.net programmers don't know about HTTP compression on IIS. Maybe all of my friends read &lt;a href="http://dilbert.com/"&gt;Dilbert&lt;/a&gt; instead of &lt;a href="http://www.codinghorror.com/blog/archives/000059.html"&gt;Jeff Atwood&lt;/a&gt; during their lunch break? OK, it is a &lt;a href="http://www.dotnetjunkies.com/HowTo/16267D49-4C6E-4063-AB12-853761D31E66.dcik"&gt;pain to configure&lt;/a&gt; and providing some UI, like what &lt;a href="http://www.port80software.com/products/zipenable/"&gt;Port 80 Software's ZipEnable&lt;/a&gt; does, would be welcome. People get nervous when I say edit the IIS metabase around them.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Why did I have to wait so long for a real FTP server? &lt;/strong&gt;Oh well, at least &lt;a href="http://www.iis.net/articles/view.aspx/IIS7/Managing-IIS7/Using-FTP-Server-in-IIS7/What-s-New-for-Microsoft-and-FTP-"&gt;things are better in IIS 7&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
As I said, in my first post, on the whole, I'm pretty happy with Microsoft's internet platform. The ASP.net team is adding cool features at a good clip, Silverlight seems like a promising addition to the web developer's tool chest, and IIS 6 has been simple to use &amp;amp; rock solid in deployment. It seems like half of the ASP.net engineering team blogs, so getting that level of transparency is awesome. Visual Studio 2008 &amp;amp; SQL Server 2008 both seem like worthwhile upgrades.  &lt;/p&gt;
&lt;p&gt;And yet, despite all this coolness, I still have to code work-a-rounds for IE 6 bugs in my day to day life! To be fair to Microsoft, IE 6 &lt;em&gt;was&lt;/em&gt; a great browser in 2001. Unfortunately, it's 2008 now and Microsoft fumbled away the web browsing technology dominance it once had. We're all stuck writing apps for a 7 year old web browser, that doesn't compare well to today's best players. Oh well, here's hoping that both IE &amp;amp; 37 will return to All-Pro form next season.&lt;/p&gt;&lt;img src="http://blog.caffeinatedsoftware.com/aggbug/32.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>&lt;i&gt;&lt;b&gt;Caffeinated&lt;/b&gt;&lt;/i&gt; Software</dc:creator>
            <guid>http://blog.caffeinatedsoftware.com/archive/2008/01/12/best-asp.net-interview-question-ever-part-2.aspx</guid>
            <pubDate>Sat, 12 Jan 2008 17:59:39 GMT</pubDate>
            <wfw:comment>http://blog.caffeinatedsoftware.com/comments/32.aspx</wfw:comment>
            <comments>http://blog.caffeinatedsoftware.com/archive/2008/01/12/best-asp.net-interview-question-ever-part-2.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blog.caffeinatedsoftware.com/comments/commentRss/32.aspx</wfw:commentRss>
            <trackback:ping>http://blog.caffeinatedsoftware.com/services/trackbacks/32.aspx</trackback:ping>
        </item>
        <item>
            <title>Best ASP.net Interview Question Ever (Part 1) </title>
            <link>http://blog.caffeinatedsoftware.com/archive/2008/01/11/best-asp.net-interview-question-ever-part-1.aspx</link>
            <description>&lt;p&gt;&lt;img border="0" align="right" alt="Comic Book Guy ponders ASP.net" src="http://blog.caffeinatedsoftware.com/images/blog_caffeinatedsoftware_com/011208_0756_BestASPnetI1.gif" title="Comic Book Guy ponders ASP.net" /&gt;I recently I had a job interview w/ &lt;a href="http://www.costco.com"&gt;Costco Wholesale&lt;/a&gt; in the e-Commerce group. I thought the most interesting question they asked was "If you could change one thing about ASP.net, what would it be". It was a hard question, because on the whole, I'm pretty happy with it. Furthermore, on the whole, I'm pretty happy with the direction that Microsoft is going. However, it got me thinking about what I don't like about Microsoft's internet platform and I figured it would make a great blog post (or two), so here I go. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Viewstate + ClientID = HTML Bloat + Slow.&lt;/strong&gt; I don't think the ASP.net forms model is bad; it just makes it much more difficult than necessary to produce small HTML markup in the typical case. For example, let's say I have ASP.net code something like this  &lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;form &lt;/span&gt;&lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server"&amp;gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;asp:Repeater &lt;/span&gt;&lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;="rptCards"&lt;/span&gt;&lt;span style="color: red;"&gt; runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="Server"&lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;ItemTemplate&lt;/span&gt;&amp;gt;&lt;code&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;asp:Image &lt;/span&gt;&lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;="CardFace"&lt;/span&gt;&lt;span style="color: red;"&gt; runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server"&lt;/span&gt;&lt;span style="color: red;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;br &lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;asp:Label &lt;/span&gt;&lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;="CardName"&lt;/span&gt;&lt;span style="color: red;"&gt; runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server"&lt;/span&gt;&lt;span style="color: red;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;br &lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;ItemTemplate&lt;/span&gt;&amp;gt;&lt;code&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;asp:Repeater&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;form&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;And then I data bind a playing card to my repeater in the code behind file, which ASP.net proceeds to render it as this…&lt;br /&gt;
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;form &lt;/span&gt;&lt;span style="color: red;"&gt;name&lt;/span&gt;&lt;span style="color: blue;"&gt;="ctl00"&lt;/span&gt;&lt;span style="color: red;"&gt; method&lt;/span&gt;&lt;span style="color: blue;"&gt;="post"&lt;/span&gt;&lt;span style="color: red;"&gt; action&lt;/span&gt;&lt;span style="color: blue;"&gt;="form.aspx"&lt;/span&gt;&lt;span style="color: red;"&gt; id&lt;/span&gt;&lt;span style="color: blue;"&gt;="ctl00"&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;div&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;input &lt;/span&gt;&lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="color: blue;"&gt;="hidden"&lt;/span&gt;&lt;span style="color: red;"&gt; name&lt;/span&gt;&lt;span style="color: blue;"&gt;="__VIEWSTATE"&lt;/span&gt;&lt;span style="color: red;"&gt; id&lt;/span&gt;&lt;span style="color: blue;"&gt;="__VIEWSTATE"&lt;/span&gt;&lt;span style="color: red;"&gt; 					&lt;br /&gt; value&lt;/span&gt;&lt;span style="color: blue;"&gt;="/wEPDwULLTEyODIyNzUwMDAPZBYCAgEPZBYCAgEPFgIeC18hSXRlbUNvdW50AgEWAmYPZBYEAgEPDxY&lt;br /&gt; CHghJbWFnZVVybAUTL2NhcmRzLmFzcHg/Y2FyZD00NmRkAgMPDxYCHgRUZXh0BQ9RdWVlbiBvZiBIZWFydHNkZ&lt;br /&gt; GQAQrEoOi46tPS8NZ9nekUDim2+Mg=="&lt;/span&gt;&lt;span style="color: red;"&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/code&gt; &lt;code&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt; &amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;div&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;img &lt;/span&gt;&lt;span style="color: red;"&gt;id&lt;/span&gt;&lt;span style="color: blue;"&gt;="rptCards_ctl00_CardFace"&lt;/span&gt;&lt;span style="color: red;"&gt; src&lt;/span&gt;&lt;span style="color: blue;"&gt;="/cards.aspx?card=46"&lt;/span&gt;&lt;span style="color: red;"&gt; style&lt;/span&gt;&lt;span style="color: blue;"&gt;="border-width:0px;"&lt;/span&gt;&lt;span style="color: red;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;br &lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;span &lt;/span&gt;&lt;span style="color: red;"&gt;id&lt;/span&gt;&lt;span style="color: blue;"&gt;="rptCards_ctl00_CardName"&amp;gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Queen of Hearts&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;span&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;br &lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;form&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;What's with the &amp;lt;div&amp;gt; surrounding the &lt;span style="color: blue; font-family: Courier New; font-size: 10pt;"&gt;__VIEWSTATE&lt;/span&gt; control? Where did that &lt;span style="font-family: Courier New; font-size: 10pt;"&gt;&lt;span style="color: red;"&gt;style&lt;/span&gt;&lt;span style="color: blue;"&gt;="border-width:0px;"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: red;"&gt; 		&lt;/span&gt;come from? Why is there so much damn view state? Why do my Image and Label controls render IDs on the client? And why is it named &lt;span style="color: blue;"&gt;&lt;span style="font-family: Courier New; font-size: 10pt;"&gt;rptCards_ctl00_CardFace&lt;/span&gt; 		&lt;/span&gt;instead of something shorter, such as &lt;span style="color: blue; font-family: Courier New; font-size: 10pt;"&gt;rptCards_0_CardFace&lt;/span&gt;?  &lt;/p&gt;
&lt;p&gt;Sometimes I have nested repeaters, sometimes I don't. Sometimes I use HTML controls instead of Web Controls, but the issue is the same. The elements in question aren't getting changed on the client and only get changed on the server during the initial HTTP GET during data binding. Normally, the &lt;span style="color: blue; font-family: Courier New; font-size: 10pt;"&gt;__VIEWSTATE&lt;/span&gt; just grows &amp;amp; grows as I add more stuff to the page. OK, you can avoid this by a few well placed &lt;span style="font-family: Courier New; font-size: 10pt;"&gt;&lt;span style="color: red;"&gt;EnableViewState&lt;/span&gt;&lt;span style="color: blue;"&gt;="false"&lt;/span&gt;&lt;/span&gt; or disabling it altogether in web.config. Unfortunately, I don't always know when you really need it, so often times I end up disabling it on a control by control basis in a trial and error fashion, until my app works and my markup is small. Unless you &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/ViewState.asp"&gt;truly understand viewstate&lt;/a&gt;, you could end up meeting a fatal end with &lt;a href="http://weblogs.asp.net/infinitiesloop/archive/2006/08/03/Truly-Understanding-Viewstate.aspx"&gt;ViewState-ious of Borg&lt;/a&gt;. Fortunately, I understand that problem. &lt;/p&gt;
&lt;p&gt;What bothers me more is ID bloat, especially when you nest Repeaters, so an innocent looking &lt;span style="font-family: Courier New; font-size: 10pt;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;asp:Hyperlink&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; control ends up with an ID like...&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue; font-family: Courier New; font-size: 10pt;"&gt;rptMerchants_ctl01_rptShippingMethods_ctl00_rptLineItems_ctl00_ProductName&lt;/span&gt;, &lt;br /&gt;
&lt;br /&gt;
That's ugly, so I end up using shorter IDs for Repeaters. Unfortunately, that's not good enough at times, so I usually end up replacing many of my server controls with &lt;span style="font-family: Courier New; font-size: 10pt;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;asp:Literal&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; controls and controlling my markup directly. Unfortunately, doing that stops you from using the server control you really wanted to use, and makes complex page development a huge pain. &lt;/p&gt;
&lt;p&gt;Ideally, what I'd like is a &lt;span style="font-family: Courier New; font-size: 10pt;"&gt;&lt;span style="color: red;"&gt;RenderClientIDs&lt;/span&gt;&lt;span style="color: blue;"&gt;="false"&lt;/span&gt;&lt;/span&gt; attribute for all ASP.net server controls. After all, the ID isn't sent to the server on the postback (just name / value pairs from form controls). You really only need it on the client if you are doing client side DOM/DHTML manipulation. I know you need a Control ID as a parameter to &lt;span style="color: maroon; font-family: Courier New; font-size: 10pt;"&gt;__doPostBack&lt;/span&gt;, but I usually don't need it on the client side HTML markup. It also seems odd that ASP.net is missing a &lt;span style="font-family: Courier New; font-size: 10pt;"&gt;&lt;span style="color: red;"&gt;RenderClientIDs&lt;/span&gt;&lt;span style="color: blue;"&gt; 			&lt;/span&gt;&lt;/span&gt;attribute since they did have the foresight to create an &lt;span style="color: red; font-family: Courier New; font-size: 10pt;"&gt;EnableViewState&lt;/span&gt; attribute on server controls.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Most of the time, a Hyperlink control is just an &amp;lt;a&amp;gt; HTML tag, a Label control is just a &amp;lt;span&amp;gt; HTML tag, and an Image control is just an &amp;lt;img&amp;gt; HTML tag, so the ID attribute is just byte bloat running up my bandwidth bill. Why is it so hard to just get this instead?&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;img &lt;/span&gt;&lt;span style="color: red;"&gt;src&lt;/span&gt;&lt;span style="color: blue;"&gt;="/cards.aspx?card=46"&lt;/span&gt;&lt;span style="color: red;"&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;br &lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;span&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Queen of Hearts&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;span&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;br &lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Arial,Verdana,Sans-Serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Is there a diet control library I don't know about or some magic web.config setting to stop unneeded ClientIDs from rendering? How does one fight ClientID bloat? Should I just wait for an &lt;a href="http://www.infoq.com/news/2007/12/MVC-vs-Web-Forms"&gt;MVC version of ASP.net&lt;/a&gt;? I'm kind of lukewarm on the whole MVC thing because of ignorance and the lingering bad taste of classic ASP. I don't mind paying the ASP.net tax, when it adds more value than byte bloat. It just annoys me, that I have resort to &lt;span style="font-family: Courier New; font-size: 10pt;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;asp:Literal&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; controls to avoid paying the ASP.net tax in some cases. &lt;/p&gt;
&lt;p&gt;So what are the downsides of MVC ASP.net vs Classic ASP.net? Will my &lt;a href="http://www.componentart.com/"&gt;favorite 3rd party ASP.net web control product&lt;/a&gt; work on it? Do I just need to read &lt;a href="http://haacked.com/archive/2007/12/13/thank-you-for-helping-me-with-my-job-with-asp.net.aspx"&gt;Phil Haack's blog&lt;/a&gt; and &lt;a href="http://www.hanselman.com/blog/January2008PADNUGMeetingShouldYouFearMVCForASPNET.aspx"&gt;Scott Hanselman's blog&lt;/a&gt; more often? Any idea when an &lt;a href="http://msdnevents.com/"&gt;MSDN event&lt;/a&gt; will cover MVC ASP.net? Oh well, it beats tracking down memory or COM interface leaks in an ISAPI application for a living.&lt;/p&gt;&lt;img src="http://blog.caffeinatedsoftware.com/aggbug/31.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>&lt;i&gt;&lt;b&gt;Caffeinated&lt;/b&gt;&lt;/i&gt; Software</dc:creator>
            <guid>http://blog.caffeinatedsoftware.com/archive/2008/01/11/best-asp.net-interview-question-ever-part-1.aspx</guid>
            <pubDate>Sat, 12 Jan 2008 07:56:42 GMT</pubDate>
            <wfw:comment>http://blog.caffeinatedsoftware.com/comments/31.aspx</wfw:comment>
            <comments>http://blog.caffeinatedsoftware.com/archive/2008/01/11/best-asp.net-interview-question-ever-part-1.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blog.caffeinatedsoftware.com/comments/commentRss/31.aspx</wfw:commentRss>
            <trackback:ping>http://blog.caffeinatedsoftware.com/services/trackbacks/31.aspx</trackback:ping>
        </item>
    </channel>
</rss>