Feb 00 Online
Volume Number: 16
Issue Number: 2
Column Tag: MacTech Online
Developing with WebObjects
by Jeff Clites < online@mactech.com>
Last month we took a first look at WebObjects, and covered all of the sources on the
net you can turn to when evaluating WebObjects-to help you decide if it is the right
tool for your project and to help you convince others once you have decided. This
month we'll take a more technical look, and cover sites which can assist you in
learning the WebObjects framework and developing WebObjects applications.
The first place to turn, of course, is Apple's own documentation and training manuals,
which are excellent. Remember, WebObjects and its underlying technologies existed at
NeXT long before its acquisition by Apple, so they are quite mature. (For the record,
WebObjects has been around since 1996, and was arguably the first application
server on the market.) But be forewarned that there is a daunting amount of
information to absorb, and the learning curve is steep. Most of the material on the
WebObjects Developer Documentation site is also installed locally when you install
WebObjects, but newer versions may be available on the web. (There is also a page
which tracks current patches, so you can make sure that your installation is
up-to-date.) Also be sure to check out the WebObjects Survival Guides, written by
Theresa Ray of Tensor Information Systems, which give you concrete advice on many
areas of learning and deploying WebObjects. Lastly, although not directly aimed at
WebObjects, there is additional training material in the Mac OS X Server section of
their developer ftp site. This material doesn't seem to be highlighted elsewhere on
Apple's site, and it can help you in getting up to speed with the Cocoa (a.k.a. Yellow
Box) frameworks, upon which WebObjects is built.
WebObjects 4 Developer Documentation
<http://developer.apple.com/techpubs/webobjects/webobjects.html>
WebObjects Current Patch List
<http://til.info.apple.com/techinfo.nsf/artnum/n70037?OpenDocument&webobjects>
WebObjects: WebObjects Survival Guides
<http://til.info.apple.com/techinfo.nsf/artnum/n70109?OpenDocument&webobjects>
<ftp://ftp.apple.com/Apple_Support_Area/Apple_Software_Updates/MultiCountry/E
nterprise/webobjects/guides/>
<ftp://dev.apple.com/devworld/Interactive_Media_Resources/>
Mac OS X Server FTP Site
<ftp://dev.apple.com/devworld/macosxserver/>
It is unfortunate that there is not yet any comprehensive third-party documentation
(probably because there is not yet a market for it), because currently you don't have
the benefit of multiple approaches to explaining the same material-on many topics,
Apple's documentation is the first and final word. Accordingly, it's a good thing that
Apple offers training courses in WebObjects (and Cocoa in general), because they are
almost essential. Check out their training web site for dates, places, and prices for
these classes, some of which are provided through third parties, such as Blacksmith
and Tensor Information System, who also offer training courses of their own.
Apple - WebObjects - Training
<http://www.apple.com/webobjects/schedule.html>
Blacksmith
<http://www.blacksmith.com/training/30_course.html>
Tensor Information Systems, Inc.
<http://www.tensor.com/Training/Training.html>
Don't let me give you the impression that there is no third-party WebObjects
information available. To the contrary, there are some excellent resources on the
web-they just tend to cover specific topics rather than being general introductions or
tutorials. A great source for these is Stepwise, which hosts original articles as well
as tracking current Mac OS X related news. Recent topics have included memory
management, authentication, and data validation. Also, Scott Anguish has created a pair
of components, SWTable and SWMailto, which simplify the process of dynamically
generating tables and mailto links.
Memory Management with Cocoa/WebObjects
<http://www.stepwise.com/Articles/Technical/MemoryManagement.html>
Using Checkboxes in a WORepetition
<http://www.stepwise.com/Articles/Technical/WOF_Checkboxes.html>
Fetch limits in WebObjects applications
<http://www.stepwise.com/Articles/Technical/FetchLimit.html>
Data validation with WebObjects and EOF
<http://www.stepwise.com/Articles/Technical/WOValidation.html>
Basic Authentication with WebObjects
<http://www.stepwise.com/Articles/Technical/BasicAuthentication.html>
SWTable - WOTable Plus...
<http://www.stepwise.com/Software/SWWebExtensions/UsingSWTable.html>
SWMailto - yet another component
<http://www.stepwise.com/Software/SWWebExtensions/UsingSWMailto.html>
When the documentation stops helping and you need to ask some questions, you have
two places to turn. Apple hosts a WebObjects Discussion Forum, and Omni
Development hosts a WebObjects mailing list (as well as several other Mac OS X
related mailing lists), which is archived on their site as well.
Apple's WebObjects Discussion Forum
<http://discuss.info.apple.com/boards/webobj.nsf/by+Topic?Openview>
The Omni Group Mailing Lists: WebObjects
<http://www.omnigroup.com/community/developer/mailinglists/webobjects/>
Of course, before you start asking questions it's good policy to check the FAQ.
Unfortunately, there isn't really an official FAQ per se, but there are a couple of sites
which are a close approximation. Missing Link (a.k.a. DarwinLinux) hosts a collection
of tips for WebObjects, Mac OS X Server, and Darwin, and there are some real gems
in here. There is also the WOSource FAQ; it's over a year out-of-date at this point but
it's still quite useful.
Tips & Tricks for MOSXS, WebObjects, and Darwin!
<http://www.darwinlinux.com/cgi-bin/WebObjects/MissingLink.woa/>
WOSource FAQ
<http://www.wosource.com/faq.html>
When you are done with the learning phase and actually start building a site, there are
a number of third-party commercial products which can help you add advanced
features. ReportMill allows you to create PDFs dynamically, and the Client Signal
Viewer from VVI-DCS allows you to graphically monitor data from WebObjects
applications in real time. WAPobjecs helps you generate WAP content for viewing
with mobile devices such as cell phones and PDAs. And especially interesting is
Objective-Everything from TipTop Software, which lets you write Cocoa applications
using Perl, Python, and Tcl, in addition to the usual Objective C, Java, and WebScript.
(You can even use multiple languages within the same class, implementing some
methods in one language and other in another. Quite slick!)
ReportMill Software, Inc.
<http://www.reportmill.com/>
Client Signal Viewer
<http://www.vvi.com/ClientSignal/index.html>
WebObjects gets WAPed
<http://www.maccentral.com/news/9911/17.webobjects.shtml>
TipTop Home Page
<http://www.tiptop.com/>
After you've finished developing your own site, come to ours and visit the MacTech
Online web pages at <http://www.mactech.com/online/>.