On Feb 27, 2012, at 2:36 PM, mkamoski wrote:
> Would you recommend Android.Database.Sqlite or Mono.Data.Sqlite?

Mono.Data.Sqlite over Android.Database.Sqlite. However, we would suggest 
Sqlite-net, possibly in combination with csharp-sqlite. Sqlite-net is an ORM 
atop SQLite which works on MonoTouch, Mono for Android, and WP7 (when used with 
csharp-sqlite). Csharp-sqlite is a purely managed SQLite implementation which 
can run on WP7. Using Sqlite-net in combination with csharp-sqlite allows 
targeting iOS, Android, and WP7 devices:

        http://blog.xamarin.com/2012/02/24/mwc_2012/
        https://github.com/xamarin/mobile-samples/tree/master/MWC

This is a conjecture, but csharp-sqlite will probably also work on Android 
prior to v2.2. (I haven't tested this.)

> (1). What does "MFA" mean?

MFA and MfA are abbreviations for "Mono for Android".

> (2). Will all my apps built with MonoDroid automatically have access to 
> "Mono.Data.Sqlite"?

Only if you reference the assembly in your project.

> (3). Is either "Android.Database.Sqlite" or "Mono.Data.Sqlite" always 
> guaranteed to be on all Android 2.2 (and up) devices?

Android.Database.Sqlite exists in all API levels (it was added in API level 1). 
Mono.Data.Sqlite should work in all Android v2.2+ devices, though it is 
potentially not guaranteed: it's not part of the NDK, and thus needn't 
specifically be there, so it's plausible that some manufacturer could remove 
libsqlite.so. I haven't heard of any devices lacking libsqlite.so.

> (4). Does using ""Android.Database.Sqlite" increase/decrease/leave-unchanged 
> the footprint of an installed app?

Using Android.Data.Sqlite (over nothing) will increase the installed footprint 
as the linker will preserve all  types and methods that you use from from that 
namespace. I don't know how much this will increase your footprint (it may be 
negligible), it will just be larger than 0.

> (5). Does using "Mono.Data.Sqlite" increase/decrease/leave-unchanged the 
> footprint of an installed app?

Using Mono.Data.Sqlite (over nothing) will increase the installed footprint as 
the linker will preserve all types and methods that you use from that assembly. 
I don't know how much this will increase your footprint.

> (6). The code looks quite similar for each; so, what are the pros and cons 
> and limitations of each?

Mono.Data.Sqlite code will work on iOS, and Android.Database.Sqlite code will 
not.

Meanwhile, Android.Database.Sqlite will work on any Android version, while 
Mono.Data.Sqlite requires Android v2.2 or later.

> (7). Is one or the other deprecated, favored, likely-to-phase-out, etc?

Neither is deprecated, and I don't foresee us removing either, so it really 
comes down to portability (or lack thereof).

 - Jon

_______________________________________________
Monodroid mailing list
Monodroid@lists.ximian.com

UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid

Reply via email to