Live from Visual Studio Live!

Blog archive

.NET Devs Warming Up To MongoDB and Cassandra NoSQL Databases

There are scores of so-called NoSQL databases that allow organizations to create scalable ways of parsing and querying non-relational data. Two that are attracting a growing number of .NET developers are the open source MongoDB and Cassandra databases.

In back to back sessions Tuesday at the Visual Studio Live! conference in Chicago, Ted Neward, principal with Neward & Associates, outlined the nuances of both NoSQL databases. In each session, Neward expressed his disdain for the NoSQL nomenclature, which effectively stands for a database that is "not-SQL." By that measure, Neward said, "NoSQL also applies equally to cars, rainbows and unicorns. None of them are a SQL database either."

For that matter, Neward continued, the list of things that are not SQL databases include object databases, writing to a file, key value stores, hierarchical document databases, XML files and graph databases. "It's a horrible term to use collectively," he said. "They all are piles of data managed by a program."

The term, he argues, also gives the impression that the various non-SQL databases are similar, which often they're not. "It doesn't mean Mongo and Cassandra have much in relationship to one another other than the fact that they both store data," he said.

Neward's distaste for the term notwithstanding, MongoDB is regarded as one of the leading NoSQL databases. The term MongoDB is derived from the word humungous and reflects the database's ability to scale to handle very large datasets, typically documents. The only commercial supplier of MongoDB is 10Gen.

Many customers looking for a high performance documents database have recently gravitated to MongoDB because it is fast, schema-free, open-source and language independent. Written in C++, it runs on all operating systems including Unix, Linux and Windows.

Neward doesn't expect MongoDB or any other non-SQL database to replace traditional relational database management systems, notably Microsoft's SQL Server. "Let SQL Server store traditional data," he said. "When you want to store other binaries, store that into MongoDB."

In the following session Neward dove into Cassandra, which was originally developed by Facebook to power its inbox search capability. Neward said Cassandra provides a column-based structured key-value star store. However, the open source community implemented a layer that gives the database more of the look and feel of a relational database starting with Cassandra 1.0. CQL 3.0 has been available since Cassandra 1.1. "So you can argue in some respects that Cassandra isn't NoSQL but CQL for Cassandra Query Language, which has relational-like mechanisms under the underlying Cassandra system," he said. 

Cassandra is written in Java, meaning .NET developers who want to look at the source code will have to brush up on their Java skills, Neward said. "If you have no Java skills, if you know how to program in C#, and specifically if you know how to program in C# 1.0, you know how to read Java," he said. "As a matter of fact, Java is actually C# 0.3. There's a lot of things that the C# language has that the Java language does not."

The Cassandra database, Neward said, is designed for multi-node clusters. "Cassandra actually wants to run on multiple machines," he said. "It is possible to set up multiple Cassandra nodes on one developer box. It's tricky. You're going to have to get into some very subtle configuration in order to make it happen. You are going to have to dive into the configuration files that Cassandra uses."

Posted by Jeffrey Schwartz on 05/15/2013


comments powered by Disqus

Featured

  • Full Stack Hands-On Development with .NET

    In the fast-paced realm of modern software development, proficiency across a full stack of technologies is not just beneficial, it's essential. Microsoft has an entire stack of open source development components in its .NET platform (formerly known as .NET Core) that can be used to build an end-to-end set of applications.

  • .NET-Centric Uno Platform Debuts 'Single Project' for 9 Targets

    "We've reduced the complexity of project files and eliminated the need for explicit NuGet package references, separate project libraries, or 'shared' projects."

  • Creating Reactive Applications in .NET

    In modern applications, data is being retrieved in asynchronous, real-time streams, as traditional pull requests where the clients asks for data from the server are becoming a thing of the past.

  • AI for GitHub Collaboration? Maybe Not So Much

    No doubt GitHub Copilot has been a boon for developers, but AI might not be the best tool for collaboration, according to developers weighing in on a recent social media post from the GitHub team.

  • Visual Studio 2022 Getting VS Code 'Command Palette' Equivalent

    As any Visual Studio Code user knows, the editor's command palette is a powerful tool for getting things done quickly, without having to navigate through menus and dialogs. Now, we learn how an equivalent is coming for Microsoft's flagship Visual Studio IDE, invoked by the same familiar Ctrl+Shift+P keyboard shortcut.

Subscribe on YouTube