August 27th, 28th and 29th 2010 ...Montréal ...Hotel Gouverneur Place Dupuis

D2W (DirectToWeb) sessions

Troubleshooting D2W rules

Speaker : David LeBer

While using WebObjects' powerful Direct To Web technology, you often encounter head scratching moments where the frameworks make decisions you don't understand. This session will help you build a solid rule troubleshooting methodology to answer those "why in the world is that happening" questions. Topics will include:

  • Introducing the D2W rules
  • Understanding the rule parts and their origins
  • Using RuleModeler
  • Exploring the rule hierarchy
  • Exploiting model groups
  • Enabling rule logging.
  • Digging deeper - exploring the D2W components
  • Plenty of practical examples and tips from the trenches

D2W + Web 2.0

Speaker : Ravi Mendis

This session will introduce you to developing Web 2.0 DirectToWeb applications using tableless-markup, CSS, Prototype, Scriptaculous and "dynamic D2W". Including:

  • Why Diva? Or why Web 2.0?
  • How?
  • Migrating to Web 2.0
  • Selenium Testing D2W
  • Basic CSS3 in D2W
  • Ajax + D2W
  • How to use Scriptaculous effects in D2W
  • How to use CSS & D2W rules for custom UI
  • How to use "Dynamic D2W": ajax + delayed D2W assignments

ERModernLook lab

Speaker : David LeBer

See how you can integrate existing models and code in a new ERModernLook application so that you can benefit from this new D2W look.

D2W Custom Assignments and Component Design

Speaker : Ramsey Gurley

This will be a detailed look at how the rule system works using D2W with Project Wonder. I will discuss what makes the rule system tick and how to automate the assignment of common rule system values using custom D2W Assignment classes. In doing so, I will cover the different rule caching strategies employed in Project Wonder and explain how to use them to your advantage.

From there, I will discuss how all these rule system assignments translate into working D2W components. I will describe how to bind values in components using the d2wContext, explain when to bind values using the d2wContext, and show you a few Wonder component classes that you will find useful when constructing your own custom D2W components.

I'll finish up the discussion with a practical problem which we will solve first using simple rules, then again using a custom assignment, and finally solve it once more using a custom component.

"Hello D2W!" Building your first D2W application

Speaker : Ramsey Gurley

In this presentation, we will take our knowledge of D2W and learn how to apply it in a practical manner. I will lead you step by step through a simple D2W application. I will explain how to set up page configurations. I will explain how to move around them with delegates. In essence, I will show you where the entry points for injecting custom logic are located. I also hope to show you a few hidden gems along the way as well.

Integrating WebObjects with Other Tools sessions

Full text searching with Lucene (AKA: When database queries are not enough)

Speaker : David LeBer

If you've ever had a client ask you to implement a "search of our site, you know, like Google does" then you will benefit from knowing about Lucene. Lucene is a text search engine that allows for blazingly fast full text searches of your content. This session will cover:

  • Understanding full text search
  • Introducing Lucene
  • Exploring the Lucene search engine
  • Understanding the index options
  • Choosing a query type
  • Using ERXIndexing
  • Avoiding gotchas and limitations
  • Practical examples

Integrating and using JasperReports in your WebObjects App

Speaker : Kieran Kelleher

  • Introduction to JasperReports
  • WO Integration Classes
  • Reusable Framework wrapper for JasperReports
  • Example App Demo

Groovy XML Processing

Speaker : Vladimir Forfutdinov

  • Short intro with few quick example of Java vs Groovy short cuts
  • XML parsing with Groovy
  • XML generating with Groovy
  • A longer example of using EO inside Groovy

Building Concurrent applications with WebObjects and Scala

Speaker : Ravi Mendis

The advent of multi-core processors has brought about a new challenge: how do we build WebObjects applications that truly take advantage of this new technology? Scala is a new concurrent programming language that is powerful, safe and easy-to-use. This session will introduce you to Scala, concurrent programming and how to use it to develop WebObjects applications.

  • Introduction - Why Concurrent Programming?
  • Case Study: Slowmation
  • Brief Introduction to Scala
  • Introduction to Scala Actors
  • Concurrent WO
  • Using Squeryl with WebObjects
  • Scala Performance Test

Integrating 3rd Party Authentication Services

Speakers : Joe Little and Daniel Beatty

There are many ways to handle authentication in an application, and this talk speaks to current and newly developed approaches to do that well. We'll explain the models and provide practical examples on :

  • Storing strong passwords in your DB
  • Authenticating against LDAP services
  • LDAP via your Model (JDNI) and mixed modes
  • Kerberos integration and LDAP utilization
  • WebAuth as a Kerberos gateway
  • Shibboleth and the future


Speaker : Dennis Gaastra

  • Introduction to PDFKit
  • Real world demos
  • New API
  • Tutorials/examples

Project Wonder sessions

Getting Started With Wonder

Speaker : Kieran Kelleher

  • Introduction to Project WOnder
  • Minimum Integration - What Wonder gives you for free
  • Tour of Selected Really Useful Features in Wonder
  • EOEditingContext Locking and Wonder AutoLocking
  • Configuring WOnder's Features with Properties
  • Demo app


Speakers : David Avendasora and Pascal Robert

See how you can use ERRest as the back-end of HTML5 (with offline data) and iPhone applications.

Hidden Treasures in Project Wonder


Project Wonder is full of hidden gems.

Case Studies

From NeXTStep to WebOjects the build of a Free Open source ERP for French Higher Education : Cocktail-Office

Speaker : Aurélien Minet

Since the discovery of NeXTStep in 1992-1993, Dbkit and of IB until this day, the NeXT and Webobjects technologies was the basic constant and the vital lead of the realization of what constitutes a real ERP competing in its professionnal sector with monsters like SAP or HR-Access for example.

Mobile agent synchronization between multiple WO services and client

Speaker : Daniel Beatty

Using WebObjects to Develop a Cloud Based Financial Tracker

Speaker : Baiss Eric Magnusson

For eight years WebObjects based (TYF) has been used to satisfy the function of a desk-based application like Quicken, and yet apply notable extensions of aggregation. It has been evolving into a self-contained banking system that is based in the cloud. I will try to show how WebObjects maintains itself as an excellent platform for this kind of programming, both in the present and the future.


Speaker : Vijay K. Sajja

Evergent is a set of components that enable advertisers/content providers/distributors manage complex revenue sharing rules and partner relationships effectively. The complexity of settlement rules increases exponentially when advertising is introduced through ad networks or through direct performance based advertising. Share of ad revenues is another way Mobile/Internet content producers are looking to generate new revenues. Evergent’s components are built using WebObjects and are carrier grade. Evergent’s solution offers many advantages for revenue settlements, customer care and billing. Perhaps the most critical is ease of installation, with minimal changes to the existing back office infrastructure.

Tools sessions

Practical Build and Deployment

Speakers : David Avendasora, Chuck Hill and Pascal Robert

Load testing helps to ensure that an application responds appropriately under load before it is actually in use and also demonstrates the throughput that the application can handle with a given hardware configuration.  This session will show you how to use the Open Source JMeter tool to load test a WebObjects application.

We will show you how to use Hudson to build your WebObjects applications and its dependencies and deploy your applications from Hudson with new APIs in JavaMonitor. You will also learn how to monitor your WebObjects applications with tools like Nagios.

Development Tools

Speaker : David Avendasora

Some cool tips about how to use tools like JRebel, Eclipse's debugger, Click-to-open/Click-to-debug, ERProfiling, SnapshotExplorer


Come join other WO developers in the labs so that everyone can share tips and tricks. Don't forget to bring your laptop and code!