.NET

.NET

1.1.1 Sept 14, 2015


Couchbase Lite for iOS v1.1.1 is a hotfix release containing fixes for several issues, especially around stability for the Listener.

Bug fixes

  • #500 iOS can't handle concurrent pullers
  • #487 No valid leaving transitions are permitted from state 'Initial' for trigger 'StopGraceful'
  • #485 Managed heap corruption on Windows
  • #477 Replicate attachment with IChallengeResponseAuthenticator
  • #464 _local logic handler doesn't handle error responses correctly
  • #463 Manager allows identical replicators to run simultaneously
  • #462 Migrate to incremental JSON parsing
  • #457 Two LiveQueries over one view cause duplication of new rows
  • #455 Pull Replication with DocIds is returning all documents
  • #449 Replication Push is failing when attachments are involved
  • #447 Array order is ignored on QueryEnumerator and IDictionary
  • #442 Error on attachments with digest as MD5
  • #438 Replication.CompletedChangesCount is always 0
  • #435 System.UnauthorizedAccessException while sending a Get request on ip:port/db_name and some other Peer to Peer Sync Issues
  • #432 [Listener] Implement HTTP Basic authentication (Note: Digest auth will be held back until 1.2)
  • #431 [Listener] Internal server error when doing a GET with attachments
  • #418 Exception when calling GetDatabase()
  • #407 Retrieving attachment Stream fails on UnsavedRevision
  • #398 Setting FilterParams results in an unhanded exception
  • #384 PullReplication: new revision makes attachment disappear
  • #383 LiveQuery should re-run query from scratch after options are changed
  • #356 BulkDownloader HTTP request timeouts not properly handled

Known Issues

  • #504 Bonjour P2P services sometimes have trouble unregistering (especially on Linux / Android).
  • #486 Replication deadlocking on Linux
  • #481 [Unity Demo] _bulk_get deadlocks on Unity.iOS

Download

You can download this release from nuget.org:

System Requirements

Couchbase Lite for .NET 1.1.1 is compatible with the following .NET runtimes and operation systems:

.NET Runtime OS
Xamarin iOS, Android
Mono (.NET 3.5+) OS/X, Linux
Unity 4.6 (Pro) iOS, Android
Unity 4.6 (Free and Pro) Windows Desktop, OS X, Linux
Unity 5 Personal and Pro iOS, Android, Windows Desktop, OS/X, Linux
Microsoft .NET 3.5+ Windows Desktop

Support Statement

Version 1.0 was released in May, 2014. With this release of version 1.1, the support window for 1.0 expires in December 2015.

Release Release Date End of Life Date
1.0 October 2014 December 2015
1.1 June 2015

1.1.0 June 17, 2015


Couchbase Lite for .NET 1.1 packs in a number of significant enhancements, including:

  1. Self-hosted HTTP REST endpoint. The Couchbase Lite HttpListener now enables your apps to self host it's own REST API, providing a great way to serve data and files to HTTP clients and HTML/JavaScript apps, provide a mechanism for language interopability, simple filesharing, or even interprocess communication.
  2. Peer-to-peer sync! With the introduction of Couchbase Lite's self-hosting capability, we've enabled two or more apps using Couchbase Lite to replicate with each other--without any other network infrastructure. We've also included support for the most popular way of discovering peers: Bonjour/DNS-SD.
  3. Support for Unity3D! Now you can bring the best mobile database to your Unity3D games.
  4. Overhauled the internal storage code which now implements the single-writer/multiple-reader pattern in order to achieve better performance and stability.

Note:Couchbase Lite 1.1 has a new optimized database schema which is not backwards compatible with 1.0.4 and earlier release. Once automatically migrated to the Couchbase Lite 1.1.0 format, your application’s .cblite database files are no longer readable by earlier versions. This would only impact developers attempting to share a database among multiple apps running different versions of Couchbase Lite, or Couchbase Lite downgrade scenarios.

Features and Improvements

  • #425 Add NSFileProtection support for Xamarin.iOS
  • #409 Add migration support for iOS 1.1 SQLite db schema
  • #405 Add in replication optimization from iOS version
  • #392 Make Database.close() method public (API Change)
  • #387 Indexing scales poorly, due to suboptimal SQL DELETE query
  • #380 Add HttpListener implementation
  • #360 Support for Unity 3D
  • #348 Refactor StorageEngine to segregate reads and writes
  • #83 Add Router support

Bug fixes

  • #423 RemoteCheckpointDocID not using custom channel sets when computing checkpoint
  • #421 Pull sync not working after upgrade from 1.04 to 1.1-pre2 in C# service
  • #406 VS can not load sample
  • #397 Setting Pusher.DocIds does not filter which docs are actually pushed
  • #396 In Owin, getting "Unable to create a storage engine, fatal error" message
  • #388 Updating a document using Update() unexpectedly results in a conflict
  • #379 ToLiveQuery() doesn't preserve query's attributes
  • #372 NullReferenceException when trying to call SetCookie on a Replication object from a C# console application
  • #358 Changes performed offline don't sync when going online.
  • #335 Intermittent deadlock during perf test
  • #319 Not all new documents get queued for pushing to the server sometimes
  • #257 Database.RunInTransaction() saves data when the delegate returns false.
  • #196 Add no_attachments column support to Database.UpdateAttachments

Download

You can download this release from nuget.org:

System Requirements

Couchbase Lite for .NET 1.1 is compatible with the following .NET runtimes and operation systems:

.NET Runtime OS
Xamarin iOS, Android
Mono (.NET 3.5+) OS/X, Linux
Unity 4.6 (Pro) iOS, Android
Unity 4.6 (Free and Pro) Windows Desktop, OS X, Linux
Unity 5 Personal and Pro iOS, Android, Windows Desktop, OS/X, Linux
Microsoft .NET 3.5+ Windows Desktop

Support Statement

Version 1.0 was released in May, 2014. With this release of version 1.1, the support window for 1.0 expires in December 2015.

Release Release Date End of Life Date
1.0 October 2014 December 2015
1.1 June 2015

1.0.4, January 17, 2014


Some highlights from our latest quality release:

Fixes

  • Implements the Unified API for Xamarin.iOS.
  • Xamarin component now uses Nuget for managing dependencies.
  • Disables TLS fallback to SSL3 (POODLE)
  • Fixed BulkDownloader deadlock in a windows systems without Xamarin.
  • Unknown unhandled exception thrown during Update call to storage engine.
  • Fixed NRE in bulk downloader.
  • Slower than expected performance on Windows
  • Manager static ctor crashes on Azure
  • Update document without re-sending attachments
  • [Xamarin] Fixes list item entry problem in Android sample on Nexus 5/Lollipop.

1.0.0, October 9, 2014


This is our first official release for Couchbase Lite for .NET. An expansion of our existing product, the .NET development started as a joint project between Xamarin and Couchbase. With this initial release, we support Xamarin targets such as Xamarin.iOS, Xamarin.Android and Xamarin.Mac, as well as major platforms like Windows 8/8.1 and Windows 7. Coming soon will be Windows XP and Windows Phone support, and we are on the lookout for support for the upcoming Windows 10 release.

Highlighted fixes

  • _bulk_get returns NotFound error when replication URL ends with a forward slash
  • Uppercase Revision Ids are incompatible with CouchDB
  • Replicator.Authenticator should be public
  • AccessViolationException on Windows
  • SQLite error on "database disk image is malformed" after replacing database file
  • TraceEventCache undefined in Couchbase.Lite.0.9.5 for Android
  • Calling `Properties` on an unsaved document throws NRE

1.0.0-Beta 5, September 23, 2014


0.9.5 features major fixes and brings the product another step closer to 1.0.0. This also marks the first time we have made Couchbase Lite .NET available on NuGet.

Highlights

  • Client stops pulling changes, #272
  • ChangeTracker's Run thread can fail when trying to Dispose a non-completed task, #269
  • Localization quirk (i.e., building in ja-JP) makes NUnit fail to run tests, #268
  • Xamarin.Android sometimes crashes with "EntryPointNotFoundException: getifaddrs", #277
  • CouchDB sync issues, #274
  • Query.inclusiveEnd propagation across platforms, #276
  • SingleThreadTaskScheduler sometimes throws an NRE, #282
  • _bulk_get fails in release builds, #286

Known issues

  • Only targets Xamarin.iOS and Xamarin.Android.

1.0.0-Beta 4, September 3, 2014


Our first functional GA release candidate for .NET. Our next goals are smoothing out issues found in the RC, and also supporting more .NET targets.

Highlights

  • Full Replication API support and cross-platform parity.
  • Change Tracker has been fixed
  • Fixes to HTTPS support, bulk download, and network reachability support

Known issues

  • Only targets Xamarin.iOS and Xamarin.Android.

1.0.0-Beta 3, August 18, 2014


We continue to port more fixes, and add more parity to our .NET platform, steadying it toward 1.0.0.

Highlights

  • Continuing to add more feature parity, particularly around Replication. Addressed issues around authentication and Cloudant support.
  • Fixed: Out-of-memory error.
  • Fixed: Issue #249 Could not load SqlitePCL.raw

Known issues

  • Only targets Xamarin.iOS and Xamarin.Android.

1.0.0-Beta 2, July 08, 2014


In our second Beta release of C# support, we have included a couple of fixes from early feedback, strengthened our test suite coverage and set the groundwork for additional .NET platform support.

Highlights

  • Attachments now work.
  • Fixed: Crashes with "non-page-aligned, non-allocated pointer being freed" error.
  • Lays the groundwork for supporting additional .NET platforms.
  • Passes lots of additional tests.
  • General stability improvements.

Known issues

  • Authentication is not supported yet.
  • Only targets Xamarin.iOS and Xamarin.Android.

1.0.0-Beta 1, May 21, 2014


In our first Beta release of C# support, we have a majority of features ported over from our Java libraries, but still have a remaining amount of work and progress to make, specifically in Replication. We also still need to develop a working and distributable PCL for full .NET support, but in the meantime you can make use of the Xamarin binding for C# for iOS and Android.

Replication

  • Basic Authentication is not supported: Issue #10.
  • New Authenticator and AuthenticatorFactory are not implemented: Issue #33.
  • Cookie management is not supported: Issue #34.
  • HTTPS is not supported: Issue #9.

Portable Class Library Support

  • The library is currently not a .NET Framework Portable Class Library: Issue #5.