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

1

-2

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.

Rahman answered 26/11, 2013 at 23:11 Comment(10)
I suggest you find a technology that works (such as sql server express) and work on getting the ridiculous restrictions removed.Moonscape
@Dan-o well unluckily in this case I can not get those restrictions removed, but i found out that sql server compact could work the only thing is that i have to make disconnected app, but that could work for some 5-10 users, but in this case there will be up to 50 users. The only thing that might work would be to logicaly and physicaly split this database in multiple files so that for each file there would be only a few concurent users.Rahman
@Dan-o Wanted to put a bounty on my question, but... it happens that i am 4 reputation short... dammit :(((Rahman
Build a web app, not a desktop app.Delegate
@DourHighArch thanks, but it looks like i have forgot to mention that data has to be inside the company network, and not possible to put it on webserver - web app is not an option. But it turns out i have found a solution :) Will post it after some hoursRahman
Build a web app on a web server inside the company network.Delegate
@DourHighArch Thanks for the help, but web server on the company network is not an option either. P.S. Interesting - that somebody thought this does not show research effortRahman
Where are these absurd “restrictions” coming from? Cloud services and web servers can easily run in a intranet; show us the research you have performed to determine these “are not an option”.Delegate
@DourHighArch These restrictions are NOT the product of my research (or not having the research) - they come from the CUSTOMER and i don't have option to get rid of those restrictions. Research effort is to find the solution for the given situation. Please take a look at the reworked post and things I have found so far.Rahman
@Dan-o Please take a look at reworked post - I think now it is not opinion-based (I am searching for embedded database that supports concurrent write access, not an opinion about which embedded database is better)Rahman
R
0

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.

Rahman answered 29/11, 2013 at 19:10 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.