Home
This site replaces the wikibook, which has been deprecated.
WebObjects is a 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.
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 .Mac group of services including Web-Mail and Calendaring and their website. as well as many applications developed and deployed by others.
It has a very active developer community and offers excellent support through the very popular WebObjects Development and WO Deployment email lists.
In addition Apple, Inc. also provides free and paid-for support options.
Contents |
---|
The [section] macro is a standalone macro and it cannot be used inline. Click on this message for details. |
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 built server applications is now permitted on any platform. The XCode license (within which WebObjects is included) reads:
D. WebObjects Software. Subject to the terms and conditions of this License, you may use, install and permit others to access the WebObjects deployment software included with the Developer Software to deploy application programs developed using Apple's WebObjects Software. 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 under terms that are at least as restrictive as those set forth in this License and contain the disclaimers and limitations set forth in Sections 6 and 7 of this License. Subject to the terms and conditions of this License, you may also deploy server applications built with the WebObjects Software on any platform.
Sections 6 and 7 are standard Apple license disclaimers of warranty and limitations of liability clauses. Deployment to other platforms requires WebObjects software be built as Java servlet for deployment on a servlet compatible server such as Apache Tomcat.
Foundation
Enterprise Object Framework (EOF)
Introduction
Modeling
Using EOF
- Overview
- Required Reading
- 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
- HelpEOFisDoingStrangeThings
Web Applications
Introduction
Development
- Overview
- Beginner's Guide
- Required Reading
- Apache
- WO Adaptor
- WO Application
- WO Session
- WO Component
- 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
- Advanced
- Platform Specifics
- Helpful Tools & Shellscripts
Web Services
- Overview
- Required Reading
- General Info
- Advanced
Java Client
- Overview
- Required Reading
- Building
- Trouble-Shooting
- Complimentary Frameworks
- Advanced
- Interface Builder
- svn
- Examples
Complementary Frameworks
Project WONDER
- Overview
- Required Reading
- Advanced
- Examples
- Troubleshooting
WireHose
- Overview
- Basic Concepts
- Reference
- 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
Development Tools
- Overview
- Eclipse and WOlips
- Browser as a Development Tool
- Xcode
- EOModeler
- WOBuilder
- Running Though Apache
- WebObjects and Subversion
Direct-To
Case Studies
- iTunes Music Store
- .Mac
- Apple Store
- Original Dell Store
- Radar
- ShopToIt.ca
- EverLearn
- WebObjects Showcase
- WebObjects Sites
Integration with other clients
Testing
Database Compatibility / Comparisons
Alternative Technologies Pros / Cons
- ASP.NET
- ASP.NET + Monorail
- JSP and Taglibs
- EJB
- Hibernate
- Core Data
- Cayenne
- Tapestry
- Ruby on Rails
- Struts
- WebWork
- SOPE