XTech 2006

A little bit late, here are my notes from Xtech 2006 in Amsterdam.

Yahoo! User Interface Library

The first day of the conference was dedicated to all things Ajax. In the first session Simon Willison from Yahoo! presented the Yahoo! User Interface library (YUI). YUI is a set of reusable utilities and controls that can be used to build interactive web applications (web 2.0 style). It is designed for Yahoo! specific problems where it has to work on both new applications and old legacy sites.

The library components are organised under the namespace YAHOO (to avoid collision with other libraries) and can be broken down into two main categories: utlities and controls. Examples of utilities are DOM, Event and Connection. Examples of controls are Calendar, Slider and Auto-complete. According to Simon the controls should be accessible and a paper on the accessibility features where due to be added to the site.

Simon's slides can be found here.

Using XML to declare a UI

Three sessions described technologies for declaring UIs with XML: OpenLaszlo, Backbase and Adobe Flex. OpenLaszlo is an open source framework with OOP features and an emphasis on declarative structures. Although it only compiles into Flash at the moment, the framework itself is runtime independendant. Work is currently under way to support more runtimes, first DHTML but later on CLR and maybe XUL. XPath can be used for runtime data binding, e.g.

<dataset name="dset" type="http" src="test.jsp" />
Bind to textbox:
<text datapath="dset:name/text()" />

Backbase took the declarative approach one step further. In OpenLaszlo javascript can be used, for event handlers for example, but in Backbase everything is declarative. This hides the complexities of scripting from the developer, but might feel a bit constricting for a developer with javascript knowledge.

Finally Adobe presented their new application Flex, which is Flash with an application instead of an animation focus. They use their own XML language called MXML for declarative GUI programming and Actionscript for adding behaviour. Flex Builder (based on the Eclipse IDE) seemed quite powerful and easy to use (reminded me a bit of Microsoft's Visual Studio .Net). The Flex SDK is free even for commercial use, but Flex Builder costs around $1000 (although you can use any editor you like).

Hijax

Jeremy Keith described a technique for progressive enhancement with Ajax, or Hijax as he calls it. The problem is that Ajax is often seen as an "all or nothing"-technology. Building separate but equal non-Ajax versions usually requires much effort. The steps for implementing an Ajax solution with the Hijax methodology are:

  • Build the website in the traditional way with whole page refreshes.
  • Send data via querystrings and form submissions.
  • Intercept (or hijack) the form submissions and link requests with javascript and route them through the XMLHttpRequest object if it is supported by the browser.

The benefit of building an Ajax application in this way is that you can be assured that the website works with or without Ajax. The backend will have to be fairly modular though, in that it has to be able to return both entire pages and parts of pages.

When choosing a data format for an Ajax application you essentially have three choices:

  • XML + DOM methods
  • JSON + eval()
  • HTML + innerHTML (AHAH)

The last one is particularly suited for the Hijax model. With this method the XmlHttpRequest object acts like a "dumb waiter", just passing information between the client and the server and not doing any advanced processing. The server response is already formatted as HTML so there is no need to parse XML on the client side.

Using XSLT and XQuery for Lifesize applications

Michael Kay of Saxonica gave a talk about how he has been using XML technologies in his consulting practice. His main advice was "As far as possible, use wall to wall XML". That means:

  • XML DB
  • XML based objects in business logic (in particular)
  • XML based user interface components

He described a project where he worked on modifying a spreadsheet based HR system into XML. The data in this system was "document oriented" with the on-screen representation similiar to what is stored in the XML DB. The design of the system is driven by the process model, not the data model. The benefits of using this approach (in document oriented systems) are:

  • Strucured data
  • Flexible
  • Not normalized, inconsistency tolerated
  • What you see is what is stored
  • Design is driven by process model, not the data model (e.g. what data do we need to process to promote an employee, what documents do we store for this process)
  • Single representation of data (if the other parts are in XML that is)

For application development he recommended using high level languages for business logic, i.e. XSLT instead of Java. This makes the business logic easier to change and more robust.

Google Data API

Google has lots of Web APIs, some are SOAP and some REST. Google Data API is intended as a generic data API for all Google's services. It is used in Google Calendar today, but in the future it will be incorporated in Gmail, Blogger etc. Data is returned as Atom or RSS 2.0, with some extensions contained within the gd namespace.

RDF/A

Mark Birckbeck of x-port and W3C gave a talk on RDF/A which is a way to incorporate RDF in XHTML. RDF/A uses attributes, hence the name, to embed metadata in XHTML which is both human and machine readable. Microformats tries to solve the same problem, but has some inherent problems. Firstly it requires already existing metadata formats to be redefined, and secondly it uses unqualified tags.

RDF/A uses the meta and link elements to create basic RDF triplets. The rel attribute is used to add meaning to a link, e.g:

<a href=mailto:test rel="foaf:mbox">
RDF/A is a simple way to metadata to a page, and is a more general approach than microformats.

The other sessions I went to

Core technology track

Open data

Applications

Browser technology

Some good posts from other attendees

Post a comment









Remember info?