Posts destacados

Nuevo libro de desarrollo para Windows 8 y Windows Phone 8Nuevo libro de desarrollo para Windows 8 y Windows... Desde hace tiempo, estoy un poco alejado del mundanal ruido de blogs, twitter y demás. La razón no ha sido otra que hacer posible un deseo que tenia desde hace mucho tiempo,...

Read more

Preparándonos para el #MegathonW8 y II – Instalando las herramientas de desarrollo.Preparándonos para el #MegathonW8 y II –... Una vez que ya tenemos nuestro flamante Windows 8 instalado en nuestro disco duro virtual, según los pasos del primer capitulo de esta guía. Lo que debemos de hacer es instalarnos...

Read more

Preparándonos para el #MegathonW8 y I Instalación de Windows 8 en un VHDPreparándonos para el #MegathonW8 y I Instalación... Este es el primer post de una serie de ellos cuya intención es facilitar a los asistentes al megathon que se celebrara en breve, las instrucciones necesarias para conocer...

Read more

Beca para el Megathon Windows 8Beca para el Megathon Windows 8 Como seguramente todos ya sabréis, los próximos días 7, 8 y 9 de Septiembre se celebrara en varias ciudades españolas al mismo tiempo un hackathon sobre desarrollo para...

Read more

[OFFTOPIC] Oferta de trabajo.[OFFTOPIC] Oferta de trabajo. Madre mía, hasta ahora realmente no me había dado cuenta de lo abandonado que tengo mi blog, como pasa el tiempo de rápido por dios… Demasiadas cosas a hacer tanto dentro...

Read more

Windows Phone y .NET Rss

Materiales de mi charla en Málaga Dnug

Posteado el : 26-09-2011 | Por : tecnologia | En : Windows Phone 7

0

Lo primero me gustaría agradecer enormemente a la gente del grupo de usuario de Málaga Dnug, por darme la oportunidad de compartir mis conocimientos con la gente y sobre todo a Pablo Núñez por llevarme, traerme y compartir una agradable tarde-noche de cervezas y raciones….

El código de ejemplo que adjunto en este post no es el que use en la charla, sino lo que tenia en un principio preparado para hacer durante la misma. El problema es que como ya sabéis todos el tiempo se va volando y al final me tuve que conformar con hacer pequeños ejemplos de cada una de las cosas que iba comentando.

Bueno, pues lo dicho, espero que la charla gustara a todo el mundo que asistió y hasta la próxima..

Malaga DNug

 

PPT y código de ejemplo:

Share

Desde el Prototipado al Marketplace de una aplicación Windows Phone 7.5

Posteado el : 09-09-2011 | Por : tecnologia | En : Windows Phone 7

1

Tengo la intención de realizar, mejor dicho ya estoy en ello una serie de post, sobre la realización desde 0 de una aplicación completa y funcional del tipo TODO List.

Quisiera incluir obviamente código fuente de ejemplo y me gustaría mucho e intentare hacerlo, realizar algún que otro Screencast sobre alguno de los temas a tratar.

Básicamente el índice de temas a tratar punto por punto es el siguiente:

  1. Sketchflow, nociones básicas de prototipado de proyectos.
  2. Mini, mini introducción a M-V-VM
  3. Acceso a Servicios externos. Azure
  4. Persistiendo la información en el Isolated Storage.
  5. Poniendo información en un control Panorama.
  6. Creación dinámica de hojas en el control Pivot.
  7. Accediendo a la información de la agenda y contactos.
  8. Notificaciones.
  9. Jugando con los sensores.
  10. Integración con Social Media.
  11. Ganando un poco de pasta con el Microsoft Advertising SDK
  12. Procesos de certificación en el MarketPlace.
  13. Y ahora que?. Seguir las estadísticas de la aplicación.

La verdad es que me reservo el derecho a cambiar tanto el orden como el contenido de este índice, tanto añadiendo, como quitando artículos.

Espero que os guste y os sirva.

Share

Charla en Málaga Dnug sobre Windows Phone 7.5 “Mango”

Posteado el : 08-09-2011 | Por : tecnologia | En : Windows Phone 7, eventos

4

dnug

 

Tengo la gran suerte de que los chicos del club Málaga Dnug me hayan invitado a realizar el próximo día 21 de Septiembre en Málaga, una charla sobre las nuevas posibilidades y las nuevas características que incorpora la versión 7.5 de Windows Phone.

En esta charla hablaremos de Cloud, bases de datos locales en SQL CE, acceso a contactos, nuevas opciones de notificaciones Push, etc…

Lo dicho, os espero el día 21 sobre las 18:30h para estar un par de horas, o lo que el cuerpo aguante compartiendo charla sobre este gran dispositivo.

Aquí tenéis el link con el registro.

https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032493810&Culture=es-ES

Nos vemos.

 

Mango

Share

Mejoras de Rendimiento en entornos SQL CE – I

Posteado el : 07-09-2011 | Por : tecnologia | En : Windows Phone 7

1

Una de las cosas que debemos de tener muy en cuenta a la hora de trabajar con dispositivos móviles, es el rendimiento. Ya sabemos que pronto saldrán, si es que no lo han echo ya móviles con doble procesador y demás, pero no dejamos de necesitar controlar mas nuestro entorno en un dispositivo móvil que en un equipo de sobremesa.

Últimamente a nadie se le escapa que cualquier desarrollador en entornos de escritorio, sencillos, ha (hemos) dejado un poco de lado esta parte de rendimiento, ordenadores con 8 Gb de Ram, 4 núcleos, etc, etc, hacen que el rendimiento este en tu lista de requisitos bastante alejado de las primeras posiciones.

Como he comentado, nos encontramos con otro tipo de entornos y si queremos hacer buenas aplicaciones empresariales para Windows Phone 7 ya no puede estar el rendimiento al fondo de la lista de requisitos, sino mas bien al contrario, si no es la primera será la segunda.

El uso de SQL CE como base de datos relacional en una de nuestras aplicaciones hace que tengamos a parte un elemento mas de saturación de rendimiento, nuestra aplicación y los propios procesos internos que debe de hacer SQL CE. Pero es bastante sencillo seguir una serie de consejos que aplicándolos nos ahorran bastante tiempo de proceso.

Inserción de Datos.

Nuestro amigo el Insert. Esto que voy a comentar es mas de sentido común que de forma de hacerlo especial para ganar rendimiento.

Pongamos por ejemplo el mapeo de esta sencilla tabla.

[Table]

public class Tabla1

{

    [Column(IsPrimaryKey=true, IsDbGenerated=true)]

    public int ID { get; set; }

 

    [Column]

    public string Nombre { get; set; }

 

    [Column]

    public string Apellidos { get; set; }

 

    [Column]

    public string Email { get; set; }

}

Como digo, una sencilla tabla con 4 campos y clave primaria entera auto incremental.

Si realizamos la inserción por ejemplo de 1000 filas, podemos hacerlo básicamente de 3 formas:

Utilizando InsertOnSubmit y seguidamente realizar un SubmitChanges

Tabla1 Dato;

using (ContextoDatos Contexto = new ContextoDatos(CadenadeConexion))

{

    for (int i = 0; i < int.Parse(NRegistros.Text); i++)

    {

        Dato = new Tabla1();

        Dato.Nombre = "Nombre " + i.ToString();

        Dato.Apellidos = "Apellidos " + i.ToString();

        Dato.Email = "Email" + i.ToString() + "@live" + i.ToString() + ".com";

 

        Contexto.Personas1.InsertOnSubmit(Dato);

        Contexto.SubmitChanges();

    }

}

Utilizando también el InsertOnSubmit pero dejar el SubmitChanges para el final

Tabla1 Dato;

using (ContextoDatos Contexto = new ContextoDatos(CadenadeConexion))

{

    for (int i = 0; i < int.Parse(NRegistros.Text); i++)

    {

        Dato = new Tabla1();

        Dato.Nombre = "Nombre " + i.ToString();

        Dato.Apellidos = "Apellidos " + i.ToString();

        Dato.Email = "Email" + i.ToString() + "@live" + i.ToString() + ".com";

 

        Contexto.Personas1.InsertOnSubmit(Dato);

    }

 

    Contexto.SubmitChanges();

}

Usar un elemento que sea IEnumerable, utilizar InsertAllOnSubmit y realizar un SubmitChanges.

List<Tabla1> Datos = new List<Tabla1>();

 

Tabla1 Dato;

using (ContextoDatos Contexto = new ContextoDatos(CadenadeConexion))

{

    for (int i = 0; i < int.Parse(NRegistros.Text); i++)

    {

        Dato = new Tabla1();

        Dato.Nombre = "Nombre " + i.ToString();

        Dato.Apellidos = "Apellidos " + i.ToString();

        Dato.Email = "Email" + i.ToString() + "@live" + i.ToString() + ".com";

 

        Datos.Add(Dato);

    }

 

    Contexto.Personas1.InsertAllOnSubmit(Datos);

    Contexto.SubmitChanges();

}

Como alguna que otra vez he oído decir a alguien, las cosas se pueden hacer mal, o muy mal y en este caso usar el SubmitChanges tras realizar un InsertOnSubmit, es sin lugar a dudas una opción malísima. Obviamente todo depende de que aplicación estemos desarrollando pero, tenemos que tener en cuenta que reflejar físicamente los datos en la base de datos y no mantenerlo en memoria hasta hacer un Submit final, salvo en casos en donde las transacciones de la información sea primordial es totalmente innecesario. Tenemos que tener en cuenta que el móvil solo lo usamos nosotros. :-)

Insertando como decimos 1000 registros en 5 ocasiones diferentes el tiempo en realizar cada operación a sido el siguiente:

  Opción 1 Opción 2 Opción 3
1ª Inserción 28.294 ms 422 ms 529 ms
2ª Inserción 33.778 ms 399 ms 394 ms
3ª Inserción 27.331 ms 392 ms 381 ms
4ª Inserción 25.930 ms 504 ms 568 ms
5ª Inserción 26.876 ms 380 ms 390 ms

Es decir usar los métodos 2 y 3 apenas varia el rendimiento, pero estos son un 97% mas rápidos que la opción 1. Ahí queda eso.

En el siguiente post, ya veremos que realizando dos o tres toques sutiles en la definición de nuestras bases de datos, también podremos ganar mucho tiempo.

Share