Re: Creating EOModel and new databases dynamically
Re: Creating EOModel and new databases dynamically
- Subject: Re: Creating EOModel and new databases dynamically
- From: "Jerry W. Walker" <email@hidden>
- Date: Sun, 10 Jun 2007 11:47:40 -0400
Hi, Thierry,
You might have noticed some hesitance in the replies you've gotten.
That's because you're describing a very general, but particularly
difficult problem, the value of whose solution might never approach
the magnitude of the effort you'll put in to solve it if it isn't
bounded very carefully.
WO and other computer system development technologies are very
sophisticated tools aimed at very bright people who spend hundreds to
thousands of hours of their lives learning to use them effectively.
Very few people have the ability, the time and the inclination to
learn them and apply them correctly to user problems. The people who
have all three are usually called applications developers (and many
other names, depending on the quality of their work and the mood of
their users). :-)
If you're an applications developer, you've probably reached the
state where you can grind out an application using WO to meet some
general business need of your user. If so, that puts you at the level
of most people on this list.
However, you're not describing a general business problem. You're
describing a system development problem: "I need to give a customer
the possibility to create it's database within our existing
Webobjects application..." In other words, you need to develop tools
to help your customer develop systems. If that were the sole
criterion for your new system, you would already be addressing a
problem about 1 to 2 orders of magnitude (that's 10 to 100 times)
more difficult than the implementation of a general business system.
But the problem you've described is about another order of magnitude
more difficult in its implementation when you say: "All our existing
app would do is to create the eomodel that he defined and then write
this to the database so that the customer can work with that second
database and adapt it to his needs." This is a system used to define
its own metalanguage. See Kurt Gödel's incompleteness theorems for
some difficulties you might run headlong into as dealt with on a
completely abstract basis. You can go here for a brief introduction:
http://en.wikipedia.org/wiki/Incompleteness_theorem
However, if you think about it for a short while, you'll realize that
you've just described a system development technology that already
exists in many forms. One manifestation is the WebObjects frameworks,
particularly when used with D2W and, perhaps, a seeded model for a
base application database.
So your customer is not a person with a typical, reasonably static,
business problem requiring the implementation of an automated and
relatively stable computer solution. He is a developer who needs to
develop systems.
If this is the case, why isn't he using existing system development
tools? Their development is incredibly difficult and the popular ones
on the market, including WO, have been tested and improved against a
vast array of problems.
Having said all that, believe it or not, WO is up to the task of
developing yet another set of system development tools. If I haven't
yet discouraged you, then start studying the following class
descriptions in the WO APIs:
EOModel, EOModelGroup, EOEntity, EOAttribute, EORelationship.
In particular, read the latter half of the introductory text for
EOModel under the headings, "Creating an EOModel Programmatically"
and "Loading a Model File".
The above should serve as a start. Eventually, you will probably need
a deeper understanding than most of the classes forming an EOF stack.
To help you, here is a hierarchical diagram of the object graph for
the more important of those classes when used in a typical EOF stack:
Be prepared to study a large number of these and their relationships.
The diagram is more easily read if you copy it into a text document
using a fixed width font:
Enterprise Objects Framework
EOF Stack
WODisplayGroup or EODisplayGroup
EODatabaseDataSource(DS) -------- EODetailDataSource (DS)
EOEditingContext(OS)
EOObjectStoreCoordinator(OS)
|
EOModelGroup |
EOModel<<----------EODatabase<--->>EODatabaseContext(OS)<---
>>EODatabaseChannel
^ EOAdaptor <---->>EOAdaptorContext<-------->>EOAdaptorChannel
|
|------->>EOStoredProcedures
|------->>EOEntity
^
|---------->>EOAttribute
|---------->>EORelationship
(OS) = subclass of EOObjectStore
(DS) = subclass of EODataSource
If I've misread your statement of requirement and it really isn't
sufficiently deep to justify such a general response, then for
further help, please further bound your user's problem.
In any case, all the best of luck to you.
Regards,
Jerry
On Jun 10, 2007, at 4:19 AM, Thierry Kramis wrote:
Don't know if this is the way to go because I wanted to preserve my
database
independency...
Am 10.6.2007 3:37 Uhr schrieb "jerry porter" unter
<email@hidden>:
Check this url out.
http://www.stepwise.com/Articles/2005/DBChanges/index.html
I use this exclusively in my apps.
--- Ken Anderson <email@hidden> wrote:
Thierry,
Is there a way to do this through meta-data style definitions? In
the past, when I've wanted to do this, I've found it easiest to
build
generic style tables (like fieldName, value) and use additional pre-
defined tables to define the customer's data.
If they don't need to query the database directly or use a report
writer (and meta-data style tables would require more joins, etc),
this might be a nice solution. What you're asking to do is
possible,
but certainly more work...
Ken
On Jun 9, 2007, at 5:46 PM, Thierry Kramis wrote:
Hi
I need to give a customer the possibility to create it's database
within our
existing Webobjects application. So the base application stands
with it's
first eomodel. The customer should now be able to login and then
define the
tables and the attributes dynamically in a second separate eomodel
himself.
All our existing app would do is to create the eomodel that he
defined and
then write this to the database so that the customer can work with
that
second database and adapt it to his needs.
Is there any way to do this and could anyone help on explaining how
to do
this with Webobjects?
Thanks.
tk
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40anderhome.com
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40yahoo.com
This email sent to email@hidden
---- Being human is the strangest thing I have ever done.
Jerry Porter
IT Distribution MS 34-202
Lincoln Financial Group
One Commerce Square
2005 Market Street
Philadelphia, PA 19103
(215) 255-7031
_____________________________________________________________________
_________
______
Boardwalk for $500? In 2007? Ha! Play Monopoly Here and Now (it's
updated for
today's economy) at Yahoo! Games.
http://get.games.yahoo.com/proddesc?gamekey=monopolyherenow
------ Ende der weitergeleiteten Nachricht
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40gmail.com
This email sent to email@hidden
--
__ Jerry W. Walker,
WebObjects Developer/Instructor for High Performance Industrial
Strength Internet Enabled Systems
email@hidden
203 278-4085 office
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden