Buscar

Javier Caceres – jacace

Javier's blog about C#, Software Architecture and Design

Categoría

Windows Phone 7

//publish/ Ireland [event – summary]

During the last May 16th the staff @ ITT and myself carried out the satellite edition of the Windows //publish/ event in Ireland.

The event aimed to facilitate local developers and enthusiasts to publish their Windows Store and Windows Phone Apps.

At the end of the evening two winners were presented with one Nokia Lumia 1520 (first place) and one Dell Venue 8 Pro (second place).

The first place went for Neil, a Dubliner building a promising Power Check application. His application uses data from the ESB to show where all the power cuts currently are, and when they will be likely fixed.

The second place was for Breda, a Kerry woman who coded her first application in Windows Phone. That was such as an amazing achievement because proves that determination pays off.

Dell Pro winner

Cheers,

Javier Andrés Cáceres Alvis

Microsoft Most Valuable Professional – MVP

Intel Black Belt Software Developer

Recomendaciones para el Examen 70-599: Designing and Developing Windows Phone Applications

Hace un tiempo fui otro de los expertos que colaboró en la creación de este examen. Hoy quiero recomendar algunos temas que deberían ser estudiados en conjunto con el material oficial de preparación (Pro: Designing and Developing Windows Phone Applications). Quisiera mencionar que esta no es una guía completa de estudio, son solo algunos temas que desde mi punto de vista son muy relevantes para el desarrollo en general en dispositivos móviles, por lo cual se debería estudiar el material de referencia y desarrollar tantas aplicaciones como se puedan antes de presentarlo. Los temas son:

  • La clase WebClient y el formato JSON.
  • La clase BackgroundWorker.
  • La clase GeoCoordinateWatcher y su impacto en la batería.
  • Principios básicos de los Accent Colors.
  • El execution model (específicamente el tombstoning), los diferentes posibles estados/eventos (Activated/Deactivated/Obscured) que pueden ocurrir (por ejemplo: al hacer click en el botón de hardware back o cuando se recibe una llamada) y el comportamiento de acuerdo al punto de inicio de la aplicación (es decir, si fue iniciada por acción del usuario o como parte de la ejecución de otra aplicación).
  • La implementación del patrón MVVM en el control Pivot y los conceptos que soportan dicho patrón. Esto es importante no solo para el examen sino en general para todos los developers porque conociendo sus ventajas en interfaces declarativas se puede consumir mejor la abstracción que provee para el Binding declarativo o en programacion.
  • Tiles.
  • Cancelación de eventos con propiedades como e.Cancel.
  • EL API Trial y consideraciones de rendimiento (por ejemplo: hacer caching).

Saludos,

Javier Andrés Cáceres Alvis

Microsoft Most Valuable Professional – MVP
Intel Black Belt Software Developer

Recomendaciones para que tu aplicación Windows Phone sea aprobada

Este post no pretende ser un extenso recurso sobre cada uno de los requisitos necesarios para que tu aplicación sea aprobada en el Windows Phone Dev Center, es por el contrario una pequeña lista de 10 TO CHECK’s que he recopilado y que me han funcionado. También es recomendable que conozcas los requisitos oficiales no para que te los aprendas de memoria sino para leerlos al menos una vez rápidamente: wpdev.ms/techcert

  1. Todas las operaciones que pueden consumir medio segundo o más DEBEN ser asíncronas. Dichas operaciones deberían poder ser canceladas en cualquier momento.
  2. Así mismo utilice indicadores de progreso para mantener informado al usuario.
  3. Maneje TODAS las excepciones (pruebe escenarios inesperados como la llegada de un mensaje SMS o la desconexión de la red).
  4. La aplicación debe desplegar la pantalla inicial en máximo 5 segundos
  5. No consuma más de 90MB de RAM.
  6. Pruebe rigurosamente el comportamiento de su aplicación presionando los botones de hardware Back, Start y Search.
  7. Revise la apariencia de su aplicación con un theme diferente al negro (puede cambiar el theme en Settings > Theme > Background).
  8. Depure/revise las capabilities que su aplicación realmente utiliza en el manifiesto.
  9. Si monetizas tu aplicación con ads, asegúrate que estos no interfieren con el desempeño de tu aplicación en el peor escenario. Implemente patrones como lazy load.
  10. Utilize el Marketplace Test Kit. Esta herramienta hace parte de Visual Studio, por lo cual la puedes acceder con click derecho en el proyecto y seleccionando “Open Marketplace Test Kit”. Asegúrese de ejecutar por lo menos los Test automatizados como se muestra en la siguiente imagen.

Bueno ahí los tienen, un check de 10 simples ítems.

Saludos,

Javier Andrés Cáceres Alvis

Microsoft Most Valuable Professional – MVP
Intel Black Belt Software Developer

SQL Server CE Windows Phone 7 Licensing

Este post es la respuesta a ésta pregunta de un lector del blog:

Hey, muy buen e interesante tutorial!
Me llamo XXX y soy de Lima, Perú, y el motivo por el cual te escribo es para hacerte una consulta:
Yo he desarrollado una aplicación utilizando SQL Server CE, pero, para probarla en mi teléfono, necesito algún tipo de licencia? Por lo que veo, eso que escribiste: “No sobra recordar que CE está basado en un archivo local con extensión *.sdf y que éste archivo para WP7 se guarda en el IsolatedStorage que tiene la aplicación.” me hace pensar que no. Además, todos los teléfonos con Mango pueden soportar aplicaciones que estén utilizando SQL Server CE o necesitan de algo más?
Podrías darme mayor información, por favor?
Muchas gracias por tu respuesta, la necesito para un trabajo de la universidad, también.

La respuesta corta es: No. La respuesta larga según Scott Gu:

SQL CE can be used for development scenarios, testing scenarios, and light production usage scenarios. With the SQL CE 4 release we’ve done the engineering work to ensure that SQL CE won’t crash or deadlock when used in a multi-threaded server scenario (like ASP.NET). This is a big change from previous releases of SQL CE – which were designed for client-only scenarios and which explicitly blocked running in web-server environments. Starting with SQL CE 4 you can use it in a web-server as well.

There are no license restrictions with SQL CE. It is also totally free.

Javier Andrés Cáceres Alvis

Microsoft Most Valuable Professional – MVP
Intel Black Belt Software Developer

Lo Mejor de Windows Phone Mango para los desarrolladores C#

El pasado 23 de Agosto presenté en Microsoft Colombia una sesión sobre las novedades que Windows Phone Mango trae para los desarrolladores C#. En esta sesión me enfoqué en mostrar las características que desde mi punto de vista son las más importantes para los desarrolladores del mundo real; dichas características son:

  • Agentes: mucho se ha hablado sobre el soporte de multitasking en los móviles y WP7 no es la excepción. Pues bien, en esta plataforma la forma de implementarlo es a través de agentes que permiten hacer polling, estos agentes permitirán hacer tareas en background. Ojo: no confundir los agentes con multithreading.
  • Tiles secundarios: antes solo podíamos tener un tile por aplicación en los hubs de WP7, pero ahora podemos tener tiles secundarios personalizados (con imágenes y URI’s diferentes).
  • Control sobre el dispositivo: esta versión de Windows Phone permite acceder a información del hardware detallada, la cual es útil para determinar por ejemplo si un dispositivo tiene el sensor gyro.
  • Control sobre la Cámara: ahora podemos acceder al live feeding (frame a frame) de la cámara, con lo cual facilita el desarrollo de aplicaciones de realidad aumentada.

Les comparto los slides que mostré en la charla: “12-OverviewMango” http://tinyurl.com/43t69mk

Existen más características, como por ejemplo las notificaciones Push locales, sin embargo creo que son éstas las verdaderas funcionalidades del dispositivo que nos permitirán construir otro tipo de aplicaciones que antes eran imposibles.

Saludos,

Javier Andrés Cáceres Alvis
Microsoft MVP – Windows Phone

Guía de Desarrollo en C# para Windows Phone 7: Microsoft Sync Framework

Recientemente colaboré con el equipo de Patterns & Practices (P&P) en la guía de desarrollo en C# para Windows Phone. Todo el material es muy bueno porque ofrece conceptos teóricos y un paso a paso para completar tareas específicas en Windows Phone 7. Quero recomendarles especialmente el apéndice sobre Microsoft Sync Framework:

http://msdn.microsoft.com/en-us/library/gg490765.aspx

Saludos,

Javier Andrés Cáceres Alvis
Microsoft MVP – Windows Phone

SQL Server CE está de regreso a Windows Phone “Mango”

Hola a todos,

Desde el lanzamiento oficial de Windows Phone 7.0 se debatió mucho sobre la necesidad de una base de datos local, del mismo modo como se hacía en Windows Mobile. Durante más de 12 meses la respuesta oficial de Microsoft fue que WP7 no era un dispositivo 100% empresarial, razón por la cual no había base de datos.

Fue hace 12 meses tan discutible el asunto que sin dudarlo dos veces varios equipos de desarrollo y empresas se embarcaron en una carrera por proveer bases de datos locales, “pagas” y for free. Algunas de las iniciativas más destacadas (y una de las que más usé) fue SiaQoDB HTTP://TINYURL.COM/SIADB, quien vio en WP7 la siguiente plataforma para portar ese proyecto. También hubo esfuerzos destacados de proveer almacenamiento de parte de Microsofties en forma de tutorial para desarrollar proveedores de LINQ: HTTP://TINYURL.COM/3XSVEZZ.

Pues ha pasado el tiempo y las cosas han cambiado, aunque Windows Phone 7.X (7.0, 7.1 y Mango) sigue siendo un dispositivo orientado inicialmente al consumidor final, ya hay una postura oficial de Microsoft de proveer un almacenamiento local a través de SQL Server CE.

Si escucharon bien, el viejo y conocido SQL Server CE está de regreso a Windows Phone “Mango”. Algunos dinosaurios de los móviles (se puede ser dinosaurio en un campo como móviles?) sabemos de la existencia de CE desde hace mucho tiempo, de los múltiples brandings que ha tenido y por supuesto también sabemos de su archi rival (Oracle Lite).

Bien, CE en WP7 viene recargado con LINQ, el ORM por default de Microsoft. Para utilizar CE en Mango el primer paso es crear una base de datos en tiempo de ejecución a través del DataContext o conectar a una existente con la siguiente sintaxis:

TodoDC = new DataContextBase("Data Source='" + DatabaseFilename + "'" +
   (DatabasePassword.Length == 0 ? "" : ";Password='" + DatabasePassword + "'"));

No sobra recordar que CE está basado en un archivo local con extensión *.sdf y que éste archivo para WP7 se guarda en el IsolatedStorage que tiene la aplicación. El siguiente paso lógico (como en cualquier ORM) es “mapear” nuestros objetos de negocio o entidades a objetos de la base de datos, esto quiere decir que debemos agregar atributos a nuestras clases para que puedan representar registros en una tabla, por ejemplo:

[Table]
public partial class Task
{
    public TaskStatus Status { get; set; }

    public System.Guid ProjectID { get; set; } 

    public System.Nullable DueDate { get; set; }
}

El último paso consiste en ejecutar la sentencia DML que necesitemos, por ejemplo, utilizando LINQ-to-SQL, agregar un registro a la tabla Task sería simplemente utilizando objetos mapeados, así:

...
// Create an initial task
Task items = new Task();
items.ItemID = Guid.NewGuid();
items.Title = "Welcome to the \"Todo\" application!";
items.Completed = true;
todo.Items.InsertOnSubmit(items);

todo.SubmitChanges();
.

Fácil, no? . En general esto bueno para los desarrolladores de aplicaciones, pero en especial para las aplicaciones empresariales o aquellas con gran dependencia de datos. Para más información sobre:

IsolatedStorage: http://wp.me/p17pRQ-5

SQL Server CE: http://tinyurl.com/3q4hgu3

SQL Server CE en WP7: tutorial “Using local database in To-do application” del “Windows Phone codenamed Mango Training Course”

Saludos,

Javier Andrés Cáceres Alvis
Microsoft MVP – Windows Phone

Contenido de la Sesión: Desarrollo en C# para WP7

Hola a todos,

El pasado 16 de Agosto de 2011 presenté en Microsoft una sesión introductoria sobre desarrollo en C# para Windows Phone. En dicha sesión se utilizó el siguiente material:

Presentación: 00-VistazoWP7.pdf http://tinyurl.com/43t69mk

Código de ejemplo de Navegación: 02-Navegacion.zip http://tinyurl.com/3wetm7z

Código fuente del ejemplo de Push Notifications disponible en el training kit de WP7:  http://msdn.microsoft.com/en-us/gg266499

Quiero compartirles algunas fotos de la sesión:

El pase de diapositivas requiere JavaScript.

Saludos y nos vemos en la siguiente sesión,

Javier Andrés Cáceres Alvis
Microsoft MVP – Windows Phone

Próximamente: Charla de Desarrollo en C# para WP7

Este Martes 16 y 22 de Agosto de 2011 estaré en Microsoft Colombia en el espacio {Activa} “tu conocimiento” presentando dos sesiones sobre desarrollo en C# para Windows Phone 7.

Las sesiones y su contenido son:

Sesión: 16 de Agosto
Conoce los aspectos básicos de la programación para Windows Phone 7.
Sesión: 23 de Agosto
Descubre las novedades incluidas en la versión Mango de Windows Phone 7

Estas charlas son gratuitas y es una excelente oportunidad para aprender y compartir. Incríbete en: http://www.microsoft.com/colombia/activa/eventos_desarrolladores/activa.html

Si quieres conocer más sobre las sesiones puedes revisar la primera versión de las mismas presentadas por primer vez en Mayo del 2010: http://wp.me/p17pRQ-a

Saludos,

Javier Andrés Cáceres Alvis
Microsoft MVP – Windows Phone

Crea un blog o un sitio web gratuitos con WordPress.com.

Subir ↑