1

Requirements:

  • tiny WinForms client app (C# 4.0, WinForms or WPF)
  • a few users working simultinausly
  • no database service at all - the whole engine as *.DLLs inside client apps
  • database available as shared folder on one computer
  • at least simple concurrrency checks
  • compatible with nHibernate or EntityFramework / NET 4.0
  • backup as simple as copying files from shared folder - assuming no running clients at the moment
  • no stored procedures/triggers required
  • data size - a few tables and a few thousands rows after 2 years

Nice to have:

  • user access rights
  • encrypted data

I'm trying to choose between:

  • MS Access
  • SqlLite
  • SqlServer Compact Edition.

Can you recommend which one should be the best for these requirements?

tomo
  • 1,942
  • 2
  • 29
  • 43

3 Answers3

2

SQLite can be a good option for this. It hasa very small footprint. But you can also look at MongoDB as well. I am however yet to see the support for Entity Framework et al.

Kangkan
  • 15,267
  • 10
  • 70
  • 113
  • I would prefer SqlLite but the businness requirements for using MS Access were stronger. – tomo Jan 23 '11 at 12:40
1

With all your limited criteria, limited rows within a few years, it appears to be what I would consider a "disposable" application. Whatever is quickest and easiest would probably be Access

DRapp
  • 47,638
  • 12
  • 72
  • 142
  • Also with access, moving data between applications is easy and there is a great deal of documentation. – Fionnuala Dec 31 '10 at 19:37
  • Jet/ACE (not Access) also has the advantage of being installed on ever Windows PC with Win2000 or higher, so there's no installation/configuration issue. – David-W-Fenton Jan 02 '11 at 21:06
  • 'disposable application' - yes, exactly it could be like this. – tomo Jan 23 '11 at 12:39
1

SQLite is a good alternative, but you should setup it correctly.

Have a look here:

How Scalable is SQLite?

Community
  • 1
  • 1
Christian
  • 1,872
  • 1
  • 14
  • 14