.NET

.NET

1.2.1 Thursday, April 21, 2016


Couchbase Lite for .NET 1.2.1 is a maintenance release.

Enhancements

  • #433 Enable SSL support in Listener
  • #581 External property on database change event

Bugs

  • #589 DocumentChange.IsConflict is always false for pulled revisions
  • #593 _replicate endpoint hangs
  • #601 Incorrect _local 404 detection in P2P scenario
  • #602 Pusher does not reset to 0 when its sequence does not agree with remote checkpoint
  • #607 IOException when upgrading from 1.1.2 -> 1.2.0.3
  • #618 TestJSViews fails with the CBForest per thread connection model
  • #619 Race condition exists between LiveQuery and View
  • #620 MultiStreamWriter AllOutput causes timeout on Android
  • #622 Uncaught exception in Manager.OpenDatabase causes crash

Download

You can download this release from nuget.org:

System Requirements

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

.NET Runtime OS
Xamarin iOS, Android
Mono (.NET 3.5+) OS/X, Linux
Microsoft .NET 3.5+ Windows Desktop

Support Statement

Version 1.1 was released in June, 2015. With this release of version 1.2.1, the support window for 1.1 expires in August 2016.

Release Release Date End of Life Date
1.0 October 2014 December 2015
1.1 June 2015 August 2016
1.2 February 2016

1.2.0 February 3, 2016


As part of this release we had 323 commits which resulted in 47 issues being closed.

This release features a number of performance improvements, enhancements, and bug fixes, including:

  • Encryption Support - Databases may now be encrypted. The encryption process uses industry standard protocols (PBKDF2 for key generation and 256-bit AES for encrypting).

  • ForestDB Storage Engine (Developer Preview) - You may now take advantage of the performance increases of Couchbase's new ForestDB storage library. It was designed from the ground up to be a key-value storage engine and lends itself perfectly to our JSON model.

  • Improved Performance - Sync protocol enhancements, compression support, and lower memory usage are just a few of the many performance improvements we've included.

Starting with this release the nuget package has been modularized. Making use of these two new features requires installing additional packages from nuget. By default, Couchbase.Lite will use Couchbase.Lite.Storage.SystemSQLite which makes use of the system-installed SQLite library (or a provided one for Windows). To use encryption with SQLite, you must install the Couchbase.Lite.Storage.SQLCipher package. To use ForestDB (with or without encryption) you must install the Couchbase.Lite.Storage.ForestDB package.

Enhancements

  • #378 Refactor to pluggable storage engine
  • #391 ForestDB Storage Engine
  • #400 Support HTTP request / response compression
  • #408 Implement PCLSqlite SQLCipher Support
  • #410 Add GZip support for attachment compression
  • #430 Handle UpdateIndex() in an efficient thread-safe manner
  • #458 Add "_conflicts" property to doc in map function when doc is in conflict
  • #465 Expose CBLView.totalRows to public
  • #466 Add BySequence to AllDocsOptions
  • #473 Support for CBLReplication.pendingDocumentIds
  • #479 Database not getting attachments from ancestry when processing attachments
  • #484 Add support for SQLCipher
  • #493 Attachment blob file name is not uppercase
  • #497 Encrypt file attachments
  • #516 ForestDB encryption support
  • #522 Implement JS filter compiler
  • #524 Add official openDatabase API for encryption/storage options
  • #525 Confirm include_doc_seq usage
  • #538 Replicator shouldn't fetch remote checkpoint if no local checkpoint
  • #541 Implement view grouping
  • #544 Set custom user agent on HTTP requests
  • #546 Don't process 'removed' changes feed entries
  • #552 Optimize first-time sync

Bug fixes

  • #426 POST: db/_revs_diff returns 417 instead of 100
  • #469 Replicators should have independent cookie storage
  • #470 Add replicator support for remote dbs with varying URLs
  • #478 Issue in accessing docs in Parallel for each loop
  • #486 Replication deadlocking on Linux
  • #489 Unable to replicate using Facebook authenticator
  • #490 Views lost after complete recreation of database
  • #496 Dates should stringify with 8601 format
  • #505 [Unity] createAllDocumentsQuery().toLiveQuery() Throws Exception
  • #517 Error when non-contineous sync ends.
  • #527 Filter out _removed revision from push replication
  • #531 Replication freeze when _change feed contains a doc which is no longer in _all_docs feed. "Tag: Replication Message: Got error NotFound"
  • #537 When replace database, last seq for replication should be imported
  • #542 Replicators cannot be restarted
  • #545 Escape view names in ForestDB view store
  • #547 TypeInitializationException during CouchbaseSample.iOS launch
  • #550 LiveQuery notification throttling too aggressive by default
  • #553 SimpleAndroidSync crashes when "Cleaning" entries from iOS
  • #554 Ensure that the database upgrade preserves local documents
  • #565 IOS sample app doesn't show any results with ForestDB
  • #566 TestRemoteConflictResolution failing
  • #569 SetValidation causes always failing revisions when set to null (i.e. "removing")

Known Issues

  • #433 Enable SSL support in Listener
  • #571 Can't switch between SQLite and SQLCipher on Android

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.1 was released in June, 2015. With this release of version 1.2, the support window for 1.1 expires in August 2016.

Release Release Date End of Life Date
1.0 October 2014 December 2015
1.1 June 2015 August 2016
1.2 February 2016

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.