MCI has used the EOF framework for many of its backoffice functions over the years. The United States Postal Service's call center runs on it too. For something that has had so many important (and large) deployments, its funny how little attention it gets. (Oh wait, there's SmallTalk and GemStone in that boat too. :)
WebObjectsBooks are also available to read.
What I find interesting about this product was how ahead of its time it was. They released this thing back around 1994, I believe, before application servers were even a twinkle in the GartnerGroup?'s eye. It has very mature tools and very well designed object oriented frameworks. The EOModeler application, which does object-to-relational mapping, is one of the best available. It gives the programmer some excellent frameworks for eliminating TooMuchGuiCode and SqlMyopia.
There's also Tapestry http://sourceforge.net/projects/tapestry/ an open source implementation of the functionality of the presentation (web) layer of WebObjects done in Java (with definitions (.wod) files in XML -- among other enhancements).
Yet another LGPL implementation of WebObjects in ObjectiveCee is called SoPe which is part of OpenGroupware.org. Very mature and optimized, available together with a complete groupware application consisting of 300 reusable components. The URL is http://www.opengroupware.org.
"actually, SOPE isn't an implementation of WebObjects, but is based on an implementation of WebObjects called NGObjWeb. NGObjWeb and GNUstepWeb are quite compatible now. NGObjWeb seems more mature than GNUstepWeb, but I think there is still a few problems to use NGObjWeb with GDL2 -- the GNUstep Database layer, compatible with EOF 4.5. A few commercial sites use GNUstepWeb."
The official Apple Website has the developer documentation of WebObjects under http://developer.apple.com/webobjects/ Very interesting related stuff on WebObjects is maintained by Scott Anguish on the Stepwise server: http://www.stepwise.com
http://www.51asa.com describes IMHO, a loose functional equivalent of Apple's WebObjects framework. Written in CommonLisp - specifically, it uses CMUCL. Note: I've never used WebObjects and haven't actually tried IMHO either. -- DanBarlow
I just learned WO, and I have to say that this is by far the most powerful and productive development tool I have come across!
Working with HTML? You include "dynamic elements" in the page, which translate to standard HTML at runtime. These dynamic elements have properties that bind to your objects' attributes and methods, also at runtime, totally separating presentation from the business model.
Working with relational databases? You graphically model the object-relational mapping, either for an existing database, or you let the modeling tool create a database for you. Foreign keys or join tables don't even show up in your object model, the objects simply have the necessary associations, resolved at runtime only when necessary.
Plus: The libraries are beautifully designed, the whole thing is fun to learn.
-- FalkBruegmann, in considerable awe
YUP. Been using it for years. But as the market side of software development is much like HerdingCats and J2EE has gained ascendency, there aren't as many active WO projects. Sadly.
The latest version (5.1) is not only pure Java but easily co-exists with J2EE. There's a servlet that plugs into any J2EE container and serves the web (interface) layer and the rest of WebObjects (know as EOF) is the most robust RDMS<-->O-O framework and toolset around.
Not only does it correctly (and transparently) handle relationships (via a very clever implementation of FaultObjects?) it handles inheritance, joins, uniquing, object-rendezvous...
Check it out.
I wonder... did 5.1 ever fix the problem where updating a one-to-many relationship requires a "fault firing", i.e. performing a potentially large SQL select when all I needed was an update or insert? I know there was a "SmartFaults?" package available somewhere, but IIRC it was for ObjectiveCee only. -- StuCharlton
For those who work with standard server-side Java these days, but miss WebObject?'s EOF, CayenneFramework might be just the thing for you. It's an open source ORM framework for Java that has taken its structure an patterns from EOF. I have just checked out the documentation so far, but I can say I like what I see, and it's very very very similar to EOF. I'm definitely going to try it out in depth. -- FalkBruegmann
Or maybe, the best way to get something like WebObjects... it is to combine JavaPersistencyApi? with the SeamFramework to get ObjectRelationalIntegrationWithModelViewController as we had in WebObjects ---LuxSpes