<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments for Blog For .NET</title>
	<atom:link href="http://www.blogfor.net/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blogfor.net</link>
	<description>welcome to the blogosphere</description>
	<lastBuildDate>Sat, 19 Dec 2009 18:50:44 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on UI and Business Validation with Linq to SQL and T4 by phil</title>
		<link>http://www.blogfor.net/2009/09/27/ui-and-business-validation-with-linq-to-sql-and-t4/comment-page-1/#comment-1512</link>
		<dc:creator>phil</dc:creator>
		<pubDate>Sat, 19 Dec 2009 18:50:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=201#comment-1512</guid>
		<description>that&#039;s a great idea! I&#039;ve updated the t4 codegeneration template and added a small unit test. check out the result here:
http://www.blogfor.net/wp-content/uploads/2009/12/LinqToSqlCodeGenValidationSample.zip</description>
		<content:encoded><![CDATA[<p>that&#8217;s a great idea! I&#8217;ve updated the t4 codegeneration template and added a small unit test. check out the result here:<br />
<a href="http://www.blogfor.net/wp-content/uploads/2009/12/LinqToSqlCodeGenValidationSample.zip" onclick="javascript:pageTracker._trackPageview('/downloads/wp-content/uploads/2009/12/LinqToSqlCodeGenValidationSample.zip');" rel="nofollow">http://www.blogfor.net/wp-content/uploads/2009/12/LinqToSqlCodeGenValidationSample.zip</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UI and Business Validation with Linq to SQL and T4 by Sazzad</title>
		<link>http://www.blogfor.net/2009/09/27/ui-and-business-validation-with-linq-to-sql-and-t4/comment-page-1/#comment-1510</link>
		<dc:creator>Sazzad</dc:creator>
		<pubDate>Tue, 15 Dec 2009 12:36:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=201#comment-1510</guid>
		<description>great article. any idea implementing IDataErrorInfo as well for the generated entities. This will help a lot on WPF apps as most of binding will understand this interface to provide automatic error feedback. thx.</description>
		<content:encoded><![CDATA[<p>great article. any idea implementing IDataErrorInfo as well for the generated entities. This will help a lot on WPF apps as most of binding will understand this interface to provide automatic error feedback. thx.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Concatenating values in t-sql select statements by sandrar</title>
		<link>http://www.blogfor.net/2008/04/19/concatenating-values-in-t-sql-select-statements/comment-page-1/#comment-1355</link>
		<dc:creator>sandrar</dc:creator>
		<pubDate>Thu, 10 Sep 2009 13:33:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=8#comment-1355</guid>
		<description>Hi! I was surfing and found your blog post... nice! I love your blog.  :) Cheers! Sandra. R.</description>
		<content:encoded><![CDATA[<p>Hi! I was surfing and found your blog post&#8230; nice! I love your blog.  :) Cheers! Sandra. R.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on What I wish I knew about Service Broker before I started using it by phil</title>
		<link>http://www.blogfor.net/2008/04/20/what-i-wish-i-knew-about-service-broker-before-i-started-using-it/comment-page-1/#comment-1222</link>
		<dc:creator>phil</dc:creator>
		<pubDate>Tue, 09 Jun 2009 21:06:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=14#comment-1222</guid>
		<description>Not too sure what you mean. Do you want to send MSMQ messages or are you executing stored procedures w/ parameters?</description>
		<content:encoded><![CDATA[<p>Not too sure what you mean. Do you want to send MSMQ messages or are you executing stored procedures w/ parameters?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on What I wish I knew about Service Broker before I started using it by Rohan</title>
		<link>http://www.blogfor.net/2008/04/20/what-i-wish-i-knew-about-service-broker-before-i-started-using-it/comment-page-1/#comment-1216</link>
		<dc:creator>Rohan</dc:creator>
		<pubDate>Mon, 08 Jun 2009 18:12:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=14#comment-1216</guid>
		<description>Thanks for the lovely article,
Actually I wanted to know if it is possible to pass anything other than string data using SQL Broker.
For instance if I want to execute a StoredProcedure with few paramerers can I send thoes parameters from front-end like VB.net as SQLParameters or do I alwasy have to comver thoes parameteres and send them in string format ???</description>
		<content:encoded><![CDATA[<p>Thanks for the lovely article,<br />
Actually I wanted to know if it is possible to pass anything other than string data using SQL Broker.<br />
For instance if I want to execute a StoredProcedure with few paramerers can I send thoes parameters from front-end like VB.net as SQLParameters or do I alwasy have to comver thoes parameteres and send them in string format ???</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Optimize UpdatePanel performance by avoiding unnecessary element disposal by phil</title>
		<link>http://www.blogfor.net/2008/05/27/optimize-updatepanel-performance-by-avoiding-unnecessary-element-disposal/comment-page-1/#comment-1202</link>
		<dc:creator>phil</dc:creator>
		<pubDate>Fri, 05 Jun 2009 01:42:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=23#comment-1202</guid>
		<description>sounds like you have a memory leak. IE is more prone to these issues than Firefox because of how it separates the DOM in memory from the javascript objects. When elements are destroyed that are referenced by javascript, IE cannot dispose of the memory. 

Douglas Crockford has a much better explanation: http://javascript.crockford.com/memory/leak.html
from his site:
Microsoft&#039;s Internet Explorer contains a number of leaks, the worst of which is an interaction with JScript. When a DOM object contains a reference to a JavaScript object (such an event handling function), and when that JavaScript object contains a reference to that DOM object, then a cyclic structure is formed. This is not in itself a problem. At such time as there are no other references to the DOM object and the event handler, then the garbage collector (an automatic memory resource manager) will reclaim them both, allowing their space to be reallocated. The JavaScript garbage collector understands about cycles and is not confused by them. Unfortunately, IE&#039;s DOM is not managed by JScript. It has its own memory manager that does not understand about cycles and so gets very confused. As a result, when cycles occur, memory reclamation does not occur. The memory that is not reclaimed is said to have leaked. Over time, this can result in memory starvation. In a memory space full of used cells, the browser starves to death.

You can use these tools to find what is causing the memory leak: 
http://home.orange.nl/jsrosman/ (Sieve)
http://blogs.msdn.com/gpde/pages/javascript-memory-leak-detector.aspx (unsupported ms tool)

I&#039;ve used Sieve and it&#039;s worked very well.

Update panels exacerbate this issue because there are an increased number of postbacks causing an increased rate of memory leaks. The greater amount of elements in the leaking update panel, the greater chance you&#039;re leaking more memory.

potentially, adding javascript event handlers via markup or expando attributes will cause this problem e.g.  onblur = &#039;if(!function()){this.focus();}else{return true;}&#039; or Page.ClientScript.RegisterExpandoAttribute(ClientID, &quot;evaluationfunction&quot;,&quot;cb_verify&quot;);

Try commenting out columns and/or custom javascript behavior (onclick, onblur, etc.) to see if you can cut down on the memory leaked. The tools listed are a little rough to get your arms around but are very effective when you get them up to speed. 

Good luck,

Phil</description>
		<content:encoded><![CDATA[<p>sounds like you have a memory leak. IE is more prone to these issues than Firefox because of how it separates the DOM in memory from the javascript objects. When elements are destroyed that are referenced by javascript, IE cannot dispose of the memory. </p>
<p>Douglas Crockford has a much better explanation: <a href="http://javascript.crockford.com/memory/leak.html" onclick="javascript:pageTracker._trackPageview('/outbound/comment/javascript.crockford.com');" rel="nofollow">http://javascript.crockford.com/memory/leak.html</a><br />
from his site:<br />
Microsoft&#8217;s Internet Explorer contains a number of leaks, the worst of which is an interaction with JScript. When a DOM object contains a reference to a JavaScript object (such an event handling function), and when that JavaScript object contains a reference to that DOM object, then a cyclic structure is formed. This is not in itself a problem. At such time as there are no other references to the DOM object and the event handler, then the garbage collector (an automatic memory resource manager) will reclaim them both, allowing their space to be reallocated. The JavaScript garbage collector understands about cycles and is not confused by them. Unfortunately, IE&#8217;s DOM is not managed by JScript. It has its own memory manager that does not understand about cycles and so gets very confused. As a result, when cycles occur, memory reclamation does not occur. The memory that is not reclaimed is said to have leaked. Over time, this can result in memory starvation. In a memory space full of used cells, the browser starves to death.</p>
<p>You can use these tools to find what is causing the memory leak:<br />
<a href="http://home.orange.nl/jsrosman/" onclick="javascript:pageTracker._trackPageview('/outbound/comment/home.orange.nl');" rel="nofollow">http://home.orange.nl/jsrosman/</a> (Sieve)<br />
<a href="http://blogs.msdn.com/gpde/pages/javascript-memory-leak-detector.aspx" onclick="javascript:pageTracker._trackPageview('/outbound/comment/blogs.msdn.com');" rel="nofollow">http://blogs.msdn.com/gpde/pages/javascript-memory-leak-detector.aspx</a> (unsupported ms tool)</p>
<p>I&#8217;ve used Sieve and it&#8217;s worked very well.</p>
<p>Update panels exacerbate this issue because there are an increased number of postbacks causing an increased rate of memory leaks. The greater amount of elements in the leaking update panel, the greater chance you&#8217;re leaking more memory.</p>
<p>potentially, adding javascript event handlers via markup or expando attributes will cause this problem e.g.  onblur = &#8216;if(!function()){this.focus();}else{return true;}&#8217; or Page.ClientScript.RegisterExpandoAttribute(ClientID, &#8220;evaluationfunction&#8221;,&#8221;cb_verify&#8221;);</p>
<p>Try commenting out columns and/or custom javascript behavior (onclick, onblur, etc.) to see if you can cut down on the memory leaked. The tools listed are a little rough to get your arms around but are very effective when you get them up to speed. </p>
<p>Good luck,</p>
<p>Phil</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Optimize UpdatePanel performance by avoiding unnecessary element disposal by Mauro</title>
		<link>http://www.blogfor.net/2008/05/27/optimize-updatepanel-performance-by-avoiding-unnecessary-element-disposal/comment-page-1/#comment-1201</link>
		<dc:creator>Mauro</dc:creator>
		<pubDate>Fri, 05 Jun 2009 01:16:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=23#comment-1201</guid>
		<description>Thanks for your prompt response Andrew. I appreciate it. I got rid of the error and started testing my project.
However, the speed doesn&#039;t really seem to improve much. The speed is affected proportionally to the GridView&#039;s number of rows (with a lot of rows, memory usage increases a lot every time).

My GridView is inside an UpdatePanel.

I tried to put the following code in my GridView_OnPreRender and also in the UpdatePanel_OnPreRender but memory usage is still increasing a lot.
# If GridView.Visible Then  
#         Dim script As String = UpdatePanelRemoveNodeOnPostback.CreateScriptToRemoveExistingNodeFromUpdatePanelBeforePageLoad(GridView)  
#         Me.Page.ClientScript.RegisterStartupScript(Me.GetType, &quot;RemoveGridViewPrePostBackLoad&quot;, script)  
#     End If  

Do you think I should try to put that bit of code somewhere else in my form? I also tried to create an override PreRender function but still no luck.
I can&#039;t believe how much memory my application uses; it&#039;s ridiculous, if I open my form and perform same changes/transactions on the gridview, in a matter of minutes the memory used by Internet Explorer is over 500MB; it pretty much freezes the client machine and must close and restart IE.
Using Firefox the memory usage still increases, but not even close to what happens with IE. Using Firefox it&#039;s not too bad, but unfortunately I have other &quot;tools&quot; in my page that don&#039;t work on firefox, only on IE.

This is a really critical task for me, I really appreciate your help.
Thanks in advance!


MAURO</description>
		<content:encoded><![CDATA[<p>Thanks for your prompt response Andrew. I appreciate it. I got rid of the error and started testing my project.<br />
However, the speed doesn&#8217;t really seem to improve much. The speed is affected proportionally to the GridView&#8217;s number of rows (with a lot of rows, memory usage increases a lot every time).</p>
<p>My GridView is inside an UpdatePanel.</p>
<p>I tried to put the following code in my GridView_OnPreRender and also in the UpdatePanel_OnPreRender but memory usage is still increasing a lot.<br />
# If GridView.Visible Then<br />
#         Dim script As String = UpdatePanelRemoveNodeOnPostback.CreateScriptToRemoveExistingNodeFromUpdatePanelBeforePageLoad(GridView)<br />
#         Me.Page.ClientScript.RegisterStartupScript(Me.GetType, &#8220;RemoveGridViewPrePostBackLoad&#8221;, script)<br />
#     End If  </p>
<p>Do you think I should try to put that bit of code somewhere else in my form? I also tried to create an override PreRender function but still no luck.<br />
I can&#8217;t believe how much memory my application uses; it&#8217;s ridiculous, if I open my form and perform same changes/transactions on the gridview, in a matter of minutes the memory used by Internet Explorer is over 500MB; it pretty much freezes the client machine and must close and restart IE.<br />
Using Firefox the memory usage still increases, but not even close to what happens with IE. Using Firefox it&#8217;s not too bad, but unfortunately I have other &#8220;tools&#8221; in my page that don&#8217;t work on firefox, only on IE.</p>
<p>This is a really critical task for me, I really appreciate your help.<br />
Thanks in advance!</p>
<p>MAURO</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Optimize UpdatePanel performance by avoiding unnecessary element disposal by andrew</title>
		<link>http://www.blogfor.net/2008/05/27/optimize-updatepanel-performance-by-avoiding-unnecessary-element-disposal/comment-page-1/#comment-1198</link>
		<dc:creator>andrew</dc:creator>
		<pubDate>Thu, 04 Jun 2009 18:21:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=23#comment-1198</guid>
		<description>Yeah, the code is there, it&#039;s the 3rd code chunk.
   1. &lt;script type=&quot;text/javascript&quot;&gt;  
   2.     var pageRequestManager = Sys.WebForms.PageRequestManager.getInstance();  
   3.     pageRequestManager.add_pageLoading(onPageLoading{0});          
   4.   
   5.     function onPageLoading{1}(sender, e) {  
   6.         var itemToRemove = $(&#039;{2}&#039;);  
   7.         if (itemToRemove != null) {  
   8.             itemToRemove.remove();  
   9.         }  
  10.     }  
  11. &lt;/script&gt;  

you have to write that into your resource file... got it?</description>
		<content:encoded><![CDATA[<p>Yeah, the code is there, it&#8217;s the 3rd code chunk.<br />
   1. <script type="text/javascript">  
   2.     var pageRequestManager = Sys.WebForms.PageRequestManager.getInstance();  
   3.     pageRequestManager.add_pageLoading(onPageLoading{0});          
   4.   
   5.     function onPageLoading{1}(sender, e) {  
   6.         var itemToRemove = $('{2}');  
   7.         if (itemToRemove != null) {  
   8.             itemToRemove.remove();  
   9.         }  
  10.     }  
  11. </script>  </p>
<p>you have to write that into your resource file&#8230; got it?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Optimize UpdatePanel performance by avoiding unnecessary element disposal by Mauro</title>
		<link>http://www.blogfor.net/2008/05/27/optimize-updatepanel-performance-by-avoiding-unnecessary-element-disposal/comment-page-1/#comment-1196</link>
		<dc:creator>Mauro</dc:creator>
		<pubDate>Thu, 04 Jun 2009 07:59:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=23#comment-1196</guid>
		<description>I get the error &quot;Input string was not in a correct format&quot; on the line &quot;Return String.Format(System.Globalization.CultureInfo.InvariantCulture, Resources.UpdatePanelRemoveNodeOnPageLoading.Script, control.ClientID, control.ClientID, control.ClientID)&quot;

Do you have an idea of why this is happening?
My Script is a string that contains the javascript code posted above.

Thanks for your help</description>
		<content:encoded><![CDATA[<p>I get the error &#8220;Input string was not in a correct format&#8221; on the line &#8220;Return String.Format(System.Globalization.CultureInfo.InvariantCulture, Resources.UpdatePanelRemoveNodeOnPageLoading.Script, control.ClientID, control.ClientID, control.ClientID)&#8221;</p>
<p>Do you have an idea of why this is happening?<br />
My Script is a string that contains the javascript code posted above.</p>
<p>Thanks for your help</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Some thoughts on jQuery by Derek</title>
		<link>http://www.blogfor.net/2009/01/29/some-thoughts-on-jquery/comment-page-1/#comment-1056</link>
		<dc:creator>Derek</dc:creator>
		<pubDate>Wed, 04 Mar 2009 17:50:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=55#comment-1056</guid>
		<description>Coming from a background of javascript and DOM maniipulation you can see why ASP.NET initially drove me nuts (and often still does).  The insanity of the DOM created automatically by .NET makes creating complex javascript functions a nightmare.  The attempt to make web programming behave like application programming in order to make it easier for developers ends up making it a complex mess, and confusing as hell back in the day for those of us who had learned our programming on the web instead of building applications.

Don&#039;t get me started on &quot;AJAX for ASP.NET&quot;...

I&#039;ve settled into prototype.js myself, as it seems to be a bit more flexible.

- dk</description>
		<content:encoded><![CDATA[<p>Coming from a background of javascript and DOM maniipulation you can see why ASP.NET initially drove me nuts (and often still does).  The insanity of the DOM created automatically by .NET makes creating complex javascript functions a nightmare.  The attempt to make web programming behave like application programming in order to make it easier for developers ends up making it a complex mess, and confusing as hell back in the day for those of us who had learned our programming on the web instead of building applications.</p>
<p>Don&#8217;t get me started on &#8220;AJAX for ASP.NET&#8221;&#8230;</p>
<p>I&#8217;ve settled into prototype.js myself, as it seems to be a bit more flexible.</p>
<p>- dk</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Optimize UpdatePanel performance by avoiding unnecessary element disposal by andrew</title>
		<link>http://www.blogfor.net/2008/05/27/optimize-updatepanel-performance-by-avoiding-unnecessary-element-disposal/comment-page-1/#comment-984</link>
		<dc:creator>andrew</dc:creator>
		<pubDate>Mon, 09 Feb 2009 23:59:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=23#comment-984</guid>
		<description>First I&#039;ll speak to the the references question, then i&#039;ll tell you what i think you should do instead.  When the update panel performs a &quot;postback&quot; (microsoft calls this a partial-postback) the client doesn&#039;t know what will happen to the DOM controls inside the update panel.  If you look at the inner workings you&#039;ll notice that the update panel returns all mark-up found inside the refreshed update panels, this includes any new javascript blocks, and any changes to the ENTIRE viewstate, that&#039;s right, the entire viewstate is always passed back and forth during a partial-postback.  This is what is so &quot;expensive&quot; when you use an update panel and usually what makes dynamic control creation a nightmare.  So, during a partial-postback the client-side microsoft ajax framework parses the entire DOM tree to release any references in hopes to prevent JS memory leaks.  Depending on when and how you&#039;re managing you dynamic update panel creation things might just work.  If everything works correctly in your eyes as a web user this maybe a viable solution, but i&#039;d recommend you use a tool like sIEve to monitor any memory leaks. 
http://home.wanadoo.nl/jsrosman/

But it sounds to me like you&#039;re ready to move beyond the update panel.  I say this for multiple reasons but i&#039;ll tell you a couple now.  Using a webservice and rendering the results via javascript is going to give you a pretty large performance increase just because you&#039;ll be transmitting less data each round trip.  Secondly, everytime i&#039;ve worked with dynamic control creation using the update panel it has not gone well.  You need to decide how much work you want to put into this solution, but if you&#039;re looking for something that&#039;s going to scale well and be much more responsive then an update panel, please read on.  You should consider constructing a really light weight DTO to push search results back from a webservice and render those results from javascript once the call has completed.  It&#039;s really hard for me to guess what your setup is like but here is a little something to get you started. 

1) create a really simple class that has all the properties you&#039;ll be passing back from the search, also create a javascript version.
2) Create a simple webservice that you pass search terms it builds and serializes server-side search results and passes them as webservice results in JSON format.
3) Use the ajax control toolkit $common.createElementFromTemplate() method to build your results into fancy mark-up.
http://aspnetresources.com/blog/build_dom_with_toolkit_common_library.aspx
4) You&#039;ll need to hook-up the delete panel event to the newely constructed search results panel, but when that fires you should just be able to remove the whole panel from the DOM and be done with it.

Another Alternative:

ASP.NET AJAX Client Templates
http://quickstarts.asp.net/previews/ajax/

Although, not CTP there may be a much MUCH easier way for you to do this using the asp.net ajax futures preview.
http://www.microsoft.com/downloads/details.aspx?FamilyId=D7101C1A-5993-4F70-9944-4B98F312502D&amp;displaylang=en</description>
		<content:encoded><![CDATA[<p>First I&#8217;ll speak to the the references question, then i&#8217;ll tell you what i think you should do instead.  When the update panel performs a &#8220;postback&#8221; (microsoft calls this a partial-postback) the client doesn&#8217;t know what will happen to the DOM controls inside the update panel.  If you look at the inner workings you&#8217;ll notice that the update panel returns all mark-up found inside the refreshed update panels, this includes any new javascript blocks, and any changes to the ENTIRE viewstate, that&#8217;s right, the entire viewstate is always passed back and forth during a partial-postback.  This is what is so &#8220;expensive&#8221; when you use an update panel and usually what makes dynamic control creation a nightmare.  So, during a partial-postback the client-side microsoft ajax framework parses the entire DOM tree to release any references in hopes to prevent JS memory leaks.  Depending on when and how you&#8217;re managing you dynamic update panel creation things might just work.  If everything works correctly in your eyes as a web user this maybe a viable solution, but i&#8217;d recommend you use a tool like sIEve to monitor any memory leaks.<br />
<a href="http://home.wanadoo.nl/jsrosman/" onclick="javascript:pageTracker._trackPageview('/outbound/comment/home.wanadoo.nl');" rel="nofollow">http://home.wanadoo.nl/jsrosman/</a></p>
<p>But it sounds to me like you&#8217;re ready to move beyond the update panel.  I say this for multiple reasons but i&#8217;ll tell you a couple now.  Using a webservice and rendering the results via javascript is going to give you a pretty large performance increase just because you&#8217;ll be transmitting less data each round trip.  Secondly, everytime i&#8217;ve worked with dynamic control creation using the update panel it has not gone well.  You need to decide how much work you want to put into this solution, but if you&#8217;re looking for something that&#8217;s going to scale well and be much more responsive then an update panel, please read on.  You should consider constructing a really light weight DTO to push search results back from a webservice and render those results from javascript once the call has completed.  It&#8217;s really hard for me to guess what your setup is like but here is a little something to get you started. </p>
<p>1) create a really simple class that has all the properties you&#8217;ll be passing back from the search, also create a javascript version.<br />
2) Create a simple webservice that you pass search terms it builds and serializes server-side search results and passes them as webservice results in JSON format.<br />
3) Use the ajax control toolkit $common.createElementFromTemplate() method to build your results into fancy mark-up.<br />
<a href="http://aspnetresources.com/blog/build_dom_with_toolkit_common_library.aspx" onclick="javascript:pageTracker._trackPageview('/outbound/comment/aspnetresources.com');" rel="nofollow">http://aspnetresources.com/blog/build_dom_with_toolkit_common_library.aspx</a><br />
4) You&#8217;ll need to hook-up the delete panel event to the newely constructed search results panel, but when that fires you should just be able to remove the whole panel from the DOM and be done with it.</p>
<p>Another Alternative:</p>
<p>ASP.NET AJAX Client Templates<br />
<a href="http://quickstarts.asp.net/previews/ajax/" onclick="javascript:pageTracker._trackPageview('/outbound/comment/quickstarts.asp.net');" rel="nofollow">http://quickstarts.asp.net/previews/ajax/</a></p>
<p>Although, not CTP there may be a much MUCH easier way for you to do this using the asp.net ajax futures preview.<br />
<a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=D7101C1A-5993-4F70-9944-4B98F312502D&#038;displaylang=en" onclick="javascript:pageTracker._trackPageview('/outbound/comment/www.microsoft.com');" rel="nofollow">http://www.microsoft.com/downloads/details.aspx?FamilyId=D7101C1A-5993-4F70-9944-4B98F312502D&#038;displaylang=en</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Optimize UpdatePanel performance by avoiding unnecessary element disposal by Chris</title>
		<link>http://www.blogfor.net/2008/05/27/optimize-updatepanel-performance-by-avoiding-unnecessary-element-disposal/comment-page-1/#comment-967</link>
		<dc:creator>Chris</dc:creator>
		<pubDate>Thu, 05 Feb 2009 20:03:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=23#comment-967</guid>
		<description>hey, im creating google (j.k.).
this article is very interesting to me. As of right now, im developing a large .NET application that heavily uses AJAX, and im sure down the road we will be using it more.
I found this site googling &#039;remove updatepanel from DOM&#039; and im wondering if i can pick your brain.
I have a page in the app that consists of a bunch of &#039;panels&#039; that are all similar, these panels contain things like Search Results, where each panel is a new result, and as you search it add new panels. Now, these panels are basically an update panel (each one has its own) that has a div inside (the actual panel).
Right now im trying to figure out a better way to remove these panels (each panel has a close button). my old code would post back, and the btn_OnClick event would set the panel as hidden. This works but its quirky (and it posts back).
My new solution is to call a web service on click of the button, and the service would do anything client side that needs to be done (delete rows form a table). Then, on complete, i would like to delete the update panel from the DOM (this would then delete the DIV and everything inside would be stripped from the DOM). Im just wondering about what references are left after this deletetion? The update panel is hooked to events, do i need to delete those?

Basically what im asking you is: How do i delete an update panel from the DOM?

Thanks for your time, and hope to hear back.
-Chris L</description>
		<content:encoded><![CDATA[<p>hey, im creating google (j.k.).<br />
this article is very interesting to me. As of right now, im developing a large .NET application that heavily uses AJAX, and im sure down the road we will be using it more.<br />
I found this site googling &#8216;remove updatepanel from DOM&#8217; and im wondering if i can pick your brain.<br />
I have a page in the app that consists of a bunch of &#8216;panels&#8217; that are all similar, these panels contain things like Search Results, where each panel is a new result, and as you search it add new panels. Now, these panels are basically an update panel (each one has its own) that has a div inside (the actual panel).<br />
Right now im trying to figure out a better way to remove these panels (each panel has a close button). my old code would post back, and the btn_OnClick event would set the panel as hidden. This works but its quirky (and it posts back).<br />
My new solution is to call a web service on click of the button, and the service would do anything client side that needs to be done (delete rows form a table). Then, on complete, i would like to delete the update panel from the DOM (this would then delete the DIV and everything inside would be stripped from the DOM). Im just wondering about what references are left after this deletetion? The update panel is hooked to events, do i need to delete those?</p>
<p>Basically what im asking you is: How do i delete an update panel from the DOM?</p>
<p>Thanks for your time, and hope to hear back.<br />
-Chris L</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Concatenating values in t-sql select statements by phil</title>
		<link>http://www.blogfor.net/2008/04/19/concatenating-values-in-t-sql-select-statements/comment-page-1/#comment-538</link>
		<dc:creator>phil</dc:creator>
		<pubDate>Fri, 31 Oct 2008 01:14:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=8#comment-538</guid>
		<description>I don&#039;t understand your issue. The folowing query in SQL 2005:
select STUFF(   
(   
  SELECT &#039;,&#039; + object_name(object_id)
  FROM sys.objects   
  FOR xml PATH(&#039;&#039;)   
), 1, 1, &#039;&#039;)  

returns a result well over 256 characters:
sysrowsetcolumns,sysrowsets,sysallocunits,sysfiles1,syshobtcolumns,syshobts,sysftinds,sysserefs,sysowners,sysdbreg,sysprivs,sysschobjs,syslogshippers,syscolpars,sysxlgns,sysxsrvs,sysnsobjs,sysusermsgs,syscerts,sysrmtlgns,syslnklgns,sysxprops,sysscalartypes,systypedsubobjs,sysidxstats,sysiscols,sysendpts,syswebmethods,sysbinobjs,sysobjvalues,sysclsobjs,sysrowsetrefs,sysremsvcbinds,sysxmitqueue,sysrts,sysconvgroup,sysdesend,sysdercv,syssingleobjrefs,sysmultiobjrefs,sysdbfiles,sysguidrefs,syschildinsts,sysqnames,sysxmlcomponent,sysxmlfacet,sysxmlplacement,sysobjkeycrypts,sysasymkeys,syssqlguides,sysbinsubobjs,spt_fallback_db,spt_fallback_dev,spt_fallback_usg,QueryNotificationErrorsQueue,queue_messages_1003150619,EventNotificationErrorsQueue,queue_messages_1035150733,ServiceBrokerQueue,queue_messages_1067150847,spt_monitor,spt_values,DF__spt_value__statu__436BFEE3,MSreplication_options,sp_MSrepl_startup,sp_MScleanupmergepublisher

Is it possible your query tools is truncating the result?</description>
		<content:encoded><![CDATA[<p>I don&#8217;t understand your issue. The folowing query in SQL 2005:<br />
select STUFF(<br />
(<br />
  SELECT &#8216;,&#8217; + object_name(object_id)<br />
  FROM sys.objects<br />
  FOR xml PATH(&#8221;)<br />
), 1, 1, &#8221;)  </p>
<p>returns a result well over 256 characters:<br />
sysrowsetcolumns,sysrowsets,sysallocunits,sysfiles1,syshobtcolumns,syshobts,sysftinds,sysserefs,sysowners,sysdbreg,sysprivs,sysschobjs,syslogshippers,syscolpars,sysxlgns,sysxsrvs,sysnsobjs,sysusermsgs,syscerts,sysrmtlgns,syslnklgns,sysxprops,sysscalartypes,systypedsubobjs,sysidxstats,sysiscols,sysendpts,syswebmethods,sysbinobjs,sysobjvalues,sysclsobjs,sysrowsetrefs,sysremsvcbinds,sysxmitqueue,sysrts,sysconvgroup,sysdesend,sysdercv,syssingleobjrefs,sysmultiobjrefs,sysdbfiles,sysguidrefs,syschildinsts,sysqnames,sysxmlcomponent,sysxmlfacet,sysxmlplacement,sysobjkeycrypts,sysasymkeys,syssqlguides,sysbinsubobjs,spt_fallback_db,spt_fallback_dev,spt_fallback_usg,QueryNotificationErrorsQueue,queue_messages_1003150619,EventNotificationErrorsQueue,queue_messages_1035150733,ServiceBrokerQueue,queue_messages_1067150847,spt_monitor,spt_values,DF__spt_value__statu__436BFEE3,MSreplication_options,sp_MSrepl_startup,sp_MScleanupmergepublisher</p>
<p>Is it possible your query tools is truncating the result?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Concatenating values in t-sql select statements by chi</title>
		<link>http://www.blogfor.net/2008/04/19/concatenating-values-in-t-sql-select-statements/comment-page-1/#comment-534</link>
		<dc:creator>chi</dc:creator>
		<pubDate>Thu, 30 Oct 2008 19:59:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=8#comment-534</guid>
		<description>I really like this solution because I don&#039;t have to add more objects to the DB just to generate some ad-hoc report request. The only major issue that I have so fwar is that the result is limited to 256 characters. It&#039;s more apparant if you select the object name:

select STUFF(   
(   
  SELECT &#039;,&#039; + convert(varchar(12), object_id)   
  FROM sys.objects   
  FOR xml PATH(&#039;&#039;)   
), 1, 1, &#039;&#039;)  

Any idea how to resolve this issue? Highly appreciated!</description>
		<content:encoded><![CDATA[<p>I really like this solution because I don&#8217;t have to add more objects to the DB just to generate some ad-hoc report request. The only major issue that I have so fwar is that the result is limited to 256 characters. It&#8217;s more apparant if you select the object name:</p>
<p>select STUFF(<br />
(<br />
  SELECT &#8216;,&#8217; + convert(varchar(12), object_id)<br />
  FROM sys.objects<br />
  FOR xml PATH(&#8221;)<br />
), 1, 1, &#8221;)  </p>
<p>Any idea how to resolve this issue? Highly appreciated!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Understanding the Javascript language from a .Net based background by andrew</title>
		<link>http://www.blogfor.net/2008/09/22/understanding-the-javascript-language-from-a-net-based-background/comment-page-1/#comment-446</link>
		<dc:creator>andrew</dc:creator>
		<pubDate>Sun, 05 Oct 2008 15:07:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=43#comment-446</guid>
		<description>This is a great article on closures for .net programmers.  There are some great points in this article, specifically the emphasis on event binding and memory management, and of course the great explanation of a closure.  It&#039;s still hard for me to wrap my head around the idea of closures, or some of the really weird scenarios they can conjure up.  You&#039;re always saying that you need to know the language &quot;one level deeper&quot;, having the more intimate knowledge allows you to make the amazing cross language analogies, this is what REALLY helps me understand the ideas.  This is a great article and i&#039;ll be forcing anyone coming onto our team to read it!</description>
		<content:encoded><![CDATA[<p>This is a great article on closures for .net programmers.  There are some great points in this article, specifically the emphasis on event binding and memory management, and of course the great explanation of a closure.  It&#8217;s still hard for me to wrap my head around the idea of closures, or some of the really weird scenarios they can conjure up.  You&#8217;re always saying that you need to know the language &#8220;one level deeper&#8221;, having the more intimate knowledge allows you to make the amazing cross language analogies, this is what REALLY helps me understand the ideas.  This is a great article and i&#8217;ll be forcing anyone coming onto our team to read it!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Optimize UpdatePanel performance by avoiding unnecessary element disposal by phil</title>
		<link>http://www.blogfor.net/2008/05/27/optimize-updatepanel-performance-by-avoiding-unnecessary-element-disposal/comment-page-1/#comment-384</link>
		<dc:creator>phil</dc:creator>
		<pubDate>Mon, 25 Aug 2008 22:02:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=23#comment-384</guid>
		<description>I&#039;m sorry about that. Yes- the code snippet refers to a resource named &quot;UpdatePanelRemoveNodeOnPagLoading&quot; and a data element within the resource called &quot;Script&quot;. The value of the resource is the html escaped version of the javascript code above.</description>
		<content:encoded><![CDATA[<p>I&#8217;m sorry about that. Yes- the code snippet refers to a resource named &#8220;UpdatePanelRemoveNodeOnPagLoading&#8221; and a data element within the resource called &#8220;Script&#8221;. The value of the resource is the html escaped version of the javascript code above.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Optimize UpdatePanel performance by avoiding unnecessary element disposal by Andrés</title>
		<link>http://www.blogfor.net/2008/05/27/optimize-updatepanel-performance-by-avoiding-unnecessary-element-disposal/comment-page-1/#comment-382</link>
		<dc:creator>Andrés</dc:creator>
		<pubDate>Mon, 25 Aug 2008 17:51:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=23#comment-382</guid>
		<description>Hello. I don´t understand this line:
&quot;Return String.Format(System.Globalization.CultureInfo.InvariantCulture, Resources.UpdatePanelRemoveNodeOnPageLoading.Script, control.ClientID, control.ClientID, control.ClientID)&quot;
there&#039;s no Resources.UpdatePanelRemoveNodeOnPageLoading.Script, did you coded a class named UpdatePanelRemoveNodeOnPageLoading inside &quot;Resources&quot; with an string attribute representing the script for element disposal?

thanks.</description>
		<content:encoded><![CDATA[<p>Hello. I don´t understand this line:<br />
&#8220;Return String.Format(System.Globalization.CultureInfo.InvariantCulture, Resources.UpdatePanelRemoveNodeOnPageLoading.Script, control.ClientID, control.ClientID, control.ClientID)&#8221;<br />
there&#8217;s no Resources.UpdatePanelRemoveNodeOnPageLoading.Script, did you coded a class named UpdatePanelRemoveNodeOnPageLoading inside &#8220;Resources&#8221; with an string attribute representing the script for element disposal?</p>
<p>thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on YSlow and ASP.NET &#8211; Concatenating and Minifying Css and Js Resources by Rob</title>
		<link>http://www.blogfor.net/2008/04/20/yslow-and-aspnet-concatenating-and-minifying-css-and-js-resources/comment-page-1/#comment-358</link>
		<dc:creator>Rob</dc:creator>
		<pubDate>Wed, 13 Aug 2008 22:53:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=17#comment-358</guid>
		<description>We do virtually the same to merge and compress our CSS and JavaScript.

Although we use a .bat file for doing the merging and calling YUICompressor (called in our nant files during compilation). Which in reflection, I think you&#039;re use of nant commands is much better (using concat and then calling YUICompressor via nant). Batch files can be a bit fiddly. If I get time I&#039;ll change ours to be similar to yours. Cheers.</description>
		<content:encoded><![CDATA[<p>We do virtually the same to merge and compress our CSS and JavaScript.</p>
<p>Although we use a .bat file for doing the merging and calling YUICompressor (called in our nant files during compilation). Which in reflection, I think you&#8217;re use of nant commands is much better (using concat and then calling YUICompressor via nant). Batch files can be a bit fiddly. If I get time I&#8217;ll change ours to be similar to yours. Cheers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on YSlow and ASP.NET &#8211; Expires Header &#8211; Expression Builders (Part 2 of 3) by Rob</title>
		<link>http://www.blogfor.net/2008/04/21/yslow-and-aspnet-expires-header-expression-builders-part-2-of-3/comment-page-1/#comment-357</link>
		<dc:creator>Rob</dc:creator>
		<pubDate>Wed, 13 Aug 2008 22:44:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/2008/04/21/yslow-and-aspnet-expires-header-expression-builders-part-2-of-3/#comment-357</guid>
		<description>Interesting post. We came across a similar problem but used a slightly different method to solve it. We&#039;re still using IIS6 so miss out on a few of the luxuries of IIS7, namely URL rewriting. Instead we&#039;ve added Ionic&#039;s ISAPI Rewrite to IIS, and manage our CSS and JavaScript (haven&#039;t had time to redo all the image url&#039;s).

During the build (CruiseControl.Net) we get the last svn revision number. Part of the build process involves &quot;tokenising&quot; our .config files (ie Web.config) with environment variables. We pass in the revision number into the config file.

Then when generating the url for the CSS and JavaScript we include the AppSettings key as part of the path, something like &quot;/webresources/javascript/merged.7567.js&quot;. We then have a rewrite rule to point &quot;/webresources/javascript/merged.7567.js&quot; &gt; &quot;/webresources/javascript/merged.js&quot;. So to the browser it requests a url, but IIS points that request to a different file.


We chose not to use a querystring (ie merged.js?version=7567) as this doesn&#039;t follow HTTP guidelines. IE and Firefox will work regardless but I believe Safari and Opera may be stricter.

It&#039;s then just a matter of setting an Expires Header for the JavaScript and CSS, we currently have ours at 20 days.

http://my.huddle.net is the url. Doing some interesting stuff there. RESTful JSON API, Inversion Of Control, Distributed NHibernate Caching, Domain Driven Design etc...</description>
		<content:encoded><![CDATA[<p>Interesting post. We came across a similar problem but used a slightly different method to solve it. We&#8217;re still using IIS6 so miss out on a few of the luxuries of IIS7, namely URL rewriting. Instead we&#8217;ve added Ionic&#8217;s ISAPI Rewrite to IIS, and manage our CSS and JavaScript (haven&#8217;t had time to redo all the image url&#8217;s).</p>
<p>During the build (CruiseControl.Net) we get the last svn revision number. Part of the build process involves &#8220;tokenising&#8221; our .config files (ie Web.config) with environment variables. We pass in the revision number into the config file.</p>
<p>Then when generating the url for the CSS and JavaScript we include the AppSettings key as part of the path, something like &#8220;/webresources/javascript/merged.7567.js&#8221;. We then have a rewrite rule to point &#8220;/webresources/javascript/merged.7567.js&#8221; &gt; &#8220;/webresources/javascript/merged.js&#8221;. So to the browser it requests a url, but IIS points that request to a different file.</p>
<p>We chose not to use a querystring (ie merged.js?version=7567) as this doesn&#8217;t follow HTTP guidelines. IE and Firefox will work regardless but I believe Safari and Opera may be stricter.</p>
<p>It&#8217;s then just a matter of setting an Expires Header for the JavaScript and CSS, we currently have ours at 20 days.</p>
<p><a href="http://my.huddle.net" onclick="javascript:pageTracker._trackPageview('/outbound/comment/my.huddle.net');" rel="nofollow">http://my.huddle.net</a> is the url. Doing some interesting stuff there. RESTful JSON API, Inversion Of Control, Distributed NHibernate Caching, Domain Driven Design etc&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Grand Opening, Google Syntax Highlighter Fix by Darko Bunic</title>
		<link>http://www.blogfor.net/2007/12/12/grand-opening/comment-page-1/#comment-304</link>
		<dc:creator>Darko Bunic</dc:creator>
		<pubDate>Fri, 25 Jul 2008 13:45:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=3#comment-304</guid>
		<description>Yes, Google Syntax Highlighter plugin is very nice. I use it on my site www.redips.net to highlight PHP/HTML/CSS code. I also made some plugin improvements to minimize load of unused JavaScript brushes. To load some brushes, just describe them in posts custom fields.
Thank you!</description>
		<content:encoded><![CDATA[<p>Yes, Google Syntax Highlighter plugin is very nice. I use it on my site <a href="http://www.redips.net" onclick="javascript:pageTracker._trackPageview('/outbound/comment/www.redips.net');" rel="nofollow">http://www.redips.net</a> to highlight PHP/HTML/CSS code. I also made some plugin improvements to minimize load of unused JavaScript brushes. To load some brushes, just describe them in posts custom fields.<br />
Thank you!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Detecting authentication cookie expiration on asyncronous requests by Rui</title>
		<link>http://www.blogfor.net/2008/04/19/detecting-authentication-cookie-expiration-on-asyncronous-requests/comment-page-1/#comment-249</link>
		<dc:creator>Rui</dc:creator>
		<pubDate>Fri, 11 Jul 2008 11:22:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.blogfor.net/?p=6#comment-249</guid>
		<description>Thanks so much!</description>
		<content:encoded><![CDATA[<p>Thanks so much!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
