cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Announcements
We want to hear from you. What do you use Dropbox for?
Close

Dropbox files & folders

Get in sync with the Dropbox Community. Our members can answer all your questions on Dropbox files and folders. Join a discussion or start your own today.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted

Placing EXE files in a shared Dropbox folder.

Explorer | Level 4

Hello all,

I made a small .NET Core app that publishes as an .exe with surrounding files. Its a small client manager that gets database information from a SQLite database (which is already saved in Dropbox) in the project folder. Now, I've been wanting to distribute by app to the rest of my workplace, but I've run into a few issues:

- sending the app as a large .zip file, especially when versioning, is going to get annoyting quick

- since most of the staff isn't computer literate, I'd have to make an installer to place project files in the correct place

- the database should be a MASTER database, which means that anytime someone is adding or removing data, the database should sync up with apps on other computers as well

After thinking about this for a while, one of the ideas I came up with was simply placing the entire app on a shared dropbox folder. Advantages (in my perspective):

- Dropbox will install all the files on everyone else's computers automatically

- Very easy version control: I'd just have to update the .dll files for my project and the exe, without touching the other dependences

- Cross-platform support for people who don't have .NET Core installed on their machines; I can place the runtime inside the Dropbox folder.

- I can just create a shortcut to the exe thatstaff can copy-paste to their desktop

- Data is all kept in one place instead of a "local-copy" and a "Dropbox-copy".

Overall, I see a lot of benefits in this approach, and was wondering if anyone else had implemented this idea with another app. Also, I wanted to know if there were any issues with multiple users accessing the same exe and databases at the same time. If two users are opening the same text file at the same time (from their local dropbox folders), and input data, how does Dropbox respond? Does it create a separate text file for each user, or does it prohibit the second user from changing the file?

Would appreciate any help on this.

4 Replies 4
Highlighted

Re: Placing EXE files in a shared Dropbox folder.

Dropboxer
Dropboxer

Hey there @AGreenTejada, thanks for reaching out to us here!

There would indeed be advantages to hosting the app within a shared folder, however there's a few points I want to touch on here with you.

In general, we don't recommend syncing live databases with Dropbox. You could have issues with syncing as most programs would "lock" a file that is being used, which would prevent the desktop app from syncing the file.

You would most likely need to fully close the app used for editing before the desktop app would be able to sync the data, and you'd need to allow it to fully sync before opening on another device.

Onto your other question, if multiple people try to edit the same file then when the different sets of changes made by each user are saved, it will generate conflicted copies.

Having said that, it might depend on your specific use case and whether people would be directly editing the databases. Would you mind providing a little more info on which files would be edited for example? 

Let me know and we can go from there - thanks!


Daphne
Community Moderator @ Dropbox
https://dropbox.com/support


Heart Did this post help you? If so, please give it a Like below.
Still stuck? Ask me a question!
Tips & Tricks Find new ways to stay in flow or share your tips on how you work smarter with Dropbox.

Highlighted

Re: Placing EXE files in a shared Dropbox folder.

Explorer | Level 4

Hey Daphne,

Thank you for the reply. As I understand you, it would be difficult to use a SQLite database because Dropbox would "lock" the file being used. But what if I used a JSON file, which is very close to a text file, then told the program to read and write to that? As a JSON text-file, it will only be read once on startup, and written to once on submitting client data. That should solve most problems related to conflicts, right?

Highlighted

Re: Placing EXE files in a shared Dropbox folder.

Super User II
Super User II

@AGreenTejada wrote:

But what if I used a JSON file, which is very close to a text file, then told the program to read and write to that?


Your problem isn't the type of data storage. It's the location.


Data is all kept in one place instead of a "local-copy" and a "Dropbox-copy".

THIS is your problem. Data isn't kept in one location. The database file, regardless of type, is stored locally on each person's computer. They're not all accessing the same file. They're all accessing a COPY of the same file. As changes are made, the copy is synced back to Dropbox and then back to everyone else's computer.

Any time mutliple people make a change at the same time, or close to the same time, a conflict will be created. Also, what happens if people can't sync (network problem, etc.)? Your program will still be able to read the copy of the file in their local Dropbox, but it may not be the same as the copy on the Dropbox server. Once that computer can sync again, it will create a conflict.

Dropbox is just not a good solution for any files that will be used like a database where the intent is to have multiple people access them simultaneously. It's not a matter of if you'll have a conflict; it's a matter of when.

Highlighted

Re: Placing EXE files in a shared Dropbox folder.

Super User II
Super User II

@AGreenTejada wrote:

But what if I used a JSON file, which is very close to a text file, then told the program to read and write to that?


Your problem isn't the type of data storage. It's the location.


Data is all kept in one place instead of a "local-copy" and a "Dropbox-copy".

THIS is your problem. Data isn't kept in one location. The database file, regardless of type, is stored locally on each person's computer. They're not all accessing the same file. They're all accessing a COPY of the same file. As changes are made, the copy is synced back to Dropbox and then back to everyone else's computer.

Any time mutliple people make a change at the same time, or close to the same time, a conflict will be created. Also, what happens if people can't sync (network problem, etc.)? Your program will still be able to read the copy of the file in their local Dropbox, but it may not be the same as the copy on the Dropbox server. Once that computer can sync again, it will create a conflict.

Dropbox is just not a good solution for any files that will be used like a database where the intent is to have multiple people access them simultaneously. It's not a matter of if you'll have a conflict; it's a matter of when.

Polls
Do you know how to organize your files and folders?
<b>We have created a guide on folder best practice, so you can get organized now <a href="https://www.dropboxforum.com/t5/Business-Tips-tricks/Folder-structure-best-practice/m-p/428456#M39"><u>check it out here</u></a>.</b>

Work Smarter with Dropbox

The way we work is changing. Share and discover new ways to work smarter with Dropbox in our community.

Sound good? Let's get started.
Who's talking

Top contributors to this post

What do Dropbox user levels mean?
Need more support?