Xamarin SQLite ve bir PCL kullanan Tasky adlı bir programın iyi bir örnek vardır destekleyebileceği özellikler. Birden çok platformda çalıştığı için SQLite-NET'te kullanılan [DllImport] işlevini kullanamaz. Bunun yerine, SQLite-NET soyut bir sınıf olarak uygulanır ve daha sonra paylaşılan kodun geri kalanıyla başvurulur. Anahtar API bir özü, aşağıda gösterilmiştir: ortak kod
public abstract class SQLiteConnection : IDisposable {
public string DatabasePath { get; private set; }
public bool TimeExecution { get; set; }
public bool Trace { get; set; }
public SQLiteConnection(string databasePath) {
DatabasePath = databasePath;
}
public abstract int CreateTable<T>();
public abstract SQLiteCommand CreateCommand(string cmdText, params object[] ps);
public abstract int Execute(string query, params object[] args);
public abstract List<T> Query<T>(string query, params object[] args) where T : new();
public abstract TableQuery<T> Table<T>() where T : new();
public abstract T Get<T>(object pk) where T : new();
public bool IsInTransaction { get; protected set; }
public abstract void BeginTransaction();
public abstract void Rollback();
public abstract void Commit();
public abstract void RunInTransaction(Action action);
public abstract int Insert(object obj);
public abstract int Update(object obj);
public abstract int Delete<T>(T obj);
public void Dispose()
{
Close();
}
public abstract void Close();
}
kalan soyut bir sınıf için “depo” ve veritabanı nesneleri “geri çağrılır” kullanır. Bu soyut sınıfı kullanan herhangi bir uygulamada, gerçek veritabanı işlevselliğini sağlayan eksiksiz bir uygulamada geçmeliyiz.