I used to develop desktop interfaces to my apps. Over the past 3 years I've moved across to pure web interfaces. Here is how I did it:
- I write the core application as a collection of services, which I expose through REST.
- I wrote a "library" that approximates the WxWidgets - but not pedantically.
- The GUI is JS code that builds the screens programmatically - just like I used to for desktop apps.
- All styling / skinning is done using CSS classes.
- Currently I use long polling for interaction but plan to use either WebSockets or WebRTC in the future.
All users use the latest version of Chrome and the application is only accessible from the company intranet. Most users have a desktop shortcut that connects their Chrome in full-screen mode to the in-house server. The less savvy users aren't even aware (and don't need to be) that it is no longer a desktop app.