An enterprise-level Web application server from Apple Computer. It's based on the
OpenStep and
EnterpriseObjectsFramework(EOF) from
NeXt software,
SteveJobs' old company.
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. :)
WebObjectsFive (point three) is the latest version. See
http://www.webobjects.com
WebObjectsBooks are also available to read.
Some great
OpenSourced WO 4.5 frameworks are available at
http://www.netstruxr.com/developer. Greatly enhanced versions for WO 5 are available at
http://www.sourceforge.net/projects/wonder
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.
--
StuCharlton
YUP! Like a lot from NeXT. The first GUI
WebBrowser (Called
WorldWideWeb) was built on a NeXT box using
InterfaceBuilder by a Mr.
TimBernersLee ...
There is a project to reimplement WebObjects as free software. The project is called GNUstepWeb, and the URL is http://www.gnustepweb.org/
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."
And SeasideFramework, a WebObjects inspired framework for SqueakSmalltalk.
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/index2.htm is a
WebObjects based application that enables categorized contribution of Tips & Tricks related to
WebObjects, MacOS X Server Adminitration and Development.
-- [stf]
If you know something about
WebObjects please visit
WebObjectsFaq and contribute.
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.
--
EzraEpstein
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
See
WoUnit,
WikiLikeThing,
CraigFederighi?