Anyway you slice it, it depends on the specific uses in your application. Here is yet another question on smart client architecture: My application works as follows: The desktop application will download the database from the server (when it installed in the user machine). User will not do any changes...