Python GUI – Running Desktop Applications as Web Apps

pythonweb-applicationsweb-development

I'm working on a project where multiple (several hundred perhaps) users will need to run an application remotely. We thought that running a web app would be the best course of action to go. (Note: when I say web app I mean a program where a user can type in a URL that will then allow the user to run the application we're working on remotely without any installations or limited installations to the browser they're using)

My problem is not knowing where to start in creating a web app. The way that I see it (and correct me if I'm wrong), there are two types of web apps out there. A Rich Internet Application which:

has many of the characteristics of desktop application software, typically delivered either by way of a site-specific browser, via a browser plug-in, independent sandboxes, extensive use of Javascript, or virtual machines.

wiki

or a 'regular' web app similar to gmail. I'm very familiar with Python and desktop GUI development using wxPython. Is it possible to write a program in Python, and then run it as a webapp?

If so, How?

Best Answer

... there are two types of web apps out there. A Rich Internet Application and a regular Web App similar to Gmail ...

Sorry but that's wrong! Web Application and Rich Internet Application are one and the same thing.

Make it simple...

  • A Website is a set of pages (static or dynamic) and is fairly simple to build and maintain.
  • A more complex and feature rich manifestation of the same website which includes technologies/paradigms/practices that evolved in the last 5 years is what they call a Web Application.

    • Technologies: JavaScript, REST, Social Web, APIs, improved standards, NoSQL, Clouds, etc.
    • Paradigms: Ajax, perceived responsiveness, UX, mashups, etc.
    • Practices: accessibility, multiple devices, etc.

So, Gmail is NOT the regular thing, it is one of THE most successful Web Applications (or RIA if you will).

Next, to answer you original question...

Creating a Desktop-cum-Web application is a non-trivial task. Of course it can be done. Look at gTalk -- it's both Desktop and Web App.

You need to identify the common and disparate components of your system and then architecture it accordingly. You may need a complex MVC setup also. You'll also have to carefully plan your deployment and maintenance strategy. More importantly you'll need an upgrade mechanism that works for both Desktop and Web versions of your App.

I am not trying to scare you off -- but realize that what you want is NOT simple.

Now if you don't have any idea where to start for the Web App part, then (in my humble opinion), you should first master Python Web Application programming and then approach this thing. As you already do GUI apps, it won't be long before you'll start feeling confident about this system and you'll have all the knowledge and context to answer this question yourself.

Related Topic