csharp: All content on NoSQL databases and projects about csharp, featuring the best daily NoSQL articles, news, and links on csharp

Beginners Guide to MongoDB and C# MVC 2.0

by Alex Popescu

Twitter Reddit

The “hello world” for web applications is a basic blog with posts and comments. This time using MongoDB and C# MVC 2.0:

First things first, call this a disclaimer if you like…. This blog is what I took from working with MongoDB and MVC C#. I have worked with C# .Net with web forms but never MVC or MongoDB. This is basically my experience setting up and creating an application to create a blog with posts and comments. I’ll start by giving a brief description, in layman’s terms, as to what MVC is all about.

Beginners Guide to MongoDB and C# MVC 2.0 originally posted on the NoSQL blog: myNoSQL


Using MongoDB for Caching .NET Web Pages

by Alex Popescu

Twitter Reddit
1 likes

Peter Bromberg shares a MongoDB-based cache utility for .NET System.Web.Caching.Cache and some performance numbers:

The advantages of using such a MongoDb - based Cache are several-fold:

  1. It can be accessed from any machine on a network
  2. The cost is reasonable (as in “Free Beer”!)
  3. The cache survives IIS AppPool recycles and even machine reboots.
  4. Since it is designed to be able to implement the base OutputCacheProvider class (by just adding the required override keywords), it can be easily made to be a complete replacement for System.Web.Caching.Cache as described in the second article linked above.
  5. MongoDB supports an automated sharding architecture, enabling horizontal scaling across multiple nodes. For applications that outgrow the resources of a single database server, MongoDB can convert to a sharded cluster, automatically managing failover and balancing of nodes, with few or no changes to the original application code.

Running MongoDB on ... Microsoft Azure

by Alex Popescu

Twitter Reddit

Very detailed explanation and code on setting up a Windows-based project using MongoDB and running it on Microsoft Azure Blob storage. I confess that Azure doesn’t really sound like the first pick one would make when using MongoDB, but that is exactly what made this article interesting!

I’ve been playing around with the whole CQRS[1] approach and think MongoDb works really well for the query side of things. I also figured it was time I tried Azure so I had a look round the web to see if there we’re instructions on how to run MongoDb on Microsoft’s Azure cloud[2].

References


Getting Started with MongoDB and C# NoRM

by Alex Popescu

Twitter Reddit
2 likes

The more I scan the NoSQL news around the internet, the more I hear about MongoDB in the Windows environment which seems to be catching up a lot lately (nb this seems somehow inline with MongoDB strategy of becoming the next gen MySQL).

Howard van Rooijen’s ☞ post and Fredrik Kalseth’s ☞ post are just two great resources on getting started with MongoDB and the C# NoRM library:

NORM - Making MongoDB mainstream for .NET developers

At this point I discovered a new attempt to create a C# Driver for MongoDB that would allow seamless POCO conversion and LINQ support. The project is called NoRM and it’s the best hope for making MongoDB mainstream for the .NET Community.


NoSQL Ecosystem News & Links 2010-03-23

by Alex Popescu

Twitter Reddit

  1. Fredrik Kalseth: ☞ NoSQL: Getting started with MongoDB and NoRM. It was only yesterday, when I told you there are good signs of increased activity in the MongoDB and C# world.
  2. Personal experience: getting CouchDB 0.11 installed on a MacOS with MacPorts seems to be “mission impossible”. With the help of #couchdb guys on IRC I finally got it working, but only after cleaning up (read removing) MacPorts


MongoDB and C#

by Alex Popescu

Twitter Reddit

Even if according to the ☞ 10gen survey the number of people using MongoDB from or on a Windows environment is pretty small, I continue to see some articles here and there, so I thought that the Windows MongoDB users will benefit from getting a chance to see what have been written so far.

To get you started, I would recommend MongoDB in the Windows Environment which will walk you through the installation phase and introduce a couple of MongoDB libraries. There is also the video embedded below from ☞ Mohammad Azam

The very next thing you’ll probably be interested into is the ☞ current state of MongoDB and C#. Just in case the existing libraries are not in the shape you’d like them to be, you might want to read about the ☞ details of building a MongoDB driver.

But if you are looking only for some nice to have features, you might find interesting the following articles on converting objects to and from MongoDB documents: ☞ 1 and ☞ 2.

As always, if you have some favorite articles, please do not hesitate to share them with the rest of the NoSQL community.


Get a Taste of Graph Databases: InfoGrid and Neo4j

by Alex Popescu

Twitter Reddit

As I said in MongoDB MapReduce tutorial, the best way to validate that you’ve got the basics right about a system is to use some basic code. And this is exactly the idea behind this post: to take a look at a very (very) basic tagging app in InfoGrid and Neo4j.

InfoGrid version

The code with more details can be found ☞ here.

Neo4j version

The Neo4j code was contributed by Mattias Persson from Neo Technology (thanks Mattias).

Note: I couldn’t figure out a way to make the code more readable that this. But you can hover over the code snippets and you’ll get the option to see the original source code.

Here are my notes about the two code snippets above:

  • everything in Neo4j must happen inside a transaction even if it’s a graph traversal operation (this gives a very strong Isolation level). The InfoGrid traversal code seem to happen outside the transaction, so it sounds like it supports a more relaxed isolation level (interesting question here is: if traversal would happen inside a transaction, would that isolate it from seeing possible external modifications?)
  • InfoGrid’s central element is MeshObject, while Neo4j has Node and Relationship. Generally speaking I have found the terminology in InfoGrid a bit more unusual (f.e. MeshObject, relateAndBless, etc.)
  • the Neo4j uses also the LuceneIndexService for indexing both the tag and web resources nodes, but that’s only becaus e the code there makes sure not to duplicate either tags or web resources (i.e. this functionality is not present in the InfoGrid code and I don’t know how that would look like)
  • in both cases a relationship gives you access at both its ends. While both InfoGrid and Neo4j documentation speak about bidirectional arcs

If someone would contribute the code for ☞ HyperGraphDB and/or ☞ VertexDB I think this post would get even more interesting!

Update: The guys from Sones picked up my challenge and they show up their C# implementation on this ☞ post. I have included below the code for reference

Sones version

Update: I’ve just got another submission from Filament. Code is included below and their original post is ☞ here

Filament version

InfiniteGraph version

Update: Thanks to ☞ Todd Stavish we now have a version of this sample code for InfiniteGraph


MongoDB in the Windows Environment

by Alex Popescu

Twitter Reddit

I’ve put together a couple of posts that are taking MongoDB for a ride on a Windows environment.

Firstly, you have to install MongoDB. You can use a MongoDB Windows installer ☞ or choose to run it in a virtual machine.

In case you decide to go the first route, you may find this post ☞ useful as it will walk you from getting MongoDB installed on your Windows machine, start using the MongoDB console and then using mongodb-csharp to connect to MongoDB from C#. In case you prefer to jump directly to coding, you should probably check Getting started with MongoDB and C#.

It is interesting to note that both articles are using the same C# library: mongodb-csharp, which recently has added a LINQ provider (via @alastairs).

This other post ☞ will show you how to get MongoDB running inside VirtualBox hosted on Windows machine with a Ubuntu 9.10 guest. Then you’ll be able to use Visual Studio and one of the many MongoDB C# libraries to connect to MongoDB.

If instead of C# you’d like to try out MongoDB from F# then you’ll probably like to check this article ☞, which covers some nice features of using the F# dynamic constructs.

Rubyist and Pythonistas have a lot more materials to play with and here are just a few examples:

Last, but not least, I couldn’t find anything about Visual Basic and MongoDB :-)!


Getting Started with MongoDB and C#

by Alex Popescu

Twitter Reddit

Pretty basic intro to using MongoDB from C#:

Of all the various options out there, MongoDB has been getting a lot of press lately. MongoDB is hailed as one of the top NoSql options out there for being ultra-scalable, and highly performant.

The article is briefly taking the reader from installing MongoDB to connecting and using collections, but also spends some time on defining “documents”, the central piece of document stores, in the section “Introducing the Document: end all, be all”. That reminded me of a nice trick we shared in our daily NoSQL ecosystem news: making your MongoDB C# code more readable with dynamics (instead of dictionaries)

As a final note, it’s good to hear that it is not only me thinking that MongoDB is getting a lot of coverage these days.

@jasona