Doppler Redesign for Beta 2

I ended work on Doppler Beta 1 (B1) a little over a month ago. The goal was for Doppler to be an automated file syncronization solution and, as a bonus, would also provide functionality for keeping backups. Since then I haven’t used Doppler at all! I don’t even keep it running in the system tray. Needless to say, Doppler B1 is a failure. So before starting B2, I thought I would look over the Doppler’s failure with a critical eye and redesign it from the ground up. Here’s what I’ve come up with so far:
  • The ultimate goal of B2 will be simplicity. Support for backups will be dropped, as well as the plans to implement file versioning. Doppler B2 will be strictly and simply an automated file syncronization application.
  • Doppler will no longer keep its own “file system” (the /fsroot directory that mirrors all synchronized files).
  • The Doppler application will function implicitly as both a server and a client. Instances of Doppler on a network will be referred to as Doppler Nodes. (hmm, starting to sound a lot like P2P)
  • Each Doppler Node will have a username/password combo that it uses to connect to remote nodes (done automatically). This username/password combo will also be used to authenticate connections from remote nodes. Therefore, a network of Doppler Nodes will all have the same username/password information.
  • Username/Password information will be entered when Doppler is first installed, and the user will never be prompted for this information again unless the user chooses to change this information.
  • Users will no longer be able to/have to setup directories for syncronization nor setup directory mappings from an /fsroot directory to a another dir. on the hard drive.
  • Only the system’s “My Documents” directory, and all its subdirectories, will be synchronized. This simplifies much of the operations of Doppler (e.g. no need to worry about directory mappings since another My Documents folder is guaranteed to exist on the remote system) and allows Doppler to be more automated, requiring less interaction with the user to get things up and running.
And some of the more technical changes:
  • The FileSystemWatcher will be used instead of looping through all files in a directory. It should be far more efficient and since only one, specified, directory (“My Documents”) will be looked at, its usage should be trivial.
  • Doppler B2 will use a more standardized interface. The current setup on the main form involves switching between multiple panels. The code to handle and maintain these panels, as well as designing and positioning these panels is a pain in the ass, and its simply not work the effort.
Now to start coding 🙂