<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>fboiton&#039;s blog &#187; ravendb</title>
	<atom:link href="http://www.fboiton.com/tag/ravendb/feed" rel="self" type="application/rss+xml" />
	<link>http://www.fboiton.com</link>
	<description>Blog Técnico y personal: Ideas, Guias, Tutoriales, Comentarios, Pensamientos, Entre otros.</description>
	<lastBuildDate>Sun, 05 Feb 2012 22:01:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Incursionando con RavenDB: Crear un Indice y Realizar una Consulta</title>
		<link>http://www.fboiton.com/incursionando-con-ravendb-crear-un-indice-y-realizar-una-consulta</link>
		<comments>http://www.fboiton.com/incursionando-con-ravendb-crear-un-indice-y-realizar-una-consulta#comments</comments>
		<pubDate>Thu, 08 Jul 2010 17:53:45 +0000</pubDate>
		<dc:creator>fboiton</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[ravendb]]></category>

		<guid isPermaLink="false">http://www.fboiton.com/incursionando-con-ravendb-crear-un-indice-y-realizar-una-consulta</guid>
		<description><![CDATA[Luego de instalar y agregar documentos en nuestro RavenDB, continuamos con la interacción llegando ahora a la búsqueda de documentos. Tomando como base el mismo proyecto ejemplo del post Incursionando con RavenDB: Características, instalación y nuestro primer documento… nos vamos &#8230; <a href="http://www.fboiton.com/incursionando-con-ravendb-crear-un-indice-y-realizar-una-consulta">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Luego de instalar y agregar documentos en nuestro RavenDB, continuamos con la interacción llegando ahora a la búsqueda de documentos. Tomando como base el mismo proyecto ejemplo del post <a href="http://www.fboiton.com/ravendb-caracteristicas-instalacion-y-nuestro-primer-documento" target="_blank">Incursionando con RavenDB: Características, instalación y nuestro primer documento…</a> nos vamos a nuestra interfaz web del servidor RavenDB. Anticipadamente agregué algunos documentos extras</p>
<p><a href="http://www.fboiton.com/images/IncursionandoconRavenDBCrearunIndiceyRea_8FA2/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/IncursionandoconRavenDBCrearunIndiceyRea_8FA2/image_thumb.png" width="640" height="118"/></a> </p>
<p>Antes de Realizar una Consulta vamos a crear un Indice, para ello utilizamos la intefaz web en la opción “indexes”</p>
<p><a href="http://www.fboiton.com/images/IncursionandoconRavenDBCrearunIndiceyRea_8FA2/image_3.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/IncursionandoconRavenDBCrearunIndiceyRea_8FA2/image_thumb_3.png" width="244" height="38"/></a> </p>
<p>Luego utilizamos la opción “Create New Index”</p>
<p><a href="http://www.fboiton.com/images/IncursionandoconRavenDBCrearunIndiceyRea_8FA2/image_4.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/IncursionandoconRavenDBCrearunIndiceyRea_8FA2/image_thumb_4.png" width="244" height="107"/></a> </p>
<p>al ver el formulario de creación</p>
<p><a href="http://www.fboiton.com/images/IncursionandoconRavenDBCrearunIndiceyRea_8FA2/image_5.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/IncursionandoconRavenDBCrearunIndiceyRea_8FA2/image_thumb_5.png" width="446" height="373"/></a> </p>
<p>llenamos estos campos :</p>
<p><a href="http://www.fboiton.com/images/IncursionandoconRavenDBCrearunIndiceyRea_8FA2/image_6.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/IncursionandoconRavenDBCrearunIndiceyRea_8FA2/image_thumb_6.png" width="526" height="176"/></a> </p>
<p>Por el momento las opciones de “Reduce” y personalización del índice no las utilizaremos.</p>
</p>
</p>
<p>Una vez creado el índice nos vamos a nuestro proyecto (el mismo del post anterior) y vamos a crear el método de búsqueda</p>
<p><a href="http://www.fboiton.com/images/IncursionandoconRavenDBCrearunIndiceyRea_8FA2/image_7.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/IncursionandoconRavenDBCrearunIndiceyRea_8FA2/image_thumb_7.png" width="461" height="153"/></a> </p>
<p>Nos concentramos en la sentencia donde le decimos a la sesión que haremos una consulta de clientes sobre el índice “ClientsByName” que creamos previamente en nuestra RavenDB</p>
<p><a href="http://www.fboiton.com/images/IncursionandoconRavenDBCrearunIndiceyRea_8FA2/image_8.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/IncursionandoconRavenDBCrearunIndiceyRea_8FA2/image_thumb_8.png" width="593" height="68"/></a> </p>
<p>Podemos darnos cuenta que “Query&lt;Client&gt;(string indexName)” es un “IRavenQueryable&lt;Client&gt;” con lo que podemos armar una expresión Linq, por lo que para efectos de prueba tenemos un “FirstOrDefault” </p>
<p>Una vez listo nuestro método lo utilizamos desde nuestra console application:</p>
<p><a href="http://www.fboiton.com/images/IncursionandoconRavenDBCrearunIndiceyRea_8FA2/image_9.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/IncursionandoconRavenDBCrearunIndiceyRea_8FA2/image_thumb_9.png" width="459" height="78"/></a> </p>
<p>y al ejecutarla tenemos la salida:</p>
<p><a href="http://www.fboiton.com/images/IncursionandoconRavenDBCrearunIndiceyRea_8FA2/image_10.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/IncursionandoconRavenDBCrearunIndiceyRea_8FA2/image_thumb_10.png" width="509" height="57"/></a> </p>
<p>Y para que puedan probarlo, aca esta el <a href="http://www.fboiton.com/ClientsDirectory_v2.rar" target="_blank">codigo fuente</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fboiton.com/incursionando-con-ravendb-crear-un-indice-y-realizar-una-consulta/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Incursionando con RavenDB: Caracteristicas, instalación y nuestro primer documento</title>
		<link>http://www.fboiton.com/ravendb-caracteristicas-instalacion-y-nuestro-primer-documento</link>
		<comments>http://www.fboiton.com/ravendb-caracteristicas-instalacion-y-nuestro-primer-documento#comments</comments>
		<pubDate>Wed, 07 Jul 2010 23:31:15 +0000</pubDate>
		<dc:creator>fboiton</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[document database]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[ravendb]]></category>

		<guid isPermaLink="false">http://www.fboiton.com/?p=38</guid>
		<description><![CDATA[Según lo indica el sitio web de RavenDB es una document database Open Source para la plataforma .Net/Windows. Es una opción almacenamiento de datos&#160; no relacionados dentro del movimiento NoSQL. Entre sus características tenemos Infraestructura Escalable Configuración en Windows Simple &#8230; <a href="http://www.fboiton.com/ravendb-caracteristicas-instalacion-y-nuestro-primer-documento">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Según lo indica el sitio web de <a href="http://ravendb.net" target="_blank">RavenDB</a> es una document database Open Source para la plataforma .Net/Windows. Es una opción almacenamiento de datos&#160; no relacionados dentro del movimiento <a href="http://en.wikipedia.org/wiki/NoSQL" target="_blank">NoSQL</a>.</p>
<p>Entre sus características tenemos</p>
<ul>
<li>Infraestructura Escalable</li>
<li>Configuración en Windows Simple</li>
<li>Transaccional</li>
<li>Map/Reduce</li>
<li>.Net Client API</li>
<li>RESTful API</li>
<li>Sharding</li>
<li>Indexamiento (<a href="http://lucene.apache.org/java/2_4_0/queryparsersyntax.html" target="_blank">Lucene syntax</a>)</li>
</ul>
<p>En cuanto a documentacion parece estar bastante completa (en inglés), podemos consultar:</p>
<ul>
<li><a href="http://ravendb.net/documentation" target="_blank">Documentación de RavenDB en el sitio oficial</a></li>
<li><a href="http://www.codeproject.com/KB/cs/RavenDBIntro.aspx" target="_blank">Introducción a RavenDB en codeproject.com</a>&#160;</li>
</ul>
<p>Antes de comenzar directamente con RavenDB si aún no tenemos en mente lo que una document database es podemos consultar la <a href="http://en.wikipedia.org/wiki/Document-oriented_database" target="_blank">Wikipedia: Document-oriented database</a> o también ver el video de la <a href="http://altnet-hispano.pbworks.com/van-2010-05-08-nosql" target="_blank">VAN de Alt.Net Hispano sobre NoSQL</a></p>
<p>Cabe mencionar que aún no puede correr en Mono y que los modos Servidor y Embedded corren bajo la framework .NET 4.0. El Cliente si corre (con algunas condiciones) en la framework .NET 3.5 y si puede correr en Mono.</p>
<p>Y para comenzar podemos ir directamente al clásico <a href="http://ravendb.net/tutorials/hello-world" target="_blank">RavenDB HelloWorld! Tutorial</a></p>
<p>Según indica el tutorial, luego de descargar el build que decidamos, nos vamos al folder “server” y lo ejecutamos</p>
<p><a href="http://www.fboiton.com/images/IncursionandoconRavenDB_E7D9/image.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/IncursionandoconRavenDB_E7D9/image_thumb.png" width="232" height="150" /></a> </p>
<p>Nota: Para este ejemplo modifiqué la configuración para que corriera en el puerto 8088, por default va a correr en el 8080.</p>
<p>Ahora que ya tenemos el servidor corriendo</p>
<p><a href="http://www.fboiton.com/images/IncursionandoconRavenDB_E7D9/image_3.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/IncursionandoconRavenDB_E7D9/image_thumb_3.png" width="583" height="108" /></a> </p>
<p>procedemos a trabajar en una pequeña implementación utilizando el cliente de RavenDB, no olvidemos referenciar el cliente de Raven DB en nuestro proyecto.</p>
<p>Para esta prueba crearé una console application donde tendremos un par de clases que será la definición de nuestro documento:</p>
<p><a href="http://www.fboiton.com/images/IncursionandoconRavenDB_E7D9/image_4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/IncursionandoconRavenDB_E7D9/image_thumb_4.png" width="395" height="164" /></a> </p>
<p>Una vez teniendo nuestros POCO objects, procedemos a inicializar el DocumentStore y utilizarlo, para lo cual tendremos una clase más con un field que será el storage inicializado en el constructor y un método que se encargará de llenar el documento y almacenarlo en el storage.</p>
<p>Ahhh, no olvidemos que el inicializar el storage no es el único paso que debemos realizar. Para poder interactuar con los documentos necesitamos una sesión abierta, aquí el código:</p>
<p><a href="http://www.fboiton.com/images/IncursionandoconRavenDB_E7D9/image_5.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/IncursionandoconRavenDB_E7D9/image_thumb_5.png" width="505" height="353" /></a> </p>
<p>Finalmente, utilizamos nuestro ClientsDirectory en una console application</p>
<p><a href="http://www.fboiton.com/images/IncursionandoconRavenDB_E7D9/image_6.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/IncursionandoconRavenDB_E7D9/image_thumb_6.png" width="592" height="75" /></a> </p>
<p>y al ejecutar nuestra aplicación y luego irnos a la interfaz web de nuestro RavenDB Server</p>
</p>
</p>
</p>
<p>http://localhost:8088</p>
<p>Podemos ir a la sección “Documents” y bingo!</p>
<p><a href="http://www.fboiton.com/images/IncursionandoconRavenDB_E7D9/image_7.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/IncursionandoconRavenDB_E7D9/image_thumb_7.png" width="761" height="92" /></a> </p>
<p>Nuestro primer documento creado, mismo que al darle click en la interfaz web podemos manipularlo:</p>
<p><a href="http://www.fboiton.com/images/IncursionandoconRavenDB_E7D9/image_8.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.fboiton.com/images/IncursionandoconRavenDB_E7D9/image_thumb_8.png" width="407" height="378" /></a> </p>
<p>No olvidemos que tenemos la opción de utilizar RavenDB embebido en nuestras aplicaciones lo cual nos quita la dependencia a un servicio adicional a nuestra aplicación que esté corriendo, adicionalmente que esto nos da libertad de utilizarla para muchos tipos de proyectos, no dejen de ver la sección <a href="http://ravendb.net/documentation/docs-client-api-index" target="_blank">Raven’s Client API</a></p>
<p> El proyecto puede descargarse <a href="http://www.fboiton.com/ClientsDirectory.rar">Aqu&iacute;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fboiton.com/ravendb-caracteristicas-instalacion-y-nuestro-primer-documento/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

