I'm still a student, but recently got an opportunity to write some software for a company. And I need here an adivce from somebody who has more experience than me. However I'm not a newbie, I've worked with MSSQL, mysql, postgres, but non-commercial, just learning. The thing is that i have to do (and design by myself - i do not have any exact plan given!) a software to manage kind of agencies. I have to think about architecture that can serve agencies with multiple workstatnions and data storage to be stored somewhere, that could be accessible to every workstation. Also I have to provide a mechanism that when on one workstation data is typed in, every other computer should see that changes in db immediately, so kind of client-server arch. will be needed.
What i'm not sure is how should I solve it. My idea is a database, installed on a server computer and every application from every computer could access that database directly. But there are some things that i should also prevent (I think). I mean, that this database should not be a standalone serwer and work as a service, because while installing many errors may occur, so i wan't it to be rather simple to install by people who are not specialists. So The second my idea is to provide client applications which connect to a server which has an embedded database included and it is only this server who talks directly to the database.
What i thought also is to provide an embedded database which does not requiere installation and can exist on a server computer without any server software provided and can be accessed remotely by client applications. I know that an embedded version of Firebird does not allow it (at least version 1.5, i don't know whether it is resolved in beta 2.0). I've heard sth about sharphsql that this may be accessed remotely, but it is a bit buggy.
Could anybody help me decide with an apropriate architecture and reccommend any solutions and exact software (freeware, opensource only:/)?
What i should add is that i want to write software for windows apps in C#, .NET, so a ADO.NET provider for the database would be especially needed.
If anybody is that patient to read whole post and have any proper solution for me, please write, I'm glad for any advice, thank you.