2

after much searching I am going to pose my question here. If there is a duplicate and my search-foo abilities failed me I will gladly defer to it. On to the question.

I have a heavy background in service and web applications, with centralized database servers in an 'always on' way. However, a friend of mine is in need of a simple CRUD application (probably C# due to my limited experience with other GUI libraries/APIs) to replace a costly solution he currently has.

The application itself is very simple and I have planned to use Dropbox as a network layer to keep it even simpler. The issue I'm having trouble solving is that I need a good way to handle a portable database for authentication/authorization. I was considering SQL Lite stored in a read only folder within Dropbox so that it stays current while connected to the internet but doesn't require a network connection to function (They will not always have internet when using the program).

I am looking for suggestions, reading material, or experience with a similar design as a starting place.

Thanks for taking the time to help.

thismat
  • 2,096
  • 17
  • 24
  • I would be searching online for "embedded database". For what it's worth when doing some integration testing I preferred h2 over SQL Lite. http://www.h2database.com/html/main.html. But I think you're on the right track with SQL Lite. – ryan1234 Jan 18 '13 at 00:28
  • One thing: are you intending for the dropbox synced db to be a concurrently updated by multiple users? – pixelbadger Jan 18 '13 at 00:44
  • @magos, no I am not. It's going to strictly be for users access and permission checking. Any updates will be done by a single administrator or manually. – thismat Jan 18 '13 at 00:52
  • Okay, you're sound. Having recently dealt with 6 months of fallout from a multiuser SQLite config, I feel it's my life's mission to stop others from the pain – pixelbadger Jan 19 '13 at 02:16
  • That sounds like a nightmare. I appreciate you looking out for me :) – thismat Jan 25 '13 at 14:42

2 Answers2

2

I recommend Sqlite. Works on almost all platforms and pretty easy to use. With .NET I use a micro ORM with it like Dapper.

Here is an example: http://blog.maskalik.com/asp-net/sqlite-simple-database-with-dapper

lahsrah
  • 9,013
  • 5
  • 37
  • 67
  • Thanks, I love the blog post and I think this solution is spot on the direction I want to go. I considered SQLCE but I've always been a fan of SQLite and I've used it before so it's less of an entry point. – thismat Jan 18 '13 at 19:33
1

You can also use SQL Server Compact Edition (SQLCE) to achieve this very quickly. VS provides designers for making SQLCE database files, and ADO.NET plays nicely with it as well. It also supports simple replication as well.

ajawad987
  • 4,439
  • 2
  • 28
  • 45