Olá, hoje vou falar um pouco sobre RavenDB.
O RavenDB é uma banco de dados que se encaixa na nova categoria chamada de NOSql(Not Only SQL), mas afinal o que esse banco faz. O RavenDB é um banco de dados orientado a documentos, o seu formato para salvar os dados é o JSon. Os dados pode estar aninhados como em um xml, como você pode ver neste exemplo:
Ele possui muitos recursos, e é extremamente fácil de colocar de se usar e efetuar consultas. Vamos começar pelo básico. Vamos usar ele na versão Embedded, ou seja, vamos usar ele junto com nossa aplicação e não como um serviço, ou hosted no IIS.
Você pode baixa-lo aqui: http://ravendb.net/ Após você descompacta e vai encontrar uma pasta Embedded, são essas dlls que você deve acrescentar ao seu projeto, e referenciar Raven.Client.Embedded, Raven.Client.Debug e Raven.Client.Lightweight.
O RavenDB trabalha com o conceito de DocumentStore, ou seja o local onde é salvo os seus dados, ou banco de dados. O proximo passo é criarmos uma DocumentStore, para isso utilizamos o seguinte código:
Dim documentStore As New Raven.Client.Embedded.EmbeddableDocumentStore() With {.DataDirectory = "E:\RavenDataBase"}
documentStore.Initialize()
Estamos instanciando um Embeddable Store, e passamos para ela o local para salvar os dados. Após tudo isso já estamos prontos para salvar nosso objetos no banco de dados.
Dim objeto As New Cliente()
objeto.Nome = TextBox1.Text
objeto.Codigo = 1
objeto.Email = "danimaribeiro@gmail.com"
objeto.Endereco = New Endereco()
objeto.Endereco.Bairro = "Bairro"
objeto.Endereco.Cidade = "Chapeco"
objeto.Endereco.Rua = "Condá"
Dim sessao = documentStore.OpenSession() 'Abrir sessao
sessao.Store(objeto) 'Salvar o cliente e o seu endereço, pois o RavenDB salva todos eles juntos.
sessao.SaveChanges() 'Salva modificacoes
sessao.Dispose()
documentStore.Dispose()
Simplesmente abrimos uma sessão, e mandamos o RavenDB salvar nosso objeto. Session.Store(). Como ele salva em formato de documento, o endereço que está sendo salvo faz parte do cliente, sendo salvo dentro dele em formato Json.
Por hoje é isso.