<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rodrigo Díaz Concha &#187; msdn</title>
	<atom:link href="http://rdiazconcha.com/tag/msdn/feed/" rel="self" type="application/rss+xml" />
	<link>http://rdiazconcha.com</link>
	<description>Silverlight y XAML en Español para México, Latinoamérica y España</description>
	<lastBuildDate>Thu, 02 Feb 2012 20:54:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Inauguraci&#243;n de MetroLatam.net</title>
		<link>http://rdiazconcha.com/2012/01/inauguracin-de-metrolatam-net/</link>
		<comments>http://rdiazconcha.com/2012/01/inauguracin-de-metrolatam-net/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 19:24:32 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[Conferencias]]></category>
		<category><![CDATA[MetroLatam]]></category>
		<category><![CDATA[MVP]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[latam]]></category>
		<category><![CDATA[MetroLatam.net]]></category>
		<category><![CDATA[msdn]]></category>

		<guid isPermaLink="false">http://rdiazconcha.com/?p=1487</guid>
		<description><![CDATA[Los invito cordialmente al día de mañana a la inauguración oficial de la comunidad MetroLatam.net: la primera comunidad en Español de Aplicaciones Metro y Windows 8 para desarrolladores.&#160; 
Esta inauguración se llevará a cabo el día de mañana miércoles 25 de Enero por medio de Live Meeting a las 11am hora de la Ciudad de [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://metrolatam.net" target="_blank"><img style="background-image: none; border-right-width: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="logo3" border="0" alt="logo3" align="left" src="http://rdiazconcha.com/wp-content/uploads/2012/01/logo3.png" width="117" height="178" /></a>Los invito cordialmente al día de mañana a la inauguración oficial de la comunidad <a href="http://metrolatam.net" target="_blank">MetroLatam.net</a>: la primera comunidad en Español de Aplicaciones Metro y Windows 8 para desarrolladores.&#160; </p>
<p>Esta inauguración se llevará a cabo el día de mañana miércoles 25 de Enero por medio de Live Meeting a las 11am hora de la Ciudad de México (-06:00 GMT).</p>
<p>&#160;</p>
<blockquote><p><em>MetroLatam.net es la Primera Comunidad en Español de Aplicaciones Metro y Windows 8 para Desarrolladores. Ven a la inauguración de esta comunidad en donde podrás conocer cuáles son sus objetivos y cómo puedes participar. Nos acompañarán Fernando García Loera, MVP Lead para Latinoamérica, con el tema de Reputación Digital y Eduardo Mangarelli, Director de DPE para Latinoamérica, con el tema de Windows 8 y su oportunidad para Desarrolladores Latinoamericanos. ¡Los esperamos!</em></p>
<p>La reunión se llevará a cabo el próximo miércoles <strong>25 de Enero 2011</strong>, a las 11am hora de México (-06:00 GMT), 12:00pm hora de Bogotá/Lima/Quito, 2pm hora de Buenos Aires.       </p>
<p>Para entrar a la reunión, usa el siguiente vínculo: <a href="https://www.livemeeting.com/cc/mvp_no_voip/join?id=QFT626&amp;role=attend">https://www.livemeeting.com/cc/mvp_no_voip/join?id=QFT626&amp;role=attend</a></p>
</blockquote>
<h2>Agenda</h2>
<table border="0" cellspacing="5" cellpadding="2" width="500">
<tbody>
<tr>
<td valign="top" width="76"><a href="http://twitter.com/rdiazconcha" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" src="https://si0.twimg.com/profile_images/322130645/twitterProfilePhoto.jpg" /></a></td>
<td valign="top" width="225">Rodrigo Díaz Concha, Silverlight MVP, MetroLatam.net</td>
<td valign="top" width="197">“¿Qué es MetroLatam.net y cómo participar?”</td>
</tr>
<tr>
<td valign="top" width="76"><a href="http://twitter.com/ferglo" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" src="https://twimg0-a.akamaihd.net/profile_images/845867175/Fer.png" width="73" height="79" /></a></td>
<td valign="top" width="225">Fernando García Loera, MVP Lead para Latinoamérica, Microsoft Corporation</td>
<td valign="top" width="197">“Reputación Profesional y el Programa Microsoft MVP”</td>
</tr>
<tr>
<td valign="top" width="76"><a href="http://twitter.com/emangare" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; border-top: 0px; border-right: 0px; padding-top: 0px" border="0" src="https://si0.twimg.com/profile_images/1104253688/IMG_3560_2_-_Copy__800x710_.jpg" width="74" height="66" /></a></td>
<td valign="top" width="225">Eduardo Mangarelli, Director de DPE para Latinoamérica, Microsoft Corporation</td>
<td valign="top" width="197">“Windows 8 y su oportunidad para Desarrolladores Latinoamericanos”</td>
</tr>
<tr>
<td valign="top" width="76">&nbsp;</td>
<td valign="top" width="225">&nbsp;</td>
<td valign="top" width="197">Sesión de Preguntas y Respuestas</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<p> ¡Los esperamos!</p>
]]></content:encoded>
			<wfw:commentRss>http://rdiazconcha.com/2012/01/inauguracin-de-metrolatam-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Encuesta: Temas para M&#243;dulos Avanzados en MVA</title>
		<link>http://rdiazconcha.com/2012/01/encuesta-temas-para-mdulos-avanzados-en-mva/</link>
		<comments>http://rdiazconcha.com/2012/01/encuesta-temas-para-mdulos-avanzados-en-mva/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 04:36:41 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[MVP]]></category>
		<category><![CDATA[Silverlight 4]]></category>
		<category><![CDATA[Windows Phone 7.1]]></category>
		<category><![CDATA[capacitación]]></category>
		<category><![CDATA[latam]]></category>
		<category><![CDATA[msdn]]></category>
		<category><![CDATA[mva]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://rdiazconcha.com/?p=1464</guid>
		<description><![CDATA[Estoy preparando los temas para los módulos avazados de las carreras de Silverlight y Windows Phone en Microsoft Virtual Academy (MVA).  Por este motivo y para poder conocer el interés de los diversos temas que se pueden tocar, he creado las siguientes encuestas, las cuales tienen como objetivo el que me ayuden a conocer qué [...]]]></description>
			<content:encoded><![CDATA[<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; float: right; padding-top: 0px; border: 0px;" title="Question" src="http://rdiazconcha.com/wp-content/uploads/2012/01/Question.png" alt="Question" width="240" height="232" align="right" border="0" />Estoy preparando los temas para los módulos avazados de las carreras de <a href="http://www.microsoftvirtualacademy.com/tracks/microsoft-silverlight" target="_blank">Silverlight</a> y <a href="http://www.microsoftvirtualacademy.com/tracks/windows-phone-7" target="_blank">Windows Phone</a> en Microsoft Virtual Academy (MVA).  Por este motivo y para poder conocer el interés de los diversos temas que se pueden tocar, he creado las siguientes encuestas, las cuales tienen como objetivo el que me ayuden a conocer qué temas se deberían incluir y que otros, tal vez, no son tan necesarios.</p>
<h2>Carrera de Silverlight</h2>
<a href="http://polldaddy.com/poll/5810610">Take Our Poll</a>
<p>&nbsp;</p>
<h2>Carrera de Windows Phone</h2>
<a href="http://polldaddy.com/poll/5810624">Take Our Poll</a>
<p>Las encuestas estarán abiertas durante algunas semanas.  Con esto me ayudarán a definir los temas y posteriormente abrir los nuevos módulos en MVA.</p>
<p>¡Les agradezco de antemano su valiosa colaboración!</p>
]]></content:encoded>
			<wfw:commentRss>http://rdiazconcha.com/2012/01/encuesta-temas-para-mdulos-avanzados-en-mva/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nueva carrera en Microsoft Virtual Academy: Windows Phone 7.1 (Mango)</title>
		<link>http://rdiazconcha.com/2011/11/nueva-carrera-en-microsoft-virtual-academy-windows-phone-7-1-mango/</link>
		<comments>http://rdiazconcha.com/2011/11/nueva-carrera-en-microsoft-virtual-academy-windows-phone-7-1-mango/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 15:03:02 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[MVP]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Silverlight 4]]></category>
		<category><![CDATA[Windows Phone 7.1]]></category>
		<category><![CDATA[capacitación]]></category>
		<category><![CDATA[entrenamiento]]></category>
		<category><![CDATA[latam]]></category>
		<category><![CDATA[msdn]]></category>
		<category><![CDATA[mva]]></category>

		<guid isPermaLink="false">http://rdiazconcha.com/2011/11/nueva-carrera-en-microsoft-virtual-academy-windows-phone-7-1-mango/</guid>
		<description><![CDATA[Tengo el gusto de darles a conocer la disponibilidad de una nueva carrera en el Microsoft Virtual Academy (MVA): La carrera de Windows Phone 7.1 Mango.
Esta es la descripción de la carrera:
Windows Phone es la nueva versión del sistema operativo móvil de Microsoft, el cual es un sistema operativo moderno, fresco y novedoso que te [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://rdiazconcha.com/wp-content/uploads/2011/11/mva.png"><img style="background-image: none; border-right-width: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="mva" border="0" alt="mva" align="left" src="http://rdiazconcha.com/wp-content/uploads/2011/11/mva_thumb.png" width="155" height="70" /></a>Tengo el gusto de darles a conocer la disponibilidad de una nueva carrera en el <a href="http://www.microsoftvirtualacademy.com/Home.aspx" target="_blank">Microsoft Virtual Academy</a> (MVA): La <a href="http://www.microsoftvirtualacademy.com/tracks/windows-phone-7" target="_blank">carrera de Windows Phone 7.1 Mango</a>.</p>
<p>Esta es la descripción de la carrera:</p>
<blockquote><p>Windows Phone es la nueva versión del sistema operativo móvil de Microsoft, el cual es un sistema operativo moderno, fresco y novedoso que te permite realizar más en menos tiempo y estar al tanto de las cosas que más te importan de una más rápida y divertida. Con la última versión 7.1 conocida con el nombre clave “Mango”, el construir aplicaciones para el teléfono jamás había sido tan fácil ya que una de las plataformas de<a href="http://www.microsoftvirtualacademy.com/tracks/windows-phone-7" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="WP-Logo1" border="0" alt="WP-Logo1" align="right" src="http://rdiazconcha.com/wp-content/uploads/2011/11/WP-Logo1.png" width="300" height="84" /></a> desarrollo soportadas es <a href="http://silverlight.net" target="_blank">Silverlight</a> 4: una plataforma robusta, moderna y altamente funcional.&#160;&#160; En esta Carrera estudiarás los conceptos fundamentales de Silverlight para Windows Phone Mango y conocerás cómo aprovechar al máximo las características específicas de este tipo de dispositivos en beneficio de tus aplicaciones.</p>
</blockquote>
<p>La carrera tiene en este momento los siguientes módulos:</p>
<p><strong>Nivel Básico</strong></p>
<ul>
<li>Capítulo I: Fundamentos de Silverlight y Windows Phone </li>
<li>Capítulo II: Layout y Entrada Táctil </li>
<li>Capítulo III: Visuales y Medios </li>
<li>Capítulo IV: Publicación de Aplicaciones </li>
</ul>
<p><strong>Nivel Intermedio</strong></p>
<ul>
<li>Capítulo V: Trabajando con Datos </li>
<li>Capítulo VI: Sensores y otras características especiales del teléfono </li>
<li>Capítulo VII: Ciclo de Vida de las Aplicaciones Windows Phone </li>
</ul>
<p>Al estudiar las diferentes carreras de <a href="http://www.microsoftvirtualacademy.com/Home.aspx" target="_blank">MVA</a> puedes incrementar tus habilidades como desarrollador en las diversas tecnologías incluidas. Las carreras en MVA son una excelente opción de entrenamiento, son completamente gratuitas y además puedes estudiar a tu propio ritmo.</p>
<p>Los invito cordialmente a que se registren <a href="http://www.microsoftvirtualacademy.com/tracks/windows-phone-7" target="_blank">en esta dirección</a>, estudien la carrera y demuestren sus conocimientos en esta extraordinaria plataforma de desarrollo!</p>
<p>Espero les agrade.</p>
<p>Salu2!</p>
]]></content:encoded>
			<wfw:commentRss>http://rdiazconcha.com/2011/11/nueva-carrera-en-microsoft-virtual-academy-windows-phone-7-1-mango/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Silverlight para Windows Phone Mango: Fast Application Switching (FAS)</title>
		<link>http://rdiazconcha.com/2011/11/silverlight-para-windows-phone-mango-fast-application-switching-fas/</link>
		<comments>http://rdiazconcha.com/2011/11/silverlight-para-windows-phone-mango-fast-application-switching-fas/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 07:44:36 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Silverlight 4]]></category>
		<category><![CDATA[Windows Phone 7.1]]></category>
		<category><![CDATA[Mango]]></category>
		<category><![CDATA[msdn]]></category>
		<category><![CDATA[mva]]></category>

		<guid isPermaLink="false">http://rdiazconcha.com/2011/11/silverlight-para-windows-phone-mango-fast-application-switching-fas/</guid>
		<description><![CDATA[En la versión inicial de Windows Phone 7, cuando una aplicación estaba activa pero era interrumpida por cualquier que sea la causa (una llamada entrante, un mensaje del sistema, el usuario apretó el botón “Atrás” del teléfono, el usuario apretó el menú de inicio, etcétera), la aplicación entraba en un estado de suspensión, conocido como [...]]]></description>
			<content:encoded><![CDATA[<p>En la versión inicial de Windows Phone 7, cuando una aplicación estaba activa pero era interrumpida por cualquier que sea la causa (una llamada entrante, un mensaje del sistema, el usuario apretó el botón “Atrás” del teléfono, el usuario apretó el menú de inicio, etcétera), la aplicación entraba en un estado de suspensión, conocido como <a href="http://blogs.ligasilverlight.com/2011/06/ejecutando-una-aplicacin-en-segundo-plano-tombstoning/" target="_blank">Tombstoning</a>.</p>
<p>Este proceso de <a href="http://blogs.ligasilverlight.com/2011/06/ejecutando-una-aplicacin-en-segundo-plano-tombstoning/" target="_blank">Tombstoning</a> guardaba a disco el estado de la aplicación, de tal manera que si apretábamos nuevamente el botón “Atrás” del teléfono para regresar a la aplicación, la aplicación era rescatada de su estado desde el disco nuevamente hacia la memoria y se reactivaba para poder seguir usándola.&#160; Este proceso era sumamente tardado y no brindaba la mejor experiencia de usuario posible.</p>
<p><a href="http://rdiazconcha.com/wp-content/uploads/2011/11/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://rdiazconcha.com/wp-content/uploads/2011/11/image_thumb.png" width="300" height="202" /></a>En Windows Phone Mango se introduce un concepto denominado Fast Application Switching (o FAS, por sus siglas en el idioma inglés).&#160; Este concepto cambia el ciclo de vida de las aplicaciones de Windows Phone, ya que cuando una aplicación está ejecutando y es interrumpida (nuevamente, por cualquiera que sea la causa), la aplicación no entra a Tombstoning inmediatamente sino que entra en un estado denominado “Dormant”, de tal manera que continúa en memoria pero sin consumir recursos del CPU del teléfono.&#160; De esta forma, al pulsar el botón “Atrás” para regresar a la aplicación, la restauración es casi instantánea ya que no tiene que leer el estado desde el disco sino de la memoria, siendo este mecanismo una característica muy importante en Windows Phone Mango para brindar una experiencia de usuario superior a la versión inicial del sistema operativo.    </p>
<h2>Propiedad IsApplicationInstancePreserved</h2>
<p>En el objeto de argumentos del eventos Activated de la aplicación, se ha agregado en Windows Phone Mango la propiedad IsApplicationInstancePreserved, la cual indica si la aplicación está siendo restaurada del estado Dormant (valor true) o se está restaurando desde su estado de Tombstoning (valor false).</p>
<blockquote><p>La idea detrás de esta propiedad es poder determinar si restauramos el estado de la aplicación o no.&#160; El algoritmo es sencillo: si la aplicación está restaurándose desde el estado Dormant, no tenemos que hacer nada, solo si está restaurándose desde el estado Tombstoning.</p>
</blockquote>
<p>Para poder determinar este valor dentro de las páginas de nuestras aplicaciones, podemos exponer un campo estático de tipo bool dentro de la clase de aplicación, el cual podrá ser inicializado justamente durante el evento Activated.&#160; El siguiente fragmento de código muestra cómo se implementa un campo público estático que guardará el valor de la propiedad IsApplicationInstancePreserved.&#160; En este caso, el nombre del campo es el mismo pero esto no es necesario.</p>
<pre class="csharpcode"><span class="kwrd">private</span> <span class="kwrd">void</span> Application_Activated(<span class="kwrd">object</span> sender, ActivatedEventArgs e)
{
    IsApplicationInstancePreserved = e.IsApplicationInstancePreserved;
}

<span class="kwrd">public</span> <span class="kwrd">static</span> <span class="kwrd">bool</span> IsApplicationInstancePreserved;</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<p>Ya dentro de la página en cuestión, podemos leer el valor de este campo para realizar cualquier tipo de algoritmo relacionado.&#160; En este caso, simplemente estoy mostrando los valores “Dormant” o “Tombstoning” según sea el caso.</p>
<pre class="csharpcode"><span class="kwrd">protected</span> <span class="kwrd">override</span> <span class="kwrd">void</span> OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    <span class="kwrd">base</span>.OnNavigatedTo(e);

    texto.Text = App.IsApplicationInstancePreserved ? <span class="str">&quot;Dormant&quot;</span> : <span class="str">&quot;Tombstoning&quot;</span>;
}</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<p>La siguiente ilustración, muestra la aplicación de ejemplo corriendo después de haber sido restaurada desde el estado Dormant.</p>
<p><a href="http://rdiazconcha.com/wp-content/uploads/2011/11/SNAGHTML2a4beba.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SNAGHTML2a4beba" border="0" alt="SNAGHTML2a4beba" src="http://rdiazconcha.com/wp-content/uploads/2011/11/SNAGHTML2a4beba_thumb.png" width="221" height="400" /></a></p>
<h2>Resumen</h2>
<p>Con Fast Application Switching (o FAS, por sus siglas en inglés), nuestras aplicaciones de Silverlight para Windows Phone Mango son más responsivas y brindan una mejor experiencia de usuario ya que su restauración es casi inmediata, a diferencia de la versión inicial de Windows Phone 7, en donde se tenía que restaurar el estado de cada aplicación desde disco.&#160; Esta característica ya es parte del sistema operativo, por lo que únicamente nos queda como desarrolladores determinar en el evento Activated si la aplicación está siendo restaurada desde el estado Dormant o el estado Tombstoning.</p>
]]></content:encoded>
			<wfw:commentRss>http://rdiazconcha.com/2011/11/silverlight-para-windows-phone-mango-fast-application-switching-fas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverlight para Windows Phone Mango: Bases de Datos locales con SQL Server CE&#8211;Parte 2</title>
		<link>http://rdiazconcha.com/2011/11/silverlight-para-windows-phone-mango-bases-de-datos-locales-con-sql-server-ceparte-2/</link>
		<comments>http://rdiazconcha.com/2011/11/silverlight-para-windows-phone-mango-bases-de-datos-locales-con-sql-server-ceparte-2/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 07:07:19 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Silverlight 4]]></category>
		<category><![CDATA[Windows Phone 7.1]]></category>
		<category><![CDATA[Mango]]></category>
		<category><![CDATA[msdn]]></category>
		<category><![CDATA[mva]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://rdiazconcha.com/2011/11/silverlight-para-windows-phone-mango-bases-de-datos-locales-con-sql-server-ceparte-2/</guid>
		<description><![CDATA[En el artículo anterior, mencioné que es a través de LINQ para SQL el mecanismo por el cual interactuamos completamente con la base de datos de nuestras aplicaciones de Silverlight para Windows Phone Mango.&#160; En este artículo veremos cómo programáticamente podemos crear una base de datos e interactuar completamente con ella.
Definición de la base de [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://rdiazconcha.com/2011/10/silverlight-para-windows-phone-mango-bases-de-datos-locales-con-sql-server-ceparte-1/" target="_blank">En el artículo anterior</a>, mencioné que es a través de LINQ para SQL el mecanismo por el cual interactuamos completamente con la base de datos de nuestras aplicaciones de Silverlight para Windows Phone Mango.&#160; En este artículo veremos cómo programáticamente podemos crear una base de datos e interactuar completamente con ella.</p>
<h2>Definición de la base de datos</h2>
<p>Para definir el modelo de la base de datos para nuestras aplicaciones de Windows Phone Mango, debemos utilizar la técnica de “Primero el Código” (o “Code First” como se le conoce en el idioma inglés).&#160; Esta técnica te permite definir tu modelo por medio de clases y atributos.&#160; Una vez definidas las clases, éstas pueden ser utilizadas para generar el esquema de la base de datos o mapearse a una base de datos ya existente.</p>
<h3>Creación de las tablas</h3>
<p>Para definir una tabla para la base de datos debemos utilizar los atributos TableAttribute y ColumnAttribute, ambos del Espacio de Nombres System.Data.Linq.Mapping.&#160; Estos atributos, respectivamente, permiten identificar que una clase será una tabla dentro de la base de datos y que una propiedad dentro de esa clase será una columna dentro de la tabla.</p>
<blockquote><p>Estos atributos mencionados están incluidos en el ensamblado System.Data.Linq.dll, por lo que deberás incluir una referencia a él en tu proyecto para utilizarlos.</p>
</blockquote>
<p>El siguiente fragmento de código muestra la declaración de una tabla llamada Persona, la cual tendrá tres columnas: ID, Nombre y Empresa.</p>
<pre class="csharpcode">[Table]
<span class="kwrd">public</span> <span class="kwrd">class</span> Persona
{
    [Column(IsDbGenerated = <span class="kwrd">true</span>, IsPrimaryKey = <span class="kwrd">true</span>)]
    <span class="kwrd">public</span> <span class="kwrd">int</span> ID { get; set; }

    [Column]
    <span class="kwrd">public</span> <span class="kwrd">string</span> Nombre { get; set; }

    [Column(CanBeNull = <span class="kwrd">true</span>)]
    <span class="kwrd">public</span> <span class="kwrd">string</span> Empresa { get; set; }
}</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<h3>Creación del contexto de datos</h3>
<p>El contexto de datos es un objeto que representa a la base de datos.&#160; El contexto de datos contiene las tablas, que a su vez contienen las columnas que definen dicha tabla.</p>
<p>Para crear un contexto de datos, debemos crear una clase que herede de la clase base DataContext, disponible en el Espacio de Nombres System.Data.Linq.&#160; Será en esta clase en donde debemos declarar las tablas que tendrá la base de datos.&#160; Asimismo, la clase que definamos podrá invocar alguno de los constructores de la clase base DataContext para pasar como parámetro la cadena de conexión que indique a cuál base de datos estamos interesados en conectarnos.</p>
<p>El siguiente código muestra la declaración de la clase PersonaDataContext, la cual hereda de System.Data.Linq.DataContext y que establece que existirá una tabla llamada Personas.</p>
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">class</span> PersonaDataContext : DataContext
{
    <span class="kwrd">public</span> Table&lt;Persona&gt; Personas;

    <span class="kwrd">public</span> PersonaDataContext(<span class="kwrd">string</span> connectionString) : <span class="kwrd">base</span>(connectionString) { }
}</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<p>Nota cómo el constructor de esta clase a su vez está invocando el constructor de su clase base.&#160; De esta manera permitiríamos utilizar una u otra cadena de conexión para reutilizar este contexto de datos en diferentes escenarios.</p>
<blockquote>
<p>La cadena de conexión puede ser cualquiera de las siguientes opciones: una cadena con el prefijo isostore:/, el nombre del archivo de base de datos dentro del Almacenamiento Aislado o una cadena de conexión completa.</p>
</blockquote>
<h3>Creación de la base de datos</h3>
<p>Para crear físicamente la base de datos en el Almacenamiento Aislado de la aplicación dentro del teléfono, debemos utilizar el método CreateDatabase() del contexto de datos.&#160; Para complementar esta tarea, también podemos ejecutar el método DatabaseExists() para determinar si la base de datos ya ha sido creada con anterioridad.</p>
<p>Para poder probar esta funcionalidad, he creado otra clase llamada PersonaDatabase, la cual encapsula la funcionalidad de creación física de la base de datos para la aplicación, tal y como lo muestra el siguiente código.</p>
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">class</span> PersonaDatabase
{
    <span class="kwrd">public</span> <span class="kwrd">static</span> PersonaDataContext GetDatabase()
    {
        var context = <span class="kwrd">new</span> PersonaDataContext(<span class="str">&quot;isostore:/personas.sdf&quot;</span>);

        <span class="kwrd">if</span> (!context.DatabaseExists())
        {
            context.CreateDatabase();
        }

        <span class="kwrd">return</span> context;
    }
}</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<h3>Inserción de datos</h3>
<p>Una vez creada la base de datos, podemos insertar datos a sus respectivas tablas, todo esto por medio de los mismos mecanismos que LINQ para SQL ofrece.&#160; En el siguiente código se demuestra la creación de 1000 personas que serán finalmente insertadas en la tabla Personas dentro de la base de datos que creamos en pasos anteriores.&#160; Nota el uso del método SubmitChanges(); este método se asegura de finalizar la transacción hacia el motor de base de datos.</p>
<pre class="csharpcode"><span class="kwrd">private</span> <span class="kwrd">static</span> <span class="kwrd">void</span> CrearDatos()
{
    var db = PersonaDatabase.GetDatabase();
    <span class="kwrd">for</span> (<span class="kwrd">int</span> i = 0; i &lt; 1000; i++)
    {
        db.Personas.InsertOnSubmit(<span class="kwrd">new</span> Persona()
        {
            Nombre = <span class="str">&quot;Persona &quot;</span> + i.ToString(),
            Empresa = <span class="str">&quot;MVA&quot;</span>
        });
    }
    db.SubmitChanges();
}</pre>
<p>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
</p>
<h3>Consulta de datos</h3>
<p>La consulta de datos hacia una base de datos de SQL Server CE usando LINQ para SQL es bastante sencilla si es que ya has utilizado el lenguaje LINQ en tus aplicaciones.&#160; El siguiente fragmento de código muestra el uso del lenguaje LINQ para consultar todas aquellas persona que incluyen en su nombre el número 5.&#160; El resultado de la consulta será la fuente de datos para un control ListBox.</p>
<pre class="csharpcode"><span class="kwrd">private</span> <span class="kwrd">void</span> ConsultarDatos()
{
    var query = from persona <span class="kwrd">in</span> PersonaDatabase.GetDatabase().Personas
                <span class="kwrd">where</span> persona.Nombre.Contains(<span class="str">&quot;5&quot;</span>)
                orderby persona.ID
                select persona;

    lista.ItemsSource = query.ToList();
}</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<p>La siguiente ilustración, muestra la aplicación ejecutando y después de haber consultado los datos según el código anterior.</p>
<p><a href="http://rdiazconcha.com/wp-content/uploads/2011/11/SNAGHTML261447b.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SNAGHTML261447b" border="0" alt="SNAGHTML261447b" src="http://rdiazconcha.com/wp-content/uploads/2011/11/SNAGHTML261447b_thumb.png" width="278" height="500" /></a></p>
<blockquote>
<p>Nota: Para este ejemplo, hice override del método ToString() en la clase Persona para poder mostrar contenido significativo dentro del ListBox, sin necesidad de hacer una Plantilla de Datos; lo cual es altamente recomendable en una aplicación en la vida real, pero no es el enfoque del tema que aquí estamos tratando.</p>
</blockquote>
<h3>Actualización de datos</h3>
<p>Para actualizar los datos de una tabla de la base de datos local en una aplicación, debemos hacerlo igualmente bajo los mecanismos propios de LINQ para SQL, lo cual resulta bastante fácil.</p>
<p>Para demostrar este concepto, al proyecto de prueba he agregado una nueva página llamada Actualizacion.xaml, a la cual se navega después de seleccionar un elemento del ListBox que muestra la lista de personas.&#160; En esta nueva página se incluye un TextBox para cambiar el nombre de la persona seleccionada y finalmente, después de pulsar en el botón “Aceptar” los cambios son guardados de regreso en la base de datos con el siguiente código:</p>
<pre class="csharpcode"><span class="kwrd">private</span> <span class="kwrd">void</span> Guardar()
{
    persona.Nombre = txtNombre.Text;
    dataContext.SubmitChanges();
}</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<p><a href="http://rdiazconcha.com/wp-content/uploads/2011/11/SNAGHTML284a9e2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SNAGHTML284a9e2" border="0" alt="SNAGHTML284a9e2" src="http://rdiazconcha.com/wp-content/uploads/2011/11/SNAGHTML284a9e2_thumb.png" width="278" height="500" /></a></p>
<p>Es justamente el método SubmitChanges() el único mecanismo por el cual la base de datos es efectivamente actualizada con los cambios.</p>
<blockquote>
<p>Nota: El proyecto de ejemplo aquí usado no necesariamente cumple con las mejores prácticas y/o recomendaciones arquitectónicas para una aplicación en producción, sino que únicamente trata de demostrar los conceptos de acceso a bases de datos locales aquí tratados.</p>
</blockquote>
<h2>Actualización del esquema de la base de datos</h2>
<p>Los cambios pueden ocurrir en todo momento y el estar preparados para ello es sumamente importante para poder construir aplicativos robustos, extensibles y de fácil mantenimiento.</p>
<p>La clase DatabaseSchemaUpdater nos permite realizar modificaciones a un esquema pre existente de base de datos, como por ejemplo: modificaciones a las tablas, columnas, índices, claves foráneas y asociaciones, etc.</p>
<h3>Método CreateDatabaseSchemaUpdater</h3>
<p>El método CreateDatabaseSchemaUpdater del objeto de contexto de datos nos permite hacer las actualizaciones adecuadas al esquema de la base de datos.&#160; Por ejemplo, el siguiente código agrega una nueva tabla al esquema:</p>
<pre class="csharpcode">var context = <span class="kwrd">new</span> PersonaDataContext(“isostore:/personas.sdf&quot;);
var updater = context.CreateDatabaseSchemaUpdater();
updater.AddTable&lt;Producto&gt;();</pre>
<p>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
</p>
<p>O tal vez, quisieras agregar una nueva columna a una tabla ya existente:</p>
<pre class="csharpcode">updater.AddColumn&lt;Persona&gt;(<span class="str">&quot;FechaNacimiento&quot;</span>);</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<p>Finalmente, debemos ejecutar el método Execute() para poder realizar los cambios en el esquema de la base de datos:</p>
<pre class="csharpcode">updater.Execute();</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<h2>Resumen</h2>
<p>Windows Phone Mango incluye SQL Server CE, un motor de base de datos relacional para poder almacenar cualquier tipo de cantidad de datos de manera privada en nuestras aplicaciones para el teléfono.&#160; El mecanismo por el cual podemos interactuar con esta base de datos en LINQ para SQL, ya que la ejecución directa de sentencias Transact-SQL no está permitida por motivos de rendimiento.&#160; LINQ para SQL nos permite definir la base de datos y también nos permite realizar las operaciones CRUD necesarias para nuestros aplicativos, lo cual demuestra una vez más lo importante que es comprender y adoptar este moderno lenguaje de consultas.</p>
]]></content:encoded>
			<wfw:commentRss>http://rdiazconcha.com/2011/11/silverlight-para-windows-phone-mango-bases-de-datos-locales-con-sql-server-ceparte-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverlight para Windows Phone Mango: Mosaicos Din&#225;micos</title>
		<link>http://rdiazconcha.com/2011/10/silverlight-para-windows-phone-mango-mosaicos-dinmicos/</link>
		<comments>http://rdiazconcha.com/2011/10/silverlight-para-windows-phone-mango-mosaicos-dinmicos/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 04:30:33 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[Silverlight 4]]></category>
		<category><![CDATA[Windows Phone 7.1]]></category>
		<category><![CDATA[latam]]></category>
		<category><![CDATA[Live Tiles]]></category>
		<category><![CDATA[Mango]]></category>
		<category><![CDATA[Mosaicos]]></category>
		<category><![CDATA[msdn]]></category>
		<category><![CDATA[mva]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://rdiazconcha.com/2011/10/silverlight-para-windows-phone-mango-mosaicos-dinmicos/</guid>
		<description><![CDATA[Una de las características nuevas en la plataforma de desarrollo de Silverlight para Windows Phone 7.1 &#34;Mango” es el ofrecer un mecanismo para crear programáticamente mosaicos “vivos”, y que estos sean fácilmente actualizables según ciertas condiciones ya sea mientras la aplicación esté ejecutando o no.
En este artículo veremos a detalle la creación de mosaicos dinámicos [...]]]></description>
			<content:encoded><![CDATA[<p>Una de las características nuevas en la plataforma de desarrollo de Silverlight para Windows Phone 7.1 &quot;Mango” es el ofrecer un mecanismo para crear programáticamente mosaicos “vivos”, y que estos sean fácilmente actualizables según ciertas condiciones ya sea mientras la aplicación esté ejecutando o no.</p>
<p>En este artículo veremos a detalle la creación de mosaicos dinámicos o “Live Tiles” (Mosaicos vivos, por su nombre en el idioma inglés), sus características y capacidades.</p>
<h2>Mosaicos</h2>
<p>Los mosaicos son –dentro del lenguaje de diseño Metro- la manera en la que las aplicaciones pueden ser ejecutadas, pero también el mecanismo por el cual las aplicaciones nos pueden avisar que ha sucedido algo de nuestro interés como usuarios finales.&#160; Windows Phone 7.1 incluye dos tipos diferentes de mosaicos: Mosaicos Principales y Mosaicos Secundarios.&#160; </p>
<h3>Mosaicos principales</h3>
<p>Por ejemplo, cuando tienes configurada una cuenta de correo electrónico en Windows Phone 7, el mosaico que representa la aplicación de correo electrónico se actualiza dinámicamente cuando llega a nuestro buzón un nuevo mensaje, este es un ejemplo de mosaico principal ya que no tuvimos que hacer nada extra para crearlo, sino que ya lo agrega la aplicación al momento de ser instalada.&#160; Este tipo de mosaicos pueden ser creados automáticamente por la aplicación o a través de código.&#160; Es muy importante mencionar que estos mosaicos no pueden ser anclados al menú de inicio automáticamente, sino que el usuario lo debe hacer manualmente.<a href="http://rdiazconcha.com/wp-content/uploads/2011/10/image.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://rdiazconcha.com/wp-content/uploads/2011/10/image_thumb.png" width="275" height="500" /></a></p>
<h3>Mosaicos secundarios</h3>
<p>Silverlight para Windows Phone 7.1, soporta la creación programática de mosaicos secundarios para las aplicaciones.&#160; Esto es de particular interés cuando nuestra aplicación requiere brindar al usuario diversas maneras de ejecutar la aplicación.&#160; Por ejemplo, cada mosaico secundario podría representar un estado completamente diferente a otro en la aplicación, adicionalmente al mosaico principal que nos sirve para ejecutar el aplicativo en cuestión.</p>
<p>En la ilustración se muestra una aplicación que tiene un mosaico principal con el título “Mi App!”, mientras que el resto de mosaicos son secundarios.</p>
<p>Este tipo de mosaicos pueden ser creados únicamente a través de código, además de que se anclan automáticamente al menú de inicio tan pronto como son creados.</p>
<p>&#160;</p>
<h2>Características de los Mosaicos</h2>
<p>Todos los mosaicos cuentan con las siguientes características, las cuales pueden ser modificadas según sea necesario:</p>
<ul>
<li>Título frontal </li>
<li>Imagen de fondo frontal </li>
<li>Contador numérico (valor del 1 al 99. Si no se establece, no aparecerá) </li>
<li>Título para el reverso del mosaico </li>
<li>Contenido para el reverso del mosaico </li>
<li>Imagen del reverso del mosaico </li>
</ul>
<p>Hablando específicamente de las imágenes de los mosaicos, estas deb ser de tipo PNG o JPG y deben tener un tamaño de 173 x 173 pixeles.&#160; Si la imagen no tiene este tamaño, se escalará automáticamente.&#160; Adicionalmente a esto, los archivos deben estar marcados como “Contenido”, dentro del panel de Propiedades en Visual Studio .NET.</p>
<p><a href="http://rdiazconcha.com/wp-content/uploads/2011/10/image1.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://rdiazconcha.com/wp-content/uploads/2011/10/image_thumb1.png" width="340" height="136" /></a></p>
<h2>Clase ShellTile</h2>
<p>La clase ShellTile representa un mosaico de nuestra aplicación –ya sea el principal o alguno de los secundarios.&#160; Esta clase está disponible en el Espacio de Nombres Microsoft.Phone.Shell, por lo que es buena idea incluir una cláusula using (o Imports en Visual Basic) en la parte inicial de nuestro código.</p>
<p>La clase ShellTile incluye dos miembros estáticos importantes: la propiedad ActiveTiles, la cual es un diccionario que representa todos los mosaicos de la aplicación en cuestión, siendo el primero en el diccionario el mosaico principal, y también el método Create(), el cual nos sirve para poder crear mosaicos secundarios.</p>
<p>El siguiente fragmento de código obtiene el mosaico principal de la aplicación.</p>
<div class="csharpcode">
<pre class="alt"><span class="rem">//Obtiene el mosaico de la aplicación</span></pre>
<pre>var main = Microsoft.Phone.Shell.ShellTile.ActiveTiles.First();</pre>
</div>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<h3>Clase StandardTileData</h3>
<p>Hay una especialización de la clase ShellTile: la clase <a href="http://msdn.microsoft.com/es-es/library/microsoft.phone.shell.standardtiledata%28v=vs.92%29.aspx" target="_blank">StandardTileData</a>.&#160; Esta clase representa un mosaico que puede estar anclado al menú de inicio, por lo que puede tener las propiedades que indicamos anteriormente como título fronta y de reverso, imágenes, etc.</p>
<p>El siguiente fragmento de código configura el mosaico principal de la aplicación, tanto para la parte frontal como para la parte trasera.</p>
<pre class="csharpcode">var appTitle = ShellTile.ActiveTiles.First();

<span class="kwrd">if</span> (appTitle != <span class="kwrd">null</span>)
{
    var tileData = <span class="kwrd">new</span> StandardTileData();

    tileData.Title = <span class="str">&quot;Mi Aplicación&quot;</span>;
    tileData.Count = 7;
    tileData.BackgroundImage = <span class="kwrd">new</span> Uri(<span class="str">&quot;Imagenes/sl4logo.png&quot;</span>, UriKind.Relative);
    tileData.BackContent = <span class="str">&quot;Atrás&quot;</span>;
    tileData.BackTitle = <span class="str">&quot;Ejemplo&quot;</span>;
    tileData.BackBackgroundImage = <span class="kwrd">new</span> Uri(<span class="str">&quot;Imagenes/WPLogo.png&quot;</span>, UriKind.Relative);

    appTitle.Update(tileData);
}</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<p>Al ejecutar el anterior código y al anclar el mosaico al menú de inicio manualmente, veremos el resultado deseado, tal y como se muestra en la siguiente ilustración:</p>
<p><a href="http://rdiazconcha.com/wp-content/uploads/2011/10/SNAGHTML1cadc82.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML1cadc82" border="0" alt="SNAGHTML1cadc82" src="http://rdiazconcha.com/wp-content/uploads/2011/10/SNAGHTML1cadc82_thumb.png" width="504" height="418" /></a></p>
<p>Es importante mencionar que cuando un mosaico tiene contenido en el reverso y éste está anclado al menú de inicio, automáticamente después de un lapso de tiempo el mosaico gira como si fuera un naipe para mostrar dicho contenido.</p>
<h2>Creación de mosaicos secundarios</h2>
<p>Para crear mosaicos secundarios, utilizamos el método Create() mencionado anteriormente.&#160; Este método estático es parte de la clase ShellTile y solicita como parámetros la ruta dentro de la aplicación que este mosaico secundario representa, y también un objeto de tipo StandardTileData, con las propiedades visuales necesarias que requiera nuestro nuevo mosaico.</p>
<h3>El Proyecto</h3>
<p><a href="http://rdiazconcha.com/wp-content/uploads/2011/10/image2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://rdiazconcha.com/wp-content/uploads/2011/10/image_thumb2.png" width="240" height="227" /></a></p>
<p>Para probar esta funcionalidad, nuestra aplicación de prueba consta de dos páginas: MainPage.xaml y Nombre.xaml. En MainPage el usuario puede escribir su nombre y pulsar sobre el botón.&#160; Al hacer esto, la aplicación navega hacia Nombre.xaml, pasando como parámetro el nombre escrito en la caja de texto de MainPage.&#160; Aquí, el usuario puede pulsar en el botón “Crear mosaico secundario”, lo cual hará precisamente eso, identificando al nuevo mosaico con ese Uri único.</p>
<p>La siguiente ilustración muestra las dos páginas de la aplicación.</p>
<p><a href="http://rdiazconcha.com/wp-content/uploads/2011/10/SNAGHTML1ed8da8.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML1ed8da8" border="0" alt="SNAGHTML1ed8da8" src="http://rdiazconcha.com/wp-content/uploads/2011/10/SNAGHTML1ed8da8_thumb.png" width="500" height="462" /></a></p>
<p>Es en el botón “Crear mosaico secundario” en donde está implementado el código para crear un mosaico secundario de la aplicación, tal y como se muestra a continuación.&#160; Nota que lo primero que hace el código es asegurarse que no exista otro mosaico secundario con el mismo Uri.&#160; Posteriormente a eso, se crea un nuevo objeto de tipo StandardTileData con el contenido visual adecuado.</p>
<pre class="csharpcode"><span class="kwrd">if</span> (ShellTile.ActiveTiles.Where((m) =&gt; m.NavigationUri </pre>
<pre class="csharpcode">   == NavigationService.Source).Count() == 0)
{
    StandardTileData newTile = <span class="kwrd">new</span> StandardTileData()
    {
        Title = nombre,
        Count = 1,
        BackgroundImage = <span class="kwrd">new</span> Uri(<span class="str">&quot;Imagenes/sl4logo.png&quot;</span>, UriKind.Relative),
        BackTitle = <span class="str">&quot;Mosaico Secundario&quot;</span>,
        BackContent = <span class="str">&quot;Creado: &quot;</span> + DateTime.Now.ToString(),
        BackBackgroundImage = <span class="kwrd">new</span> Uri(<span class="str">&quot;Imagenes/mva.png&quot;</span>, UriKind.Relative)
    };

    ShellTile.Create(NavigationService.Source, newTile);
}</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<p>Una vez ejecutando la aplicación en el emulador, podemos probar esta funcionalidad creando tantos mosaicos secundarios como queramos.&#160; Es importane mencionar que el mosaico principal de la aplicación no es necesario que esté en el menú de inicio para que los mosaicos secundarios estén anclados.&#160; En la siguiente ilustración se muestran tres mosaicos secundarios creados con esta aplicación de prueba.</p>
<div>&#160;</div>
<div><a href="http://rdiazconcha.com/wp-content/uploads/2011/10/SNAGHTML1e461f74.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML1e461f7[4]" border="0" alt="SNAGHTML1e461f7[4]" src="http://rdiazconcha.com/wp-content/uploads/2011/10/SNAGHTML1e461f74_thumb.png" width="504" height="418" /></a></div>
<h2>&#160;</h2>
<h2>Resumen</h2>
<p>Los mosaicos dinámicos o “Live Tiles” son una de las mejoras que podemos encontrar en Silverlight para Windows Phone Mango.&#160; A través de esta característica podemos brindar a los usuarios de nuestras aplicaciones un mecanismo para poder llegar directamente al contenido que ellos desean, ya que cada mosaico puede representar una ruta diferente de acceso dentro de nuestras aplicaciones.</p>
]]></content:encoded>
			<wfw:commentRss>http://rdiazconcha.com/2011/10/silverlight-para-windows-phone-mango-mosaicos-dinmicos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Invitaci&#243;n a la Reuni&#243;n de la Comunidad MSNETSV&#8211;San Salvador (02/Feb/2011)</title>
		<link>http://rdiazconcha.com/2011/02/invitacin-a-la-reunin-de-la-comunidad-msnetsvsan-salvador-02feb2011/</link>
		<comments>http://rdiazconcha.com/2011/02/invitacin-a-la-reunin-de-la-comunidad-msnetsvsan-salvador-02feb2011/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 23:02:18 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[Comunidades]]></category>
		<category><![CDATA[Conferencias]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[MVP]]></category>
		<category><![CDATA[Silverlight 4]]></category>
		<category><![CDATA[conferencia]]></category>
		<category><![CDATA[El Salvador]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[latam]]></category>
		<category><![CDATA[msdn]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://rdiazconcha.com/2011/02/invitacin-a-la-reunin-de-la-comunidad-msnetsvsan-salvador-02feb2011/</guid>
		<description><![CDATA[Tengo el honor de haber sido invitado a la próxima reunión de la Comunidad MSNETSV en las oficinas de Microsoft El Salvador el día de hoy a las 18:00 horas.&#160; Hablaremos de Aplicaciones de Negocio con Silverlight 4 y temas relacionados.&#160; La cita es en:
Microsoft El Salvador
89 ave Norte y Calle el Mirador Edif World [...]]]></description>
			<content:encoded><![CDATA[<p>Tengo el honor de haber sido invitado a la próxima reunión de la Comunidad MSNETSV en las oficinas de <a href="http://www.facebook.com/home.php?ref=home#!/pages/Microsoft-El-Salvador/154450211233728" target="_blank">Microsoft El Salvador</a> el día de hoy a las 18:00 horas.&#160; Hablaremos de Aplicaciones de Negocio con <a href="http://silverlight.net" target="_blank">Silverlight</a> 4 y temas relacionados.&#160; La cita es en:</p>
<blockquote><p>Microsoft El Salvador</p>
<p>89 ave Norte y Calle el Mirador Edif World Trade Center Torre 2 Nivel 5</p>
<p>Colonia Escalon</p>
<p>San Salvador, El Salvador</p>
</blockquote>
<p>Si están por la zona y les interesa el desarrollo de aplicaciones con Silverlight y .NET en general es invito cordialmente a que asistan!</p>
<p><a href="http://www.facebook.com/home.php?ref=home#!/pages/Microsoft-El-Salvador/154450211233728" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="MSNETSV_20110202_Silverlight" border="0" alt="MSNETSV_20110202_Silverlight" src="http://rdiazconcha.com/wp-content/uploads/2011/02/MSNETSV_20110202_Silverlight.jpg" width="500" height="568" /></a></p>
<p>Los esperamos!</p>
]]></content:encoded>
			<wfw:commentRss>http://rdiazconcha.com/2011/02/invitacin-a-la-reunin-de-la-comunidad-msnetsvsan-salvador-02feb2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webcast: Interoperabilidad con COM en aplicaciones Silverlight 4</title>
		<link>http://rdiazconcha.com/2010/11/webcast-interoperabilidad-con-com-en-aplicaciones-silverlight-4/</link>
		<comments>http://rdiazconcha.com/2010/11/webcast-interoperabilidad-con-com-en-aplicaciones-silverlight-4/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 18:12:18 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[Comunidades]]></category>
		<category><![CDATA[Conferencias]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[MVP]]></category>
		<category><![CDATA[Silverlight 4]]></category>
		<category><![CDATA[Web Casts]]></category>
		<category><![CDATA[interop]]></category>
		<category><![CDATA[latam]]></category>
		<category><![CDATA[msdn]]></category>

		<guid isPermaLink="false">http://rdiazconcha.com/2010/11/webcast-interoperabilidad-con-com-en-aplicaciones-silverlight-4/</guid>
		<description><![CDATA[
Gracias a todos(as) por asistir al Webcast: “Interoperabilidad con COM en aplicaciones Silverlight 4” que realicé hoy por la mañana.&#160; Pueden descargar el video de la misma dirección de donde se registraron (si no lo hicieron lo pueden hacer en este momento). Al momento de estar escribiendo este post aún no está disponible pero tengo [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://rdiazconcha.com/wp-content/uploads/2010/11/image18.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://rdiazconcha.com/wp-content/uploads/2010/11/image_thumb17.png" width="204" height="71" /></a></p>
<p>Gracias a todos(as) por asistir al Webcast: “<strong>Interoperabilidad con COM en aplicaciones </strong><a href="http://silverlight.net" target="_blank">Silverlight</a><strong> 4</strong>” que realicé hoy por la mañana.&#160; Pueden descargar el video de <a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032461943&amp;Culture=es-AR" target="_blank">la misma dirección</a> de donde se registraron (si no lo hicieron lo pueden hacer en este momento). Al momento de estar escribiendo este post aún no está disponible pero tengo entendido que en las próximas 24 horas deberá estarlo.</p>
<p>También pueden <a href="http://rdiazconcha.com/Files/[Webcast]%20Demo.Interop%2025Nov2010.rar" target="_blank">descargar el código fuente</a> de la aplicación con los ejemplos que se realizaron <a href="http://rdiazconcha.com/Files/[Webcast]%20Demo.Interop%2025Nov2010.rar" target="_blank">en esta dirección</a>.</p>
<p>Gracias y salu2!</p>
]]></content:encoded>
			<wfw:commentRss>http://rdiazconcha.com/2010/11/webcast-interoperabilidad-con-com-en-aplicaciones-silverlight-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Documentaci&#243;n de Silverlight 4</title>
		<link>http://rdiazconcha.com/2010/07/documentacin-de-silverlight-4/</link>
		<comments>http://rdiazconcha.com/2010/07/documentacin-de-silverlight-4/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 12:25:52 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Silverlight 4]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[msdn]]></category>

		<guid isPermaLink="false">http://rdiazconcha.com/2010/07/documentacin-de-silverlight-4/</guid>
		<description><![CDATA[
Ya está disponible la documentación fuera de línea (offline) de Silverlight 4 totalmente actualizada.&#160; Esta descarga es básica para todo desarrollador de Silverlight ya que puedes revisar la información técnica de la plataforma y su API incluso sin conexión a Internet.
&#160;
La descarga está aquí.&#160; Espero les sirva!
Salu2!
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=b6127b9b-968c-46c2-8cb6-d228e017ad74" target="_blank"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="silverlight-logo" border="0" alt="silverlight-logo" align="left" src="http://rdiazconcha.com/wp-content/uploads/2010/07/silverlightlogo.jpg" width="140" height="156" /></a></p>
<p>Ya está disponible la documentación fuera de línea (offline) de Silverlight 4 totalmente actualizada.&#160; Esta descarga es básica para todo desarrollador de Silverlight ya que puedes revisar la información técnica de la plataforma y su API incluso sin conexión a Internet.</p>
<p>&#160;</p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=b6127b9b-968c-46c2-8cb6-d228e017ad74" target="_blank">La descarga está aquí</a>.&#160; Espero les sirva!</p>
<p>Salu2!</p>
]]></content:encoded>
			<wfw:commentRss>http://rdiazconcha.com/2010/07/documentacin-de-silverlight-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tecnolog&#237;as Integradas &#8211; Convenci&#243;n Internacional de Interoperabilidad</title>
		<link>http://rdiazconcha.com/2010/06/tecnologas-integradas-convencin-internacional-de-interoperabilidad/</link>
		<comments>http://rdiazconcha.com/2010/06/tecnologas-integradas-convencin-internacional-de-interoperabilidad/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 20:02:53 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
				<category><![CDATA[Comunidades]]></category>
		<category><![CDATA[Conferencias]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[MVP]]></category>
		<category><![CDATA[Silverlight 4]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[conferencia]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[interop]]></category>
		<category><![CDATA[latam]]></category>
		<category><![CDATA[msdn]]></category>
		<category><![CDATA[Screencasts]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://rdiazconcha.com/2010/06/tecnologas-integradas-convencin-internacional-de-interoperabilidad/</guid>
		<description><![CDATA[[ June 9, 2010; ] 

Tengo el honor de haber sido invitado como expositor para la 1era. Convención Internacional de Interoperabilidad, el cual es un evento virtual que se llevará a cabo el próximo 09 de Junio 2010 a las 10:00 horas.  En el evento podrán ver escenarios de integración entre diferentes tecnologías, explicados por expertos de diversas materias y [...]]]></description>
			<content:encoded><![CDATA[<table class="ec3_schedule"><tr><td colspan="3">June 9, 2010</td></tr></table><p><a href="http://www.microsoft.com/latam/interop/convencion/" target="_blank"><img style="display: inline; border: 0px;" title="Primera Convención de Interoperabilidad" src="http://rdiazconcha.com/wp-content/uploads/2010/06/image1.png" border="0" alt="Primera Convención de Interoperabilidad" width="504" height="150" /></a></p>
<p>Tengo el honor de haber sido invitado como expositor para la <a href="http://www.microsoft.com/latam/interop/convencion/" target="_blank">1era. Convención Internacional de Interoperabilidad</a>, el cual es un evento virtual que se llevará a cabo el próximo 09 de Junio 2010 a las 10:00 horas.  En el evento podrán ver escenarios de integración entre diferentes tecnologías, explicados por expertos de diversas materias y plataformas.</p>
<p>En mi caso participaré con el tema “<strong>Interoperabilidad con COM en aplicaciones de Silverlight 4</strong>”.  En dicha sesión, ustedes podrán comprobar lo sencillo que es invocar funcionalidades existentes en componentes de <a href="http://es.wikipedia.org/wiki/Component_Object_Model" target="_blank">COM</a> (Component Object Model) desde sus aplicativos que ejecuten <a href="http://channel9.msdn.com/posts/Channel9Mexico/15-Aplicaciones-Fuera-del-Navegador/" target="_blank">Afuera del Navegador con Silverlight 4</a>.  Si bien no es un escenario <em>multi-plataforma</em> como tal (COM es una plataforma de Microsoft, como lo es Silverlight), <em>son</em> <em><span style="text-decoration: underline;">tecnologías diferentes</span></em> y hoy en día es bastante común tratar de lograr lo que en mi sesión expongo, por ejemplo, tratar de integrar un aplicación de Silverlight con Office.  ¡Espero que les sea de utilidad!  También les reitero que su retroalimentación es muy importante! <img src='http://rdiazconcha.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>La información es la siguiente:</p>
<blockquote><p><em>Microsoft Latinoamérica te invita a participar este miércoles 9 de junio, en la 1ª Convención Virtual Internacional de Interoperabilidad “Tecnologías Integradas”. Es un evento que tiene como objetivo mostrar escenarios de la vida real que te permitirán ver la manera más efectiva de integrar diversas tecnologías del mundo de hoy. Durante el mismo, tendrás la oportunidad de compartir las experiencias de cada uno de los expositores internacionales desarrolladores de soluciones en diferentes plataformas, dentro del marco de integración tecnológica. Contaremos con la participación de tecnólogos, desarrolladores y profesionales de interoperabilidad de Venezuela, Ecuador, México, Perú, Brasil y otros países de Latinoamérica.</em></p>
<p><strong>Fecha: 09 de Junio</strong></p>
<p><strong>Horario: 10:00 horas</strong></p>
<p><strong>(Evento Virtual)</strong></p></blockquote>
<p>Pueden revisar toda la agenda del evento <a href="http://www.microsoft.com/latam/interop/convencion/" target="_blank">aquí</a></p>
<p>Asimismo, les invito a que se registren <a href="https://profile.microsoft.com/RegSysProfileCenter/wizard.aspx?wizid=8a321595-ef39-465b-9972-84e0d8342c12&amp;lcid=58378" target="_blank">aquí</a></p>
<p>¡Los esperamos!</p>
]]></content:encoded>
			<wfw:commentRss>http://rdiazconcha.com/2010/06/tecnologas-integradas-convencin-internacional-de-interoperabilidad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

