I've been back on Couchbase again, set up version 2.0 on my Ubuntu 12.04 LTS Linux box and tested that a .NET program running on a networked PC can store and get values. Also a PHP page running on the Linux box works fine as well. Then I tried a Mono C# program. It didn't work and the issue sees to be with the ICouchbasePerformanceMonitorFactory.
It fails on this line.
using (var cbx = new CouchbaseClient()) { ...
So Windows app connects correctly across the network but a Mono built app (using a special set of mono dlls) gives a stack trace exception (Factory must be Defined):
Enyim.Caching.Configuration.FactoryElement`1[[Couchbase.Configuration.ICouchbasePerformanceMonitorFactory, Couchbase, Version=1.2.0.0, Culture=neutral, PublicKeyToken=05e9c6b5a9ec94c2]].CreateInstance () in
Couchbase.Configuration.CouchbaseClientSection.Couchbase.Configuration.ICouchbaseClientConfiguration.CreatePerformanceMonitor ()
...
Couchbase uses memcached and the app.config can include some memcached configuration details. On Windows it doesn't need to but on Ubuntu it seems it does, but I'm unsure about the PerformanceFactory. Anyone? BTW I debugged this using MonoDevelop which is excellent and that's how I got the stack trace.
- Like C#- see C# Tutorials page


There’s a contributor to the SDK who has gotten it running on Mono recently and I believe we’re going to include the changes in the next update. I’ll see if I can get him to post the specifics here.
Since it is all Open Source (under an Apache 2.0 license), if you’re comfortable working with the source you can certainly try building the latest from github:
https://github.com/couchbase/couchbase-net-client
Thanks Matt. I’m doing some development on .NET so I can use that until the Mono patch is available.
David