<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr">Le ven. 16 nov. 2018 09:38, Bruce <<a href="mailto:adamnt42@gmail.com">adamnt42@gmail.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I just hope that these proposed changes will not destroy neither the <br>
current nor the proposed pathing mechanism for libraries etc.<br>
<br>
To explain, we rely heavily on accessing metadata in a "higher" level <br>
library from a "lower" one. This, I beleive is exactly the opposite of <br>
what is being proposed.<br>
<br>
To be specific, we use a four level persistence mechanism that hopefully<br>
can be explained as a dependency chain as follows, where "higher" is to <br>
the left and "lower" to the right.<br>
<br>
Application --> BOL --> DAL --> PDL<br>
<br>
BOL is a "business object layer", it knows all about the objects that an <br>
application needs to use in a specific domain.<br>
DAL is a "data abstraction layer", it knows all about converting <br>
persisted data into object state values and vice versa. It also knows <br>
how to abstract some pretty complex mappings between object heirarchies <br>
and the underlying data model. It provides CRUD mechanisms to the BOL.<br>
PDL is a set of "physical data layer" libraries that are switched <br>
depending on what persistence mechanism is used. I.e. there is a <br>
postgres PDL, a SQLite PDL and an XML PDL. Each of which knows how to <br>
store and retrieve persisted data of that ilk.<br>
<br>
There is possibly a fifth level, just to be complete, below the PDL <br>
which is the Gambas components that let us read/write to an actual <br>
persistence mechanism.<br>
<br>
Now as I said, the lower level libraries in the dependency chain depend <br>
on metadata that is stored in the higher level libraries. For example <br>
the BOL has metadata that maps object properties to conceptual storage <br>
data models. If you like, it acts as a sort of entity relational model.<br>
The DAL layer needs to access that mapping model so it can implement the <br>
ER conversions. It also needs to know from the "Application" layer which <br>
specific persistence mechanism to be used and the specific instance of <br>
that mechanism. (This way, the application can specify that the data to <br>
be used is say in a postgresql database called xyzzy on a particular <br>
server or conversely in a postgresql database called plugh on a <br>
particular server or for that matter in holes in cheese stored on the <br>
moon. However, it has no idea of how the persistence occurs. It just <br>
knows that it wants to CRUD a certain object's state).<br>
<br>
So the DAL plugs in the PDL library it needs for "this particular <br>
application" and "that particular BOL". That way we can use two or more <br>
BOLs in the same application. Given that it can produce a map between <br>
the ERM and a physical data model. AND THAT metadata needs to be made <br>
available to the PDL.<br>
<br>
So each layer needs to access metadata in the next or highest level <br>
layer and occasionally in its' own layer. A lot of that metadata is <br>
static so we use files stored in each layers archive. The . .. (and ...) <br>
mechanisms have worked for us for going on ten years or so.<br>
<br>
Now I believe this the complete opposite of what Tobi has been talking <br>
about here. In his case, he needs "downward" disambiguation (if there is <br>
such a word) from a higher level in the dependency chain. In other words <br>
from ONE at the higher level to MANY as we go down. What I am talking <br>
about is completely the opposite i.e. from one of the MANYs, depending <br>
on the instance, to the definitely only ONE of the ones.<br>
<br>
Sorry to intrude.<br>
b<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Sorry but I don't really understand the problem between your impressive work and the namespace idea. </div><div dir="auto"><br></div><div dir="auto">In your case you can use a specific space for all your class or use again the global namespacing which is a bad idea because it will be reserved to the gambas official libs.. Yes I'm a vinegrower ... so I've maybe missed something (too many alcohol in air in my distillery) 😊</div><div dir="auto"><br></div><div dir="auto">Regards,</div><div dir="auto">Fabien Bodard</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
</blockquote></div></div></div>