7 dezembro, 2015 4 Comentários AUTOR: elemarjr CATEGORIAS: Sem categoria Tags:

Primeiros passos com RavenDB

Tempo de leitura: 1 minuto

Olá,

Com a aproximação do QCON SP e da participação confirmada do Ayende, resolvi aprender um pouco mais sobre RavenDB (principal produto do cara).

O que é o RavenDB?

Segundo o site oficial:

RavenDB is the premier NoSQL database for .NET. Opensource, speed-obsessed, and a Joy to use.

É um banco de dados de documentos, de esquema livre, feito em .NET, com ênfase em performance.

Arquitetura

Segundo o livro RavenDB High Performance, arquitetura do RavenDB Server está organizada da seguinte forma:

ravendb-arq

Temos a persistência acontecendo via ESENT (Extensible Storage Engine) e a busca sendo suportada por Lucene.net.

A persistência acontece primeiro e a indexação, depois, no Lucene. Um documento, uma vez persistido, fica disponível imediatamente via ID e eventualmente via busca.

Instalando e iniciando o servidor (standalone)

Para começar a brincar com RavenDB, precisamos obter o servidor. Em linha de comando, fazemos isso facilmente com nuget:

nuget.exe install RavenDB.Server

Se não estiver familiarizado com Nuget por linha de comando, consulte a referência.

Uma vez instalado o pacote, podemos iniciar o servidor através da execução do utilitário "ravendb.server.exe", localizado na subpasta tools.

O servidor RavenDB fica disponível, por default, na porta 8080 (uma subsequente será usada caso 8080 esteja sendo utilizada).

Uma vez iniciado o servidor, podemos acessar o "studio" para manipulação do servidor.

ravendb-studio

Obviamente, há opções mais avançadas de instalação para o servidor.

Desenvolvendo um cliente simples

Uma vez que o servidor tenha sido iniciado, podemos começar um cliente. Para isso, precisamos iniciar um projeto e adicionar o pacote RavenDB.Client.

Eis um exemplo muito simples baseado na documentação online:

using System;
using Raven.Client.Document;

namespace LearningRavenDB
{
    class Person
    {
        public string Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }
    class Program
    {
        private static void Main(string[] args)
        {
            using (var store = new DocumentStore
            {
                Url = "http://localhost:8080/",
                DefaultDatabase = "Sample"
            })
            {
                store.Initialize();

                using (var session = store.OpenSession())
                {
                    var p = new Person
                    {
                        FirstName = "Elemar",
                        LastName = "Jr"
                    };

                    session.Store(p);
                    var storedId = p.Id;
                    Console.WriteLine("Stored ID: {0}", p.Id);
                    session.SaveChanges();

                    var newp = session.Load<Person>(storedId);

                    Console.WriteLine("{0}, {1}", newp.FirstName, newp.LastName);
                }
            }
            Console.ReadLine();
        }
    }
}

Aqui, basicamente, gravamos e lemos um documento simples.

Pronto! Andamos os nossos primeiros passos. Em posts futuros, vamos ver, com mais detalhes, o que podemos fazer com RavenDB para nossas aplicações.

Era isso.

4 Comentários

  1. Diogo Santos Carvalho 12 meses ago says:

    Ótimo artigo. Estou estudando RavenDB e acompanhando seus posts a respeito dele, parabéns! Só uma observação Elemar, ao instalar o RavenDB, os utilitários criados na pasta tools ficaram como "Raven.qualquerCoisa" e não "ravenDb.qualquerCoisa" como está escrito no post. Não sei se foi alguma coisa que eu fiz diferente na instalação.
    Obrigado.
    []'s

    Responder

Trackbacks para este post

  1. RavenDB 101 – Parte 1 – Criando um banco de dados de exemplo e fazendo consultas HTTP | Elemar DEV
  2. RavenDB 101 – Parte 1 – Criando um banco de dados de exemplo e fazendo consultas HTTP | Elemar JR
  3. Asp.Core 1.0 – Criando app’s multitenancy (multi-inquilinos) – Parte 2 – StiBlog