WOWODC West Direct to Web Presentation

I received a lot of very positive feedback about my Direct to Web (D2W) presentation at WOWODC West this year. A lot of it was along the lines of: “Wow D2W is very cool, it’s sad that everyone doesn’t know about it” Well, I agree, D2W is very cool, and everyone should know about it. So, I suggested to Pascal that we release the video for my D2W presentation for free.

The first half of the presentation has been available for a few weeks now but the second half was delayed, waiting for the processed audio.

Well, I’m very pleased to announce that the post-production work is now complete and both halves of the presentation are now available from the WOCommunity site (part 1, part 2) or from the WO podcast feed on iTunes.

Direct to Web is a phenomenally powerful but underused part of WebObjects. I hope these videos do a little to help it gain some wider recognition.

For those of you who would like to play along at home, the Movies framework and MySQL database dump I used in the presentation are available here:

Finally, I hope that these videos give you a sense of the quality and depth of the presentation at WOWODC West in general (they were uniformly awesome). If you found mine interesting, I’m sure you will enjoy the others. Pascal should have them available for sale shortly – or better yet – tickets are still available for WOWODC East in Montreal at the end of August.

Screencast: Using ERExcelLook

Project Wonder’s ERExcelLook is a framework that leverages Direct To Web and the ExcelGenerator framework to easily generate Excel exports. I just finished a short screencast on adding it to an existing project. The topics covered are:

  • Adding Direct To Web to an existing project
  • Adding and action to trigger an .xls export for an array of entities
  • Creating a new model file
  • Modifying the rules

Links for the screencast:

  • There is an archive of the completed sample project available here.
  • The project is based on the Movies database, and a MySQL dump is available here.
  • The Rule Modeler tool used in the screencast can be found here.
  • The screencast itself can be found here.

I hope you enjoy it, let me know what you think.

Update: Dave Holt points out that you can specify the worksheet name by adding it in parenthesis as the first item in your displayPropertyKeys array. i.e:

(
    "(WorksheetName)",
    "title",
    "dateReleased",
    "category",
    "studio.name"
)

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.

Resources

Source of the completed project.

As always, comments and suggestions welcome.

Screencasts

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.

HelloWorld

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.

WO/ProjectWonder/WOLips

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.

Resources

Login form mockup.

Source of the completed project.

Notes:

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.