views:

18

answers:

1

I'm in the process of spec-ing out a rich application for personal finance management - a cross between tools like Quicken and Mint.com and a set of spreadsheet macros I created for personal use. It would be a simple matter to build it either online or offline (preferably both), but we all need to start somewhere.

So what's the best way you choose deployment focus with your projects? Do you deploy a desktop app for testing first and evolve to a rich, online application later? Or do you build a web-based system first and package it for desktop deployment later? Both are valid approaches, but I want to know which has proven the more efficient in the past.

In either case, the application will still be built somewhat the same - a separate database layer, business logic layer, and presentation layer. The question is more about the location of each (local or remote) and the problems that might arise by choosing one approach over the other.

+1  A: 

In my opinion, a Rich Internet Application only makes sense if there is a web service tie in. If people will be storing their personal finance information on your server, then it makes sense to have a RIA, otherwise, it sounds like a desktop application solution.

For the rare case where you would have both, the web application is usually limited, but provides a zero-install or cross-platform solution. Consider online word processor applications versus their desktop counterparts.

Marcus Adams
I'm thinking at this point that there would be both local and network storage of information - providing the ability to work offline while still synchronizing data with an online backup. Ultimately, I think even the desktop app would communicate with a web service.
EAMann
So, it sounds like you really might have both in the end. The current trend is to start with an online application first then release "apps" later. It is much easier to support an online application since you don't have to worry about "deployment" so much. The user's browser will automatically get and cache the latest version. Also, there's no reason to develop an "app" if your users don't adopt the system.
Marcus Adams
Sound advice :-)
EAMann