> The thing that bothered me when told about it was the single file part.
> Isn't that more susceptible to corruption than the traditional multi-
> file approach?
> 
> Tom

Methinks you're letting MS Access color your assumptions about the realm of
the possible. ;)        

Don't forget this bullet point:

* Transactions are atomic, consistent, isolated, and durable (ACID) even
after system crashes and power failures.

SQLite is very well engineered. Also, you can attach to more than one
database at a time in a single connection, so if you feel better
partitioning your data in separate files, you can do that too. For instance,
I have a config database, a common database (for data I want to control and
make uniform across all instances), and 1..N "instance" databases in my
application. I use the config database for user preferences and I can make
that work however I want, not just the way MS thinks I should be able to
configure a .NET app using app.config/machine.config schemes.

I have yet to encounter any major corruption of a SQLite database. As a
programmer you're responsible for more admin-like functions, like
backup/restore and if you need it replication. But to me that's a plus, not
a minus. I like the control and it makes the database work the way I want,
without any bells and whistles I don't need.

Again, my primary use of the tool is for .NET apps. But technologies like
Adobe AIR support SQLite out-of-the-box, so the same use of it that I make
for .NET apps -- local/disconnected databases -- works equally well with AIR
applications.

The model for most apps I write at the moment include a highly scalable
RESTful web data service built top Erlang and its Mnesia DBMS on the back
end, with SQLite providing the client-side caching/disconnected capability.
If I ever do want to "go cross platform" with my .NET client, I can switch
to AIR at some point, and everything else can stay the same about my
architecture. The reason I stick with it for now is that a major piece of
the app I'm building leverages integration with Lexis-Nexus HotDocs for
document assembly and the only way to integrate with it is through its COM
interface, which is an order of magnitude easier to do in .NET. HotDocs is
strictly windows so until I have a cross platform alternative to HotDocs,
I'll stick with the .NET front end. It's not like Windows isn't the
operating system of 99% of all my target market's computers anyway.

I have a separate project that doesn't need Windows COM integration with
anything and I've been building that in Adobe AIR, and it's a private-use
app that runs on Mac but could easily run on Windows or Linux too. Aside
from the usual learning curve of any new framework, AIR's quite fun to work
with as well. Though I must confess I really like .NET's new LINQ
capability. I've written my own LINQ provider that's smart enough to get my
data in connected vs. disconnected mode such that it's transparent to my
application. That's killer. I can write a similar abstraction library in
ActionScript I suppose but it's not as sexy or seamless.

Bottom line: SQLite hasn't let me down in either project yet, despite their
radically different end-user requirements. 

- Bob



_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/profox
OT-free version of this list: http://leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message: http://leafe.com/archives/byMID/profox/[EMAIL PROTECTED]
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to