I am working on a system that connects a client to a database. I am both in control of the client (written in C#) and the database (most functionality is written in pgSQL). Users have to log in in my client, which checks the database for correct username and password.
I am now running into the problem of keeping state of the user interface of the client. Think of window positions (the client uses an MDI), UI settings, etc. To manage this, there are some possibilities:
- Store them on the client PC using Windows' standard settings.
- Store them in the database, per user.
If I would use option 1, the same settings would be used even if you log in with a different (database) user, also the settings won't be roaming. Option 2 would mean settings could be overwritten if a user is logged in on two computers simultaneously.
My question now is, what approach would be best, or at least most acceptable (least surprising) for the end user? Or is there another approach that is often used?