Multi-user application without need to install anything - embedded database that allows concurrent user writes? [closed]

StackOverflow https://stackoverflow.com/questions/20229964

Question

I need to create an application, that

  1. is used by multiple users concurrently
  2. does not require any installation
  3. has a centralized data storage
  4. data must be stored inside company's network
  5. i don't have access to company's internal database servers or webservers

These restrictions are not of my own - these are coming from my customer - this is a branch of a global company and there are some big IT policy restrictions on a global company level, that they can not impact on their level (something like that), but they still need a software.

My intent was to find HOW to provide them with a working piece of software despite those restrictions.

So the only option (to my understanding) is to store data on a network share - in one or more files. The problem was to find a way how to provide a concurrent write access to those files.

RESEARCH so far

  • First what came to my mind was using SQL Server Compact and place it on a network share

SQL Server Compact allows only one connection when located on a network share

  • Then I found SQLite - did some research and found out that it has some improvements over SQL CE

SQLite database file locked when writing, but possible concurrent reading operations

  • Then I found VistaDB, which seems to offer the functionality that I need but it is very expensive - it costs 1295$ per developer...

VistaDB embedded database provides row and table level locking!

So refined question is

Which embedded databases support concurrent user write access? (Is there alternatives for VistaDB in this respect?) - please, provide facts, not opinion.

Was it helpful?

Solution

1) The only embedded database that supports concurrent editing is VistaDB (at least I had no success to find any other option)

VistaDB official site -> take a look at Pros/Cons section! - (..) Embedded databases typically lock the entire database per insert operation, we do not. We provide table and row level locking.

Good thing about VistaDB - it supports Entity Framework Code-first!

Regarding price - there is a discount for micoISVs (450$ + 125$ upgrades for one year)

2) If you know that concurrent writes to database will be very rare - then you can choose SQLite, which is a free embedded database - because SQLite allows concurrent reads, but only one connection when writing to database. Did not find any information about EF support.

3) If you will have only very few users then SQL Server Compact could be the best option - it has support for Entity Framework.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top