Oh I'm not missing the point at all and I'm not saying its easy; but the problem is already solved with AD, to an extent. You can extend AD by adding attributes to existing classes, or add new classes; but the basic objects remain the same. You could even enforce a vendor naming convention for new attributes or classes in much the same way we have -moz in CSS.Larry Osterman said:Blowdart, I think that you're missing Brandons and my point. There are three options to how to handle the schema:blowdart said:*snip*
1) MSFT defines a fixed schema (or a base schema). 3rd party vendors scream because the base schema doesn't meet their needs.
2) The first app installed defines the schema. There is no interoperability because there is no standard for the schema. [12,3] doesn't really work very well as an email address these days.
3) Each app extends the schema in their own way. There is no interoperability because the applications don't share information. Or worse, app A reads the info from app B and modifies it. But app A doesn't understand that app B has actually tied two separate fields (the base field and an app B specific extension) and app A has just corrupted app B's view of the schema.
Marking apps as "WinFS aware" doesn't help, app A and app B are both WinFS aware.
Building an open extensible shared common object model is a nightmarishly hard problem, that's why (to my knowledge) nobody has built such a beast before. The best that's been done is to define fixed export formats and people interchange data using those. On the other hand, when there's a low fidelity mapping, you get things like winmail.dat.
I'm not saying that the problem can't be solved. I suspect it could be. But I'm saying that this problem is crazy hard.
That way you avoid (1) because vendors can extend the base classes to add their own functionality. You don't avoid (2) of course; but that can be brought under control by having the OS define the base classes; and open up the base class design to a community in much the same way the W3C is for HTML. But yes you can't stop (3) happening, unless you have conventions in place, in much the same way as meta directories do with LDAP and LDAP extensions, or how AD extensions work.