The content on this Wiki is in the process of being updated to reflect modern WebObjects development. Pages that refer to old development techniques, e.g. Xcode, WOBuilder, etc., will be either updated to reflect the current toolset, or be moved to the Deprecated section. An RSS Feed is available for those that want to be updated as pages are modified. If you have a favorite page that you want to make sure you are in-the-loop on any changes, you can easily Watch it by selecting Watch from the Tools popup menu on that page. If you wish to partipate in an effort to improve this documentation, send an email to email@example.com.
Special Note: URLs are changing as part of this effort. Confluence does a good job of guessing what page you wanted if the link you requested no longer exists, so pain should be minimal.
This site replaces the wikibook, which has been deprecated.
WebObjects is an integrated suite of freely available Java frameworks and tools that helps a developer to develop for rapidly developing scalable, sophisticated applications for the Internet on most computers with Java support.Internet and Enterprise applications. It is the most mature platform available for enterprise-level web, web service and java client (three-tier client-server development, providing object oriented framework support for relational database object persistence (in any JDBC compliant database)) application development.
It provides a powerful and mature set of Object-Oriented frameworks for managing Object-Relational Mapping (ORM) to any JDBC-compliant database, Session Management, Undo/Redo/Revert, Ajax, Web Services, streaming media, full Java Client applications, Rapid Application Development, Streaming Media, file upload/download and many other popular web internet and enterprise application technologies.
Originally developed by and for NeXT computers NeXT Computer Inc., in the mid 1990's1990s, it was ported by Apple to Mac OS X and Mac OS X Server under in Objective-C and then completely translated to Java for version 5.0. The latest available release of WebObjects is version 5.4.3, made available as Mac OS X installer package in September, 2008.
It is the technology on which an incredibly flexible set of frameworks exemplified by Apple's own use of it for such varied applications as the iTunes Music Store was developed, the on-line Apple Store, the MobileMe group of services including Web-Mail and Calendaring and their website.
It has a very active and helpful developer community with mailing list support at the WO Developer Mailing List.
The naming convention for objects in WebObjects is that names are written in what is now called "camel case".
The various prefixes are not hard to explain. The "NS" stands for "NextStep", the "EO" for "EnterpriseObject", the "WO" for WebObjects.
and offers excellent support through the very popular WebObjects Development and WebObjects Deployment email lists.
The WebObjects543.dmg file is the last WebObjects installer package available from Apple (dated September 2008). It installs the WebObjects frameworks and support files as four sub-packages ("WebObjectsDevelopment", "WebObjectsDocumentation", "WebObjectsExamples" and "WebObjectsRuntime"), into the appropriate directories on a Mac OS X system for incorporation into Apple's Xcode 3.1 IDE.
The "WebObjectsRuntime" sub-package is the critical one because it contains the Java libraries (in both "Framework" and jar packaging) required to develop and deploy a WebObjects application. Since such applications are now developed using the multi-platform Eclipse IDE, and not Xcode, and are deployed on as many, or more, platforms, the "WebObjectsRuntime" package is also available for multi-platform use from the community that brings you the page you are reading now!
The currently recommended WebObjects installation procedure for all platforms is at Step 2.2 on the Project Wonder Installation page.
As of WebObjects 5.3, the deployment of WebObjects built -based server applications is now permitted on any platform. The XCode Xcode 3.1 license (within which WebObjects is included) readsThe last that included any reference to WebObjects) stated this:
D. WebObjects Software. Subject to the terms and conditions of this License, you may use, install and permit others to access incorporate the WebObjects deployment software Software included with in the Developer Software to deploy into application programs developed using Apple's WebObjects Software(both client and server) that you develop on an Apple-branded computer. You may also reproduce and distribute : (1) over a network, components of the WebObjects deployment software for installation and use by others ("Java Client End Users") on any remote computer's volatile memory (e.g. RAM) to enable Java Client functionality for the sole purpose of communicating with Apple's WebObjects Software that may be installed and executed on the same Apple-labeled computer on which you have installed the Developer Software (the "Licensed System"); and (2) both manually and automatically over a network, components of the WebObjects deployment software for installation and use by Java Client End Users on any remote computer's non-volatile memory (e.g. ROM) to enable Java Client functionality for the sole purpose of communicating with Apple's WebObjects Software that may be installed and executed on the Licensed System; provided that all distributions to Java Client End Users are made the WebObjects Software unmodiﬁed, in binary form only, on any platform but solely as incorporated into such application programs and only for use by end-users under terms that are at least as restrictive as of those set forth in this License and contain the disclaimers and limitations set forth in Sections (including, without limitation, Sections 2, 6 and 7 of this License. Subject to the terms and conditions of this License).For avoidance of doubt, you may also deploy server applications built with not distribute the WebObjects Software on any platform.
a stand-alone basis, and you may not develop application programs using the WebObjects Software (or any portion thereof) on any non-Apple branded computer.