Originally written by Jeff Morris
Introducing Couchbase .NET SDK 2.0 Beta!
Some call it “bayduh,” others like my colleague Don Pinto here at Couchbase call it “bee-tah”; but whatever you call it, we're shipping it! After many months of development and three developer previews, we proudly present the Couchbase .NET SDK 2.0! This is an entire rewrite of the SDK and one in which we feel will make it easier to write highly scalable Internet applications with Couchbase server using any .NET Framework language.
What’s in the Beta?
Despite our best efforts, not every feature planned made its way into the Beta, however we did get what we feel are the features deliver the most value and or we felt should be placed in our developers hands as earliest as possible. Here is a list of what made it in:
- The new Document API for performing CRUD operations on JSON documents
- Secure Socket Layer (SSL) support for encryption of data between the client application server and the cluster
- Ad-hoc query support for N1QL Queries. What is N1QL you might ask? It’s the all new language for querying JSON documents in Couchbase!
- Compliance with SDK 2.0 Specification – ensuring a consistent programming interface and experience across all of the SDKs
- A new minimal TCP connection IO layer - uses around a tenth of TCP sockets that our previous client used
- A new “fast bootstrapping over Memcached” API called CCCP (Cluster Configuration Carrier Publication for those who care) for ensuring the clients have the most update cluster configurations possible
- A common, pluggable logging scheme
- CRAM-MD5 Hashing for credentials sent between clients and the Couchbase Cluster
- All new Documentation and API Reference
Wow, that seems like an awful lot and I am sure I am missing more than one thing here!
What’s not in Beta?
So with all of that, what didn’t make its way into the Beta? With all projects at some point you have to prioritize and defer some features to a future release and the following list includes those features that will be released in the GA or in a subsequent release:
- Replica Reads - performing reads from one or more replicas
- Common flags - consistent data types between all APIs
- Bulk operations - MultiGet and MultiSet, et al
- Task Asynchronous Pattern operations- support for async and await keywords
- Management API - the API for managing Buckets outside of the Couchbase Management Console
With any pre-release software there is a certain amount of issues that are known (or worse unknown) to potentially cause problems. Here is a partial list of issues known or things to watch out for at the time of writing:
- While the SDK has gone through rigorous situational and feature testing, it hasn't yet achieved a passing score for all tests. There are a couple of outstanding issues that have yet to be addressed, specifically NCBC-551 and NCBC-561. These issues and the passing of the complete suite of situational and feature tests will be completed prior to GA.
- Being pre-release, there is a strong probability that public interfaces of some of the API's may change significantly before GA.
- A list of all open issues can be found in Jira.
How do I get it?
One thing we can’t get enough of is feedback: good, bad or indifferent! Please try out the new SDK, and let us know how it went. If you find a bug, report it in Jira or better yet, send a pull request! Missing feature? Let us know!