Does the application need to be multi-user in standalone mode as well? Since both GUI and database need to be in the same VM, i can't think of ways to start multiple GUIs that would use the same VM.
Any help would be greatly appreciated.
In standalone mode gui and database will be in same VM, so just one user will be working with the application. So the code to make your Data class thread-safe will be of no use in this scenario (but should still keep working). So there is no need to create a Data class for standalone mode and another one for networked mode.