26

So, there are

  • mongodb-csharp
  • simple-mongodb
  • NoRM

as C# drivers for MongoDB available.

Which one of them is the most mature and stable one? Why would you choose one over the other two?

Are they production ready?

Kevin Pullin
  • 13,122
  • 3
  • 24
  • 33
Markus Dulghier
  • 1,580
  • 1
  • 17
  • 20

7 Answers7

21

Since this question was answered 10gen have released an official MongoDB C# driver, and although it isn't the most mature C# driver in terms of age, with 10gen behind it it may end up as the most up to date.

It is more low level than the mongodb-csharp driver (no Linq support at the moment) but we haven't found that to be a problem. We moved to the official driver from mongodb-csharp recently on a project (that isn't in production yet) for the following reasons:

  • Replica Set support in an official release
  • SafeMode allows you to specify how many servers a write must be replicated to
  • The driver handles connecting/disconnecting to the database
  • We're hoping that as an official driver, it will have more developer support
Martin Owen
  • 5,221
  • 3
  • 35
  • 31
20

The mongodb-csharp driver is about to make a huge push regarding support for typedcollections which will include full Linq support. I think you'll find that it is easy to work.

The other 2 projects are also steaming ahead. If you want .NET 4.0 support, simple-mongodb would be your best bet.

NoRM has a whole bunch of committers who are all great coders, so no problem with it except it doesn't have an official release.

Craig Wilson
  • 12,174
  • 3
  • 41
  • 45
  • 5
    I would also mention that although we haven't "officially" released, we are very API stable, and I feel the driver is production quality. – Andrew Theken May 26 '10 at 14:54
  • Just to let everyone know. I talked to the developers of mongodb-csharp and there in maintenance mode right now. They recommend for any new projects to use the official MongoDB C# driver. MongoDB has really made a lot of progress on the driver and is a couple weeks a way from production 1.0 release. – Donny V. Mar 04 '11 at 19:47
  • Yes, it was made about 4 years ago. – Craig Wilson May 21 '15 at 17:06
8

I'd go with Sam Corder’s mongodb-csharp. Also checkout this article.

KMån
  • 9,896
  • 2
  • 31
  • 41
  • We have really huge problems in Sam Corder driver in high traffic projects. never use Samus in big projects. –  Jun 10 '13 at 19:28
6

For all curious out there. The best combination at this point seems to be official 10gen C# driver combined with fluent-mongo for Linq support:

https://github.com/mongodb/mongo-csharp-driver

https://github.com/craiggwilson/fluent-mongo

Update: with release 1.4 of official C# driver, there'll be no need in fluent-mongo anymore.

Kostassoid
  • 1,870
  • 2
  • 20
  • 29
1

You should use MongoDB.Driver from this nuget package.

You can view the full tutorials for the MongoC# example looking at this video https://www.youtube.com/watch?v=6x0-vHHHpv8

David L
  • 32,885
  • 8
  • 62
  • 93
0

There is a performance issue in typed builders (Update<>, Query<>) of official 10gen C# driver. See How to speed up typed builders in 10gen official MongoDB C# driver?

Community
  • 1
  • 1
Anton Krupnov
  • 51
  • 2
  • 5
0

A couple reasons to avoid the mongodb-csharp driver:

  1. It doesn't support "or" logic.
  2. It doesn't seem to support geospatial queries, at least we were not able to get it working.
Justin
  • 17,670
  • 38
  • 132
  • 201