Mark your calendar! WOWODC 2008‘s second annual WebObjects developers conference is taking place the weekend before WWDC at the Parc 55 Hotel in San Francisco.

Pascal Robert (who has done an amazing job pulling this all together) tells me we have an incredible roster of presenters and sessions lined up for the this year. If last years conference is anything to go by, it should be a rip-roaring good time.

Tickets are available here

Disclaimer: I am a member of the steering committee.

New Screencast

WO/ProjectWonder/WOLips – Part 2

I just completed part 2 of the WO/Wonder/WOLips series. This episode introduces:

  • Reusable components
  • Importing files into your project
  • DirectActions
  • Modeling relationships
  • Updating a db schema with Migrations

It should be in available in WebObjects Podcasts on iTunes, from the WOCommunity site, or direct from my .mac account here.


Source of the completed project.

As always, comments and suggestions welcome.


I’ve been playing with the very cool ScreenFlow from vara software this week… Did I mention that it was very cool?

Anyway, I put together a couple of introductory screencasts on using WebObjects and WOLips. They can both be found in the WebObjects Podcasts on iTMS or from the WOCommunity site.


The first is a short HelloWorld tutorial that introduces:

  • Launching Eclipse/WOLips for the first time
  • Creating a new WebObjects project
  • Project folder structure
  • Running the application
  • Modifying the application run settings
  • Editing components

Direct link from my .mac account here.


The second is a more advanced WO/Wonder/WOLips tutorial that introduces:

  • Database setup using Wonder’s Migrations (NOTE: I use WO 5.3 on Leopard – Migrations are broken in WO 5.4)
  • Inline bindings
  • WOLips’ Add Action, and Add Key dialogs
  • EOGeneration using the Wonder Velocity Template
  • ERXKey and chainable qualifiers

Direct link from my .mac account here.


Login form mockup.

Source of the completed project.


The response from the WO lists has been very positive, so thank you everyone.

Lachlan Deck asked:

Probably helpful to explain why you’re making the ivars public (i.e., in the absence of getter/setters)

My general thoughts on this are:

If –

  • The ivars are only used by the component’s bindings (ie WORepetition item bindings)
  • Are used by bindings and are set in only one action or method in the component
  • Are never exposed by the api

Then I usually feel OK accessing them directly. If I need to expose the variable via the components API or I need to set the ivars value multiple places in the component then I will make the ivar private and wrap it with accessors.

Comments and suggestions welcome.