<?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>Stephen Lacy</title>
	<atom:link href="http://www.lacy.ie/feed" rel="self" type="application/rss+xml" />
	<link>http://www.lacy.ie</link>
	<description>Impressions as an ASP.Net Developer</description>
	<lastBuildDate>Thu, 25 Feb 2010 16:56:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How to stop a javascript event from bubbling</title>
		<link>http://www.lacy.ie/how-to-stop-a-javascript-event-from-bubbling</link>
		<comments>http://www.lacy.ie/how-to-stop-a-javascript-event-from-bubbling#comments</comments>
		<pubDate>Thu, 25 Feb 2010 14:41:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.lacy.ie/?p=266</guid>
		<description><![CDATA[Events on any html document bubble from child up to parent calling the handlers on each element until it reaches the Body.
In order to stop this from happening you can cancel the bubble by setting the cancelBubble property on the event to true
&#60;INPUT TYPE=&#8221;TEXT&#8221; NAME=&#8221;TEXT1&#8243; onclick=&#8221;alert(&#8216;TEXT1&#8242;);event.cancelBubble=true;&#8221;&#62;Name
Taken from http://webdevelopersjournal.com/articles/jsevents2/jsevents2.html


Related posts:Can&#039;t Register Javascript for Invisible Control I [...]


Related posts:<ol><li><a href='http://www.lacy.ie/cant-register-javascript-for-invisible-control' rel='bookmark' title='Permanent Link: Can&#039;t Register Javascript for Invisible Control'>Can&#039;t Register Javascript for Invisible Control</a> <small>I was writing an ASP.Net Dialog Control and I overwrote...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Events on any html document bubble from child up to parent calling the handlers on each element until it reaches the Body.</p>
<p>In order to stop this from happening you can cancel the bubble by setting the cancelBubble property on the event to true</p>
<blockquote><p>&lt;INPUT TYPE=&#8221;TEXT&#8221; NAME=&#8221;TEXT1&#8243; onclick=&#8221;alert(&#8216;TEXT1&#8242;);event.cancelBubble=true;&#8221;&gt;Name</p></blockquote>
<p>Taken from <a href="http://webdevelopersjournal.com/articles/jsevents2/jsevents2.html">http://webdevelopersjournal.com/articles/jsevents2/jsevents2.html</a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.lacy.ie%2Fhow-to-stop-a-javascript-event-from-bubbling&amp;linkname=How%20to%20stop%20a%20javascript%20event%20from%20bubbling"><img src="http://www.lacy.ie/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>

<p>Related posts:<ol><li><a href='http://www.lacy.ie/cant-register-javascript-for-invisible-control' rel='bookmark' title='Permanent Link: Can&#039;t Register Javascript for Invisible Control'>Can&#039;t Register Javascript for Invisible Control</a> <small>I was writing an ASP.Net Dialog Control and I overwrote...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.lacy.ie/how-to-stop-a-javascript-event-from-bubbling/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reducing the size of your ViewState in asp.net web forms</title>
		<link>http://www.lacy.ie/reducing-the-size-of-your-viewstate-in-asp-net-web-forms</link>
		<comments>http://www.lacy.ie/reducing-the-size-of-your-viewstate-in-asp-net-web-forms#comments</comments>
		<pubDate>Mon, 22 Feb 2010 16:13:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[ASP.Net Webforms]]></category>

		<guid isPermaLink="false">http://www.lacy.ie/?p=264</guid>
		<description><![CDATA[Very useful article on how to reduce your ViewState size. Also very simple to implement.
http://szokelizer.blogsome.com/2006/11/09/how-to-put-controlstate-into-viewstate-and-how-to-put-viewstate-into-session/


Related posts:Official JqGrid ASP.Net Web Forms Control Alpha Demo First look at the official JqGrid ASP.Net Web Forms control...
jQuery Grid Plugin (JqGrid) with ASP.Net Web Forms Get JqGrid here: http://www.trirand.com/blog/ So far I&#8217;ve seen two implementations...
Handling Relative Paths and debug mode [...]


Related posts:<ol><li><a href='http://www.lacy.ie/official-jqgrid-asp-net-web-forms-control-alpha-demo' rel='bookmark' title='Permanent Link: Official JqGrid ASP.Net Web Forms Control Alpha Demo'>Official JqGrid ASP.Net Web Forms Control Alpha Demo</a> <small>First look at the official JqGrid ASP.Net Web Forms control...</small></li>
<li><a href='http://www.lacy.ie/jquery-grid-plugin-jqgrid-with-asp-net-web-forms' rel='bookmark' title='Permanent Link: jQuery Grid Plugin (JqGrid) with ASP.Net Web Forms'>jQuery Grid Plugin (JqGrid) with ASP.Net Web Forms</a> <small>Get JqGrid here: http://www.trirand.com/blog/ So far I&#8217;ve seen two implementations...</small></li>
<li><a href='http://www.lacy.ie/handling-relative-paths-and-debug-mode-with-jquery-in-asp-net-web-forms' rel='bookmark' title='Permanent Link: Handling Relative Paths and debug mode with Jquery in ASP.Net Web Forms'>Handling Relative Paths and debug mode with Jquery in ASP.Net Web Forms</a> <small>I had a problem where I wanted to use the...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Very useful article on how to reduce your ViewState size. Also very simple to implement.</p>
<p><a href="http://szokelizer.blogsome.com/2006/11/09/how-to-put-controlstate-into-viewstate-and-how-to-put-viewstate-into-session/">http://szokelizer.blogsome.com/2006/11/09/how-to-put-controlstate-into-viewstate-and-how-to-put-viewstate-into-session/</a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.lacy.ie%2Freducing-the-size-of-your-viewstate-in-asp-net-web-forms&amp;linkname=Reducing%20the%20size%20of%20your%20ViewState%20in%20asp.net%20web%20forms"><img src="http://www.lacy.ie/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>

<p>Related posts:<ol><li><a href='http://www.lacy.ie/official-jqgrid-asp-net-web-forms-control-alpha-demo' rel='bookmark' title='Permanent Link: Official JqGrid ASP.Net Web Forms Control Alpha Demo'>Official JqGrid ASP.Net Web Forms Control Alpha Demo</a> <small>First look at the official JqGrid ASP.Net Web Forms control...</small></li>
<li><a href='http://www.lacy.ie/jquery-grid-plugin-jqgrid-with-asp-net-web-forms' rel='bookmark' title='Permanent Link: jQuery Grid Plugin (JqGrid) with ASP.Net Web Forms'>jQuery Grid Plugin (JqGrid) with ASP.Net Web Forms</a> <small>Get JqGrid here: http://www.trirand.com/blog/ So far I&#8217;ve seen two implementations...</small></li>
<li><a href='http://www.lacy.ie/handling-relative-paths-and-debug-mode-with-jquery-in-asp-net-web-forms' rel='bookmark' title='Permanent Link: Handling Relative Paths and debug mode with Jquery in ASP.Net Web Forms'>Handling Relative Paths and debug mode with Jquery in ASP.Net Web Forms</a> <small>I had a problem where I wanted to use the...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.lacy.ie/reducing-the-size-of-your-viewstate-in-asp-net-web-forms/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using RegularExpressionValidator to validate the length of a String</title>
		<link>http://www.lacy.ie/using-regularexpressionvalidator-to-validate-the-length-of-a-string</link>
		<comments>http://www.lacy.ie/using-regularexpressionvalidator-to-validate-the-length-of-a-string#comments</comments>
		<pubDate>Mon, 15 Feb 2010 10:48:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ASP.Net Webforms]]></category>

		<guid isPermaLink="false">http://www.lacy.ie/?p=255</guid>
		<description><![CDATA[This post I&#8217;ll keep short and sweet.
If you are using a Regular Expression Validator you will have the problem that if you use a line break it won&#8217;t validate when you write something like ^.{0,n}$ even though the dot is supposed to match anything
 Apparently the dot isn&#8217;t supposed to match new line characters
I took [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>This post I&#8217;ll keep short and sweet.</p>
<p>If you are using a Regular Expression Validator you will have the problem that if you use a line break it won&#8217;t validate when you write something like ^.{0,n}$ <del>even though the dot is supposed to match anything</del></p>
<p><ins> Apparently the dot isn&#8217;t supposed to match new line characters</ins></p>
<p>I took the following from <a href="http://weblogs.asp.net/cosgood/archive/2003/05/06/6604.aspx">http://weblogs.asp.net/cosgood/archive/2003/05/06/6604.aspx</a> although the wrong bracket is used to close off the cardinality</p>
<blockquote><p>^(.|\s){0,n}$</p></blockquote>
<p>That&#8217;s it, just remember to escape the backslash depending on where you are setting the expression.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.lacy.ie%2Fusing-regularexpressionvalidator-to-validate-the-length-of-a-string&amp;linkname=Using%20RegularExpressionValidator%20to%20validate%20the%20length%20of%20a%20String"><img src="http://www.lacy.ie/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.lacy.ie/using-regularexpressionvalidator-to-validate-the-length-of-a-string/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Redirecting using strong types in an asp.net web application project</title>
		<link>http://www.lacy.ie/redirecting-using-strong-types-in-an-asp-net-web-application-project</link>
		<comments>http://www.lacy.ie/redirecting-using-strong-types-in-an-asp-net-web-application-project#comments</comments>
		<pubDate>Wed, 13 Jan 2010 18:45:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Resharper]]></category>
		<category><![CDATA[Web Application Projects]]></category>
		<category><![CDATA[Web Forms]]></category>

		<guid isPermaLink="false">http://www.lacy.ie/?p=249</guid>
		<description><![CDATA[It recently began to annoy me that every time I want to redirect to a page I have to use a string. Not a big deal I know but when you have broken links it can reflect badly on you as a developer, so I began to look for some solution that would allow for [...]


Related posts:<ol><li><a href='http://www.lacy.ie/how-to-mock-the-httpcontext-in-asp-net' rel='bookmark' title='Permanent Link: How to Mock the HttpContext in asp.net'>How to Mock the HttpContext in asp.net</a> <small>I find mocking the http context rather difficult, you can&#8217;t...</small></li>
<li><a href='http://www.lacy.ie/resolveurl-in-your-business-logic' rel='bookmark' title='Permanent Link: ResolveUrl in your Business Logic'>ResolveUrl in your Business Logic</a> <small>I&#8217;ve recently started moving a large amount of code on...</small></li>
<li><a href='http://www.lacy.ie/jquery-grid-plugin-jqgrid-with-asp-net-web-forms' rel='bookmark' title='Permanent Link: jQuery Grid Plugin (JqGrid) with ASP.Net Web Forms'>jQuery Grid Plugin (JqGrid) with ASP.Net Web Forms</a> <small>Get JqGrid here: http://www.trirand.com/blog/ So far I&#8217;ve seen two implementations...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>It recently began to annoy me that every time I want to redirect to a page I have to use a string. Not a big deal I know but when you have broken links it can reflect badly on you as a developer, so I began to look for some solution that would allow for the following.</p>
<ul>
<li>Refactoring: I need to be able to move a page around without having to find every string reference to it</li>
<li>No Reflection: It&#8217;s slow I don&#8217;t want to have to use it when redirects happen often.</li>
<li>Parameters: I want to be able to pass parameters to a function and make that become part of the get request, I want the logic for that to exist on the page being redirected to as that is where the parameters are being used, this will also help with refactoring, the plain ole redirect logic however would just exist on a base class, don&#8217;t want to have to rewrite for every page.</li>
</ul>
<p>I knew the ideal situation would be if I could somehow use the fact that web application projects use the folder hierarchy for its namespace convention and end up being able to redirect to the page ~/Users/UserDetails.aspx?UserId=14 with the following command Users.UserDetails.Redirect(14);</p>
<p>Here is how I did it:<span id="more-249"></span></p>
<p>I have a web application project, let&#8217;s call it MyProject.Web</p>
<p>I have two pages called UserDetails.aspx and UserList.aspx in the folder Users.</p>
<p>They both inherit from the following base class:</p>
<div id="_mcePaste">
<blockquote>
<div id="_mcePaste">namespace MyProject.UI</div>
<div id="_mcePaste">{</div>
<div id="_mcePaste">/// &lt;summary&gt;</div>
<div id="_mcePaste">/// Summary description for BasePage</div>
<div id="_mcePaste">/// &lt;/summary&gt;</div>
<div id="_mcePaste">public abstract class BasePage&lt;T&gt;:Page where T : Page</div>
<div id="_mcePaste">{</div>
<div id="_mcePaste">public static String GetUrl()</div>
<div id="_mcePaste">{</div>
<div id="_mcePaste">return &#8220;~/&#8221; + typeof(T).ToString().Replace(&#8220;MyProject.Web.&#8221;, &#8220;&#8221;).Replace(&#8216;.&#8217;, &#8216;/&#8217;) + &#8220;.aspx&#8221;;</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">public static String GetUrl(String parameters)</div>
<div id="_mcePaste">{</div>
<div id="_mcePaste">return GetUrl() + &#8220;?&#8221; + parameters;</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">public static void Redirect()</div>
<div id="_mcePaste">{</div>
<div id="_mcePaste">HttpContext.Current.Response.Redirect(GetUrl());</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">public static void Redirect(String parameters)</div>
<div id="_mcePaste">{</div>
<div id="_mcePaste">HttpContext.Current.Response.Redirect(GetUrl(parameters));</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">public static void Redirect(Boolean endResponse)</div>
<div id="_mcePaste">{</div>
<div id="_mcePaste">HttpContext.Current.Response.Redirect(GetUrl(),endResponse);</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">public static void Redirect(String parameters,Boolean endResponse)</div>
<div id="_mcePaste">{</div>
<div id="_mcePaste">HttpContext.Current.Response.Redirect(GetUrl(parameters), endResponse);</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">}</div>
</blockquote>
</div>
<p>They follow this pattern:</p>
<blockquote><p>namespace MyProject.Web.Users</p>
<p>{</p>
<p><span style="white-space: pre;"> </span>public partial class UserDetails: BasePage&lt;UserDetails&gt;</p>
<p><span style="white-space: pre;"> </span>{</p>
<p><span style="white-space: pre;"> </span>public static void Redirect(int userId)</p>
<p><span style="white-space: pre;"> </span>{</p>
<p><span style="white-space: pre;"> </span>Redirect(&#8220;UserId=&#8221; + userId.ToString());</p>
<p><span style="white-space: pre;"> </span>}</p>
<p><span style="white-space: pre;"> </span>}</p>
<p>}</p></blockquote>
<p>Now because UserDetails and UserList are in the same folder I can simply call UserDetails.Redirect(selectedUserId) on the UserList and UserList.Redirect() on the UserDetails.<br />
The only real disadvantage is that it could confuse people who discover a Redirect method on their current page that they can&#8217;t use to make it to another page.<br />
However it should be abundantly clear to everyone what you are doing when they see it already written.<br />
Also every time you move a class, remove or add a parameter, it will break on compile time not at run time.</p>
<p>Comments and feedback welcome.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.lacy.ie%2Fredirecting-using-strong-types-in-an-asp-net-web-application-project&amp;linkname=Redirecting%20using%20strong%20types%20in%20an%20asp.net%20web%20application%20project"><img src="http://www.lacy.ie/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>

<p>Related posts:<ol><li><a href='http://www.lacy.ie/how-to-mock-the-httpcontext-in-asp-net' rel='bookmark' title='Permanent Link: How to Mock the HttpContext in asp.net'>How to Mock the HttpContext in asp.net</a> <small>I find mocking the http context rather difficult, you can&#8217;t...</small></li>
<li><a href='http://www.lacy.ie/resolveurl-in-your-business-logic' rel='bookmark' title='Permanent Link: ResolveUrl in your Business Logic'>ResolveUrl in your Business Logic</a> <small>I&#8217;ve recently started moving a large amount of code on...</small></li>
<li><a href='http://www.lacy.ie/jquery-grid-plugin-jqgrid-with-asp-net-web-forms' rel='bookmark' title='Permanent Link: jQuery Grid Plugin (JqGrid) with ASP.Net Web Forms'>jQuery Grid Plugin (JqGrid) with ASP.Net Web Forms</a> <small>Get JqGrid here: http://www.trirand.com/blog/ So far I&#8217;ve seen two implementations...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.lacy.ie/redirecting-using-strong-types-in-an-asp-net-web-application-project/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Google Wave is a Big Deal</title>
		<link>http://www.lacy.ie/why-google-wave-is-a-big-deal</link>
		<comments>http://www.lacy.ie/why-google-wave-is-a-big-deal#comments</comments>
		<pubDate>Sun, 29 Nov 2009 14:41:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Service Providers]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Wave]]></category>
		<category><![CDATA[Internet Communication]]></category>

		<guid isPermaLink="false">http://www.lacy.ie/?p=244</guid>
		<description><![CDATA[I&#8217;ve been using the alpha version of google wave for about a month and a half, and I have to say that I&#8217;m a fan. This post is mostly about saying why I&#8217;m a fan and also why I think that google wave is going to change the way we communicate through text.
The reason I&#8217;m [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using the alpha version of google wave for about a month and a half, and I have to say that I&#8217;m a fan. This post is mostly about saying why I&#8217;m a fan and also why I think that google wave is going to change the way we communicate through text.</p>
<p>The reason I&#8217;m writing this post is because there are a lot of people who have heard bits about it or just haven&#8217;t spent the time using it and really can&#8217;t see  why this is such a big deal. Hopefully this post will go some way towards convincing you of it&#8217;s merit, but feel free to add your own insights in as comments.</p>
<p>Google Wave has been described by Google as what email would look like had it been designed in the 21st century.  Wave is standing on the shoulders of giants, it reflects the evolution of internet communication by bringing together mature concepts as the principals or requirements of their system and uses new technology to hold it all together. It&#8217;s worth keeping this in mind when you think about the future of Google Wave. It may be new, but there is so much to this that we&#8217;ve seen before. My first reaction on using Google Wave was, &#8220;Is that it?&#8221;.  The real shocker was when after a short time using Google Wave I was coming back to my trusty MSN messenger and finding it unpleasant to use.</p>
<p><span id="more-244"></span></p>
<p>In order to explain exactly what Google Wave is, I want you to focus on what email is today. These are the differences:</p>
<ul>
<li><strong>Forums and Threading</strong><br />
If you have multiple people involved in an email conversation or you are just talking to one person about multiple things it starts to get ugly fairly quickly, email is not designed to handle this. The reason is that email is plain text, there is no natural order to it. Any complex communication is going to require the ability to separate out who and what each piece of the communication is in reply to. In a forum it is designed to allow you to reply to a particular part of a post letting everyone know what was the communication you replied to and who wrote the communication in the first place. The majority of forums don&#8217;t use threading, so it&#8217;s quite likely that you have never actually seen it in use even if you&#8217;ve visited forums.<br />
Threading is about when a reply is made to a post where does that post go on the screen. A modern web based forum would place it at the bottom because that is the simplest solution, and back during the time when any 2 browsers were unlikely same html page the same way, back when forums on the web emerged, keeping things simple was essential to get people onto your website. What used to happen before the web took off was that the post would appear under the post it replied to and slightly indented to the right so that you end up with a tree of posts. This makes conversations far more readable. Each communication has context, even if many other communications have taken place since.<br />
Another thing that Wave has taken from Forums is the idea of a topic, a topic in a forum is a posts container. A topic is similar to the first mail in an email conversation. It defines the subject of the conversation and that mail is replied to. The difference between a topic and<br />
So why not just use forums instead? Forums focus on an idea, it&#8217;s a place that people go to discuss with the other people that have decided to do the same. Email and Wave are about communicating with the specific people you have chosen to communicate with.</li>
<li><strong>Instant Messaging</strong><br />
Email takes a while to arrive at it&#8217;s destination, it has to go from your computer to your Internet Service Provider&#8217;s server and from their server to your recipient&#8217;s ISP&#8217;s server and from there to your recipients machine. This process is not designed to be instant, if you want instant communication you should use instant messaging. Unlike email you have to be sure that the person is online at the time, and while most instant messaging clients are able to keep logs the logs are seen as separate to the current conversation. A conversation ends when you close the chat window. Unlike email where the conversation ends only when you stop replying to it, that could be several weeks from when it started. The benefits of both are brought into Google Wave. When both your recipient(s) and yourself are online, messages appear instantly, and when one of you goes offline, you can still continue communicating and they can see what you have sent when they return.</li>
<li><strong>Wiki</strong><br />
You can&#8217;t go change what you&#8217;ve written in an email. Once it has been sent that&#8217;s it. A wiki is a website that allows the easy creation and editing of any number of interlinked web pages (taken from wikipedia). With a wiki you are able to create a page, edit that page, have someone else edit that page and have a history of all the edits that have been made. That is what Wave allows you to do, the history function isn&#8217;t fast enough or detailed enough at the time of this writing but you can edit any communication that you have made as can anyone else involved in that conversation. That means that you can correct any information or update it as information changes. The communication is marked as unread as soon as it is edited, it displays above each communication which users have contributed.</li>
<li><strong>Blogging</strong><br />
If you read a lot of blogs you need a feed reader, it lists all the posts you haven&#8217;t yet read and the good ones allow you to read the post without visiting anyone&#8217;s website. Unfortunately not everyone is aware of the feed reader and Blogs tend to have a smaller number of regular readers as a result. The email alternative to this is a newsletter, a regular email is sent to each person on the subscription list and this allows people to passively check for updates. The problem with this approach that I&#8217;ve discovered from an end user perspective is that everything that is developed around email including the email receiving software itself isn&#8217;t designed for this type of communication. There is no in built way to subscribe and unsubscribe from a newsletter within the email client you have to rely on the sender to provide a method of removing yourself from their mailing list. Google Wave allows the creation of read only waves that you can follow and unfollow as you choose. The difference is small but important. Users have the power over what they subscribe to and any actions associated with the wave apply to any future posts on that wave, you also get a full history of that wave once added so you can see any future communication in context.</li>
</ul>
<p>I didn&#8217;t try to cover everything that Wave can do. I just picked on a few things, try it out for yourself, give it some time and comment your experiences.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.lacy.ie%2Fwhy-google-wave-is-a-big-deal&amp;linkname=Why%20Google%20Wave%20is%20a%20Big%20Deal"><img src="http://www.lacy.ie/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.lacy.ie/why-google-wave-is-a-big-deal/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Custom Control won&#8217;t trigger Update Panel</title>
		<link>http://www.lacy.ie/custom-control-wont-trigger-update-panel</link>
		<comments>http://www.lacy.ie/custom-control-wont-trigger-update-panel#comments</comments>
		<pubDate>Tue, 24 Nov 2009 14:00:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[asp.net ajax.net javascript]]></category>

		<guid isPermaLink="false">http://www.lacy.ie/?p=241</guid>
		<description><![CDATA[I was using the __dopostback  function in asp.net to cause a postback that would trigger an update in an updatepanel where relevant.
If you come across this problem make sure that your custom control implements the INamingContainer as well as the IPostBackEventHandler interfaces
Also make sure that your first argument to the __dopostback function is the unique [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>I was using the __dopostback  function in asp.net to cause a postback that would trigger an update in an updatepanel where relevant.</p>
<p>If you come across this problem make sure that your custom control implements the INamingContainer as well as the IPostBackEventHandler interfaces</p>
<p>Also make sure that your first argument to the __dopostback function is the unique id of your custom control (this.UniqueId)</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.lacy.ie%2Fcustom-control-wont-trigger-update-panel&amp;linkname=Custom%20Control%20won%26%238217%3Bt%20trigger%20Update%20Panel"><img src="http://www.lacy.ie/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.lacy.ie/custom-control-wont-trigger-update-panel/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Mock the HttpContext in asp.net</title>
		<link>http://www.lacy.ie/how-to-mock-the-httpcontext-in-asp-net</link>
		<comments>http://www.lacy.ie/how-to-mock-the-httpcontext-in-asp-net#comments</comments>
		<pubDate>Tue, 13 Oct 2009 10:18:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Testing]]></category>
		<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[httpcontext]]></category>
		<category><![CDATA[mocking]]></category>

		<guid isPermaLink="false">http://www.lacy.ie/?p=232</guid>
		<description><![CDATA[I find mocking the http context rather difficult, you can&#8217;t inherit from it and making a wrapper class is a lot of work. Thankfully someone came up with a solution, unfortunately the link they included with the code is dead and I can&#8217;t seem to remember where I got the code, if anyone finds out [...]


Related posts:<ol><li><a href='http://www.lacy.ie/redirecting-using-strong-types-in-an-asp-net-web-application-project' rel='bookmark' title='Permanent Link: Redirecting using strong types in an asp.net web application project'>Redirecting using strong types in an asp.net web application project</a> <small>It recently began to annoy me that every time I...</small></li>
<li><a href='http://www.lacy.ie/resolveurl-in-your-business-logic' rel='bookmark' title='Permanent Link: ResolveUrl in your Business Logic'>ResolveUrl in your Business Logic</a> <small>I&#8217;ve recently started moving a large amount of code on...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>I find mocking the http context rather difficult, you can&#8217;t inherit from it and making a wrapper class is a lot of work. Thankfully someone came up with a solution, unfortunately the link they included with the code is dead and I can&#8217;t seem to remember where I got the code, if anyone finds out where it comes from please comment and I&#8217;ll add it to the post.</p>
<p><span id="more-232"></span></p>
<pre>using System;
using System.Collections.Specialized;
using System.Globalization;
using System.IO;
using System.Reflection;
using System.Threading;
using System.Web;
using System.Web.Hosting;
using System.Web.SessionState;

public sealed class MockHttpContext
{
    // NOTE: This code is based on the following article:
    // http://righteousindignation.gotdns.org/blog/archive/2004/04/13/149.aspx
    private const string ContextKeyAspSession = "AspSession";
    private const string ThreadDataKeyAppPath = ".appPath";
    private const string ThreadDataKeyAppPathValue = "c:\\inetpub\\wwwroot\\webapp\\";
    private const string ThreadDataKeyAppVPath = ".appVPath";
    private const string ThreadDataKeyAppVPathValue = "/webapp";
    private const string WorkerRequestPage = "default.aspx";

    private HttpContext context = null;

    private MockHttpContext()
        : base()
    {
    }

    public MockHttpContext(bool isSecure)
        : this()
    {
        Thread.GetDomain().SetData(
            MockHttpContext.ThreadDataKeyAppPath, MockHttpContext.ThreadDataKeyAppPathValue);
        Thread.GetDomain().SetData(
            MockHttpContext.ThreadDataKeyAppVPath, MockHttpContext.ThreadDataKeyAppVPathValue);
        SimpleWorkerRequest request = new WorkerRequest(MockHttpContext.WorkerRequestPage,
            string.Empty, new StringWriter(), isSecure);
        this.context = new HttpContext(request);

        HttpSessionStateContainer container = new HttpSessionStateContainer(
            Guid.NewGuid().ToString("N"), new SessionStateItemCollection(), new HttpStaticObjectsCollection(),
            5, true, HttpCookieMode.AutoDetect, SessionStateMode.InProc, false);

        HttpSessionState state = Activator.CreateInstance(
             typeof(HttpSessionState),
             BindingFlags.Public | BindingFlags.NonPublic |
             BindingFlags.Instance | BindingFlags.CreateInstance,
             null,
             new object[] { container }, CultureInfo.CurrentCulture) as HttpSessionState;
        this.context.Items[ContextKeyAspSession] = state;
    }

    public HttpContext Context
    {
        get
        {
            return this.context;
        }
    }

    private class WorkerRequest : SimpleWorkerRequest
    {
        private bool isSecure = false;

        public WorkerRequest(string page, string query, TextWriter output, bool isSecure)
            : base(page, query, output)
        {
            this.isSecure = isSecure;
        }

        public override bool IsSecure()
        {
            return this.isSecure;
        }
    }
}</pre>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.lacy.ie%2Fhow-to-mock-the-httpcontext-in-asp-net&amp;linkname=How%20to%20Mock%20the%20HttpContext%20in%20asp.net"><img src="http://www.lacy.ie/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>

<p>Related posts:<ol><li><a href='http://www.lacy.ie/redirecting-using-strong-types-in-an-asp-net-web-application-project' rel='bookmark' title='Permanent Link: Redirecting using strong types in an asp.net web application project'>Redirecting using strong types in an asp.net web application project</a> <small>It recently began to annoy me that every time I...</small></li>
<li><a href='http://www.lacy.ie/resolveurl-in-your-business-logic' rel='bookmark' title='Permanent Link: ResolveUrl in your Business Logic'>ResolveUrl in your Business Logic</a> <small>I&#8217;ve recently started moving a large amount of code on...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.lacy.ie/how-to-mock-the-httpcontext-in-asp-net/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JqGrid.Net Public Beta</title>
		<link>http://www.lacy.ie/jqgrid-net-public-beta</link>
		<comments>http://www.lacy.ie/jqgrid-net-public-beta#comments</comments>
		<pubDate>Wed, 16 Sep 2009 14:04:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[ASP.Net Webforms]]></category>
		<category><![CDATA[JqGrid]]></category>
		<category><![CDATA[JqGrid.Net]]></category>
		<category><![CDATA[Jquery UI]]></category>

		<guid isPermaLink="false">http://www.lacy.ie/?p=228</guid>
		<description><![CDATA[Just started using the ASP.Net Web Forms wrapper for JqGrid, worth taking  a look at
http://trirand.net/default.aspx


Related posts:Official JqGrid ASP.Net Web Forms Control Alpha Demo First look at the official JqGrid ASP.Net Web Forms control...
jQuery Grid Plugin (JqGrid) with ASP.Net Web Forms Get JqGrid here: http://www.trirand.com/blog/ So far I&#8217;ve seen two implementations...

Related posts brought to you by [...]


Related posts:<ol><li><a href='http://www.lacy.ie/official-jqgrid-asp-net-web-forms-control-alpha-demo' rel='bookmark' title='Permanent Link: Official JqGrid ASP.Net Web Forms Control Alpha Demo'>Official JqGrid ASP.Net Web Forms Control Alpha Demo</a> <small>First look at the official JqGrid ASP.Net Web Forms control...</small></li>
<li><a href='http://www.lacy.ie/jquery-grid-plugin-jqgrid-with-asp-net-web-forms' rel='bookmark' title='Permanent Link: jQuery Grid Plugin (JqGrid) with ASP.Net Web Forms'>jQuery Grid Plugin (JqGrid) with ASP.Net Web Forms</a> <small>Get JqGrid here: http://www.trirand.com/blog/ So far I&#8217;ve seen two implementations...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Just started using the ASP.Net Web Forms wrapper for JqGrid, worth taking  a look at</p>
<p><a href="http://trirand.net/default.aspx">http://trirand.net/default.aspx</a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.lacy.ie%2Fjqgrid-net-public-beta&amp;linkname=JqGrid.Net%20Public%20Beta"><img src="http://www.lacy.ie/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>

<p>Related posts:<ol><li><a href='http://www.lacy.ie/official-jqgrid-asp-net-web-forms-control-alpha-demo' rel='bookmark' title='Permanent Link: Official JqGrid ASP.Net Web Forms Control Alpha Demo'>Official JqGrid ASP.Net Web Forms Control Alpha Demo</a> <small>First look at the official JqGrid ASP.Net Web Forms control...</small></li>
<li><a href='http://www.lacy.ie/jquery-grid-plugin-jqgrid-with-asp-net-web-forms' rel='bookmark' title='Permanent Link: jQuery Grid Plugin (JqGrid) with ASP.Net Web Forms'>jQuery Grid Plugin (JqGrid) with ASP.Net Web Forms</a> <small>Get JqGrid here: http://www.trirand.com/blog/ So far I&#8217;ve seen two implementations...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.lacy.ie/jqgrid-net-public-beta/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Official JqGrid ASP.Net Web Forms Control Alpha Demo</title>
		<link>http://www.lacy.ie/official-jqgrid-asp-net-web-forms-control-alpha-demo</link>
		<comments>http://www.lacy.ie/official-jqgrid-asp-net-web-forms-control-alpha-demo#comments</comments>
		<pubDate>Thu, 10 Sep 2009 16:25:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[ASP.Net Webforms]]></category>
		<category><![CDATA[JqGrid]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Jquery UI]]></category>

		<guid isPermaLink="false">http://lacy.ie/?p=226</guid>
		<description><![CDATA[First look at the official JqGrid ASP.Net Web Forms control here http://www.trirand.net/jqgrid.aspx
Includes support for Linq and object data sources.


Related posts:jQuery Grid Plugin (JqGrid) with ASP.Net Web Forms Get JqGrid here: http://www.trirand.com/blog/ So far I&#8217;ve seen two implementations...
JqGrid.Net Public Beta Just started using the ASP.Net Web Forms wrapper for JqGrid,...
Handling Relative Paths and debug mode with [...]


Related posts:<ol><li><a href='http://www.lacy.ie/jquery-grid-plugin-jqgrid-with-asp-net-web-forms' rel='bookmark' title='Permanent Link: jQuery Grid Plugin (JqGrid) with ASP.Net Web Forms'>jQuery Grid Plugin (JqGrid) with ASP.Net Web Forms</a> <small>Get JqGrid here: http://www.trirand.com/blog/ So far I&#8217;ve seen two implementations...</small></li>
<li><a href='http://www.lacy.ie/jqgrid-net-public-beta' rel='bookmark' title='Permanent Link: JqGrid.Net Public Beta'>JqGrid.Net Public Beta</a> <small>Just started using the ASP.Net Web Forms wrapper for JqGrid,...</small></li>
<li><a href='http://www.lacy.ie/handling-relative-paths-and-debug-mode-with-jquery-in-asp-net-web-forms' rel='bookmark' title='Permanent Link: Handling Relative Paths and debug mode with Jquery in ASP.Net Web Forms'>Handling Relative Paths and debug mode with Jquery in ASP.Net Web Forms</a> <small>I had a problem where I wanted to use the...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>First look at the official JqGrid ASP.Net Web Forms control here <a style="text-decoration: none;" href="http://www.trirand.net/jqgrid.aspx">http://www.trirand.net/jqgrid.aspx</a></p>
<p>Includes support for Linq and object data sources.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.lacy.ie%2Fofficial-jqgrid-asp-net-web-forms-control-alpha-demo&amp;linkname=Official%20JqGrid%20ASP.Net%20Web%20Forms%20Control%20Alpha%20Demo"><img src="http://www.lacy.ie/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>

<p>Related posts:<ol><li><a href='http://www.lacy.ie/jquery-grid-plugin-jqgrid-with-asp-net-web-forms' rel='bookmark' title='Permanent Link: jQuery Grid Plugin (JqGrid) with ASP.Net Web Forms'>jQuery Grid Plugin (JqGrid) with ASP.Net Web Forms</a> <small>Get JqGrid here: http://www.trirand.com/blog/ So far I&#8217;ve seen two implementations...</small></li>
<li><a href='http://www.lacy.ie/jqgrid-net-public-beta' rel='bookmark' title='Permanent Link: JqGrid.Net Public Beta'>JqGrid.Net Public Beta</a> <small>Just started using the ASP.Net Web Forms wrapper for JqGrid,...</small></li>
<li><a href='http://www.lacy.ie/handling-relative-paths-and-debug-mode-with-jquery-in-asp-net-web-forms' rel='bookmark' title='Permanent Link: Handling Relative Paths and debug mode with Jquery in ASP.Net Web Forms'>Handling Relative Paths and debug mode with Jquery in ASP.Net Web Forms</a> <small>I had a problem where I wanted to use the...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.lacy.ie/official-jqgrid-asp-net-web-forms-control-alpha-demo/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Improve your testing</title>
		<link>http://www.lacy.ie/improve-your-testing</link>
		<comments>http://www.lacy.ie/improve-your-testing#comments</comments>
		<pubDate>Thu, 10 Sep 2009 09:46:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Testing]]></category>
		<category><![CDATA[Integration Testing]]></category>
		<category><![CDATA[The Art of Unit Testing]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://lacy.ie/?p=218</guid>
		<description><![CDATA[
Last night I was at the first meeting of the local alt.net book club, we&#8217;re currently going through a book called the art of unit testing. What I took from reading the first chapter and the discussion we had at the meeting was that you test your code already, your tests can be improved and unit testing [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.manning.com/osherove/"><img class="alignright size-thumbnail wp-image-219" title="The Art of Unit Testing" src="http://lacy.ie/wp-content/uploads/2009/09/osherove_cover150-150x150.jpg" alt="The Art of Unit Testing" width="150" height="150" /></a></p>
<p>Last night I was at the first meeting of the <a href="http://dublinalt.net">local alt.net</a> book club, we&#8217;re currently going through a book called the art of unit testing. What I took from reading the first chapter and the discussion we had at the meeting was that you test your code already, your tests can be improved and unit testing will improve it. My first mistake was to confuse what unit testing was. I thought it was just automated testing. I had used a unit testing framework and that&#8217;s all that I had learnt from doing so. However once you start reading up on the best practices of testing you hear a different story.</p>
<p><span id="more-218"></span>Unit testing is testing a piece of logic as a unit isolated from all dependancies. That&#8217;s not the offical definition, it&#8217;s only designed to cover the bit that I msised. When you unit test a piece of code, you shouldn&#8217;t call other parts of your code. If necessary you should fake, mock or stub the rest of your logic in order to isolate that code properly. When you get the result of that test, you&#8217;ll then know whether that unit of logic is working or not.</p>
<p>Alternatively you could all it to call other units of logic and then you&#8217;ll know either that all is well or something somewhere in your code is broken. Which is fine if you have a small project that will never grow, because then you&#8217;ll only lose a small amount of time hunting down bugs gradually increasing as your grasp of the project slips over time. However if you have a large project you could easily lose days, it&#8217;s even worse when you have a whole team full of people that every time there is a failed test, the whole project doesn&#8217;t work and no one can proceed.</p>
<p>That&#8217;s what I took away from it, I&#8217;d recommend book clubs as a pain free way to get through technical books and I shall be using unit testing next chance I get.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.lacy.ie%2Fimprove-your-testing&amp;linkname=Improve%20your%20testing"><img src="http://www.lacy.ie/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.lacy.ie/improve-your-testing/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->