In my continuing series on NoSQL Databases I have been mainly describing some of the concepts behind NoSQL (and in particular Document) Databases. In this post I will start to dive into some code.
As mentioned earlier I will be using RavenDB as this is a .NET friendly database.
In this first example lets create a simple ASP.NET MVC 3 Application that uses RavenDB as its data source.
I will start with a simple “My Tasks” Application which I created by using the Internet Application template in ASP.NET MVC 3. Next I created a simple Task model class (Listing 1).
Listing 1: The Task class |
public class Task
{
public int TaskId { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public bool IsComplete { get; set; }
}
|
I then used the Scaffolding available in ASP.NET MVC 3 to create a TaskController (Figure 1), as well as the Entity Framework DataContext class and all the Razor Views necessary for CRUD operations.
Figure 1: Scaffold a new TaskController class
|
 |
And finally I created a SQL Server Compact Edition Database to store the data and a Tasks table with columns that matched the names and types of the Task class’s properties.
To prove that everything was wired up correctly I browsed to the application and added some data (Figure 2).
Figure 2: A List of Tasks
|
 |
But the goal of this application is to use RavenDB as the database, not to create an EF Code First/SQL CE application.
As I mentioned in the 3rd post in this series, RavenDB can be configured in three different ways. I am going to use the embedded mode. Luckily, RavenDB is available as a NuGet package. To add a NuGet package to a Visual Studio project we can right-click on the References folder (Figure 3).
Figure 3: Add a new Nuget package
|
 |
and select “Manage NuGet Packages”. In the Package Manager window enter Raven in the search box and install the RavenDB (Embedded) package (Figure 4).
Figure 4: Install RavenDB using NuGet
|
 |
The installation adds quite a few assemblies to the bin folder.
Next we need to configure Raven, so we will create a Folder in the App_Data folder call “Database” (Figure 5),
Figure 5: Create a new Database Folder for the RavenDB database
|
 |
and we will modify the connection string that RavenDB added to the web.config to point to the folder we just created.
Listing 2: Update connection string in web.config
|
<connectionStrings>
<add name="RavenDB " connectionString="DataDir = ~\App_Data\Database" />
</connectionStrings>
|
So now we are all set up ready to convert our application to use RavenDB, and in the next post I will show how to hook up the existing TaskController class, so we can store our tasks in an embedded RavenDB database instead of a SQL Compact database.
480d2575-e220-4579-a889-6ff1296e3dbc|0|.0