<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>A Better Way &#187; ASP.NET</title>
	<atom:link href="http://www.thejacklawson.com/index.php/category/aspnet/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thejacklawson.com</link>
	<description>Finding a better way to get things done, a technical journey</description>
	<lastBuildDate>Tue, 24 Aug 2010 21:10:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>ASP.NET Controls, How I Hate Them</title>
		<link>http://www.thejacklawson.com/index.php/2010/02/asp-net-controls-how-i-hate-them/</link>
		<comments>http://www.thejacklawson.com/index.php/2010/02/asp-net-controls-how-i-hate-them/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 16:43:22 +0000</pubDate>
		<dc:creator>Jack Lawson</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[IIS and Windows Technologies]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[Add new tag]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[ASP.NET AJAX]]></category>
		<category><![CDATA[Component Frameworks]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.thejacklawson.com/?p=204</guid>
		<description><![CDATA[Image by ttrentham via Flickr I&#8217;ve always, for some reason, felt innately that PHP allowed me more control over my code than ASP.NET. My brain kept saying &#8220;but .NET is more organized! It compiles! It&#8217;s faster! It&#8217;s easier to write,&#8221; but my mind kept saying &#8220;PHP lets me do what I want how I want [...]]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="margin: 1em; display: block;">
<div>
<dl class="wp-caption alignright" style="width: 250px;">
<dt class="wp-caption-dt"><a href="http://www.flickr.com/photos/57798571@N00/2398917253"><img title="MSDN Error" src="http://farm3.static.flickr.com/2354/2398917253_6bcafbbd76_m.jpg" alt="MSDN Error" width="240" height="106" /></a></dt>
<dd class="wp-caption-dd zemanta-img-attribution" style="font-size: 0.8em;">Image by <a href="http://www.flickr.com/photos/57798571@N00/2398917253">ttrentham</a> via Flickr</dd>
</dl>
</div>
</div>
<p>I&#8217;ve always, for some reason, felt innately that <a class="zem_slink" title="PHP" rel="homepage" href="http://www.php.net/">PHP</a> allowed me more control over my code than <a class="zem_slink" title="ASP.NET" rel="homepage" href="http://www.asp.net">ASP.NET</a>. My <em>brain </em>kept saying &#8220;but .NET is more organized! It compiles! It&#8217;s faster! It&#8217;s easier to write,&#8221; but my <em>mind </em>kept saying &#8220;PHP lets me do what I want how I want it&#8230; screw .NET!&#8221;</p>
<p>What I finally figured out was that I love C#, I even like the <a class="zem_slink" title=".NET Framework" rel="homepage" href="http://msdn.microsoft.com/netframework/">.NET framework</a>, but I hate is, in fact, ASP.NET.</p>
<p>Every time I see an example of simple, elegant code, the most complex control on the page is a label or a panel. While the intentions behind FormView may be good, writing my own forms and hooking them up saves hundreds of lines (literally- I just refactored almost 800 lines of code into 150 by <em>removing </em>a formview) as well as reduces complexity and maintenance (now I no longer have to maintain view and edit and whatever other modes FormView has.) ASP.NET perhaps made sense in a day before OO principles and ORMs came into play; the controls were written for the same kind of people that use the drag-and-drop design mode. Easy to slap down haphazardly, not so easy to maintain.</p>
<p>We replaced every ASP.NET <a class="zem_slink" title="ASP.NET AJAX" rel="wikipedia" href="http://en.wikipedia.org/wiki/ASP.NET_AJAX">Ajax</a> control we used anywhere (after I evangelized it, to my chagrin) with <a class="zem_slink" title="JQuery" rel="homepage" href="http://jquery.com/">jQuery</a> after about 6 months of use; while the controls did what we needed on the surface, underneath there was <em>always</em> some caveat, like the linked DropDowns needed web services, or the datepicker control had missing options&#8230; there was always something somewhere that I needed a bit of flexibility on that just wasn&#8217;t there, or was buggy. It seemed very odd for it to be out of beta in such a state. So, I ended up starting my own control library using jQuery, and now it&#8217;s easily extensible, easy to modify from the client, and I can control the markup.</p>
<p>Oh, and the markup&#8230; don&#8217;t get me started on the markup. Tables for <em>everything</em>. I can&#8217;t rearrange the otherwise useful Wizard control because it&#8217;s so static in its display.</p>
<p>So, I guess the point I&#8217;m trying to make is, that the longer I use .NET, the less and less I use the complex controls and the more I roll my own. Because it&#8217;s <em>easier</em>.<br />
Kind of ironic.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/4d9cd1b1-cc21-4241-b625-e55c125fd955/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=4d9cd1b1-cc21-4241-b625-e55c125fd955" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em> </em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.thejacklawson.com/index.php/2010/02/asp-net-controls-how-i-hate-them/&amp;title=ASP.NET+Controls%2C+How+I+Hate+Them" title="Add 'ASP.NET Controls, How I Hate Them' to Del.icio.us"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'ASP.NET Controls, How I Hate Them' to Del.icio.us" alt="Add 'ASP.NET Controls, How I Hate Them' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.thejacklawson.com/index.php/2010/02/asp-net-controls-how-i-hate-them/&amp;title=ASP.NET+Controls%2C+How+I+Hate+Them" title="Add 'ASP.NET Controls, How I Hate Them' to digg"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'ASP.NET Controls, How I Hate Them' to digg" alt="Add 'ASP.NET Controls, How I Hate Them' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.thejacklawson.com/index.php/2010/02/asp-net-controls-how-i-hate-them/&amp;title=ASP.NET+Controls%2C+How+I+Hate+Them" title="Add 'ASP.NET Controls, How I Hate Them' to reddit"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'ASP.NET Controls, How I Hate Them' to reddit" alt="Add 'ASP.NET Controls, How I Hate Them' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.thejacklawson.com/index.php/2010/02/asp-net-controls-how-i-hate-them/" title="Add 'ASP.NET Controls, How I Hate Them' to Technorati"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'ASP.NET Controls, How I Hate Them' to Technorati" alt="Add 'ASP.NET Controls, How I Hate Them' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://www.thejacklawson.com/index.php/2010/02/asp-net-controls-how-i-hate-them/&amp;h=ASP.NET+Controls%2C+How+I+Hate+Them" title="Add 'ASP.NET Controls, How I Hate Them' to Newsvine"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'ASP.NET Controls, How I Hate Them' to Newsvine" alt="Add 'ASP.NET Controls, How I Hate Them' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://www.thejacklawson.com/index.php/2010/02/asp-net-controls-how-i-hate-them/&amp;title=ASP.NET+Controls%2C+How+I+Hate+Them" title="Add 'ASP.NET Controls, How I Hate Them' to Stumble Upon"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'ASP.NET Controls, How I Hate Them' to Stumble Upon" alt="Add 'ASP.NET Controls, How I Hate Them' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.thejacklawson.com/index.php/2010/02/asp-net-controls-how-i-hate-them/&amp;title=ASP.NET+Controls%2C+How+I+Hate+Them" title="Add 'ASP.NET Controls, How I Hate Them' to Google Bookmarks"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'ASP.NET Controls, How I Hate Them' to Google Bookmarks" alt="Add 'ASP.NET Controls, How I Hate Them' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="https://favorites.live.com/quickadd.aspx?url=http://www.thejacklawson.com/index.php/2010/02/asp-net-controls-how-i-hate-them/&amp;title=ASP.NET+Controls%2C+How+I+Hate+Them" title="Add 'ASP.NET Controls, How I Hate Them' to Live-MSN"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/live.png" title="Add 'ASP.NET Controls, How I Hate Them' to Live-MSN" alt="Add 'ASP.NET Controls, How I Hate Them' to Live-MSN" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=ASP.NET+Controls%2C+How+I+Hate+Them&amp;url=http://www.thejacklawson.com/index.php/2010/02/asp-net-controls-how-i-hate-them/" title="Add 'ASP.NET Controls, How I Hate Them' to SlashDot"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'ASP.NET Controls, How I Hate Them' to SlashDot" alt="Add 'ASP.NET Controls, How I Hate Them' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://www.thejacklawson.com/index.php/2010/02/asp-net-controls-how-i-hate-them/&amp;t=ASP.NET+Controls%2C+How+I+Hate+Them" title="Add 'ASP.NET Controls, How I Hate Them' to FaceBook"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'ASP.NET Controls, How I Hate Them' to FaceBook" alt="Add 'ASP.NET Controls, How I Hate Them' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://www.thejacklawson.com/index.php/2010/02/asp-net-controls-how-i-hate-them/" title="Add 'ASP.NET Controls, How I Hate Them' to Twitter"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'ASP.NET Controls, How I Hate Them' to Twitter" alt="Add 'ASP.NET Controls, How I Hate Them' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/reader/link?url=http://www.thejacklawson.com/index.php/2010/02/asp-net-controls-how-i-hate-them/&amp;title=ASP.NET+Controls%2C+How+I+Hate+Them&amp;srcURL=http://www.thejacklawson.com/index.php/2010/02/asp-net-controls-how-i-hate-them/" title="Add 'ASP.NET Controls, How I Hate Them' to Google Buzz"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/googlebuzz.png" title="Add 'ASP.NET Controls, How I Hate Them' to Google Buzz" alt="Add 'ASP.NET Controls, How I Hate Them' to Google Buzz" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://www.thejacklawson.com/index.php/2010/02/asp-net-controls-how-i-hate-them/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Tracking AJAX in ASP.NET with Google Analytics</title>
		<link>http://www.thejacklawson.com/index.php/2009/09/tracking-ajax-in-asp-net-with-google-analytics/</link>
		<comments>http://www.thejacklawson.com/index.php/2009/09/tracking-ajax-in-asp-net-with-google-analytics/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 02:00:36 +0000</pubDate>
		<dc:creator>Jack Lawson</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Analytics]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[google analytics]]></category>
		<category><![CDATA[web trending]]></category>

		<guid isPermaLink="false">http://www.thejacklawson.com/?p=102</guid>
		<description><![CDATA[Image by carveconsulting via Flickr (skip down a little further if you don&#8217;t need an introduction to Google Analytics.) I love Google Analytics. In fact, I&#8217;m a big fan of Google as a whole, and I do the majority of my work using Google Docs, Calendar, and Gmail (online collaboration! oh, and free) and Google [...]]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="margin: 1em; display: block;">
<div>
<dl class="wp-caption alignright" style="width: 250px;">
<dt class="wp-caption-dt"><a href="http://www.flickr.com/photos/76347018@N00/2290586287"><img title="Google analytics for recruitment" src="http://farm4.static.flickr.com/3243/2290586287_6c02972b60_m.jpg" alt="Google analytics for recruitment" /></a></dt>
<dd class="wp-caption-dd zemanta-img-attribution" style="font-size: 0.8em;">Image by <a href="http://www.flickr.com/photos/76347018@N00/2290586287">carveconsulting</a> via Flickr</dd>
</dl>
</div>
</div>
<p><em>(skip down a little further if you don&#8217;t need an introduction to <a class="zem_slink" title="Google Analytics" rel="homepage" href="http://www.google.com/analytics">Google Analytics</a>.)</em></p>
<p>I love <a class="zem_slink" title="Google" rel="homepage" href="http://google.com">Google</a> Analytics. In fact, I&#8217;m a big fan of Google as a whole, and I do the majority of my work using Google <a class="zem_slink" title="Google Docs" rel="homepage" href="http://docs.google.com/">Docs</a>, <a class="zem_slink" title="Google Calendar" rel="homepage" href="http://google.com/calendar">Calendar</a>, and Gmail (online collaboration! oh, and free) and Google Analytics is a beautiful tool for businesses, whether their <a class="zem_slink" title="Website" rel="wikipedia" href="http://en.wikipedia.org/wiki/Website">website</a>&#8216;s primary focus is online sales or just a small info-about-my-business site. If you don&#8217;t have some kind of tracking, you&#8217;re missing out on very important information; GA is a good place to start. Anybody can put GA into their website, and everybody should put something in.</p>
<p>The way GA works is by dropping a snippet of <a class="zem_slink" title="JavaScript" rel="wikipedia" href="http://en.wikipedia.org/wiki/JavaScript">Javascript</a> into your page; this javascript runs a series of tests against the visitor&#8217;s browser, checking <a class="zem_slink" title="Display resolution" rel="wikipedia" href="http://en.wikipedia.org/wiki/Display_resolution">screen resolution</a>, flash capabilities, seeing if the user is unique, watching the user&#8217;s path through the website, checking the user&#8217;s location, and much, much more (all collected anonymously). This is all put into an interface where you can see the data collected and organized. However, <a class="zem_slink" title="Ajax (programming)" rel="wikipedia" href="http://en.wikipedia.org/wiki/Ajax_%28programming%29">AJAX</a> applications don&#8217;t function as normal websites- you don&#8217;t get a new <a class="zem_slink" title="Hit (internet)" rel="wikipedia" href="http://en.wikipedia.org/wiki/Hit_%28internet%29">page hit</a> every time you fire off an UpdatePanel, because it&#8217;s not a full page refresh. So, we need to do a little trickery to get things to work the way we want them to.</p>
<p><em>(you can start reading again if you skipped earlier.)</em></p>
<p>If you have the Google Analytics in the host page (whether the aspx page, or more likely, the master page), then you have to register a client script block that calls the trackpageview method. If you use <a class="zem_slink" title="JQuery" rel="homepage" href="http://jquery.com/">jQuery</a>, it&#8217;ll look something like:</p>
<p><code>ScriptManager.RegisterClientScriptBlock(UpdatePanelID, typeof(UpdatePanel), "uniqueIdentifierString", "$(document).ready(function(){ pageTracker._trackPageview('/pagename'); });", true);</code></p>
<p>If you&#8217;re not using jQuery, you&#8217;ll have to do a little more work to attach to the window&#8217;s onload event, but it&#8217;s pretty similar.<br />
What you&#8217;re doing is registering a script block to execute when the UpdatePanel updates (because it won&#8217;t execute JS returned in the text), and using the pageTracker object (that the GA code you copied when you first set up GA on your site created) to force a pageview for a page you define. For my applications, I generally use something like &#8220;/dataentry/guestbook/edit&#8221; or &#8220;/dataentry/guestbook/delete&#8221; so that I can easily track guestbook views, as well as edits / deletes. It&#8217;s both a way to track controls you load via AJAX, and a cheap shot at logging (not perfect data, though, so you&#8217;re still best off doing all of your own logging on events, of course.)</p>
<p>The official Google help doc on the subject is also here: <a href="http://www.google.com/support/analytics/bin/answer.py?hl=en&amp;answer=55519" target="_blank">http://www.google.com/support/analytics/bin/answer.py?hl=en&amp;answer=55519</a></p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/570dfef3-4261-4739-9d63-560430307e2b/"><img class="zemanta-pixie-img" style="border: medium none ; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=570dfef3-4261-4739-9d63-560430307e2b" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em> </em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.thejacklawson.com/index.php/2009/09/tracking-ajax-in-asp-net-with-google-analytics/&amp;title=Tracking+AJAX+in+ASP.NET+with+Google+Analytics" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Del.icio.us"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Del.icio.us" alt="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.thejacklawson.com/index.php/2009/09/tracking-ajax-in-asp-net-with-google-analytics/&amp;title=Tracking+AJAX+in+ASP.NET+with+Google+Analytics" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to digg"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to digg" alt="Add 'Tracking AJAX in ASP.NET with Google Analytics' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.thejacklawson.com/index.php/2009/09/tracking-ajax-in-asp-net-with-google-analytics/&amp;title=Tracking+AJAX+in+ASP.NET+with+Google+Analytics" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to reddit"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to reddit" alt="Add 'Tracking AJAX in ASP.NET with Google Analytics' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.thejacklawson.com/index.php/2009/09/tracking-ajax-in-asp-net-with-google-analytics/" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Technorati"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Technorati" alt="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://www.thejacklawson.com/index.php/2009/09/tracking-ajax-in-asp-net-with-google-analytics/&amp;h=Tracking+AJAX+in+ASP.NET+with+Google+Analytics" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Newsvine"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Newsvine" alt="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://www.thejacklawson.com/index.php/2009/09/tracking-ajax-in-asp-net-with-google-analytics/&amp;title=Tracking+AJAX+in+ASP.NET+with+Google+Analytics" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Stumble Upon"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Stumble Upon" alt="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.thejacklawson.com/index.php/2009/09/tracking-ajax-in-asp-net-with-google-analytics/&amp;title=Tracking+AJAX+in+ASP.NET+with+Google+Analytics" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Google Bookmarks"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Google Bookmarks" alt="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="https://favorites.live.com/quickadd.aspx?url=http://www.thejacklawson.com/index.php/2009/09/tracking-ajax-in-asp-net-with-google-analytics/&amp;title=Tracking+AJAX+in+ASP.NET+with+Google+Analytics" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Live-MSN"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/live.png" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Live-MSN" alt="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Live-MSN" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Tracking+AJAX+in+ASP.NET+with+Google+Analytics&amp;url=http://www.thejacklawson.com/index.php/2009/09/tracking-ajax-in-asp-net-with-google-analytics/" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to SlashDot"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to SlashDot" alt="Add 'Tracking AJAX in ASP.NET with Google Analytics' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://www.thejacklawson.com/index.php/2009/09/tracking-ajax-in-asp-net-with-google-analytics/&amp;t=Tracking+AJAX+in+ASP.NET+with+Google+Analytics" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to FaceBook"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to FaceBook" alt="Add 'Tracking AJAX in ASP.NET with Google Analytics' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://www.thejacklawson.com/index.php/2009/09/tracking-ajax-in-asp-net-with-google-analytics/" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Twitter"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Twitter" alt="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/reader/link?url=http://www.thejacklawson.com/index.php/2009/09/tracking-ajax-in-asp-net-with-google-analytics/&amp;title=Tracking+AJAX+in+ASP.NET+with+Google+Analytics&amp;srcURL=http://www.thejacklawson.com/index.php/2009/09/tracking-ajax-in-asp-net-with-google-analytics/" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Google Buzz"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/googlebuzz.png" title="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Google Buzz" alt="Add 'Tracking AJAX in ASP.NET with Google Analytics' to Google Buzz" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://www.thejacklawson.com/index.php/2009/09/tracking-ajax-in-asp-net-with-google-analytics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Snakes on a Compiler</title>
		<link>http://www.thejacklawson.com/index.php/2009/04/66/</link>
		<comments>http://www.thejacklawson.com/index.php/2009/04/66/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 21:51:08 +0000</pubDate>
		<dc:creator>Jack Lawson</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[IronPython]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.thejacklawson.com/?p=66</guid>
		<description><![CDATA[I went to the Day of .NET, an all-day &#8220;geekfest&#8221;, a sea of polos and khakis; and there, I made the final decision of what language I would learn next: Python. Well, specifically, IronPython. I guess a normal Python isn&#8217;t scary enough, so we&#8217;ll make it out of metal. (Presenter&#8217;s website; presenter&#8217;s slides; presenter&#8217;s twitter) [...]]]></description>
			<content:encoded><![CDATA[<p>I went to the Day of <a class="zem_slink" title=".NET Framework" rel="homepage" href="http://www.microsoft.com/net/">.NET</a>, an all-day &#8220;geekfest&#8221;, a sea of polos and khakis; and there, I made the final decision of what language I would learn next: <a class="zem_slink" title="Python (programming language)" rel="homepage" href="http://www.python.org/">Python</a>. Well, specifically, <a class="zem_slink" title="IronPython" rel="homepage" href="http://www.codeplex.com/IronPython">IronPython</a>. I guess a normal Python isn&#8217;t scary enough, so we&#8217;ll make it out of metal. (<a href="http://www.darrellhawley.com/" target="_blank">Presenter&#8217;s website</a>; <a href="http://bit.ly/zL7Ff" target="_blank">presenter&#8217;s slides</a>; <a href="http://twitter.com/darrellhawley" target="_blank">presenter&#8217;s twitter</a>)</p>
<div class="zemanta-img zemanta-action-dragged" style="margin: 1em; display: block;">
<div>
<dl class="wp-caption alignright" style="width: 212px;">
<dt class="wp-caption-dt"><a href="http://en.wikipedia.org/wiki/Image:Python_logo.svg"><img title="CPython" src="http://upload.wikimedia.org/wikipedia/en/thumb/0/06/Python_logo.svg/202px-Python_logo.svg.png" alt="CPython" width="202" height="48" /></a></dt>
<dd class="wp-caption-dd zemanta-img-attribution" style="font-size: 0.8em;">Image via <a href="http://en.wikipedia.org/wiki/Image:Python_logo.svg">Wikipedia</a></dd>
</dl>
</div>
</div>
<p>The really, really cool thing about IronPython is the ease in which I can pull in other <a class="zem_slink" title="Common Language Runtime" rel="wikipedia" href="http://en.wikipedia.org/wiki/Common_Language_Runtime">CLR</a> languages; namely, C#. This will supposedly get better when <a class="zem_slink" title="Microsoft Visual Studio" rel="homepage" href="http://msdn.microsoft.com/vstudio/">Visual Studio</a> 2010 comes out and the <a href="http://en.wikipedia.org/wiki/Dynamic_Language_Runtime" target="_blank">DLR</a> is revamped and IronPython support grows. What this will allow me to do is build all of my base classes, and my data layer, which I&#8217;m more comfortable with, and use Python for all the fun stuff- services, and display. I&#8217;ve been considering writing my next game in Python anyway, influenced by <a class="zem_slink" title="Eve Online" rel="wikipedia" href="http://en.wikipedia.org/wiki/Eve_Online">Eve Online</a>&#8216;s incredible sucess using the language, so this fits in perfectly with my prior knowledge.</p>
<p>I&#8217;m pretty excited. I&#8217;ve never heard a negative thing about Python; everyone I&#8217;ve ever heard who uses it loves it.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://reblog.zemanta.com/zemified/c666b69c-a9d1-4766-bdc3-ccdfea084f99/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=c666b69c-a9d1-4766-bdc3-ccdfea084f99" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em> </em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.thejacklawson.com/index.php/2009/04/66/&amp;title=Snakes+on+a+Compiler" title="Add 'Snakes on a Compiler' to Del.icio.us"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Snakes on a Compiler' to Del.icio.us" alt="Add 'Snakes on a Compiler' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.thejacklawson.com/index.php/2009/04/66/&amp;title=Snakes+on+a+Compiler" title="Add 'Snakes on a Compiler' to digg"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Snakes on a Compiler' to digg" alt="Add 'Snakes on a Compiler' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.thejacklawson.com/index.php/2009/04/66/&amp;title=Snakes+on+a+Compiler" title="Add 'Snakes on a Compiler' to reddit"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'Snakes on a Compiler' to reddit" alt="Add 'Snakes on a Compiler' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.thejacklawson.com/index.php/2009/04/66/" title="Add 'Snakes on a Compiler' to Technorati"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Snakes on a Compiler' to Technorati" alt="Add 'Snakes on a Compiler' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://www.thejacklawson.com/index.php/2009/04/66/&amp;h=Snakes+on+a+Compiler" title="Add 'Snakes on a Compiler' to Newsvine"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'Snakes on a Compiler' to Newsvine" alt="Add 'Snakes on a Compiler' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://www.thejacklawson.com/index.php/2009/04/66/&amp;title=Snakes+on+a+Compiler" title="Add 'Snakes on a Compiler' to Stumble Upon"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'Snakes on a Compiler' to Stumble Upon" alt="Add 'Snakes on a Compiler' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.thejacklawson.com/index.php/2009/04/66/&amp;title=Snakes+on+a+Compiler" title="Add 'Snakes on a Compiler' to Google Bookmarks"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'Snakes on a Compiler' to Google Bookmarks" alt="Add 'Snakes on a Compiler' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="https://favorites.live.com/quickadd.aspx?url=http://www.thejacklawson.com/index.php/2009/04/66/&amp;title=Snakes+on+a+Compiler" title="Add 'Snakes on a Compiler' to Live-MSN"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/live.png" title="Add 'Snakes on a Compiler' to Live-MSN" alt="Add 'Snakes on a Compiler' to Live-MSN" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Snakes+on+a+Compiler&amp;url=http://www.thejacklawson.com/index.php/2009/04/66/" title="Add 'Snakes on a Compiler' to SlashDot"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'Snakes on a Compiler' to SlashDot" alt="Add 'Snakes on a Compiler' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://www.thejacklawson.com/index.php/2009/04/66/&amp;t=Snakes+on+a+Compiler" title="Add 'Snakes on a Compiler' to FaceBook"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'Snakes on a Compiler' to FaceBook" alt="Add 'Snakes on a Compiler' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://www.thejacklawson.com/index.php/2009/04/66/" title="Add 'Snakes on a Compiler' to Twitter"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'Snakes on a Compiler' to Twitter" alt="Add 'Snakes on a Compiler' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/reader/link?url=http://www.thejacklawson.com/index.php/2009/04/66/&amp;title=Snakes+on+a+Compiler&amp;srcURL=http://www.thejacklawson.com/index.php/2009/04/66/" title="Add 'Snakes on a Compiler' to Google Buzz"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/googlebuzz.png" title="Add 'Snakes on a Compiler' to Google Buzz" alt="Add 'Snakes on a Compiler' to Google Buzz" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://www.thejacklawson.com/index.php/2009/04/66/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thinking Outside the Cube</title>
		<link>http://www.thejacklawson.com/index.php/2009/04/thinking-outside-the-cube/</link>
		<comments>http://www.thejacklawson.com/index.php/2009/04/thinking-outside-the-cube/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 05:15:49 +0000</pubDate>
		<dc:creator>Jack Lawson</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[User Interface Design]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Cross-training]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Learning]]></category>

		<guid isPermaLink="false">http://www.thejacklawson.com/?p=52</guid>
		<description><![CDATA[Learning outside of the workplace is, in my opinion, of the utmost importance. Whether it&#8217;s reading a book, going to a convention, visiting community websites, keeping a blog, doing freelance work, or just messing around with code for the heck of it- we must sharpen our saw. Image via Wikipedia I believe the key point [...]]]></description>
			<content:encoded><![CDATA[<p><a class="zem_slink" title="Learning" rel="wikipedia" href="http://en.wikipedia.org/wiki/Learning">Learning</a> outside of the workplace is, in my opinion, of the utmost importance. Whether it&#8217;s reading a book, going to a convention, visiting community websites, keeping a blog, doing freelance work, or just messing around with code for the heck of it- we must <a href="http://www.codinghorror.com/blog/archives/001236.html" target="_blank">sharpen our</a> saw.</p>
<div class="zemanta-img zemanta-action-dragged" style="margin: 1em; display: block;">
<div>
<dl class="wp-caption alignright" style="width: 210px;">
<dt class="wp-caption-dt"><a href="http://en.wikipedia.org/wiki/Image:CleancubicleSouth20050109.jpg"><img title="North view of cubicle" src="http://upload.wikimedia.org/wikipedia/en/thumb/6/63/CleancubicleSouth20050109.jpg/200px-CleancubicleSouth20050109.jpg" alt="North view of cubicle" width="200" height="120" /></a></dt>
<dd class="wp-caption-dd zemanta-img-attribution" style="font-size: 0.8em;">Image via <a href="http://en.wikipedia.org/wiki/Image:CleancubicleSouth20050109.jpg">Wikipedia</a></dd>
</dl>
</div>
</div>
<p>I believe the key point of this is that it must not feel like <em>work</em>. You shouldn&#8217;t feel pressured, or dread doing something; you should do it because you want to do it. The great thing about  our profession is that we can get away and do several things, all subject to our whims; if we spent all day in a chair at a desk, and we want to get up, go to a meeting like the <a href="http://www.dodn.org/" target="_blank">Day of .NET</a> (<a href="http://cinnug.org/cododn/default.aspx" target="_blank">Central Ohio this Saturday!</a>) If you like to read, do that instead; it&#8217;s good to keep a bookshelf full of interesting books. Go into some kind of technical <a class="zem_slink" title="Cross-training" rel="wikipedia" href="http://en.wikipedia.org/wiki/Cross-training">cross-training</a>, such as learning a new language. Do <a class="zem_slink" title="Design" rel="wikipedia" href="http://en.wikipedia.org/wiki/Design">design</a> if you&#8217;re a devleoper, or develop if you&#8217;re a designer. Just do <em>something</em>.</p>
<p>In this way, we can continue to work on our skills, learn new things and keep from being bored. And, at least in my experience, you can bring new skills and solutions to problems you&#8217;re already facing at work.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://reblog.zemanta.com/zemified/ec7a9e0e-8d0b-4dd9-98bb-a9d2a97fbc42/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=ec7a9e0e-8d0b-4dd9-98bb-a9d2a97fbc42" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em> </em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.thejacklawson.com/index.php/2009/04/thinking-outside-the-cube/&amp;title=Thinking+Outside+the+Cube" title="Add 'Thinking Outside the Cube' to Del.icio.us"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Thinking Outside the Cube' to Del.icio.us" alt="Add 'Thinking Outside the Cube' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.thejacklawson.com/index.php/2009/04/thinking-outside-the-cube/&amp;title=Thinking+Outside+the+Cube" title="Add 'Thinking Outside the Cube' to digg"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Thinking Outside the Cube' to digg" alt="Add 'Thinking Outside the Cube' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.thejacklawson.com/index.php/2009/04/thinking-outside-the-cube/&amp;title=Thinking+Outside+the+Cube" title="Add 'Thinking Outside the Cube' to reddit"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'Thinking Outside the Cube' to reddit" alt="Add 'Thinking Outside the Cube' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.thejacklawson.com/index.php/2009/04/thinking-outside-the-cube/" title="Add 'Thinking Outside the Cube' to Technorati"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Thinking Outside the Cube' to Technorati" alt="Add 'Thinking Outside the Cube' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://www.thejacklawson.com/index.php/2009/04/thinking-outside-the-cube/&amp;h=Thinking+Outside+the+Cube" title="Add 'Thinking Outside the Cube' to Newsvine"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'Thinking Outside the Cube' to Newsvine" alt="Add 'Thinking Outside the Cube' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://www.thejacklawson.com/index.php/2009/04/thinking-outside-the-cube/&amp;title=Thinking+Outside+the+Cube" title="Add 'Thinking Outside the Cube' to Stumble Upon"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'Thinking Outside the Cube' to Stumble Upon" alt="Add 'Thinking Outside the Cube' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.thejacklawson.com/index.php/2009/04/thinking-outside-the-cube/&amp;title=Thinking+Outside+the+Cube" title="Add 'Thinking Outside the Cube' to Google Bookmarks"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'Thinking Outside the Cube' to Google Bookmarks" alt="Add 'Thinking Outside the Cube' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="https://favorites.live.com/quickadd.aspx?url=http://www.thejacklawson.com/index.php/2009/04/thinking-outside-the-cube/&amp;title=Thinking+Outside+the+Cube" title="Add 'Thinking Outside the Cube' to Live-MSN"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/live.png" title="Add 'Thinking Outside the Cube' to Live-MSN" alt="Add 'Thinking Outside the Cube' to Live-MSN" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Thinking+Outside+the+Cube&amp;url=http://www.thejacklawson.com/index.php/2009/04/thinking-outside-the-cube/" title="Add 'Thinking Outside the Cube' to SlashDot"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'Thinking Outside the Cube' to SlashDot" alt="Add 'Thinking Outside the Cube' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://www.thejacklawson.com/index.php/2009/04/thinking-outside-the-cube/&amp;t=Thinking+Outside+the+Cube" title="Add 'Thinking Outside the Cube' to FaceBook"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'Thinking Outside the Cube' to FaceBook" alt="Add 'Thinking Outside the Cube' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://www.thejacklawson.com/index.php/2009/04/thinking-outside-the-cube/" title="Add 'Thinking Outside the Cube' to Twitter"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'Thinking Outside the Cube' to Twitter" alt="Add 'Thinking Outside the Cube' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/reader/link?url=http://www.thejacklawson.com/index.php/2009/04/thinking-outside-the-cube/&amp;title=Thinking+Outside+the+Cube&amp;srcURL=http://www.thejacklawson.com/index.php/2009/04/thinking-outside-the-cube/" title="Add 'Thinking Outside the Cube' to Google Buzz"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/googlebuzz.png" title="Add 'Thinking Outside the Cube' to Google Buzz" alt="Add 'Thinking Outside the Cube' to Google Buzz" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://www.thejacklawson.com/index.php/2009/04/thinking-outside-the-cube/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>User Controls Rock: Legos and Fake Ajax Master Pages</title>
		<link>http://www.thejacklawson.com/index.php/2008/09/user-controls-rock-legos-and-fake-ajax-master-pages/</link>
		<comments>http://www.thejacklawson.com/index.php/2008/09/user-controls-rock-legos-and-fake-ajax-master-pages/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 01:13:35 +0000</pubDate>
		<dc:creator>Jack</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[IIS and Windows Technologies]]></category>
		<category><![CDATA[ajax control toolkit]]></category>
		<category><![CDATA[Ajax Master Pages]]></category>
		<category><![CDATA[asp.net 3.5]]></category>
		<category><![CDATA[user controls]]></category>

		<guid isPermaLink="false">http://www.thejacklawson.com/?p=25</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>Let me start with a simple statement: user controls are absolutely fantastic.</p>
<p>If you haven&#8217;t delved into the realm of the .ascx, then let me briefly explain the two big benefits that have been relevant to me recently:</p>
<ul>
<li>Totally reusable code</li>
<li>Emulate master pages; only with this, you can use the Ajax control toolkit to do it</li>
</ul>
<p>On the first point, the reusable code point, this is the biggest. It&#8217;s the entire reason behind user controls. It lets you chunk out code that you use all over, and use it in several places; it&#8217;s a fundamental of object oriented development. Let&#8217;s do an example.</p>
<p>Say you have a piece of code that goes to the database and retrieves data on a member. That data is then put into a styled gridview, for the administration side of a website. But, you also have an area in a members section where a user can edit their own information (more like a formview); and, on the normal web display, casual users can browse through usernames and user roles in a paged gridview.</p>
<p>Don&#8217;t write the same code thrice! (or even twice!) Rather, make a user control to do all the work for you, and place it in each of your pages. This is how I&#8217;d do it:</p>
<p><i>For the sake of this article, I&#8217;m assuming you&#8217;re using a list of &#8220;Member&#8221; objects. Use whatever.</i></p>
<p>-Make a public class-level property in your control called &#8220;ReadOnly&#8221;, a bool.<br />-Make a public class-level method in your control called &#8220;Intialize&#8221;, which takes an IList of Member objects<br />-If the IList has one object, add a FormView to your control, and databind it. Otherwise, go the Gridview route (doing this all from the codebehind would keep your code cleaner and keep you from having an extra control rendered, although you could do this in the .ascx if you really wanted to; just set one to visible=&#8221;false&#8221; to the one you&#8217;re not using)<br />-Create all of the appropriate methods for your control for delete, update, insert, etc. and set up your formview or gridview accordingly (of course, only update for our member&#8217;s area FormView!)<br />-If ReadOnly is true, don&#8217;t add edit, insert, or delete buttons to your formview/gridview. (Easy enough; could set visible=&#8221;false&#8221; on the fields, or just not add them at all)</p>
<p>And, then, back on your three main pages, register and use your control.&nbsp; Set the ReadOnly property (if it&#8217;s a bool, you should even get IntelliSense for true/false), and then on Page_Load, call Intialize on the control, passing through the IList of Members that you pulled down.</p>
<p>The reason we&#8217;re calling the data on the page, rather than the control, is so that the control can remain &#8220;dumb&#8221; and doesn&#8217;t need to know whether it&#8217;s a member, admin, or web display control. The less logic in the control, the better; just spit out the lowest common denominator.</p>
<p>Ok. Now that we&#8217;ve hit the reusable control side, let&#8217;s hit the fake-an-ajax-master-page part.</p>
<p>As you may or may not know, even if you wrap the ContentTemplate in a MasterPage, it still reloads every page change. This is because the MasterPage gets loaded <i>after</i> the rest of the page, and is treated like a control. So, if you change pages.. it loads the page, and then says afterwards, &#8216;oh, yeah, that was Ajax. Oh well.&#8217;</p>
<p>The cool thing you can do, is make one default page, and inside of that have user controls in place of your pages, something like this:</p>
<p>-Make your default.aspx page<br />-Create user controls; however, rather than logic in Page_Load of the control, put it all in a public class-level method you call Initialize.You&#8217;ll see why soon.<br />-Put all of your controls into your default.aspx page, with visible=&#8221;false&#8221;.<br />-On the onclick of your navigation buttons, run the Initialize on the control, and set it&#8217;s <i>visible</i> property to <i>true</i>, and all the others to <i>false</i>.. I might alternately suggest using Command and a single method rather than Onclick and seperate methods for each button, so you can pass through a CommandName, which you can then use in a switch statement and know what button you hit.</p>
<p>Ok. Now that we have our fancy Ajaxy page, you may be wondering: why not just visiblity? Why this Initialize thing?</p>
<p>This is because ASP.NET will fully render the controls, visible or not. Which means that if you have 10 pages, it will load those 10 pages and display one; which is a big performance hit on the server, especially if you&#8217;re loading database data into each of those 10. Having to explicitly call Initialize avoids this. It also allows you to pass through a common parameter to each of the controls (say, a title string that displays at the top of each control) .</p>
<p>Controls can certainly do much more than this; but these are the biggies for me. Have any .ascx uses of your own?</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em> </em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.thejacklawson.com/index.php/2008/09/user-controls-rock-legos-and-fake-ajax-master-pages/&amp;title=User+Controls+Rock%3A+Legos+and+Fake+Ajax+Master+Pages" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Del.icio.us"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Del.icio.us" alt="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.thejacklawson.com/index.php/2008/09/user-controls-rock-legos-and-fake-ajax-master-pages/&amp;title=User+Controls+Rock%3A+Legos+and+Fake+Ajax+Master+Pages" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to digg"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to digg" alt="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.thejacklawson.com/index.php/2008/09/user-controls-rock-legos-and-fake-ajax-master-pages/&amp;title=User+Controls+Rock%3A+Legos+and+Fake+Ajax+Master+Pages" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to reddit"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to reddit" alt="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.thejacklawson.com/index.php/2008/09/user-controls-rock-legos-and-fake-ajax-master-pages/" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Technorati"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Technorati" alt="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://www.thejacklawson.com/index.php/2008/09/user-controls-rock-legos-and-fake-ajax-master-pages/&amp;h=User+Controls+Rock%3A+Legos+and+Fake+Ajax+Master+Pages" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Newsvine"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Newsvine" alt="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://www.thejacklawson.com/index.php/2008/09/user-controls-rock-legos-and-fake-ajax-master-pages/&amp;title=User+Controls+Rock%3A+Legos+and+Fake+Ajax+Master+Pages" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Stumble Upon"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Stumble Upon" alt="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.thejacklawson.com/index.php/2008/09/user-controls-rock-legos-and-fake-ajax-master-pages/&amp;title=User+Controls+Rock%3A+Legos+and+Fake+Ajax+Master+Pages" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Google Bookmarks"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Google Bookmarks" alt="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="https://favorites.live.com/quickadd.aspx?url=http://www.thejacklawson.com/index.php/2008/09/user-controls-rock-legos-and-fake-ajax-master-pages/&amp;title=User+Controls+Rock%3A+Legos+and+Fake+Ajax+Master+Pages" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Live-MSN"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/live.png" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Live-MSN" alt="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Live-MSN" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=User+Controls+Rock%3A+Legos+and+Fake+Ajax+Master+Pages&amp;url=http://www.thejacklawson.com/index.php/2008/09/user-controls-rock-legos-and-fake-ajax-master-pages/" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to SlashDot"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to SlashDot" alt="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://www.thejacklawson.com/index.php/2008/09/user-controls-rock-legos-and-fake-ajax-master-pages/&amp;t=User+Controls+Rock%3A+Legos+and+Fake+Ajax+Master+Pages" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to FaceBook"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to FaceBook" alt="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://www.thejacklawson.com/index.php/2008/09/user-controls-rock-legos-and-fake-ajax-master-pages/" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Twitter"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Twitter" alt="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/reader/link?url=http://www.thejacklawson.com/index.php/2008/09/user-controls-rock-legos-and-fake-ajax-master-pages/&amp;title=User+Controls+Rock%3A+Legos+and+Fake+Ajax+Master+Pages&amp;srcURL=http://www.thejacklawson.com/index.php/2008/09/user-controls-rock-legos-and-fake-ajax-master-pages/" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Google Buzz"><img src="http://www.thejacklawson.com/wp-content/plugins/social-bookmarking-reloaded/googlebuzz.png" title="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Google Buzz" alt="Add 'User Controls Rock: Legos and Fake Ajax Master Pages' to Google Buzz" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://www.thejacklawson.com/index.php/2008/09/user-controls-rock-legos-and-fake-ajax-master-pages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
