Note that there are some explanatory texts on larger screens.

plurals
  1. POArchitecture of a Dropbox-like Windows client
    primarykey
    data
    text
    <p>How would you design a windows client for a dropbox type syncronization system, using .NET as the base platform?</p> <p>The client communicates with the server using HTTP (json) for sync metadata, user info etc., and uses rsync for the actual file transmission. There should be a main interface window, a GUI accessible from the system tray (and always active there for notifications), and a Shell Extension for context menu and icon integration.</p> <p>GUI could be a standalone Windows Forms (or WPF) application, minimized to tray by default. The Shell Extension must be a standalone DLL registered with the explorer process. How about the core client functionality for communication with the server and for file transmission, and monitoring of the file system changes? </p> <p>What is the best way to implement this? As a separate application, a DLL containing the functions required, or a background windows service that both the GUI and the shell extension call when necessary? Or something else other than the 3 mentioned?</p> <p>One of the problems could be the necessity for the core functions to call (execute) an external process, the rsync.exe, for file transmission. Also, where ever the core functions are, the Shell Extension DLL must be able to use them.</p> <p>Are there any implementation or design details somewhere for the actual dropbox windows client? All that I could find was that it is is written in python, seems to use a sqlite3 database to index files and subversion and RSync internally to manage revision control.</p> <p>EDIT: Also, I forgot another aproach - .NET remoting. The client application would expose the methods for server communication the Shell Extension could use it.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload