<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Nothing fancy</title><link>http://weblogs.asp.net/alexeigorkov/default.aspx</link><description>ASP.NET, JavaScript, Ajax, CSS </description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Where is my Microsoft Ajax 3.5 library standalone download?</title><link>http://weblogs.asp.net/alexeigorkov/archive/2009/09/26/where-is-my-microsoft-ajax-3-5-library-standalone-download.aspx</link><pubDate>Sat, 26 Sep 2009 10:31:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7217016</guid><dc:creator>AGS777</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/alexeigorkov/rsscomments.aspx?PostID=7217016</wfw:commentRss><comments>http://weblogs.asp.net/alexeigorkov/archive/2009/09/26/where-is-my-microsoft-ajax-3-5-library-standalone-download.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Today I visited &lt;A href="http://www.asp.net/ajax/downloads/"&gt;http://www.asp.net/ajax/downloads/&lt;/A&gt; page to download standalone version of Microsoft Ajax 3.5 client library and used "Download the AJAX Library" button as I surely did many times previously. The landing page contained only the following: "This page has been removed. Please visit the ASP.NET Developer Center &lt;A id=ctl00_mainContentContainer_ctl01 onclick="javascript:Track('ctl00_mainContentContainer_ctl00|ctl00_mainContentContainer_ctl01',this);" href="http://msdn.microsoft.com/asp.net"&gt;home page&lt;/A&gt; for further information." But I could not find any relevant "further information" on the ASP.NET Developer Center &lt;A id=ctl00_mainContentContainer_ctl01 onclick="javascript:Track('ctl00_mainContentContainer_ctl00|ctl00_mainContentContainer_ctl01',this);" href="http://msdn.microsoft.com/asp.net"&gt;home page&lt;/A&gt;. Only a link to the same &lt;A href="http://www.asp.net/ajax/downloads/"&gt;http://www.asp.net/ajax/downloads/&lt;/A&gt;&amp;nbsp;page I&amp;nbsp;came from. Could someone explain me what happened to this download?&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7217016" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/alexeigorkov/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/alexeigorkov/archive/tags/AJAX/default.aspx">AJAX</category></item><item><title>Firebug Lite 1.2 impressions</title><link>http://weblogs.asp.net/alexeigorkov/archive/2008/07/25/firebug-lite-1-2-impressions.aspx</link><pubDate>Fri, 25 Jul 2008 16:40:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6443187</guid><dc:creator>AGS777</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/alexeigorkov/rsscomments.aspx?PostID=6443187</wfw:commentRss><comments>http://weblogs.asp.net/alexeigorkov/archive/2008/07/25/firebug-lite-1-2-impressions.aspx#comments</comments><description>&lt;p&gt;Not to be verbose - I am really disappointed. Why? Because I was unable to use this hopefully excellent tool with my current development project.&lt;/p&gt;&lt;p&gt;The reason is that &lt;b&gt;pi.js&lt;/b&gt; library used in the current release of &lt;b&gt;Firebug Lite&lt;/b&gt; extends native JavaScript objects like String, Number, Array and so on. And some of the methods introduced in the library collide with overridings used in my project.&lt;/p&gt;&lt;p&gt;Yes, I know that it is not good idea to extend native JavaScript objects.&lt;/p&gt;&lt;p&gt;But main idea of the post is that while I think that any given application written for specific customer and specific environment CAN AFFORD to use such technique, but debugging tool that is supposed to be absolutely sandboxed and unobtrusive for its hosting environment can't be granted such privileges.&lt;/p&gt;&lt;p&gt;So I am totally disappointed by such design and hope it will be fixed in the subsequent release.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6443187" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/alexeigorkov/archive/tags/JavaScript/default.aspx">JavaScript</category></item><item><title>Firefox 3. XSLT Processing Engine bug?</title><link>http://weblogs.asp.net/alexeigorkov/archive/2008/06/21/firefox-3-xslt-processing-engine-bug.aspx</link><pubDate>Fri, 20 Jun 2008 21:21:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6300953</guid><dc:creator>AGS777</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/alexeigorkov/rsscomments.aspx?PostID=6300953</wfw:commentRss><comments>http://weblogs.asp.net/alexeigorkov/archive/2008/06/21/firefox-3-xslt-processing-engine-bug.aspx#comments</comments><description>&lt;p&gt;I stumbled upon really strange issue while researching unexpected behavior of existing web application under Firefox 3.&lt;/p&gt;&lt;p&gt;So, there are ultimately simplified steps to reproduce:&lt;/p&gt;&lt;p&gt;1. XML document:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br&gt;&amp;lt;items&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;item&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/item&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;item&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/item&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;item&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/item&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;lt;/items&amp;gt; &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;2. XSL stylesheet:&lt;/p&gt;&lt;p&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br&gt;&amp;lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:output method="html" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:template match="item"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr id="{id}"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:value-of select="id" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:template&amp;gt;&lt;br&gt;&amp;lt;/xsl:stylesheet&amp;gt;&lt;/p&gt;&lt;p&gt;3. Load these XML and XSL documents to Document instances.&lt;/p&gt;&lt;p&gt;4. Transform this XML document using given XSL stylesheet with the following code:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var processor = new XSLTProcessor();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; processor.importStylesheet(xsl);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var doc = processor.transformToDocument(xml);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;p&gt;In Firefox 2 we would get following document as a result of this utterly ordinary code:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;lt;transformiix:result xmlns:transformiix="http://www.mozilla.org/TransforMiix"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;TR id="1"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;TD&amp;gt;1&amp;lt;/TD&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/TR&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;TR id="2"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;TD&amp;gt;2&amp;lt;/TD&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/TR&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;TR id="3"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;TD&amp;gt;3&amp;lt;/TD&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/TR&amp;gt;&lt;br&gt;&amp;lt;/transformiix:result&amp;gt;&lt;/p&gt;&lt;p&gt;Since we used &lt;b&gt;transformToDocument &lt;/b&gt;and there is no root node in the resulting XML fragment then we have wrapping &lt;b&gt;&amp;lt;transformiix:result /&amp;gt;&lt;/b&gt; document element node.&lt;/p&gt;&lt;p&gt;But, as I said, in Firefox 3 result differs. I got following document:&lt;/p&gt;&lt;p&gt;&lt;b&gt;&amp;lt;transformiix:result xmlns:transformiix="http://www.mozilla.org/TransforMiix"&amp;gt;&lt;/b&gt;&lt;br&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;transformiix:result&amp;gt;&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TR id="1"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TD&amp;gt;1&amp;lt;/TD&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/TR&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TR id="2"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TD&amp;gt;2&amp;lt;/TD&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/TR&amp;gt;&lt;br&gt;&amp;nbsp;&lt;b&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/transformiix:result&amp;gt;&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;TR id="3"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TD&amp;gt;3&amp;lt;/TD&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/TR&amp;gt;&lt;br&gt;&lt;b&gt;&amp;lt;/transformiix:result&amp;gt;&lt;/b&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Do you see the difference? There is unexpected (at least to me) &lt;b&gt;&amp;lt;transformiix:result /&amp;gt;&lt;/b&gt; element wrapping first two &amp;lt;tr /&amp;gt; elements in the resulting document.&lt;/p&gt;&lt;p&gt;And it gets event more interesting with an increase of the number of items in the original document. For example with four items we would get:&lt;/p&gt;&lt;p&gt;&lt;b&gt;&amp;lt;transformiix:result xmlns:transformiix="http://www.mozilla.org/TransforMiix"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;transformiix:result&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;transformiix:result&amp;gt;&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TR id="1"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TD&amp;gt;1&amp;lt;/TD&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/TR&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TR id="2"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TD&amp;gt;2&amp;lt;/TD&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/TR&amp;gt;&lt;br&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/transformiix:result&amp;gt;&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TR id="3"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TD&amp;gt;3&amp;lt;/TD&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/TR&amp;gt;&lt;br&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/transformiix:result&amp;gt;&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TR id="4"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TD&amp;gt;4&amp;lt;/TD&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/TR&amp;gt;&lt;br&gt;&lt;b&gt;&amp;lt;/transformiix:result&amp;gt;&lt;/b&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;And so on...&lt;/p&gt;&lt;p&gt;This behavior starts when the number of elements is equal to or grater than 3.&lt;/p&gt;&lt;p&gt;&amp;nbsp;Any thoughts? &lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6300953" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/alexeigorkov/archive/tags/JavaScript/default.aspx">JavaScript</category></item><item><title>.NET Framework 1.1 Service Pack 1 and Page.RegisterStartupScript</title><link>http://weblogs.asp.net/alexeigorkov/archive/2008/05/17/net-1-1-service-pack-1-and-page-registerstartupscript.aspx</link><pubDate>Sat, 17 May 2008 12:36:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6199383</guid><dc:creator>AGS777</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/alexeigorkov/rsscomments.aspx?PostID=6199383</wfw:commentRss><comments>http://weblogs.asp.net/alexeigorkov/archive/2008/05/17/net-1-1-service-pack-1-and-page-registerstartupscript.aspx#comments</comments><description>&lt;p&gt;First, if you are are developing exclusively ASP.NET 2.0+ applications, sorry, there is nothing interesting for you in this post.&lt;/p&gt;&lt;p&gt;Second, if you are involved in some ASP.NET 1.1 projects and have no plans to install new development environment, then, sorry again, there is probably no reason for you to read on either. Ok, I've done all I could to warn you against reading it. Don't blame me for wasting you time, because I am going to start from the very beginning.&lt;/p&gt;&lt;p&gt;One of my current projects is ASP.NET 1.1 Web Application. It is already released and rather stable. And yesterday I got new development machine on my workplace and migrated all my data to it. .NET Frameworks 1.1, 2.0, 3.0, 3.5 were preinstalled before I first logged in (thanks to our system administrators). I installed VS 2003 and SP1 for it, VS 2008, SVN client, some other necessary utilities and components. Then, updated sources from source control for the mentioned ASP.NET 1.1 Web Application and started it. Bang! Script error - some variable is undefined.&lt;/p&gt;&lt;p&gt;Actually there were a bunch of such errors on the page. As I intentionally mentioned earlier, the application is stable. And this particular page was not changed for quite some time. &lt;/p&gt;&lt;p&gt;Brief research of the generated HTML source, code-behind class and respective web controls revealed the cause of the exception: there was a sequence of similar Page.RegisterStartupScript statements which went in pairs. The first one in a pair registered some JavaScript object, and the second one - used the object in another declaration.&lt;br&gt;&lt;/p&gt;&lt;p&gt;First I checked source control's log - no related changes. Then, the next suspect - application configuration changes that could cause such behavior. But no, all the related controls' declarations on the page are static.&lt;/p&gt;&lt;p&gt;Ok, code was not changed, application is working fine on QA environment. So, something is wrong with my new machine. But what?&amp;nbsp;&lt;/p&gt;&lt;p&gt;I had a dim recollection that there is something wrong with the sequence of script registration in ASP.NET 1.1. But common sense told me that if something wrong could happen then it would had happened long ago.&lt;/p&gt;&lt;p&gt;Still, I opened Reflector and found such code inside RegisterScriptBlock method of System.Web.UI.Page class:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (scriptBlocks == null)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scriptBlocks = new HybridDictionary();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;/p&gt;&lt;p&gt;As you probably well aware of, HybridDictionary changes its internal storage from ListDictionary to Hashtable starting from its ninth element. So, of course we cannot rely on any specific order of script registrations if script blocks are stored in HybridDictionary. But how did it work earlier and how the same code works on development server and QA environment without any bugs reported?&amp;nbsp;&lt;/p&gt;&lt;p&gt;So, I copied Reflector to the development server and found following code in the same RegisterScriptBlock method that I reviewed on my machine:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (scriptBlocks == null)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scriptBlocks = new ListDictionary();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;/p&gt;&lt;p&gt;The code was fixed. But where did the fix come from? I recalled that there is a service pack for .NET 1.1 that I installed on my old development machine several years ago. Google promptly gave me a &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=a8f5654f-088e-40b2-bbdb-a83353618b38&amp;amp;displaylang=en" title=".NET 1.1 Service Pack 1" target="_blank" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=a8f5654f-088e-40b2-bbdb-a83353618b38&amp;amp;displaylang=en"&gt;link&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;File name: NDP1.1sp1-KB867460-X86.exe, Version: 1, Date Published: 8/30/2004, Download Size: 10.2 MB &lt;br&gt;&lt;/p&gt;&lt;p&gt;Why am I presenting all this information here? Because the fix did not help, though I was almost certain that it should. The same HybridDictionary.&lt;/p&gt;&lt;p&gt;That's was fiasco. My working day was over several hours ago. Finish.&lt;/p&gt;&lt;p&gt;But today I decided to reproduce the issue at home. Fortunately I had a virtual machine with Windows XP and fortunately the copy of .NET 1.1 System.Web.dll had the same version as the one at work (i.e. HybridDictionary is used in RegisterScriptBlock).&lt;/p&gt;&lt;p&gt;So I started googling again and found the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=281FB2CD-C715-4F05-A01F-0455D2D9EBFB&amp;amp;displaylang=en" title=".NET 1.1 Service Pack 1" target="_blank" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=281FB2CD-C715-4F05-A01F-0455D2D9EBFB&amp;amp;displaylang=en"&gt;second service pack&lt;/a&gt;. Strangely enough it has the same name (i.e. .NET Framework 1.1 &lt;b&gt;Service Pack 1&lt;/b&gt;) though with a lengthy suffix (.NET Framework 1.1 Service Pack 1 SYSTEM.WEB.DLL and MSCOREE.DLL Security Update for Windows 2000, Windows XP, Windows 2003 Server x64/IA64 and Windows 2003 Server R2 x64/IA64) . &lt;br&gt;&lt;/p&gt;&lt;p&gt;Like the previous service pack that I found, description for this one states that its purpose - security improvements. No mentions of ASP.NET-specific modifications. I could not find any documentation which describes the changes in detail.&lt;/p&gt;&lt;p&gt;But the main thing is that this second "Service Pack 1" done what I wanted. Eventually I had my ListDictionary back.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br&gt;The summary is: &lt;/p&gt;&lt;p&gt;1) there are at least TWO patches called ".NET 1.1 Service Pack 1"; &lt;/p&gt;&lt;p&gt;2) both of them state that they are focused on security improvements, but&lt;/p&gt;&lt;p&gt;3) one of them changes at least one fundamental aspect of ASP.NET 1.1 behavior.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br&gt;Thank you for reading. Good luck.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6199383" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/alexeigorkov/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/alexeigorkov/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Array.prototype.slice vs manual array creation</title><link>http://weblogs.asp.net/alexeigorkov/archive/2008/02/18/array-prototype-slice-vs-manual-array-creation.aspx</link><pubDate>Sun, 17 Feb 2008 22:22:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5809494</guid><dc:creator>AGS777</dc:creator><slash:comments>11</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/alexeigorkov/rsscomments.aspx?PostID=5809494</wfw:commentRss><comments>http://weblogs.asp.net/alexeigorkov/archive/2008/02/18/array-prototype-slice-vs-manual-array-creation.aspx#comments</comments><description>&lt;DIV style="FONT-SIZE: 15px; FONT-FAMILY: Georgia,'Times New Roman',serif"&gt;
&lt;P&gt;In a constant pursuit of new and more effective ways to implement common JavaScript code patterns I've recently found out (sorry for such probably trivial finding but it was a real news for me) that Array.prototype.slice method can be easily used to make instance of Array from an arguments object. &lt;BR&gt;I instantly decided to use it in my current projects. Currently the same task is performed by simple iteration through members of the arguments object and filling in respective members of a new Array instance. &lt;BR&gt;I was pretty sure that performance of the new variant will be significantly better. It is a native method call after all instead of interpreted JavaScript code. Nevertheless, I wanted to run simple comparison tests and wrote following code:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/alexeigorkov/WindowsLiveWriter/Array.prototy.slicevsmanualarraycreation_1328/code_2.png" mce_href="http://weblogs.asp.net/blogs/alexeigorkov/WindowsLiveWriter/Array.prototy.slicevsmanualarraycreation_1328/code_2.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" alt=code src="http://weblogs.asp.net/blogs/alexeigorkov/WindowsLiveWriter/Array.prototy.slicevsmanualarraycreation_1328/code_2.png" border=0 mce_src="http://weblogs.asp.net/blogs/alexeigorkov/WindowsLiveWriter/Array.prototy.slicevsmanualarraycreation_1328/code_2.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The code is self-explanatory. I used four arguments for method calls. 10000 iterations. An alias for Array.prototype.slice method was added to avoid unnecessary lookup.&lt;/P&gt;
&lt;P&gt;The results were surprising. You can see them on the screenshot below. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/alexeigorkov/WindowsLiveWriter/Array.prototy.slicevsmanualarraycreation_1328/comparison_2.png" mce_href="http://weblogs.asp.net/blogs/alexeigorkov/WindowsLiveWriter/Array.prototy.slicevsmanualarraycreation_1328/comparison_2.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" alt=comparison src="http://weblogs.asp.net/blogs/alexeigorkov/WindowsLiveWriter/Array.prototy.slicevsmanualarraycreation_1328/comparison_2.png" border=0 mce_src="http://weblogs.asp.net/blogs/alexeigorkov/WindowsLiveWriter/Array.prototy.slicevsmanualarraycreation_1328/comparison_2.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Of the four major browsers that I tested the code against, (FF 3.0b3, IE7, Opera 9.50 Alpha and Safari 3.0.4 (Windows)) only Safari proved my initial expectations. &lt;BR&gt;Why is that? Did I make some error in my test code that I can't notice? &lt;/P&gt;
&lt;P&gt;By the way, Opera 9.5 is really fast.&lt;/P&gt;&lt;/DIV&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5809494" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/alexeigorkov/archive/tags/JavaScript/default.aspx">JavaScript</category></item></channel></rss>