Recently Uncle Bob introduced “Slim” – a new layer so that much less of Fit is running on the system under test. It uses TCP transport and I could not work out how to effectively support it on many application servers.
I did not want to change the FitNesse source. It is still being actively developed. I created a proxy that acts as a TCP server for FitNesse and an HTTP client for Slim code on the system under test.
HTTP is a connection-less protocol – and cloud servers do not fair well with session data. Fortunately Slim sends a table at a time and each page is effectively stand-alone. The code keeps the data between tables as cookies. At the moment this is the name of libraries, the last fixture and a list of symbols.
To fully understand some new technologies I chose to write the Slim code from scratch – rather than modifying that available on the FitNesse site. So far I have released versions for Google Python Appengine and .NET IIS. The code requires little change to work with other servers – for example Django or Plone for the Python.
Take a look at http://code.google.com/p/usdlc/wiki/FitNesse4Servers. You can download an installation package or the source from the repository.