<?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>Let me explain one more time why the Atlas compatibility layer works this way...</title><link>http://weblogs.asp.net/bleroy/archive/2006/04/13/Let-me-explain-one-more-time-why-the-Atlas-compatibility-layer-works-this-way_2E002E002E00_.aspx</link><description>It&amp;#39;s the second time in just a few days that I see blog comments attack Atlas on its compatibility layer. I&amp;#39;ve tried to explain a few days ago why we made this design choice but I think it deserves an even more detailed explanation... There are</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>re: Let me explain one more time why the Atlas compatibility layer works this way...</title><link>http://weblogs.asp.net/bleroy/archive/2006/04/13/Let-me-explain-one-more-time-why-the-Atlas-compatibility-layer-works-this-way_2E002E002E00_.aspx#1499176</link><pubDate>Wed, 31 Jan 2007 05:14:06 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1499176</guid><dc:creator>Bertrand Le Roy</dc:creator><author>Bertrand Le Roy</author><description>&lt;p&gt;Ali: please contact me through the contact form of this blog.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1499176" width="1" height="1"&gt;</description></item><item><title>Atlas Timer is not working in Fire Fox</title><link>http://weblogs.asp.net/bleroy/archive/2006/04/13/Let-me-explain-one-more-time-why-the-Atlas-compatibility-layer-works-this-way_2E002E002E00_.aspx#1498590</link><pubDate>Wed, 31 Jan 2007 04:01:08 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1498590</guid><dc:creator>Ali Muhammad</dc:creator><author>Ali Muhammad</author><description>&lt;p&gt;Dear freinds,&lt;/p&gt;
&lt;p&gt;I have a web application developed in vb.net. I use &lt;/p&gt;
&lt;p&gt;Atlas Timer control to update my update panel . This application working fine on internet explorer but not envoking timer in fire fox... any buddy hving clue kindly help me&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;
&lt;p&gt;Ali.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1498590" width="1" height="1"&gt;</description></item><item><title>DOM events in the Microsoft AJAX Library</title><link>http://weblogs.asp.net/bleroy/archive/2006/04/13/Let-me-explain-one-more-time-why-the-Atlas-compatibility-layer-works-this-way_2E002E002E00_.aspx#857577</link><pubDate>Tue, 07 Nov 2006 00:26:44 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:857577</guid><dc:creator>Atlas and more</dc:creator><author>Atlas and more</author><description>&lt;p&gt;In previous CTPs, the client-side DOM event model was the IE model. You would use attachEvent and get&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=857577" width="1" height="1"&gt;</description></item><item><title>re: Let me explain one more time why the Atlas compatibility layer works this way...</title><link>http://weblogs.asp.net/bleroy/archive/2006/04/13/Let-me-explain-one-more-time-why-the-Atlas-compatibility-layer-works-this-way_2E002E002E00_.aspx#470132</link><pubDate>Tue, 15 Aug 2006 19:13:51 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:470132</guid><dc:creator>Colin</dc:creator><author>Colin</author><description>That's very good to hear! 

I'm consistently impressed by the overall coolness of Atlas and am excited to see it grow. There are a few kinks to work out, but I have no doubt the Atlas client libraries will eventually wipe the floor with other AJAX/JavaScript frameworks.

&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=470132" width="1" height="1"&gt;</description></item><item><title>re: Let me explain one more time why the Atlas compatibility layer works this way...</title><link>http://weblogs.asp.net/bleroy/archive/2006/04/13/Let-me-explain-one-more-time-why-the-Atlas-compatibility-layer-works-this-way_2E002E002E00_.aspx#470104</link><pubDate>Tue, 15 Aug 2006 18:03:23 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:470104</guid><dc:creator>Bertrand Le Roy</dc:creator><author>Bertrand Le Roy</author><description>&lt;p&gt;Colin: these are great points. We had arrived to the same conclusion about the extensibility of the model. The new solution we're developing is more conventional and won't perform as well, but it will be easier to add new browsers even if they don't provide good extensibility points.&lt;/p&gt;
&lt;p&gt;Fortunately, Atlas did not ship yet, so we can still take user feedback into account and revise what seemed to be good decisions at the time.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=470104" width="1" height="1"&gt;</description></item><item><title>re: Let me explain one more time why the Atlas compatibility layer works this way...</title><link>http://weblogs.asp.net/bleroy/archive/2006/04/13/Let-me-explain-one-more-time-why-the-Atlas-compatibility-layer-works-this-way_2E002E002E00_.aspx#470088</link><pubDate>Tue, 15 Aug 2006 17:27:03 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:470088</guid><dc:creator>Colin</dc:creator><author>Colin</author><description>I really think you made the wrong decision with the compat layer and all the window.event stuff. 

If you're not going to adhere to standards, and you're creating such a rich, proprietary javascript API anyway, then why not have a new function for observing events like the Prototype Framework does with Event.observe()?

Basically you're asking developers to learn a beautiful library which introduces things like inheritance, Atlas XML script, etc. Asking developers to learn two new functions: observe() and stopObserving(), for example, would be extremely trivial.

Also, I think your worry about changing the entire code-base upon introduction of a new browser is unwarrented. A properly engineered system can simply provide self-registering strategies which would require no change to the code-base, only a new strategy file.

E.g.

//expose some function like:
Atlas.MapEventModel( browserEventStrategy ){}

Assuming that each browser/compatibility strategy implements the proper contract, all the functionality needed to map DOM events to the Atlas framework would be taken care of compositionally in an extensible and maintainable manner.

As it is now, you're claiming that the reason you implmented the compat layer the way you did is because other browsers are extensible in ways IE isn't. This implies the assumption that any new browser that comes out will be as extensible as the rest which is very very dangerous. What if a browser comes out that doesn't allow you to hook up window.event? It's very possible!

The suggested alternative, on the other hand, is more likely to be able to work around the quirks of browser/capability event incompatibilities present and future. Event handling would happen through a consistant interface that is easy to learn, and the underlying details of providing the mapping to the consistent interface would be properly encapsulated into files such that each are independently updatable and easy to introduce as new browsers with different capabilities come along.&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=470088" width="1" height="1"&gt;</description></item><item><title>Blog Spotlight - April 8 to 14</title><link>http://weblogs.asp.net/bleroy/archive/2006/04/13/Let-me-explain-one-more-time-why-the-Atlas-compatibility-layer-works-this-way_2E002E002E00_.aspx#452140</link><pubDate>Mon, 12 Jun 2006 20:18:15 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:452140</guid><dc:creator>Jeff W. Barnes</dc:creator><author>Jeff W. Barnes</author><description>A lot of cool stuff on the wire this week:&lt;br&gt;&lt;br&gt;Consequence of leaving debug=&amp;amp;quot;true&amp;amp;quot; enabled &lt;br&gt;Rick Strahl...&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=452140" width="1" height="1"&gt;</description></item><item><title>re: Let me explain one more time why the Atlas compatibility layer works this way...</title><link>http://weblogs.asp.net/bleroy/archive/2006/04/13/Let-me-explain-one-more-time-why-the-Atlas-compatibility-layer-works-this-way_2E002E002E00_.aspx#444804</link><pubDate>Tue, 02 May 2006 16:54:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:444804</guid><dc:creator>Bertrand Le Roy</dc:creator><author>Bertrand Le Roy</author><description>Kris: that's only the theory. I really wish it was true but it's not. The standard implementation is incomplete or inconsistent in *all* browsers (although I agree that IE6 is the worst on that point (but on the other hand, it implements non-standard stuff that's absolutely necassary like pixelLeft and that other browsers are slowly implementing despite the non-standardness because they are just useful and were oversights of the standards but I digress)). The incompleteness can especially be felt in Safari (example: the lack of onload event on all elements) and the inconsistencies comes from the fact that many standards are vague in places and open to interpretation.&lt;br&gt;Plus, the 5% you're talking about is a huge number for us as framework developers who need to make it as easy as possible for third party developers to develop new components. These 5% (or whatever is the real number) is precisely what we need to abstract. These are very complex problems that the average developer just hasn't time to investigate and solve. Look at how complex it is to get the pixel coordinates of an element relative to the top-left corner of the page. It is absolutely necessary to abstract that. Look at the differences in the event models (IE is the one that's wrong here of course but I don't care about who's wrong, I just need to fix it). We just can't constantly deal with two incompatible event models, we need to make that consistent.&lt;br&gt;It's absolutely true that there are already other libraries out there that do a good job at cross-browser support but you need to take into account that:&lt;br&gt;* they all have some form of compat layer even if it's implemented differently.&lt;br&gt;* they do a lot less than &lt;a title="" href="http://go.microsoft.com/fwlink/?LinkId=57512" target="_blank"&gt;Atlas&lt;/a&gt; (none of them do anything like xml-script for example).&lt;br&gt;* &lt;a title="" href="http://go.microsoft.com/fwlink/?LinkId=57512" target="_blank"&gt;Atlas&lt;/a&gt; has constraints that other frameworks don't have (such as back-compat with &lt;a title="" href="http://www.asp.net" target="_blank"&gt;ASP.NET&lt;/a&gt;, including third-party controls).&lt;br&gt;* &lt;a title="" href="http://go.microsoft.com/fwlink/?LinkId=57512" target="_blank"&gt;Atlas&lt;/a&gt; is not even in beta state. We're fixing bugs actively.&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=444804" width="1" height="1"&gt;</description></item><item><title>Standards will help you</title><link>http://weblogs.asp.net/bleroy/archive/2006/04/13/Let-me-explain-one-more-time-why-the-Atlas-compatibility-layer-works-this-way_2E002E002E00_.aspx#444799</link><pubDate>Tue, 02 May 2006 13:41:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:444799</guid><dc:creator>kris</dc:creator><author>kris</author><description>hi, &lt;br&gt;&lt;br&gt;i still don't understand why there is a full blown compatibility layer in &lt;a title="" href="http://go.microsoft.com/fwlink/?LinkId=57512" target="_blank"&gt;Atlas&lt;/a&gt;.  javascript, (x)html, css ... are all well defined by the w3c. &lt;br&gt;&lt;br&gt;so if you use the standards (as they should be used) it will work in any modern browser. i'd say only in 5% you will have to to a dirty trick to make your scripts work in ie. because ie6's implementation of standards is quite poor.l&lt;br&gt;&lt;br&gt;also there a so many opensource js libraries that already figured out the flaws of ie and correct them. just take a look at dojo, prototype, script.aculo.us, behaviour.js and so on. why reinvent the wheel?&lt;br&gt;&lt;br&gt;regards,&lt;br&gt;kris&lt;br&gt;&lt;br&gt;ps. i dont want to be rude.... just a little provocation with a hope of getting answers :)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=444799" width="1" height="1"&gt;</description></item><item><title>re: Let me explain one more time why the Atlas compatibility layer works this way...</title><link>http://weblogs.asp.net/bleroy/archive/2006/04/13/Let-me-explain-one-more-time-why-the-Atlas-compatibility-layer-works-this-way_2E002E002E00_.aspx#443400</link><pubDate>Wed, 19 Apr 2006 20:33:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:443400</guid><dc:creator>Bertrand Le Roy</dc:creator><author>Bertrand Le Roy</author><description>Andrey: there is support for the IE event model in general (attachEvent, detachEvent, window.event, etc.) but not for specific events for the moment. We may add these in the future if there's enough demand for it.&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=443400" width="1" height="1"&gt;</description></item></channel></rss>