Phil Booth's blog

How to harness the power of XHTML and XForms in your .NET applications

Code Project

Recently, we've had a number of enquiries about embedding formsPlayer inside third-party applications, as more people are realising the benefits of using XForms as a dynamic UI framework. Fortunately, formsPlayer exposes a set of COM interfaces explicitly for this purpose and a number of commercial solutions exist that are currently relying on them. With this in mind, I've posted a tutorial article to The Code Project, one of the leading .NET developer resources, which demonstrates integration of these interfaces in a simple C# browser-like application.

Although the tutorial is by no means comprehensive, I hope it provides enough detail for anyone interested in this area to quickly get themselves up and running. In due course, I'm hoping to expand the tutorial much further to encompass some of the cooler features we've implemented, including event-based communication with rendered documents and serialisation of rendered documents in their live state. To view the tutorial, click here.

Turn any web page into a desktop application

Screenshot of the BBC Sport website running as a webapp in the Sidewinder Viewer

I've just finished implementing a new feature in the Sidewinder Viewer, which further simplifies the task of turning any web page into a desktop application. If invoked with a command line argument that specifies the document to load, the viewer now also checks the fragment identifier for the presence of a meta XPointer scheme. The expression associated with this scheme allows you to set a number of application-level properties, such as the window title, height, width, position and so on.

Driving Google Maps from the XForms model

Screenshot of the XForms Google Maps application running inside the Sidewinder Viewer

I've just written a new tutorial, describing how to write an XForms application that overlays data from a BBC Backstage feed onto a Google Map. The application is pretty short and straightforward, but it also provides a cogent illustration of the advantages that the XForms model can bring, even to non-XForms user interfaces.

formsPlayer now supports Tablet PC pen input

formsPlayer

One of our customers in the insurance industry recently required us to provide proper Tablet PC stylus support in formsPlayer. The latest version implements our first cut of this feature, allowing hand-written data entry into the XForms input, secret and textarea controls.

Embed XHTML documents in your .NET applications

Sidewinder Renderer

We've just added a new tutorial to the site, demonstrating some basic techniques which allow you to embed XHTML documents inside your .NET applications. They rely upon our Renderer COM component, which is installed as part of the Sidewinder Viewer. The first tutorial is very straightforward; in later ones we shall demonstrate more exciting features, such as event-based communication between the live document and your application.

More ways to dock windows

NASA Feeds in the Sidewinder Viewer

The latest version of the Sidewinder Viewer provides more options for docking renderer windows from the JavaScript API. Notably, it is now possible to create Renderer objects as docked children of a larger Application object. This allows a user to close your entire application from a single top-level window and can also provide a more convenient grouping of related windows.

Source View colour schemes

In the latest release of the Sidewinder Viewer, you are able to alter the colour scheme used in the Source View tab. The option is available in 'Preferences > Source View'.

Bubbling events beyond the document boundary

Backpack Reminders in the Sidewinder Viewer

We've just started developing a new sample for the Sidewinder Viewer which, among other things, demonstrates basic communication between a running script and the rendered document. The sample uses the Backpack web service, via its RESTful API, and is something that we shall continue to develop as the viewer becomes more powerful.

Introducing SVG-rich XForms controls

Rich XForms output control

An important feature of formsPlayer 1.5 has been the development of richer form controls, implemented using XBL and SVG. The screenshot here shows a simple XForms output control styled to look like an LED display.

The effect is achieved by adding an appearance attribute to the control, so that the functionality is non-invasive to other XForms processors (and, indeed, to earlier versions of formsPlayer):

<xf:output ref="clock" appearance="fp:LED" class="clock" />

Enhancing your Google Calendars

Google Calendar in the Sidewinder Viewer

Google Calendar is a good example of an application that benefits from features of the Sidewinder Viewer, without the need for any changes to be made. Given particular calendars that you may have cause to refer to throughout your day, it is a simple task to invoke the viewer in such a way as to make your calendars readily available, yet also unobtrusive.