Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm making a windows forms application which I want to install on a few computers that are all connected together on a network. Each of these computers have access to a number of servers on which various tasks are carried out etc.

I want each instance of the application in use to be able to store and retrieve data regarding the separate remote servers (this data can be edited by everyone using the application on their computer). The application needs to be able to retrieve data from the servers when the user clicks an update button. The user can then edit and update that data if necessary.

I think the main options for storing the data are as follows:

  • Store data all in one place in a database
  • Have a folder on each of the servers and save XML files to it with the data

Which would be the best approach in this scenario and why? Are there any better alternatives?

Note: I would usually opt for the database approach but I want to store data in an alternative way because using a database would require selecting one of the servers to host the database, which doesn't make sense as to which one would have that stored on it and not the other servers, albeit only one database would be needed by the application.

share|improve this question
up vote 1 down vote accepted

I would go for the database. Quick, easy and known.

As per your issues, I do not know why you mix application servers with database server. After all, you can have your database server in a machine with no application server at all. Having a "conceptually" separate database server allows your fellow SysAdmin to optimize that server for databases engines. Not to mention licencing issues if you plan to use Oracle or similar.

The "mixed data" has the side effect that when one of your server fails/has downtime, you do not know which of your other servers may fail. Ugly, ugly. If you need it for some reason (the only reason I can think of is spreading lots of files through your desktop almost unused HD), probably there is a service app for that in the internet (which should cover replication and encriptation).

share|improve this answer
Thanks for your answer. I think the database option would be the best option too. But how to choose which of the different servers to host it on? And like you say, what if that one server goes down and the other servers don't, which would mean having a database on each of the servers. Because of these reasons and because it's a fairly small application, I'm thinking storing XML files on each server is quite lightweight and should be quick to implement. – Theomax Jun 15 '13 at 16:26
I'm thinking storing XML files on each server is quite lightweight and should be quick to implement. Unless it is configuration (static), I would not say it is easy. What happens when one of your servers does not store a copy because it was down? How do you manage configuration? – SJuan76 Jun 15 '13 at 23:02
But how to choose which of the different servers to host it on Again, the database server is independent of the application servers. Use ODBC to connect to it. – SJuan76 Jun 15 '13 at 23:03

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.