views:

93

answers:

3

We want to provide Help for a client/server system. In the current version of the system this is done client side with traditional HTML Help (i.e. lots of .chm files sitting on each client machine). For a variety of reasons (e.g. to allow quick/easy updates to the Help) we want to move the Help content (i.e. the actual topic files) onto a server.

The client-side desktop app that the Help relates to already connects to a server, so it seems like we should be able to have a client-side help viewer doing a similar thing - i.e. pulling it's topic files off a server.

However, we don't want to reinvent the wheel and code something if there's already something out there that does this.

The obvious solution would be to use WebHelp, but there's some resistance to requiring our customers to run a Web server. And hosting ourselves, or via a 3rd party, is not an option.

So does anyone know of a way of providing Help where the content resides on the server?

+1  A: 

What sort of server are you running? Is there any reason you couldn't host a web server within your server product, potentially on a "normally unused" port? You don't need to ask the customer to install and manage a web server if you bundle it yourself.

What platform is this on, btw?

EDIT: As suggested by David in the comments, there's a related question about a embedding lightweight web server.

Jon Skeet
Alistair Christie
There are many options for lightweight web servers, check out this (and referred) questions: http://stackoverflow.com/questions/516028/small-php-capable-web-server-for-windows
David Hanak
Thanks David. lighttpd looks like it would be a contender if there was a version that ran natively in Windows.
Alistair Christie
A: 

Maybe I've got the wrong end of the stick, but if this all resides on an intranet then maybe you can use a mapped network drive which is shared between all your client machines, e.g. H:/ (you could make it part of their login script). You can then use a file link to get to the HTML pages, e.g. file:///H:/help_folder/index.html

If the rest of your app is delivered across the web, then you'll have to use a web server. There is very cheap and easy web hosting available.

Simon
The app is a Windows desktop app, but with lots of stuff happening on a server: typical client/server architecture. I doubt mapping network drives would be manageable or reliable enough for all our customers, some of whom are very large organisations.
Alistair Christie
+1  A: 

You should be able to do this without too much trouble. I built a CHM-to-Web converter that slurps in a CHM and spits out a web site.
This is an example website produced from the converter tool.

The CHM creation takes a loooooong time, through Sandcastle Helpfile Builder, but the transformation from CHM to web happens in about 6 seconds. It is totally automated.

You could take this magic and tweak it to fit your rich client app. The client could query the server for an index or topic list, and then retrieve the help content as desired by the user, from the server, on demand.

Cheeso