Re: Uses for D2JC (was: Gianduia and WO)
Re: Uses for D2JC (was: Gianduia and WO)
- Subject: Re: Uses for D2JC (was: Gianduia and WO)
- From: David LeBer <email@hidden>
- Date: Tue, 10 Nov 2009 10:23:55 -0500
On 2009-11-10, at 10:02 AM, Anjo Krank wrote:
The assistants are an excellent example of how easy it is to hit a
stone wall. I remember I re-created my first project 5 times,
because I simply couldn't figure how the various things influenced
each other. Had I known about the rules up-front, I'd at least would
have had a chance to to things in a more systematic way...
What the default stuff gives is a fancy way to navigate your data,
much like mysqladmin or the like, only with objects. From there on
to a "real" app, it's not a cliff, it's a missile cruise...
Cheers, Anjo
D2W is a huge and horribly opaque beast, and I love it so :-) I
understand the desire for some illumination on the topic, some help
easing into the technology, unfortunately, I don't believe the
assistant is it.
Assistant gives you the false sense that you are actually getting
somewhere, and then you hit a wall, and you discover you aren't. I
tried to learn from it's rules, it was a horrible soul crushing
experience.
My sense is that the number of options in a D2JC are constrained by
the JC architecture, and in this case the assistant would work well
because it could cover all options and you would never need to
actually touch the rules manually.
Because of the extensible nature of D2W (the look/components you use
are controlled by and at the same time extend the rules) the assistant
can never come close to understanding all of the options available.
That means in D2W you will NEED to edit the rules manually.
Am 10.11.2009 um 15:42 schrieb David Avendasora:
On Nov 10, 2009, at 7:31 AM, Johan Henselmans wrote:
I have heard the 'Assistant produces horrible rules use
RuleModeler' over and over again by very outspoken, well versed
into the Direct To Web technology developers that have tweaked the
rulegeneration and parsing themselves (Anjo and Guido come to mind).
They might be right about the WebAssistant, but that means that
people that are not well versed in that technology do not have a
possibility to learn how these rules work.
'Read the source code of the available rules' is for a lot of
people not the first idea that comes to mind I the want to learn a
new technology that is supposed to be based on rules.
I think that one of the reasons that there seems to be a lack of
new WebObjects developers (according to Pascal's research) has to
do with the falling away of these gentle tools: displaygroups
that were automagically generated, WebAssistant that made you
whip up a crude interface to a database in an hour.
I remember one of the CodeFab guys telling learning WebObjects is
not difficult because of the steep learning curve, but because
there is a learning cliff.
A gentler introduction (like the WebAssistant was) into the whole
rulesystem really helped people to get into WebObjects.
I would be nice if these tools should at least not be broken (like
they are now with the D2WebService Assisant, the D2WebAssistant)
until something as gentle came up.
I think this is a really excellent point. This is one of the major
reasons I didn't walk away from WO when I first started. I didn't
experience the learning "cliff" at all. I had a fully functional WO
app without needing to learn a single piece of WO/EOF. I was then
able to take small steps to understand WebObjects/EOF piece-by-
piece. I first tried to set a default value and learned the whole
"awakeFromInsertion" side of things. Then I quickly learned the
situations in which you don't want to have a reverse to-many
relationship by simply running my app and seeing how long it took
to set an Entitie's "Type" when there were thousands of items with
that Type. Then it was the implications of an object owning the
destination of it's relationship and then the basics of WO's built-
in validation system.
It turned the cliff into a gentle slope
I learned a huge amount of EOF before I ever even touched a .wo
file. By the time I created my first Web components I understood
exactly where to put UI logic and where to put business logic.
I now use D2JC differently than I did when I was first learning WO,
but it was fundamental to my being able to wrap my head around what
EOF was and how it was so fundamentally different from other
technologies I had used in the past. I didn't have to learn
anything about components or editing contexts before I could
implement my business logic. D2JC managed all of that for me.
I think a great flow for a newcomer to learn WO is:
Reverse Engineer an existing DB
Launch a D2JC App that uses that model
Learn how the basics of EOF work and the implications of various
model settings by changing model stettings and seeing immedately
how those changes impact the D2JC app's behavior.
Add basic custom business logic (defaults, validation, etc)
Create a Web App.
As far as the rules generated by the Assistant being horrible, I
have to admin that don't really know, because I've never had to go
in and modify those rules. The few custom rules I have created are
in a completely separate file and I use RuleModeler to manage those.
Dave
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
@krank.net
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:
This email sent to email@hidden
;david
--
David LeBer
Codeferous Software
'co-def-er-ous' adj. Literally 'code-bearing'
site: http://codeferous.com
blog: http://davidleber.net
profile: http://www.linkedin.com/in/davidleber
twitter: http://twitter.com/rebeld
--
Toronto Area Cocoa / WebObjects developers group:
http://tacow.org
_______________________________________________
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