<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments for Kaeli's Space</title>
	<atom:link href="http://www.kaelisspace.com/wordpress22/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kaelisspace.com/wordpress22</link>
	<description>Tips, tricks, and tidbits from a pet-loving computer geek</description>
	<pubDate>Tue, 06 Jan 2009 11:27:00 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
		<item>
		<title>Comment on ASP.NET: could not find Control in ControlParameter by shah</title>
		<link>http://www.kaelisspace.com/wordpress22/2007/09/20/aspnet-could-not-find-control-in-controlparameter/#comment-13975</link>
		<dc:creator>shah</dc:creator>
		<pubDate>Tue, 30 Dec 2008 05:57:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2007/09/20/aspnet-could-not-find-control-in-controlparameter/#comment-13975</guid>
		<description>thanx a lot lot lot , that solve my problem</description>
		<content:encoded><![CDATA[<p>thanx a lot lot lot , that solve my problem</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ASP.NET C#: Stream a download file by kaeli</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/04/03/aspnet-c-stream-a-download-file/#comment-13133</link>
		<dc:creator>kaeli</dc:creator>
		<pubDate>Fri, 19 Dec 2008 14:10:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2008/04/03/aspnet-c-stream-a-download-file/#comment-13133</guid>
		<description>Hi Anand,
I haven't run into that problem, but have you tried reading the file first then streaming it out? If you File.ReadAllText into a string, it should still read the file even though it is write-locked. In theory, you could then just Response.Write the string.</description>
		<content:encoded><![CDATA[<p>Hi Anand,<br />
I haven&#8217;t run into that problem, but have you tried reading the file first then streaming it out? If you File.ReadAllText into a string, it should still read the file even though it is write-locked. In theory, you could then just Response.Write the string.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ASP.NET C#: Stream a download file by Anand</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/04/03/aspnet-c-stream-a-download-file/#comment-13060</link>
		<dc:creator>Anand</dc:creator>
		<pubDate>Thu, 18 Dec 2008 10:50:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2008/04/03/aspnet-c-stream-a-download-file/#comment-13060</guid>
		<description>Pretty nice sample. I have an issue related  to such file  downloads.
While  using  Response.WriteFile(FilePath); to download a log  file (that is being written by a process) I'm  getting an error.."The  process cannot access the file '...path' because it is being used by another process."

While the cause is clear, I want to know whether there is any solution by which I can still allow the user to  download the log  file ?</description>
		<content:encoded><![CDATA[<p>Pretty nice sample. I have an issue related  to such file  downloads.<br />
While  using  Response.WriteFile(FilePath); to download a log  file (that is being written by a process) I&#8217;m  getting an error..&#8221;The  process cannot access the file &#8216;&#8230;path&#8217; because it is being used by another process.&#8221;</p>
<p>While the cause is clear, I want to know whether there is any solution by which I can still allow the user to  download the log  file ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Simple Questions Often Aren&#8217;t - Posting In IT Forums by griceKive</title>
		<link>http://www.kaelisspace.com/wordpress22/2007/10/30/simple-questions-often-arent-posting-in-it-forums/#comment-13045</link>
		<dc:creator>griceKive</dc:creator>
		<pubDate>Thu, 18 Dec 2008 05:12:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2007/10/30/simple-questions-often-arent-posting-in-it-forums/#comment-13045</guid>
		<description>Hi all! 
 
As newly registered user i only wanted to say hello to everyone else who uses this site :D</description>
		<content:encoded><![CDATA[<p>Hi all! </p>
<p>As newly registered user i only wanted to say hello to everyone else who uses this site <img src='http://www.kaelisspace.com/wordpress22/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Simple Questions Often Aren&#8217;t - Posting In IT Forums by bhjgjgyuig</title>
		<link>http://www.kaelisspace.com/wordpress22/2007/10/30/simple-questions-often-arent-posting-in-it-forums/#comment-12324</link>
		<dc:creator>bhjgjgyuig</dc:creator>
		<pubDate>Tue, 09 Dec 2008 14:24:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2007/10/30/simple-questions-often-arent-posting-in-it-forums/#comment-12324</guid>
		<description>i new on this forum</description>
		<content:encoded><![CDATA[<p>i new on this forum</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ASP.NET: Adding onclick to GridView rows by kaeli</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/10/24/aspnet-adding-onclick-to-gridview-rows/#comment-11971</link>
		<dc:creator>kaeli</dc:creator>
		<pubDate>Fri, 05 Dec 2008 01:12:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/?p=784#comment-11971</guid>
		<description>DataGridView is a winform component. Session is for web forms. They don't really mix.</description>
		<content:encoded><![CDATA[<p>DataGridView is a winform component. Session is for web forms. They don&#8217;t really mix.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ASP.NET: Adding onclick to GridView rows by Archis</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/10/24/aspnet-adding-onclick-to-gridview-rows/#comment-11931</link>
		<dc:creator>Archis</dc:creator>
		<pubDate>Thu, 04 Dec 2008 12:38:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/?p=784#comment-11931</guid>
		<description>Hi Kaeli,
I am developing a web application using .NET Framework 3.0. Here in one page I have a DataGridView in read only format. I need to set some value in session when user clicks on the grid. Can you please help me in achieving this?</description>
		<content:encoded><![CDATA[<p>Hi Kaeli,<br />
I am developing a web application using .NET Framework 3.0. Here in one page I have a DataGridView in read only format. I need to set some value in session when user clicks on the grid. Can you please help me in achieving this?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Best (Cat) Toys In Life Are Free (or really cheap) by sam</title>
		<link>http://www.kaelisspace.com/wordpress22/2007/11/19/the-best-cat-toys-in-life-are-free-or-really-cheap/#comment-11356</link>
		<dc:creator>sam</dc:creator>
		<pubDate>Tue, 25 Nov 2008 15:30:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2007/11/19/the-best-cat-toys-in-life-are-free-or-really-cheap/#comment-11356</guid>
		<description>very nice site with some great post keep up the great work</description>
		<content:encoded><![CDATA[<p>very nice site with some great post keep up the great work</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ASP.NET: Adding onclick to GridView rows by kaeli</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/10/24/aspnet-adding-onclick-to-gridview-rows/#comment-11280</link>
		<dc:creator>kaeli</dc:creator>
		<pubDate>Mon, 24 Nov 2008 02:05:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/?p=784#comment-11280</guid>
		<description>Hi Jose,

If you're using paging, you can use the first method as-is, which worked fine with standard paging when I tested it. 

If you need the data key value like in the second example, use RowIndex instead of DataItemIndex. I tested this with paging and sorting (standard) enabled and it worked.

        string url = System.Web.VirtualPathUtility.ToAbsolute("~/Default9.aspx") + "?Category=" +
           Server.UrlEncode(Convert.ToString(GridView1.DataKeys[e.Row.RowIndex].Value));</description>
		<content:encoded><![CDATA[<p>Hi Jose,</p>
<p>If you&#8217;re using paging, you can use the first method as-is, which worked fine with standard paging when I tested it. </p>
<p>If you need the data key value like in the second example, use RowIndex instead of DataItemIndex. I tested this with paging and sorting (standard) enabled and it worked.</p>
<p>        string url = System.Web.VirtualPathUtility.ToAbsolute(&#8221;~/Default9.aspx&#8221;) + &#8220;?Category=&#8221; +<br />
           Server.UrlEncode(Convert.ToString(GridView1.DataKeys[e.Row.RowIndex].Value));</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ASP.NET: Adding onclick to GridView rows by Jose</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/10/24/aspnet-adding-onclick-to-gridview-rows/#comment-11271</link>
		<dc:creator>Jose</dc:creator>
		<pubDate>Sun, 23 Nov 2008 22:05:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/?p=784#comment-11271</guid>
		<description>this is a real great piece of art. i was wrong. 
But what happend if my gridview has paging?
when the user click another page number the code do not work.

would you help me ?</description>
		<content:encoded><![CDATA[<p>this is a real great piece of art. i was wrong.<br />
But what happend if my gridview has paging?<br />
when the user click another page number the code do not work.</p>
<p>would you help me ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ASP.NET: Adding onclick to GridView rows by kaeli</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/10/24/aspnet-adding-onclick-to-gridview-rows/#comment-11079</link>
		<dc:creator>kaeli</dc:creator>
		<pubDate>Fri, 21 Nov 2008 02:18:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/?p=784#comment-11079</guid>
		<description>Glad to help!</description>
		<content:encoded><![CDATA[<p>Glad to help!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Notice by Kaven</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/04/01/notice/#comment-10992</link>
		<dc:creator>Kaven</dc:creator>
		<pubDate>Wed, 19 Nov 2008 21:50:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2008/04/01/notice/#comment-10992</guid>
		<description>Very Funny!!</description>
		<content:encoded><![CDATA[<p>Very Funny!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Top 10 Dog Park Tips Savvy Dog Owners Know by best way to train your dog,how to train your dog at home for free,how to make a shock collar for your dog,training your dog to protect you,training your dog to stay,training your dog to bite,advice on potty toilet training,tips for potty training your pup</title>
		<link>http://www.kaelisspace.com/wordpress22/2007/08/07/top-10-dog-park-tips-savvy-dog-owners-know/#comment-10852</link>
		<dc:creator>best way to train your dog,how to train your dog at home for free,how to make a shock collar for your dog,training your dog to protect you,training your dog to stay,training your dog to bite,advice on potty toilet training,tips for potty training your pup</dc:creator>
		<pubDate>Mon, 17 Nov 2008 06:16:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2007/08/07/top-10-dog-park-tips-savvy-dog-owners-know/#comment-10852</guid>
		<description>Here are some tips to keep your dog well behaved:
1.You've to start training your dog as early as possible
2,Be firm but gentle when you train your dog
3,By observing the behavior of your dog inside the house you'll realize how it will respond outside
4.You should not lose your temper
5.Timing is always important especially when you're correcting your dog</description>
		<content:encoded><![CDATA[<p>Here are some tips to keep your dog well behaved:<br />
1.You&#8217;ve to start training your dog as early as possible<br />
2,Be firm but gentle when you train your dog<br />
3,By observing the behavior of your dog inside the house you&#8217;ll realize how it will respond outside<br />
4.You should not lose your temper<br />
5.Timing is always important especially when you&#8217;re correcting your dog</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ASP.NET: Adding onclick to GridView rows by MKazanova</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/10/24/aspnet-adding-onclick-to-gridview-rows/#comment-10831</link>
		<dc:creator>MKazanova</dc:creator>
		<pubDate>Sun, 16 Nov 2008 23:45:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/?p=784#comment-10831</guid>
		<description>NIce trick and works like a charm.
Thank you..</description>
		<content:encoded><![CDATA[<p>NIce trick and works like a charm.<br />
Thank you..</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Simple Questions Often Aren&#8217;t - Posting In IT Forums by druddemyday</title>
		<link>http://www.kaelisspace.com/wordpress22/2007/10/30/simple-questions-often-arent-posting-in-it-forums/#comment-10485</link>
		<dc:creator>druddemyday</dc:creator>
		<pubDate>Tue, 11 Nov 2008 12:44:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2007/10/30/simple-questions-often-arent-posting-in-it-forums/#comment-10485</guid>
		<description>http://www.youtube.com/watch?v=-JC9wPGvYM8 
 
 
some of them are not bad but... internet is crazy</description>
		<content:encoded><![CDATA[<p><a href="http://www.youtube.com/watch?v=-JC9wPGvYM8" rel="nofollow">http://www.youtube.com/watch?v=-JC9wPGvYM8</a> </p>
<p>some of them are not bad but&#8230; internet is crazy</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on C#.NET: 4 payroll/calendar date calculations by Jordan</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/06/17/cnet-4-payrollcalendar-date-calculations/#comment-10275</link>
		<dc:creator>Jordan</dc:creator>
		<pubDate>Thu, 06 Nov 2008 05:44:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2008/06/17/cnet-4-payrollcalendar-date-calculations/#comment-10275</guid>
		<description>And I liked, will be looking at your site.</description>
		<content:encoded><![CDATA[<p>And I liked, will be looking at your site.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on When the gas pedal becomes the brake pedal by kaeli</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/10/17/when-the-gas-pedal-becomes-the-brake-pedal/#comment-9678</link>
		<dc:creator>kaeli</dc:creator>
		<pubDate>Sat, 18 Oct 2008 01:55:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/?p=776#comment-9678</guid>
		<description>I need to take an English class and learn to write better if so many coders got their panties twisted over the fact that I despise when CLIENTS ask for requirements that make my life more difficult. I think it's a lack of a general "you".

I should re-word this:
"So, when I’m surfing the internet and see posts like this one, detailing how to break your application on purpose because you don’t feel like training users, it makes me want to scream."

Lets try that again and communicate it as

"So, when I’m surfing the internet and see posts like this one, detailing how to break an application on purpose because clients don’t feel like training users, it makes me want to scream."

Does that work better and communicate that it's the notion that clients ask for such things that pisses me off?

Thanks for reading!</description>
		<content:encoded><![CDATA[<p>I need to take an English class and learn to write better if so many coders got their panties twisted over the fact that I despise when CLIENTS ask for requirements that make my life more difficult. I think it&#8217;s a lack of a general &#8220;you&#8221;.</p>
<p>I should re-word this:<br />
&#8220;So, when I’m surfing the internet and see posts like this one, detailing how to break your application on purpose because you don’t feel like training users, it makes me want to scream.&#8221;</p>
<p>Lets try that again and communicate it as</p>
<p>&#8220;So, when I’m surfing the internet and see posts like this one, detailing how to break an application on purpose because clients don’t feel like training users, it makes me want to scream.&#8221;</p>
<p>Does that work better and communicate that it&#8217;s the notion that clients ask for such things that pisses me off?</p>
<p>Thanks for reading!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on When the gas pedal becomes the brake pedal by Justin Noel</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/10/17/when-the-gas-pedal-becomes-the-brake-pedal/#comment-9661</link>
		<dc:creator>Justin Noel</dc:creator>
		<pubDate>Fri, 17 Oct 2008 17:31:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/?p=776#comment-9661</guid>
		<description>I read David's post a while back and cringed when I first saw what the post was about.  However, I understood his need to do this.  I also clearly noted his caveat at the end of the post about not being a good solution for all situations.

You should step back a bit from your rant against him.  It was not David's job to train the users.  It was his job to listen to his customer's request, provide feedback, and then ultimately execute what the customer decided to proceed with.  Any training became the company's responsibility, not David's.  

I've also been quite frustrated by many accidental form submissions due to the "correct", standards based execution of the enter key.  Damn frustrating sometimes.  I guess your response would be that I should get more training and learn how to be a better typist....  Sometimes, an alternate solution is best.</description>
		<content:encoded><![CDATA[<p>I read David&#8217;s post a while back and cringed when I first saw what the post was about.  However, I understood his need to do this.  I also clearly noted his caveat at the end of the post about not being a good solution for all situations.</p>
<p>You should step back a bit from your rant against him.  It was not David&#8217;s job to train the users.  It was his job to listen to his customer&#8217;s request, provide feedback, and then ultimately execute what the customer decided to proceed with.  Any training became the company&#8217;s responsibility, not David&#8217;s.  </p>
<p>I&#8217;ve also been quite frustrated by many accidental form submissions due to the &#8220;correct&#8221;, standards based execution of the enter key.  Damn frustrating sometimes.  I guess your response would be that I should get more training and learn how to be a better typist&#8230;.  Sometimes, an alternate solution is best.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on When the gas pedal becomes the brake pedal by Mike Liston</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/10/17/when-the-gas-pedal-becomes-the-brake-pedal/#comment-9658</link>
		<dc:creator>Mike Liston</dc:creator>
		<pubDate>Fri, 17 Oct 2008 17:12:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/?p=776#comment-9658</guid>
		<description>I agree with David 100%.  Many of the websites that I have been awarded were due to stubborn and ignorant developers not listening to the client.  Clients get tired of repeating themselves to developers that think they know everything or refuse to change something because they don't agree with the decision.  Remember, as designers and developers, our job is to offer solutions, suggestions, and options.  While we might not agree with the final decision, they are paying us to provide a service.  To bend your car example, should I be mad when I drive in England because the steering wheel is on the other side of the car or that I am on the other side of the road?  Make it easy for the web visitor, track statistics to determine the best method, do what the customer asks, and everyone wins.</description>
		<content:encoded><![CDATA[<p>I agree with David 100%.  Many of the websites that I have been awarded were due to stubborn and ignorant developers not listening to the client.  Clients get tired of repeating themselves to developers that think they know everything or refuse to change something because they don&#8217;t agree with the decision.  Remember, as designers and developers, our job is to offer solutions, suggestions, and options.  While we might not agree with the final decision, they are paying us to provide a service.  To bend your car example, should I be mad when I drive in England because the steering wheel is on the other side of the car or that I am on the other side of the road?  Make it easy for the web visitor, track statistics to determine the best method, do what the customer asks, and everyone wins.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on When the gas pedal becomes the brake pedal by Eric Wendelin</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/10/17/when-the-gas-pedal-becomes-the-brake-pedal/#comment-9657</link>
		<dc:creator>Eric Wendelin</dc:creator>
		<pubDate>Fri, 17 Oct 2008 16:24:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/?p=776#comment-9657</guid>
		<description>It's good design that trains people how to use your site, and the fact is, new users and clients don't give a damn about standards. Push back at first, but then do what they pay you for.

Frankly, training a user on using a web browser has little to do with showing a user how to use your site. Just as your holy Google grail breaks page validation for usability, so shall some standards need "breaking" for your users.</description>
		<content:encoded><![CDATA[<p>It&#8217;s good design that trains people how to use your site, and the fact is, new users and clients don&#8217;t give a damn about standards. Push back at first, but then do what they pay you for.</p>
<p>Frankly, training a user on using a web browser has little to do with showing a user how to use your site. Just as your holy Google grail breaks page validation for usability, so shall some standards need &#8220;breaking&#8221; for your users.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on When the gas pedal becomes the brake pedal by Jade Robbins</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/10/17/when-the-gas-pedal-becomes-the-brake-pedal/#comment-9654</link>
		<dc:creator>Jade Robbins</dc:creator>
		<pubDate>Fri, 17 Oct 2008 15:50:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/?p=776#comment-9654</guid>
		<description>So just because you don't like something no one should be able to ever use it? or even attempt to teach another to use it? Regardless if it was a customer request or a wind hair up David's ass doesn't' mean that SOMEONE out there doesn't want it. Many accounting systems for years have used enter to move from field to field, maybe a client wants to hide the fact that it's a web application from their workers, or any other number of valid reasons for implementing code such as this. I'm sorry you work for a company that hires idiots and uses different keystrokes in their web application, but that isn't the rest of the internet's fault.</description>
		<content:encoded><![CDATA[<p>So just because you don&#8217;t like something no one should be able to ever use it? or even attempt to teach another to use it? Regardless if it was a customer request or a wind hair up David&#8217;s ass doesn&#8217;t&#8217; mean that SOMEONE out there doesn&#8217;t want it. Many accounting systems for years have used enter to move from field to field, maybe a client wants to hide the fact that it&#8217;s a web application from their workers, or any other number of valid reasons for implementing code such as this. I&#8217;m sorry you work for a company that hires idiots and uses different keystrokes in their web application, but that isn&#8217;t the rest of the internet&#8217;s fault.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on When the gas pedal becomes the brake pedal by Carlos Rodriguez</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/10/17/when-the-gas-pedal-becomes-the-brake-pedal/#comment-9653</link>
		<dc:creator>Carlos Rodriguez</dc:creator>
		<pubDate>Fri, 17 Oct 2008 15:45:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/?p=776#comment-9653</guid>
		<description>I agree with David also, not only it was a client's request, he states the following: "While I certainly wouldn’t recommend this for every form, it definitely suited this customer’s needs." In other words, don't break the form, but if your client needs it then here's how you could do it.</description>
		<content:encoded><![CDATA[<p>I agree with David also, not only it was a client&#8217;s request, he states the following: &#8220;While I certainly wouldn’t recommend this for every form, it definitely suited this customer’s needs.&#8221; In other words, don&#8217;t break the form, but if your client needs it then here&#8217;s how you could do it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on When the gas pedal becomes the brake pedal by the deziner</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/10/17/when-the-gas-pedal-becomes-the-brake-pedal/#comment-9652</link>
		<dc:creator>the deziner</dc:creator>
		<pubDate>Fri, 17 Oct 2008 15:30:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/?p=776#comment-9652</guid>
		<description>I hate to admit it, but unfortunately David is correct. Sometimes you just HAVE to deliver what a client wants, even if it seems crazy. As developers and designers, we can only guide a client and hope they listen to sound advise. it just doesn't always work out that way.</description>
		<content:encoded><![CDATA[<p>I hate to admit it, but unfortunately David is correct. Sometimes you just HAVE to deliver what a client wants, even if it seems crazy. As developers and designers, we can only guide a client and hope they listen to sound advise. it just doesn&#8217;t always work out that way.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on When the gas pedal becomes the brake pedal by David Walsh</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/10/17/when-the-gas-pedal-becomes-the-brake-pedal/#comment-9650</link>
		<dc:creator>David Walsh</dc:creator>
		<pubDate>Fri, 17 Oct 2008 15:20:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/?p=776#comment-9650</guid>
		<description>With regard to my "Hijacking" post, you're very presumptious and borderline irresponsible in saying "...detailing how to break your application on purpose because you don’t feel like training users..."

Keep in mind that making the enter key trigger tabbing instead of form submission was not my idea -- it was a customer request, one for which I was paid and obligated to do, so I did it.  In following up with my customer last week, 2 years later, they're extremely happy with it and that functionality in particular.  That's the most important thing.

Before you call someone lazy, take the time to think about what's best for the user.  If they asked for it, they wanted it.  What's more important than your ideal of how things should work is how the user wants it to work.  Citing my post should be more of an embarassment for you -- not for me.</description>
		<content:encoded><![CDATA[<p>With regard to my &#8220;Hijacking&#8221; post, you&#8217;re very presumptious and borderline irresponsible in saying &#8220;&#8230;detailing how to break your application on purpose because you don’t feel like training users&#8230;&#8221;</p>
<p>Keep in mind that making the enter key trigger tabbing instead of form submission was not my idea &#8212; it was a customer request, one for which I was paid and obligated to do, so I did it.  In following up with my customer last week, 2 years later, they&#8217;re extremely happy with it and that functionality in particular.  That&#8217;s the most important thing.</p>
<p>Before you call someone lazy, take the time to think about what&#8217;s best for the user.  If they asked for it, they wanted it.  What&#8217;s more important than your ideal of how things should work is how the user wants it to work.  Citing my post should be more of an embarassment for you &#8212; not for me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on C#.NET: Sorting A Generic Collection by Jesse Slicer</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/09/06/cnet-sorting-a-generic-collection/#comment-9210</link>
		<dc:creator>Jesse Slicer</dc:creator>
		<pubDate>Thu, 02 Oct 2008 01:45:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/?p=414#comment-9210</guid>
		<description>Two of the other niftier things in C# 3.0 are "auto properties" where

        private String firstName;
        public String FirstName
        {
            get { return firstName; }
            set { firstName = value; }
        }

can be abbreviated as

        public String FirstName
        {
            get;
            set;
        }

the compiler will generate the backing member automatically.

The other is called (I think) Initializers and it can transform this code

            List list = new List();
            list.Add(new Person("John", "Doe", 32));
            list.Add(new Person("Jane", "Doe", 30));
            list.Add(new Person("Bugs", "Bunny", 50));
            list.Add(new Person("Yosemite", "Sam", 60));

into this code

            List list = new List
            {
            new Person("John", "Doe", 32),
            new Person("Jane", "Doe", 30),
            new Person("Bugs", "Bunny", 50),
            new Person("Yosemite", "Sam", 60),
            };</description>
		<content:encoded><![CDATA[<p>Two of the other niftier things in C# 3.0 are &#8220;auto properties&#8221; where</p>
<p>        private String firstName;<br />
        public String FirstName<br />
        {<br />
            get { return firstName; }<br />
            set { firstName = value; }<br />
        }</p>
<p>can be abbreviated as</p>
<p>        public String FirstName<br />
        {<br />
            get;<br />
            set;<br />
        }</p>
<p>the compiler will generate the backing member automatically.</p>
<p>The other is called (I think) Initializers and it can transform this code</p>
<p>            List list = new List();<br />
            list.Add(new Person(&#8221;John&#8221;, &#8220;Doe&#8221;, 32));<br />
            list.Add(new Person(&#8221;Jane&#8221;, &#8220;Doe&#8221;, 30));<br />
            list.Add(new Person(&#8221;Bugs&#8221;, &#8220;Bunny&#8221;, 50));<br />
            list.Add(new Person(&#8221;Yosemite&#8221;, &#8220;Sam&#8221;, 60));</p>
<p>into this code</p>
<p>            List list = new List<br />
            {<br />
            new Person(&#8221;John&#8221;, &#8220;Doe&#8221;, 32),<br />
            new Person(&#8221;Jane&#8221;, &#8220;Doe&#8221;, 30),<br />
            new Person(&#8221;Bugs&#8221;, &#8220;Bunny&#8221;, 50),<br />
            new Person(&#8221;Yosemite&#8221;, &#8220;Sam&#8221;, 60),<br />
            };</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on C# quick and dirty serialize object to xml string by kaeli</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/06/23/c-quick-and-dirty-serialize-object-to-xml-string/#comment-9209</link>
		<dc:creator>kaeli</dc:creator>
		<pubDate>Thu, 02 Oct 2008 00:20:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2008/06/23/c-quick-and-dirty-serialize-object-to-xml-string/#comment-9209</guid>
		<description>You're not being a dork, I didn't realize I should dispose of StringWriter. Thanks for sharing that.</description>
		<content:encoded><![CDATA[<p>You&#8217;re not being a dork, I didn&#8217;t realize I should dispose of StringWriter. Thanks for sharing that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on C#.NET: Getting query results with SqlDataAdapter by kaeli</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/09/19/cnet-getting-query-results-with-sqldataadapter/#comment-9208</link>
		<dc:creator>kaeli</dc:creator>
		<pubDate>Thu, 02 Oct 2008 00:19:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/?p=746#comment-9208</guid>
		<description>You caught me being lazy with my examples again, didn't you Jesse? Good catch.</description>
		<content:encoded><![CDATA[<p>You caught me being lazy with my examples again, didn&#8217;t you Jesse? Good catch.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on C#.NET: Sorting A Generic Collection by kaeli</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/09/06/cnet-sorting-a-generic-collection/#comment-9207</link>
		<dc:creator>kaeli</dc:creator>
		<pubDate>Thu, 02 Oct 2008 00:18:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/?p=414#comment-9207</guid>
		<description>Sweet.  =)

We still use 2.0 at work, so I haven't had too much time to check out the new 3.0 features yet.</description>
		<content:encoded><![CDATA[<p>Sweet.  =)</p>
<p>We still use 2.0 at work, so I haven&#8217;t had too much time to check out the new 3.0 features yet.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on C# quick and dirty serialize object to xml string by Jesse Slicer</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/06/23/c-quick-and-dirty-serialize-object-to-xml-string/#comment-9161</link>
		<dc:creator>Jesse Slicer</dc:creator>
		<pubDate>Tue, 30 Sep 2008 21:49:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2008/06/23/c-quick-and-dirty-serialize-object-to-xml-string/#comment-9161</guid>
		<description>I know I'm being a dork and repeating myself, but it's good practice to make sure you're disposing of the StringWriter since its parent class, TextWriter, implements IDisposable.  It's not 100% necessary to do so as once it falls out of scope the reference will disappear and the garbage collector should take care of its members, but you never know whether or not the underlying classes have resources which may be contended for elsewhere.</description>
		<content:encoded><![CDATA[<p>I know I&#8217;m being a dork and repeating myself, but it&#8217;s good practice to make sure you&#8217;re disposing of the StringWriter since its parent class, TextWriter, implements IDisposable.  It&#8217;s not 100% necessary to do so as once it falls out of scope the reference will disappear and the garbage collector should take care of its members, but you never know whether or not the underlying classes have resources which may be contended for elsewhere.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The logged-in user&#8217;s AD name and group [winforms] by Jesse Slicer</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/08/27/the-logged-in-users-ad-name-and-group-winforms/#comment-9160</link>
		<dc:creator>Jesse Slicer</dc:creator>
		<pubDate>Tue, 30 Sep 2008 21:07:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2008/08/27/the-logged-in-users-ad-name-and-group-winforms/#comment-9160</guid>
		<description>A number of our applications need to do COM registration or what-not on the fly and in doing so, the app needs to run as a local administrator.  Good news is that .NET provides us with the WindowsBuiltInRole enumeration which I expose in a class

/// 
/// Simple static class with one public property to determine whether the
/// current user is in the local administrators group or not.
/// 
public static class IsLocalAdministrator
{
   /// 
   /// Gets a value indicating whether the current user is in the local
   /// administrators group.
   /// 
   /// True if a local administrator; otherwise,
   /// false.
   public static bool
   Value
   {
      get
      {
         return m_value;
      }
   }

   /// 
   /// Stores a Boolean value indicating whether the current user is in the
   /// local administrators group or not.
   /// 
   private readonly static bool  m_value =
         new WindowsPrincipal (WindowsIdentity.GetCurrent ()).IsInRole (WindowsBuiltInRole.Administrator);
}


I'm making the (possibly incorrect) assumption that the user's role isn't going to change during the lifetime of my application.  Most apps gracefully bow out anyway if the user isn't the right type.</description>
		<content:encoded><![CDATA[<p>A number of our applications need to do COM registration or what-not on the fly and in doing so, the app needs to run as a local administrator.  Good news is that .NET provides us with the WindowsBuiltInRole enumeration which I expose in a class</p>
<p>///<br />
/// Simple static class with one public property to determine whether the<br />
/// current user is in the local administrators group or not.<br />
///<br />
public static class IsLocalAdministrator<br />
{<br />
   ///<br />
   /// Gets a value indicating whether the current user is in the local<br />
   /// administrators group.<br />
   ///<br />
   /// True if a local administrator; otherwise,<br />
   /// false.<br />
   public static bool<br />
   Value<br />
   {<br />
      get<br />
      {<br />
         return m_value;<br />
      }<br />
   }</p>
<p>   ///<br />
   /// Stores a Boolean value indicating whether the current user is in the<br />
   /// local administrators group or not.<br />
   ///<br />
   private readonly static bool  m_value =<br />
         new WindowsPrincipal (WindowsIdentity.GetCurrent ()).IsInRole (WindowsBuiltInRole.Administrator);<br />
}</p>
<p>I&#8217;m making the (possibly incorrect) assumption that the user&#8217;s role isn&#8217;t going to change during the lifetime of my application.  Most apps gracefully bow out anyway if the user isn&#8217;t the right type.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on C#.NET: Getting query results with SqlDataAdapter by Jesse Slicer</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/09/19/cnet-getting-query-results-with-sqldataadapter/#comment-9159</link>
		<dc:creator>Jesse Slicer</dc:creator>
		<pubDate>Tue, 30 Sep 2008 21:03:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/?p=746#comment-9159</guid>
		<description>Do note that SqlCommand inherits from DbCommand, which implements the IDisposable interface, which means that the command should be disposed when it is done:

 DataSet myDataSet = new DataSet();
 
 using (SqlConnection sqlconnection = new SqlConnection(Properties.Settings.Default.Northwind))
 {
     using (SqlCommand command = new SqlCommand("select * from products", sqlconnection))
     {
         SqlDataAdapter adapter = new SqlDataAdapter(command);
         adapter.Fill(myDataSet);
     }
 }</description>
		<content:encoded><![CDATA[<p>Do note that SqlCommand inherits from DbCommand, which implements the IDisposable interface, which means that the command should be disposed when it is done:</p>
<p> DataSet myDataSet = new DataSet();</p>
<p> using (SqlConnection sqlconnection = new SqlConnection(Properties.Settings.Default.Northwind))<br />
 {<br />
     using (SqlCommand command = new SqlCommand(&#8221;select * from products&#8221;, sqlconnection))<br />
     {<br />
         SqlDataAdapter adapter = new SqlDataAdapter(command);<br />
         adapter.Fill(myDataSet);<br />
     }<br />
 }</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on C#.NET: Sorting A Generic Collection by Jesse Slicer</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/09/06/cnet-sorting-a-generic-collection/#comment-9158</link>
		<dc:creator>Jesse Slicer</dc:creator>
		<pubDate>Tue, 30 Sep 2008 20:59:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/?p=414#comment-9158</guid>
		<description>Just as a FYI, your sort line


list.Sort(delegate(Person x, Person y) { return String.Compare(x.LastName, y.LastName);});


can be simplified in VS 2008 (C# 3.0) with a lambda expression as such


list.Sort((x, y) =&#62; string.Compare(x.LastName, y.LastName));
</description>
		<content:encoded><![CDATA[<p>Just as a FYI, your sort line</p>
<p>list.Sort(delegate(Person x, Person y) { return String.Compare(x.LastName, y.LastName);});</p>
<p>can be simplified in VS 2008 (C# 3.0) with a lambda expression as such</p>
<p>list.Sort((x, y) =&gt; string.Compare(x.LastName, y.LastName));</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on .NET: Check for existence with ExecuteScalar by C#.NET: Getting query results with SqlDataAdapter &#124; Kaeli's Space</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/05/09/net-check-for-existence-with-executescalar/#comment-8614</link>
		<dc:creator>C#.NET: Getting query results with SqlDataAdapter &#124; Kaeli's Space</dc:creator>
		<pubDate>Sat, 20 Sep 2008 01:52:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2008/05/09/net-check-for-existence-with-executescalar/#comment-8614</guid>
		<description>[...] seen how to execute a query that just returns one thing with ExecuteScalar. Now, though, we need entire results. And for whatever reason, we want a DataSet, not a [...]</description>
		<content:encoded><![CDATA[<p>[...] seen how to execute a query that just returns one thing with ExecuteScalar. Now, though, we need entire results. And for whatever reason, we want a DataSet, not a [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ASP.NET: could not find Control in ControlParameter by Allie</title>
		<link>http://www.kaelisspace.com/wordpress22/2007/09/20/aspnet-could-not-find-control-in-controlparameter/#comment-8600</link>
		<dc:creator>Allie</dc:creator>
		<pubDate>Fri, 19 Sep 2008 20:58:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2007/09/20/aspnet-could-not-find-control-in-controlparameter/#comment-8600</guid>
		<description>thanks, that was exactly my problem..</description>
		<content:encoded><![CDATA[<p>thanks, that was exactly my problem..</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Another Caturday by Web Guerilla</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/05/03/another-caturday/#comment-8397</link>
		<dc:creator>Web Guerilla</dc:creator>
		<pubDate>Mon, 15 Sep 2008 19:27:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2008/05/03/another-caturday/#comment-8397</guid>
		<description>Cool pics - I already bookmarked your site</description>
		<content:encoded><![CDATA[<p>Cool pics - I already bookmarked your site</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Simple Questions Often Aren&#8217;t - Posting In IT Forums by How to get the most from help forums &#124; Kaeli's Space</title>
		<link>http://www.kaelisspace.com/wordpress22/2007/10/30/simple-questions-often-arent-posting-in-it-forums/#comment-8385</link>
		<dc:creator>How to get the most from help forums &#124; Kaeli's Space</dc:creator>
		<pubDate>Mon, 15 Sep 2008 13:17:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2007/10/30/simple-questions-often-arent-posting-in-it-forums/#comment-8385</guid>
		<description>[...] try to push your question as easy or difficult. After all, if you can&#8217;t solve the problem, how can you possibly know if it&#8217;s easy or not? If it&#8217;s so easy, shouldn&#8217;t you be able to do it? If it&#8217;s so difficult, less [...]</description>
		<content:encoded><![CDATA[<p>[...] try to push your question as easy or difficult. After all, if you can&#8217;t solve the problem, how can you possibly know if it&#8217;s easy or not? If it&#8217;s so easy, shouldn&#8217;t you be able to do it? If it&#8217;s so difficult, less [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Digging To China &#8212; From The Litterbox by Litterbox training for the wayward feline &#124; Kaeli's Space</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/05/24/digging-to-china-from-the-litterbox/#comment-7878</link>
		<dc:creator>Litterbox training for the wayward feline &#124; Kaeli's Space</dc:creator>
		<pubDate>Sat, 06 Sep 2008 04:02:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2008/05/24/digging-to-china-from-the-litterbox/#comment-7878</guid>
		<description>[...] want to use the litterbox, it&#8217;s due to a physical problem. Either the cat is sick, or the condition of her litter is. More rarely, another cat may be bullying her and making her afraid to use the box. More rare still [...]</description>
		<content:encoded><![CDATA[<p>[...] want to use the litterbox, it&#8217;s due to a physical problem. Either the cat is sick, or the condition of her litter is. More rarely, another cat may be bullying her and making her afraid to use the box. More rare still [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ASP.NET C#: Stream a download file by kaeli</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/04/03/aspnet-c-stream-a-download-file/#comment-7602</link>
		<dc:creator>kaeli</dc:creator>
		<pubDate>Tue, 02 Sep 2008 23:21:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2008/04/03/aspnet-c-stream-a-download-file/#comment-7602</guid>
		<description>If you mean you're trying to stream two files at the same time, you can't do that (as far as I know, anyway). If you mean you want to call it twice or more in a row from one caller, you need to call it in a new window for each call, since it is hijacking the response stream in order to write to it.</description>
		<content:encoded><![CDATA[<p>If you mean you&#8217;re trying to stream two files at the same time, you can&#8217;t do that (as far as I know, anyway). If you mean you want to call it twice or more in a row from one caller, you need to call it in a new window for each call, since it is hijacking the response stream in order to write to it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ASP.NET C#: Stream a download file by Vishwajeet</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/04/03/aspnet-c-stream-a-download-file/#comment-7563</link>
		<dc:creator>Vishwajeet</dc:creator>
		<pubDate>Tue, 02 Sep 2008 14:37:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2008/04/03/aspnet-c-stream-a-download-file/#comment-7563</guid>
		<description>The information is very useful, thanx for that. But if u can, please help me how to download more than one file. Bcos next time when you run the same code it generates httpexception.</description>
		<content:encoded><![CDATA[<p>The information is very useful, thanx for that. But if u can, please help me how to download more than one file. Bcos next time when you run the same code it generates httpexception.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on What To Do When Your Cat Won&#8217;t Use The Litterbox by Litterbox training for the wayward feline &#124; Kaeli's Space</title>
		<link>http://www.kaelisspace.com/wordpress22/2007/11/01/what-to-do-when-your-cat-wont-use-the-litterbox/#comment-7491</link>
		<dc:creator>Litterbox training for the wayward feline &#124; Kaeli's Space</dc:creator>
		<pubDate>Mon, 01 Sep 2008 14:24:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2007/11/01/what-to-do-when-your-cat-wont-use-the-litterbox/#comment-7491</guid>
		<description>[...] of the time, when cats don&#8217;t want to use the litterbox, it&#8217;s due to a physical problem. Either the cat is sick, or the condition of her litter is. [...]</description>
		<content:encoded><![CDATA[<p>[...] of the time, when cats don&#8217;t want to use the litterbox, it&#8217;s due to a physical problem. Either the cat is sick, or the condition of her litter is. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Why you need to keep business logic outside your aspx page by kaeli</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/08/01/why-you-need-to-keep-business-logic-outside-your-aspx-page/#comment-7465</link>
		<dc:creator>kaeli</dc:creator>
		<pubDate>Mon, 01 Sep 2008 01:15:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2008/08/01/why-you-need-to-keep-business-logic-outside-your-aspx-page/#comment-7465</guid>
		<description>Hey there,

Point 1: ASP.NET MVC has its place and is a great alternative to webforms for some sites. However, it is not a replacement. Note that it is not event driven and doesn't maintain state (requirements for some sites). Here is a feature comparison chart.
http://bloggingabout.net/blogs/mischa/archive/2008/02/04/asp-net-mvc-vs-asp-net-webforms-vs-ruby-on-rails.aspx

Point 2: Your point seems to assume someone loading a huge amount of data. That WOULD be a bad idea. You don't want to do that -- that's why you use stored procs and paging.
Returning a dataset from a web service would also be a bad idea, I agree. An xsd can autogenerate a class with minimal effort. Adding a Serialize method to the class takes about 5 lines of code. All our web services return real xml so the consuming application can be Perl for all we care.
As far as domain modeling and extending datasets, if I was working on VERY large sites, I'd be using a BLL and a DAL, not datasets.

Point 3: I don't know about you, but I don't want to recode and redeploy an application because a database change has been made. Using stored procs eliminates this problem. It also allows for the database guy to fine tune them while you work on coding. As for modifying state, code decently and it isn't an issue.
It also lets you finely tune permissions to help protect your database in the event of a security hole.

Point 4: Using caching responsibly and eliminating string concatenation sped up several sites I've worked on. In one more extreme example, the page went from taking over 40 seconds to load down to 3. 
You do want to look at what you're caching, of course. Data used in drop downs, at least in my experience, doesn't change much. I.e lists of the states, or counties in a state, products, colors, or other similar choices of things. Not the result of some huge query.

Thanks for reading and commenting!</description>
		<content:encoded><![CDATA[<p>Hey there,</p>
<p>Point 1: ASP.NET MVC has its place and is a great alternative to webforms for some sites. However, it is not a replacement. Note that it is not event driven and doesn&#8217;t maintain state (requirements for some sites). Here is a feature comparison chart.<br />
<a href="http://bloggingabout.net/blogs/mischa/archive/2008/02/04/asp-net-mvc-vs-asp-net-webforms-vs-ruby-on-rails.aspx" rel="nofollow">http://bloggingabout.net/blogs/mischa/archive/2008/02/04/asp-net-mvc-vs-asp-net-webforms-vs-ruby-on-rails.aspx</a></p>
<p>Point 2: Your point seems to assume someone loading a huge amount of data. That WOULD be a bad idea. You don&#8217;t want to do that &#8212; that&#8217;s why you use stored procs and paging.<br />
Returning a dataset from a web service would also be a bad idea, I agree. An xsd can autogenerate a class with minimal effort. Adding a Serialize method to the class takes about 5 lines of code. All our web services return real xml so the consuming application can be Perl for all we care.<br />
As far as domain modeling and extending datasets, if I was working on VERY large sites, I&#8217;d be using a BLL and a DAL, not datasets.</p>
<p>Point 3: I don&#8217;t know about you, but I don&#8217;t want to recode and redeploy an application because a database change has been made. Using stored procs eliminates this problem. It also allows for the database guy to fine tune them while you work on coding. As for modifying state, code decently and it isn&#8217;t an issue.<br />
It also lets you finely tune permissions to help protect your database in the event of a security hole.</p>
<p>Point 4: Using caching responsibly and eliminating string concatenation sped up several sites I&#8217;ve worked on. In one more extreme example, the page went from taking over 40 seconds to load down to 3.<br />
You do want to look at what you&#8217;re caching, of course. Data used in drop downs, at least in my experience, doesn&#8217;t change much. I.e lists of the states, or counties in a state, products, colors, or other similar choices of things. Not the result of some huge query.</p>
<p>Thanks for reading and commenting!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Why you need to keep business logic outside your aspx page by henke</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/08/01/why-you-need-to-keep-business-logic-outside-your-aspx-page/#comment-7458</link>
		<dc:creator>henke</dc:creator>
		<pubDate>Sun, 31 Aug 2008 23:05:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2008/08/01/why-you-need-to-keep-business-logic-outside-your-aspx-page/#comment-7458</guid>
		<description>Hi,

Point one: you could use ASP.Net MVC instead of WebForms to avoid statemanagement. You'd avoid the hidden viewstate that per defaults saves a ton of data, especially if you're using a dataset which is the beast of the beasts.

You could leverage inversion of control to further loosely couple your app.

WebForms also has some amount of overhead. It allows for inline SQL in the tags as well which is an abdomination.

It doesn't generate to web standards.

Point two: They are nice syntactic sugar, but creates an anaemic domain model, if a domain model at all. It becomes harder to expand application further if it's really big. It's hard to layer on top of it; domain layers, that is, not infrastructure layers (i.e. not talking about n-tier). Read Eric Evans' Domain Driven Design for more about this. Datasets are also all of nothing afaik and consume vast amounts of memory to be filled; imagine scanning the USA White Pages; yeah - let's load it all into an adapter first! (dang!)

How would you extend that dataset without the use of Visual Studio? You can't. It's as simple as that. But they create a lot of code; and that's LOCs that have to be maintained.

It may also hamper your ability to communicate with 'plain old c# objects', or DTOs and doesn't provide any real abilities to extend your model. Web Services returning data sets are crazy! Imagine a caller in Python -- good bye weekend, for that programmer then.

Point three: Stored procedures risk to transfer business logic to the nth/third layer, the database, and modify state without your application code knowing about it. They are also a pain to maintain because you can't do any static code verification on them or update them with refactoring tools. They are also another place you have to change if you e.g. change your domain objects.

Furthermore, you can run transactions even if you're not using stored procedures. The ACID principle works even if you're running a big SQL statement or multiple of them.

Point four: You shouldn't use caching unless you know it'll improve the performance for the cost of the memory you are using up, but you can indeed perform the queries at the beginning of the request/operation you're wishing to perform to avoid transmitting many times.

You could have a look at an ORM if you'd like to; it'll help with the domain modelling.

String.Format, if used on fewer arguments than around a hundred (tested myself) compared to string concatenation similarly, doesn't provide any benefit. Nor does StringBuilder for </description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>Point one: you could use ASP.Net MVC instead of WebForms to avoid statemanagement. You&#8217;d avoid the hidden viewstate that per defaults saves a ton of data, especially if you&#8217;re using a dataset which is the beast of the beasts.</p>
<p>You could leverage inversion of control to further loosely couple your app.</p>
<p>WebForms also has some amount of overhead. It allows for inline SQL in the tags as well which is an abdomination.</p>
<p>It doesn&#8217;t generate to web standards.</p>
<p>Point two: They are nice syntactic sugar, but creates an anaemic domain model, if a domain model at all. It becomes harder to expand application further if it&#8217;s really big. It&#8217;s hard to layer on top of it; domain layers, that is, not infrastructure layers (i.e. not talking about n-tier). Read Eric Evans&#8217; Domain Driven Design for more about this. Datasets are also all of nothing afaik and consume vast amounts of memory to be filled; imagine scanning the USA White Pages; yeah - let&#8217;s load it all into an adapter first! (dang!)</p>
<p>How would you extend that dataset without the use of Visual Studio? You can&#8217;t. It&#8217;s as simple as that. But they create a lot of code; and that&#8217;s LOCs that have to be maintained.</p>
<p>It may also hamper your ability to communicate with &#8216;plain old c# objects&#8217;, or DTOs and doesn&#8217;t provide any real abilities to extend your model. Web Services returning data sets are crazy! Imagine a caller in Python &#8212; good bye weekend, for that programmer then.</p>
<p>Point three: Stored procedures risk to transfer business logic to the nth/third layer, the database, and modify state without your application code knowing about it. They are also a pain to maintain because you can&#8217;t do any static code verification on them or update them with refactoring tools. They are also another place you have to change if you e.g. change your domain objects.</p>
<p>Furthermore, you can run transactions even if you&#8217;re not using stored procedures. The ACID principle works even if you&#8217;re running a big SQL statement or multiple of them.</p>
<p>Point four: You shouldn&#8217;t use caching unless you know it&#8217;ll improve the performance for the cost of the memory you are using up, but you can indeed perform the queries at the beginning of the request/operation you&#8217;re wishing to perform to avoid transmitting many times.</p>
<p>You could have a look at an ORM if you&#8217;d like to; it&#8217;ll help with the domain modelling.</p>
<p>String.Format, if used on fewer arguments than around a hundred (tested myself) compared to string concatenation similarly, doesn&#8217;t provide any benefit. Nor does StringBuilder for</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Simple Questions Often Aren&#8217;t - Posting In IT Forums by agilmempole</title>
		<link>http://www.kaelisspace.com/wordpress22/2007/10/30/simple-questions-often-arent-posting-in-it-forums/#comment-7058</link>
		<dc:creator>agilmempole</dc:creator>
		<pubDate>Mon, 25 Aug 2008 07:13:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2007/10/30/simple-questions-often-arent-posting-in-it-forums/#comment-7058</guid>
		<description>Is this gonna end someday??</description>
		<content:encoded><![CDATA[<p>Is this gonna end someday??</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ASP.NET C#: Stream a download file by Winnie</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/04/03/aspnet-c-stream-a-download-file/#comment-6912</link>
		<dc:creator>Winnie</dc:creator>
		<pubDate>Fri, 22 Aug 2008 15:35:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2008/04/03/aspnet-c-stream-a-download-file/#comment-6912</guid>
		<description>Thank you for your sharing!!</description>
		<content:encoded><![CDATA[<p>Thank you for your sharing!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ASP.NET: could not find Control in ControlParameter by Gordon</title>
		<link>http://www.kaelisspace.com/wordpress22/2007/09/20/aspnet-could-not-find-control-in-controlparameter/#comment-6671</link>
		<dc:creator>Gordon</dc:creator>
		<pubDate>Tue, 19 Aug 2008 08:11:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2007/09/20/aspnet-could-not-find-control-in-controlparameter/#comment-6671</guid>
		<description>Thank you very much for sharing this...</description>
		<content:encoded><![CDATA[<p>Thank you very much for sharing this&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on C#.NET: 4 payroll/calendar date calculations by kaeli</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/06/17/cnet-4-payrollcalendar-date-calculations/#comment-6580</link>
		<dc:creator>kaeli</dc:creator>
		<pubDate>Mon, 18 Aug 2008 02:42:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2008/06/17/cnet-4-payrollcalendar-date-calculations/#comment-6580</guid>
		<description>&lt;p&gt;I'll give you the algorithm to find them.&lt;/p&gt;
&lt;p&gt;set var tmpDate = first monday of month&lt;br /&gt;
set var tmpDate2 = first monday of the next month&lt;br /&gt;
while tmpDate &#60; tmpDate2&lt;br /&gt;
   add 7 days to tmpDate to get the next monday&lt;br /&gt;
end while&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I&#8217;ll give you the algorithm to find them.</p>
<p>set var tmpDate = first monday of month<br />
set var tmpDate2 = first monday of the next month<br />
while tmpDate &lt; tmpDate2<br />
   add 7 days to tmpDate to get the next monday<br />
end while</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on C#.NET: 4 payroll/calendar date calculations by kpg123</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/06/17/cnet-4-payrollcalendar-date-calculations/#comment-6578</link>
		<dc:creator>kpg123</dc:creator>
		<pubDate>Mon, 18 Aug 2008 01:59:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2008/06/17/cnet-4-payrollcalendar-date-calculations/#comment-6578</guid>
		<description>Hi,
   I want to find all the mondays in a month using aps.net with c#,please provide me an exmple</description>
		<content:encoded><![CDATA[<p>Hi,<br />
   I want to find all the mondays in a month using aps.net with c#,please provide me an exmple</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 non-violent ways to establish dominance with your dog by What do you do if your dog isn&#8217;t food-motivated? &#124; Kaeli's Space</title>
		<link>http://www.kaelisspace.com/wordpress22/2007/11/12/5-non-violent-ways-to-establish-dominance-with-your-dog/#comment-6397</link>
		<dc:creator>What do you do if your dog isn&#8217;t food-motivated? &#124; Kaeli's Space</dc:creator>
		<pubDate>Fri, 15 Aug 2008 00:10:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2007/11/12/5-non-violent-ways-to-establish-dominance-with-your-dog/#comment-6397</guid>
		<description>[...] want to go outside? Have him sit, then let him out. Letting him out is a reward for sitting first. Does he want your attention? Have him sit or lie down first. You have opportunities all day long to reward him for complying [...]</description>
		<content:encoded><![CDATA[<p>[...] want to go outside? Have him sit, then let him out. Letting him out is a reward for sitting first. Does he want your attention? Have him sit or lie down first. You have opportunities all day long to reward him for complying [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ASP.NET C#: Stream a download file by kaeli</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/04/03/aspnet-c-stream-a-download-file/#comment-6288</link>
		<dc:creator>kaeli</dc:creator>
		<pubDate>Wed, 13 Aug 2008 03:17:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2008/04/03/aspnet-c-stream-a-download-file/#comment-6288</guid>
		<description>Hi Dran, you need to read the whole article I posted, not just pull out and use the code without configuring your application.
The point is that it doesn't matter if the user sees the path to the file, because what you're passing is only a part of a relative path. You can pass it in the URL if you want, it won't do an attacker any good. The rest of the path is given by Path.GetTempPath()  as you see in the code (usually this is the Windows Temp directory). A normal person would not be able to access that directory; only the user that the .NET process runs as (usually network service) would have that permission.</description>
		<content:encoded><![CDATA[<p>Hi Dran, you need to read the whole article I posted, not just pull out and use the code without configuring your application.<br />
The point is that it doesn&#8217;t matter if the user sees the path to the file, because what you&#8217;re passing is only a part of a relative path. You can pass it in the URL if you want, it won&#8217;t do an attacker any good. The rest of the path is given by Path.GetTempPath()  as you see in the code (usually this is the Windows Temp directory). A normal person would not be able to access that directory; only the user that the .NET process runs as (usually network service) would have that permission.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ASP.NET C#: Stream a download file by Dran</title>
		<link>http://www.kaelisspace.com/wordpress22/2008/04/03/aspnet-c-stream-a-download-file/#comment-6265</link>
		<dc:creator>Dran</dc:creator>
		<pubDate>Tue, 12 Aug 2008 13:05:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.kaelisspace.com/wordpress22/2008/04/03/aspnet-c-stream-a-download-file/#comment-6265</guid>
		<description>How would you pass Post data to your page? via a asp:Button ?! Because if you were passing POST parameters surely it would show the path of the file to the user in the page code.

Could you elaborate on the best way to use it?

I tried hard coding urls into the tempFileName to get it to pull a file but all I keep getting is:

System.IO.FileNotFoundException: Can’t find that file.

- Even when I just place it in the same directory as the website. Any advice as to why I'm confusing myself?

Thanks! Dran</description>
		<content:encoded><![CDATA[<p>How would you pass Post data to your page? via a asp:Button ?! Because if you were passing POST parameters surely it would show the path of the file to the user in the page code.</p>
<p>Could you elaborate on the best way to use it?</p>
<p>I tried hard coding urls into the tempFileName to get it to pull a file but all I keep getting is:</p>
<p>System.IO.FileNotFoundException: Can’t find that file.</p>
<p>- Even when I just place it in the same directory as the website. Any advice as to why I&#8217;m confusing myself?</p>
<p>Thanks! Dran</p>
]]></content:encoded>
	</item>
</channel>
</rss>
