Yes, that's it! But despite appearances, it is not nearly as complex as the model for 8. The main conceptual difference is that the model for 9 is much flatter, and correspondingly, it is much less object-oriented, more oriented towards the functional paradigm. So there is little reliance on object properties. Now all important properties are driven by metadata, contained in the mfd_* system tables (two per datasource). For your example, not only is there no list of properties and methods for a drawing: there simply is no drawing object. It's not hiding anywhere--as far as we are concerned, a drawing is just its metadata (and the result of course). You set drawing properties just by changing entries in the system tables. There's nothing else. While 8 is driven by a hierarchical object model, 9 has an interface model, and the interface is not to objects but to tables. Correspondingly, while in 8 most of the things we need to do programmatically are exposed as specific methods on objects--and this infrastructure largely reduplicates and reinterprets things we can also do in Manifold 8 SQL (with gaps in both directions, so in SQL we often had to paint in the text of queries to get the job done)--now, in Manifold 9, we just use SQL, and it is made much easier and more elegant to do this from API code. There is no reduplication of functions (beyond what is necessary to make the API work, e.g. in the various Builder functions), and no gaps. So far, there is no summary map for the API. That would be a good idea--then it would be clear how flat and simple it really is.
|