SlideShare una empresa de Scribd logo
1 de 10
Parte I. NotasRapidas (sticky notes) App
W8: MVVM y SQLite.

Bases para MVVM y SQLite.
Requerimientos
•   Windows 8
•   Visual Studio 2012
Conociendo de MVVM
Comenzaredando el reconocimiento al creadorde Modelo-Vista-
ViewModel o conocidocomoMVVM Light toolkit Laurent Bugnion. Hoy en
díaasícomoyo, hay muchosotrosdesarrolladores, quehanestadousando el
patrón MVVM paraaplicaciónbasadas en WPF, Silverlight y ahora Metro
Style.
 Lo que se pretende en este blog esdarunaaportación del
conocimientosobreestaarquitectura , y llevar el conocimiento de MVVM con
la esperanza de que hay mejoraspara el desarrollo de App para Metro
Style.
MVVM Light Toolkit V4 RTM es el instaladormásrecientepara Windows 8,
estádisponible en CodePlex. Según el blog de Laurent esunainstalaciónpaso
a pasocomolasversionesanteriores. Solo se tienequedescargar y ejecutar el
MSI desdeCodePlex y comoes habitual seguir los pasos y darsiguiente hasta
el final de la instalación o en sudefectoinstalarlodesde Visual Studio 2012
con la consolaPackage Manager Console y ejecutar el comando Install-
Package-MvvmLight.
Antes de comenzar con el desarrollo de la app voy a darunabrevedescripción
del MVVM es un derivado de Model-View-Controller (MVC) donde los
puntospotenciales de estaarquitectura se aprovechan en Windows
Presentation Foundation (WPF), Silverlight y ahoraaplicaciones Metro
Style.
La arquitectura se basa en separar el Modelo (Model) y la Vista (View)
mediante la introducción de unacapa de abstracción entre ellos: unmodelo
"de la vista" o conocidocomoViewModel.
•   El modelo (Model).Esresponsable de todos los datos de la aplicación y de la
        lógica de negociosrelacionada.
•   La vista o vistas(View). Esresponsable de manipular y mostrar los eventos,
        animacionesy datos al usuario, en otraspalabras la vista esresponsable
        de lasacciones a mostrarpara la interacción con el usuario, asícomo de
        permitir la manipulación de los datos de la aplicación.
•   El modelo-vista (ViewModel). Esresponsable de implementar el
        comportamiento de la vista para responder a lasacciones del
        usuariomediantemétodos,         comandos        y     otrospuntos    de
        accesoqueayudan a mantener el estado de la vista, y de exponer los
        datos del modelo de forma talque sea fácilusar bindings en la vista.

Preparación de lasherramientas a utilizar
:Instalación de MVVM y SQLite.
Para efectos de estedesarrollo se van a instalarMVVM desdeManage Nuget
Package y SQLite agregándolocomoreferencia del proyecto.
• Para MVVM sedeben de seguir los siguientespasos:
1. Abrir Visual Studio 2012
2. Generar el proyectodenominadoNotasRapidas
3. Ir a Tools>>Library Package Manager>>Package Manager Console. Como
        se muestra a continuación:
4. En   la consola de Package Manager Console ponerdespués del prompt PM>
         la instrucciónInstall-Package-MvvmLight:




5. Se   debe deagregarlasplantillas de MVVM a Visual Studio 2012.




•  Para realizar la instalación de SQLite se deben de realizar los
       siguientespasos:
1. SituarsesobreReferencias>> Dar
       clicderecho>>SeleccionarAgregarReferencia.
2. Se abriráunaventana en la cual del ladoderecho se debe de poner la
       referencia a seragregada, en estecasosqlite. Como se muestra a
       continuación:
3. Adicionalmentedebes   de descargar la librería (dll) de la pagina de SQLite.




4. Al
    terminar la descargacopia la librearía (dll) al proyecto.
Al concluir con lasinstalaciones se debe de crearcarpetasparaorganizar el
proyecto, la estructura del directoriodebe de quedar de esta forma:
DesarrollandoNotasRápidas (Sticky notes)
Como objetivo de desarrollo se plantea el teneruna Nota Rápidaquecontenga
los elementosbásicoscomo lo son el titulo, fecha y la nota, el diseño de la Nota
Rápida va a ser de la siguientemanera:
Antes de comenzar con el desarrollo se debe de comenzar con la estructura de
la base de datos. lacualdebe de tenerunaestructura similar a esta:




Para crearlastablas de la base de datos en SQLite que se van a utilizar en la
aplicación Metro Style de NotasRápidas, se puedenconsiderar dosformas:
Nota: Antes de comenzar a desarrollar la claseesimportanteprimero leer
estas dos formaspara saber porcual forma se va a elegirpara el desarrollo.
LA PRIMERA FORMA, estenerunaclaseparacadatablaque se quieracrear,
laspropiedades de la clase se tienenquedirigir a algunosatributospropios de
SQLite paraque al momento de generarlos la bibliotecasepacomoconstruirlos.
Para ejemplificar, se va a construir la clasepara la TablaNota:
En esteejemplo se vecomoalgunosatributos de SQLite se utilizan en
laspropiedades de la clase, paraclarificarcadauno :
PrimaryKey. Se utilizaparaespecificarque la columnaserá la clave principal de
la tabla. AutoIncrement. Por lo general se utiliza en pareja con una clave
principal,     y     cuandoestaopciónestáactivada,      el      valor      de
estacolumnaesunnúmeroque se incrementaautomáticamentecadavezque se
insertaunanuevafila en la tabla. MaxLength. Se puedeutilizar con
laspropiedades de cadenaparaespecificar el númeromáximo de
caracteresqueseránalmacenados en la columna.
Después de haberdefinido la tabla, es el momento de crear la base de datos.
Como se sabe el desarrollo de aplicación Metro Style se basa en lo posible en
un patrónasynchrnous, de tal forma que setienequeutilizar la
versiónasíncrona de sqlite-net.
Para crear la base de datos, se va a crearunaclase con el nombre de
BDManager, lacualcontendrá la ruta de conexión y métodospara la
manipulación de lasnotasrápida.
La claseBDManager, inicialmentedebe de contenerestaestucturapara la
creacion de la base de datos y lastablas:




El métodoGetConnection.Devuelve de forma asíncrona la rutadonde se
encuentra la base datos.
Donde:
DatabaseName. Es el nombre de la base de datos.
_Path. Es la rutadonde se vaencontrar la base de datos.
SQLiteAsyncConnection. Genera la base de datos en la ruta _path.
El métodoCreateDataTable.Sirveparacrear la tabla en la base de datos de
forma asyncrona.
Donde:
conn. Es el objeto de la conexión a la base de datos.
CreateTableAsync<>.Es el métodoparacrear la tabla de forma asíncrona.
TablaNota. Es la clasequeutiliza el métodoasíncronopara la construcción de la
tabla.
await. Esunmetodo Promise.
En estepuntoesdonde se va a clarificaLA SEGUNDA FORMA, lacualconsiste en
vez de generar la tablautilizando la clasepara la creación de esta, con la
instrucción:
          awaitconn.CreateTableAsync<TableImage>();
Se utilicé la instrucción:
 awaitconn.ExecuteAsync("CREATE TABLE TableImage (IdImage
INTEGER PRIMARY KEY, Archivo VARCHAR(120000), IdNota
INTEGER);");
con la cual no se genera ningunaclase de pormedio y se
utilizaunasentencia SQL, para la creación de la tabla.
Dentro de estamismaclase de BDManager se va a continuar con la creación de
los métodosquenos van a Crear, Devolver y Eliminarlasnotas:




                Métodoasíncrono paraCrearuna Nota Rápida.
MétodoasíncronoparaRetornarunaLista de NotasRápidas.




                MétodoasíncronoparaEliminaruna nota rápida.



Hasta estemomento solo se tienecreada la base de datos, lastablas y la
clasequeadministrara      los    métodosparaguardar,       eliminar    y
seleccionartodaslasnotas, yanosencontramos en la parte del Model para la
Aplicación.
La publicación de la Parte II, la cualconsistirá en la construcción de la
aplicación con la arquitectura de MVVM y la interaccióncon la base de
datosbajo el esquema de MVVM.

Más contenido relacionado

La actualidad más candente

Codificacion de clases en java con NetBeans
Codificacion de clases en java con NetBeansCodificacion de clases en java con NetBeans
Codificacion de clases en java con NetBeansEmerson Garay
 
Sesiones y cookies en php
Sesiones y cookies en phpSesiones y cookies en php
Sesiones y cookies en phpRobert Moreira
 
GUI Salario en java con NetBeans
GUI Salario en java con NetBeansGUI Salario en java con NetBeans
GUI Salario en java con NetBeansEmerson Garay
 
Guia practica secuenciales en java con NetBeans 01
Guia practica secuenciales en java con NetBeans 01Guia practica secuenciales en java con NetBeans 01
Guia practica secuenciales en java con NetBeans 01Emerson Garay
 
Dprn3 u3 a1_dahp
Dprn3 u3 a1_dahpDprn3 u3 a1_dahp
Dprn3 u3 a1_dahpsistemas211
 
Aplicación de escritorio con java
Aplicación de escritorio con javaAplicación de escritorio con java
Aplicación de escritorio con javaEmerson Garay
 

La actualidad más candente (9)

Ejercicio basico en asp.net LOZADA ERICK
Ejercicio basico en asp.net LOZADA ERICKEjercicio basico en asp.net LOZADA ERICK
Ejercicio basico en asp.net LOZADA ERICK
 
Codificacion de clases en java con NetBeans
Codificacion de clases en java con NetBeansCodificacion de clases en java con NetBeans
Codificacion de clases en java con NetBeans
 
Sesiones y cookies en php
Sesiones y cookies en phpSesiones y cookies en php
Sesiones y cookies en php
 
Conexión de Base de Datos
Conexión de Base de DatosConexión de Base de Datos
Conexión de Base de Datos
 
GUI Salario en java con NetBeans
GUI Salario en java con NetBeansGUI Salario en java con NetBeans
GUI Salario en java con NetBeans
 
Guia practica secuenciales en java con NetBeans 01
Guia practica secuenciales en java con NetBeans 01Guia practica secuenciales en java con NetBeans 01
Guia practica secuenciales en java con NetBeans 01
 
Dprn3 u3 a1_dahp
Dprn3 u3 a1_dahpDprn3 u3 a1_dahp
Dprn3 u3 a1_dahp
 
Aplicación de escritorio con java
Aplicación de escritorio con javaAplicación de escritorio con java
Aplicación de escritorio con java
 
File
FileFile
File
 

Destacado

Projeto 3 bimestre
Projeto 3 bimestreProjeto 3 bimestre
Projeto 3 bimestreheliane
 
Fevereiro
FevereiroFevereiro
Fevereiroheliane
 
Web2.0 e educação
Web2.0  e educaçãoWeb2.0  e educação
Web2.0 e educaçãoliviaferraz
 
Pera te viste
Pera te vistePera te viste
Pera te vistegissgavi
 
Projeto impactação
Projeto   impactaçãoProjeto   impactação
Projeto impactaçãoheliane
 
Revista Caudal Nº 6 Noviembre 2013Caudal 6 original
Revista Caudal Nº 6 Noviembre 2013Caudal 6 originalRevista Caudal Nº 6 Noviembre 2013Caudal 6 original
Revista Caudal Nº 6 Noviembre 2013Caudal 6 originalasalinasc
 
Hazardous Material Awarness Cert
Hazardous Material Awarness CertHazardous Material Awarness Cert
Hazardous Material Awarness CertMireya Aragon
 
passo-a-passo Experience no câmpus 2008
passo-a-passo Experience no câmpus 2008passo-a-passo Experience no câmpus 2008
passo-a-passo Experience no câmpus 2008unisinos_experience
 
Libros recomendados
Libros recomendadosLibros recomendados
Libros recomendadosBRADULISES
 
Sindrome diarreico y planes de hidratacion 4020
Sindrome diarreico y planes de hidratacion 4020Sindrome diarreico y planes de hidratacion 4020
Sindrome diarreico y planes de hidratacion 4020anthony yusimacks
 
Situações observadas rede fisica sre
Situações observadas rede fisica sreSituações observadas rede fisica sre
Situações observadas rede fisica sreheliane
 
A autoformação assegurando a sustentabilidade da formação docente
A autoformação   assegurando a sustentabilidade da formação docente A autoformação   assegurando a sustentabilidade da formação docente
A autoformação assegurando a sustentabilidade da formação docente Carlos Marcelo
 
Intro to Firefighting
Intro to FirefightingIntro to Firefighting
Intro to FirefightingMireya Aragon
 

Destacado (20)

11666
1166611666
11666
 
El Mago J
El Mago  JEl Mago  J
El Mago J
 
Projeto 3 bimestre
Projeto 3 bimestreProjeto 3 bimestre
Projeto 3 bimestre
 
Variedad De Fotos
Variedad De FotosVariedad De Fotos
Variedad De Fotos
 
Fevereiro
FevereiroFevereiro
Fevereiro
 
Web2.0 e educação
Web2.0  e educaçãoWeb2.0  e educação
Web2.0 e educação
 
AP
APAP
AP
 
Pera te viste
Pera te vistePera te viste
Pera te viste
 
Projeto impactação
Projeto   impactaçãoProjeto   impactação
Projeto impactação
 
Revista Caudal Nº 6 Noviembre 2013Caudal 6 original
Revista Caudal Nº 6 Noviembre 2013Caudal 6 originalRevista Caudal Nº 6 Noviembre 2013Caudal 6 original
Revista Caudal Nº 6 Noviembre 2013Caudal 6 original
 
Hazardous Material Awarness Cert
Hazardous Material Awarness CertHazardous Material Awarness Cert
Hazardous Material Awarness Cert
 
passo-a-passo Experience no câmpus 2008
passo-a-passo Experience no câmpus 2008passo-a-passo Experience no câmpus 2008
passo-a-passo Experience no câmpus 2008
 
Libros recomendados
Libros recomendadosLibros recomendados
Libros recomendados
 
WNS award
WNS awardWNS award
WNS award
 
Sindrome diarreico y planes de hidratacion 4020
Sindrome diarreico y planes de hidratacion 4020Sindrome diarreico y planes de hidratacion 4020
Sindrome diarreico y planes de hidratacion 4020
 
Awareness and Ops
Awareness and OpsAwareness and Ops
Awareness and Ops
 
Situações observadas rede fisica sre
Situações observadas rede fisica sreSituações observadas rede fisica sre
Situações observadas rede fisica sre
 
A autoformação assegurando a sustentabilidade da formação docente
A autoformação   assegurando a sustentabilidade da formação docente A autoformação   assegurando a sustentabilidade da formação docente
A autoformação assegurando a sustentabilidade da formação docente
 
Despedida vip sponsor
Despedida vip sponsorDespedida vip sponsor
Despedida vip sponsor
 
Intro to Firefighting
Intro to FirefightingIntro to Firefighting
Intro to Firefighting
 

Similar a Parte I. Notas Rapidas (sticky notes) App w8: MVVM y SQLite

Similar a Parte I. Notas Rapidas (sticky notes) App w8: MVVM y SQLite (20)

MySQL.DataMySqlClient
MySQL.DataMySqlClientMySQL.DataMySqlClient
MySQL.DataMySqlClient
 
Org tutorial struts_2010
Org tutorial struts_2010Org tutorial struts_2010
Org tutorial struts_2010
 
Dce2 ejercicios asp.net
Dce2 ejercicios asp.netDce2 ejercicios asp.net
Dce2 ejercicios asp.net
 
Mvc
MvcMvc
Mvc
 
Programación .NET III
Programación .NET IIIProgramación .NET III
Programación .NET III
 
Proyecto visual studio
Proyecto visual studioProyecto visual studio
Proyecto visual studio
 
Ds dprn3 u3_a1_alcz
Ds dprn3 u3_a1_alczDs dprn3 u3_a1_alcz
Ds dprn3 u3_a1_alcz
 
DPRN3_U3_A1_IRMG1
DPRN3_U3_A1_IRMG1DPRN3_U3_A1_IRMG1
DPRN3_U3_A1_IRMG1
 
DPRN3_U3_A1_JOMM
DPRN3_U3_A1_JOMMDPRN3_U3_A1_JOMM
DPRN3_U3_A1_JOMM
 
Dprn3 u3 a1_rahv
Dprn3 u3 a1_rahvDprn3 u3 a1_rahv
Dprn3 u3 a1_rahv
 
Mi primera aplicación para windows 10
Mi primera aplicación para windows 10Mi primera aplicación para windows 10
Mi primera aplicación para windows 10
 
Programacion2
Programacion2Programacion2
Programacion2
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Desarrollando mi primera App para Windows 8 con C#
Desarrollando mi primera App para Windows 8 con C#Desarrollando mi primera App para Windows 8 con C#
Desarrollando mi primera App para Windows 8 con C#
 
P7
P7P7
P7
 
Practica 7
Practica 7Practica 7
Practica 7
 
Practica 7
Practica 7Practica 7
Practica 7
 
DPRN3_U3_A1_JEBS
DPRN3_U3_A1_JEBSDPRN3_U3_A1_JEBS
DPRN3_U3_A1_JEBS
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Primeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier AznarPrimeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier Aznar
 

Último

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 

Último (13)

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 

Parte I. Notas Rapidas (sticky notes) App w8: MVVM y SQLite

  • 1. Parte I. NotasRapidas (sticky notes) App W8: MVVM y SQLite. Bases para MVVM y SQLite. Requerimientos • Windows 8 • Visual Studio 2012 Conociendo de MVVM Comenzaredando el reconocimiento al creadorde Modelo-Vista- ViewModel o conocidocomoMVVM Light toolkit Laurent Bugnion. Hoy en díaasícomoyo, hay muchosotrosdesarrolladores, quehanestadousando el patrón MVVM paraaplicaciónbasadas en WPF, Silverlight y ahora Metro Style. Lo que se pretende en este blog esdarunaaportación del conocimientosobreestaarquitectura , y llevar el conocimiento de MVVM con la esperanza de que hay mejoraspara el desarrollo de App para Metro Style. MVVM Light Toolkit V4 RTM es el instaladormásrecientepara Windows 8, estádisponible en CodePlex. Según el blog de Laurent esunainstalaciónpaso a pasocomolasversionesanteriores. Solo se tienequedescargar y ejecutar el MSI desdeCodePlex y comoes habitual seguir los pasos y darsiguiente hasta el final de la instalación o en sudefectoinstalarlodesde Visual Studio 2012 con la consolaPackage Manager Console y ejecutar el comando Install- Package-MvvmLight. Antes de comenzar con el desarrollo de la app voy a darunabrevedescripción del MVVM es un derivado de Model-View-Controller (MVC) donde los puntospotenciales de estaarquitectura se aprovechan en Windows Presentation Foundation (WPF), Silverlight y ahoraaplicaciones Metro Style. La arquitectura se basa en separar el Modelo (Model) y la Vista (View) mediante la introducción de unacapa de abstracción entre ellos: unmodelo "de la vista" o conocidocomoViewModel.
  • 2. El modelo (Model).Esresponsable de todos los datos de la aplicación y de la lógica de negociosrelacionada. • La vista o vistas(View). Esresponsable de manipular y mostrar los eventos, animacionesy datos al usuario, en otraspalabras la vista esresponsable de lasacciones a mostrarpara la interacción con el usuario, asícomo de permitir la manipulación de los datos de la aplicación. • El modelo-vista (ViewModel). Esresponsable de implementar el comportamiento de la vista para responder a lasacciones del usuariomediantemétodos, comandos y otrospuntos de accesoqueayudan a mantener el estado de la vista, y de exponer los datos del modelo de forma talque sea fácilusar bindings en la vista. Preparación de lasherramientas a utilizar :Instalación de MVVM y SQLite. Para efectos de estedesarrollo se van a instalarMVVM desdeManage Nuget Package y SQLite agregándolocomoreferencia del proyecto. • Para MVVM sedeben de seguir los siguientespasos: 1. Abrir Visual Studio 2012 2. Generar el proyectodenominadoNotasRapidas 3. Ir a Tools>>Library Package Manager>>Package Manager Console. Como se muestra a continuación:
  • 3. 4. En la consola de Package Manager Console ponerdespués del prompt PM> la instrucciónInstall-Package-MvvmLight: 5. Se debe deagregarlasplantillas de MVVM a Visual Studio 2012. • Para realizar la instalación de SQLite se deben de realizar los siguientespasos: 1. SituarsesobreReferencias>> Dar clicderecho>>SeleccionarAgregarReferencia. 2. Se abriráunaventana en la cual del ladoderecho se debe de poner la referencia a seragregada, en estecasosqlite. Como se muestra a continuación:
  • 4. 3. Adicionalmentedebes de descargar la librería (dll) de la pagina de SQLite. 4. Al terminar la descargacopia la librearía (dll) al proyecto. Al concluir con lasinstalaciones se debe de crearcarpetasparaorganizar el proyecto, la estructura del directoriodebe de quedar de esta forma:
  • 5. DesarrollandoNotasRápidas (Sticky notes) Como objetivo de desarrollo se plantea el teneruna Nota Rápidaquecontenga los elementosbásicoscomo lo son el titulo, fecha y la nota, el diseño de la Nota Rápida va a ser de la siguientemanera:
  • 6. Antes de comenzar con el desarrollo se debe de comenzar con la estructura de la base de datos. lacualdebe de tenerunaestructura similar a esta: Para crearlastablas de la base de datos en SQLite que se van a utilizar en la aplicación Metro Style de NotasRápidas, se puedenconsiderar dosformas: Nota: Antes de comenzar a desarrollar la claseesimportanteprimero leer estas dos formaspara saber porcual forma se va a elegirpara el desarrollo. LA PRIMERA FORMA, estenerunaclaseparacadatablaque se quieracrear, laspropiedades de la clase se tienenquedirigir a algunosatributospropios de SQLite paraque al momento de generarlos la bibliotecasepacomoconstruirlos. Para ejemplificar, se va a construir la clasepara la TablaNota:
  • 7. En esteejemplo se vecomoalgunosatributos de SQLite se utilizan en laspropiedades de la clase, paraclarificarcadauno : PrimaryKey. Se utilizaparaespecificarque la columnaserá la clave principal de la tabla. AutoIncrement. Por lo general se utiliza en pareja con una clave principal, y cuandoestaopciónestáactivada, el valor de estacolumnaesunnúmeroque se incrementaautomáticamentecadavezque se insertaunanuevafila en la tabla. MaxLength. Se puedeutilizar con laspropiedades de cadenaparaespecificar el númeromáximo de caracteresqueseránalmacenados en la columna. Después de haberdefinido la tabla, es el momento de crear la base de datos. Como se sabe el desarrollo de aplicación Metro Style se basa en lo posible en un patrónasynchrnous, de tal forma que setienequeutilizar la versiónasíncrona de sqlite-net. Para crear la base de datos, se va a crearunaclase con el nombre de BDManager, lacualcontendrá la ruta de conexión y métodospara la manipulación de lasnotasrápida. La claseBDManager, inicialmentedebe de contenerestaestucturapara la
  • 8. creacion de la base de datos y lastablas: El métodoGetConnection.Devuelve de forma asíncrona la rutadonde se encuentra la base datos. Donde: DatabaseName. Es el nombre de la base de datos. _Path. Es la rutadonde se vaencontrar la base de datos. SQLiteAsyncConnection. Genera la base de datos en la ruta _path. El métodoCreateDataTable.Sirveparacrear la tabla en la base de datos de forma asyncrona. Donde: conn. Es el objeto de la conexión a la base de datos. CreateTableAsync<>.Es el métodoparacrear la tabla de forma asíncrona. TablaNota. Es la clasequeutiliza el métodoasíncronopara la construcción de la tabla. await. Esunmetodo Promise. En estepuntoesdonde se va a clarificaLA SEGUNDA FORMA, lacualconsiste en vez de generar la tablautilizando la clasepara la creación de esta, con la instrucción: awaitconn.CreateTableAsync<TableImage>();
  • 9. Se utilicé la instrucción: awaitconn.ExecuteAsync("CREATE TABLE TableImage (IdImage INTEGER PRIMARY KEY, Archivo VARCHAR(120000), IdNota INTEGER);"); con la cual no se genera ningunaclase de pormedio y se utilizaunasentencia SQL, para la creación de la tabla. Dentro de estamismaclase de BDManager se va a continuar con la creación de los métodosquenos van a Crear, Devolver y Eliminarlasnotas: Métodoasíncrono paraCrearuna Nota Rápida.
  • 10. MétodoasíncronoparaRetornarunaLista de NotasRápidas. MétodoasíncronoparaEliminaruna nota rápida. Hasta estemomento solo se tienecreada la base de datos, lastablas y la clasequeadministrara los métodosparaguardar, eliminar y seleccionartodaslasnotas, yanosencontramos en la parte del Model para la Aplicación. La publicación de la Parte II, la cualconsistirá en la construcción de la aplicación con la arquitectura de MVVM y la interaccióncon la base de datosbajo el esquema de MVVM.