I've used SQLite before as a datastore for a C# winforms application, and it was great, however, it does possess many shortcomings.
I'm aware Microsoft have a product called SQL Server Compact Edition - does this work in the same way SQLite does, and if so, is it any good?
Are there any other alternatives?
Update
By alternatives I mean in-process data storage libraries which do not require any separate install packages or standalone executables
Update 2
Many people have been asking about the perceived shortcomings of SQLite.
I'd like to repeat that on the whole I had a great experience with it, and would strongly recommend it, but a couple of things bugged me
- Complete lack of type safety.
- You need to explicitly batch multiple sql statements into transactions or the performance is abysmal.
- I can't remember exactly, but from memory some particular kinds of joins and subselects just fail
- No support for ALTER TABLE. Ouch