<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>La Liga Silverlight</title>
	
	<link>http://blogs.ligasilverlight.com</link>
	<description>La primera Comunidad MSDN en Español acerca de Silverlight y tecnologías relacionadas</description>
	<lastBuildDate>Fri, 03 Sep 2010 07:36:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/LaLigaSilverlight" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="laligasilverlight" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Entrada temporal usada para la detección del tema (d73e334e-b535-46c7-b0ed-9c5d67d3db9b – 3bfe001a-32de-4114-a6b4-4005b770f6d7)</title>
		<link>http://blogs.ligasilverlight.com/2010/09/entrada-temporal-usada-para-la-deteccin-del-tema-d73e334e-b535-46c7-b0ed-9c5d67d3db9b-3bfe001a-32de-4114-a6b4-4005b770f6d7/</link>
		<comments>http://blogs.ligasilverlight.com/2010/09/entrada-temporal-usada-para-la-deteccin-del-tema-d73e334e-b535-46c7-b0ed-9c5d67d3db9b-3bfe001a-32de-4114-a6b4-4005b770f6d7/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 07:36:03 +0000</pubDate>
		<dc:creator>raul.mayo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/2010/09/entrada-temporal-usada-para-la-deteccin-del-tema-d73e334e-b535-46c7-b0ed-9c5d67d3db9b-3bfe001a-32de-4114-a6b4-4005b770f6d7/</guid>
		<description><![CDATA[Se trata de una entrada temporal que no se eliminó. Elimínala manualmente. (e7488dec-754a-48d1-89a0-e4be5d742562 &#8211; 3bfe001a-32de-4114-a6b4-4005b770f6d7)
]]></description>
			<content:encoded><![CDATA[<p>Se trata de una entrada temporal que no se eliminó. Elimínala manualmente. (e7488dec-754a-48d1-89a0-e4be5d742562 &#8211; 3bfe001a-32de-4114-a6b4-4005b770f6d7)</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/09/entrada-temporal-usada-para-la-deteccin-del-tema-d73e334e-b535-46c7-b0ed-9c5d67d3db9b-3bfe001a-32de-4114-a6b4-4005b770f6d7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Actualización de Silverlight 4</title>
		<link>http://blogs.ligasilverlight.com/2010/09/actualizacin-de-silverlight-4/</link>
		<comments>http://blogs.ligasilverlight.com/2010/09/actualizacin-de-silverlight-4/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 04:13:06 +0000</pubDate>
		<dc:creator>Arturo Molina</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Actualizacion]]></category>
		<category><![CDATA[Anuncios]]></category>
		<category><![CDATA[Silverlight 4]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/2010/09/actualizacin-de-silverlight-4/</guid>
		<description><![CDATA[El día de ayer se liberó una actualización para Silverlight 4 (Versión 4.0.50826.0 para ser exactos). Este es un pequeño resumen de lo que incluye esta actualización:


Habilidad para agregar una nueva fila al control DataGrid 
Mejoras el tiempo de carga de las aplicaciones 
Soporte para la rueda del mouse en las aplicaciones fuera del navegador [...]]]></description>
			<content:encoded><![CDATA[<p>El día de ayer se liberó una actualización para Silverlight 4 (Versión 4.0.50826.0 para ser exactos). Este es un pequeño resumen de lo que incluye esta actualización:</p>
<p><span id="more-1300"></span></p>
<ul>
<li>Habilidad para agregar una nueva fila al control DataGrid </li>
<li>Mejoras el tiempo de carga de las aplicaciones </li>
<li>Soporte para la rueda del mouse en las aplicaciones fuera del navegador para Mac </li>
<li>Se arreglaron unos bugs relacionador con el uso de DRM para contenido multimedia </li>
<li>Se arregló una fuga de memoria relacionada con el uso de MouseCapture </li>
<li>Se arregló una fuga de memoria relacionada con el uso de DataTemplate </li>
</ul>
<p>Aquí los pasos para bajar la nueva versión:</p>
<h3>Para usuarios finales</h3>
<p>Lo recomendado en el <a href="http://timheuer.com/blog/archive/2010/09/01/silverlight-service-release-september-2010-gdr1.aspx" target="_blank">post de Tim Heuer</a> es modificar el tag de object que hospeda nuestro xap dentro de nuestra página:</p>
<pre class="brush: xml; highlight: [5,6];">&lt;object data=&quot;data:application/x-silverlight-2,&quot; type=&quot;application/x-silverlight-2&quot;
  width=&quot;640&quot; height=&quot;400&quot;&gt;
    &lt;param name=&quot;source&quot; value=&quot;YOUR_PATH_TO_XAP&quot; /&gt;
    &lt;param name=&quot;background&quot; value=&quot;white&quot; /&gt;
    &lt;param name=&quot;minRuntimeVersion&quot; value=&quot;4.0.50826.0&quot; /&gt;
    &lt;param name=&quot;autoUpgrade&quot; value=&quot;true&quot; /&gt;
      &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkID=149156&amp;amp;v=4.0.50826.0&quot; style=&quot;text-decoration: none&quot;&gt;
        &lt;img src=&quot;http://go.microsoft.com/fwlink/?LinkId=161376&quot; alt=&quot;Get Microsoft Silverlight&quot;
          style=&quot;border-style: none&quot; /&gt;
       &lt;/a&gt;
&lt;/object&gt;</pre>
<p>&#160;</p>
<p>La clave aquí están en las líneas 5 y 6, <a href="http://msdn.microsoft.com/es-es/library/cc917842(v=VS.95).aspx" target="_blank">minRuntimeVersion</a> indica que la versión mínima requerida para correr la aplicación y <a href="http://msdn.microsoft.com/es-mx/library/cc917827(v=VS.95).aspx" target="_blank">autoupgrade</a> le pedirá permiso al usuario para actualizar la aplicación si la versión de Silverlight instalada es menor a la requerida.</p>
<h3>Para desarrolladores</h3>
<p>Debes actualizar tanto el developer runtime como el SDK (preferentemente en ese orden). Aquí las ligas para realizarlo:</p>
<ul>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=188039">Windows <strong>developer</strong> runtime</a> </li>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=188040">Mac <strong>developer</strong> runtime</a> </li>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=188043">Silverlight 4.0.50826.0 SDK</a> </li>
</ul>
<p>Una vez instalados el runtime y el SDK puedes crear un nuevo proyecto de Silverlight y el tag de object reflejará automáticamente la nueva versión:</p>
<p><a href="http://jamolina.com/wp-content/uploads/2010/09/image.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://jamolina.com/wp-content/uploads/2010/09/image_thumb.png" width="634" height="480" /></a></p>
<p>Puedes leer más información en el post de <a href="http://timheuer.com/blog/archive/2010/09/01/silverlight-service-release-september-2010-gdr1.aspx" target="_blank">Tim Heuer</a> y en el Knowledge Base de la actualización (<a href="http://support.microsoft.com/kb/2164913/en-us" target="_blank">KB2164913</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/09/actualizacin-de-silverlight-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Cómo descargar las sesiones del Taller de Silverlight 4?</title>
		<link>http://blogs.ligasilverlight.com/2010/09/cmo-descargar-las-sesiones-del-taller-de-silverlight-4/</link>
		<comments>http://blogs.ligasilverlight.com/2010/09/cmo-descargar-las-sesiones-del-taller-de-silverlight-4/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 14:42:45 +0000</pubDate>
		<dc:creator>rodrigo.diaz</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/2010/09/cmo-descargar-las-sesiones-del-taller-de-silverlight-4/</guid>
		<description><![CDATA[Ahora que hemos estado llevando el Taller de Silverlight 4, esta ha sido la pregunta más frecuente que me han hecho.&#160; Aquí les dejo los pasos necesarios para poder descargar cualquiera de las Sesiones una vez que hayan sido efectuadas.&#160; De hecho estos mismos pasos son los necesarios para descargar a cualquier Web Cast que [...]]]></description>
			<content:encoded><![CDATA[<p>Ahora que hemos estado llevando el <a href="http://rdiazconcha.com/2010/08/anunciando-taller-de-silverlight-4/" target="_blank">Taller de Silverlight 4</a>, esta ha sido la pregunta más frecuente que me han hecho.&#160; Aquí les dejo los pasos necesarios para poder descargar cualquiera de las Sesiones una vez que hayan sido efectuadas.&#160; De hecho estos mismos pasos son los necesarios para descargar a cualquier Web Cast que ustedes asistan.</p>
<p><span id="more-1297"></span></p>
<p>Cabe mencionar que su disponibilidad es inmediata, es decir, justamente después de terminar la sesión pueden seguir estos pasos y descargar el video.</p>
<h4>Paso 1: Entren <u>al mismo vínculo</u> que usaron para registrarse a la Sesión en cuestión</h4>
<p><a href="http://rdiazconcha.com/2010/08/anunciando-taller-de-silverlight-4/" target="_blank">La lista de vínculos está en esta dirección</a></p>
<h4>Paso 2: Regístrense (no estoy seguro si se los vuelve a pedir si ya lo hicieron con anterioridad, por favor que alguien nos ayude a confirmar esto)</h4>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/09/image.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://blogs.ligasilverlight.com/wp-content/uploads/2010/09/image_thumb.png" width="504" height="89" /></a></p>
<h4>Paso 3: Indica un nombre para la Sesión de Live Meeting (requerido).&#160; Una vez hecho eso hagan clic en el botón “Confirmar”</h4>
<p><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://blogs.ligasilverlight.com/wp-content/uploads/2010/09/image1.png" width="504" height="158" /></p>
<h4>Paso 4: En la pantalla que dice “Gracias por registrarse” hagan clic en el botón “Descargar”</h4>
<p><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://blogs.ligasilverlight.com/wp-content/uploads/2010/09/image2.png" width="504" height="169" /></p>
<h4>Paso 5: Capturen su correo y nombre de Empresa (sí, otra vez <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smilewithtongueout" alt="Smile with tongue out" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/09/wlEmoticonsmilewithtongueout.png" />)</h4>
<p><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://blogs.ligasilverlight.com/wp-content/uploads/2010/09/image3.png" width="504" height="166" /></p>
<h4>Paso 6: Descarguen el video usando el icono de “Microsoft Office Live Meeting Replay”</h4>
<p><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://blogs.ligasilverlight.com/wp-content/uploads/2010/09/image4.png" width="504" height="183" /></p>
<h4>Paso 7: Se descargará un archivo .zip.&#160; Guárdenlo y abránlo ya que contiene el video en formato .wmv.</h4>
<p><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="SNAGHTML3d2d57" border="0" alt="SNAGHTML3d2d57" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/09/SNAGHTML3d2d57.png" width="504" height="362" /></p>
<p>Espero que esto aclare todas sus dudas al respecto.</p>
<p>&#160;</p>
<p>Salu2!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/09/cmo-descargar-las-sesiones-del-taller-de-silverlight-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La Liga Silverlight mencionada en .NET Rocks!</title>
		<link>http://blogs.ligasilverlight.com/2010/08/la-liga-silverlight-mencionada-en-net-rocks/</link>
		<comments>http://blogs.ligasilverlight.com/2010/08/la-liga-silverlight-mencionada-en-net-rocks/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 14:40:47 +0000</pubDate>
		<dc:creator>rodrigo.diaz</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[La Liga Silverlight]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/2010/08/la-liga-silverlight-mencionada-en-net-rocks/</guid>
		<description><![CDATA[Si no son escuchas regulares del podcast .NET Rocks! y son (o quieren ser)desarrolladores de .NET, déjenme decirles que se han perdido de mucho.&#160; .NET Rocks! es un podcast acerca de tecnología, principalmente .NET de Microsoft y es llevado a cabo por dos talentosas y conocidas personas: Carl Franklin y Richard Campbell.

En el último episodio [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/LigaSilverlight.png"><img style="background-image: none; border-right-width: 0px; margin: 0px 10px 0px 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="LigaSilverlight" border="0" alt="LigaSilverlight" align="left" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/LigaSilverlight_thumb.png" width="150" height="169" /></a>Si no son escuchas regulares del podcast <a href="http://www.dotnetrocks.com" target="_blank">.NET Rocks!</a> y son (o quieren ser)desarrolladores de .NET, déjenme decirles que se han perdido de mucho.&#160; .NET Rocks! es un podcast acerca de tecnología, principalmente .NET de Microsoft y es llevado a cabo por dos talentosas y conocidas personas: Carl Franklin y Richard Campbell.</p>
<p><span id="more-1283"></span></p>
<p>En el último episodio #585 se menciona a <a href="http://blogs.ligasilverlight.com/" target="_blank">La Liga Silverlight</a>, como la primera Comunidad MSDN en Español acerca de <a href="http://silverlight.net" target="_blank">Silverlight</a> y tecnologías relacionadas.&#160; Además, <a href="http://www.jamolina.com" target="_blank">Arturo Molina</a> los invita a Guadalajara… chequen lo que contestaron <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/wlEmoticonsmile.png" /></p>
<p>Los invito a que escuchen este episodio y que <a href="http://www.dotnetrocks.com" target="_blank">.NET Rocks!</a> esté en su lista de podcasts favoritos!</p>
<p><a href="http://www.dotnetrocks.com" target="_blank"><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://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image9.png" width="500" height="140" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/08/la-liga-silverlight-mencionada-en-net-rocks/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Anunciando: Taller de Silverlight 4</title>
		<link>http://blogs.ligasilverlight.com/2010/08/anunciando-taller-de-silverlight-4/</link>
		<comments>http://blogs.ligasilverlight.com/2010/08/anunciando-taller-de-silverlight-4/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 21:09:06 +0000</pubDate>
		<dc:creator>rodrigo.diaz</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[adiestramiento]]></category>
		<category><![CDATA[capacitación]]></category>
		<category><![CDATA[curso]]></category>
		<category><![CDATA[Entrenamiento]]></category>
		<category><![CDATA[formación]]></category>
		<category><![CDATA[latam]]></category>
		<category><![CDATA[MVP]]></category>
		<category><![CDATA[Silverlight 4]]></category>
		<category><![CDATA[Taller]]></category>
		<category><![CDATA[training]]></category>
		<category><![CDATA[Web Casts]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/2010/08/anunciando-taller-de-silverlight-4/</guid>
		<description><![CDATA[

Antes que otra cosa, quiero agradecer a todos y todas quienes me ayudaron a contestar la encuesta que preparé en días pasados.&#160; Recibí más de 250 respuestas de personas de diversos países: Argentina, Bolivia, Chile, Colombia, Costa Rica, Ecuador, El Salvador, España, Estados Unidos, Guatemala, México, Nicaragua, Perú y Venezuela.
Tomando en cuenta todas las respuestas, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://silverlight.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; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="sl4logo" border="0" alt="sl4logo" align="left" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/sl4logo.png" width="200" height="197" /></a></p>
<p><span id="more-1274"></span></p>
<p>Antes que otra cosa, quiero agradecer a todos y todas quienes me ayudaron a contestar la <a href="http://rdiazconcha.com/2010/08/encuesta-taller-de-silverlight-4/" target="_blank">encuesta</a> que preparé en días pasados.&#160; Recibí más de 250 respuestas de personas de diversos países: Argentina, Bolivia, Chile, Colombia, Costa Rica, Ecuador, El Salvador, España, Estados Unidos, Guatemala, México, Nicaragua, Perú y Venezuela.</p>
<p>Tomando en cuenta todas las respuestas, tengo el gusto en anunciarles el <strong>Taller de Silverlight 4</strong>: un curso constituído por 8 partes, de 1 hora cada una.&#160; Se llevará a cabo <u>en línea</u>, <u>por las noches.</u></p>
<h2>Taller de Silverlight 4</h2>
<h3>Descripción</h3>
<p>Este curso gratuito de 8 sesiones te ayudará a comprender los fundamentos de la plataforma de desarrollo de Silverlight y te servirá para tener los conocimientos necesarios para construir aplicativos Web de tipo RIA que hagan uso, validación y manipulación de datos.&#160; La gran mayoría de estos conceptos los podrás aprovechar también para el desarrollo de soluciones de Windows Phone 7!</p>
<h3>Temario general</h3>
<blockquote><p>Partes 1 y 2: Fundamentos de Silverlight</p>
<p>Partes 3 y 4: Aplicaciones Fuera del Navegador</p>
<p>Partes 5 y 6: Enlace y Validación de Datos</p>
<p>Partes 7 y 8: Consumiendo Datos</p>
</blockquote>
<h3>Para toda la información más actualizada acerca del taller <a href="http://rdiazconcha.com/2010/08/anunciando-taller-de-silverlight-4/" target="_blank">visiten esta página</a>.</h3>
<h3>Finalmente…</h3>
<p>No me queda mas que invitarlos a todos(as) a que asistan, estoy seguro de que aprenderán bastante de esta fabulosa tecnología!</p>
<p>Salu2!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/08/anunciando-taller-de-silverlight-4/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Taller de Silverlight 4 gratuito</title>
		<link>http://blogs.ligasilverlight.com/2010/08/taller-de-silverlight-4-gratuito/</link>
		<comments>http://blogs.ligasilverlight.com/2010/08/taller-de-silverlight-4-gratuito/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 03:53:58 +0000</pubDate>
		<dc:creator>Arturo Molina</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Silverlight 4]]></category>
		<category><![CDATA[Talleres]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/2010/08/taller-de-silverlight-4-gratuito/</guid>
		<description><![CDATA[Mi querido amigo Rodrigo Díaz está planeando un taller gratuito de Silverlight 4. Por el momento, está en fase de planeación y está pidiendo ayuda de la comunidad para saber qué es lo que funciona mejor para la mayoría (horarios, modalidad, temas, etc…)

Si tienes 3 minutos, puedes contestar la encuesta en su sitio para hacerle [...]]]></description>
			<content:encoded><![CDATA[<p>Mi querido amigo <a href="http://rdiazconcha.com" target="_blank">Rodrigo Díaz</a> está planeando un taller gratuito de Silverlight 4. Por el momento, está en fase de planeación y está pidiendo ayuda de la comunidad para saber qué es lo que funciona mejor para la mayoría (horarios, modalidad, temas, etc…)</p>
<p><span id="more-1267"></span></p>
<p>Si tienes 3 minutos, puedes contestar <a href="http://rdiazconcha.com/2010/08/encuesta-taller-de-silverlight-4/" target="_blank">la encuesta en su sitio</a> para hacerle saber qué es lo que mejor funciona para ti.</p>
<p>¡Gracias! y por favor corran la voz.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/08/taller-de-silverlight-4-gratuito/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WCF Ria Services V1.0 para Silverlight 4.- Filtrar datos desde el DomainService (Parte 4)</title>
		<link>http://blogs.ligasilverlight.com/2010/08/wcf-ria-services-v1-0-para-silverlight-4-filtrar-datos-desde-el-domainservice-parte-4/</link>
		<comments>http://blogs.ligasilverlight.com/2010/08/wcf-ria-services-v1-0-para-silverlight-4-filtrar-datos-desde-el-domainservice-parte-4/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 23:16:59 +0000</pubDate>
		<dc:creator>Jorge Levy</dc:creator>
				<category><![CDATA[WCF Ria Services]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/2010/08/wcf-ria-services-v1-0-para-silverlight-4-filtrar-datos-desde-el-domainservice-parte-4/</guid>
		<description><![CDATA[


Ahora bien, una vez que hemos enlistado la información desde la base datos, en esta entrada veremos cómo filtrar este resultado, es decir, mostrar solo los datos que cumplen cierto criterio.
Índice:          Introducción (Parte 1)           Obtener datos [...]]]></description>
			<content:encoded><![CDATA[<table border="0" cellspacing="0" cellpadding="2" width="582">
<tbody>
<tr>
<td valign="bottom" width="330">Ahora bien, una vez que hemos enlistado la información desde la base datos, en esta entrada veremos cómo filtrar este resultado, es decir, mostrar solo los datos que cumplen cierto criterio.</td>
<td valign="top" width="250" align="right">Índice:          <br /><a href="http://blogs.ligasilverlight.com/2010/07/wcf-ria-services-v1-0-para-silverlight-4-introduccin-parte-1/">Introducción (Parte 1)</a>           <br /><a href="http://blogs.ligasilverlight.com/2010/07/wcf-ria-services-v1-0-para-silverlight-4-obtener-datos-desde-la-bd-parte-2/">Obtener datos desde la BD (Parte 2)</a>           <br /><a href="http://blogs.ligasilverlight.com/2010/07/wcf-ria-services-v1-0-para-silverlight-4-mostar-datos-parte-3/">Mostrar datos (Parte 3)</a>           <br />Filtrar datos [DomainService] (Parte 4)</td>
</tr>
</tbody>
</table>
<p><span id="more-1266"></span></p>
<h4>Modificando el Servicio de Dominio (DomainService)</h4>
<p>En la <a href="http://blogs.ligasilverlight.com/2010/07/wcf-ria-services-v1-0-para-silverlight-4-obtener-datos-desde-la-bd-parte-2/" target="_blank">parte 2</a>, de esta serie de post, agregamos nuestra Clase de Servicio de Dominio, la cual llamamos RiaDomainService.cs. Esta clase, como ya lo explicábamos, es la encargada de exponer las diferentes acciones que podemos ejecutar desde y hacia nuestros datos.</p>
<p>El primer paso que haremos es agregar un nuevo método que nos permita filtrar los datos. Al hacerlo de esta manera, el filtrado de datos lo estaremos haciendo en la capa media, que bien podríamos ver como la capa de negocio (business).</p>
<p>Básicamente nuestro método será muy parecido al método que ya tenemos para obtener la lista de productos, pero este nuevo método recibirá un parámetro el cual usaremos para el filtrado de datos. En esta ocasión lo que haremos es filtrar los datos por los registros que comiencen con el texto que el usuario decida sobre la columna de nombre de producto. </p>
<p>El método lo llamaremos <em>GetProductsStartingWith</em>, y recibirá un texto como parámetro el cual llamaremos <em>startingName</em>. Y los datos serán filtrados utilizando el método <em>Where()</em> que nuestro modelo de datos no entrega, en el cual utilizaremos expresiones lambda.</p>
<pre class="brush: csharp;">public IQueryable&lt;Product&gt; GetProductsStartingWith(string startingName)
{
    return this.ObjectContext.Products.Where(p =&gt; p.Name.StartsWith(startingName));
}</pre>
<h4>Vista y Ventana de Fuente de Datos (Data Sources Window)</h4>
<p>Al igual que cuando agregamos la lista de productos, el Data Source Window nos permite agregar los controles que en esta ocasión serán necesarios para mostrar la lista filtrada; el DataGrid, un cuadro de texto, y un botón, es una sola acción.</p>
<p>Para lograr esto, en el Data Source Window necesitamos indicar que para la lista de productos, el query a utilizar será <em>GetProductsByNameQuery</em>.</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image_thumb.png" width="304" height="252" /></a></p>
<h6>* Si el query no está disponible, es probable que necesitemos recompilar nuestra solución una vez que agregamos el nuevo método a nuestro DomainService, o presionar el icono de recargar disponible en la ventana de Data Source.</h6>
<p>Una vez que hemos seleccionado el query solo bastará arrastrar el elemento a nuestro xaml.</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image8.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image_thumb1.png" width="644" height="300" /></a> </p>
<p></p>
<h4>Ejecutando la aplicación</h4>
<p>Nuevamente, nuestra aplicación ya está terminada con apenas estos pequeños pasos que hemos hecho. </p>
<p>Aquí la explicación de lo que ha sucedido en nuestro archivo xaml.</p>
<h4>Los elementos agregados: un <em>DomainDataSource, </em>un <em>DataGrid</em>, un <em>Label</em>, un <em>TextBox</em>, y un <em>Butto</em><em>n.</em></h4>
<p>El primer elemento que necesitamos analizar es el DomainDataSource. Éste tiene los valores de acuerdo a:</p>
<ul>
<li>Es generado con un nombre (<em>Name=”productDomainDataSource”</em>), </li>
<li>utiliza la función de GetProducts (<em>QueryName=&quot;GetProductsByNameQuery&quot;</em>), </li>
<li>que no serán cargado automáticamente (<em>AutoLoad=&quot;False&quot;</em>) </li>
<li>y al ser cargados los datos, ejecutará el método productDomainDataSource_LoadedData (<em>LoadedData=&quot;productDomainDataSource_LoadedData&quot;</em>) </li>
</ul>
<p>Adicionalmente, al DomainDataSource se le ha agregado un elemento llamado <em>QueryParameters</em>, el cual nos permite enviarle los parámetros pertinentes al query que estamos ejecutando, que en esta ocasión será: </p>
<ul>
<li>el parámetro startingName (<em>ParameterName=&quot;startingName&quot;</em>) </li>
<li>cual será leído desde el textbox startingNameTextBox<em>, </em>que también ha sido agregado y analizaremos más adelante (<em>Value=&quot;{Binding ElementName=startingNameTextBox, Path=Text}&quot;</em>). </li>
</ul>
<pre class="brush: xml;">&lt;riaControls:DomainDataSource AutoLoad=&quot;False&quot;
                              d:DesignData=&quot;{d:DesignInstance my1:Product, CreateList=true}&quot;
                              Height=&quot;0&quot;
                              LoadedData=&quot;productDomainDataSource_LoadedData&quot;
                              Name=&quot;productDomainDataSource&quot;
                              QueryName=&quot;GetProductsStartingWithQuery&quot;
                              Width=&quot;0&quot;&gt;
    &lt;riaControls:DomainDataSource.DomainContext&gt;
        &lt;my:RiaDomainContext /&gt;
    &lt;/riaControls:DomainDataSource.DomainContext&gt;
    &lt;riaControls:DomainDataSource.QueryParameters&gt;
        &lt;riaControls:Parameter ParameterName=&quot;startingName&quot;
                               Value=&quot;{Binding ElementName=startingNameTextBox, Path=Text}&quot; /&gt;
    &lt;/riaControls:DomainDataSource.QueryParameters&gt;
&lt;/riaControls:DomainDataSource&gt;</pre>
<p>Además, como lo podemos observar, se han agregado un <em>Label</em>, un <em>Textbox</em>, un <em>Button</em> y un <em>DataGrid</em>, los cuales son muy intuitivos en su función. Básicamente el texto que el usuario escriba en el <em>TextBox</em> servirá como filtro de los datos a mostrar en el <em>DataGrid</em>, una vez presionado el <em>Button.</em> Y esto es ejecutado ya que se ha agregado un enlace (Binding) al Domain Data Source (<em>Command=&quot;{Binding Path=LoadCommand, ElementName=productDomainDataSource}&quot;</em>)</p>
<pre class="brush: xml;">&lt;StackPanel Height=&quot;30&quot;
            Orientation=&quot;Horizontal&quot;&gt;
    &lt;sdk:Label Content=&quot;Starting Name:&quot;
               Margin=&quot;3&quot;
               VerticalAlignment=&quot;Center&quot; /&gt;
    &lt;TextBox Name=&quot;startingNameTextBox&quot;
             Width=&quot;60&quot; /&gt;
    &lt;Button Command=&quot;{Binding Path=LoadCommand, ElementName=productDomainDataSource}&quot;
            Content=&quot;Load&quot;
            Margin=&quot;3&quot;
            Name=&quot;productDomainDataSourceLoadButton&quot; /&gt;
&lt;/StackPanel&gt;</pre>
<h4>Otra forma de hacer filtros…</h4>
<p>En el siguiente post, veremos cómo hacer filtrados de datos desde nuestro DomainDataSource, esto sin necesidad de modificar nuestros Servicios de Dominio…</p>
<h5>Saludos…</h5>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/08/wcf-ria-services-v1-0-para-silverlight-4-filtrar-datos-desde-el-domainservice-parte-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Integrando Reporting Services con Silverlight y RIA Services</title>
		<link>http://blogs.ligasilverlight.com/2010/08/integrando-reporting-services-con-silverlight-y-ria-services/</link>
		<comments>http://blogs.ligasilverlight.com/2010/08/integrando-reporting-services-con-silverlight-y-ria-services/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 17:19:17 +0000</pubDate>
		<dc:creator>ernesth</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/2010/08/integrando-reporting-services-con-silverlight-y-ria-services/</guid>
		<description><![CDATA[&#160;
Introducción
&#160;
Una de las características mas deseadas para SilverLight es la posibilidad de crear reportes de negocios con Reporting Services, en este articulo, mostraré como utilizar la actual tecnología de Reporting Services junto con Silverlight y RIA Services para lograr ese cometido.

&#160;
Lo primero que haremos es crear una aplicación Silverlight, en este caso use la plantilla [...]]]></description>
			<content:encoded><![CDATA[<p>&#160;</p>
<h3><font color="#000080"><strong>Introducción</strong></font></h3>
<p>&#160;</p>
<p>Una de las características mas deseadas para SilverLight es la posibilidad de crear reportes de negocios con Reporting Services, en este articulo, mostraré como utilizar la actual tecnología de Reporting Services junto con Silverlight y RIA Services para lograr ese cometido.</p>
<p><span id="more-1260"></span></p>
<p>&#160;</p>
<p>Lo primero que haremos es crear una aplicación Silverlight, en este caso use la plantilla Silverlight Business Application.</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image0.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image0" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image0_thumb.png" width="644" height="446" /></a> </p>
<p>En el proyecto web, agrego un Modelo Entity Framework.</p>
<p>&#160;</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image1.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image1" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image1_thumb.png" width="644" height="446" /></a> </p>
</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image2.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image2" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image2_thumb.png" width="631" height="562" /></a> </p>
<p>Para esta demostración, estoy utilizando la base de datos AdventureWorksLT.</p>
<p>&#160;</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image3.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image3" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image3_thumb.png" width="631" height="562" /></a> </p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image4.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image4" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image4_thumb.png" width="631" height="562" /></a> </p>
<p>Estas son las entidades que usare para esta demostración:</p>
<p>&#160;</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image11.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image11" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image11_thumb.png" width="620" height="484" /></a> </p>
<p>Generamos el proyecto y añadimos una clase Domain Service:</p>
<p>&#160;</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image5.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image5" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image5_thumb.png" width="644" height="446" /></a> </p>
<p>Aca tenemos todas las entidades a ser añadidas al Domain Service:</p>
<p>&#160;</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image6.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image6" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image6_thumb.png" width="454" height="554" /></a> </p>
<p>&#160;</p>
<p>Ahora podemos agregar un nuevo Reporte. En este caso, utilizaremos Reporting Services en modo local.</p>
<p>&#160;</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image7.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image7" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image7_thumb.png" width="644" height="428" /></a>&#160; </p>
<p>&#160;</p>
<p>Cuando diseñamos el reporte, al agregar un componente del tipo Tablix, se nos pide agregar a su vez un Dataset. En este caso, el asistente de escogencia del dataset ve el domain context que añadimos anteriormente.</p>
<p>&#160;</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image10.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image10" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image10_thumb.png" width="644" height="426" /></a> </p>
<p>&#160;</p>
<p>Para esta demostración cree una clase que utilizare para enlazar el reporte. Hay casos es que es conveniente hacer esto ya que pudiéramos necesitar tener que hacer un procesamiento de datos extra antes de enlazarlo con el reporte:</p>
<p>using System;    <br />using System.Collections.Generic; </p>
<p>using System.Linq;    <br />using System.Web; </p>
<p>using System.ComponentModel.DataAnnotations; </p>
<p>namespace ReportingServicesDemo.Web    <br />{     <br />&#160;&#160;&#160; public class Orders     <br />&#160;&#160;&#160; {     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; public Orders()     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; { } </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; [Key]    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; public int OrderDetailsID     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; get;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; set;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; public int OrderID    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; get;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; set;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; public string Product    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; get;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; set;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; public int Quantity    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; get;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; set;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; public decimal UnitPrice    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; get;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; set;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; public decimal UnitPriceDiscount    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; get;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; set;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; public decimal LineTotal    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; get;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; set;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }     <br />&#160;&#160;&#160; }     <br />}</p>
<p>&#160;</p>
<p>En esta clase hacemos referencia al espacio de nombres <em><font color="#800000">System.ComponentModel.DataAnnotations</font></em> que me permite agregar un atributo<font color="#800000"><em> Key </em></font><font color="#000000">a la propiedad&#160; </font><font color="#800000"><em>OrderDetailsID&#160; </em></font><font color="#000000">, este es un requerimiento para la clase para que el domain service lo reconozca como una entidad valida.</font></p>
<p>Si vemos el codigo del domain service, encontramos lo siguiente:</p>
<p>&#160;</p>
<p>using System;    <br />using System.Collections.Generic;     <br />using System.ComponentModel;     <br />using System.ComponentModel.DataAnnotations;     <br />using System.Data;     <br />using System.Linq;     <br />using System.ServiceModel.DomainServices.EntityFramework;     <br />using System.ServiceModel.DomainServices.Hosting;     <br />using System.ServiceModel.DomainServices.Server; </p>
<p>//// Implements application logic using the AdventureWorksLT2008Entities context.    <br />//// TODO: Add your application logic to these methods or in additional methods.     <br />//// TODO: Wire up authentication (Windows/ASP.NET Forms)     <br />///&#160;&#160;&#160;&#160;&#160;&#160;&#160; and uncomment the following to disable anonymous access     <br />//// Also consider adding roles to restrict access as appropriate.     <br />// [RequiresAuthentication]     <br />[EnableClientAccess()]     <br />public class ADWLTDomainService :     <br />&#160;&#160;&#160;&#160;&#160;&#160; LinqToEntitiesDomainService&amp;lt;AdventureWorksLT2008Entities;     <br />{</p>
<p>&#160;</p>
<p>Ahora creo una operación del domain service que exponga la entidad <font color="#800000"><em>Orders</em></font> que acabo de crear en mi clase personalizada.</p>
<p>public IQueryable &lt;Orders&gt; GetOrderDetails(int OrderID)    <br />{     <br />&#160;&#160;&#160; AdventureWorksLT2008Entities adw = new AdventureWorksLT2008Entities(); </p>
<p>&#160;&#160;&#160; var query = from c in adw.SalesOrderDetail.Include(&quot;Product&quot;)    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; where     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; c.SalesOrderID == OrderID     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; select new Orders { OrderID = OrderID,     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; OrderDetailsID = c.SalesOrderDetailID, Product = c.Product.Name,     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Quantity = c.OrderQty, UnitPrice =     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; c.UnitPrice, UnitPriceDiscount = c.UnitPriceDiscount,     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; LineTotal = c.LineTotal };     <br />&#160;&#160; return query;     <br />}</p>
<p>&#160;</p>
<p>En este metodo utilizo el contexto del Entity Framework en vez del contexto del domain service, y lo expongo igual que los demás métodos de selección como <em><font color="#800000">IQueryable.</font></em></p>
<p>Al generar nuevamente el proyecto, el asistente de escogencia del dataset ve el nuevo metodo que acabamos de crear con todos los campos de la entidad listos para nuestro reporte.</p>
<p>&#160;</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image14.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image14" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image14_thumb.png" width="644" height="426" /></a> </p>
<p>&#160;</p>
<p>Aca vemos el diseño del reporte con el dataset disponible:</p>
<p>&#160;</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image15.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image15" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image15_thumb.png" width="644" height="245" /></a> </p>
</p>
<p>Ahora añadimos un <em><font color="#800000">WebForm</font></em> en el proyecto web y le agregamos un control <em><font color="#800000">ReportViewer</font></em> para visualizar el reporte:</p>
<p>&#160;</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image16.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image16" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image16_thumb.png" width="644" height="446" /></a> </p>
<p>&#160;</p>
<p>Cuando agregamos el control <em><font color="#800000">ReportViewer</font></em> , se crea en forma automática un control <em><font color="#800000">ObjectDataSource:</font></em></p>
<p><em><font color="#800000"></font></em></p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image17.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image17" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image17_thumb.png" width="333" height="648" /></a> </p>
</p>
<p>&#160;</p>
<p>Cuando vemos las propiedades del <font color="#800000"><em>ObjectDataSource, </em></font><font color="#000000">podemos ver en la propiedad <em><font color="#800000">Selectmethod</font></em> nuestro método personalizado:</font></p>
<p>&#160;</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image18.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image18" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image18_thumb.png" width="385" height="201" /></a> </p>
<p>&#160;</p>
<p>Inspeccionando la colección&#160; <font color="#800000"><em>SelectParameters</em></font><font color="#000000">, podemos ver el parámetro del método antes creado.</font></p>
<p>&#160;</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image19.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image19" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image19_thumb.png" width="644" height="378" /></a> </p>
<p>&#160;</p>
<p>Ahora en el proyecto Silverlight, agregamos un <font color="#800000"><em>DataGrid</em></font> enlazado a la entidad <em><font color="#800000">Sales Orders</font></em>.</p>
<p>&#160;</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image20.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image20" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image20_thumb.png" width="644" height="472" /></a> </p>
<p>&#160;</p>
<p>Para esta demostración, cada campo de <font color="#800000"><em>Sales Orders ID </em></font><font color="#000000">es representado con un botón, la idea es pasar el contenido del mismo a través del evento <font color="#800000"><em>Click</em></font> del botón:</font></p>
<p>HtmlPopupWindowOptions options = new HtmlPopupWindowOptions();    <br />options.Left = 0;     <br />options.Top = 0;     <br />options.Width = 930;     <br />options.Height = 800;     <br />options.Menubar = false;     <br />options.Toolbar = false;     <br />options.Directories = false;     <br />options.Status = false; </p>
<p>Button btn = sender as Button; </p>
<p>int OrderID =int.Parse(btn.Content.ToString()); </p>
<p>string address = Application.Current.Host.Source.AbsoluteUri;    <br />int i = address.IndexOf(&quot;/ClientBin/&quot;, 1);     <br />string url = address.Substring(0, i);     <br />url = url + &quot;/RpDemoWebForm.aspx?OrderID=&quot; + OrderID; </p>
<p>if (true == HtmlPage.IsPopupWindowAllowed)    <br />&#160;&#160;&#160; HtmlPage.PopupWindow(new Uri(url), &quot;new&quot;, options);</p>
<p>&#160;</p>
<p>&#160;</p>
<p>Podemos obtener la dirección URL donde la aplicación xap de silverlight corre, mediante la propiedad&#160; <font color="#800000"><em>Application.Current.Host.Source.AbsoluteUri. </em></font><font color="#000000">Luego podemos crear la URL asociada con el WebForm donde esta el control <em><font color="#800000">ReportViewer</font></em>.</font></p>
<p>&#160;</p>
<p>Finalmente podemos ver nuestro reporte de detalles de la orden:</p>
<p>&#160;</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image21.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image21" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/08/image21_thumb.png" width="644" height="467" /></a> </p>
<p>&#160;</p>
<p>Espero que les sirva de utilidad para cuando necesiten integrar sus reportes con Silverlight.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/08/integrando-reporting-services-con-silverlight-y-ria-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Por fin liberado SilverLight 4 Tools en español!</title>
		<link>http://blogs.ligasilverlight.com/2010/07/por-fin-liberado-silverlight-4-tools-en-espaol/</link>
		<comments>http://blogs.ligasilverlight.com/2010/07/por-fin-liberado-silverlight-4-tools-en-espaol/#comments</comments>
		<pubDate>Sat, 24 Jul 2010 05:47:34 +0000</pubDate>
		<dc:creator>Ryuuzaki de L</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/2010/07/por-fin-liberado-silverlight-4-tools-en-espaol/</guid>
		<description><![CDATA[Así es, hace poco tiempo que los chicos de Microsoft han puesto a nuestra disposición las herramientas de SilverLight 4 para Visual Studio 2010 en español. Incluidos otros idiomas también pero en este caso nos estamos enfocando al español

Bueno pues sin mas, hay que descargar estas herramientas para poder seguir desarrollando aplicaciones de SilverLight en [...]]]></description>
			<content:encoded><![CDATA[<p>Así es, hace poco tiempo que los chicos de Microsoft han puesto a nuestra disposición las herramientas de SilverLight 4 para Visual Studio 2010 en español. Incluidos otros idiomas también pero en este caso nos estamos enfocando al español</p>
<p><span id="more-1210"></span></p>
<p>Bueno pues sin mas, hay que descargar estas herramientas para poder seguir desarrollando aplicaciones de SilverLight en nuestro Visual Studio 2010 en español, las cuales pueden descargar desde <a href="http://download.microsoft.com/download/E/B/A/EBAC1B35-7B47-4FCA-91B9-FF77DF83D785/Silverlight4_Tools.exe" target="_blank">aquí</a></p>
<p>Por cierto, por alguna razón no me carga el diseño de una aplicación de SilverLight 4 que había hecho con Visual Studio 2010 en ingles, aunque al ejecutarla en el explorador si me muestra lo que contenía dicha aplicación… es extraño!</p>
<p>Ahora a seguir haciendo pruebas! </p>
<p>&#160;</p>
<p>Saludos</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/07/por-fin-liberado-silverlight-4-tools-en-espaol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WCF Ria Services V1.0 para Silverlight 4.- Mostar datos (Parte 3)</title>
		<link>http://blogs.ligasilverlight.com/2010/07/wcf-ria-services-v1-0-para-silverlight-4-mostar-datos-parte-3/</link>
		<comments>http://blogs.ligasilverlight.com/2010/07/wcf-ria-services-v1-0-para-silverlight-4-mostar-datos-parte-3/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 22:14:56 +0000</pubDate>
		<dc:creator>Jorge Levy</dc:creator>
				<category><![CDATA[WCF Ria Services]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/2010/07/wcf-ria-services-v1-0-para-silverlight-4-mostar-datos-parte-3/</guid>
		<description><![CDATA[


Una vez que nuestra aplicación web está configurada y exponiendo los datos desde la base de datos, ahora si veremos como consumir el servicio que nos ofrece y como mostrar datos en nuestra aplicación Silverlight.
Indice:
Introducción (Parte 1)
Obtener datos desde la BD (Parte 2)




Aplicación Silverlight
Como ya lo hemos comentado, la aplicación silverlight que el template ‘Silverlight [...]]]></description>
			<content:encoded><![CDATA[<table border="0" cellspacing="0" cellpadding="2" width="582">
<tbody>
<tr>
<td width="340" valign="top">Una vez que nuestra aplicación web está configurada y exponiendo los datos desde la base de datos, ahora si veremos como consumir el servicio que nos ofrece y como mostrar datos en nuestra aplicación Silverlight.</td>
<td width="240" align="right" valign="top">Indice:<br />
<a href="http://blogs.ligasilverlight.com/2010/07/wcf-ria-services-v1-0-para-silverlight-4-introduccin-parte-1/">Introducción (Parte 1)</a><br />
<a href="http://blogs.ligasilverlight.com/2010/07/wcf-ria-services-v1-0-para-silverlight-4-obtener-datos-desde-la-bd-parte-2/">Obtener datos desde la BD (Parte 2)</a></td>
</tr>
</tbody>
</table>
<p><span id="more-1196"></span></p>
<h4>Aplicación Silverlight</h4>
<p>Como ya lo hemos comentado, la aplicación silverlight que el template ‘Silverlight Business Application’ no entrega ya cuenta con el ‘Framework de Navegación’. En esta ocasión estaremos trabajando únicamente en nuestra página ‘Home.xaml’.</p>
<h4>VS2010 y la Ventana de Fuente de Datos (Data Sources window)</h4>
<p>Una de las ventajas que trae consigo el Visual Studio 2010, es que ahora podemos ligar los servicios de datos expuestos por WCF RIA Services en nuestra applicación Silverlight de manera visual; así pues, desde la ventana de &#8216;Data Sources&#8217; podemos arrastrar un &#8216;DataGrid&#8217; (que a continuación analizaremos).</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image10.png"><img class="wlDisabledImage" style="display: inline; border-width: 0px;" title="image" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image_thumb9.png" border="0" alt="image" width="644" height="303" /></a></p>
<p>La ventana de Data Sources, es lo suficientemente inteligente como para leer los servicios WCF que nuestra aplicación Web expone, y nos entrega los diferentes objetos expuestos.</p>
<h4>Ejecutando la aplicación</h4>
<p>y listo, ahora sí ya tenemos nuestra primera aplicación RIA Services lista para ser ejecutada. Sin embargo considero importante entendamos que es lo que está pasando tras bambalinas…</p>
<h4>Origen de Datos de Dominio (Domain Data Source)</h4>
<p>La primera parte del código entregado consiste del control llamado DomainDataSource el cual viene incluido en los assemblies que RIA Services nos entrega.</p>
<p>Este control será el encargado de contener los datos que la aplicación Web expone a través de la Clase de Servicio de Dominio.</p>
<ul>
<li>Es generado con un nombre (<em>Name=”productDomainDataSource”</em>),</li>
<li>utiliza la función de GetProducts (<em>QueryName=&#8221;GetProductsQuery&#8221;</em>),</li>
<li>que serán cargado automáticamente (<em>AutoLoad=&#8221;True&#8221;</em>)</li>
<li>y al ser cargados los datos, ejecutará el método productDomainDataSource_LoadedData (<em>LoadedData=&#8221;productDomainDataSource_LoadedData&#8221;</em>)</li>
</ul>
<p>También es configurado para que el Origen de Datos sea el Contexto de Dominio desde la aplicación Web.</p>
<p><em>DLL</em>: <span style="font-family: Century; font-size: xx-small;">System.Windows.Controls.DomainServices</span><br />
<em>Namespace</em>: <span style="font-family: Century; font-size: xx-small;">xmlns:riaControls=&#8221;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.DomainServices&#8221;</span><br />
<em>Namespace</em>: <span style="font-family: Century; font-size: xx-small;">xmlns:my=&#8221;clr-namespace:WCFRiaServices01.Web.Services&#8221;</span><br />
<em>Namespace</em>: <span style="font-family: Century; font-size: xx-small;">xmlns:my1=&#8221;clr-namespace:WCFRiaServices01.Web.Models&#8221;</span></p>
<pre class="brush: xml;">&lt;riaControls:DomainDataSource AutoLoad="True"
                              d:DesignData="{d:DesignInstance my1:Product, CreateList=true}"
                              Height="0"
                              LoadedData="productDomainDataSource_LoadedData"
                              Name="productDomainDataSource"
                              QueryName="GetProductsQuery"
                              Width="0"&gt;
    &lt;riaControls:DomainDataSource.DomainContext&gt;
        &lt;my:RiaDomainContext /&gt;
    &lt;/riaControls:DomainDataSource.DomainContext&gt;
&lt;/riaControls:DomainDataSource&gt;</pre>
<h4>Mostrando los datos en un DataGrid</h4>
<p>Una vez que tenemos los datos en nuestro DomainDataSource, estos son mostrados en un control DataGrid.</p>
<p>Nuestro DataGrid tendrá</p>
<ul>
<li>un nombre (<em>Name=&#8221;productDataGrid&#8221;</em>);</li>
<li>las columnas no serán autogeneradas (<em>AutoGenerateColumns=&#8221;False&#8221;</em>);</li>
<li>y lo más importante, el origen de datos estará enlazado con nuestro Domian Data Source (<em>ItemsSource=&#8221;{Binding ElementName=productDomainDataSource, Path=Data}&#8221;</em>)</li>
</ul>
<p><em>DLL</em>: <span style="font-family: Century; font-size: xx-small;">System.Windows.Controls</span></p>
<p><em>Namespace</em>: <span style="font-family: Century; font-size: xx-small;">xmlns:sdk=http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk</span></p>
<pre class="brush: xml;">&lt;sdk:DataGrid AutoGenerateColumns="False"
              Height="200"
              ItemsSource="{Binding ElementName=productDomainDataSource, Path=Data}"
              Name="productDataGrid"
              RowDetailsVisibilityMode="VisibleWhenSelected"
              Width="400"&gt;
    &lt;sdk:DataGrid.Columns&gt;
        ...
    &lt;/sdk:DataGrid.Columns&gt;
&lt;/sdk:DataGrid&gt;</pre>
<p>Y las columnas haran referencia al dato con la propiedad de Binding apuntanto a la columna correspondiente (<em>Binding=&#8221;{Binding Path=Class}&#8221;</em>)</p>
<pre class="brush: xml;">&lt;sdk:DataGridTextColumn x:Name="classColumn"
                        Binding="{Binding Path=Class}"
                        Header="Class"
                        Width="SizeToHeader" /&gt;</pre>
<p>Las columnas generadas, detectarán el tipo de dato desde la BD, y harán la conversion respectiva, así pues para la fechas se utilizará el formato adecuado. (Esto lo veremos en un post posterior).</p>
<h4>Siguientes post…</h4>
<p>Aunque ya tenemos una aplicación que corre sobre RIA Services, apenas estamos calentando motores, en los siguientes post estaremos hablando de cómo hacer paginación de los datos mostrados, cómo crear filtros, cómo mostrar los detalles de un registro, etc, etc, etc…</p>
<p>*Puedes ver el post original <a href="http://www.jorgelevy.com/?p=147">aqui</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/07/wcf-ria-services-v1-0-para-silverlight-4-mostar-datos-parte-3/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WCF Ria Services V1.0 para Silverlight 4.- Obtener datos desde la BD (Parte 2)</title>
		<link>http://blogs.ligasilverlight.com/2010/07/wcf-ria-services-v1-0-para-silverlight-4-obtener-datos-desde-la-bd-parte-2/</link>
		<comments>http://blogs.ligasilverlight.com/2010/07/wcf-ria-services-v1-0-para-silverlight-4-obtener-datos-desde-la-bd-parte-2/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 22:11:55 +0000</pubDate>
		<dc:creator>Jorge Levy</dc:creator>
				<category><![CDATA[WCF Ria Services]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/2010/07/wcf-ria-services-v1-0-para-silverlight-4-obtener-datos-desde-la-bd-parte-2/</guid>
		<description><![CDATA[


Y bien, después de nuestro post de introducción, en éste abordaremos como comenzar a trabajar con Ria Services para obtener los información desde la base de datos, y como mostrarlos en nuestra aplicación Silverlight.
Indice:          Introducción (Parte 1)




Plantilla de VS2010 para WCF Ria Sercvices
Lo primero que necesitamos [...]]]></description>
			<content:encoded><![CDATA[<table border="0" cellspacing="0" cellpadding="2" width="580">
<tbody>
<tr>
<td valign="top" width="400">Y bien, después de nuestro post de introducción, en éste abordaremos como comenzar a trabajar con Ria Services para obtener los información desde la base de datos, y como mostrarlos en nuestra aplicación Silverlight.</td>
<td valign="top" width="180" align="right">Indice:          <br /><a href="http://blogs.ligasilverlight.com/2010/07/wcf-ria-services-v1-0-para-silverlight-4-introduccin-parte-1/">Introducción (Parte 1)</a></td>
</tr>
</tbody>
</table>
<p><span id="more-1193"></span></p>
<h4>Plantilla de VS2010 para WCF Ria Sercvices</h4>
<p>Lo primero que necesitamos mencionar es que el framework de Ria Services nos ofrece una plantilla (template) para VS2010 llamada &#8216;Silverlight Business Appication&#8217; que nos entregará una solución totalmente configurada para comenzar a trabajar. Esta solución viene ya incluso con las siguientes características:</p>
<ul>
<li>La solución está compuesta por dos proyectos, una aplicación web y una aplicación Silverlight. La aplicación web será la encargada de la conexión y acceso a la base datos, así como la que proyectará los datos hacia la aplicación silverlight, que será la que le de vista a estos. </li>
<li>La aplicación Silverlight que nos entrega está creada sobre el framework de navegación (<a href="http://blogs.ligasilverlight.com/2009/06/framework-de-navegacin-en-silverlight-3/">para leer sobre el Framework de Navegación puedes ir a estos post</a>) </li>
<li>Servicios de manejo de usuarios (membership) ya están incluido. (estos los veremos cómo usar y modificar en un post posterior) </li>
</ul>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image1.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image_thumb.png" width="644" height="397" /></a></p>
<h4>Modelo de Datos</h4>
<p>Para poder acceder a los datos desde nuestra aplicación Silverlight, es necesario crear &quot;<em>en nuestra aplicación web&quot;</em> un modelo de datos y proyectarlos desde nuestra aplicación web con una clase de servicio de dominio.</p>
<p>Lo primero que haremos es crear un modelo de nuestra base datos. Esto será, como ya lo hemos mencionado, del lado de nuestra aplicación web. En esta ocasión agregaremos un nuevo elemento del tipo &#8216;ADO.NET Entity Data Model&#8217;. Le pondremos por nombre &#8216;RIAModel.edmx&#8217;. (Como sugerencia, la pondremos en la carpeta &#8216;Models&#8217;)</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image_thumb1.png" width="644" height="444" /></a></p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image3.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image_thumb2.png" width="644" height="399" /></a></p>
<p>Esto nos lanzará un asistente. En el primer paso nos permitirá seleccionar el contenido de nuestro modelo, en esta ocasión seleccionaremos que sea generado desde una base de datos.</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image4.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image_thumb3.png" width="544" height="484" /></a></p>
<p>En el siguiente paso del asistente configuraremos los datos de conexión de la base de datos.</p>
<h6>*Yo usaré la base de datos de AdventureWorks sample databases que pueden encontrar en el web para su <a href="http://msftdbprodsamples.codeplex.com/releases/view/45907" target="_blank">descarga</a>.</h6>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image5.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image_thumb4.png" width="542" height="484" /></a></p>
<p>En el tercer paso del asistente, seleccionaremos los objetos que queremos estén incluidos en modelo de datos. Además configuraremos el Namespace del Modelo.</p>
<h6>*Para nuestros propósitos por ahora solo seleccionaremos la tabla de Product (Production), y nombraremos el Namespace del Modelo como: RiaModel</h6>
<p>Al seleccionar la opción de pluralizar o singularizar lo nombre de los objectos generados (Pluraliza or singularize generated object names), le estamos diciendo al modelo que los objetos deberan tener el nombre de entidad en plural y el nombre en singular, lo cual nos ayudará a entender posteriormente de una mejor manera con que tipo de objeto estamos trabajando al hacer consultas a los datos.</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image6.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image_thumb5.png" width="541" height="484" /></a></p>
<p>Al terminar el asistente tendremos un esquema del modelo de datos como este. Observemos que el &#8216;Entity Set Name&#8217; esta pluralizado.</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image7.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image_thumb6.png" width="426" height="484" /></a>     <br />Una vez completado nuestro modelo, <em>tendremos que compilar el proyecto</em>, ya que para la siguiente sección, es necesario tener nuestro modelo de datos ya disponible.</p>
<h4>Clase de Servicio de Dominio</h4>
<p>El siguiente paso en el que trabajaremos será el encargado de proyectar los datos desde nuestra aplicación web hacia nuestra aplicación silverlight. Y esto lo lograremos agregando un elemento del tipo ‘Domain Services Class’, el cual añadiremos a nuestro proyecto web en la carpeta llamada ‘Services’, lo cual haremos en la carpeta de Services y lo llamaremos RiaDomainService.cs</p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image8.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image_thumb7.png" width="644" height="446" /></a></p>
<p>Al agregar este tipo de clases, nos lanzará un asistente que nos permitirá seleccionar los elementos configurados en nuestro Modelo de Datos que queremos sean proyectados por medio de un servicio, así como una opción para permitir sean editados. Además de que también nos ofrece la opción de crear las clases asociadas para los metadatos de los objetos (dedicaremos un post a este tema).</p>
<h6>*Si no se muestra ninguno de los elementos configurados anteriormente es probable que el proyecto no fuera compilado previamente.</h6>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image9.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image_thumb8.png" width="397" height="484" /></a></p>
<p>Los elementos que nos entregará serán un par de clases, en mi caso: RiaDomainService.cs y RiaDomainService.metadata.cs. Como lo comenté, la segunda de ellas la abordaremos con mayor detalle en un post posterior. Pero de la que si necesitamos hablar es de la de RiaDomainService.cs.</p>
<p>Lo que podemos platicar hasta este momento de esta clase es que:</p>
<ol>
<li>Como podemos ver, está etiquetada con [EnableClientAccess()], ya que pedimos fuera editable. </li>
<li>Nos crea 4 funciones básicas: GetProducts(), InsertProducts(), UpdateProducts() y DeleteProducts(). El típico ABC de una base de datos. </li>
<li>Esta clase es 100% modificable para nuestros propósitos. Así pues por ejemplo, si quisiéramos que nuestro método GetProducts() nos regrese los registros de manera ordenada, solo bastaría modificarla de tal modo que quedaría: </li>
</ol>
<pre class="brush: csharp;">public IQueryable&lt;Product&gt; GetProducts()
{
    return this.ObjectContext.Products.OrderBy(p =&gt; p.Name);
}</pre>
<h4>Continuará…</h4>
<p>Ya hemos configurado nuestra aplicación web para proyectar los datos, en nuestro siguiente post ahora sí comenzaremos a consumir estos datos y a mostrarlos desde nuestra aplicación silverlight…</p>
<h6>Saludos </p>
</h6>
<p>*Puedes ver el post original <a href="http://www.jorgelevy.com/?p=144">aqui</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/07/wcf-ria-services-v1-0-para-silverlight-4-obtener-datos-desde-la-bd-parte-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>WCF Ria Services V1.0 para Silverlight 4.- Introducción (Parte 1)</title>
		<link>http://blogs.ligasilverlight.com/2010/07/wcf-ria-services-v1-0-para-silverlight-4-introduccin-parte-1/</link>
		<comments>http://blogs.ligasilverlight.com/2010/07/wcf-ria-services-v1-0-para-silverlight-4-introduccin-parte-1/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 22:05:24 +0000</pubDate>
		<dc:creator>Jorge Levy</dc:creator>
				<category><![CDATA[WCF Ria Services]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/2010/07/wcf-ria-services-v1-0-para-silverlight-4-introduccin-parte-1/</guid>
		<description><![CDATA[Este es el primero de varios post que estaré escribiendo referente al tema de WCF Ria Services v1.0 para Silvelight 4 Ria Services para Silverlight 3 (también abordare Ria Service para Silverlight 4 Beta). Si bien el tema ha sido abordado en muchas páginas y blogs, la mayoría de ellos están en inglés, así que [...]]]></description>
			<content:encoded><![CDATA[<p><em>Este es el primero de varios post que estaré escribiendo referente al tema de WCF Ria Services v1.0 para Silvelight 4 <del datetime="2010-07-19T19:14:13+00:00">Ria Services para Silverlight 3 (también abordare Ria Service para Silverlight 4 Beta)</del>. Si bien el tema ha sido abordado en muchas páginas y blogs, la mayoría de ellos están en inglés, así que aquí una propuesta en español. Además de que trataré de hacerlo de manera ordenada y sencilla de tal modo que sea entendible (o al menos en la forma en la que yo he ido aprendiendo sobre el tema).</em></p>
<p><span id="more-1172"></span></p>
<p>Si bien, ya habia comenzado una <a href="http://blogs.ligasilverlight.com/2009/12/silverlight3-wcf-ria-services-introduccin-parte-1/" target="_blank">Serie de post sobre WCF Ria Services</a>, me he decidido a comenzar nuevamente con el tema por las siguientes razones:</p>
<ul>
<li>El lanzamiento oficial de la versión RTM de Visual Studio 2010 </li>
<li>El lanzamiento oficial de Silverlight 4 </li>
<li><a href="http://blogs.ligasilverlight.com/2010/05/wcf-ria-services-v1-0/" target="_blank">El lanzamiento oficial WCF Ria Services v1.0</a> </li>
<li>Ademas de que durante este tiempo he estado trabajando muy de lleno en un sitio (razón por la cual dejé de lado la continuación de la serie antes mencionada), en donde mi experiencia ha sido enfocada a la tecnología de WCF Ria Services, por lo que los conocimiento adquiridos me han hecho ver el tema con diferentes ojos. </li>
</ul>
<p>Y como podrán darse cuenta, creo conveniente recomenzar con el proyecto de aportar con mi granito de arena sobre el tema. Sin embargo, <em>como lo que fuimos es lo que nos hacer ser lo que somos</em>, tomaré mucha de la información y forma de lo que en la antigua serie trate de hacer.</p>
<h4>Que es WCF Ria Services?</h4>
<p>Ria Services es un framework que provee una serie de funcionalidades (dlls, templates, etc) que permiten acceder datos en una Aplicación Silverlight desde una Base de Datos. Esto es gracias a su implementación en modelo de capas (n-tier application), donde Ria Services trabaja en las capas intermedias ofreciendo control de acceso, cambios y operaciones definidas por el usuario, así como funciones de de validaciones, autentificación de usuarios y roles en las capas superiores.</p>
<h6>Referencia: <a href="http://silverlight.net/riaservices/">http://silverlight.net/riaservices/</a></h6>
<h4>Página WCF Ria Services, instaladores y recursos de aprendizaje</h4>
<p>La principal página de WCF Ria Services la podemos encontrar en <a href="http://www.silverlight.net/riaservices">http://www.silverlight.net/riaservices</a>. En donde podemos encontrar los instaladores. Así como una serie de recursos de aprendizaje (videos, documentos, blogs, etc).</p>
<h4>Recursos para trabajar en Ria Services</h4>
<p>Hacer notar WCF Ria Services ya está incluido en el instalador de las herramientas de <a href="http://go.microsoft.com/fwlink/?LinkID=177508" target="_blank">Silverlight 4 para Visual Studio 2010 (Silverlight 4 Tools for Visual Studio 2010)</a>. Sin embargo en la página podemos encontrar el instalador standalone para la <a href="http://go.microsoft.com/fwlink/?LinkID=169231" target="_blank">versión v1.0 de WCF Ria Services</a>, así como el instalador para el <a href="http://go.microsoft.com/fwlink/?LinkId=185121" target="_blank">paquete de herramientas de WCF Ria Services (WCF RIA Services Toolkit)</a>.</p>
<p>También podemos encontrar las siguientes páginas sobre el tema</p>
<ul>
<li><a href="http://code.msdn.microsoft.com/RiaServices" target="_blank">WCF RIA Services Code Gallery</a> </li>
<li><a href="http://msdn.microsoft.com/en-us/library/ee707344(v=VS.91).aspx" target="_blank">Documentación de MSDN sobre WCF RIA Services</a> </li>
</ul>
<h4>Continuará…</h4>
<p>Igual, si bien en este primero post no nos hemos adentrado (codificado) en la tecnología. No podemos dejar de lado la información contenida en este.</p>
<p>Para nuestro siguiente post si estaremos trabajando ya con código.</p>
<h6>Saludos</h6>
<p>*Puedes ver el post original <a href="http://www.jorgelevy.com/?p=125" target="_blank">aqui</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/07/wcf-ria-services-v1-0-para-silverlight-4-introduccin-parte-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Phone 7 Beta</title>
		<link>http://blogs.ligasilverlight.com/2010/07/windows-phone-7-beta/</link>
		<comments>http://blogs.ligasilverlight.com/2010/07/windows-phone-7-beta/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 12:41:49 +0000</pubDate>
		<dc:creator>rodrigo.diaz</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[WP7]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/2010/07/windows-phone-7-beta/</guid>
		<description><![CDATA[

Windows Phone 7 es la próxima versión del sistema operativo para dispositivos móviles de Microsoft.&#160; Debido a que su liberación está muy próxima las herramientas de desarrollo para Visual Studio .NET 2010 han sido liberadas en su fase Beta.&#160; Esta es una excelente oportunidad para que puedan meterse en esta plataforma, que cabe mencionar, usa [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://developer.windowsphone.com/windows-phone-7/" target="_blank"><img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" align="left" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/image.png" width="170" height="320" /></a></p>
<p><span id="more-1167"></span></p>
<p><a href="http://developer.windowsphone.com/" target="_blank">Windows Phone 7</a> es la próxima versión del sistema operativo para dispositivos móviles de Microsoft.&#160; Debido a que su liberación está muy próxima las herramientas de desarrollo para Visual Studio .NET 2010 han sido liberadas en su fase Beta.&#160; Esta es una excelente oportunidad para que puedan meterse en esta plataforma, que cabe mencionar, usa <a href="http://silverlight.net" target="_blank">Silverlight</a> como tecnología para sus aplicaciones!</p>
<p>Así es, si ustedes son desarrolladores de Silverlight ya saben cómo construir aplicativos para Windows Phone 7.&#160; Las instalación de las herramientas incluye una versión de Blend 4 para WP7, las plantillas para VS.NET y el Emulador de WP7.&#160; <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c8496c2a-54d9-4b11-9491-a1bfaf32f2e3&amp;displaylang=en" target="_blank">Pueden descargar las herramientas aquí.</a></p>
<p>Además de las herramientas, se ha actualizado el Training Kit de Windows Phone 7 a esta última versión Beta.&#160; El Training Kit cuenta con una serie de Prácticas y Documentación para que aprendan rápidamente los conceptos para desarrollar soluciones en el télefono.&#160; <a href="http://go.microsoft.com/?linkid=9723028" target="_blank">Lo pueden descargar aquí</a>.</p>
<p align="left">Es bastante emocionante ser hoy en día un desarrollador de <a href="http://developer.windowsphone.com/" target="_blank">Silverlight</a>, y mucho más aún sabiendo que tus conocimientos los puedes aplicar en esta plataforma móvil.&#160; ¿Deseas iniciar en Silverlight y no sabes cómo?&#160; Revisa el <a href="http://channel9.msdn.com/tags/Curso-Silverlight-4/" target="_blank">Curso de Introducción a Silverlight 4</a> – totalmente en <a href="http://es.wikipedia.org/wiki/Idioma_espa%C3%B1ol" target="_blank">Español</a>!</p>
<p>Salu2!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/07/windows-phone-7-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PDC 2010</title>
		<link>http://blogs.ligasilverlight.com/2010/07/pdc-2010/</link>
		<comments>http://blogs.ligasilverlight.com/2010/07/pdc-2010/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 12:38:24 +0000</pubDate>
		<dc:creator>rodrigo.diaz</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[pdc10]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/2010/07/pdc-2010/</guid>
		<description><![CDATA[

Al contrario de lo que se pensaba, sí tendremos Professional Developers Conference (PDC) este año!&#160; El evento se realizará por primera vez en el Campus de Microsoft en la ciudad de Redmond, WA. los días 28 al 29 de Octubre 2010.
Si nunca han atendido les recomiendo ampliamente que lo consideren ya que este es el [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.microsoftpdc.com" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="PDC 2010" border="0" alt="PDC 2010" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/heroGraphic.jpg" width="500" height="267" /></a></p>
<p><span id="more-1165"></span></p>
<p>Al contrario de lo que se pensaba, sí tendremos <a href="http://www.microsoftpdc.com" target="_blank">Professional Developers Conference (PDC)</a> este año!&#160; El evento se realizará por primera vez en el Campus de Microsoft en la ciudad de Redmond, WA. los días <strong>28 al 29 de Octubre 2010</strong>.</p>
<p>Si nunca han atendido les recomiendo ampliamente que lo consideren ya que este es el evento por excelencia en donde se dan a conocer las tecnologías que próximamente serán lanzadas; además el contenido es totalmente técnico.&#160; Además, es buen pretexto para conocer el nido de <a href="http://www.microsoft.com" target="_blank">Microsoft</a>&#160;<img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/07/wlEmoticonsmile.png" /></p>
<p>Por otro lado, si no pueden asistir les recuerdo que el evento se transmitirá en vivo y muy probablemente los videos estén disponibles posteriormente para descarga.</p>
<p> Salu2!   </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/07/pdc-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Silverlight MVP para Rodrigo Diaz</title>
		<link>http://blogs.ligasilverlight.com/2010/07/silverlight-mvp-para-rodrigo-diaz/</link>
		<comments>http://blogs.ligasilverlight.com/2010/07/silverlight-mvp-para-rodrigo-diaz/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 17:54:06 +0000</pubDate>
		<dc:creator>Jorge Levy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Anuncios]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/2010/07/silverlight-mvp-para-rodrigo-diaz/</guid>
		<description><![CDATA[La Liga Silverlight se enorgullece de celebrar el recién nombramiento de Rodrigo Díaz Concha como MVP de Silverlight por parte de Microsoft. Este reconocimiento es el resultado de todo el esfuerzo que Rodrigo a puesto sobre el tema de Silverlight, y en especial en esta comunidad.

Como lo dice Tim Heuer en su post, con esto [...]]]></description>
			<content:encoded><![CDATA[<p>La Liga Silverlight se enorgullece de celebrar el recién nombramiento de <a href="http://www.rdiazconcha.com" target="_blank">Rodrigo Díaz Concha</a> como <a href="https://mvp.support.microsoft.com/communities/mvp.aspx?product=1&amp;competency=Silverlight" target="_blank">MVP de Silverlight</a> por parte de Microsoft. Este reconocimiento es el resultado de todo el esfuerzo que Rodrigo a puesto sobre el tema de Silverlight, y en especial en esta comunidad.</p>
<p><span id="more-1155"></span></p>
<p>Como lo dice Tim Heuer en su <a href="http://timheuer.com/blog/archive/2010/07/01/sivlerlight-mvp-awards-july-2010.aspx?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+timheuer+%28Method+%7E+of+%7E+failed+by+Tim+Heuer%29&amp;utm_content=Google+Reader" target="_blank">post</a>, con esto Rodrigo es reconocido oficialmente como uno de los principales exponentes de la tecnología en toda América Latina.</p>
<p>Todos hemos aprendido algo de él, y hoy me permito abrir este espacio para felicitarlo, y para agradecerle el gran esfuerzo que le pone a la transmisión de conocimiento de SL.</p>
<h3>Rodrigo, felicidades por este nuevo reconocimiento&#8230;</h3>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/07/silverlight-mvp-para-rodrigo-diaz/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Visual Studio 2010 en español, SilverLight 4 todavía no?</title>
		<link>http://blogs.ligasilverlight.com/2010/06/visual-studio-2010-en-espaol-silverlight-4-todava-no/</link>
		<comments>http://blogs.ligasilverlight.com/2010/06/visual-studio-2010-en-espaol-silverlight-4-todava-no/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 17:24:26 +0000</pubDate>
		<dc:creator>Ryuuzaki de L</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/2010/06/visual-studio-2010-en-espaol-silverlight-4-todava-no/</guid>
		<description><![CDATA[Buen día a todos
Con el lanzamiento de Visual Studio 2010 en español, existe un problema cuando se hace la instalación sobre cualquier otra versión de Visual Studio 2010 en otro idioma (en mi caso en inglés).

No es posible crear una aplicación de SilverLight 4 ya que, al&#160; momento de escribir este texto, aun no se [...]]]></description>
			<content:encoded><![CDATA[<p>Buen día a todos</p>
<p>Con el lanzamiento de Visual Studio 2010 en español, existe un problema cuando se hace la instalación sobre cualquier otra versión de Visual Studio 2010 en otro idioma (en mi caso en inglés).</p>
<p><span id="more-1147"></span></p>
<p>No es posible crear una aplicación de SilverLight 4 ya que, al&#160; momento de escribir este texto, aun no se ha lanzado el paquete de SilverLight 4 tools for Visual Studio 2010 en español, por lo que tendremos que esperar a los chicos de Microsoft para poder crear aplicaciones de SilverLight 4 en nuestro Visual Studio 2010 en español.</p>
<p>Si alguien mas ha tenido este problema, o ha encontrado alguna solución al respecto, favor de comentarlo.</p>
<p>Saludos</p>
<p> <img src='http://blogs.ligasilverlight.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/06/visual-studio-2010-en-espaol-silverlight-4-todava-no/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pósters de tecnologías y productos de Microsoft</title>
		<link>http://blogs.ligasilverlight.com/2010/06/posters-de-tecnologias-y-productos-de-microsoft/</link>
		<comments>http://blogs.ligasilverlight.com/2010/06/posters-de-tecnologias-y-productos-de-microsoft/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 17:03:02 +0000</pubDate>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/?p=1142</guid>
		<description><![CDATA[Lista con los enlaces a varios pósters de tecnologías y productos de Microsoft, incluyendo Silverlight, .NET Framework, Visual Studio, BizTalk, etc.]]></description>
			<content:encoded><![CDATA[<p>Lista con los enlaces a varios pósters de tecnologías y productos de Microsoft, incluyendo Silverlight, .NET Framework, Visual Studio, BizTalk, etc.<br />
<a href="http://www.programandoamedianoche.com/2010/06/posters-de-tecnologias-y-productos-de-microsoft/" target="_blank">Ver el artículo completo aquí</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/06/posters-de-tecnologias-y-productos-de-microsoft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Expression Studio 4 disponible ahora</title>
		<link>http://blogs.ligasilverlight.com/2010/06/expression-studio-4-disponible-ahora/</link>
		<comments>http://blogs.ligasilverlight.com/2010/06/expression-studio-4-disponible-ahora/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 15:50:46 +0000</pubDate>
		<dc:creator>rodrigo.diaz</dc:creator>
				<category><![CDATA[Blend]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Expression]]></category>
		<category><![CDATA[Noticias]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/2010/06/expression-studio-4-disponible-ahora/</guid>
		<description><![CDATA[El día de hoy ha sido anunciado y liberado oficialmente la suite Expression Studio 4, de donde podemos destacar Expression Blend 4.  Expression Blend 4 contiene una gran cantidad de características nuevas tales como:

Compatibilidad con Visual Studio .NET 2010
Soporte para Windows Phone 7
PathListBox
Nuevos Efectos Visuales (Pixel Shaders)
Nuevos Comportamientos
Soporte para el patrón de diseño MVVM
Mejoras en [...]]]></description>
			<content:encoded><![CDATA[<p>El día de hoy ha sido anunciado y liberado oficialmente la suite <a href="http://www.microsoft.com/expression" target="_blank">Expression Studio 4</a>, de donde podemos destacar Expression Blend 4.  Expression Blend 4 contiene una gran cantidad de características nuevas tales como:<span id="more-1139"></span></p>
<ul>
<li>Compatibilidad con Visual Studio .NET 2010</li>
<li>Soporte para Windows Phone 7</li>
<li>PathListBox</li>
<li>Nuevos Efectos Visuales (Pixel Shaders)</li>
<li>Nuevos Comportamientos</li>
<li>Soporte para el patrón de diseño MVVM</li>
<li>Mejoras en SketchFlow, como la opción de publicar <strong>directamente</strong> a una lista en SharePoint y poder ver el feedback de varias personas al mismo tiempo!</li>
<li>Etc…</li>
</ul>
<p><span style="background-color: #f3fcf9;">Si son subscriptores, la descarga ya está disponible en MSDN.  Además les recuerdo que la actualización de Expression Studio 3 a Expression Studio 4 es totalmente gratuita.  Lo único que tienen que hacer es instalar la versión Trial de Expression Studio 4 *sobre* su versión licenciada de la v3.</span></p>
<p><span style="background-color: #f3fcf9;">Para mayor información de todas las novedades en el resto de productos de la familia Expression visiten su <a href="http://www.microsoft.com/expression" target="_blank">sitio oficial</a>.</span></p>
<p>Salu2!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/06/expression-studio-4-disponible-ahora/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>¿Por qué usar MVVM?</title>
		<link>http://blogs.ligasilverlight.com/2010/05/por-que-usar-mvvm/</link>
		<comments>http://blogs.ligasilverlight.com/2010/05/por-que-usar-mvvm/#comments</comments>
		<pubDate>Sat, 29 May 2010 19:57:27 +0000</pubDate>
		<dc:creator>david.mora</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Diseño]]></category>
		<category><![CDATA[MVVM]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/?p=1125</guid>
		<description><![CDATA[Recuerdo hace unos quince años, cuando la fiebre de la Internet estaba todavía en pañales y las ferias comerciales de software eran gigantescas, decidí ver la demostración de un nuevo producto de Borland: Delphi. La idea de crear aplicaciones mediante arrastrar controles a una ventana y escribir pequeños trozos de código alambrando las funciones como [...]]]></description>
			<content:encoded><![CDATA[<p>Recuerdo hace unos quince años, cuando la fiebre de la Internet estaba todavía en pañales y las ferias comerciales de software eran gigantescas, decidí ver la demostración de un nuevo producto de Borland: Delphi. La idea de crear aplicaciones mediante arrastrar controles a una ventana y escribir pequeños trozos de código alambrando las funciones como si fueran un mecano o un lego me dejó fascinado. Acostumbrado a usar infraestructuras como MFC y OWL, el nuevo sistema parecía revolucionario.</p>
<p><span id="more-1125"></span></p>
<p>Poco después ya estaba yo usando el nuevo juguete para crear aplicaciones en mi lugar de trabajo. De igual manera, no tomó mucho tiempo para percatarme que los ejemplos que había visto en la feria estaban cuidadosamente planeados y daban una impresión incorrecta. Tan pronto como uno quería crear algo más complejo que un par de botones y campos de entrada, el código subyacente comenzaba a crecer y hacerse difícil de controlar.</p>
<p>Tras una pausa de varios años en la que estuve envuelto exclusivamente en el ámbito de Linux, volví a Windows esta vez <img style="margin: 10px 10px 10px 0px;border: 0px" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/05/Patchwork.jpg" border="0" alt="" width="204" height="121" align="left" />usando Visual Studio y C#. Sin embargo, encontré que la práctica de usar  las ventanas (Windows Forms) como los módulos de la aplicación todavía seguía en vigencia. Aún ahora, no es raro encontrar clientes con aplicaciones que tienen ventanas con 3000 o más líneas de código subyacente.</p>
<p>¿Es eso malo? Aunque personalmente no me gusta tal estilo de programción, no creo que sea malo o bueno. Mientras funcione, ¿qué importa? Por supuesto, la manutención del proyecto puede ser un reto. Especialmente si los desarrolladores originales ya no están disponibles. Aunque no hay clausulas <em>goto</em> en el código, definitivamente es una bola de espagueti.</p>
<h2>“Yo diseño el programa mientras lo escribo”</h2>
<p>Será por lo fácil que es sentarse simplemente a escribir código que muchos tendemos a ni siquiera tener una idea nebulosa de lo que queremos conseguir cuando ya estamos creando una interfase gráfica y escribiendo código subyacente. Como dice <a href="http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1275128219&amp;sr=1-1">Steve McConnell</a>, es como si al querer construir una casa, comenzáramos a erigir el edificio sin ningún plan determinado, simplemente poniendo juntos los materiales y dejando que la forma de la casa, con todos sus detalles vaya surgiendo poco a poco. La analogía muestra el poco sentido de tal estrategia. Para construir un edificio hay que tener al menos un plan general de la distribución de los cuartos o habitaciones de la casa. Algunas decisiones tienen serias repercusiones en el resultado. ¿Será una casa con una o dos plantas? La estructura básica es diferente en cada caso.</p>
<p>A veces he oído a algunos decir que es más bien como una pintura o escultura, donde el artista deja que su medio le vaya sugiriendo le dirección a seguir. Pero aún así, un artista tiene una noción de lo que intenta producir. Antes de poner óleo en la lona o clavar el cincel en el mármol, el artista tiene un boceto en papel o en su mente. Si el producto deseado es un retrato o un busto, y termina con una pintura o escultura de un caballo, algo anda mal. Por más que el artista diga que es lo que su inspiración le dictó (o lo que el mármol le pidió), el cliente no va a estar satisfecho con ser percibido en términos equinos.</p>
<h2>Bocetos en software</h2>
<p>Volviendo a mi enamoramiento inicial con Delphi (y C++ Builder), por ese tiempo también salió un libro que eventualmente se convirtió en un clásico: <a href="http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612">Design Patterns: Elements of Reusable Object-Oriented Software</a>. Si bien no es revolucionario, sí es especial por definir en forma concreta estrategias específicas para implementar algunos tipos de soluciones a problemas que aparecen repetidamente en la creación de aplicaciones. Desafortunadamente, el tono no es exactamente como el de un libro de Stephen King, lo que dificulta un poco su lectura. Por dicha, a través de los años han surgido otros volúmenes con un enfoque más asequible a los que somos simples mortales.</p>
<p>En fin, los patrones de diseño no son exactamente procedimientos o recetas para la creación de software, sino más bien bocetos a grandes rasgos de la forma general que puede tomar una solución a un problema específico. Nótese el gran número de términos imprecisos en la oración anterior. Es a propósito.</p>
<p>Es más, un patrón en general no tiene la intención de dictar cómo se debe diseñar el programa, sino que más bien, la idea es que, a medida que uno va diseñándolo, encontrará situaciones donde la solución comienza a asemejarse al patrón. Tal como hay ciertas guías para reorganizar código (refactorings), los patrones sirven como guías para reorganizar el diseño o arquitectura del sistema. Y tal como una lectura del tomo por <a href="http://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672/ref=pd_sim_b_1">Fowler</a> nos deja la impresión de explica algo que es obvio, las descripciones sobre patrones de diseño tienden a sonar simplonas y autoevidentes.</p>
<h2>Orden en el escritorio</h2>
<p>Volviendo al tema de las aplicaciones que crecen forma orgánica. Yo pienso que la clave es ser equilibrado. El arquitecto, o el artista comienza con una idea general, probablemente nebulosa. A medida que dibuja el boceto, algunos conceptos comienzan a tomar formas definidas. Puede que los primeros intentos resulten defectivos, pero no importa, al cabo se trata de ideas generales. Luego viene el diseño detallado donde hay que tomar innumerables decisiones sobre la forma definitiva de lo que se está creando.</p>
<p>En software, no tiene sentido tratar de diseñar la aplicación completa sin escribir ni una sola línea de código. Pero tampoco es sensible empezar a escribir código sin siquiera tener una idea general de cual es la forma general y propósito del sistema. Entendiendo esos conceptos iniciales de lo que se quiere resolver con la aplicación es lo que permite decidir qué herramientas usar. Por ejemplo, no toda aplicación es candidata a ser desarrollada en Silverlight, o con ASP.NET, o hasta con Windows.</p>
<p>De igual manera, si resulta que Silverlight es la solución apropiada, no toda aplicación es apta a ser diseñada de la misma manera. Independientemente de su aspecto gráfico, las necesidades de un juego son comúnmente muy diferentes de las de un procesador del matrículas para una universidad.</p>
<p><img style="margin: 5px 0px 10px 10px;border: 0px" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/05/iStock_000000833185XSmall.jpg" border="0" alt="" width="244" height="163" align="right" /> Siendo aún un poco más atrevido, diré que la forma en que se diseña la aplicación tiene poca importancia si al final el producto trabaja apropiadamente. Pero hay ciertas condiciones. Por ejemplo, de seguro cada uno de nosotros tiene formas diferentes de organizar el escritorio. Para algunos, el escritorio debe estar limpio, y tener solamente lo que se está usando en ese momento. Papeles, libros y demás están todos organizados en archivadores y estantes. Para otros, el escritorio consta de torres de papeles y libros, junto con docenas de otros objetos apilados sin ton ni son aparente. En ambos casos, mientras la persona se sienta cómoda y sea productiva, el estado del escritorio es irrelevante.</p>
<p>Por supuesto, puede que algunos objeten sobre el desorden del segundo caso. Se ve feo. Es un completo desorden. No obstante, en muchos casos los habitantes de tales alborotos saben muy bien dónde está todo y lo pueden encontrar en un instante. Es más, todo está a la mano. Se puede argumentar que la persona con el escritorio ordenado tiene un mejor ambiente de trabajo. Es cierto, la apariencia es nítida y todo está en su lugar, pero cualquier cosa que tal persona necesite, requiere un viaje al archivador o al librero. De modo que las ventajas no son tan evidentes. Cada estilo tiene puntos buenos y malos. Mientras la persona esté cómoda en su propio escritorio, tales comparaciones son fútiles.</p>
<p>El lío se arma cuando viene alguien no familiarizado con el sistema. Un nuevo trabajador tendrá serios problemas encontrando algo en el escritorio similar a la zona de guerra. Hasta que no sea tan experto como el trabajador original, su productividad va a ser terrible. Por otra parte, un trabajador nuevo al que le toque el escritorio ordenado y clasificado tendrá menos dificultades en ser productivo. Eventualmente puede que en ambos escritorios los trabajadores sean igual de productivos, pero el tiempo que toma llegar a ese nivel es muy diferente en cada caso.</p>
<h2>Es cuestión de equilibrio</h2>
<p>Pasando la analogía al diseño de software, una aplicación en la que toda la lógica ocurre en el código subyacente de las ventanas o formularios de web, no es necesariamente mala. La funcionalidad está toda allí y no hay que navegar una docena de clases antes de encontrar quién diantres escribe los datos al archivo.  De igual manera, una aplicación organizada minuciosamente en componentes o capas no es necesariamente mejor. Cada capa o separación introduce más complejidad y afecta el rendimiento del sistema.</p>
<p>Sin embargo, si existe la posibilidad de que múltiples desarrolladores trabajen simultáneamente (o en diferentes épocas) en el sistema, hay ciertas ventajas en un sistema más organizado y separado en componentes con responsabilidades definidas. El tiempo que toma entender el sistema a grandes rasgos es menor. En fin,  la mantención del sistema es más simple.</p>
<p>De nuevo, el asunto es ser equilibrado. ¿Se trata de una aplicación personal? ¿O tal vez una aplicación utilitaria con un par de botones y dos o tres controles adicionales? En tales casos el trabajo de organizar la aplicación puede tener pocas ventajas.</p>
<p>Pero si hablamos de aplicaciones empresariales, o cuando existe la posibilidad de que otros tengan que mantener el sistema más adelante, o de que se tenga que alterar el sistema a medida que los requerimientos cambian, es buena idea considerar seriamente una organización más estricta para la aplicación.</p>
<p>Nótese que tal organización sería muy diferente de un caso a otro. Puede que la organización implique mejores comentarios, o el uso de regiones, o la creación de algunas clases auxiliares. O puede que implique subsistemas múltiples divididos a su vez en componentes y clases.</p>
<h2>Silverlight y MVVM</h2>
<p>Al final, llegamos al meollo del asunto. Al inicio teníamos aplicaciones en Windows. Luego surgió ASP y ASP.NET, ambos con diferentes modelos y entornos de trabajo que requieren una filosofía diferente al escribir aplicaciones. Todos los que han cruzado al mundo de aplicaciones de Web están familiarizados con el impacto que causa darse cuenta de que cada vez que el navegador envía una acción al servidor, éste ha olvidado completamente todo lo que habíamos creado hace apenas un segundo, y tiene que comenzar de nuevo desde cero.</p>
<p>De igual manera, Silverlight es lo suficientemente diferente de Windows Forms y ASP.NET como para requerir un reajuste en nuestra forma de crear aplicaciones. Los que han desarrollado en ambos entornos, tienen cierta ventaja, pero es todavía un reto. Más fácil es para los que han desarrollado en WPF, puesto que Silverlight es muy similar.</p>
<p>Desde un principio, los desarrolladores en WPF notaron que el patrón MVVM se adapta muy bien a ciertos tipos de aplicaciones en este entorno. Tal característica ha sido heredada por Silverlight. Es más, en Silverlight la separación entre el cliente y le servidor es intrínseca y concreta, en vez de ser simplemente un artefacto conceptual. La naturaleza física de la separación hace fácil el ver los datos como algo remoto, hasta cierto punto ajeno a la aplicación Silverlight en el cliente que tiene cierto sabor a presentador de tal información.</p>
<p>El problema perenne en tal situación es el pegamento o adaptador entre el mundo de los datos y el mundo visual de su representación. MVVM es un boceto, o estrategia para implementar tal intermediario. El propósito es crear sistemas en los que hay cierto número de componentes con responsabilidades claramente definidas.</p>
<p>¿Quiere decir que toda aplicación en Silverlight debería ser diseñada usando el patrón MVVM? NO. MVVM no es la única estrategia disponible. De hecho, es posible crear una aplicación al estilo tradicional, usando solamente código subyacente. Una vez más, depende del tipo de aplicación, su uso, y las circunstancias en las que se va a mantener.</p>
<p>Con todo y todo, MVVM ha tomado cierto impulso dentro de la comunidad de desarrolladores de Silverlight, y sea que uno esté de acuerdo o no, es bueno al menos saber de qué se trata.</p>
<h2>Bueno entonces, ¿qué p(bip) es MVVM?</h2>
<p>Aunque parezca mentira, nadie sabe con absoluta certeza la respuesta a esa pregunta. El problema es que MVVM es extremadamente ambiguo en su definición. Las siglas representan el nombre en inglés para Modelo, Vista y Modelo de Vista. Y la definición básica es que el modelo contiene los datos, la vista presenta esos datos al usuario, y el modelo de vista es lo que conecta a ambos.</p>
<p>Es fácil ver los problemas de tal concepto. De hecho, ¿exactamente qué significa que el modelo contenga los datos? ¿Qué hay de las reglas o lógica que manipula tales datos? ¿Está el modelo a cargo de la seguridad de la información mediante autenticar y autorizar su acceso? Y la vista, ¿tan sólo presenta los datos, o también se encarga de responder a acciones del usuario? ¿Puede la vista hacer pequeños cambios a la información, o tiene que enviar cada solicitud de cambio al modelo?</p>
<p><img style="margin: 7px 10px 10px 0px;border: 0px" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/05/iStock_000004918493XSmall.jpg" border="0" alt="" width="204" height="154" align="left" /> Y en todo esto, ¿qué es el modelo de vista, y por qué es necesario? ¿Por qué no puede la vista simplemente conectarse al modelo sin usar un intermediario? Y si al final se nos convence de que se ocupa el modelo de vista, ¿exactamente qué es lo que hace? ¿Cómo puedo adaptarlo a mi diseño?</p>
<p>Esas y otras muchas preguntas son comunes y las respuestas aún están tomando forma. Nadie tiene todavía una idea completa del asunto. De hecho puesto que es tan sólo un patrón de diseño, la forma específica que tome su implementación cambiará de aplicación a aplicación.</p>
<p>Por experiencia propia, yo sugiero:</p>
<ul>
<li>Investigar y obtener un concepto general del tema</li>
<li>Estudiar tantos ejemplos como sea posible</li>
<li>Tratar de diseñar una aplicación relativamente pequeña  usando el patrón</li>
</ul>
<p>Para el primer ítem, <a href="http://maromasdigitales.net/2010/05/patron-mvvm-explicado/">he publicado un artículo escrito originalmente en inglés por Jeremy Likness explicando en detalle el MVVM</a> y presentando algunos casos comunes donde uno puede encontrar dificultades. También ofrece comentarios sobre varias bibliotecas que ayudan a implementarlo. Hace algún tiempo empecé a escribir un artículo con una idea similar, pero Jeremy hizo un trabajo mucho mejor.</p>
<p>Habiendo estudiado el patrón, fastidiado a varios miembros de la comunidad con montones de preguntas, y caminado paso a paso por docenas  de ejemplos, hace poco tuve la oportunidad de ejecutar el tercer paso y crear una aplicación pequeña pero lo suficientemente compleja como para justificar el uso del patrón (ok, ok, tal vez no tan justificadamente). El proceso fue interesante y lleno de lecciones. Mi plan es dar cuenta de algunos los puntos principales en futuros artículos que puedan servir de ayuda a los que van por el mismo camino.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/05/por-que-usar-mvvm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lanzamiento de Visual Studio .NET 2010 y Silverlight 4 @ Trujillo, Perú</title>
		<link>http://blogs.ligasilverlight.com/2010/05/lanzamiento-de-visual-studio-net-2010-y-silverlight-4-trujillo-per/</link>
		<comments>http://blogs.ligasilverlight.com/2010/05/lanzamiento-de-visual-studio-net-2010-y-silverlight-4-trujillo-per/#comments</comments>
		<pubDate>Thu, 20 May 2010 14:42:38 +0000</pubDate>
		<dc:creator>rodrigo.diaz</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[WP7]]></category>
		<category><![CDATA[Comunidades]]></category>
		<category><![CDATA[conferencia]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[La Liga Silverlight]]></category>
		<category><![CDATA[latam]]></category>
		<category><![CDATA[MVP]]></category>
		<category><![CDATA[perú]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Silverlight 4]]></category>
		<category><![CDATA[trujillo]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://blogs.ligasilverlight.com/2010/05/lanzamiento-de-visual-studio-net-2010-y-silverlight-4-trujillo-per/</guid>
		<description><![CDATA[Invitado por la Universidad Privada del Norte en Trujillo, Perú, estaré dando una charla allá el día sábado 22 de Mayo a las 09:00 horas acerca de Silvelight 4 y Windows Phone 7.&#160; Durante el evento también se hablará de Visual Studio .NET 2010 y sus nuevas características.

&#160;
Si están en la ciudad les invito a [...]]]></description>
			<content:encoded><![CDATA[<p>Invitado por la Universidad Privada del Norte en Trujillo, Perú, estaré dando una charla allá el día sábado 22 de Mayo a las 09:00 horas acerca de <a href="http://silverlight.net" target="_blank">Silvelight</a> 4 y Windows Phone 7.&#160; Durante el evento también se hablará de Visual Studio .NET 2010 y sus nuevas características.</p>
<p><span id="more-1118"></span></p>
<p><a href="http://blogs.ligasilverlight.com/wp-content/uploads/2010/05/LanzamientoTrujillo.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Lanzamiento-Trujillo" border="0" alt="Lanzamiento-Trujillo" src="http://blogs.ligasilverlight.com/wp-content/uploads/2010/05/LanzamientoTrujillo_thumb.jpg" width="504" height="489" /></a>&#160;</p>
<p>Si están en la ciudad les invito a que asistan, la entrada es libre!!!</p>
<p>Los datos son:</p>
<blockquote><p>Fecha: Sábado 22 de Mayo 2010</p>
<p>Lugar: Pullman Hotel</p>
<p>Hora: 09:00 horas</p>
</blockquote>
<p>¡Allá nos vemos!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ligasilverlight.com/2010/05/lanzamiento-de-visual-studio-net-2010-y-silverlight-4-trujillo-per/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
