
| Wiki Modernization In Progress 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 docs-group-on@wocommunity.org. 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 Java frameworks for rapidly developing scalable, sophisticated Internet and Enterprise applications. It is the most mature platform available for enterprise-level web, web service and java client (three-tier client-server) 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, full Java Client applications, Rapid Application Development, Streaming Media, file upload/download and many other popular internet and enterprise application technologies.
Originally developed by NeXT Computer Inc., in the mid 1990s, it was ported by Apple to Mac OS X and Mac OS X Server in Objective-C and then completely translated to Java for version 5.0. The latest available release of WebObjects is version 5.4.3.
It is an incredibly flexible set of frameworks exemplified by Apple's own use of it for such varied applications as the iTunes Music Store, the on-line Apple Store, the MobileMe group of services including Web-Mail and Calendaring and their website.
It has a very active developer community and offers excellent support through the very popular WebObjects Development and WebObjects Deployment email lists.
| Download WebObjects Here! The WebObjects543.dmg file will install the WebObjects frameworks and support files. It requires Xcode 3.1. It is recommended that you follow the [WO:Installing WebObjects 5.4 on Snow Leopard] instructions if you no longer have Xcode 3.1. |
Introduction
- What is WebObjects?
- [History]
- Foundation
- Objective-C to Java Transition
- [Scratch Setup of WebObjects Development on a Mac]
- Hands On Hello World - Your First WebObjects Application
- Recent Changes
- [WebObjects for Database Developers]
- Naming Conventions
License
As of WebObjects 5.3, the deployment of WebObjects-based server applications is now permitted on any platform. The Xcode 3.1 license (The last that included any reference to WebObjects) stated this:
D. WebObjects Software. Subject to the terms and conditions of this License, you may incorporate the WebObjects Software included in the Developer Software into application programs (both client and server) that you develop on an Apple-branded computer. You may also reproduce and distribute the WebObjects Software unmodified, 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 of those set forth in this License (including, without limitation, Sections 2, 6 and 7 of this License).For avoidance of doubt, you may not distribute the WebObjects Software on 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.
Foundation
Enterprise Object Framework (EOF)
Introduction
Modeling
- Overview
- Required Reading
- Entities
- GlobalIDs
- Attributes
- [Relationships]
- Entity Inheritance
- Fetch Specifications
- [SQL Generation]
- [Code Generation]
- [Reverse Engineering]
- Common Pitfalls and Troubleshooting
- EOModeler
- EOModeler on Windows
- Booleans
- Advanced
- JDBC
- [JNDI]
- [Stored Procedures]
- Prototypes
- [Multiple Models]
- Custom Attributes
- Strategy Design Pattern as an Alternative to Entity Inheritance
- Examples
Using EOF
- Overview
- Required Reading
- The EOF Commandments
- [EO Enterprise Object]
- EO Editing Context
- [EO Object Store]
- [EO Database]
- [EO Adaptor]
- Context and Database Locking
- Faulting
- Fetching
- [Updating]
- Deleting
- Caching and Freshness
- Optimistic Locking
- Memory Management
- EOF Best Practices
- Configuration Settings
- Common Pitfalls and Troubleshooting
- Advanced
- EOGenerator
- Logging
- EOF Performance Tuning
- Primary Keys
- Compound Primary Keys
- Concurrency
- Validation
- Database Adaptors and Plugins
- Undo and Redo
- [EO's and Multiple Editing Contexts]
- EOSharedEditingContext
- Raw Rows
- Batch Fetching
- Fetch Limits
- Bulk Operations
- Schema Changes
- Delegates and Notifications
- Multiple Stacks or Instances
- Custom Qualifiers
- Localization and Internationalization
- Default Values
- Custom EOAdaptor
- EOF Traces
- Problems
- Tips and Tricks
- [Examples]
- Help!_EOF_is_Doing_Strange_Things!
Web Applications
Introduction
- [Overview]
Development
- [Overview]
- Beginner's Guide
- Required Reading
- Apache
- WO Adaptor
- [WO Application]
- WO Session
- [WO Component]
- Binding Synchronization
- Code, Templates, and WODs
- [Built-in Components]
- Component Actions
- Direct Actions
- [Request-Response Loop]
- [Using EOF in a WOA]
- Authentication and Security
- General Best Practices
- WOForm Best Practices
- WODisplayGroup
- [Debugging Techniques]
- Direct Connect
- Frameworks
- Ajax
- CSS
- Sending Emails
- [The Build Products]
- [Errors and Explanations]
- Common Pitfalls and Troubleshooting
- Advanced
- Application Server URL Creation
- Audit Trails
- Backtracking
- [Concurrency]
- Image Thumbnailing
- Database vs Filesystem (aka Images in the Database?)
- [WOLongResponsePage]
- Stateless Components
- [Non-HTML WO's]
- WOEvents and Logging
- PDF Generation
- Excel Generation
- SSL
- Localization and Internationalization
- Testing and JUnit
- Custom Error Handling
- [Custom Request Handlers]
- Custom Templates
- Calling Commandline Applications
- [High Performance WOA's and WO's]
- Profiling WO Apps
- [J2EE Integration]
- Third Party Jars
- Generating Static Pages
- Cocoa EO Applications
- Custom Resource Manager
- Persistent Sessions
- How Forms Work
- Development on Windows
- Tips and Tricks
- Examples
Deployment
- Overview
- Required Reading
- Apache
- [Memory Settings]
- Standard Deployment
- [wotaskd]
- [Java Monitor]
- Logging
- Split Install
- Common Pitfalls and Troubleshooting
- Advanced
- WOStats
- Additional Monitoring
- Troubleshooting wotaskd and JavaMonitor on OS X
- Scheduled Restart
- [Clustering and Load Balancing]
- Tomcat Deployment
- [High-Performance Configuration]
- Killing WOA Processes
- Debugging Frozen Deployed Instances
- WOAdaptorInfo
- Platform Specifics
- Mac OS X Server
- [Linux]
- Solaris WO5.3.3
- [FreeBSD WO5.2]
- [FreeBSD WO5.3]
- [FreeBSD 6.2 WO 5.3.3]
- [FreeBSD 6.x WO 5.3.3 using port system with many options]
- [Legacy Windows (WO 5.1/5.2 on WinNT/2000)]
- Current Windows (WO 5.4 on Win2003)
- Amazon EC2
- Helpful Tools & Shellscripts
Web Services
- [Overview]
- Required Reading
- General Info
- Advanced
- [Examples]
Direct To Web (D2W)
Java Client, Direct to Java Client (D2JC)
- Overview
- Direct to Java Client
- Required Reading
- Building
- Trouble-Shooting
- Complimentary Frameworks
- [Advanced]
- [Interface Builder]
- [svn]
- [Examples]
Complementary Frameworks
Project WONDER
- Overview
- Required Reading
- Installing
- Quickstart
- History
- Properties File Settings
- [Frameworks]
- Ajax
- [AjaxLook]
- [BTBusinessLogic]
- [DRGrouping]
- [DerbyPlugIn]
- [ERAttachment]
- [ERCaching]
- ERCalendar
- [ERCaptcha]
- ERChangeNotificationJMS
- [ERChronic]
- [ERCoreBusinessLogic]
- [ERDirectToWeb]
- ERDivaLook
- ERDivaliteLook
- [ERExcelLook]
- ERExtensions
- ERIMAdaptor
- [ERIUI]
- [ERIndexing]
- [ERJGroupsSynchronizer]
- ERJQuery
- [ERJars]
- ERJavaMail
- ERXNavigation
- [ERMoviesLogic]
- [ERNeutralLook]
- EROpenID
- [EROraclePlugIn]
- [ERPDFGeneration]
- ERPlot
- ERPrototaculous
- [ERPrototypes]
- [ERRest]
- ERSelenium
- [ERTaggable]
- [ERWorkerChannel]
- ExcelGenerator
- [FrontBasePlugIn]
- [GoogleChart]
- [JavaFSAdaptor]
- [JavaMemoryAdaptor]
- [JavaMonitorFramework]
- [JavaRESTAdaptor]
- [JavaWOExtensions]
- PostgresqlPlugin
- [SproutCore]
- Validity
- [WOJavaRebel]
- [WOLips]
- WOOgnl
- WOPaypal
- [WRReporting]
- [YUI]
- [Adaptors]
- [PlugIns]
- Advanced
- [Examples]
- [Troubleshooting]
WireHose
- Overview
- Basic Concepts
- Reference
- Installation
- Online Reference Library
- Recently Deployed Sites
LEWOStuff
GVC Frameworks and GVC.SiteMaker
Houdah WebObjects Frameworks
- Overview
- HoudahFoundation: Extensions and additions to the Foundation framework
- HoudahEOControl: Extensions and additions to the EOControl framework
- HoudahEOAccess: Extensions and additions to the EOAccess framework
- HoudahRuleEngine: Rule engine used by several of the below frameworks
- HoudahEOValidation: Rule based validation
- HoudahMessages: Rule based localizable error messages
- HoudahAuditTrail: Tracks user and timestamp of last change
- HoudahViewComponents: High level, large grain view components using stateless cells
- HoudahControlComponents: Control layer for EOF based CRUD applications
- HoudahAgileComponents: Rule based control layer for CRUD application (D2W replacement)
WOGWT (Google Web Toolkit Integration)
JBND Data binding
Validation Next Generation (enhanced validation)
[Validation Next Generation]
Development Tools
- [Overview]
- Eclipse and WOlips
- Browser as a Development Tool
- [Xcode]
- EOModeler
- [WOBuilder]
- Running Though Apache
- WebObjects and Subversion
- Hudson
- JRebel
Case Studies
- [iTunes Music Store]
- [.Mac]
- [Apple Store]
- [Original Dell Store]
- [Radar]
- [ShopToIt.ca]
- [EverLearn]
- [WebObjects Showcase]
- [WebObjects Sites]
Integration with other clients
- [Flex]
- [Open Laszlo]
- [Mozilla XUL]
- [Cocoa]
- [Eclipse Rich Client Platform (RCP)]
Testing
Database Compatibility / Comparisons
- FrontBase
- OpenBase
- MySQL
- PostgreSQL
- Oracle
- [Sybase]
- [SQLServer]
- Data Migration
- Informix
Alternative Technologies Pros / Cons
- [ASP.NET]
- [ASP.NET + Monorail]
- [JSP and Taglibs]
- [EJB]
- [Hibernate]
- [Core Data]
- Cayenne
- [Tapestry]
- Ruby on Rails
- [Struts]
- [WebWork]
- [SOPE]
Additional Resources
- Websites
- Mailing Lists
- [Tutorials]
- Books
- [Periodicals]
- [Authors]
- Training
- [User groups]
- [Known Bugs]