A powerful NoSQL document data storage system for the .NET / Windows platform, created for environments with high traffic loads. RavenDB implements basic NoSQL data storage principles, allowing developers to easily and quickly store and retrieve information from documents saved on disk. Using classical key-value pair storage patterns, easy manageable collections, and a friendly HTTP API, data stored inside the database is both well-organized and easy accessible at the same time.
This makes RavenDB ideal for storing complex structures inside a database document, while the optimizations for the .NET environment give it an extra boost in speed and performance.
For starters, you need to have a RavenDB server running. There are couple of ways you can acquire it:
distribution package or installer can be downloaded from ravendb.net,
Now, we will focus on the distribution package (if you want to read about the installer go here). The package contains the following directories:
Backup - contains Raven.Backup utility for doing backups,
Bundles - contains all non built-in plugins e.g. Authorization or Encryption,
Client - contains all .NET client libraries needed for development,
Server - contains all server files (including configuration files such as Raven.Server.exe.config)
Smuggler - contains utility for importing and exporting data between servers,
Web - contains all files needed for IIS deployment
In the package there is a file Start.cmd which will start a server as a console application (aka debug mode), which is great for development purposes or simply to try out various functionalities, but not for production release. When server has started, the Studio will be available at http://localhost:/. RavenDB is configured by default to use port 8080, or the next available, if this is one is occupied.
In the Client directory (in the distribution package), all .NET client libraries can be found. After referencing them in your project, all classes are found under the Raven.* namespace, with the DocumentStore as the most interesting one. This is the main entry point for your application, which will establish and manage connection channel between your application and a server. We recommend reading the following articles:
What is a document store?
Creating a document store
Setting up a default database