<?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>Williams Rodriguez</title>
	<atom:link href="http://williamsrodriguez.com/windowsphone/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://williamsrodriguez.com/windowsphone</link>
	<description>Windows Phone Development</description>
	<lastBuildDate>Mon, 19 Sep 2011 22:15:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Localizar direcciones con Bing Maps en Windows Pone</title>
		<link>http://williamsrodriguez.com/windowsphone/?p=100&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=localizar-direcciones-con-bing-maps-en-windows-pone</link>
		<comments>http://williamsrodriguez.com/windowsphone/?p=100#comments</comments>
		<pubDate>Mon, 19 Sep 2011 22:15:00 +0000</pubDate>
		<dc:creator>Williams Rodriguez</dc:creator>
				<category><![CDATA[Launchers and Choosers]]></category>
		<category><![CDATA[BingMapsTask]]></category>
		<category><![CDATA[Mango]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://williamsrodriguez.com/windowsphone/?p=100</guid>
		<description><![CDATA[Este lanzador llega con Windows Phone Mango, y permite visualizar direcciones especificas en el mapa de Bing en nuestro dispositivo móvil. Como todos los lanzadores tenemos que instanciar la clase, asignar datos a las propiedades y finalmente utilizar el método Show. private void button1_Click(object sender, RoutedEventArgs e)         {             BingMapsTask bmt = new BingMapsTask();             bmt.SearchTerm = [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Este lanzador llega con Windows Phone Mango, y permite visualizar direcciones especificas en el mapa de Bing en nuestro dispositivo móvil.</p>
<p align="justify">Como todos los lanzadores tenemos que instanciar la clase, asignar datos a las propiedades y finalmente utilizar el método Show.</p>
<div id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:7c6461d5-a73d-4eda-9253-20b1f912f21a" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt;">
<div style="background: #ddd; max-height: 400px; overflow: auto;">
<ol style="background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px; white-space: nowrap;" start="1">
<li><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> button1_Click(<span style="color: #0000ff;">object</span> sender, <span style="color: #2b91af;">RoutedEventArgs</span> e)</li>
<li style="background: #f3f3f3;">        {</li>
<li>            <span style="color: #2b91af;">BingMapsTask</span> bmt = <span style="color: #0000ff;">new</span> <span style="color: #2b91af;">BingMapsTask</span>();</li>
<li style="background: #f3f3f3;">            bmt.SearchTerm = <span style="color: #a31515;">&#8220;Coatzacoalcos&#8221;</span>;</li>
<li>            bmt.ZoomLevel = 4;</li>
<li style="background: #f3f3f3;">            bmt.Show();</li>
<li>        }</li>
</ol>
</div>
</div>
</div>
<p>&nbsp;</p>
<p><a href="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/BingMapsTask.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="BingMapsTask" src="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/BingMapsTask_thumb.png" alt="BingMapsTask" width="179" height="323" border="0" /></a></p>
<p><a href="http://williamsrodriguez.com/WP7Ejemplos/WP7BingMapsTask.zip" target="_blank">Aquí en código fuente…</a></p>
<p>Saludos…</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsrodriguez.com/windowsphone/?feed=rss2&#038;p=100</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programando aplicaciones que usan el Marketplace de WP7</title>
		<link>http://williamsrodriguez.com/windowsphone/?p=97&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=programando-aplicaciones-que-usan-el-marketplace-de-wp7</link>
		<comments>http://williamsrodriguez.com/windowsphone/?p=97#comments</comments>
		<pubDate>Sun, 18 Sep 2011 21:25:00 +0000</pubDate>
		<dc:creator>Williams Rodriguez</dc:creator>
				<category><![CDATA[Launchers and Choosers]]></category>
		<category><![CDATA[MaketplacehubTask]]></category>
		<category><![CDATA[Marketplace]]></category>
		<category><![CDATA[MarketplaceDetailTask]]></category>
		<category><![CDATA[MarketplaceSearchTask]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://williamsrodriguez.com/windowsphone/?p=97</guid>
		<description><![CDATA[En este articulo revisaremos alguna de las tareas mas comunes con el Marketplace realizadas por aplicaciones Windows Phone 7. MarketplacehubTask Cuando necesitamos lanzar la aplicación cliente del Marketplace desde una aplicación y que esta muestre la información especialmente agrupada, utilizaremos la clase MaketplacehubTask y estableceremos la propiedad ContentType a uno de los valores de la [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">En este articulo revisaremos alguna de las tareas mas comunes con el Marketplace realizadas por aplicaciones Windows Phone 7.</p>
<h2 align="justify">MarketplacehubTask</h2>
<p align="justify">Cuando necesitamos lanzar la aplicación cliente del Marketplace desde una aplicación y que esta muestre la información especialmente agrupada, utilizaremos la clase MaketplacehubTask y estableceremos la propiedad ContentType a uno de los valores de la enumeracion MarketplaceContentType:</p>
<ul>
<li>
<div align="justify"><strong>MarketplaceContentType.Music</strong> Agrupación por música.</div>
</li>
<li>
<div align="justify"><strong>MarketplaceContentType.Applications</strong> Agrupación por aplicaciones</div>
</li>
</ul>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:235cab92-8cd2-4db2-9525-00b555620c63" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 400px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> btnMarketplaceHub_Click(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">RoutedEventArgs</span> e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            <span style="color:#2b91af">MarketplaceHubTask</span> marketplaceHubTask = <span style="color:#0000ff">new</span> <span style="color:#2b91af">MarketplaceHubTask</span>();</li>
<li style="background: #f3f3f3">            marketplaceHubTask.ContentType = <span style="color:#2b91af">MarketplaceContentType</span>.Applications;</li>
<li>            marketplaceHubTask.Show();</li>
<li style="background: #f3f3f3">        }</li>
</ol></div>
</p></div>
</p></div>
<p>&#160;</p>
<p><a href="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/Marketplace_1.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="Marketplace_1" border="0" alt="Marketplace_1" src="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/Marketplace_1_thumb.png" width="357" height="226" /></a></p>
<h2>MarketplaceSearchTask</h2>
<p align="justify">Con la clase MarketplaceSearchTask lanzamos la aplicación cliente del Marketplace mostrando los resultados de una búsqueda basada en parámetros dados previamente. Nota que podemos realizar la búsqueda por palabra o tipo de contenido.</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:5506be48-0350-4c37-babc-d2460fe8a8f9" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 400px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> btnMarketplaceSearch_Click(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">RoutedEventArgs</span> e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            <span style="color:#2b91af">MarketplaceSearchTask</span> marketplaceSearchTask = <span style="color:#0000ff">new</span> <span style="color:#2b91af">MarketplaceSearchTask</span>();</li>
<li style="background: #f3f3f3">            marketplaceSearchTask.SearchTerms = <span style="color:#a31515">&quot;games&quot;</span>;</li>
<li>            marketplaceSearchTask.Show();</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>        }</li>
</ol></div>
</p></div>
</p></div>
<p>&#160;</p>
<p><a href="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/Marketplace_2.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="Marketplace_2" border="0" alt="Marketplace_2" src="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/Marketplace_2_thumb.png" width="355" height="197" /></a></p>
<h2>MarketplaceDetailTask</h2>
<p>Esta clase nos sirve para mostrar el detalle de un producto en el marketplace a partir de su identificador único.</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:7bef1cea-ab2d-4df3-9e46-62d1b2ad784e" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 400px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> btnMarketplaceDetail_Click(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">RoutedEventArgs</span> e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            <span style="color:#2b91af">MarketplaceDetailTask</span> marketplaceDetailTask = <span style="color:#0000ff">new</span> <span style="color:#2b91af">MarketplaceDetailTask</span>();</li>
<li style="background: #f3f3f3">            marketplaceDetailTask.ContentIdentifier = <span style="color:#a31515">&quot;ea9a24ad-d2d1-df11-9eae-00237de2db9e&quot;</span>;</li>
<li>            marketplaceDetailTask.Show();</li>
<li style="background: #f3f3f3">        }</li>
</ol></div>
</p></div>
</p></div>
<p><a href="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/Marketplace_3.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="Marketplace_3" border="0" alt="Marketplace_3" src="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/Marketplace_3_thumb.png" width="177" height="318" /></a></p>
<p><a href="http://williamsrodriguez.com/WP7Ejemplos/WP7MarketPlace.zip" target="_blank">Aquí en código…</a></p>
<p>Saludos…</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsrodriguez.com/windowsphone/?feed=rss2&#038;p=97</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ver y escuchar Video-M&#250;sica en WP7 desde C#</title>
		<link>http://williamsrodriguez.com/windowsphone/?p=90&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ver-y-escuchar-video-msica-en-wp7-desde-c</link>
		<comments>http://williamsrodriguez.com/windowsphone/?p=90#comments</comments>
		<pubDate>Sat, 17 Sep 2011 19:16:10 +0000</pubDate>
		<dc:creator>Williams Rodriguez</dc:creator>
				<category><![CDATA[Launchers and Choosers]]></category>
		<category><![CDATA[MediaLocationType]]></category>
		<category><![CDATA[MediaPlaybackControls]]></category>
		<category><![CDATA[MediaPlayerLauncher]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://williamsrodriguez.com/windowsphone/?p=90</guid>
		<description><![CDATA[En este post revisaremos los temas relacionados a ver videos o escuchar música desde Windows Phone 7usando el MediaPlayerLauncher. MediaPlayerLauncher El MediaPlayerLauncher lanza la aplicación Media Player y ejecuta el archivo multimedia previamente especificado, cabe mencionar que los archivos multimedia son almacenados en el Isolate Storage o en el directorio de instalación de la aplicación, [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">En este post revisaremos los temas relacionados a ver videos o escuchar música desde Windows Phone 7usando el <em>MediaPlayerLauncher</em>.</p>
<h2>MediaPlayerLauncher</h2>
<p align="justify">El <em>MediaPlayerLauncher</em> lanza la aplicación Media Player y ejecuta el archivo multimedia previamente especificado, cabe mencionar que los archivos multimedia son almacenados en el Isolate Storage o en el directorio de instalación de la aplicación, es por esto que para especificar la localización utilizamos la enumeración <em>MediaLocationType</em>:</p>
<ul>
<li>
<div align="justify"><strong>MediaLocationType.Data</strong> Los archivos multimedia son almacenados en el Isolated Storage cuando con guardados en el disco por la aplicación.</div>
</li>
<li>
<div align="justify"><strong>MediaLocationType.Install </strong>Almacenados en el directorio de instalación de la aplicación si están integrados a la aplicación en archivos .xap</div>
</li>
<li>
<div align="justify"><strong>MediaLocationType.None </strong>El archivo multimedia no se encuentra en ninguno de los dos almacenamientos anteriores. hay que notar que el método Show lanzara un <em>FileNotFoundException</em> si este valor es usado.</div>
</li>
</ul>
<p align="justify">Opcionalmente podemos especificar que uno o mas controles deben ser mostrados por el Media Player ya sea a nivel de bits o una combinación de valores MediaPlaybackControls:</p>
<ul>
<li>
<div align="justify">MediaPlaybackControls.All</div>
</li>
<li>
<div align="justify">MediaPlaybackControls.None</div>
</li>
<li>
<div align="justify">MediaPlaybackControls.Pause</div>
</li>
<li>
<div align="justify">MediaPlaybackControls.Stop</div>
</li>
<li>
<div align="justify">MediaPlaybackControls.Skip</div>
</li>
<li>
<div align="justify">MediaPlaybackControls.FastForward</div>
</li>
<li>
<div align="justify">MediaPlaybackControls.Rewind</div>
</li>
</ul>
<p align="justify">Así que todo lo que necesitamos hacer para tener una aplicación multimedia en nuestra aplicación es crear una instancia de la clase <em>MediaPlayerLauncher </em>establecer las propiedades y llamar al método <em>Show().</em></p>
<p align="justify"><em></em></p>
<p align="justify"><a href="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/WindowsMedia.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="WindowsMedia" border="0" alt="WindowsMedia" src="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/WindowsMedia_thumb.png" width="336" height="317" /></a></p>
<p align="justify"><em></em></p>
<p align="justify">Nota: En el emulador de Windows Phone 7 se pueden iniciar el media player y el usuario puede ejecutar un archivo de música, pero los videos no son rende rizados.</p>
<p align="justify">Para mas información acerca de los lanzadores y selectores que son soportados por el emulador de Windows Phone 7 entra a este <a href="http://msdn.microsoft.com/en-us/library/ff955600%28v=VS.92%29.aspx" target="_blank">link</a>.</p>
<p align="justify">La lista completa de codec’s multimedia que son soportados por Windows Phone son mostrados en este <a href="http://msdn.microsoft.com/en-us/library/ff462087%28VS.92%29.aspx" target="_blank">link</a>.</p>
<p align="justify">Saludos…</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsrodriguez.com/windowsphone/?feed=rss2&#038;p=90</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Uso de los &#8220;Choosers&#8221;  &#8220;Search and Browse&#8221; en WP7</title>
		<link>http://williamsrodriguez.com/windowsphone/?p=87&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=uso-de-los-choosers-search-and-browse-en-wp7</link>
		<comments>http://williamsrodriguez.com/windowsphone/?p=87#comments</comments>
		<pubDate>Sat, 17 Sep 2011 14:06:37 +0000</pubDate>
		<dc:creator>Williams Rodriguez</dc:creator>
				<category><![CDATA[Launchers and Choosers]]></category>
		<category><![CDATA[SearchTask]]></category>
		<category><![CDATA[WebBrowserTask]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://williamsrodriguez.com/windowsphone/?p=87</guid>
		<description><![CDATA[En este post analizaremos el uso de SearchTask y WebBrowserTask en Windows Phone 7. SearchTask Usando el SearchTask podemos lanzar la aplicación de búsqueda Web. Todo lo que necesitamos hacer para ejecutar esta funcionalidad es crear una instancia de la clase SearchTask, establecer el valor buscado al campo SearchTask y llamar el método Show(). private [...]]]></description>
			<content:encoded><![CDATA[<p>En este post analizaremos el uso de SearchTask y WebBrowserTask en Windows Phone 7.</p>
<h2>SearchTask</h2>
<p align="justify">Usando el SearchTask podemos lanzar la aplicación de búsqueda Web. Todo lo que necesitamos hacer para ejecutar esta funcionalidad es crear una instancia de la clase SearchTask, establecer el valor buscado al campo SearchTask y llamar el método Show().</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:a51de4c5-771c-42d9-8857-1d1a0623e872" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 400px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> btnSearch_Click(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">RoutedEventArgs</span> e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            <span style="color:#2b91af">SearchTask</span> searchTask = <span style="color:#0000ff">new</span> <span style="color:#2b91af">SearchTask</span>();</li>
<li style="background: #f3f3f3">            searchTask.SearchQuery = <span style="color:#a31515">&quot;WindowsPhoneGeek&quot;</span>;</li>
<li>            searchTask.Show();</li>
<li style="background: #f3f3f3">        }</li>
</ol></div>
</p></div>
</p></div>
<p>&#160;</p>
<p><a href="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/Search.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="Search" border="0" alt="Search" src="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/Search_thumb.png" width="356" height="335" /></a></p>
<p>&#160;</p>
<h2>WebBrowserTask</h2>
<p align="justify">Usando el WebBrowserTask podemos lanzar el navegador Web por defecto del Windows Phone en una URL previamente dada. Todos lo que tenemos que hacer para usar esta funcionalidad es crear una instancia del WebBrowserTask, establecer el cambo URL con la dirección deseada y llamar el método Show().</p>
<p align="justify">&#160;</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:260ed0f4-6331-4f01-85ba-c8401616d4e9" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 400px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> btnBrowse_Click(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">RoutedEventArgs</span> e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            <span style="color:#2b91af">WebBrowserTask</span> webBrowserTask = <span style="color:#0000ff">new</span> <span style="color:#2b91af">WebBrowserTask</span>();</li>
<li style="background: #f3f3f3">            webBrowserTask.URL = <span style="color:#a31515">&quot;http://www.williamsrodriguez.com&quot;</span>;</li>
<li>            webBrowserTask.Show();</li>
<li style="background: #f3f3f3">        }</li>
</ol></div>
</p></div>
</p></div>
<p>&#160;</p>
<p><a href="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/PageWeb.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="PageWeb" border="0" alt="PageWeb" src="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/PageWeb_thumb.png" width="361" height="340" /></a></p>
<p><a href="http://williamsrodriguez.com/WP7Ejemplos/WP7SearchWeb.zip" target="_blank">Aquí el código…</a></p>
<p>Saludos…</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsrodriguez.com/windowsphone/?feed=rss2&#038;p=87</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Manejo de N&#250;meros Telef&#243;nicos en WP desde C#</title>
		<link>http://williamsrodriguez.com/windowsphone/?p=82&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=manejo-de-nmeros-telefnicos-en-wp-desde-c</link>
		<comments>http://williamsrodriguez.com/windowsphone/?p=82#comments</comments>
		<pubDate>Fri, 16 Sep 2011 14:45:46 +0000</pubDate>
		<dc:creator>Williams Rodriguez</dc:creator>
				<category><![CDATA[Launchers and Choosers]]></category>
		<category><![CDATA[PhoneCallTask]]></category>
		<category><![CDATA[PhoneNumberChooserTask]]></category>
		<category><![CDATA[SavePhoneNumberTask]]></category>
		<category><![CDATA[SmsComposeTask]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://williamsrodriguez.com/windowsphone/?p=82</guid>
		<description><![CDATA[En este post hablaremos sobre algunas formas existentes para manipular números telefónicos a través de las API’s “Launchers and Choosers” en Windows Phone 7. Utilizaremos las tareas SavePhoneNumberTask, PhoneNumberChooserTask y PhoneCallTask para agregar un numero telefónico en un contacto, seleccionar un numero existente de la lista de contactos y realizar una llamada. En incluso veremos [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">En este post hablaremos sobre algunas formas existentes para manipular números telefónicos a través de las API’s “Launchers and Choosers” en Windows Phone 7.</p>
<p align="justify">Utilizaremos las tareas <em>SavePhoneNumberTask, PhoneNumberChooserTask y PhoneCallTask</em> para agregar un numero telefónico en un contacto, seleccionar un numero existente de la lista de contactos y realizar una llamada.</p>
<p align="justify">En incluso veremos un ejemplo de como enviar mensajes de texto mediante <em>SmsComposeTask.</em></p>
<h2>SavePhoneNumberTask</h2>
<p align="justify">Este lanzador como su nombre sugiere lanza el listado de contactos y almacena el numero telefónico dado en el contacto seleccionado. Esto es logrado mediante el método <em>Show()</em> del objeto SavePhoneNumberTask y el resultado de la operación <em>chooser </em>lo obtenemos mediante el evento <em>Completed.</em></p>
<p>Ejemplo:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:fc6e9f5e-590c-401f-9268-e51b06ee3044" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 400px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">public</span> <span style="color:#0000ff">partial</span> <span style="color:#0000ff">class</span> <span style="color:#2b91af">PageSaveNumber</span> : <span style="color:#2b91af">PhoneApplicationPage</span></li>
<li style="background: #f3f3f3">    {</li>
<li>        <span style="color:#2b91af">SavePhoneNumberTask</span> savePhoneNumberTask;</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>        <span style="color:#0000ff">public</span> PageSaveNumber()</li>
<li style="background: #f3f3f3">        {</li>
<li>            InitializeComponent();</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>            <span style="color:#0000ff">this</span>.savePhoneNumberTask = <span style="color:#0000ff">new</span> <span style="color:#2b91af">SavePhoneNumberTask</span>();</li>
<li style="background: #f3f3f3">            <span style="color:#0000ff">this</span>.savePhoneNumberTask.Completed += <span style="color:#0000ff">new</span> <span style="color:#2b91af">EventHandler</span>&lt;<span style="color:#2b91af">TaskEventArgs</span>&gt;(savePhoneNumberTask_Completed);</li>
<li>        }</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>        <span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> savePhoneNumberTask_Completed(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">TaskEventArgs</span> e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            <span style="color:#0000ff">if</span> (e.TaskResult == <span style="color:#2b91af">TaskResult</span>.OK)</li>
<li style="background: #f3f3f3">            {</li>
<li>                <span style="color:#2b91af">MessageBox</span>.Show(<span style="color:#a31515">&quot;Numero Almacenado&#8230;&quot;</span>);</li>
<li style="background: #f3f3f3">            }</li>
<li>        }</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>        <span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> btnSavePhoneNumber_Click(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">RoutedEventArgs</span> e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            savePhoneNumberTask.PhoneNumber = <span style="color:#a31515">&quot;921 111 99 69&quot;</span>;</li>
<li style="background: #f3f3f3">            savePhoneNumberTask.Show();</li>
<li>        }</li>
<li style="background: #f3f3f3">    }</li>
</ol></div>
</p></div>
</p></div>
<p>&#160;</p>
<p><a href="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/SaveNumbers.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="SaveNumbers" border="0" alt="SaveNumbers" src="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/SaveNumbers_thumb.png" width="365" height="230" /></a></p>
<p>&#160;</p>
<h2>PhoneNumberChooserTask</h2>
<p align="justify">Este lanzador permite lanzar desde nuestra aplicación la lista de contactos para que el usuario seleccione alguno de los números del contacto seleccionado. En cuanto a la forma de lanzarlo y obtener el numero seleccionado es similar al descrito en el ejemplo anterior.</p>
<p>Ejemplo:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:80cd82cf-4cea-453b-8e70-6381f315a78a" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">public</span> <span style="color:#0000ff">partial</span> <span style="color:#0000ff">class</span> <span style="color:#2b91af">PageNumberChooser</span> : <span style="color:#2b91af">PhoneApplicationPage</span></li>
<li style="background: #f3f3f3">    {</li>
<li>        <span style="color:#2b91af">PhoneNumberChooserTask</span> phoneNumberChooserTask;</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>        <span style="color:#0000ff">public</span> PageNumberChooser()</li>
<li style="background: #f3f3f3">        {</li>
<li>            InitializeComponent();</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>            <span style="color:#0000ff">this</span>.phoneNumberChooserTask = <span style="color:#0000ff">new</span> <span style="color:#2b91af">PhoneNumberChooserTask</span>();</li>
<li style="background: #f3f3f3">            <span style="color:#0000ff">this</span>.phoneNumberChooserTask.Completed += <span style="color:#0000ff">new</span> <span style="color:#2b91af">EventHandler</span>&lt;<span style="color:#2b91af">PhoneNumberResult</span>&gt;(phoneNumberChooserTask_Completed);</li>
<li>        }</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>        <span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> phoneNumberChooserTask_Completed(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">PhoneNumberResult</span> e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            <span style="color:#0000ff">if</span> (e.TaskResult == <span style="color:#2b91af">TaskResult</span>.OK)</li>
<li style="background: #f3f3f3">            {</li>
<li>                <span style="color:#008000">// Create, initialize and show SMS composer launcher</span></li>
<li style="background: #f3f3f3">                <span style="color:#2b91af">MessageBox</span>.Show( <span style="color:#a31515">&quot;Numero Seleccionado:&quot;</span> + e.PhoneNumber);</li>
<li>            }</li>
<li style="background: #f3f3f3">        }</li>
<li>&nbsp;</li>
<li style="background: #f3f3f3">        <span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> btnChoosePhoneNumber_Click(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">RoutedEventArgs</span> e)</li>
<li>        {</li>
<li style="background: #f3f3f3">            phoneNumberChooserTask.Show();</li>
<li>        }</li>
<li style="background: #f3f3f3">    }</li>
</ol></div>
</p></div>
</p></div>
<p>&#160;</p>
<p><a href="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/CallNumer.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="CallNumer" border="0" alt="CallNumer" src="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/CallNumer_thumb.png" width="388" height="245" /></a></p>
<p>&#160;</p>
<h2>SmsComposeTask</h2>
<p align="justify">Si lo que necesitamos es crear y enviar un mensaje desde nuestra aplicación lo haremos mediante el objetod SmsComposeTask, que mostrara la pantalla para crear un nuevo mensaje.</p>
<p>Ejemplo:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:ec2670ed-8a46-41b7-af51-3cf6b8b670a0" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 400px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">public</span> <span style="color:#0000ff">partial</span> <span style="color:#0000ff">class</span> <span style="color:#2b91af">PageSendMessage</span> : <span style="color:#2b91af">PhoneApplicationPage</span></li>
<li style="background: #f3f3f3">    {</li>
<li>        <span style="color:#2b91af">SmsComposeTask</span> smsComposeTask;</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>        <span style="color:#0000ff">public</span> PageSendMessage()</li>
<li style="background: #f3f3f3">        {</li>
<li>            InitializeComponent();</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>            <span style="color:#0000ff">this</span>.smsComposeTask = <span style="color:#0000ff">new</span> <span style="color:#2b91af">SmsComposeTask</span>();</li>
<li style="background: #f3f3f3">        }</li>
<li>&nbsp;</li>
<li style="background: #f3f3f3">        <span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> btnSendSMS_Click(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">RoutedEventArgs</span> e)</li>
<li>        {</li>
<li style="background: #f3f3f3">            smsComposeTask.To = <span style="color:#a31515">&quot;921 111 99 69&quot;</span>;</li>
<li>            smsComposeTask.Body =</li>
<li style="background: #f3f3f3">                <span style="color:#a31515">&quot;Hello! This is a test sms message!&quot;</span>;</li>
<li>            smsComposeTask.Show();</li>
<li style="background: #f3f3f3">        }</li>
<li>    }</li>
</ol></div>
</p></div>
</p></div>
<p>&#160;</p>
<p><a href="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/SendSms.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="SendSms" border="0" alt="SendSms" src="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/SendSms_thumb.png" width="425" height="267" /></a></p>
<p><a href="http://williamsrodriguez.com/WP7Ejemplos/WP7PhoneNumbers.zip" target="_blank">Aquí el código Fuente…</a></p>
<p>Saludos..</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsrodriguez.com/windowsphone/?feed=rss2&#038;p=82</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seleccionar/Tomar Fotograf&#237;as mediante desde WP7</title>
		<link>http://williamsrodriguez.com/windowsphone/?p=75&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=seleccionartomar-fotografas-mediante-desde-wp7</link>
		<comments>http://williamsrodriguez.com/windowsphone/?p=75#comments</comments>
		<pubDate>Thu, 15 Sep 2011 00:23:39 +0000</pubDate>
		<dc:creator>Williams Rodriguez</dc:creator>
				<category><![CDATA[Launchers and Choosers]]></category>
		<category><![CDATA[CameraCaptureTask]]></category>
		<category><![CDATA[PhotoChooserTask]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://williamsrodriguez.com/windowsphone/?p=75</guid>
		<description><![CDATA[En este post analizaremos la forma en la cual Windows Phone 7 nos permite lanzar la librería de fotografías en el teléfono y habilita al usuario seleccionar una e incluso tomar una nueva fotografía desde el mismo dispositivo. Seleccionar una foto existente en la librería Para realizar este ejemplo necesitaremos hacer uso de la clase [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">En este post analizaremos la forma en la cual Windows Phone 7 nos permite lanzar la librería de fotografías en el teléfono y habilita al usuario seleccionar una e incluso tomar una nueva fotografía desde el mismo dispositivo.</p>
<h2 align="justify">Seleccionar una foto existente en la librería</h2>
<p align="justify">Para realizar este ejemplo necesitaremos hacer uso de la clase PhotoChooserTask, esta clase expone el método Show() que es el encargado de lanzar la librería al usuario y podemos recuperar la selección hecha a través del evento Completed.</p>
<ul>
<li>NameSpace: Microsoft.Phone.Task </li>
<li>Assembly: Microsoft.Phone ( en Microsoft.Phone.dll ) </li>
</ul>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:3a3f1cb8-4700-4bd1-86c6-0d283cd77c84" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 400px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">public</span> <span style="color:#0000ff">partial</span> <span style="color:#0000ff">class</span> <span style="color:#2b91af">Page1</span> : <span style="color:#2b91af">PhoneApplicationPage</span></li>
<li style="background: #f3f3f3">    {</li>
<li>        <span style="color:#2b91af">PhotoChooserTask</span> photoChooserTask;</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>        <span style="color:#0000ff">public</span> Page1()</li>
<li style="background: #f3f3f3">        {</li>
<li>            InitializeComponent();</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>            <span style="color:#0000ff">this</span>.photoChooserTask = <span style="color:#0000ff">new</span> <span style="color:#2b91af">PhotoChooserTask</span>();</li>
<li style="background: #f3f3f3">            <span style="color:#0000ff">this</span>.photoChooserTask.Completed += <span style="color:#0000ff">new</span> <span style="color:#2b91af">EventHandler</span>&lt;<span style="color:#2b91af">PhotoResult</span>&gt;(photoChooserTask_Completed);</li>
<li>        }</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>        <span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> loadPhoto_Click(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">RoutedEventArgs</span> e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            photoChooserTask.Show();</li>
<li style="background: #f3f3f3">        }</li>
<li>&nbsp;</li>
<li style="background: #f3f3f3">        <span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> photoChooserTask_Completed(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">PhotoResult</span> e)</li>
<li>        {</li>
<li style="background: #f3f3f3">            <span style="color:#2b91af">BitmapImage</span> image = <span style="color:#0000ff">new</span> <span style="color:#2b91af">BitmapImage</span>();</li>
<li>            image.SetSource(e.ChosenPhoto);</li>
<li style="background: #f3f3f3">            <span style="color:#0000ff">this</span>.img.Source = image;</li>
<li>        }</li>
<li style="background: #f3f3f3">    }</li>
</ol></div>
</p></div>
</p></div>
<p align="justify">Nota: El <em>photoChooserTask_Completed</em> es lanzado inmediatamente después de que la foto es seleccionada, por lo tanto podemos fácilmente manipular el PhotoResult recibido en este caso el stream de la foto seleccionada, en nuestro ejemplo tenemos un control imagen en donde es mostrada.</p>
<p align="center"><a href="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/ChooserTask.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="ChooserTask" border="0" alt="ChooserTask" src="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/ChooserTask_thumb.png" width="375" height="236" /></a></p>
<h2>Tomar una foto desde la cámara</h2>
<p align="justify">La clase CameraCaptureTask lanza la cámara del Windows Phone y habilita a los usuario a tomar una foto desde la aplicación, una vez que la foto es tomada, podemos almacenarla en el Media Library para lo cual necesitamos una referencia a XNA.Framework o simplemente la establecemos como ImageSource como en el ejemplo anterior.</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:dc8b40fd-beb2-44b8-812c-fcf5de35b7b0" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 500px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">public</span> <span style="color:#0000ff">partial</span> <span style="color:#0000ff">class</span> <span style="color:#2b91af">Page2</span> : <span style="color:#2b91af">PhoneApplicationPage</span></li>
<li style="background: #f3f3f3">    {</li>
<li>        <span style="color:#2b91af">CameraCaptureTask</span> photoCameraCapture;</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>        <span style="color:#0000ff">public</span> Page2()</li>
<li style="background: #f3f3f3">        {</li>
<li>            InitializeComponent();</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>            <span style="color:#0000ff">this</span>.photoCameraCapture = <span style="color:#0000ff">new</span> <span style="color:#2b91af">CameraCaptureTask</span>();</li>
<li style="background: #f3f3f3">            <span style="color:#0000ff">this</span>.photoCameraCapture.Completed += <span style="color:#0000ff">new</span> <span style="color:#2b91af">EventHandler</span>&lt;<span style="color:#2b91af">PhotoResult</span>&gt;(photoCameraCapture_Completed);</li>
<li>        }</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>        <span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> takePhoto_Click(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">RoutedEventArgs</span> e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            photoCameraCapture.Show();</li>
<li style="background: #f3f3f3">        }</li>
<li>&nbsp;</li>
<li style="background: #f3f3f3">        <span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> photoCameraCapture_Completed(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">PhotoResult</span> e)</li>
<li>        {</li>
<li style="background: #f3f3f3">            <span style="color:#0000ff">if</span> (e.TaskResult == <span style="color:#2b91af">TaskResult</span>.OK)</li>
<li>            {</li>
<li style="background: #f3f3f3">                <span style="color:#2b91af">BitmapImage</span> image = <span style="color:#0000ff">new</span> <span style="color:#2b91af">BitmapImage</span>();</li>
<li>                image.SetSource(e.ChosenPhoto);</li>
<li style="background: #f3f3f3">                <span style="color:#0000ff">this</span>.img.Source = image;</li>
<li>            }</li>
<li style="background: #f3f3f3">        }</li>
<li>    }</li>
</ol></div>
</p></div>
</p></div>
<p><a href="http://bit.ly/q07sXP" target="_blank">Aquí el código</a></p>
<p>Saludos…</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsrodriguez.com/windowsphone/?feed=rss2&#038;p=75</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trabajando con Emails en Windows Phone 7</title>
		<link>http://williamsrodriguez.com/windowsphone/?p=72&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=trabajando-con-emails-en-windows-phone-7</link>
		<comments>http://williamsrodriguez.com/windowsphone/?p=72#comments</comments>
		<pubDate>Wed, 14 Sep 2011 03:51:12 +0000</pubDate>
		<dc:creator>Williams Rodriguez</dc:creator>
				<category><![CDATA[Launchers and Choosers]]></category>
		<category><![CDATA[EmailAddressChoserTask]]></category>
		<category><![CDATA[EmailComposeTask]]></category>
		<category><![CDATA[SaveEmailAdressTask]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://williamsrodriguez.com/windowsphone/?p=72</guid>
		<description><![CDATA[En este articulo vamos a cubrir las formas en las que podemos manejar los correos electrónicos en Windows Phone 7 con SaveEmailAdressTask, EmailAddressChoserTask y EmailComposeTask. Las tareas mas comunes son: Crear un correo electrónico Enviar correos electrónicos Agregar una nueva dirección a los detalles de un contacto Seleccionar una dirección de correo de lista existente [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">En este articulo vamos a cubrir las formas en las que podemos manejar los correos electrónicos en Windows Phone 7 con SaveEmailAdressTask, EmailAddressChoserTask y EmailComposeTask. Las tareas mas comunes son:</p>
<ul>
<li>
<div align="justify">Crear un correo electrónico</div>
</li>
<li>
<div align="justify">Enviar correos electrónicos</div>
</li>
<li>
<div align="justify">Agregar una nueva dirección a los detalles de un contacto</div>
</li>
<li>
<div align="justify">Seleccionar una dirección de correo de lista existente</div>
</li>
</ul>
<h2 align="justify">Almacenar un correo a la lista de contactos</h2>
<p align="justify">Esta tarea es ejecutada con ayuda de la clase SaveEmailAddress:</p>
<ul>
<li>
<div align="justify">Namespace: Microsoft.Phone.Task</div>
</li>
<li>
<div align="justify">Assembly: Microsoft.Phone (Microsoft.Phone.dll)</div>
</li>
</ul>
<p align="justify">Permite que tu aplicación muestre la pantalla de contactos y habilita a los usuarios para guardar un nuevo correo electrónico a la lista de contactos, esto es hecho a través del método Show() del objeto SaveEmailAddressTask y podemos obtener el resultado de la operación chooser manejando el evento.</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:3eed7b2a-d4e7-4617-8d17-b31ce6385488" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 500px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">public</span> <span style="color:#0000ff">partial</span> <span style="color:#0000ff">class</span> <span style="color:#2b91af">Page1</span> : <span style="color:#2b91af">PhoneApplicationPage</span></li>
<li style="background: #f3f3f3">    {</li>
<li>        <span style="color:#2b91af">SaveEmailAddressTask</span> saveEmailAddressTask;</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>        <span style="color:#0000ff">public</span> Page1()</li>
<li style="background: #f3f3f3">        {</li>
<li>            InitializeComponent();</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>            <span style="color:#0000ff">this</span>.saveEmailAddressTask = <span style="color:#0000ff">new</span> <span style="color:#2b91af">SaveEmailAddressTask</span>();</li>
<li style="background: #f3f3f3">            <span style="color:#0000ff">this</span>.saveEmailAddressTask.Completed += <span style="color:#0000ff">new</span> <span style="color:#2b91af">EventHandler</span>&lt;<span style="color:#2b91af">TaskEventArgs</span>&gt;(saveEmailAddressTask_Completed);</li>
<li>        }</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>        <span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> saveEmailAddressTask_Completed(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">TaskEventArgs</span> e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            <span style="color:#0000ff">if</span> (e.TaskResult == <span style="color:#2b91af">TaskResult</span>.OK)</li>
<li style="background: #f3f3f3">            {</li>
<li>                <span style="color:#2b91af">MessageBox</span>.Show(<span style="color:#a31515">&quot;Email successfully Saved..&quot;</span>);</li>
<li style="background: #f3f3f3">            }</li>
<li>        }</li>
<li style="background: #f3f3f3">    }</li>
</ol></div>
</p></div>
</p></div>
<p>Siempre podremos modificar el actual objeto a través de sus <a href="http://bit.ly/mUpUru" target="_blank">propiedades y métodos</a></p>
<h2 align="justify">Elegir un correo electrónico existente</h2>
<p align="justify">Escoger un email existente es una tarea fácil a través de la clase EmailAddressChooserTask, la cual lanza la lista de contactos de Windows Phone y permite al usuario seleccionar alguno en particular.</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:5a32df6d-1600-4149-8917-03f970c59de6" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 400px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">public</span> <span style="color:#0000ff">partial</span> <span style="color:#0000ff">class</span> <span style="color:#2b91af">Page1</span> : <span style="color:#2b91af">PhoneApplicationPage</span></li>
<li style="background: #f3f3f3">    {</li>
<li>        <span style="color:#2b91af">EmailAddressChooserTask</span> emailAddressChooserTask;</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>        <span style="color:#0000ff">public</span> Page1()</li>
<li style="background: #f3f3f3">        {</li>
<li>            InitializeComponent();</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>            <span style="color:#0000ff">this</span>.emailAddressChooserTask = <span style="color:#0000ff">new</span> <span style="color:#2b91af">EmailAddressChooserTask</span>();</li>
<li style="background: #f3f3f3">            <span style="color:#0000ff">this</span>.emailAddressChooserTask.Completed += <span style="color:#0000ff">new</span> <span style="color:#2b91af">EventHandler</span>&lt;<span style="color:#2b91af">EmailResult</span>&gt;(emailAddressChooserTask_Completed);</li>
<li>        }</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>        <span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> emailAddressChooserTask_Completed(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">EmailResult</span> e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            <span style="color:#0000ff">if</span> (e.TaskResult == <span style="color:#2b91af">TaskResult</span>.OK)</li>
<li style="background: #f3f3f3">            {</li>
<li>                <span style="color:#2b91af">MessageBox</span>.Show(<span style="color:#a31515">&quot;Selected email :&quot;</span> + e.Email);</li>
<li style="background: #f3f3f3">            }</li>
<li>        }</li>
<li style="background: #f3f3f3">    }</li>
</ol></div>
</p></div>
</p></div>
<p>&#160;</p>
<h2 align="justify">Crear un correo electrónico</h2>
<p align="justify">EmailComposeTask nos permite lanzar el formulario de nuevo correo electrónico desde nuestra aplicación, cabe mencionar que la dirección de correo puede ser dada como un simple String sin embargo en el mundo real el usuario final escogerá esta dirección desde su lista de contacto o en su defecto la ingresara manualmente.</p>
<p align="justify">Ejemplo #1</p>
<p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:a5c2fde8-dc2a-40ad-9057-a186c6ac6c8f" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 400px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> emailAddressChooserTask_Completed(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">EmailResult</span> e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            <span style="color:#0000ff">if</span> (e.TaskResult == <span style="color:#2b91af">TaskResult</span>.OK)</li>
<li style="background: #f3f3f3">            {</li>
<li>                <span style="color:#2b91af">MessageBox</span>.Show(<span style="color:#a31515">&quot;Selected email :&quot;</span> + e.Email);</li>
<li style="background: #f3f3f3">        </li>
<li>                <span style="color:#008000">//in-real world application user expect to select it from his contacts and if not found enter manually.</span></li>
<li style="background: #f3f3f3">                <span style="color:#008000">//EmailComposeTask emailComposeTask = new EmailComposeTask();</span></li>
<li>                <span style="color:#008000">//emailComposeTask.To = e.Email; </span></li>
<li style="background: #f3f3f3">                <span style="color:#008000">//emailComposeTask.To = saveEmailAddressTask.Email;</span></li>
<li>                <span style="color:#008000">//emailComposeTask.Body = &quot;WP7 Emails Demo&quot;;</span></li>
<li style="background: #f3f3f3">                <span style="color:#008000">//emailComposeTask.Cc = &quot;testmail2@test.com&quot;;</span></li>
<li>                <span style="color:#008000">//emailComposeTask.Subject = &quot;Windows Phone 7&quot;;</span></li>
<li style="background: #f3f3f3">                <span style="color:#008000">//emailComposeTask.Show();</span></li>
<li>            }</li>
<li style="background: #f3f3f3">        }</li>
</ol></div>
</p></div>
</p></div>
</p>
<p>Ejemplo #2</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:7768f289-cf48-4269-91f9-478635c0d6f8" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 400px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> btnComposeMail_Click(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">RoutedEventArgs</span> e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            <span style="color:#2b91af">EmailComposeTask</span> emailComposeTask = <span style="color:#0000ff">new</span> <span style="color:#2b91af">EmailComposeTask</span>();</li>
<li style="background: #f3f3f3">            emailComposeTask.To = <span style="color:#a31515">&quot;chris@example.com&quot;</span>;</li>
<li>            emailComposeTask.To = saveEmailAddressTask.Email;</li>
<li style="background: #f3f3f3">            emailComposeTask.Body = <span style="color:#a31515">&quot;WP7 Emails Demo&quot;</span>;</li>
<li>            emailComposeTask.Cc = <span style="color:#a31515">&quot;testmail2@test.com&quot;</span>;</li>
<li style="background: #f3f3f3">            emailComposeTask.Subject = <span style="color:#a31515">&quot;Windows Phone 7&quot;</span>;</li>
<li>            emailComposeTask.Show();</li>
<li style="background: #f3f3f3">        }</li>
</ol></div>
</p></div>
</p></div>
<p>Nota: Desafortunadamente algunos Launchers no trabajan en el emulador. Por ejemplo el EmailComposeTask asume que tienes una cuenta de correo configurada en el dispositivo y como el emulador nos impide configurar alguna nos es imposible probar el Launcher.</p>
<p><a href="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/Email.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="Email" border="0" alt="Email" src="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/Email_thumb.png" width="244" height="154" /></a>&#160; <a href="http://williamsrodriguez.com/WP7Ejemplos/WP7EmailsTask.zip" target="_blank">Aquí el código de ejemplo</a></p>
<p>Saludos…</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsrodriguez.com/windowsphone/?feed=rss2&#038;p=72</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducci&#243;n a &#8220;Launchers and Choosers&#8221; en WP7</title>
		<link>http://williamsrodriguez.com/windowsphone/?p=69&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=introduccin-a-launchers-and-choosers-en-wp7</link>
		<comments>http://williamsrodriguez.com/windowsphone/?p=69#comments</comments>
		<pubDate>Wed, 14 Sep 2011 00:36:14 +0000</pubDate>
		<dc:creator>Williams Rodriguez</dc:creator>
				<category><![CDATA[Launchers and Choosers]]></category>
		<category><![CDATA[Choosers]]></category>
		<category><![CDATA[Launchers]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://williamsrodriguez.com/windowsphone/?p=69</guid>
		<description><![CDATA[En este articulo haremos una breve introducción a los “Launchers and Choosers” de Windows Phone 7. Son APIs que habilitan a las aplicaciones Windows Phone para proveer un conjunto de tareas comunes a sus usuarios (acceso indirecto a las características del teléfono) como llamadas telefónicas, envió de correos electrónicos y tomar fotografías. Launchers Básicamente son [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">En este articulo haremos una breve introducción a los <a href="http://bit.ly/pKAvmg" target="_blank">“Launchers and Choosers”</a> de Windows Phone 7. Son APIs que habilitan a las aplicaciones Windows Phone para proveer un conjunto de tareas comunes a sus usuarios (acceso indirecto a las características del teléfono) como llamadas telefónicas, envió de correos electrónicos y tomar fotografías.</p>
<h2 align="justify">Launchers</h2>
<p align="justify">Básicamente son un conjunto de APIs que te permiten acceder a funcionalidades propias del teléfono como lo son el envió de SMS, búsqueda de correos electrónicos, etc. Sin embargo algo muy importante es que los Launchers NO regresan datos a la aplicación que los llamo.</p>
<p align="justify">Aquí una lista de los Lauchers habilitados para WP7.1:</p>
<ul>
<li>
<div align="justify">Namespace: Microsoft.Phone.Task</div>
</li>
<li>
<div align="justify">Assembly: Microsoft.Phone (en Microsoft.phone.dll)</div>
</li>
</ul>
<p align="justify"><strong>EmailComposeTask</strong> Permite que envíes un correo electrónico desde tu aplicación sin lanzar el formulario de nuevo email.</p>
<p align="justify"><strong>MarketplaceDetailTask</strong> Lanza la aplicación cliente del Marketplace en el Windows Phone y despliega una pagina con los detalles de un producto especificado.</p>
<p align="justify"><strong>MarketplaceHubTask</strong> Lanza la aplicación cliente de Marketplace en el Windows Phone.</p>
<p align="justify"><strong>MarketplaceReviewTask</strong> Lanza la aplicación cliente del Marketplace en el Windows Phone y despliega una pagina con el resumen de un producto especifico.</p>
<p align="justify"><strong>MarketplaceSearchTask</strong> Lanza la aplicación cliente del Marketplace en el Windows Phone la cual muestra los resultados de la búsqueda obtenidos a partir de los parámetros proporcionados.</p>
<p align="justify"><strong>MediaPlayerLauncher </strong>Lanza la aplicación media player y ejecuta el archivo media especificado.</p>
<p align="justify"><strong>PhoneCallTask </strong>Habilita que tu aplicación realice llamadas telefónicas lanzando la aplicación de teléfono nativa en el dispositivo.</p>
<p align="justify"><strong>SearchTask </strong>Lanza la aplicación Web de Búsqueda.</p>
<p align="justify"><strong>SmsComposeTask </strong>Lanza la aplicación para enviar un nuevo mensaje SMS.</p>
<p align="justify"><strong>WebBrowserTask </strong>Lanza el navegador Web y despliega la URL especificada.</p>
<p align="justify">Nota: Desafortunadamente algunos Launchers no trabajan en el emulador. Por ejemplo el EmailComposeTask asume que tienes una cuenta de correo configurada en el dispositivo y como el emulador nos impide configurar alguna nos es imposible probar el Launcher.</p>
<p align="justify">Nota: Cada Launcher tiene su propio conjunto de propiedades, pero después de configurar cualquiera de ellas es necesario llamar al método Show() para que sea mostrado al usuario.</p>
<h2>Choosers</h2>
<p align="justify">Un Chooser al igual que un launcher es una API que permite lanzar una aplicación compilada en el Windows Phone, sin embargo el Chooser recupera información relacionada con la interacción del usuario y la aplicación. Por ejemplo:</p>
<p align="justify">Tu aplicación puede utilizar un Chooser para lanzar el catalogo de fotos y regresar la seleccionada o bien lanzar la cámara y regresarte la foto tomada.</p>
<p align="justify">Aquí una lista de los Lauchers habilitados para WP7.1:</p>
<ul>
<li>
<div align="justify">Namespace: Microsoft.Phone.Task</div>
</li>
<li>
<div align="justify">Assembly: Microsoft.Phone (en Microsoft.phone.dll)</div>
</li>
</ul>
<p align="justify"><strong>CameraCaptureTask </strong>Lanza la aplicación cámara para que el usuario tome una foto.</p>
<p align="justify"><strong>EmailAdressChooserTask </strong>Lanza la aplicación de contactos, que permite al usuario seleccionar la dirección de correo de un contacto.</p>
<p align="justify"><strong>PhoneNumberChooserTask</strong> Lanza la aplicación de contactos, que permite al usuario seleccionar el numero de teléfono de un contacto.</p>
<p align="justify"><strong>PhotoChooserTask </strong>Lanza el seleccionador de fotos para que el usuario escoja una foto.</p>
<p align="justify"><strong>SaveEmailAddressTask </strong>Lanza la aplicación de contactos y almacena la dirección de correo dada a la lista de contactos.</p>
<p align="justify"><strong>SavePhoneNumberTask</strong> Lanza la aplicación de contactos y almacena el numero telefónico dado a la lista de contactos.</p>
<p align="justify">Nota: Un ejemplo de la manera de hacer esto posible en programación:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:6fa8a759-3ef6-4cb3-b0ab-1ea675f5db04" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 400px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> photoChooserTask_Completed(<span style="color:#0000ff">object</span> sender, PhotoResult e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            BitmapImage image = <span style="color:#0000ff">new</span> BitmapImage();</li>
<li style="background: #f3f3f3">            image.SetSource(e.ChosenPhoto);</li>
<li>            <span style="color:#0000ff">this</span>.img.Source = image;</li>
<li style="background: #f3f3f3">        }</li>
</ol></div>
</p></div>
</p></div>
<p>&#160;</p>
<p align="justify">Esta es toda la información que necesitas para empezar a desarrollar tus primeras aplicaciones, mas adelante veremos cada una de estas tareas mas a detalle.</p>
<p align="justify">Saludos…</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsrodriguez.com/windowsphone/?feed=rss2&#038;p=69</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Leer y Almacenar im&#225;genes en WP7</title>
		<link>http://williamsrodriguez.com/windowsphone/?p=68&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=leer-y-almacenar-imgenes-en-wp7</link>
		<comments>http://williamsrodriguez.com/windowsphone/?p=68#comments</comments>
		<pubDate>Sun, 11 Sep 2011 15:13:49 +0000</pubDate>
		<dc:creator>Williams Rodriguez</dc:creator>
				<category><![CDATA[Isolated Storage]]></category>
		<category><![CDATA[Imagenes]]></category>
		<category><![CDATA[Windows Phone 7]]></category>
		<category><![CDATA[XNA Framwork]]></category>

		<guid isPermaLink="false">http://williamsrodriguez.com/windowsphone/?p=68</guid>
		<description><![CDATA[En este post hablaremos sobre la forma de leer y almacenar imágenes dentro y desde el Isolated Storage de Windows Phone 7. Para empezar creamos un proyecto en WP7 y le agregamos una imagen llamada “logo.jog” con el build action en “Content”. Seguido incluimos los siguientes nombres de espacio en la pagina MainPage.xaml.cs (alternativamente puedes [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">En este post hablaremos sobre la forma de leer y almacenar imágenes dentro y desde el Isolated Storage de Windows Phone 7.</p>
<p align="justify">Para empezar creamos un proyecto en WP7 y le agregamos una imagen llamada “logo.jog” con el build action en “Content”.</p>
<p align="center"><a href="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/Williams_Rodriguez_Isolated-Storage_Conten.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="Williams_Rodriguez_Isolated Storage_Conten" border="0" alt="Williams_Rodriguez_Isolated Storage_Conten" src="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/Williams_Rodriguez_Isolated-Storage_Conten_thumb.png" width="202" height="244" /></a></p>
<p align="justify">Seguido incluimos los siguientes nombres de espacio en la pagina MainPage.xaml.cs (alternativamente puedes utilizarlos en cualquier otra pagina).</p>
<p>&#160;</p>
<div style="padding-bottom: 0px; padding-left: 0px; width: 579px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:c4381f84-ce54-4d4d-9788-a4463acbec65" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 500px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">using</span> System.IO.IsolatedStorage;</li>
<li style="background: #f3f3f3"><span style="color:#0000ff">using</span> System.Windows.Media.Imaging;</li>
<li><span style="color:#0000ff">using</span> System.IO;</li>
<li style="background: #f3f3f3"><span style="color:#0000ff">using</span> System.Windows.Resources;</li>
<li><span style="color:#0000ff">using</span> Microsoft.Xna.Framework.Media;</li>
<li style="background: #f3f3f3"><span style="color:#0000ff">using</span> Microsoft.Phone.Tasks;</li>
</ol></div>
</p></div>
</p></div>
<p align="justify">Nota: Microsoft.Xna.Framework.Media es necesario solo si quieres leer/guardar imágenes en el <em>MediaLibrary.</em></p>
<p align="justify"><em></em></p>
<p align="justify">Leer y guardar imágenes en el Isolated Storage es una tarea común en muchas aplicaciones WP7. En Windows Phone 7 también es posible guardar imágenes en el MediaLibrary.</p>
<p align="justify">Básicamente utilizamos la clase IsolatedStorageFileStream para leer, escribir y crear archivos en el Isolated Storage. Sin embargo la principal diferencia cuando hablamos acerca de imágenes es el uso de las clases BitmapImage y WritableBitmap.</p>
<h2>Guardando imágenes en el Isolated Storage</h2>
<p>En el siguiente ejemplo verificamos si el archivo existe y después salvamos la imagen en el Isolated Storage Encodeando el objeto WritableBitmap a JPEG stream.</p>
<p>&#160;</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:4944caaf-fd8e-4720-8b82-7e3cb84c51ef" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 500px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> btnSave_Click(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">RoutedEventArgs</span> e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            <span style="color:#008000">// Create a filename for JPEG file in isolated storage.</span></li>
<li style="background: #f3f3f3">            <span style="color:#2b91af">String</span> tempJPEG = <span style="color:#a31515">&quot;logo.jpg&quot;</span>;</li>
<li>&nbsp;</li>
<li style="background: #f3f3f3">            <span style="color:#008000">// Create virtual store and file stream. Check for duplicate tempJPEG files.</span></li>
<li>            <span style="color:#0000ff">using</span> (<span style="color:#2b91af">IsolatedStorageFile</span> myIsolatedStorage = <span style="color:#2b91af">IsolatedStorageFile</span>.GetUserStoreForApplication())</li>
<li style="background: #f3f3f3">            {</li>
<li>                <span style="color:#0000ff">if</span> (myIsolatedStorage.FileExists(tempJPEG))</li>
<li style="background: #f3f3f3">                {</li>
<li>                    myIsolatedStorage.DeleteFile(tempJPEG);</li>
<li style="background: #f3f3f3">                }</li>
<li>&nbsp;</li>
<li style="background: #f3f3f3">                <span style="color:#2b91af">IsolatedStorageFileStream</span> fileStream = myIsolatedStorage.CreateFile(tempJPEG);</li>
<li>&nbsp;</li>
<li style="background: #f3f3f3">                <span style="color:#2b91af">StreamResourceInfo</span> sri = <span style="color:#0000ff">null</span>;</li>
<li>                <span style="color:#2b91af">Uri</span> uri = <span style="color:#0000ff">new</span> <span style="color:#2b91af">Uri</span>(tempJPEG, <span style="color:#2b91af">UriKind</span>.Relative);</li>
<li style="background: #f3f3f3">                sri = <span style="color:#2b91af">Application</span>.GetResourceStream(uri);</li>
<li>&nbsp;</li>
<li style="background: #f3f3f3">                <span style="color:#2b91af">BitmapImage</span> bitmap = <span style="color:#0000ff">new</span> <span style="color:#2b91af">BitmapImage</span>();</li>
<li>                bitmap.SetSource(sri.Stream);</li>
<li style="background: #f3f3f3">                <span style="color:#2b91af">WriteableBitmap</span> wb = <span style="color:#0000ff">new</span> <span style="color:#2b91af">WriteableBitmap</span>(bitmap);</li>
<li>&nbsp;</li>
<li style="background: #f3f3f3">                <span style="color:#008000">// Encode WriteableBitmap object to a JPEG stream.</span></li>
<li>                <span style="color:#2b91af">Extensions</span>.SaveJpeg(wb, fileStream, wb.PixelWidth, wb.PixelHeight, 0, 85);</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>                <span style="color:#008000">//wb.SaveJpeg(fileStream, wb.PixelWidth, wb.PixelHeight, 0, 85);</span></li>
<li style="background: #f3f3f3">                fileStream.Close();</li>
<li>            }</li>
<li style="background: #f3f3f3">        }</li>
</ol></div>
</p></div>
</p></div>
<p>Nota: Alternativamente podrias utilizar WritableBitmap para guardar una imagen: <em>wb.SaveJpeg(fileStream, wb.PixelWidth, wb.PixelHeight, 0, 85);</em></p>
<h2>Leer imágenes desde el IsolatedStorage</h2>
<p align="justify">En este ejemplo abrimos una archivo de imagen existente en el Isolated Storage y leemos su contenido después su contenido es mostrado en un control Image.</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:216ebc82-8b1c-47b5-a350-279e7738a974" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 400px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> btnRead_Click(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">RoutedEventArgs</span> e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            <span style="color:#2b91af">BitmapImage</span> bi = <span style="color:#0000ff">new</span> <span style="color:#2b91af">BitmapImage</span>();</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>            <span style="color:#0000ff">using</span> (<span style="color:#2b91af">IsolatedStorageFile</span> myIsolatedStorage = <span style="color:#2b91af">IsolatedStorageFile</span>.GetUserStoreForApplication())</li>
<li style="background: #f3f3f3">            {</li>
<li>                <span style="color:#0000ff">using</span> (<span style="color:#2b91af">IsolatedStorageFileStream</span> fileStream = myIsolatedStorage.OpenFile(<span style="color:#a31515">&quot;logo.jpg&quot;</span>, <span style="color:#2b91af">FileMode</span>.Open, <span style="color:#2b91af">FileAccess</span>.Read))</li>
<li style="background: #f3f3f3">                {</li>
<li>                    bi.SetSource(fileStream);</li>
<li style="background: #f3f3f3">                    <span style="color:#0000ff">this</span>.img.Height = bi.PixelHeight;</li>
<li>                    <span style="color:#0000ff">this</span>.img.Width = bi.PixelWidth;</li>
<li style="background: #f3f3f3">                }</li>
<li>            }</li>
<li style="background: #f3f3f3">            <span style="color:#0000ff">this</span>.img.Source = bi;</li>
<li>        }</li>
</ol></div>
</p></div>
</p></div>
<p align="justify">Nota: Cuando abrimos un archivo existente desde el Isolated Storage usamos FileMode.Open, cuando queremos leer un archivos usamos FileAccess.Read.</p>
<p align="left">Nota: “img” es un ImageControl ubicado en el MainPage.xaml: &lt;Image x:Name=”img” /&gt;</p>
<h2>Guardando una imagen en el phone Media Library</h2>
<p align="left">Antes que nada tienes que tener agregada la referencia al Microsoft.XNA.Framework, para poder tener acceso al Media Library:</p>
<p align="center"><a href="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/Williams_Rodriguez_Isolated-Storage_XNA.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="Williams_Rodriguez_Isolated Storage_XNA" border="0" alt="Williams_Rodriguez_Isolated Storage_XNA" src="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/Williams_Rodriguez_Isolated-Storage_XNA_thumb.png" width="244" height="222" /></a></p>
<p>&#160;</p>
<p>En este ejemplo leeremos una imagen desde el Isolated Storage y salvamos el archivo JPEG a el Media Library de Windows Phone, finalmente mostramos el resultado en el PhotoChooserTask.</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:26f3908f-bf3e-410b-b4c5-a8b3ed80f85c" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 400px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> btnMedia_Click(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">RoutedEventArgs</span> e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            <span style="color:#0000ff">using</span> (<span style="color:#2b91af">IsolatedStorageFile</span> myIsolatedStorage = <span style="color:#2b91af">IsolatedStorageFile</span>.GetUserStoreForApplication())</li>
<li style="background: #f3f3f3">            {</li>
<li>                <span style="color:#0000ff">using</span> (<span style="color:#2b91af">IsolatedStorageFileStream</span> fileStream = myIsolatedStorage.OpenFile(<span style="color:#a31515">&quot;logo.jpg&quot;</span>, <span style="color:#2b91af">FileMode</span>.Open, <span style="color:#2b91af">FileAccess</span>.Read))</li>
<li style="background: #f3f3f3">                {</li>
<li>                    <span style="color:#2b91af">MediaLibrary</span> mediaLibrary = <span style="color:#0000ff">new</span> <span style="color:#2b91af">MediaLibrary</span>();</li>
<li style="background: #f3f3f3">                    <span style="color:#2b91af">Picture</span> pic = mediaLibrary.SavePicture(<span style="color:#a31515">&quot;SavedLogo.jpg&quot;</span>, fileStream);</li>
<li>                    fileStream.Close();</li>
<li style="background: #f3f3f3">                }</li>
<li>            }</li>
<li style="background: #f3f3f3">&nbsp;</li>
<li>            <span style="color:#2b91af">PhotoChooserTask</span> photoChooserTask = <span style="color:#0000ff">new</span> <span style="color:#2b91af">PhotoChooserTask</span>();</li>
<li style="background: #f3f3f3">            photoChooserTask.Show();</li>
<li>        }</li>
</ol></div>
</p></div>
</p></div>
<p>&#160;</p>
<p>Finalmente aquí los resultados:</p>
<p><a href="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/Williams_Rodriguez_IsolatedStorage_MediaLibrary.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="Williams_Rodriguez_IsolatedStorage_MediaLibrary" border="0" alt="Williams_Rodriguez_IsolatedStorage_MediaLibrary" src="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/Williams_Rodriguez_IsolatedStorage_MediaLibrary_thumb.png" width="770" height="360" /></a></p>
<p><a href="http://williamsrodriguez.com/WP7Ejemplos/WP7LeerGuardarImagenes.zip" target="_blank">Código Fuente</a></p>
<p>Saludo…</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsrodriguez.com/windowsphone/?feed=rss2&#038;p=68</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Leer y guardar archivos XML usando XmlWriter</title>
		<link>http://williamsrodriguez.com/windowsphone/?p=61&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=leer-y-guardar-archivos-xml-usando-xmlwriter</link>
		<comments>http://williamsrodriguez.com/windowsphone/?p=61#comments</comments>
		<pubDate>Thu, 08 Sep 2011 15:38:46 +0000</pubDate>
		<dc:creator>Williams Rodriguez</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://williamsrodriguez.com/windowsphone/?p=61</guid>
		<description><![CDATA[Ahora escribiremos acerca de como leer y guardar archivos en el Isolated Storage usando XmlWriter. Partimos del hecho de que ya tenemos creada un proyecto para una aplicación en Windows Phone 7, seguido incluimos los siguientes nombres de espacio en el MainPage.xaml.cs (aun que definitivamente puedes utilizar este código en cualquier otra pagina). using System.Xml; [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Ahora escribiremos acerca de como leer y guardar archivos en el Isolated Storage usando XmlWriter.</p>
<p align="justify">Partimos del hecho de que ya tenemos creada un proyecto para una aplicación en Windows Phone 7, seguido incluimos los siguientes nombres de espacio en el MainPage.xaml.cs (aun que definitivamente puedes utilizar este código en cualquier otra pagina).</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:20c02521-222c-47bf-9fce-51997ee382e4" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 400px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">using</span> System.Xml;</li>
<li style="background: #f3f3f3"><span style="color:#0000ff">using</span> System.IO.IsolatedStorage;</li>
<li><span style="color:#0000ff">using</span> System.IO;</li>
</ol></div>
</p></div>
</p></div>
<p>&#160;</p>
<p align="justify">Leer y guardar archivos XML en el Isolated Storage es una tarea común para muchas aplicaciones WP7. En el Post anterior vimos como leer/guardar archivos XML usando XmlSerializer. En este post nos centraremos en ver como hacer esto usando XmlWriter.</p>
<p align="justify">Nota: Cuando trabajamos con archivos siempre usamos “<em>Using</em>” ya que nos provee de una conveniente sintaxis que asegura el uso correcto de IDisposable.</p>
<h2>Guardar un nuevo archivo XML usando XmlWriter</h2>
<p align="justify">En este ejemplo primero creamos un archivo llamado People2.xml en el Isolated Storage y después escribimos datos en el. </p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:9336c3d0-9183-400d-ba9d-44b7a45423ab" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 400px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> btnSaveWithoutSerielizer_Click(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">RoutedEventArgs</span> e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            <span style="color:#0000ff">using</span> (<span style="color:#2b91af">IsolatedStorageFile</span> myIsolatedStorage = <span style="color:#2b91af">IsolatedStorageFile</span>.GetUserStoreForApplication())</li>
<li style="background: #f3f3f3">            {</li>
<li>                <span style="color:#0000ff">using</span> (<span style="color:#2b91af">IsolatedStorageFileStream</span> isoStream = <span style="color:#0000ff">new</span> <span style="color:#2b91af">IsolatedStorageFileStream</span>(<span style="color:#a31515">&quot;People2.xml&quot;</span>, <span style="color:#2b91af">FileMode</span>.Create, myIsolatedStorage))</li>
<li style="background: #f3f3f3">                {</li>
<li>                    <span style="color:#2b91af">XmlWriterSettings</span> settings = <span style="color:#0000ff">new</span> <span style="color:#2b91af">XmlWriterSettings</span>();</li>
<li style="background: #f3f3f3">                    settings.Indent = <span style="color:#0000ff">true</span>;</li>
<li>                    <span style="color:#0000ff">using</span> (<span style="color:#2b91af">XmlWriter</span> writer = <span style="color:#2b91af">XmlWriter</span>.Create(isoStream, settings))</li>
<li style="background: #f3f3f3">                    {</li>
<li>&nbsp;</li>
<li style="background: #f3f3f3">                        writer.WriteStartElement(<span style="color:#a31515">&quot;p&quot;</span>, <span style="color:#a31515">&quot;person&quot;</span>, <span style="color:#a31515">&quot;urn:person&quot;</span>);</li>
<li>                        writer.WriteStartElement(<span style="color:#a31515">&quot;FirstName&quot;</span>, <span style="color:#a31515">&quot;&quot;</span>);</li>
<li style="background: #f3f3f3">                        writer.WriteString(<span style="color:#a31515">&quot;Kate&quot;</span>);</li>
<li>                        writer.WriteEndElement();</li>
<li style="background: #f3f3f3">                        writer.WriteStartElement(<span style="color:#a31515">&quot;LastName&quot;</span>, <span style="color:#a31515">&quot;&quot;</span>);</li>
<li>                        writer.WriteString(<span style="color:#a31515">&quot;Brown&quot;</span>);</li>
<li style="background: #f3f3f3">                        writer.WriteEndElement();</li>
<li>                        writer.WriteStartElement(<span style="color:#a31515">&quot;Age&quot;</span>, <span style="color:#a31515">&quot;&quot;</span>);</li>
<li style="background: #f3f3f3">                        writer.WriteString(<span style="color:#a31515">&quot;25&quot;</span>);</li>
<li>                        writer.WriteEndElement();</li>
<li style="background: #f3f3f3">                        <span style="color:#008000">// Ends the document</span></li>
<li>                        writer.WriteEndDocument();</li>
<li style="background: #f3f3f3">                        <span style="color:#008000">// Write the XML to the file.</span></li>
<li>                        writer.Flush();</li>
<li style="background: #f3f3f3">                    }</li>
<li>                }</li>
<li style="background: #f3f3f3">            }</li>
<li>        }</li>
</ol></div>
</p></div>
</p></div>
<p>&#160;</p>
<h2>Leer archivos XML usando StreamReader</h2>
<p align="justify">En este ejemplo primero abrimos un archivo XML existente llamado People2.xml desde el Isolated Storage y leemos su contenido, después mostramos su contenido en un TextBlock:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:3f2307f6-2e0d-4218-98c8-2de3b03ca5a2" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #ddd; max-height: 400px; overflow: auto">
<ol start="1" style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap">
<li><span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> btnReadWithoutSerielizer_Click(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">RoutedEventArgs</span> e)</li>
<li style="background: #f3f3f3">        {</li>
<li>            <span style="color:#0000ff">try</span></li>
<li style="background: #f3f3f3">            {</li>
<li>                <span style="color:#0000ff">using</span> (<span style="color:#2b91af">IsolatedStorageFile</span> myIsolatedStorage = <span style="color:#2b91af">IsolatedStorageFile</span>.GetUserStoreForApplication())</li>
<li style="background: #f3f3f3">                {</li>
<li>                    <span style="color:#2b91af">IsolatedStorageFileStream</span> isoFileStream = myIsolatedStorage.OpenFile(<span style="color:#a31515">&quot;People2.xml&quot;</span>, <span style="color:#2b91af">FileMode</span>.Open);</li>
<li style="background: #f3f3f3">                    <span style="color:#0000ff">using</span> (<span style="color:#2b91af">StreamReader</span> reader = <span style="color:#0000ff">new</span> <span style="color:#2b91af">StreamReader</span>(isoFileStream))</li>
<li>                    {</li>
<li style="background: #f3f3f3">                        <span style="color:#0000ff">this</span>.tbx.Text = reader.ReadToEnd();</li>
<li>                    }</li>
<li style="background: #f3f3f3">                }</li>
<li>            }</li>
<li style="background: #f3f3f3">            <span style="color:#0000ff">catch</span> </li>
<li>            { }</li>
<li style="background: #f3f3f3">        }</li>
</ol></div>
</p></div>
</p></div>
<p>&#160;</p>
<p><a href="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/Williams_Rodriguez_XmlWriter_Windows_Phone_7.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="Williams_Rodriguez_XmlWriter_Windows_Phone_7" border="0" alt="Williams_Rodriguez_XmlWriter_Windows_Phone_7" src="http://williamsrodriguez.com/windowsphone/wp-content/uploads/2011/09/Williams_Rodriguez_XmlWriter_Windows_Phone_7_thumb.png" width="244" height="182" /></a>&#160;<a href="http://bit.ly/qaamel" target="_blank">Aquí el código…</a></p>
<p>Saludos…</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsrodriguez.com/windowsphone/?feed=rss2&#038;p=61</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

