Web Objects

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?


EditText of this page (last edited October 25, 2009) or FindPage with title or text search