Interactuar con Windows MarketPlace desde Windows Phone 7

Microsoft al crear el nuevo sistema operativo para movilidad, generó a su vez el portal MarketPlace, donde puede encontrar todo lo necesario para el citado sistema operativo. En un terminal en el que este instalado WP7 accedes a MarketPlace a través de los Hub o el navegador. Pero mi inquietud surgió cuando queria interactuar de forma personalizada con el portal. Para ello voy a exponeros como podéis interactuar desde un terminal con WP7 en MarketPlace.

Comenzaremos creando desde Visual Studio 2010 un nuevo proyecto.

image 

Elegimos Windows Phone Application dentro de las plantillas Silverlight for Windows Phone, como podemos observar en la anterior imagen. Nombraremos dicho proyecto como MarketPlace para su fácil reconocimiento.

En el proyecto que hemos creado voy a crear una carpeta en la que incluiré los iconos con los que el usuario final va a interactuar desde el terminal. Los iconos que utilizaremos son los de aplicaciones, música, búsqueda y comentarios de usuarios. Podéis descargaros el paquete de iconos aquí

image

Debemos de cambiar en cada uno de los iconos la propiedad Build Action al valor Content y la propiedad Copy to Output Directory al valor Copy if newer.

image

Seguidamente vamos a acceder al diseño de nuestra aplicación (MainPage.xaml) para introducir los distintos iconos en el menú destinado para tal fin. Como puedes observar por defecto la Barra de iconos aparece comentada. Simplemente debemos des comentarla y añadir el siguiente fragmento de código:

  1. <phone:PhoneApplicationPage.ApplicationBar>
  2.         <shell:ApplicationBar IsVisible=»True» IsMenuEnabled=»True»>
  3.             <shell:ApplicationBarIconButton x:Name=»MarketButton»
  4.            IconUri=»/AppBarIcons/appbar.folder.rest.png»
  5.            Text=»market» />
  6.             <shell:ApplicationBarIconButton x:Name=»MusicButton»
  7.            IconUri=»/AppBarIcons/appbar.feature.video.rest.png»
  8.            Text=»music» />
  9.             <shell:ApplicationBarIconButton x:Name=»SearchButton»
  10.            IconUri=»/AppBarIcons/appbar.feature.search.rest.png»
  11.            Text=»search» />
  12.             <shell:ApplicationBarIconButton x:Name=»ReviewButton»
  13.            IconUri=»/AppBarIcons/appbar.share.rest.png»
  14.            Text=»reviews» />
  15.  
  16.         </shell:ApplicationBar>
  17.     </phone:PhoneApplicationPage.ApplicationBar>

Seguidamente vamos añadir el controlador del evento clic para cada uno de los iconos.

image

Siendo el resultado final del código de los distintos iconos el siguiente:

  1. <phone:PhoneApplicationPage.ApplicationBar>
  2.         <shell:ApplicationBar IsVisible=»True» IsMenuEnabled=»True»>
  3.             <shell:ApplicationBarIconButton x:Name=»MarketButton»
  4.            IconUri=»/AppBarIcons/appbar.folder.rest.png»
  5.            Text=»market» Click=»MarketButton_Click»/>
  6.             <shell:ApplicationBarIconButton x:Name=»MusicButton»
  7.            IconUri=»/AppBarIcons/appbar.feature.video.rest.png»
  8.            Text=»music» Click=»MusicButton_Click»/>
  9.             <shell:ApplicationBarIconButton x:Name=»SearchButton»
  10.            IconUri=»/AppBarIcons/appbar.feature.search.rest.png»
  11.            Text=»search» Click=»SearchButton_Click»/>
  12.             <shell:ApplicationBarIconButton x:Name=»ReviewButton»
  13.            IconUri=»/AppBarIcons/appbar.share.rest.png»
  14.            Text=»reviews» Click=»ReviewButton_Click»/>
  15.  
  16.         </shell:ApplicationBar>
  17.     </phone:PhoneApplicationPage.ApplicationBar>

Presionamos con el botón derecho sobre el proyecto MainPage.xaml  y elegimos la opción View Code de este modo accedemos a el código Behind de nuestra aplicación.

Debemos referenciar las librería que permite realizar el acceso a MarketPlace, ya que es una de las tareas que tiene asignada por defecto WP7. Introducimos la referencia:

using Microsoft.Phone.Tasks;

Ahora vamos a introducir las diferentes acciones que van a realizar los iconos al ser presionados.Comenzamos por el icono de MarketPlace que nos presentará la página de inicio de dicho portal con las principales novedades.

  1. private void MarketButton_Click(object sender, EventArgs e)
  2.         {
  3.             MarketplaceHubTask marketPlace = new MarketplaceHubTask();
  4.             marketPlace.ContentType = MarketplaceContentType.Applications;
  5.             marketPlace.Show();
  6.  
  7.         }

Seguidamente aplicaremos el código correspondiente para el botón Música, que abrirá el Hub relacionado con toda la música existente en MarketPlace:

  1. private void MusicButton_Click(object sender, EventArgs e)
  2.         {
  3.             MarketplaceHubTask marketPlace = new MarketplaceHubTask();
  4.             marketPlace.ContentType = MarketplaceContentType.Music;
  5.             marketPlace.Show();
  6.  
  7.         }

Para el botón de búsqueda, el sistema operativo realizará una búsqueda en el portal de las aplicaciones relacionadas con las cadena introducida por el usuario final en el terminal:

  1. private void SearchButton_Click(object sender, EventArgs e)
  2.         {
  3.             MarketplaceSearchTask marketSearch = new MarketplaceSearchTask();
  4.             marketSearch.ContentType = MarketplaceContentType.Applications;
  5.             marketSearch.SearchTerms = «Photo»;
  6.             marketSearch.Show();
  7.  
  8.         }

Finalmente el botón Review permitirá ver los comentarios de las aplicaciones utilizadas por los diferentes usuarios, para ello introducimos el siguiente código:

 

  1. private void ReviewButton_Click(object sender, EventArgs e)
  2.         {
  3.             MarketplaceReviewTask marketReview = new MarketplaceReviewTask();
  4.             marketReview.Show();
  5.  
  6.         }

Ahora solo nos queda probar la interactuación personalizada de nuestro terminal con MarketPlaces, para ello ejecutamos nuestro proyecto (F5):

image            image            image

Springboard Series Tour en CESNAVARRA

¿Conoces el Springboard Series Tour? Es el evento para los profesionales de Sistemas TIC, gerentes y directores de Sistemas de cualquier empresa y  cualquier persona en general interesada en la mejor administración de sus sistemas informáticos.

La gira de este año enseñará todo lo que hace falta conocer para desplegar Windows7 y Office 2010 sin problemas, como gestionar los diversos accesos a nuestros sistemas de empresa con seguridad y confianza y todo lo que necesitas saber para virtualizar aplicaciones.

Además, tenemos todo un elenco de ponentes de primera fila:

– Miguel Hernández

– Paulo Días

– Fernando Guillot

– David Nudelman

– Dani Alonso

 

image   image   image   image   image

Anímate y comparte con nosotros una jornada que ha sido un éxito en toda Europa y que por primera vez traemos a Pamplona.

Toda la información de la jornada está disponible en este enlace de nuestra página web

Tipos de estilos en WPF & Silverlight

  • Estilo Heredado:

Permite definir un estilo como recurso para personalizar cualquier control de la interfaz de usuario.

  • Definición:
  1. <Style x:Key="estilo1" >
  2.             <Setter Property="Control.FontFamily" Value="Arial"/>
  3.             <Setter Property="Control.FontSize" Value="22"/>
  4.             <Setter Property="Control.Background" Value="Red"/>
  5.         </Style>

  • Aplicación:
  1. <Button Content="Pincha Aquí!!" Height="54" HorizontalAlignment="Left"
  2.                 Margin="134,132,0,0" Name="button1" VerticalAlignment="Top" Width="105"
  3.                 Style="{StaticResource estilo1}" />

 

  • Estilo por tipo

Permite definir un estilo como recurso para personalizar cualquier el tipo de control que decidamos.

  • Definición:
  1. <Style x:Key="estilo2" TargetType="TextBlock">
  2.             <Setter Property="Control.FontFamily" Value="Broadway"/>
  3.             <Setter Property="Control.FontSize" Value="30"/>
  4.             <Setter Property="Control.Background" Value="Orange"/>
  5.         </Style>

  • Aplicación:
  1. <TextBlock Height="130" HorizontalAlignment="Left" Margin="156,0,0,0" Name="textBlock1" Text="Bienveidos a WPF"
  2.                    VerticalAlignment="Top" Width="308" Style="{StaticResource estilo2}" />

  • Estlo por Tigger

Permite definir un estilo como recurso y aplicarlo en función de un disparador de un evento(Trigger), hay dos tipo de esta clase:

  • Trigger por Evento:

Este tipo de evento permite el cambio de las propiedades de un objeto cuando ocurre un evento. Pero además permite la realización de acciones dentro del estilo como por ejemplo realizar una animación del objeto sobre el que se va aplicar el estilo.

  • Definición:
  1. <Style x:Key="evento" TargetType="Rectangle">
  2.             <Setter Property="Fill" Value="RoyalBlue"/>
  3.             <Style.Triggers>
  4.                 <EventTrigger RoutedEvent="MouseEnter">
  5.                     <EventTrigger.Actions>
  6.                         <BeginStoryboard>
  7.                             <Storyboard>
  8.                                 <DoubleAnimation Duration="0:0:0.5" Storyboard.TargetProperty="Opacity" To="0">
  9.                                 </DoubleAnimation>
  10.                             </Storyboard>
  11.                         </BeginStoryboard>
  12.                     </EventTrigger.Actions>
  13.                 </EventTrigger>
  14.                 <EventTrigger RoutedEvent="MouseLeave">
  15.                     <EventTrigger.Actions>
  16.                         <BeginStoryboard>
  17.                             <Storyboard>
  18.                                 <DoubleAnimation Duration="0:0:0.5" Storyboard.TargetProperty="Opacity" To="1">
  19.                                 </DoubleAnimation>
  20.                             </Storyboard>
  21.                         </BeginStoryboard>
  22.                     </EventTrigger.Actions>
  23.                 </EventTrigger>
  24.             </Style.Triggers>
  25.             
  26.         </Style>

  • Aplicación:
  1. <Rectangle Height="200" Width="200" Fill="Black" Style="{StaticResource evento}"></Rectangle>

  • Trigger por Datos:

Permite la transformación de las propiedades de un control, basándose en los datos introducidos en otro control diferente.

Definición:

  1. <Style x:Key="datos" TargetType="Rectangle">
  2.             <Setter Property="Fill" Value="BurlyWood"/>
  3.             <Style.Triggers>
  4.                 <DataTrigger Binding="{Binding ElementName=Entrada,Path=Text}" Value="Rojo">
  5.                     <Setter Property="Fill" Value="Red"></Setter>
  6.                 </DataTrigger>
  7.                 <DataTrigger Binding="{Binding ElementName=Entrada,Path=Text}" Value="Azul">
  8.                     <Setter Property="Fill" Value="Blue"></Setter>
  9.                 </DataTrigger>
  10.                 <DataTrigger Binding="{Binding ElementName=Entrada,Path=Text}" Value="Verde">
  11.                     <Setter Property="Fill" Value="Green"></Setter>
  12.                 </DataTrigger>
  13.                 <DataTrigger Binding="{Binding ElementName=Entrada,Path=Text}" Value="Amarillo">
  14.                     <Setter Property="Fill" Value="Yellow"></Setter>
  15.                 </DataTrigger>
  16.                 <DataTrigger Binding="{Binding ElementName=Entrada,Path=Text}" Value="Negro">
  17.                     <Setter Property="Fill" Value="Black"></Setter>
  18.                 </DataTrigger>
  19.             </Style.Triggers>
  20.         </Style>

Aplicación:

  1. <Grid>
  2.         <TextBox Height="23" HorizontalAlignment="Left" Margin="190,46,0,0" Name="Entrada" VerticalAlignment="Top" Width="120" />
  3.         <Label Content="Elige el color:" Height="24" Name="label" HorizontalAlignment="Left"
  4.                Margin="100,44,0,0" VerticalAlignment="Top" Width="94" />
  5.         <Rectangle Stroke="red" Margin="171,134,80,35" Style="{StaticResource datos}"></Rectangle>
  6.     </Grid>

Trio de ases en Windows Phone 7

Si lo tuyo es el desarrollo en entornos de movilidad, no deberías perderte el evento del próximo 14 de diciembre que realizaremos en los Centros de Excelencia Software de Navarra, donde contaremos con: 

  • Eduardo Ortega, MVP en Movilidad perteneciente al Centro de Innovación en Movilidad de Microsoft

  • Isabel Gómez, Evangelista de Fabricantes de Software en Microsoft Ibérica

  • Iñaki Ayucar, MVP en DirectX/XNA y fundador de la empresa SIMAX

    EduOrtega     ponenteIsabelGomez     IAyucar

  •  

    Si deseas vivir una nueva experiencia a través de Windows Phone 7 y lanzarte a desarrollar en la citada plataforma deberías registrarte aquí para poder asistir.

    Utilizar Sample Data en Silverlight a través de Expression Blend

    Cuando comenzamos un nuevo proyecto , este consta de una parte de diseño y otra de desarrollo. En la mayoría de los desarrollos, el diseñador cuando  incluye elementos en la interfaz de usuario, no suele saber como estos son visualizados por el usuario final. Dicho objetivo lo consigue cuando el diseño es implementado con la parte elaborada por el desarrollador. Para este inconveniente, Microsoft nos plantea una solución a través de Expression Blend 4. Es la posibilidad de enlazar los distintos objetos de la interfaz de usuario con datos de ejemplo(Sample Data), que aunque el contenido de estos datos poco tengan que ver con el real, si que el formato de los mismos es exactamente el que va tener la aplicación final.

    Para entender esta nueva funcionalidad, vamos a empezar abriendo Expression Blend 4, bien creamos un nuevo proyecto de Silverlight o abrimos uno existente. En la parte superior derecha Expression Blend 4 nos ofrece tres pestañas (Propiedades,Recursos y Datos).

    1

    Seleccionamos la pestaña Datos, dentro de esta pestaña vamos a crear un nuevo Sample Data. Para ello presionamos en el icono que se muestra en la siguiente imagen:

    2

    Una vez presionado dicho icono elegimos la opción New Sample Data:

    3

    En la ventana emergente debemos otorgarle un nombre con el que sea fácilmente reconocible, en mi caso como mi aplicación va a basarse en los contactos de mi empresa, este será el nombre que le otorgaré como podemos ver a continuación:

    4

    Al realizar dicha acción por defecto dentro de nuestro Sample Data se ha generado una colección que consta a su vez de dos propiedades, veremos más adelante como podemos añadir, editar o eliminar estas colecciones y propiedades:

    5

    Seguidamente la colección la nombraremos como DPersonales, dentro de dicha colección vamos a introducir tres propiedades que llamaremos (Nombre, Apellidos y Dni). Por defecto se han creado dos propiedades, para añadir una nueva, debemos presionar sobre el icono más, junto a la colección DPersonales, como podemos observar en la siguiente imagen:

    6

    Por otro lado, cada una de las propiedades podemos otorgarle el forma que sea más adecuado a nuestras necesidades. Para ello desplegamos la propiedad Nombre y elegimos el formato que se muestra en la siguiente imagen:

    7

    Entrando más en materia como podemos observar no solo podemos elegir el tipo de datos que puede introducir el usuario, también podemos controlar el formato de los datos.

    A continuación vamos añadir una nueva propiedad, en este caso la nombraremos como foto. El tipo de datos ha de ser Image, por otro lado debemos elegir la ubicación donde se encuentran los citados elementos como podemos ver a continuación:

    8

    Por último, ¿cómo mostramos los datos en la interfaz de usuario?. Simplemente seleccionamos la colección DPersonales y la arrastramos al área de diseño de Expression Blend 4:

    9

    Al realizar la anterior acción, nos crea un ListBox en el que aparecen los elementos de la colección en cada uno de los items del ListBox:

    10

    El ListBox por defecto podemos personalizarlo como nosotros deseemos a través de las plantillas. Para ello vamos añadir una propiedad , pero esta ha de ser compleja debido a que dentro de esta propiedad compleja añadiremos propiedades simples.

    11

    Nombramos la propiedad compleja como Edad y dentro añadimos dos propiedades simples llamadas Años y Fecha Nacimiento. El campo Años será de tipo Número y una longitud de 3 dígitos. El campo Fecha de Nacimiento será de tipo cadena pero de formato de fecha.

    12 

    Seguidamente vamos añadir al ListBox un nuevo campo (Años). Para ello seleccionamos el citado elemento, presionamos con el botón derecho sobre el y seleccionamos Edit Additional Templates->Edit Generated Items->Edit Current. De este modo vamos a poder editar la plantilla que representa la apariencia de cada uno de los items del ListBox.

    13

    Dentro de la plantilla vamos a introducir un nuevo objeto. Accedemos a la barra de herramientas seleccionamos el objetos Textblock y lo introducimos dentro de la plantilla. El siguiente paso es enlazar dicho objeto con los datos de ejemplos de la edad (Años) como podemos observar a continuación:

    14

    Cerramos la plantilla presionado sobre le icono 16 y ejecutamos la aplicación siendo el aspecto de la misma el siguiente:

    17

    Gracias a Sample Data podemos asimilar la presentación de los datos antes de implementar nuestro diseño con la parte de desarrollo de cualquier proyecto, consiguiendo con ello la eliminación de posibles errores y el cumplimiento de tiempos.

    Vive una nueva dimensión de la movilidad con Windows Phone 7

    El próximo 14 de diciembre de 11h a 14h en los CES , podréis vivir una nueva experiencia en lo que a movilidad se refiere. Para ello contamos con el MVP en movilidad Eduardo Ortega, perteneciente al Centro de Innovación en Movilidad de Microsoft, Isabel Gómez, Evangelista de Fabricantes de Software en Microsoft Ibérica e Iñaki Ayucar, MVP en DirectX/XNA fundador de la empresa SIMAX

    Con Windows Phone 7 Microsoft ha dado una nueva dimensión a su plataforma de movilidad, centrándose además del área empresarial, en el área personal. Introduciendo “Experiencias” como XBOX LIVE, redes sociales, entornos dinámicos, etc…

    En el citado evento se mostrará cómo desarrollar entornos productivos, dinámicos y de alto rendimiento para conseguir interfaces de usuario enriquecidas mediante el uso de aplicaciones basadas en Silverlight.

    Por otro lado, podréis ver la elaboración de juegos en 3D basados en la plataforma XNA, donde se aprovecha todo el potencial Hardware que ofrecen los terminales Windows Phone 7, y el cual nos permite disfrutar de las experiencias XBOX LIVE con un nivel superior de rendimiento.

    Para obtener más información sobre el evento acceder aqui.

    WP7

    Obtener las propiedades de configuración en un terminal Windows Phone 7

    Muchas aplicaciones necesitan saber que versión es el terminal, Firmware, fabricante o la cantidad de memoria en uso. ¿cómo podemos obtener estas propiedades??

    Simplemente tenemos que usar la clase DeviceExtendedProperties, de la que podemos obtener propiedades como:

    • Fabricante del Terminal
    • Nombre del Terminal
    • Versión de Firmware del Terminal
    • Versión Hardware del Terminal
    • Memoria Total del Terminal
    • Uso actual de la memoria de la aplicación
    • Uso de la memoria de pico de la aplicación

    Simplemente tenemos que añadir al código Behind de una aplicación de Windows Phone 7 el Siguiente fragmento de código:

    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Net;
    5. using System.Windows;
    6. using System.Windows.Controls;
    7. using System.Windows.Documents;
    8. using System.Windows.Input;
    9. using System.Windows.Media;
    10. using System.Windows.Media.Animation;
    11. using System.Windows.Shapes;
    12. using Microsoft.Phone.Controls;
    13. using Microsoft.Phone.Info;
    14.  
    15. namespace Configuración
    16. {
    17.     
    18.     public partial class MainPage : PhoneApplicationPage
    19.     {
    20.         string statsString;
    21.         // Constructor
    22.         public MainPage()
    23.         {
    24.             InitializeComponent();
    25.             var deviceManufacturer = DeviceExtendedProperties.GetValue("DeviceManufacturer");
    26.             var deviceName = DeviceExtendedProperties.GetValue("DeviceName");
    27.             //var deviceUniqueId = DeviceExtendedProperties.GetValue("DeviceUniqueId");
    28.             var deviceFirmwareVersion = DeviceExtendedProperties.GetValue("DeviceFirmwareVersion");
    29.             var deviceHardwareVersion = DeviceExtendedProperties.GetValue("DeviceHardwareVersion");
    30.             var deviceTotalMemory = DeviceExtendedProperties.GetValue("DeviceTotalMemory");
    31.             var applicationCurrentMemoryUsage = DeviceExtendedProperties.GetValue("ApplicationCurrentMemoryUsage");
    32.             var applicationPeakMemoryUsage = DeviceExtendedProperties.GetValue("ApplicationPeakMemoryUsage");
    33.  
    34.             statsString = "Fabricante del Terminal: " + deviceManufacturer + "\n" +
    35.                 "Nombre del Terminal: " + deviceName + "\n" +
    36.                 "Versión de firmware del Terminal: " + deviceFirmwareVersion + "\n" +
    37.                 "Versión Hardware del Terminal: " + deviceHardwareVersion + "\n" +
    38.                 "Memoria Total del Terminal: " + deviceTotalMemory + "\n" +
    39.                 "Uso actual de la memoria de la aplicación: " + applicationCurrentMemoryUsage + "\n" +
    40.                 "Uso pico memoria de la app.: " + applicationPeakMemoryUsage;
    41.  
    42.             stats.Text = statsString;//texblock donde se presentan las configuraciones del terminal
    43.             
    44.         }
    45.         
    46.     }
    47.     
    48.  
    49. }

    El resultado en la interfaz del usuario sería el siguiente:

    WP7

    Sincronización contactos y calendario Outlook con Windows Phone 7

    Windows Phone 7 sincroniza tanto tus contactos como tu calendario a través de una cuenta compatible con Exchange ActiveSync (Protocolo de sincronización utilizado por Microsoft).

    El problema que se me ha planteado es sincronizar contactos y calendario de Outlook con Windows Phone 7. El gestor de correo no es compatible con los requerimientos mencionados con anterioridad.

    La solución, exportar tus contactos y citas del calendario a Hotmail a través de una cuenta Windows Live ID.

    Los pasos a seguir serán los siguientes:

    Exportar desde Outlook

    • En cuanto a contactos se refiere, comenzamos accediendo a Outlook 2003,07 o 10, para realizar la exportación de los contactos en un archivo de extensión .csv (contactos separados por comas, el más común).
    • Accedemos al menú Archivo->Importar y Exportar(2003-2007).
    • Seguidamente hacemos clic en exportar a un archivo y, a continuación, haga clic en siguiente.
    • Luego presionamos sobre Valores separados por comas (Windows) y, a continuación, hacemos clic en siguiente.
    • En la lista de carpetas, haga clic en la carpeta de contactos y, a continuación, haga clic en siguiente.
    • Desplácese hasta la carpeta donde desea guardar los contactos como un archivo. CSV.
    • Escriba un nombre para el archivo exportado y, a continuación, haga clic en Aceptar.
    • Haga clic en siguiente.
    • Haga clic en Finalizar

     

    • En la versión 2010 accedemos a Archivo->Abrir->Importar.

    1

    • En la ventana emergente elegimos exportar a un archivo

    2

    • Elegimos el tipo de archivo Valores separados por comas(Windows)

    3

    • Elegimos el tipo de datos que queremos exportar, en este caso los contactos.

    4

    • Por último asignamos el nombre y la ubicación de los datos a exportar como hemos vistos en las versiones 2003 y 2007.

    Importar desde Windows Live Hotmail

    • Accedemos desde nuestro terminal con Windows Phone 7, a Windows Live Hotmail.
    • Iniciamos sesión.
    • Accedemos a la sección Contactos.
    • Hacemos clic sobre Agregar personas.

    5

    • Seguidamente podemos ver los diferentes medios desde donde podemos realizar la importación de nuestros contactos(Facebook,My Spaces,Outlook,etc..)

    6

    • Seleccionamos lógicamente Outlook. Para más tarde seleccionar el archivo que hemos exportado desde Outlook.

    7

    • Una vez importados para realizar la sincronización con Windows Phone 7. Nos situamos en Configuración->Cuentas de correo electrónico. Presionamos sobre nuestra cuenta Windows Live Hotmail y aparecerá la opción Sincronizar en la pantalla del terminal.

    Conseguido!!!

    Exportar citas del Calendario de Outlook

    • Nos situamos en la sección Calendario de Outlook, seguidamente vamos a guardar el calendario que nos convenga sincronizar con Windows Phone 7. Presionamos sobre Archivo->Guardar Calendario. Finalmente otorgamos el nombre y la ubicación que deseemos, pero el formato a de ser .ics (formato que soporta Windows Live Hotmail).

    8

    • Aparecerá un mensaje para seleccionar las fechas de las citas del calendario que queremos exportar.

    11

    • Para exportar el calendario completo debemos seleccionas las opciones Calendario Completo y Detalles Completos.

    12

     

    Importar Calendario desde Windows Live Hotmail

    • Abrimos la sesión de Windows Live Hotmail, accedemos a la sección Calendario.
    • Presionamos sobre el apartado Suscribirse.

    9

    • Elegimos la opción Importar de un archivo ICS. Seleccionamos el archivo exportado desde outlook y nombramos el calendario que vamos a importar.

    10

    Y tendremos el calendario importado, ahora realizamos la sincronización de el calendario en el terminal. Nos situamos en Configuración->Cuentas de correo electrónico. Presionamos sobre nuestra cuenta Windows Live Hotmail y aparecerá la opción Sincronizar en la pantalla del terminal.

    De esta forma podemos utilizar nuestros contactos y citas de Outlook desde Windows Phone 7 utilizando como pasarela Windows Live Hotmail.

    Viajaralpaladar

    Recomendaciones para crear Interfaz de usuario en Silverlight (XAML)

    Los desarrolladores que empezáis a elaborar vuestros primeros proyectos y desarrollos en Silverlight. Deseo haceros llegar una serie de recomendaciones que son aconsejables a la hora de trabajar con el XAML de la interfaz de usuario

    1. Utiliza en todo momento estilos y plantillas. Estos elementos te ayudarán a simplificar tu desarrollo, evitando repeticiones de código y pérdida de tiempo.
    2. Agrega los estilos y plantillas en un archivo independiente, de este modo podrás compartir dichos elementos a través en toda tu aplicación. Si son específicas de una sola página, agregarlos en los recursos de dicha página.
    3. Elimina los estilos plantillas y animaciones innecesarias, estos elementos retrasan la carga de la aplicación.
    4. No utilice los espacios de nombres innecesarios "xmlns" en el archivo XAML. Esto sobrecarga el tiempo de carga de la página de Silverlight.
    5. Utiliza un nombre significativo en cada uno de los prefijos del espacio de nombres de "xmlns". Por ejemplo: xmlns:MapasLogistica es más significativo e identificables que xmlns:ML. Esto evita las múltiples declaraciones de espacios de nombres en el futuro.
    6. Cuando agreguéis un control que no tiene elementos en su interior o sea un control padre sin hijos, mejor cerrarlo con la etiqueta "/ >" en lugar de la etiqueta de cierre (</TAG>). Esto otorga limpieza a tu código XAML y facilidad de lectura por parte de otros colaboradores dentro de tu proyecto.
    7. Incluir comentarios en XAML siempre ayuda. Esto te será útil en un futuro a la hora de revisar el código que no has tocado durante un tiempo.También ayuda a personas que colaboran en tu proyecto(Diseñadores,Tester,etc.) a una fácil comprensión y con ello mejoras el tiempo de desarrollo de Software.
    8. Siempre debemos intentar utilizar el objeto Grid como el panel padre de tu aplicación.El  Grid tiene un unas características de  flexibilidad que nos hacen la vida más sencilla en cuanto a interfaz de usuario se refiere.
    9. No debes de utilizar paneles adicionales (por ejemplo, Grid, StackPanel, Wrappanel etc.) a menos que sea necesario, estos elementos necesitan un tiempo de carga mayor que otros objetos simples que ofrece Silverlight.
    10. Utilice la propiedad Visibility de los controles en lugar de la propiedad de Opacity, si lo que deseamos es ocultar el contenido de los mismos. Si otorgamos el valor cero a la propiedad Opacity de un objeto, dicho elemento no estará visible dentro de la interfaz de usuario, pero ocupa espacio en la memoria y en la interfaz de usuario.Por otro lado, la propiedad Visibility contrae el control en la interfaz de usuario, ocupando menos espacio en memoria y a su vez dejando que otros controles utilicen el espacio que este ocupa dentro de la interfaz de usuario.
    11. Siempre que vayas a diseñar la interfaz de usuario en especial animaciones utiliza Expression Blend, esta herramienta no solo te ayudará en la creación de las mismas, si no que además te permite utilizar un sin fin de opciones en un solo clic sin necesidad de incorporar código de forma manual.

    Estas son mis recomendaciones, seguro que habrá muchas más por lo que espero vuestra colaboración para ampliar la lista.