On Mon, Jun 11, 2007 at 10:44:38AM -0700, Gabriele wrote: > I'm going to develop a medium sized business desktop client server > application which will be deployed mostly on small sized networks and > later eventually, hopefully, on medium sized networks. > It will probably be developed using C#. > > I do need a solid DBMS wich can work with .Net framework. I do know > PostGreSQL is a good DBMS in general (it sports most of the advanced > DBMS features, transactions and stored procedure included) but i > wonder if it is suited for my application. > > Knowledge base of my users is very low and "servers" will be standard > class desktop computers most probably ran on Windows XP (and Vista > later on, i suspect). > The service should be enough lightweight to be ran on such "server" > and I need silent installation and configuration because i can't > expect my user to be able to configure a DBMS. Silent installation is available and works fine. There will be a bit of overhead, especially in disk usage, compared to an embedded database. But it's much better than most commercial ones, like MSDE. See http://pginstaller.projects.postgresql.org/silent.html. > Additionally i need a passable to good data provider to interface > PostGreSQL with .Net which possibly provide better performance than > ODBC (don't know if it exists and i hope it is free). npgsql (http://pgfoundry.org/projects/npgsql) works very well for .net. > Anyway performance shoudn't be a big issue, i expect low concurrency > level (less than 10 users) and low to medium volume of rows and > queries. If more users and more data are needed for especially big > customer i can simply suggest bigger and dedicated server. (different > problems will arise for the aggregated data which will feed the web > application, but for these we will have a real server). > > Is PostGreSQL suited for such use? If not which alternatives are there > to be used? When using PostGreSQL in such a way is there any > suggestion to be followed? Links to sources which i may find > interesting (how to make a silent install, basic hardware > requirements, so on). Your other option would be to use an embedded database like SQLite. It has a much smaller footprint, but is of course also a lot less capable. But it could be worthwhile to check it out. As for suggestions, well, don't forget to run autovacuum and to schedule your backups properly. You can certainly not expect your users to do that :) Also, plan and test in advance a method for upgrading the installations - you'll always want to be at the latest release in a branch as soon as possible after the release. //Magnus