TechNet
Products
IT Resources
Downloads
Training
Support
Products
Windows
Windows Server
System Center
Microsoft Edge
Office
Office 365
Exchange Server
SQL Server
SharePoint Products
Skype for Business
See all products »
Resources
Channel 9 Video
Evaluation Center
Learning Resources
Microsoft Tech Companion App
Microsoft Technical Communities
Microsoft Virtual Academy
Script Center
Server and Tools Blogs
TechNet Blogs
TechNet Flash Newsletter
TechNet Gallery
TechNet Library
TechNet Magazine
TechNet Wiki
Windows Sysinternals
Virtual Labs
Solutions
Networking
Cloud and Datacenter
Security
Virtualization
Updates
Service Packs
Security Bulletins
Windows Update
Trials
Windows Server 2016
System Center 2016
Windows 10 Enterprise
SQL Server 2016
See all trials »
Related Sites
Microsoft Download Center
Microsoft Evaluation Center
Drivers
Windows Sysinternals
TechNet Gallery
Training
Expert-led, virtual classes
Training Catalog
Class Locator
Microsoft Virtual Academy
Free Windows Server 2012 courses
Free Windows 8 courses
SQL Server training
Microsoft Official Courses On-Demand
Certifications
Certification overview
Special offers
MCSE Cloud Platform and Infrastructure
MCSE: Mobility
MCSE: Data Management and Analytics
MCSE Productivity
Other resources
Microsoft Events
Exam Replay
Born To Learn blog
Find technical communities in your area
Azure training
Official Practice Tests
Support options
For business
For developers
For IT professionals
For technical support
Support offerings
More support
Microsoft Premier Online
TechNet Forums
MSDN Forums
Security Bulletins & Advisories
Not an IT pro?
Microsoft Customer Support
Microsoft Community Forums
Sign in
Home
Library
Wiki
Learn
Gallery
Downloads
Support
Forums
Blogs
Resources For IT Professionals
United States (English)
Россия (Pусский)
中国(简体中文)
Brasil (Português)
Skip to locale bar
Post an article
Translate this page
Powered by
Microsoft® Translator
Wikis - Page Details
First published by
SalazarJuanMa
When:
31 Oct 2012 11:04 AM
Last revision by
Richard Mueller
(cMVP, Microsoft Community Contributo)
When:
19 Sep 2013 4:23 AM
Revisions:
4
Comments:
2
Options
Subscribe to Article (RSS)
Share this
Can You Improve This Article?
Positively!
Click Sign In to add the tip, solution, correction or comment that will help other users.
Report inappropriate content using
these instructions
.
Wiki
>
TechNet Articles
>
Parte I. Notas Rapidas (sticky notes) App W8: MVVM y SQLite (es-ES)
Parte I. Notas Rapidas (sticky notes) App W8: MVVM y SQLite (es-ES)
Article
History
Parte I. Notas Rapidas (sticky notes) App W8: MVVM y SQLite (es-ES)
Bases para MVVM y
SQLite
.
Requerimientos
Windows 8
Visual Studio 2012
Conociendo de MVVM
Comenzare dando el reconocimiento al creador de
Modelo-Vista-
ViewModel
o conocido como
MVVM Light
toolkit
Laurent
Bugnion
. Hoy en día
así como yo,
hay
muchos otros desarrolladores,
que
han
estado usando
el
patrón
MVVM
para aplicación basadas en WPF, Silverlight y ahora Metro Style.
Lo que se pretende en este blog es dar
una aportación
del conocimiento sobre esta arquitectura
, y
llevar
el
conocimiento
de MVVM con la esperanza
de que
hay
mejoras
para el desarrollo de App para Metro Style
.
MVVM
Light
Toolkit
V4
RTM es el
instalador más reciente
para Windows 8, está disponible en
CodePlex
. Según el blog
de Laurent
es una
instalación
paso a
paso
como las
versiones
anteriores. Solo se tiene que descargar y ejecutar el MSI desde
CodePlex
y como es habitual seguir los pasos y dar siguiente hasta el final de la instalación o en su defecto instalarlo desde Visual Studio 2012 con la consola
Package
Manager
Console
y ejecutar el comando
Install-Package-MvvmLight
.
Antes de comenzar con el desarrollo de la
app
voy a dar una breve descripción del
MVVM
es un derivado de
Model
-View-
Controller
(MVC) donde los puntos potencial
es de esta arquitectura
se aprovecha
n
en
Windows
Presentation
Foundation
(WPF), Silverlight y
ahora aplicaciones
Metro Style.
La arquitectura se basa en separar el Modelo (
Model
) y la Vista (View) mediante la introducción de una capa de abstracción entre ellos: un modelo "
de la
vista
" o
conocido como
ViewModel
.
El
modelo
(
Model
)
.
Es responsable de todos los datos de la aplicación y de la lógica de negocios relacionada.
La
vista
o vistas
(View)
.
Es responsable de manipular y mostrar los eventos, animaciones y datos
al usuario, en otras palabras la vista es responsable de las acciones a mostrar para la interacción con el usuario, así como
de permitir la manipulación de los datos de la aplicación.
El
modelo-vista
(
ViewModel
)
.
E
s responsable de implementar el comportamiento de la vista para responder a las acciones del usuario
mediante
métodos, comandos y otros puntos de acceso que ayudan a mantener el estado de la vista
,
y de exponer los datos del modelo de forma tal que sea fácil usar
bindings
en la vista.
Preparación de
las herramientas
a utilizar : Instalación de MVVM y
SQLite
.
Para efectos de este desarrollo se van a instalar MVVM
desde
Manage
Nuget
Package
y
SQLite
agregándolo como referencia del proyecto
.
Para
MVVM
se deben de seguir los siguientes pasos:
Abrir Visual Studio 2012
Generar el proyecto denominado
NotasRapidas
Ir
a
Tools
>>
Library Package Manager
>>
Package Manager Console.
C
omo se muestra a continuación:
En la consola de
Package
Manager
Console
poner después del
prompt
PM>
la
instrucción
Install-Package-MvvmLight
:
Se debe de agregar las plantillas de MVVM a Visual Studio 2012.
Para realizar la instalación de
SQLite
se deben de realizar los siguientes pasos:
Situarse sobre Referencias >> Dar clic derecho >> Seleccionar Agregar Referencia.
Se abrirá una ventana en la cual del lado derecho se debe de poner la referencia a ser agregada, en este caso
sqlite
. Como se muestra a continuación:
Adicionalmente debes de descargar la librería (
dll
) de la pagina de
SQLite
.
Al terminar la descarga copia la librearía (
dll
) al proyecto.
Al concluir con las instalaciones
se debe de crea
r carpetas para organizar el proyecto,
la estructura del directorio debe de quedar de esta forma:
Desarrollando Notas Rápidas (
Sticky
notes)
Como objetivo de desarrollo se plantea el tener una
Nota R
á
pida
que contenga los elementos básicos como lo son el
titulo, fecha y la nota
, el diseño de la
Nota R
á
pida
va a ser de la siguiente manera
:
Antes de comenzar con el desarrollo se debe
de
comenzar con la estructura de la base de datos.
la cual debe de tener una estructura similar a esta:
Para crear la
s tablas de la
base de datos en
SQLite que se va
n
a utilizar en
la aplicación Metro Style de Notas
R
á
pidas
, se puede
n considerar
dos formas
:
Nota:
Antes de comenzar a desarrollar
la
clase
es impo
r
tante
primero leer e
stas
dos
formas
para saber por cual forma se va a elegir para el desarrollo
.
L
A PRIMERA FORMA
,
es
tener una clase para
cada tabla que
se quiera crear, las propiedades de la clase se tienen que dirigir a algunos atributos propios de
SQLit
e
para que al momento de generarlos la
biblioteca
sepa como con
s
truirlos
.
P
ara ejemplificar
, se va a co
nstrui
r
la clase
para la
TablaNota
:
En este ejemplo se ve como algunos atributos de
SQLite
se utilizan en las propiedades de la clase, para clarificar cada uno :
PrimaryKey.
S
e utiliza para especificar
que la columna
será la clave
principal de la tabla
.
AutoIncremen
t.
P
or lo general
se utiliza en
pareja
con una clave principal
, y cuando
esta opción
está activada, el
valor de esta
columna es
un número que
se
incrementa automáticamente
cada
vez que se inserta
una nueva fila
en la tabla.
MaxLength.
Se puede
utilizar con
las propiedades de cadena
para especificar el número
máximo
de caracteres
que serán almacenados
en la columna.
Después de haber
definido 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ón
asynchrnous
,
de tal forma que se tiene que utilizar
la versión
asíncrona
de
sqlite
-net.
Para crear la base de datos, se va a crear una clase con el nombre de
BDManager
, la cual contendr
á
la ruta de conexión y m
é
todos
para la manipulaci
ó
n
de las notas r
á
pida
.
La clase BDManager, inicialmente debe de contener esta estuctura para la creacion de la base de datos y las tablas:
E
l m
é
todo
GetConnection
. Devuelve de forma a
síncrona
la ruta donde se encuentra la base datos.
Donde:
DatabaseName
. Es el nombre de la base de datos.
_Path. Es la ruta donde se va encontrar la base de datos.
SQLiteAsyncConnection. Genera la base de datos en la ruta _path
.
El m
é
todo
CreateDataTable
. Sirve para crear 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
é
todo
para crear la tabla de forma as
í
ncrona
.
TablaNota
. Es la clase que utiliza el método asíncrono para la construcción de la tabla.
aw
ait. Es un metodo Promise.
En este punto es donde se va a clarifica
LA SEGUNDA FORMA
,
la cual consiste
en vez de generar
la tabla
utilizando
la clase para la
creación
de esta,
con la instrucción:
await
conn.CreateTableAsync<
TableImage
>()
;
Se utili
cé
la instrucción:
await
conn.ExecuteAsync(
"CREATE TABLE
TableImage
(
IdImag
e
INTEGER
PRIMARY KEY,
Archivo
VARCHAR(
120000
)
,
IdNota
INTEGER
);"
)
;
con la cual no se genera ninguna clase de por
medio
y se utiliza una sentencia SQL, para la creaci
ó
n
de la tabla.
Dentro de esta misma clase de
BDManager
se va a continuar
con la creación de los métodos que nos van a
Crear
, Devolver y Eliminar las notas
:
Método asíncrono para Crear una Nota Rápida.
Método asíncrono para Retornar una Lista de Notas Rápidas.
Método asíncrono para Eliminar una nota rápida.
Hasta este momento solo se tiene creada la base de datos, las tablas y la clase que administrara los métodos para guardar, eliminar y seleccionar todas las notas, ya nos encontramos en la parte del Model para la Aplicación.
La publicación de la Parte II, la cual consistirá en la construcción de la aplicación con la arquitectura de MVVM y la interacción con la base de datos bajo el esquema de MVVM.