[OpenAjaxIDE] Microsoft Ajax metadata format quick start guide

Bertrand Le Roy Bertrand.Le.Roy at microsoft.com
Thu Jul 12 11:08:38 PDT 2007


Hi,

That subject was discussed at yesterday's meeting.

Actually, it's a fact that many existing and widely used frameworks extend built-in prototypes and instances. Even frameworks that make a major point of having minimal impact on the global namespace actually introduce potential conflicts in ways that are not always easy to see. For example, it's common practice to have APIs that query the DOM and return DOM elements that are mixed-in with additional functionality. Do you also want to prohibit that?
I think it's a fact that built-in objects will be extended because it's very useful to do so.
I'm sure Dojo does a much better job than we do at never adding an expando to any object that it doesn't own but we chose to be very open about everything we had so that we can spot problems that are likely to be found in other libraries too.

You could take the approach of prohibiting everything but the likely result would probably be that toolkit vendors would just go "ok, fine, we won't be OpenAjax-compliant then" rather than break their customers' applications. I don't think that's what we're trying to achieve here.

The goal of the registry as far as I understand it is to manage conflicts while allowing the flexibility that is required by existing art.

I think it would also be useful if the Alliance provided guidelines in the form of "SHOULD" recommendations such as "libraries SHOULD NOT extend Object.prototype or Array.prototype". Whether they should extend instances of DOM elements or prototypes of other objects is still, I believe, a subject to debate in the community and certainly a common practice so if we provide recommendation here it should probably be to limit the number of extensions rather than prohibit them entirely. Let's focus on making the registry a useful tool to the community instead of trying to impose rules that are too restrictive to be followed.

Thanks,
Bertrand

-----Original Message-----
From: ide-bounces at openajax.org [mailto:ide-bounces at openajax.org] On Behalf Of Alex Russell
Sent: Thursday, July 12, 2007 10:15 AM
To: ide at openajax.org
Subject: Re: [OpenAjaxIDE] Microsoft Ajax metadata format quick start guide

On Thursday 12 July 2007 7:46 am, Jon Ferraiolo wrote:
> Hi everyone,
> Bertrand has sent in some emails describing the list of globals and
> JavaScript extensions that MS Ajax uses, along with the XML format
> used to document the runtime JavaScript used by MS Ajax. I have been
> going through some of these documents and I found it a bit hard to
> figure out where I could find an executive summary and some examples.
> Here is what I found:
>
> Executive summary of XML metadata format:
> *
> http://weblogs.asp.net/bleroy/archive/2007/04/23/the-format-for-javas
>cript-doc-comments.aspx
>
> List of JavaScript globals and JavaScript extensions used by MS Ajax:
> * http://openajax.org/pipermail/interop/2007q2/000168.html

Ouch...that's a long list. Are we going to allow any vendor to "register" globals which extend root object prototypes? I had thought that the consensus was "no", and that they should be flagged as dangerous and potentially conflicting (otherwise interop is a joke).

Regards

--
Alex Russell
alex at sitepen.com     A99F 8785 F491 D5FD 04D7 ACD9 4158 FFDF 2894 6876
alex at dojotoolkit.org BE03 E88D EABB 2116 CC49 8259 CF78 E242 59C3 9723



More information about the IDE mailing list