Using Couchbase Lite with .net framework 2.0

.net

#1

We’d like to make use of Couchbase Lite within a .NET framework 2.0 Visual Studio solution.

However when installing Couchbase Lite through NuGet it fails installing the SQLLitePCL.raw. 0.8.0 dependency.

Is this a known issue? If so, what is the way round this issue?

Regards
Peter


#2

Hello @PeterBridger,

I verified on my ends that SQLitePCL.raw Version 0.8.0 is running within my Xamarin project environment for .NET 4.5 which is the Mobile Profile without System.Configuration and its dependencies.
This is an known issue for .NET 2.0 and SQLitePCL.raw platform assemblies can be found here

Can see the listed platform supports for Couchbase Lite .NET also on Github .
What particular features in .NET 2.0 you need and maybe consider .NET 4.5?


#3

Our NuGet package only targets .NET 4.5, Xamarin.iOS, and Xamarin.Android. We also have a project for .NET 3.5, as well as Unity3D but those need to be manually built from source. We do not offer a version that targets .NET 2.0 and we make heavy use of LINQ which makes targeting .NET 2.0 difficult. What is keeping you from upgrading to .NET 3.5?


#4

Thanks for the responses @sweetiewill and @borrrden

We are intending to use Couchbase Lite as part of a Unity based application.

For our prototype we made use of the Unity plugin, however for the production version we want to use a layered architecture. With Unity purely based the UI layer, with Couchbase abstracted through a data access layer.

Even after some research I was unsure what framework of .NET Unity can safely target, whether it’s 2.0 or 3.5. I started with installing Couchbase Lite with .NET 2.0 as a safer starting point.


#5

Unity3D is capable of consuming .NET 3.5 plugins, however iOS needs special care to ensure that a fully ahead of time compiled version is generated. With IL2CPP, in theory that problem should be mitigated but there are a few other kinks in that as well (we are currently blocked on one). Mono is no longer an option in Unity since it is 32-bit only and iOS requires 64-bit to be offered in the Apple Store.


#6

I thought the IL2CPP blocker was unblocked?


#7

Not until that patch is released to us :wink:


#8

Picking up from @PeterBridger on this one (we’re on the same team / project).

I’m wondering what the best course is for this, we’re looking to abstract out Couchbase into a .NET 3.5 core which will manage the database interaction and more business logic. I’m wondering what the best route is when implementing Couchbase into this project, if we were to use the .NET 3.5 project then we won’t get the added bonus of the UnityMainThreadScheduler, should we be building with the Unity project instead of the normal .NET 3.5 project and then passing this through, or should we be using the .NET 3.5 project and then dealing with the threading issues sperately?

Which would be the best project to build into our core application logic?


#9

That’s entirely up to you and your engineering needs. Aside from that class and a couple others the libraries are identical.


#10

Okay, I wasn’t sure if there was something you’d recommend. Thanks for all your work on these issues so far @borrrden