Child pages
  • Best Practices-Starting From Scratch
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

In construction

This chapter is under construction. Do not expect it to be useful... yet! (smile)

Starting From Scratch

Building a good WO application is not just about nice data models and fast algorithms. Making the right decisions from the start and taking advantage of code written by the community is also very important. Here we'll talk about some stuff that you should care about from the start.

Use WONDER

WONDER is a huge set of frameworks that fix and extend WebObjects in many, many ways. For more than five years, Apple barely updated WebObjects, and that shows. There are bugs that date from 2003 still unfixed, there are almost no new features. WebObjects 5.4 is a nice release that includes a lot of fixes and some new functionality, but it was only released in late 2007, with Leopard. During all that time, though, the community hasn't been sleeping. The WONDER team wrote thousands of lines of code, and made them available for the rest of us.

The WONDER framework most people use is ERExtensions. This framework is probably the biggest in WONDER, and contains a lot of great functionality you don't want to live without. Some of it's features are:

  • XHTML generation. Although WebObjects 5.4 finally provides XHTML compliant code generation, WONDER was the only way to achieve that in previous WebObjects versions. I mention this feature first because it actually was the feature that made my start using WONDER in first place.
  • Automatic EOEditingContext locking. This feature is huge. We'll talk about locking a lot in later sections, but trust me, you'll want WONDER to handle the locking for you. No more unlocked contexts to be corrupted while you edit them, and no more deadlocks and locked contexts lying around.
  • collections with attachements
  • count and count unique
  • qualifiers

Other frameworks:

  • Ajax
  • Mail
  • Prototypes
  • Excel
  • Graphs
  • No labels