Creating a multi-tier client/server application
Fri Aug 31 09:37:20 CEST 2007
Jeff <jeff.fw at gmail.com> writes:
> Granted. But what I will be writing really will take a lot of extra
> work to get even close to the level of usability needed on the web vs.
> a desktop app. And I'll try not to write a crappy GUI ;-)
OK. In the discussion with Chris, one factor that came up is how much
time users will spend in front of the app and the amount of data
they'll physically enter. If it's a lot, that weighs in favor of a
desktop app. If it's not much, then maybe some gain in UI
responsiveness isn't worth the downside of a client installation.
> Sorting certainly doesn't have to be done on the server side--in fact,
> in most cases I can think of where it would be useful for this app, it
> wouldn't have to be--in which case it's more responsive. Certainly
> exporting, importing and printing can all be done through the web--
> I've done this plenty of times. But there is a huge amount of
> flexibility (and, in the case of printing, guaranteed style/quality/
> layout) to be gained on the desktop.
This I don't understand at all. How is the least bit of flexibility
or style or quality guarantees gained by a desktop app? If you want
fancy formatting, just use Reportlab to generate a pdf on the server
and send it to the browser.
> All that said, I am most likely going to go with a desktop
> application. In reality, I will have to do whatever my client wants.
> Thank you *very* much for all of your input--one of the first things I
> have to do is make them a list of the pros and cons of web vs. desktop
> apps--and this will help a lot.
Yes, that sounds like a good idea.
> vanrpeter-whatever: Thanks for the support :-) What did you use for
> networking? What ORMs did you try (or did you skip them altogether?)
Have you ever written a serious GUI app before? I've never done any
really fancy ones, but even the relatively simple ones I've done have
turned out to be far more time consuming than I expected. Have you
done much concurrent programming, either with threads or something
like twisted? You're going to have to do that to keep your gui
responsive, so you might put that on your list of things to study (in
addition to networking and databases).
More information about the Python-list