By your comment, you are confused not having a database with having an embedded database.
For example, you can create an installer with InstallShield that installs the SQL Server Express LocalDB (MSI installer) the machine.
Using Entity Framework Code First
with Migrations
, you will be able to create or update the database structure.
Finally, you can develop a WCF
service and host it in Windows Service
using TCP
( netTcpBinding
), InstallShield is also able to install and configure the Service.
And your Clients of this application will basically install a donkey terminal that only connects to the Server through a WCF Service.
Note that although we are installing a
SGBD
, creating / updating the database, installing and configuring a service, all this is encapsulated in a Simple Installer (a.k.a
Next > Next > Next
). The same goes for Terminals. then you will have two installers (
MeuSistemaCliente.exe
and
MeuSistemaServidor.exe
)
Only one last point, if you really want to persist the data in a text file shared on the network, be a *.txt
, *.csv
... or even something more refined as a *.db
Sqlite
), you will have to deal with concurrency issues and the constant risk of having your file corrupted and / or the system crashes due to some lock
in the file.