xAP Home Automation

An open standard for the home

xAP Framework v2

xAP Framework, also known as xFx, is an extensive .Net application framework to build xAP-enabled applications. xFx was originally created by Stuart Booth for .Net v1.1 using C#.

xFx v2 is my port of Stuart's work to .Net 2.0.

As well as the .Net version upgrade, I have attempted to rationalise, consolidate and tune the framework. This work is now complete and xFx is now in maintenance mode with no further major revisions other than bug-fixes planned.

The areas of major change from the .Net 1.1 version are:

  • Consolidation of the framework into a single dll (xFx.dll).
  • Re-write of the application configuration aspects to use a .Net 2.0 approach.
  • Changes to avoid use of obsolete or deprecated .Net v1.1 features, including:
    • Re-work of classes using IResumable interface to not use Thread.Abort
    • New framework calls for DNS, URI functions etc.
  • Removal of any code with ambiguous licence terms.
  • Re-implementation of any non open-source code allowing the entire source of the framework to be made available with no dependent binary dll's.
  • Renaming of classes and methods where the previous name had proved confusing.
  • Relaxation of validation behaviour to increase performance.
  • Bug-fixes for off-spec behaviour (eg, sub-address wildcarding).
  • Rework of the IP addressing behaviour for broadcast selection and port usage.
  • Rework of the UDP socket code for efficiency.
  • Support for xAP v1.3 extended UID's (with back-compatibility for xAP v1.2 UID's).

Due to the large number of changes made, moving a project from the .Net v1.1 framework to v2 is likely to break code but, since the basic structure and approach of the framework has remained the same, these should be fairly rapid to fix.

Some aspects of the .Net 1.1 version framework have not been carried forward into v2. One of the objectives of the v2 port was to provide a 'leaner and meaner' framework. The most notable exclusion is the considerable number of classes that encapsulated specific schemas (the xAPSchemas.dll) which I find to be an awkward and overly labour-intensive way to provide specific schema support. Better ways of providing schema validation (model-driven) are under investigation. Consumers of the original xAPSchema.dll should download the old source code and incorporate the classes they require into their own projects.

Unfortunately much of the accompanying documentation and tutorial material for the original xAP Framework is no longer available following a disk crash on Stuart's server. The job of reproducing this remains but is not planned. For the time being documentation is restricted to the 'help file' generated from the framework code. This is currently quite sparse and of varying quality across the framework.

Requires Microsoft .Net 2.0 to be installed.

Version 2.1

Nov 13, 2007 by Edward

Recent updates:

  • Improved support for extended UID formats (no longer limited to 8 digits per component) using strings rather that UInt32 internally.
  • Various improvements for increased reliability.
  • Installer fixed to work on Vista.

Download xFx Framework v2.1 installer.

Last Updated 13 Nov 2007 17:21, xFx version 2.1.2873.31230.