The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Browser application & local file system access

I want to enhance my browser-based web application with functionality that enables management of local files and folders. E.g. folder tree structures should be synchronized between local workstation and server via HTTP(S).

I am aware of security-related limitations in browser-based applications. However, there are some techniques that "work around" these issues:

* Signed Java applets (full trust)
* .NET Windows Forms browser controls (no joke, that works. Just the configuration is horrible)
* ActiveX

My question is: What do you use/suggest, both technology and implementation practice? Key requirement is that the installation process is as simple as possible.

Thanks for your opinions!
Beyond HTML
Saturday, November 15, 2008
For OS agnostic use signed Java applets.  For the customer it is an easy install, Just accept the applet when the warning pops up.  The PIA is signing the darn thing.
Jim Send private email
Saturday, November 15, 2008
Everyone starts with the assumption that it has to be browser based.  Sounds like your users are internal and you are trying to fit a client application into the browser world. 

I went down the same path and wrote a website where the sales reps would make sales out in the field using a tablet laptop.  It was too slow and some of the wine stores were in cinderblock bunkers so they couldn't get reception.

Rewrote the UI part of the application as a windows application.  I’m using  ClickOnce deployment so updating the application in the field is automatic.

And I used Microsoft Sync Framework to sync up the client database with the one on the server.

I got the functionality and speed of a Windows application using a local database and the sales reps don’t have to spend $70 a month for wide broadband.  Seems so obvious now that I am done that the web site solution wasn’t going to work.  So take a step back and think about the overall architecture of the tool you are building to solve the problem that you are solving.  Just my two cents.
JBrooks Send private email
Saturday, November 15, 2008
You can also look at using flash or silverlight for this.

Saturday, November 15, 2008
JBrooks: thank you very much, I appreciate your suggestion. However, there is almost always a hard requirement for "browser based" due to corporate authentication infrastructure. AFAIK all of these "plugin" techniques make use of cookies, HTTP headers, SSL connections, etc. established by the browser.
Beyond HTML
Sunday, November 16, 2008
ClickOnce and for that matter plain old XCopy installs are not plugins, and don't use cookies, etc.

There is often the option of per-user installs as well, if you wanted to use a formal installer.  One of the features of Windows 7 will enhance per-user installs to encourage more use, but it can be viable well before that (back to Win2K if done properly).  Of course that can be blocked by Group Policy, but otherwise admin rights are not required.

The main argument for settling for a Web based application is usually OS portability.
So tired
Sunday, November 16, 2008
I suggest you investigate HTA technology.  This is an  application written in html having the extension HTA rather than HTM (HTA = html application).  This is Internet Explorer version 5 and later, not FireFox, and will run under most Windows systems on and after Windows 2000.  See

To read and write files in an HTA, see

... and to make installation as easy as possible, you likely want HtmlApp Studio Profession (disclosure: my program) at

regards, Dennis
Dennis Reinhardt Send private email
Sunday, November 16, 2008
Why not go for an online file storage and offer file system access to that instead, like this, ?
Mikael Bergkvist Send private email
Wednesday, November 19, 2008
What about writing a mini-http server in perl or python and deploying that to the users machine?  You could then have the client browser access the local filesystem using http://localhost:<port>/whatever... ?

You could add your own special code for various URL's to do many things, and yet it would be all browser baseed...
Out of The Box Send private email
Friday, December 05, 2008

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz