<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Web Control Development</title><link>http://blogs.interknowlogy.com/joelrumerman/category/82.aspx</link><description>Web Control Development</description><dc:language>en-US</dc:language><generator>.Text Version 0.95.2004.111</generator><item><dc:creator>Joel Rumerman</dc:creator><title>JS Intellisense in Orcas</title><link>http://blogs.interknowlogy.com/joelrumerman/archive/2007/03/03/12132.aspx</link><pubDate>Sat, 03 Mar 2007 17:43:00 GMT</pubDate><guid>http://blogs.interknowlogy.com/joelrumerman/archive/2007/03/03/12132.aspx</guid><description>&lt;p&gt;It&amp;#8217;s finally here!!&lt;/p&gt;
&lt;p&gt;JavaScript intellisense is available in the March 2007 CTP of Orcas (the next Visual Studio). It works well with plain old JavaScript, but it really shines with ASP.NET AJAX. &lt;/p&gt;
&lt;p&gt;Jeff King does a good job of documenting the new capabilities in this &lt;a href="http://blogs.msdn.com/webdevtools/archive/2007/03/02/jscript-intellisense-in-orcas.aspx"&gt;blog entry&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For us ASP.NET Server Control developers that utilize client capabilities, this is a huge boon for us. When was the last time JS intellisense was updated?? Anybody? I have no idea&amp;#8230; I don&amp;#8217;t think it&amp;#8217;s changed since the first release of Visual Studio. Having to program ASP.NET AJAX client runtimes with intellisense &amp;#8230; AWESOME!!!&lt;/p&gt;
&lt;p&gt;Also, I mentioned an excellent article in my webcast that describes the prototype/closure model. I finally found it&amp;#8230; &lt;a href="http://www.jibbering.com/faq/faq_notes/closures.html"&gt;here it is&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;IMHO, it&amp;#8217;s the single best article that describes closures available.&lt;/p&gt;&lt;img src ="http://blogs.interknowlogy.com/joelrumerman/aggbug/12132.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Joel Rumerman</dc:creator><title>ASP.NET AJAX Client Component Development WebCast</title><link>http://blogs.interknowlogy.com/joelrumerman/archive/2007/03/01/12120.aspx</link><pubDate>Thu, 01 Mar 2007 12:08:00 GMT</pubDate><guid>http://blogs.interknowlogy.com/joelrumerman/archive/2007/03/01/12120.aspx</guid><description>&lt;p&gt;Hello Everyone,&lt;/p&gt;
&lt;p&gt;Thanks so much for attending today&amp;#8217;s webcast! We had 150+ attend and this is just a testament to how important and interesting a subject MS ASP.NET AJAX is. &lt;/p&gt;
&lt;p&gt;As promised, here is the source code from today&amp;#8217;s webcast. This is free source code, no limits on modifications, re-use, redeployment to clients, etc. I don&amp;#8217;t even have my name in it yet. &lt;/p&gt;
&lt;p&gt;I will add however, that the component that is supplied in this source code only works in certain situations. Try sticking a button you want to disable within an UpdatePanel and see what happens. It&amp;#8217;ll work the first time, but in subsequent partial postbacks. There&amp;#8217;s another, longer version of the source code that I&amp;#8217;m working on that is more fully-baked that can be reused successfully across web applications and in different scenarios.&lt;/p&gt;
&lt;p&gt;Again, thanks for joining me today on the webcast. I hope you enjoyed it and learned something interesting! Stay tuned for more webcasts regarding ASP.NET AJAX custom development. I think I&amp;#8217;m going to put a couple of more in the pipeline.&lt;/p&gt;
&lt;p&gt;&lt;a title="Download Source" HREF="/downloads/joelrumerman/MSDN%20Source%20Code.zip"&gt;Download Source&lt;/a&gt;&lt;/p&gt;&lt;img src ="http://blogs.interknowlogy.com/joelrumerman/aggbug/12120.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Joel Rumerman</dc:creator><title>February SD .NET Developers Group Talk on ASP.NET AJAX Component Creation</title><link>http://blogs.interknowlogy.com/joelrumerman/archive/2007/02/07/11291.aspx</link><pubDate>Wed, 07 Feb 2007 16:01:00 GMT</pubDate><guid>http://blogs.interknowlogy.com/joelrumerman/archive/2007/02/07/11291.aspx</guid><description>&lt;p&gt;Thanks to everyone that attended the meeting and heard my talk about ASP.NET AJAX Component Development. We had a great time hosting and I hope it sparked some interest in ASP.NET AJAX Component development and that you were able to learn something new.&lt;/p&gt;
&lt;p&gt;Here are the slides and code from my presentation. I&amp;#8217;m not attaching the postback disabler control at the moment (the last thing I demoed at the meeting) as it&amp;#8217;s not ready to go yet and I think I&amp;#8217;ll blog more in-depth about it in the next few weeks.&lt;/p&gt;
&lt;p&gt;Happy coding, and thanks for attending!!&lt;/p&gt;
&lt;p&gt;&lt;A href="http://blogs.interknowlogy.com/downloads/joelrumerman/ASP.NET%20AJAX%20Component%20Development.ppt"&gt;File Attachment: ASP.NET AJAX Component Development.ppt (745 KB)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;A href="http://blogs.interknowlogy.com/downloads/joelrumerman/DemoAJAXWebsite.zip"&gt;File Attachment: DemoAJAXWebsite.zip (22 KB)&lt;/a&gt;&lt;/p&gt;&lt;img src ="http://blogs.interknowlogy.com/joelrumerman/aggbug/11291.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Joel Rumerman</dc:creator><title>Atlas: Page Lifecycle for Partial Postbacks</title><link>http://blogs.interknowlogy.com/joelrumerman/archive/2006/04/23/1933.aspx</link><pubDate>Sun, 23 Apr 2006 18:58:00 GMT</pubDate><guid>http://blogs.interknowlogy.com/joelrumerman/archive/2006/04/23/1933.aspx</guid><description>&lt;p&gt;A piece of information that I&amp;#8217;ve tended to gloss over until now was that during a partial postback by means of an Atlas UpdatePanel, the server life cycle goes through a normal postback life cycle. I never gave this much thought until I was considering what this meant for performance. Were all of my controls re-rendering even if they weren&amp;#8217;t contained within an UpdatePanel that was set to update? How did the server side Atlas framework know to only send the HTML for the controls that were contained in an updating UpdatePanel down stream? Was there a way to make my code perform better knowing that I was working within the Atlas framework?&lt;/p&gt;
&lt;p&gt;The simple answers: &lt;strong&gt;Yes. The framework is smart. I&amp;#8217;m not too sure.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The more complete answers &amp;#8230;.&lt;/p&gt;
&lt;p&gt;All controls are participating in the postback in normal life cycle fashion. Their viewstate is loaded; their controls created; their data, bound. The major difference occurred when it came to any of the render methods (BeginRender, Render, EndRender, AddAttributesToRender, etc.) that normally had an HtmlWriter parameter. Here, in one of the previously stated methods (e.g. Render) an updating UpdatePanel used a normal HtmlWriter parameter as expected. However, in the same method within a control that wasn&amp;#8217;t within an updating UpdatePanel, the parameter was of type &lt;strong&gt;Microsoft.Web.UI.DummyHtmlTextWriter&lt;/strong&gt;. Whoa &amp;#8230; what this means is that there are two HtmlWriters. Whether you are going to be re-rendered down to the browser or not determines which HtmlWriter is used.  (BTW, thank Microsoft for creating the DummyHtmlWriter type. I&amp;#8217;m pretty sure that they could have used a NullTextWriter when they didn&amp;#8217;t want a control&amp;#8217;s output to be sent to the browser, but if nothing else, the DummyHtmlWriter makes it really clear that this control isn&amp;#8217;t actually going to be sent to the browser.) &lt;/p&gt;
&lt;p&gt;The next logical question I had was why Microsoft didn&amp;#8217;t program it so that if a control wasn&amp;#8217;t going to be re-rendered and sent down to the browser it never entered the Render phase and therefore eliminating the need for the new DummyHtmlWriter type? The answer actually came from Microsoft because I was stuck on this one for a while. The reason for this was because the EventValidation hashcode is created in the Render method and when a page has EventValidation enabled (as all pages do normally and it&amp;#8217;s the default) the base Render method must execute at the appropriate time in order for this hashcode to be created. (As a side bar, to understand the Event Validation, see &lt;a href="http://odetocode.com/Blogs/scott/archive/2006/03/20/3145.aspx" target="_blank"&gt;K Scott Allen's Blog Entry on Event Validation&lt;/a&gt; or &lt;a href="http://blogs.gotdotnet.com/sburke/archive/2006/04/14/576421.aspx" target="_blank"&gt;Shawn Burke's Blog Entry on the Cascading Dropdown Control&lt;/a&gt;, but it pretty much prevents unauthorized postback values.) Therefore, in order for a page&amp;#8217;s EventValidation hashcode to be correct, all of its child controls must execute their render methods to create their hashcodes which can be passed up the chain and hence the reason that all controls must be re-rendered.&lt;/p&gt;
&lt;p&gt;Up until now, I&amp;#8217;ve answered my first two questions, but is there a way, knowing I&amp;#8217;m working within the Atlas Framework, to program slightly differently to make my code run faster? Truth-be-told, I don&amp;#8217;t see too much. There&amp;#8217;s a basic knowledge of knowing that I&amp;#8217;m in a postback and therefore loading or not loading data as appropriate, but other than that I&amp;#8217;m not sure. &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;A question remains &amp;#8230; I have a drop down with the values 1, 2, 3. They are rendered initially, but not re-rendered on a postback. An UpatePanel causes a partial postback (does not contain the dropdown). Will I get an EventValidation exception if I perform a normal full postback? So normally if I perform a postback I would have to re-render the dropdown either from ViewState or from my initial data in order for the dropdown to display. But, if I perform a partial postback my dropdown values will still exist on the page because I&amp;#8217;m not replacing the Html associated to that area of the page. But the page&amp;#8217;s EventValidation hashcode won&amp;#8217;t contain the dropdown&amp;#8217;s values because they were never re-rendered. What happens when I perform a normal postback?? I&amp;#8217;ve been sitting in front of my computer on an awesome Sunday for way too long to test this right now, but I&amp;#8217;ll post a follow up soon. &lt;/p&gt;&lt;img src ="http://blogs.interknowlogy.com/joelrumerman/aggbug/1933.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>