SQLite: DB Locales en Win8 - WarNov Developer Evangelist - Site Home - MSDN Blogs

SQLite: DB Locales en Win8

SQLite: DB Locales en Win8

Rate This
  • Comments 5

Hoy estuve charlando con Sorey Garcia acerca de la app que está creando para el lanzamiento de Windows 8. Me contaba que estaba implementando mucho en el backend, por que estaba siendo muy difícil para ella manejar información estructurada del lado del cliente, dado que la promesa de SQLite, que era la tecnología que se había puesto disponible por parte de terceros para este tipo de manejos, aún no estaba claramente desarrollada… sin embargo, eso hoy ya ha cambiado, y se lo hice saber:

- Niña, hoy en día ya está completamente implementado!!!
le dije… ella muy juiciosa y proactiva me respondió:
- Súper! Voy a estudiarlo y a hacer un post, porque ya hace rato no escribo…
- Eso sería excelente… - musité…
- Porque yo iba a escribir ese post… te parece más bien si te invito al mío con el post que escribas??
A ella le gusto la idea, y aquí está su post acerca de cómo usar SQLite en Win8:

_________________________________________

Sorey says:


Aprovechando que hoy ando trabajando por estos días con Windows 8, hoy les traigo este tema que nos hizo sufrir a más de uno mientras esperábamos el RTM, en realidad esperábamos ansiosamente el wrapper de SQLite sin saberlo.

SQLite es una biblioteca de software que implementa una en sí misma, sin servidor, sin necesidad de configuración, el motor de base de datos transaccional de SQL y su código fuente para SQLite es de dominio público.

Pues bien, SQLite ahora está disponible para nuestras aplicaciones Windows 8 que requieren almacenamiento estructurado local. El dolor que teníamos es que hasta ahora no existía una implementación de un wrapper estable y aprobado por Microsoft, que nos permitiera usarlo en nuestras apps. Soy enfática en el tema de aprobado por Microsoft puesto que ya habían varias implementaciones por ahí que muchos estaban usando, sin embargo al enviar nuestras aplicaciones a ser certificadas para publicarse en el Windows Store, estas podían recibir observaciones. Sin embargo ya la librería oficial escrita en C++ y que nos provee todo el poder y funcionalidad de SQLite está disponible para nuestras apps.

A continuación voy a hacer un ejemplo sencillo, paso a paso, mostrando como usarlo en una aplicación  Windows 8, este ejemplo está basado en el artículo publicado por Tim Heuer, una de mis fuentes recurrentes.

Aclaro y soy muy enfática en ello, de la interfaz que use en el ejemplo, nada que ver con como debería ser una aplicación Windows 8, en este caso el ejemplo está más centrado en como usar SQLite.

En primer lugar debemos instalar la extensión que nos permite usar la librería de C++ creada por el equipo de Windows. La encontramos en Tools > Extensions and Updates


Luego buscamos los componentes en línea SQLite for Windows Runtime y la descargamos para que sea instalada en nuestra máquina.


Se nos pide una confirmación, que aceptamos para proceder con la instalación.

 
Visual Studio nos notifica que debemos reiniciar para que la extensión sea tomada.
 
 
Reiniciamos y abrimos nuestro proyecto y seleccionamos la opción de añadir referencias.
 
 
Debemos seleccionar SQLite y Microsoft Visual C++ Runtime para que la librería funcione correctamente.


En mi caso Visual Studio reportaba un error, ya que debía seleccionar una plataforma específica a pesar de que en realidad se nombran todas las posibles en el mismo mensaje de error.
 

Para corregir ingresamos a las propiedades del proyecto

 
Y seleccionamos en la sección Build, la plataforma de destino.

 
Ahora bien,  en este punto si tenemos el conocimiento podríamos acceder a la librería y usarla, sin embargo lo recomendado es buscar algún Wraper existente en C# como es mi caso, para no tener que lidiar con esto si no sabemos como hacerlo. Muchos de esos wraper se encuentran disponibles en NuGet. Si usamos VB debemos continuar los pasos hasta añadir el código del wraper, y compilar una librería en C# y luego referenciar esta desde nuestro proyecto VB.
 
Para iniciar la instalación del wraper verificamos en las extensiones si lo tenemos instalado y si no procedemos a hacerlo igual que se hizo con el SQLite.
 

Ahora bien ingresamos a NuGet para buscar un wrapper adecuado para nuestra aplicación.
 

El wrapper recomendado en el artículo de base de este post es sqlite-net, lo seleccionamos e instalamos.
 

Se nos pide seleccionar en que aplicación vamos a añadir el código, en este caso solo tengo un proyecto.
 
 
Lo que sucede es que añaden dos API a nuestro código, una de ellas es una API que usa  Async , palabra que si no entiendes a este instante te recomiendo estudiar en Channel 9 o en el Blog de Walter Novoa
 
En este post usaré Async, si quieres ver como usar la otra API, puedes ver el post de Tim Heuer o bien leer la documentación en español del Windows Developer Center

 
Para esto también es muy importante tener los conceptos de objetos y ORM claros en tu cabeza. De hecho empezamos nuestro ejemplo construyendo la clase que mapea con la estructura de nuestra tabla de ejemplo. No debemos confundir la clase con la tabla, la tabla de hecho no la veremos, sin embargo es la clase quien nos ayudará a que finalmente se cree la tabla (esto solo suena enredado si no tienes claros los conceptos que te mencioné)
 
La clase es sencilla, sin embargo podrás ver unos decoradores sobre ella
 
Otros decoradores pueden ser AutoIncrement, MaxLength(30).

Ahora creamos nuestra interfaz sencilla, les comparto el Document Outline para que se guien.
 

 
Tambien pueden ver el XAML del formulario. Solo recuerden que hacer una aplicación Windows 8 requiere de mucho más, pero es bueno iniciar desde lo fácil.
 
Aprovecho para recomendarles que aprendan a manejar Blend, de verdad es una gran herramienta para abstraernos un poco del arduo trabajo de hacer XAML, sin embargo es igual de importante entender y saber modifical el XAML cuando algo va mal.
 
 
Ahora va el código del botón insertar como ven es bastante sencillo de usar cuando ya tienes el wrapper correcto.
 
 
Aquí la aplicación funcionando.

 
Luego tenemos el botón consultar que lleva un ListView los items de la base de datos, bastante sencillo tambien.

 
Aqui vemos la aplicación mostrando los nombres registrados.

 
Recuerden que hay mucho que hacer con respecto a las listas, y en XAML si sabemos manejar los enlaces correctamente podemos mostrar más información sin hacer más código, veamos un ejemplo de esto para terminar.
 
Pueden modificar el DataTemplate del ListView así:


Como mostraremos todo el objeto y no solo una parte de el modificamos el código.

 
Y de esta forma podemos tener una lista con más forma, que de hecho podemos editar mucho mejor si usamos Expression Blend.

 
Espero que este corto ejemplo les resulte de mucha utilidad. Nos vemos la próxima.
______________________________________________
 
 
WarNov Says: Para estar al tanto de muchos otros posts muy buenos como este, les recomiendo que visiten el blog de Sorey.
 

Sorey García es líder de la comunidad Avanet, MCS Gold en Colombia con especialidad de Windows Phone,
Organizadora de Eventos como el Barcamp Medellin
y también lidera la investigación tecnológica en su actual empleo.
Leave a Comment
  • Please add 1 and 5 and type the answer here:
  • Post
  • Vaya muy sencillo espero pronto empezar a desarrolla con Windows 8, gracias por el demo

  • Muy buen tutorial! Es lo que estaba buscando, conciso y claro! Muchas gracias!

  • Hola Walter, estoy realizando una App para Win 8 que necesita bases de datos pero busco y busco y no encuentro nada, donde puedo conseguir información sobre esto aparte de la que menciona en este post.

  • Paco Ocampo y Leonardo Simes

    : Muchas gracias por sus apreciaciones.

  • Jair Reinaldo Camacho: Específicamente que info adicional necesitas?

Page 1 of 1 (5 items)