<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://developersdotnet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"><channel><title>DevelopersDotNet.com</title><link>http://developersdotnet.com/blogs/</link><description>&lt;P&gt;Contenido original para la comunidad de desarrolladores Microsoft&lt;/P&gt;</description><dc:language>en-US</dc:language><generator>CommunityServer 2008 (Build: 30417.1769)</generator><item><title>Lanzamiento 2008 - Ahora con "Energy SQL Server"</title><link>http://developersdotnet.com/blogs/valameda/archive/2008/11/19/lanzamiento-2008-ahora-con-quot-energy-sql-server-quot.aspx</link><pubDate>Thu, 20 Nov 2008 05:41:00 GMT</pubDate><guid isPermaLink="false">36068fae-1bf2-46ec-9096-c78eda5cd75b:370</guid><dc:creator>VAlameda</dc:creator><slash:comments>0</slash:comments><description>Que tal estimados lectores de DevelopersDotNet, antes que nada les ofrezco una disculpa ya que por causas de trabajo hemos dejado de escribir art&amp;iacute;culos en la comunidad, pero pr&amp;oacute;ximamente tendr&amp;aacute;n noticias nuestras. Por ahora les adelanto que estaremos organizando el evento de Lanzamiento 2008 denominado &amp;quot;Energy SQL Server&amp;quot;, no dejen de visitarnos ya que en unos cuantos d&amp;iacute;as tendr&amp;aacute;n los pormenores. Y les hago una extensa invitaci&amp;oacute;n a participar en...(&lt;a href="http://developersdotnet.com/blogs/valameda/archive/2008/11/19/lanzamiento-2008-ahora-con-quot-energy-sql-server-quot.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://developersdotnet.com/aggbug.aspx?PostID=370" width="1" height="1"&gt;</description><category domain="http://developersdotnet.com/blogs/valameda/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://developersdotnet.com/blogs/valameda/archive/tags/Lanzamiento/default.aspx">Lanzamiento</category><category domain="http://developersdotnet.com/blogs/valameda/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://developersdotnet.com/blogs/valameda/archive/tags/Energy/default.aspx">Energy</category><category domain="http://developersdotnet.com/blogs/valameda/archive/tags/Eventos+Microsft/default.aspx">Eventos Microsft</category></item><item><title>En las nubes</title><link>http://developersdotnet.com/blogs/marcos/archive/2008/11/18/en-las-nubes.aspx</link><pubDate>Tue, 18 Nov 2008 21:42:00 GMT</pubDate><guid isPermaLink="false">36068fae-1bf2-46ec-9096-c78eda5cd75b:369</guid><dc:creator>Marcos</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&amp;iquest;Enamorados? Que maravilloso es esto del amor, que como bien lo dice el t&amp;iacute;tulo, hasta nos hace sentir en las nubes! Y aunque en esta ocasi&amp;oacute;n, este art&amp;iacute;culo no hablar&amp;aacute; de amor, si les advierto que&amp;nbsp;seguiremos en las nubes. &lt;/p&gt;
&lt;p&gt;&amp;iquest;A d&amp;oacute;nde voy con todo esto? Seguramente en alg&amp;uacute;n momento escucharon, leyeron o en alg&amp;uacute;n momento paso por su atenci&amp;oacute;n el concepto de &amp;quot;Cloud Computing&amp;quot; o &amp;quot;C&amp;oacute;mputo en las nubes&amp;quot; y sino han escuchado absolutamente nada de esto, pues ser&amp;aacute; un gusto poder comenzar a platicarles algo de esto. Y no s&amp;eacute; diga m&amp;aacute;s, que para el momento en el que escribo esta nota, ya existe una gran cantidad de art&amp;iacute;culos publicados en la red acerca de este tema, publicaciones en libros, discusiones en podcasts, miles de blogs con este t&amp;oacute;pico, etc., todos y cada uno de ellos&amp;nbsp;le est&amp;aacute;n dando un especial seguimiento al c&amp;oacute;mputo en las nubes. &lt;/p&gt;
&lt;p&gt;Y gracias a ese c&amp;uacute;mulo de informaci&amp;oacute;n que he le&amp;iacute;do tomo la iniciativa para cubrir en este espacio una nota que nos permita acercarnos a que es lo que est&amp;aacute; pasando alrededor de esto y conocer que beneficio le podemos sacar. &lt;/p&gt;
&lt;p&gt;As&amp;iacute; que comencemos, &amp;iquest;&lt;em&gt;qu&amp;eacute; es esto de c&amp;oacute;mputo en las nubes&lt;/em&gt;? Sin duda alguna est&amp;aacute; de sobra reconocer la importancia que ha adquirido internet y todo lo que nos ofrece el d&amp;iacute;a de hoy, lo imposible ya es posible y cada vez&amp;nbsp;parece m&amp;aacute;s f&amp;aacute;cil conseguir todo lo que alg&amp;uacute;n d&amp;iacute;a llegamos a imaginar. &lt;/p&gt;
&lt;p&gt;Recuerdo que hace tiempo, le&amp;iacute;a un art&amp;iacute;culo sobre la posibilidad de tener interconectados todos nuestros dispositivos; por ejemplo si est&amp;aacute;s leyendo este art&amp;iacute;culo seguramente lo haces desde tu equipo de escritorio, o bien desde tu laptop y porque no imaginar que lo haces desde un dispositivo m&amp;oacute;vil o desde tu consola de videojuegos, todo puede ser posible!, recuerdo que en aquella ocasi&amp;oacute;n ese art&amp;iacute;culo me produjo la inquietud de saber que en alg&amp;uacute;n futuro no muy lejano, todos mis equipos podr&amp;iacute;an estar conectados y compartir archivos y no importarme donde se encuentre, sino m&amp;aacute;s bien que pueda tener acceso a &amp;eacute;l. &lt;/p&gt;
&lt;p&gt;En ese momento me imagin&amp;eacute; en un viaje a la luna capturando una foto y segundos despu&amp;eacute;s poder compartirla con mi familia en el televisor de la sala, todo es posible! &amp;acute;&lt;/p&gt;
&lt;p&gt;Y as&amp;iacute; fue como hace tiempo, apareci&amp;oacute; formalmente la propuesta de Microsoft a esto denominada &lt;a target="_blank" href="https://www.mesh.com/Welcome/default.aspx" class="null"&gt;&lt;strong&gt;&lt;em&gt;LiveMesh&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&amp;nbsp;el cual aparece con una leyenda como la siguiente:&lt;strong&gt;&lt;em&gt; &lt;/em&gt;&lt;span id="ctl00_ctl00_PageArea_PageTitle_HomePageTitle"&gt;Synchronizing life&lt;/span&gt;&amp;nbsp; - &lt;/strong&gt;&lt;span id="ctl00_ctl00_PageArea_Intro_HomeSubTitle"&gt;&lt;strong&gt;Sync, share, and access the information you care about&amp;mdash;wherever you happen to be&lt;/strong&gt;.&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;Y sino han visto nada de esto, los invito a darse una vuelta, checarlo y formar su propio punto de vista. Una aportaci&amp;oacute;n del c&amp;oacute;mputo en la nube en un enfoque m&amp;aacute;s personal.&lt;/p&gt;
&lt;p&gt;Pero ahora, imaginen si esto lo llevan a un tono empresarial, donde ya no sean sus fotos, sus documentos, sus mp3, sino sean las presentaciones estrat&amp;eacute;gicas, los contactos, los respaldos de sus bases de datos o las mismas bases de datos, su entorno de desarrollo&amp;nbsp;y dem&amp;aacute;s recursos que imaginen! Esto tambi&amp;eacute;n ya es una realidad donde ya muchas empresas trabajan en esto y empiezan a generar sus propias ofertas, obviamente en todo esto aparecen nombres fuertes como IBM, Google, Sun, y naturalmente Microsoft, entre otros. &lt;/p&gt;
&lt;p&gt;Y justamente, haciendo &amp;eacute;nfasis en la propuesta de Microsoft, el pasado evento del PDC (Professional Developers Conference) fue el momento oportuno para darle formalidad y nombre al proyecto de Microsoft para todo aquello que va relacionado con esto (ll&amp;aacute;mese &amp;quot;Cloud Computing&amp;quot;, &amp;quot;C&amp;oacute;mputo en la Nube&amp;quot;, &amp;quot;SaS&amp;quot;, &amp;quot;Software as Services&amp;quot; o el redefinido &amp;quot;Software + Services&amp;quot;) el cual ha sido presentado como &lt;strong&gt;&lt;a target="_blank" href="http://www.microsoft.com/azure/windowsazure.mspx" class="null"&gt;Windows Azure&lt;/a&gt;&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;Dar clic en el v&amp;iacute;nculo anterior y comenzar con la experiencia, &amp;iquest;&lt;em&gt;qu&amp;eacute; hay con Windows Azure&lt;/em&gt;? Imaginen la posibilidad de probar su aplicaci&amp;oacute;n en un ambiente de producci&amp;oacute;n sin necesidad de contar con la infraestructura necesaria, imaginen poder ofrecer a sus clientes esquemas de escalabilidad sin preocuparnos por la adquisici&amp;oacute;n de mayores recursos para la infraestructura, imaginen probar software sin tener que instalar y poner en riesgo funcionalidad de su equipo, imaginen el ahorro de energ&amp;iacute;a al no tener que contar con servidores encendidos las 24 horas, los 7 d&amp;iacute;as, los 365 d&amp;iacute;as del a&amp;ntilde;o, todo esto y muchas cosas m&amp;aacute;s pueden ser posibles. &lt;/p&gt;
&lt;p&gt;&amp;iquest;Y c&amp;oacute;mo es posible todo esto? Windows Azure no es m&amp;aacute;s que una plataforma basada en servicios que estar&amp;aacute; hosteada en los centros de datos de Microsoft y que podr&amp;aacute; ser utilizada a trav&amp;eacute;s de est&amp;aacute;ndares comunes para nosotros como HTTP, REST, SOAP,&amp;nbsp;y XML. Servicios como Live, .NET Services, Sharepoint Services, Dynamics, SQL Services estar&amp;aacute;n disponibles bajo esta propuesta, as&amp;iacute; como tambi&amp;eacute;n poder convivir con herramientas y lenguajes de terceros tales como Eclipse, Ruby, PHP, o Python. &lt;/p&gt;
&lt;p&gt;Suena maravilloso todo esto, &amp;iquest;no creen? pues a probarlo y ver los resultados con nuestros propios ojos, y asi poder conocer cuales pueden ser los principales beneficios que podemos obtener el d&amp;iacute;a de hoy y que sobretodo le impacten a nuestra cartera, la cual sin duda alguna en estos &amp;uacute;ltimos d&amp;iacute;as con el clima econ&amp;oacute;mico mundial no ha estado muy c&amp;oacute;moda que digamos. &lt;/p&gt;
&lt;p&gt;Y para comenzar con la experiencia,&amp;nbsp;afortunadamente ya existe un &lt;strong&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=129448" class="null"&gt;SDK&lt;/a&gt;&lt;/strong&gt; disponible y una serie de documentaci&amp;oacute;n para comenzar a generar en Visual Studio nuestros primeros proyectos en la nube, el cual ya descargu&amp;eacute; y estoy comenzando a probar, para despu&amp;eacute;s poder compartirles algunos art&amp;iacute;culos relacionados al respecto. &lt;/p&gt;
&lt;p&gt;Es por esta raz&amp;oacute;n que los invito a darse una vuelta por los links mencionados y si esta nota ha despertado su inter&amp;eacute;s por todo aquello relacionado con el c&amp;oacute;mputo en las nubes, no se queden con la curiosidad, comenten y prueben para que no les cuenten. &lt;/p&gt;
&lt;p&gt;Por lo pronto los dejo un momento, mientras tanto y como siempre esperando que esta nota sea de utilidad.&lt;/p&gt;
&lt;p&gt;Nos encontramos en la pr&amp;oacute;xima, mientras tanto yo me quedo en las nubes!&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;PD. En una experiencia distinta, hay unos podcasts muy buenos acerca del PDC 2008 cortes&amp;iacute;a de mis apreciados y estimados&amp;nbsp;col&amp;eacute;gas de Devworxs, visiten y descarguen &lt;strong&gt;&lt;a target="_blank" href="http://squad.devworx.com.mx/blogs/rodrigo/archive/2008/11/03/podworx-emisiones-4-y-5.aspx" class="null"&gt;aqu&amp;iacute;&lt;/a&gt;&lt;/strong&gt;, es ampliamente recomendable.&lt;/em&gt; &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developersdotnet.com/aggbug.aspx?PostID=369" width="1" height="1"&gt;</description><category domain="http://developersdotnet.com/blogs/marcos/archive/tags/PDC/default.aspx">PDC</category><category domain="http://developersdotnet.com/blogs/marcos/archive/tags/Windows+Azure/default.aspx">Windows Azure</category></item><item><title>Web.Blogs["Marcos"].IsAlive=true;</title><link>http://developersdotnet.com/blogs/marcos/archive/2008/11/07/web-blogs-quot-marcos-quot-isalive-true.aspx</link><pubDate>Fri, 07 Nov 2008 19:28:00 GMT</pubDate><guid isPermaLink="false">36068fae-1bf2-46ec-9096-c78eda5cd75b:368</guid><dc:creator>Marcos</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&amp;nbsp;Ah&amp;iacute; les voy y mientras haya un espacio y gente con quien compartir la experiencia, ah&amp;iacute; vamos de nuevo!!!&lt;/p&gt;
&lt;p&gt;Gusto estar de nuevo por ac&amp;aacute;!!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developersdotnet.com/aggbug.aspx?PostID=368" width="1" height="1"&gt;</description></item><item><title>Reglas para Colaborar en DevelopersDotNet.com</title><link>http://developersdotnet.com/blogs/colaboradores/archive/2008/08/06/reglas-para-colaborar-en-developersdotnet-com.aspx</link><pubDate>Thu, 07 Aug 2008 03:56:00 GMT</pubDate><guid isPermaLink="false">36068fae-1bf2-46ec-9096-c78eda5cd75b:365</guid><dc:creator>VAlameda</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;span style="font-size:x-small;font-family:lucida sans unicode;"&gt;&lt;font size="2"&gt;Antes que nada quiero agradecer el inter&amp;eacute;s que han mostrado por participar en DevelopersDotNet.com, lo prometido es deuda, les dejo las reglas para poder ser colaboradores de nuestra comunidad y poder compartir conocimiento con todas aquellas personas apasionadas del desarrollo con Microsoft .NET&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2" face="lucida sans unicode"&gt;El art&amp;iacute;culo deber&amp;aacute; de ser con contenido 100% original, es decir no publicaremos art&amp;iacute;culos que se hayan fusilado de otros sitios.&lt;/font&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2" face="lucida sans unicode"&gt;Los art&amp;iacute;culos que se publicar&amp;aacute;n deber&amp;aacute;n de ser orientados a alg&amp;uacute;n tema en espec&amp;iacute;fico y con tecnolog&amp;iacute;a .NET adem&amp;aacute;s de ser de ayuda para nuestros lectores, NO se aceptar&amp;aacute;n art&amp;iacute;culos que sean noticias, recuerden para eso est&amp;aacute;n muchos otros sitios que se encargan de hacer copias.&lt;/font&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2" face="lucida sans unicode"&gt;El art&amp;iacute;culo que env&amp;iacute;en no deber&amp;aacute; de haber sido publicado en otro sitio.&lt;/font&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2" face="lucida sans unicode"&gt;El art&amp;iacute;culo deber&amp;aacute; de incluir c&amp;oacute;digo ejemplo funcional.&lt;/font&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2" face="lucida sans unicode"&gt;Para comenzar nosotros seremos los encargados de publicar los art&amp;iacute;culos.&lt;/font&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:x-small;font-family:lucida sans unicode;"&gt;&lt;font size="2"&gt;Los art&amp;iacute;culos deber&amp;aacute;n de ser enviados a &lt;/font&gt;&lt;/span&gt;&lt;a href="mailto:colabora@developersdotnet.com"&gt;&lt;span style="font-size:x-small;font-family:lucida sans unicode;"&gt;&lt;font size="2"&gt;colabora@developersdotnet.com&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2" face="lucida sans unicode"&gt;Los art&amp;iacute;culos deben de ser enviados en formato de Microsoft Word 2003 o 2007 y si incluyen im&amp;aacute;genes deber&amp;aacute;n de estar en formato *.jpg.&lt;/font&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:x-small;font-family:lucida sans unicode;"&gt;&lt;font size="2"&gt;Nuestros lectores se encargar&amp;aacute;n de decidir si son candidatos a tener su propio blog en DevelopersDotNet.com, mediante encuestas y votaciones que haremos constantemente. &lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:x-small;font-family:lucida sans unicode;"&gt;&lt;font size="2"&gt;Recuerda que toda cr&amp;iacute;tica ser&amp;aacute; bien recibida y por muy mala o buena siempre ser&amp;aacute; constructiva. No se permite discriminar a nadie y es t&amp;uacute; obligaci&amp;oacute;n contestar a las preguntas que hagan los usuarios si es referente al art&amp;iacute;culo que nos enviaste. &lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2" face="lucida sans unicode"&gt;Y es t&amp;uacute; decisi&amp;oacute;n contestar a preguntas de foros para ayudar a alguien. Pero recuerda que mientras m&amp;aacute;s participes tendr&amp;aacute;s m&amp;aacute;s oportunidades de tener un espacio propio en DevelopersDotNet.com&lt;/font&gt; &lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:x-small;font-family:lucida sans unicode;"&gt;&lt;font size="2"&gt;Espero que estas reglas no sean tan complicadas, recuerden que es por el bien de la comunidad para lograr ser la mejor de todo M&amp;eacute;xico.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;font-family:lucida sans unicode;"&gt;&lt;font size="2"&gt;Suerte y a escribir se ha dicho. Esperamos sus art&amp;iacute;culos.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;font-family:lucida sans unicode;"&gt;&lt;font size="2"&gt;V&amp;iacute;ctor Alameda&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;font-family:lucida sans unicode;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developersdotnet.com/aggbug.aspx?PostID=365" width="1" height="1"&gt;</description><category domain="http://developersdotnet.com/blogs/colaboradores/archive/tags/Post/default.aspx">Post</category><category domain="http://developersdotnet.com/blogs/colaboradores/archive/tags/Colaboradores/default.aspx">Colaboradores</category><category domain="http://developersdotnet.com/blogs/colaboradores/archive/tags/Comunidad/default.aspx">Comunidad</category><category domain="http://developersdotnet.com/blogs/colaboradores/archive/tags/.NET/default.aspx">.NET</category><category domain="http://developersdotnet.com/blogs/colaboradores/archive/tags/Articulos/default.aspx">Articulos</category></item><item><title>Colaboradores de DevelopersDotNet.com</title><link>http://developersdotnet.com/blogs/colaboradores/archive/2008/07/26/colaboradores-de-developersdotnet-com.aspx</link><pubDate>Sat, 26 Jul 2008 23:55:09 GMT</pubDate><guid isPermaLink="false">36068fae-1bf2-46ec-9096-c78eda5cd75b:360</guid><dc:creator>VAlameda</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&lt;font face="Lucida Sans Unicode" size="2"&gt;Hola a todos, &lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font face="Lucida Sans Unicode" size="2"&gt;En DevelopersDotNet.com creemos en la capacidad de que cualquier persona apasionada de la tecnología puede crear artículos al igual que los bloggers oficiales de DevelopersDotNet.com y hemos creado un nuevo blog llamado Colaboradores de DevelopersDotNet.com. &lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font face="Lucida Sans Unicode" size="2"&gt;Si estás interesado en compartir tus conocimientos con todos los apasionados de la programación y la tecnología como nosotros, te pedimos nos envíes un e-mail a: &lt;/font&gt;&lt;a href="mailto:webmaster@developersdotnet.com"&gt;&lt;font face="Lucida Sans Unicode" size="2"&gt;webmaster@developersdotnet.com&lt;/font&gt;&lt;/a&gt;&lt;font face="Lucida Sans Unicode" size="2"&gt; para que nos platiques porque te gustaría escribir en DevelopersDotNet.com y en qué áreas estás interesado en colaborar. Es importante mencionar que la primer regla es los artículos publicados en el sitio deberán de ser originales, es decir que no hagamos copia de otros sitios que es lo que hacen todos los demás. La segunda regla es que con tu colaboración ayudarás y te ayudarás a obtener más conocimientos y lo más importante, todo es de forma voluntaria y sin fines de lucro, no hay obligaciones.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font face="Lucida Sans Unicode" size="2"&gt;En los siguientes días estaremos publicando las reglas para poder crear artículos en DevelopersDotNet.com. Como todos ustedes saben DevelopersDotNet.com es la comunidad de todos y juntos lograremos tener el sitio que hable sobre tecnología .NET más grande de todo México.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font face="Lucida Sans Unicode" size="2"&gt;Esperamos contar con tu participación y muy pronto esperen más noticias.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;font face="Lucida Sans Unicode" size="2"&gt;&lt;/font&gt;&lt;/b&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;font face="Lucida Sans Unicode" size="2"&gt;El equipo de DevelopersDotNet.com&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developersdotnet.com/aggbug.aspx?PostID=360" width="1" height="1"&gt;</description><category domain="http://developersdotnet.com/blogs/colaboradores/archive/tags/Post/default.aspx">Post</category><category domain="http://developersdotnet.com/blogs/colaboradores/archive/tags/Colaboradores/default.aspx">Colaboradores</category><category domain="http://developersdotnet.com/blogs/colaboradores/archive/tags/Comunidad/default.aspx">Comunidad</category><category domain="http://developersdotnet.com/blogs/colaboradores/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Sintáxis LINQ To SQL - SELECT</title><link>http://developersdotnet.com/blogs/valameda/archive/2008/06/29/sint-225-xis-linq-to-sql-select.aspx</link><pubDate>Mon, 30 Jun 2008 03:29:26 GMT</pubDate><guid isPermaLink="false">36068fae-1bf2-46ec-9096-c78eda5cd75b:353</guid><dc:creator>VAlameda</dc:creator><slash:comments>0</slash:comments><description>Siguiendo con las entregas de LINQ To SQL ahora les voy mostrar las sintaxis que tenemos con LINQ. Al igual que un SELECT de SQL Server, LINQ cuenta con las mismas expresiones para formar una consulta. Vamos a utilizar una sentencia SELECT que actuará sobre una colección de elementos utilizando la expresión FROM misma que podemos combinarla con la expresión WHERE para crear un filtro. Veamos un ejemplo: using (NorthwindDataContext db = new NorthwindDataContext()) { var query = from c in db.Customers...(&lt;a href="http://developersdotnet.com/blogs/valameda/archive/2008/06/29/sint-225-xis-linq-to-sql-select.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://developersdotnet.com/aggbug.aspx?PostID=353" width="1" height="1"&gt;</description><category domain="http://developersdotnet.com/blogs/valameda/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://developersdotnet.com/blogs/valameda/archive/tags/.NET+Framework+3.5/default.aspx">.NET Framework 3.5</category><category domain="http://developersdotnet.com/blogs/valameda/archive/tags/LINQ/default.aspx">LINQ</category></item><item><title>Asiste al Evento de lanzamiento Comunidad del DF</title><link>http://developersdotnet.com/blogs/bichi/archive/2008/05/08/asiste-al-evento-de-lanzamiento-comunidad-del-df.aspx</link><pubDate>Thu, 08 May 2008 15:04:00 GMT</pubDate><guid isPermaLink="false">36068fae-1bf2-46ec-9096-c78eda5cd75b:343</guid><dc:creator>Bichi</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;La Comunidad .NET de la Ciudad de M&amp;eacute;xico y DevelopersDotNet te invitan al evento de Lanzamiento de VS2008, SQL2008 y Windows 2008&lt;/p&gt;
&lt;p&gt;&amp;iexcl;Asiste!&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Fecha:&lt;/b&gt;&lt;br /&gt;13 de Mayo &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Hora:&lt;/b&gt;&lt;br /&gt;11 a.m. &amp;ndash; 7.p.m &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Lugar:&lt;/b&gt;&lt;br /&gt;ITAM &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Direcci&amp;oacute;n:&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;R&amp;iacute;o Hondo # 1 &lt;br /&gt;Col. Progreso Tizap&amp;aacute;n &lt;br /&gt;C.P. 01080 Del. &amp;Aacute;lvaro Obreg&amp;oacute;n &lt;br /&gt;M&amp;eacute;xico D.F. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Agenda:&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;11:00 a 12:30&lt;br /&gt;H&amp;eacute;ctor Obreg&amp;oacute;n -Interoperabilidad entre C&amp;oacute;digo Nativo en C++ (con MFC), Windows Forms y WPF &lt;/p&gt;
&lt;p&gt;12:30 a 2:00 &lt;br /&gt;Misael Monterroca - Silverlight 2.0 Beta 1 &lt;/p&gt;
&lt;p&gt;2:00 a 3:00 &lt;br /&gt;Tiempo disponible para salir a comer. &lt;/p&gt;
&lt;p&gt;3:00 a 4:30 &lt;br /&gt;Miguel &amp;Aacute;ngel Moran - Nuevos elementos sint&amp;aacute;cticos con C# 3.0 y VB 9.0 &lt;/p&gt;
&lt;p&gt;4:30 a 5:45&lt;br /&gt;Alfredo Ceballos &amp;ndash; &lt;i&gt;Experiencias de Usuario Enriquecidas en Web y Windows&lt;/i&gt;. &lt;/p&gt;
&lt;p&gt;5:45 a 7:00 &lt;br /&gt;Ra&amp;uacute;l Guerrero &amp;ndash;&amp;nbsp; SQL Server 2008 &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Mapa:&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.itam.mx/es/ubicacion/riohondo1.html"&gt;http://www.itam.mx/es/ubicacion/riohondo1.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.itam.mx/es/ubicacion/riohondo2.html"&gt;http://www.itam.mx/es/ubicacion/riohondo2.html&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developersdotnet.com/aggbug.aspx?PostID=343" width="1" height="1"&gt;</description></item><item><title>Colaboración en Software Gurú: Más allá de los objetos, C# funcional </title><link>http://developersdotnet.com/blogs/bichi/archive/2008/05/06/colaboraci-243-n-en-software-gur-250-m-225-s-all-225-de-los-objetos-c-funcional.aspx</link><pubDate>Wed, 07 May 2008 02:02:00 GMT</pubDate><guid isPermaLink="false">36068fae-1bf2-46ec-9096-c78eda5cd75b:342</guid><dc:creator>Bichi</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Como les comenté en posts anteriores sigo medio obsesionado con estas cosas de la programación alterna (dinámica, declarativa, funcional etc.) Les dejo un link para que visiten el sitio de la revista Software Gurú donde&amp;nbsp;salió publicado un artículo mío denominado &amp;quot;Más allá de los objetos, C# como lenguaje funcional&amp;quot;, en la edición de Mayo-Julio de 2008. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sg.com.mx/content/view/6" target="_blank"&gt;&lt;font color="#0065e2"&gt;¡Cómprenla!&lt;/font&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;El link es: 
&lt;p&gt;&lt;a title="http://www.sg.com.mx/content/view/713" href="http://www.sg.com.mx/content/view/713"&gt;&lt;font color="#0065e2"&gt;http://www.sg.com.mx/content/view/713&lt;/font&gt;&lt;/a&gt; 
&lt;p&gt;Traté de explicar con varios ejemplos de como usar C# con características funcionales, me faltó un buen pero ps el espacio era limitado, igual acá profundizamos más en algunos posts posteriores. 
&lt;p&gt;El código fuente es este, abran una nueva aplicación de consola con Visual Studio 2008 (.NET Framework 3.5) y denle Copy Paste al siguiente código.&lt;/p&gt;
&lt;p&gt;Lean el artículo, espero que les guste y cualquier duda me la pueden hace llegar a través de los foros de este sitio o a mi mail &lt;a href="mailto:starcatchingboy@gmail.com"&gt;&lt;font color="#0065e2"&gt;starcatchingboy@gmail.com&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;span style="COLOR:#0000ff;"&gt;using&lt;/span&gt; System;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;span style="COLOR:#0000ff;"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;span style="COLOR:#0000ff;"&gt;using&lt;/span&gt; System.Linq;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;span style="COLOR:#0000ff;"&gt;using&lt;/span&gt; System.Text;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;span style="COLOR:#0000ff;"&gt;using&lt;/span&gt; System.Collections;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&lt;span style="COLOR:#0000ff;"&gt;using&lt;/span&gt; System.Threading;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;span style="COLOR:#0000ff;"&gt;using&lt;/span&gt; System.Linq.Expressions;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&lt;span style="COLOR:#0000ff;"&gt;namespace&lt;/span&gt; Devworx.SG&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;{&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;    &lt;span style="COLOR:#0000ff;"&gt;class&lt;/span&gt; Program&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;    {&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;             &lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;        &lt;span style="COLOR:#008000;"&gt;//Función de orden superior&lt;/span&gt;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;        &lt;span style="COLOR:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;static&lt;/span&gt; Func&amp;lt;&lt;span style="COLOR:#0000ff;"&gt;int&lt;/span&gt;,&lt;span style="COLOR:#0000ff;"&gt;int&lt;/span&gt;&amp;gt; ConvertirMoneda(&lt;span style="COLOR:#0000ff;"&gt;string&lt;/span&gt; pstrMoneda) {&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;        &lt;span style="COLOR:#0000ff;"&gt;return&lt;/span&gt; (&lt;span style="COLOR:#0000ff;"&gt;int&lt;/span&gt; pintCantidad) =&amp;gt; &lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;        { &lt;span style="COLOR:#0000ff;"&gt;return&lt;/span&gt; pstrMoneda == &lt;span style="COLOR:#006080;"&gt;&amp;quot;EURO&amp;quot;&lt;/span&gt; ? pintCantidad * 15 : pintCantidad * 10;  };&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;       }&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;        &lt;span style="COLOR:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;void&lt;/span&gt; Main()&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;        {&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;          &lt;span style="COLOR:#008000;"&gt;//Expresiones lambda CUBO&lt;/span&gt;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;            &lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;            Func&amp;lt;&lt;span style="COLOR:#0000ff;"&gt;int&lt;/span&gt;, &lt;span style="COLOR:#0000ff;"&gt;int&lt;/span&gt;&amp;gt; lintResultado = (pintNum) =&amp;gt; { &lt;span style="COLOR:#0000ff;"&gt;return&lt;/span&gt; pintNum * pintNum; };&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;            Console.WriteLine(lintResultado(3));&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;            &lt;span style="COLOR:#008000;"&gt;//Inferencia de tipos&lt;/span&gt;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;            var lobjMsg= &lt;span style="COLOR:#006080;"&gt;&amp;quot;Hola&amp;quot;&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;            lobjMsg.GetType().ToString();&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;            Console.WriteLine(&lt;span style="COLOR:#006080;"&gt;&amp;quot;El tipo inferido es &amp;quot;&lt;/span&gt; + lobjMsg.GetType().ToString());&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;            &lt;span style="COLOR:#008000;"&gt;//Invocación a Función de orden superior con parámetro euro&lt;/span&gt;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;            var lobjConvertidor = ConvertirMoneda(&lt;span style="COLOR:#006080;"&gt;&amp;quot;EURO&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;            Console.WriteLine(&lt;span style="COLOR:#006080;"&gt;&amp;quot;La FOS regresa &amp;quot;&lt;/span&gt; + lobjConvertidor(20) + &lt;span style="COLOR:#006080;"&gt;&amp;quot; si se le invoca con euro&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;            &lt;span style="COLOR:#008000;"&gt;//Invocación a Función de orden superior con parámetro dolar&lt;/span&gt;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;            lobjConvertidor = ConvertirMoneda(&lt;span style="COLOR:#006080;"&gt;&amp;quot;DOLAR&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;            Console.WriteLine(&lt;span style="COLOR:#006080;"&gt;&amp;quot;La FOS regresa &amp;quot;&lt;/span&gt; + lobjConvertidor(20) + &lt;span style="COLOR:#006080;"&gt;&amp;quot; si se le invoca con dolar&amp;quot;&lt;/span&gt; );&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;            &lt;span style="COLOR:#008000;"&gt;//Sumatoria sin for, al modo funcional&lt;/span&gt;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;            Console.WriteLine(&lt;span style="COLOR:#006080;"&gt;&amp;quot;La sumatoria de 100 es: &amp;quot;&lt;/span&gt; + Enumerable.Range(1, 100).Sum());&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;            Console.ReadKey();&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;   &lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;        }&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:#f4f4f4;BORDER-BOTTOM-STYLE:none;"&gt;    }&lt;/pre&gt;&lt;pre style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-SIZE:8pt;PADDING-BOTTOM:0px;MARGIN:0em;OVERFLOW:visible;WIDTH:100%;COLOR:black;BORDER-TOP-STYLE:none;LINE-HEIGHT:12pt;PADDING-TOP:0px;FONT-FAMILY:Consolas, &amp;#39;Courier New&amp;#39;, Courier, Monospace;BORDER-RIGHT-STYLE:none;BORDER-LEFT-STYLE:none;BACKGROUND-COLOR:white;BORDER-BOTTOM-STYLE:none;"&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Un abrazo a &lt;a href="mailto:tod@s"&gt;&lt;font color="#0065e2"&gt;tod@s&lt;/font&gt;&lt;/a&gt; y&lt;br /&gt;¡Feliz Codificación!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developersdotnet.com/aggbug.aspx?PostID=342" width="1" height="1"&gt;</description><category domain="http://developersdotnet.com/blogs/bichi/archive/tags/Programaci_26002300_243_3B00_n+funcional/default.aspx">Programaci&amp;#243;n funcional</category><category domain="http://developersdotnet.com/blogs/bichi/archive/tags/C_2300_+3.0/default.aspx">C# 3.0</category></item><item><title>Using LINQ to SQL (2a. Parte - Procedimientos Almacenados)</title><link>http://developersdotnet.com/blogs/valameda/archive/2008/05/05/using-linq-to-sql-2a-parte-procedimientos-almacenados.aspx</link><pubDate>Mon, 05 May 2008 05:15:47 GMT</pubDate><guid isPermaLink="false">36068fae-1bf2-46ec-9096-c78eda5cd75b:334</guid><dc:creator>VAlameda</dc:creator><slash:comments>0</slash:comments><description>Hola a todos, Para continuar con esta serie de entregas de LINQ to SQL ahora les voy a platicar sobre el uso de Stored Procedures (Procedimientos Almacenados) con esta nueva característica que viene con Visual Studio 2008. Como ya les había mencionado en el post anterior con LINQ to SQL podemos trabajar con los datos desde nuestro propio lenguaje ya sea VB o C#, para hacer memoria LINQ to SQL utiliza una clase DataContext para la gestión de acceso a la base de datos, esta clase DataContext genera...(&lt;a href="http://developersdotnet.com/blogs/valameda/archive/2008/05/05/using-linq-to-sql-2a-parte-procedimientos-almacenados.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://developersdotnet.com/aggbug.aspx?PostID=334" width="1" height="1"&gt;</description><category domain="http://developersdotnet.com/blogs/valameda/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://developersdotnet.com/blogs/valameda/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://developersdotnet.com/blogs/valameda/archive/tags/.NET+Framework+3.5/default.aspx">.NET Framework 3.5</category><category domain="http://developersdotnet.com/blogs/valameda/archive/tags/LINQ/default.aspx">LINQ</category></item><item><title>Reflexiones sobre paradigmas de programación</title><link>http://developersdotnet.com/blogs/bichi/archive/2008/04/30/reflexiones-sobre-paradigmas-de-programaci-243-n.aspx</link><pubDate>Thu, 01 May 2008 04:26:00 GMT</pubDate><guid isPermaLink="false">36068fae-1bf2-46ec-9096-c78eda5cd75b:333</guid><dc:creator>Bichi</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;Me encuentro en el aeropuerto de Seattle esperando mi vuelo rumbo a casita, después de una semana sumamente enriquecedora (debo decir, mucho más de lo que yo esperaba) asistiendo al MVP Summit 2008. Creo que fue un evento impresionante, que me sorprendió la manera en la que habló Steve Ballmer y que es extraordinario estar en medio de los equipos de producto de Microsoft (particularmente estuve con los equipos de VB y C#)&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;y en este post me gustaría platicar un poco respecto a mis impresiones.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;Desafortunadamente (o afortunadamente) hay un contrato NDA (Non Disclosure Agreement) firmado entre Microsoft y los MVPs que impide comentar detalles y los ejemplos concretos de lo que hemos visto. Sin embargo quisiera compartir algunas reflexiones en estos tiempos de cambio en los que vivimos.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;Mi área de interés en esta parte de mi carrera profesional es la teoría de lenguajes de computación, me enoja un poco tener tanto trabajo y no poder dedicarme más a este apasionante tema, sin embargo en tiempecitos he estado investigando y aprendiendo cosas muy interesantes durante los últimos meses, es un tema que me apasiona, quizás como ningún otro en la informática y en este Summit tuve la oportunidad de asistir a pláticas exactamente de estos tópicos, así que con algo de tristeza renuncié a pláticas de Silverlight, de &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;SQL, de SharePoint&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;y hasta de LINQ, y enfoqué todo mi track de sesiones exclusivamente en el área de los lenguajes “puros”, lo cual fue la mejor decisión que pude haber tomado. Estas sesiones me hicieron reafirmar algunas creencias que tengo y modificar otras y las enumeraré a continuación&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;1) Cosas que siempre he dicho que reafirmé&lt;/font&gt;&lt;/font&gt;&lt;/b&gt; &lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;a)&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Seguiremos en el camino de la computación “multiparadigma”: &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;Es bueno ser teórico para programar, me gusta mucho conocer gente que le guste adherirse a una escuela o patrón de diseño, yo soy el principal defensor de la teoría al programar, sin embargo hay que decir que ni VB ni C# son lenguajes puramente orientados a objetos, y mucho menos con la introducción de Visual Studio 2008, con la cual los lenguajes adquiririeron elementos funcionales. Microsoft seguirá por ese rumbo para efectos de aumentar las opciones y la productividad del programador, de cualquier tipo y de cualquier escuela. Los lenguajes evolucionan, deben hacerse más fáciles, mejores y con muchas opciones. Java alguna vez presumía de que era un lenguaje de programación “fácil” y en sus primeras versiones se jactaba de que en el lenguaje solamente se podían hacer las cosas de 2 o 3 maneras distintas cuando en otros lenguajes como C++ lo mismo se podía hacer de 20 formas diferentes. Pues a Java se le cayó esa premisa y conforme ha ido evolucionando (es impresionante que hasta hace algún tiempo java no tenia foreach :P) ha tenido que cambiar e introducir cosas como genéricos&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;y muchas construcciones que le han dado flexibilidad al lenguaje. Lo mismo ha pasado con .NET, sigue en constante evolución y creo que esto es el camino que tendremos en el corto y mediano plazo.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;Me saca de onda un poco que a estas alturas del partido haya MVPs en C# que sigan diciendo que var es malo o que se oponen a la evolución natural de los lenguajes, no debería de ser, los lenguajes entre más opciones nos den, se vuelven más flexibles, es función del arquitecto de software elegir un paradigma, patrón&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;y arquitectura para generar mejor software.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;b) Los lenguajes open source seguirán ahí: &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;Microsoft no tiene interés es “competir” frontalmente o posicionar a C# o a VB como una alternativa a lenguajes como Ruby, al contrario, la idea es integrar cada vez más lenguajes de programación heterogéneos que sean compatibles con el CLR y con el DLR (Dynamic Language Runtime). Microsoft está muy comprometido con la comunidad open source y la integración de nuevos lenguajes más específicos para determinadas tareas como F#, Ruby, Phyton etc. será (es) ya un hecho dentro de Microsoft.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;c) Los lenguajes dinámicos (y el late binding) NO son malos, si se usan con precaución:&lt;/i&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;Lo tengo que aceptar: Soy FANÁTICO de los lenguajes que aceptan late binding (léase Visual Basic), &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;siempre lo he sido y seguramente lo seré. Microsoft está haciendo grandes esfuerzos por encontrar una solución que balancee la seguridad del static typing y la flexibilidad del dinamismo y/o late binding. (Por cierto, la diferencia principal del dinamismo al Late Binding es muy sutil podemos decir que un lenguaje dinámico no es más que uno con latebinding con esteroides, y los esteroides son precisamente la creación de un tipo nuevo en compile time (antes de su ejecución), cosa que no sucede con late binding, donde se conoce el tipo hasta la ejecución del mismo y este se encuentra boxeado en un tipo general (que no es lo mismo que genérico) llamado object) &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Seguramente un servidor (yo) y DevWorx estaremos haciendo algo al respecto. Allá afuera pasan muchas cosas y no nos vamos a quedar sin participar. El tema de los lenguajes dinámicos es extremadamente apasionante y lo considero como la orientación a objetos real, más humana, más antropomorfizada, es decir, ¿para qué hacer casts y tener bibliotecas de interfaces? Podemos, sin duda alguna generar una real orientación a objetos mediante un polimorfismo llevado al extremo y la programación dinámica es un pilar fundamental para lograrlo. Les recomiendo mucho leer esto: &lt;/font&gt;&lt;span class="a1"&gt;&lt;span style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font color="#008000"&gt;&lt;a href="http://pico.vub.ac.be/~wdmeuter/RDL04/papers/Meijer.pdf"&gt;http://pico.vub.ac.be/~wdmeuter/RDL04/papers/Meijer.pdf&lt;/a&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;&lt;strong&gt;2) Cosas que siempre he dicho y que tendré que rectificar&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;1) He dicho en varios posts que C# se está convirtiendo en un lenguaje funcional y VB en un lenguaje dinámico: Aunque C# 3.0 es más funcional que VB 9.0, en el futuro inmediato pareciera ser que ambos lenguajes&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;seguirán teniendo un soporte similar a tecnologías dinámicas y funcionales respectivamente lo cual lejos de ser malo, es excelente, ambos lenguajes están adquiriendo las capacidades necesarias para seguir estando en la vanguardia y&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;que se pueda programar en ellos cualquier software por complejo que parezca. &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;En fin, la semana del Summit se acabó y mis proyectos en me esperan apilados, tengo que programar teléfonos celulares, dar cursos de SharePoint (arg!), no es lo que más me gusta, pero ni modo la chamba es la chamba y hay que verla de la mejor manera posible. Espero pronto postear varios posts que tengo empezados pero no terminados.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developersdotnet.com/aggbug.aspx?PostID=333" width="1" height="1"&gt;</description></item><item><title>Using LINQ to SQL (1era. Parte)</title><link>http://developersdotnet.com/blogs/valameda/archive/2008/03/21/using-linq-to-sql-1era-parte.aspx</link><pubDate>Fri, 21 Mar 2008 20:52:56 GMT</pubDate><guid isPermaLink="false">36068fae-1bf2-46ec-9096-c78eda5cd75b:312</guid><dc:creator>VAlameda</dc:creator><slash:comments>0</slash:comments><description>En esta ocasi&amp;#243;n les voy a hablar sobre LINQ, esta nueva tecnolog&amp;#237;a integrada en el .NET Framework 3.5 de Microsoft. Pues bien esta moner&amp;#237;a nos permite utilizar cualquier fuente de datos. Por cierto LINQ significa .NET Language Integrated Query. Aunque es importante mencionarles que esta tecnolog&amp;#237;a ya exist&amp;#237;a desde DBase, s&amp;#243;lo que hasta hoy se integra con el mismo lenguaje de programaci&amp;#243;n que utilizamos d&amp;#237;a a d&amp;#237;a. Bueno pues como les dec&amp;#237;a LINQ es...(&lt;a href="http://developersdotnet.com/blogs/valameda/archive/2008/03/21/using-linq-to-sql-1era-parte.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://developersdotnet.com/aggbug.aspx?PostID=312" width="1" height="1"&gt;</description><category domain="http://developersdotnet.com/blogs/valameda/archive/tags/.NET+Framework+3.5/default.aspx">.NET Framework 3.5</category><category domain="http://developersdotnet.com/blogs/valameda/archive/tags/LINQ/default.aspx">LINQ</category></item><item><title>Silverlight Parte 2 - Eventos desde XAML y JavaScript</title><link>http://developersdotnet.com/blogs/guillermo_morales/archive/2008/03/11/silverlight-parte-2-eventos-desde-xaml-y-javascript.aspx</link><pubDate>Tue, 11 Mar 2008 20:12:00 GMT</pubDate><guid isPermaLink="false">36068fae-1bf2-46ec-9096-c78eda5cd75b:307</guid><dc:creator>gmorales</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Este artículo es parte de una serie, cuyo artículo&amp;nbsp;anterior está&amp;nbsp;localizado &lt;a class="" title="Silverlight Parte 1" href="http://developersdotnet.com/blogs/guillermo_morales/archive/2008/03/10/silverlight-parte-1.aspx"&gt;aquí&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Silverlight y JavaScript&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Tenemos al momento los siguientes archivos:&lt;/p&gt;
&lt;p&gt;&lt;img title="Archivos" style="WIDTH:439px;HEIGHT:181px;" height="181" alt="Archivos" src="http://developersdotnet.com/imagesblogs/gmorales/Silverlight2/1.jpg" width="439" border="0" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Y al ejecutar la página web, vemos lo siguiente:&lt;/p&gt;
&lt;p&gt;&lt;img title="Preview" style="WIDTH:595px;HEIGHT:503px;" height="503" alt="Preview" src="http://developersdotnet.com/imagesblogs/gmorales/Silverlight2/2.jpg" width="595" border="0" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;Respondiendo al click del mouse&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Vamos a crear un elemento que pueda responder a eventos del mouse, para comenzar a darle más interacción a nuestros sitios Silverlight&lt;/p&gt;
&lt;p&gt;La forma y el concepto son muy sencillos. Desde el XAML, se declaran los eventos a disparar en JavaScript, esto es, por ejemplo, a una etiqueta de XAML, le podemos declarar un atributo como MouseLeave y asociar este atributo a una función de JavaScript en el HTML. De esta manera lo que tenemos es:&lt;/p&gt;
&lt;p&gt;&lt;img title="XAML y JavaScript" style="WIDTH:604px;HEIGHT:264px;" height="264" alt="XAML y JavaScript" src="http://developersdotnet.com/imagesblogs/gmorales/Silverlight2/3.jpg" width="604" border="0" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Primero, vamos a cambiar el XAML existente por el siguiente:&lt;/p&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;lt;Canvas Width=&amp;quot;300&amp;quot; Height=&amp;quot;300&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp; xmlns=&amp;quot;&lt;/em&gt;&lt;a href="http://schemas.microsoft.com/client/2007"&gt;&lt;em&gt;http://schemas.microsoft.com/client/2007&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp; xmlns:x=&amp;quot;&lt;/em&gt;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml"&gt;&lt;em&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;Canvas.Background&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;LinearGradientBrush EndPoint=&amp;quot;0.5,1&amp;quot; StartPoint=&amp;quot;0.5,0&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;GradientStop Color=&amp;quot;#FFDCEF1B&amp;quot; Offset=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;GradientStop Color=&amp;quot;#FF801A1A&amp;quot; Offset=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/LinearGradientBrush&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;/Canvas.Background&amp;gt;&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;lt;Rectangle&lt;br /&gt;&amp;nbsp;x:Name=&amp;quot;r1&amp;quot;&lt;br /&gt;&amp;nbsp;MouseEnter=&amp;quot;r1Entrar&amp;quot;&lt;br /&gt;&amp;nbsp;MouseLeave=&amp;quot;r1Salir&amp;quot;&lt;br /&gt;&amp;nbsp;MouseLeftButtonDown=&amp;quot;r1Abajo&amp;quot;&lt;br /&gt;&amp;nbsp;MouseLeftButtonUp=&amp;quot;r1Arriba&amp;quot;&lt;br /&gt;&amp;nbsp;Height=&amp;quot;100&amp;quot; Width=&amp;quot;100&amp;quot;&lt;br /&gt;&amp;nbsp;Canvas.Left=&amp;quot;100&amp;quot; Canvas.Top=&amp;quot;50&amp;quot;&lt;br /&gt;&amp;nbsp;Stroke=&amp;quot;Black&amp;quot; StrokeThickness=&amp;quot;10&amp;quot; Fill=&amp;quot;Blue&amp;quot;/&amp;gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;lt;TextBlock&lt;br /&gt;&amp;nbsp;x:Name=&amp;quot;miTexto&amp;quot;&lt;br /&gt;&amp;nbsp;Canvas.Left=&amp;quot;70&amp;quot;&lt;br /&gt;&amp;nbsp;Canvas.Top=&amp;quot;180&amp;quot;&lt;br /&gt;&amp;nbsp;Text=&amp;quot;Dame Click&amp;quot;&lt;br /&gt;&amp;nbsp;FontSize=&amp;quot;30&amp;quot;/&amp;gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;lt;/Canvas&amp;gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;Para obtener lo siguiente:&lt;/p&gt;
&lt;p&gt;&lt;img title="Preview Dos" style="WIDTH:570px;HEIGHT:501px;" height="501" alt="Preview Dos" src="http://developersdotnet.com/imagesblogs/gmorales/Silverlight2/4.jpg" width="570" border="0" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Aquí lo imporante que mencionar es que tanto el TextBlock como el Rectangle, tienen una propiedad x:Name por medio de la cual podemos identificar a cada elemento dentro del XAML&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Insertando Código JavaScript&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;El siguiente paso, como ya se imaginarán, es obvio, es momento de insertar el código que responda a los eventos que se disparan desde el XAML, para esto, insertaremos en nuestra página web, el siguiente bloque de código JavaScript&lt;/p&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;br /&gt;&lt;em&gt;function r1Entrar(sender, args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sender.stroke = &amp;quot;red&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sender.findName(&amp;quot;miTexto&amp;quot;).Text = &amp;quot;Rojo&amp;quot;;&lt;br /&gt;}&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;function r1Salir(sender, args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sender.stroke = &amp;quot;black&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sender.findName(&amp;quot;miTexto&amp;quot;).Text = &amp;quot;Negro&amp;quot;;&lt;br /&gt;}&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;function r1Abajo(sender, args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sender.stroke = &amp;quot;yellow&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sender.findName(&amp;quot;miTexto&amp;quot;).Text = &amp;quot;Diste Click&amp;quot;;&lt;br /&gt;}&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;function r1Arriba(sender, args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sender.stroke = &amp;quot;Green&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sender.findName(&amp;quot;miTexto&amp;quot;).Text = &amp;quot;Verde&amp;quot;;&lt;br /&gt;}&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;En este código podemos observar dos cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Los eventos disparados desde el XAML, siempre reciben dos parámetros:&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;&lt;em&gt;sender&lt;/em&gt;&lt;/strong&gt;: Corresponde al objeto que inicia la acción&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;&lt;em&gt;args&lt;/em&gt;&lt;/strong&gt;: Corresponde a información relacionada al evento disparado&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Mediante el método &lt;strong&gt;&lt;em&gt;findName&lt;/em&gt;&lt;/strong&gt; localizamos a elementos de manera específica dentro del XAML, en este caso, &lt;em&gt;“miTexto”&lt;/em&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;
&lt;p&gt;Este código lo pueden insertar dentro del mismo bloque de código &amp;lt;script&amp;gt; donde se encuentra la obtención de la referencia a plugin de Silverlight que ya se tiene. Obteniendo ya una página cuyos elementos XAML disparan eventos en JavaScript&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conclusión&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Listo, ya tienen elementos XAML de Silverlight que responden al mouse disparando&amp;nbsp;funciones JavaScript dentro de sus tradicionales páginas Web.&lt;/p&gt;
&lt;p&gt;Seguiremos posteando más artículos relacionados a esta tecnología, en las próximas entregas, incluiré ya alguna animación, un video y más eventos para atraparlos con el mouse.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Suerte!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developersdotnet.com/aggbug.aspx?PostID=307" width="1" height="1"&gt;</description><category domain="http://developersdotnet.com/blogs/guillermo_morales/archive/tags/XAML/default.aspx">XAML</category><category domain="http://developersdotnet.com/blogs/guillermo_morales/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Heroes {DevelopersDotNet.com} Community Launch 2008</title><link>http://developersdotnet.com/blogs/noticias/archive/2008/03/11/community-launch-tour-2008.aspx</link><pubDate>Tue, 11 Mar 2008 16:25:00 GMT</pubDate><guid isPermaLink="false">36068fae-1bf2-46ec-9096-c78eda5cd75b:306</guid><dc:creator>gmorales</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;strong&gt;Microsoft, UNITEC Coyoacán y DevelopersDotNet&amp;nbsp;INVITAN&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Te invitamos a formar parte del evento de lanzamiento de las nuevas herramientas Microsoft en el evento que estamos organizando&amp;nbsp;&lt;/p&gt;
&lt;p&gt;La agenda del evento es la siguiente:&lt;/p&gt;
&lt;p&gt;&lt;img title="Agenda Lanzamiento" style="WIDTH:833px;HEIGHT:226px;" height="226" alt="Agenda Lanzamiento" src="http://developersdotnet.com/imagesblogs/gmorales/varios/agendalanzamiento.jpg" width="833" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;El evento se llevará a&amp;nbsp;cabo el día &lt;strong&gt;MIÉRCOLES 9 DE ABRIL&lt;/strong&gt;&amp;nbsp;en:&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#333333;FONT-FAMILY:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:ES-MX;mso-fareast-language:ES-MX;mso-bidi-language:AR-SA;"&gt;&lt;strong&gt;UNITEC CAMPUS COYOACAN &lt;br /&gt;Calzada de Tlalpan No. 3058&lt;br /&gt;Col. Santa Ursula Coapa&lt;/strong&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#333333;FONT-FAMILY:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:ES-MX;mso-fareast-language:ES-MX;mso-bidi-language:AR-SA;"&gt;&lt;strong&gt;&amp;nbsp;México Distrito Federal 04870&lt;br /&gt;Mexico&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:#333333;FONT-FAMILY:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:ES-MX;mso-fareast-language:ES-MX;mso-bidi-language:AR-SA;"&gt;&lt;strong&gt;¡Habrá entrega de obsequios!&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Regístrate en la siguiente dirección: &lt;a class="" title="Evento" href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032372617&amp;amp;culture=es-MX" target="_blank"&gt;http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032372617&amp;amp;culture=es-MX&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Gracias por tu asistencia&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DevelopersDotNet&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developersdotnet.com/aggbug.aspx?PostID=306" width="1" height="1"&gt;</description><category domain="http://developersdotnet.com/blogs/noticias/archive/tags/Comunidad/default.aspx">Comunidad</category><category domain="http://developersdotnet.com/blogs/noticias/archive/tags/Evento/default.aspx">Evento</category></item><item><title>Evento de la comunidad - Marzo 2008</title><link>http://developersdotnet.com/blogs/noticias/archive/2008/03/11/evento-de-la-comunidad-marzo-2008.aspx</link><pubDate>Tue, 11 Mar 2008 06:31:00 GMT</pubDate><guid isPermaLink="false">36068fae-1bf2-46ec-9096-c78eda5cd75b:305</guid><dc:creator>gmorales</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;img title="Reunion" style="WIDTH:35px;HEIGHT:52px;" height="52" alt="Reunion" src="http://developersdotnet.com/imagesblogs/gmorales/varios/reunion.gif" width="35" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;Los invitamos a la &lt;strong&gt;reunión mensual de la comunidad DeveloperDotNet&lt;/strong&gt;, que se llevará a cabo el próximo Jueves 27 de Marzo de 2008 en las Instalaciones de InterSoftware.&lt;/p&gt;
&lt;p&gt;La dirección es:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Montecito 38 Piso 35 Oficina 29&lt;br /&gt;Col. Nápoles C.P. 03810&lt;br /&gt;Del. Benito Juárez&lt;br /&gt;World Trade Center México&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La cita es a las 19:00 hrs.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La agenda es la siguiente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;19:00 - 19:45 - Características sintácticas de VB&amp;nbsp;9 y C# 3 - Miguel Ángel Morán&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;19:45 - 20:30 -&amp;nbsp;Usando LINQ to SQL&amp;nbsp;- Víctor Alameda&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;20:30 - 21:15 -&amp;nbsp;Novedades en seguridad con .Net Framework 3.0&amp;nbsp;- Marcos del Pozo&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;21:15 - 22:00 - Silverlight - Guillermo Morales&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Recuerda registrarte al correo &lt;font size="2"&gt;&lt;a href="mailto:gmorales@developersdotnet.com"&gt;gmorales@developersdotnet.com&lt;/a&gt;&lt;/font&gt;&amp;nbsp;con el subject: &amp;quot;Reunión Marzo 08&amp;quot; para confirmar tu asistencia y poder contar con el material para todos.&lt;/p&gt;
&lt;p&gt;Agradecemos a InterSoftware el apoyo brindado al prestar sus instalaciones&lt;/p&gt;
&lt;p&gt;&lt;img title="InterSoftware" style="WIDTH:203px;HEIGHT:53px;" height="53" alt="InterSoftware" src="http://developersdotnet.com/imagesblogs/gmorales/varios/is.jpg" width="203" border="0" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developersdotnet.com/aggbug.aspx?PostID=305" width="1" height="1"&gt;</description><category domain="http://developersdotnet.com/blogs/noticias/archive/tags/Comunidad/default.aspx">Comunidad</category></item><item><title>Silverlight Parte 1</title><link>http://developersdotnet.com/blogs/guillermo_morales/archive/2008/03/10/silverlight-parte-1.aspx</link><pubDate>Mon, 10 Mar 2008 23:38:00 GMT</pubDate><guid isPermaLink="false">36068fae-1bf2-46ec-9096-c78eda5cd75b:304</guid><dc:creator>gmorales</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;strong&gt;Larga ausencia&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Después de una larga ausencia, estoy de vuelta para platicarles de tecnología. Disculpen de antemano este laaaaaaargo letargo, pero estuvimos enfrascados en otras cosas que no nos dejaban meternos de lleno en esto de la comunidad.&lt;/p&gt;
&lt;p&gt;Para todos, estaremos nuevamente haciendo nuestras reuniones mensuales, así como participando en eventos de lanzamiento de nuevos productos de Microsoft, por supuesto ya escucharán de esto, en un rato más, así que bueno, pues a lo que te truje:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Silverlight&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La verdad, no quiero marearlos con el rollo sobre lo que me imagino ya todos conocen, ¿Qué es Silverlight?, pueden encontrar mucha documentación en la red, y un excelente lugar para empezar es este (&lt;a href="http://silverlight.net/"&gt;http://silverlight.net/&lt;/a&gt;). Así que vamos sólo a decir, que es la forma más reciente de hacer aplicaciones WEB de alto impacto visual de Microsoft. Obviamente hay muchas cosas más, pero vamos a dejarlo ahí.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A donde vamos con este demo&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;El objetivo de este demo es encaminarlos rápidamente a cómo crear su primera aplicación con Silverlight, no tanto el qué se puede hacer, si no, que comprendan qué se necesita para echar a volar su primer demo, y para eso explico lo siguiente:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Los archivos de una aplicación Silverlight&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Para empezar, les comento que todos lo que podemos hacer hoy en día con Silverlight 1.0, se puede crear mediante cualquier editor de texto, en nuestro caso, usaremos al famoso Notepad. Pensemos que tenemos una página llamada Default.html en donde queremos crear nuestra primera aplicación de Silverlight.&lt;/p&gt;
&lt;p&gt;Entonces, los archivos que necesitamos crear son:&lt;/p&gt;
&lt;p&gt;&lt;img title="Archivos Silverlight" style="WIDTH:587px;HEIGHT:438px;" height="438" alt="Archivos Silverlight" src="http://developersdotnet.com/imagesblogs/gmorales/Silverlight1/1.jpg" width="587" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;Para comenzar nuestro ejemplo, estos archivos deberán de tener el siguiente contenido:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Default.html&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;Primer Ejemplo Silverlight&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;Silverlight.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;crearSilverlight.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Este DIV será el contenedor del Plugin de Silverlight--&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div id=&amp;quot;miHostdelPlugin&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Obtener el DIV host del plug in.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var hostdelplugin = document.getElementById(&amp;quot;miHostdelPlugin&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Creación del plugin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; crearPluginSilverlight(); //Llamada a la función del archivo de abajo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Como se dan cuenta, esta página muy sencilla, hace llamadas a un par de archivos JavaScript, el primero de ellos, el Silverlight.js no lo muestro porque es un archivo que pueden obtener con el SDK de Silverlight, y no se modifica, solo tienen que estar seguros de copiar este archivo a la misma carpeta donde tienen su demo. El otro es el archivo:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;crearSilverlight.js&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;function crearPluginSilverlight()&lt;br /&gt;{&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Silverlight.createObject(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;mixaml.xaml&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // El XAML a pintar.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hostdelplugin,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // La variable que apunta al DIV host.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;miHostdelPlugin&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // El ID de la etiqueta DIV host.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; width:&amp;#39;300&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Ancho del plug in en pixeles&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; height:&amp;#39;300&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Alto del plug in en pixeles&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inplaceInstallPrompt:false, // Indica si pregunta si se &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // instala el plug in si no es la &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // versión correcta&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; background:&amp;#39;#D6D6D6&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Color Background del plug in&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; isWindowless:&amp;#39;false&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Determina si el plug in se muestra en &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // modo sin ventana&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; framerate:&amp;#39;24&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Número de cuadros por segundo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; version:&amp;#39;1.0&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Versión Silverlight a usar.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; onError:null,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Manejador de función cuando hay error&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; onLoad:null&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Manejador de función carga del plug in&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;}&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Este archivo en pocas palabras, lo que hace es indicarle al navegador, por medio de una función de JavaScript, que hay que invocar al método createObject del objeto Silverlight para poder crear con ciertos parámetros, un plug in. Los parámetros de la función vienen descritos en los comentarios del código&lt;br /&gt;El siguiente archivo es el XAML que contiene la parte visual, este es el archivo para nuestro primer ejemplo:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;mixaml.xaml&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;lt;Canvas&lt;br /&gt;&amp;nbsp;&amp;nbsp; xmlns=&amp;quot;&lt;/em&gt;&lt;a href="http://schemas.microsoft.com/client/2007"&gt;&lt;em&gt;http://schemas.microsoft.com/client/2007&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp; xmlns:x=&amp;quot;&lt;/em&gt;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml"&gt;&lt;em&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&amp;quot;&amp;gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;lt;/Canvas&amp;gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Como nos podemos dar cuenta, este archivo contiene un Canvas en donde pintaremos el contenido de nuestra aplicación Silverlight mediante XAML. Por el momento está vacío.&lt;br /&gt;Una imagen de lso archivos de&amp;nbsp;nuestro sitio web al momento sería esta:&lt;/p&gt;
&lt;p&gt;&lt;img title="Archivos" style="WIDTH:439px;HEIGHT:181px;" height="181" alt="Archivos" src="http://developersdotnet.com/imagesblogs/gmorales/Silverlight1/2.jpg" width="439" border="0" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Si se echa a andar la página web, obtenemos la siguiente pantalla por el momento:&lt;/p&gt;
&lt;p&gt;&lt;img title="Preview" style="WIDTH:622px;HEIGHT:521px;" height="521" alt="Preview" src="http://developersdotnet.com/imagesblogs/gmorales/Silverlight1/3.jpg" width="622" border="0" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;PERFECTO, el color del fondo del plug in es el indicado según el indicado en el archivo crearSilverlight.js, solo nos queda, crear el contenido visual por medio del archivo XAML.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Modificando el archivo XAML&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Windows Presentation Foundation es uno de los pilares de. Net Framework 3.0, el más importante beneficio es la creación de creación de aplicaciones de alto impacto visual, esto, trasladado a Web es lo que dio origen a Silverlight, originalmente llamado WPF/e.&lt;/p&gt;
&lt;p&gt;XAML es un lenguaje de marcas para crear contenido visualmente hablando, muy rico y de manera muy sencilla. Para este caso, el archivo mixaml.xml contiene el XAML de este contenido visual.&lt;/p&gt;
&lt;p&gt;Todo el Silverlight, se pinta dentro de una etiqueta CANVAS, que es algo así como un lienzo en blanco sobre el cual, por medio de alineaciones de los elementos, los puedo pintar y posicionar. De esta manera, si yo escribo el siguiente XAML dentro del archivo &lt;strong&gt;mixaml.xaml&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;&amp;lt;Canvas&lt;br /&gt;&amp;nbsp;&amp;nbsp; xmlns=&amp;quot;&lt;/em&gt;&lt;a href="http://schemas.microsoft.com/client/2007"&gt;&lt;em&gt;http://schemas.microsoft.com/client/2007&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp; xmlns:x=&amp;quot;&lt;/em&gt;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml"&gt;&lt;em&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&amp;quot;&amp;gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Rectangle&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Canvas.Top=&amp;quot;30&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Canvas.Left=&amp;quot;30&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fill=&amp;quot;Blue&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Height=&amp;quot;100&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Width=&amp;quot;100&amp;quot; /&amp;gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Rectangle&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Canvas.Top=&amp;quot;80&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Canvas.Left=&amp;quot;80&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fill=&amp;quot;Red&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Height=&amp;quot;100&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Width=&amp;quot;100&amp;quot; /&amp;gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Ellipse&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Canvas.Top=&amp;quot;130&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Canvas.Left=&amp;quot;130&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fill=&amp;quot;Green&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Height=&amp;quot;100&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Width=&amp;quot;100&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/Canvas&amp;gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Lo que nos pinta una pantalla como la siguiente:&lt;/p&gt;
&lt;p&gt;&lt;img title="Final" style="WIDTH:595px;HEIGHT:503px;" height="503" alt="Final" src="http://developersdotnet.com/imagesblogs/gmorales/Silverlight1/4.jpg" width="595" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;Perfecto! Has creado tu primera aplicación Silverlight. En la siguiente entrega, estaremos viendo ya como poder responder a eventos del mouse y lanzar alguna animación.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conclusión&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;El desarrollo con Silverlight está basado en una serie de archivos que contienen indicaciones para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Creación del Plugin de Silverlight (archivo crearSilverlight.js)&lt;/li&gt;
&lt;li&gt;La declaración de los elementos visuales a crear (mixaml.xaml)&lt;/li&gt;
&lt;li&gt;La página web que hostea al plug in (default.html)&lt;/li&gt;
&lt;li&gt;El código de validación de la existencia del plug in, este archivo es parte del SDK de Silverlight y generalmente no deberíamos de modificarlo (Silverlight.js)&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Creo que con este pequeño demo, ya tienes una mejor idea de cómo comenzar con una aplicación silverligt. Hacia adelante, bastará con modificar el archivo XAML para poder cambiar el contenido visual, y si se desea código para responder a eventos, modificar el archivo html. Esto lo veremos en la siguiente entrega.&lt;/p&gt;
&lt;p&gt;Suerte!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developersdotnet.com/aggbug.aspx?PostID=304" width="1" height="1"&gt;</description><category domain="http://developersdotnet.com/blogs/guillermo_morales/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Capacitación GRATUITA para presentar examen de certificación 70-536</title><link>http://developersdotnet.com/blogs/bichi/archive/2008/02/12/capacitaci-243-n-gratuita-para-presentar-examen-de-certificaci-243-n-70-536.aspx</link><pubDate>Tue, 12 Feb 2008 23:22:00 GMT</pubDate><guid isPermaLink="false">36068fae-1bf2-46ec-9096-c78eda5cd75b:294</guid><dc:creator>Bichi</dc:creator><slash:comments>8</slash:comments><description>&lt;span style="FONT-SIZE:10.5pt;FONT-FAMILY:&amp;#39;Trebuchet MS&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Se invita a todas las personas interesadas a participar en la &lt;/span&gt;&lt;span style="FONT-SIZE:10.5pt;FONT-FAMILY:&amp;#39;Trebuchet MS&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a href="http://learning.devworx.com.mx/certificaciones/70-536/default.aspx" target="_blank"&gt;&lt;span style="mso-ansi-language:ES-MX;"&gt;clínica para presentar el examen de certificación 70-536&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10.5pt;FONT-FAMILY:&amp;#39;Trebuchet MS&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;, la cual comenzará el próximo día 03 de marzo del 2008 y será llevada a cabo de manera online; siendo su duración aproximada de 2 meses.&amp;nbsp; Se extiende esta invitación también a todas aquellas personas ya certificadas que deseen reforzar sus conocimientos acerca de los temas que toca el temario para este examen.&amp;nbsp; &lt;/span&gt;&lt;span style="FONT-SIZE:10.5pt;FONT-FAMILY:&amp;#39;Trebuchet MS&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;La clínica es totalmente gratuita y será impartida por:&lt;/span&gt; 
&lt;ul&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;span style="FONT-SIZE:10.5pt;COLOR:#1f497d;FONT-FAMILY:&amp;#39;Trebuchet MS&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;a href="http://squad.devworx.com.mx/blogs/rodrigo"&gt;Rodrigo Díaz&lt;/a&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10.5pt;FONT-FAMILY:&amp;#39;Trebuchet MS&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; (Ineta Speaker)&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;span style="FONT-SIZE:10.5pt;COLOR:#1f497d;FONT-FAMILY:&amp;#39;Trebuchet MS&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;a href="http://squad.devworx.com.mx/blogs/miguel"&gt;Miguel Ángel Morán&lt;/a&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10.5pt;FONT-FAMILY:&amp;#39;Trebuchet MS&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; (MVP C#)&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;span style="FONT-SIZE:10.5pt;COLOR:#1f497d;FONT-FAMILY:&amp;#39;Trebuchet MS&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;a href="http://squad.devworx.com.mx/blogs/misael"&gt;Misael Monterroca&lt;/a&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10.5pt;FONT-FAMILY:&amp;#39;Trebuchet MS&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; (Ineta Speaker)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="FONT-SIZE:10.5pt;FONT-FAMILY:&amp;#39;Trebuchet MS&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;El temario lo pueden consultar &lt;/span&gt;&lt;span style="FONT-SIZE:10.5pt;FONT-FAMILY:&amp;#39;Trebuchet MS&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:EN-US;"&gt;&lt;a href="http://learning.devworx.com.mx/certificaciones/70-536/default.aspx" target="_blank"&gt;&lt;span style="mso-ansi-language:ES-MX;"&gt;aquí&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10.5pt;FONT-FAMILY:&amp;#39;Trebuchet MS&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:10.5pt;FONT-FAMILY:&amp;#39;Trebuchet MS&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10.5pt;FONT-FAMILY:&amp;#39;Trebuchet MS&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Nos vemos en línea!&lt;/span&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developersdotnet.com/aggbug.aspx?PostID=294" width="1" height="1"&gt;</description></item><item><title>2D y animaciones con WPF</title><link>http://developersdotnet.com/blogs/bichi/archive/2008/02/10/2d-y-animaciones-con-wpf.aspx</link><pubDate>Sun, 10 Feb 2008 19:01:41 GMT</pubDate><guid isPermaLink="false">36068fae-1bf2-46ec-9096-c78eda5cd75b:293</guid><dc:creator>Bichi</dc:creator><slash:comments>0</slash:comments><description>&lt;p style="text-align:justify;"&gt;&lt;br /&gt;Existen muchas razones por las cuales una aplicación podría tener la capacidad de dibujar en pantalla y contenido visual como rectángulos, elipses, triángulos, círculos etc. WPF incluye una gran cantidad de funcionalidad para tener este tipo de gráficos y realmente existe una mejora significativa al dibujar con esta tecnología respecto a tecnologías previas como GDI+.&lt;span style="font-size:12pt;text-decoration:underline;"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Shapes &lt;/strong&gt;&lt;/p&gt; &lt;p style="text-align:justify;"&gt;Las Shapes (formas) son primitivas que nos permiten dibujar automáticamente algunas formas básicas y muy usadas en la definición de gráficos. La ventaja de utilizar Shapes es que incluyen todo lo necesario para definir la presentación y aspecto visual en las figuras sin necesidad de componer árboles de objetos complejos. &lt;/p&gt; &lt;p&gt;Las Shapes definidas por WPF se encuentran en el siguiente listado &lt;/p&gt; &lt;div&gt; &lt;table style="border-collapse:collapse;"&gt;     &lt;tr style="background:#4f81bd;"&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;border-top:0.5pt solid;padding-left:7px;border-left:0.5pt solid;border-bottom:0.5pt solid;"&gt; &lt;p&gt;&lt;span style="color:white;"&gt;&lt;strong&gt;Shape (Forma)&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;border-top:0.5pt solid;padding-left:7px;border-bottom:0.5pt solid;border-left-style:none;"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt; &lt;tr style="background:#d3dfee;"&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-left:0.5pt solid;border-top-style:none;border-bottom:0.5pt solid;"&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Ellipse&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-top-style:none;border-bottom:0.5pt solid;border-left-style:none;"&gt; &lt;p&gt;Dibuja círculos y elipses de circunferencia fija si se le especifican los atributos Width y Height o variable de acuerdo a su objeto contenedor si no se le especifican dichos atributos.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-left:0.5pt solid;border-top-style:none;border-bottom:0.5pt solid;"&gt; &lt;p&gt;&lt;strong&gt;Line&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-top-style:none;border-bottom:0.5pt solid;border-left-style:none;"&gt; &lt;p&gt;Dibuja una línea dados dos puntos. Es posible especificar la presentación de la línea utilizando los atributos Stroke, StokeThikness entre otros.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr style="background:#d3dfee;"&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-left:0.5pt solid;border-top-style:none;border-bottom:0.5pt solid;"&gt; &lt;p&gt;&lt;strong&gt;Rectangle&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-top-style:none;border-bottom:0.5pt solid;border-left-style:none;"&gt; &lt;p&gt;Dibuja rectángulos y cuadrados y tiene la capacidad de modificar la presentación de las esquinas y el trazado de las líneas del rectángulo&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-left:0.5pt solid;border-top-style:none;border-bottom:0.5pt solid;"&gt; &lt;p&gt;&lt;strong&gt;Polyline&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-top-style:none;border-bottom:0.5pt solid;border-left-style:none;"&gt; &lt;p&gt;Dibuja rectas continuas&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr style="background:#d3dfee;"&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-left:0.5pt solid;border-top-style:none;border-bottom:0.5pt solid;"&gt; &lt;p&gt;&lt;strong&gt;Polygon&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-top-style:none;border-bottom:0.5pt solid;border-left-style:none;"&gt; &lt;p&gt;Dibuja rectas continuas y añade un segmento de recta adicional para cerrar la figura.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-left:0.5pt solid;border-top-style:none;border-bottom:0.5pt solid;"&gt; &lt;p&gt;&lt;strong&gt;Path&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-top-style:none;border-bottom:0.5pt solid;border-left-style:none;"&gt; &lt;p&gt;Dibuja líneas, curvas y en general cualquier caso siguiendo un conjunto de instrucciones especificadas mediante XAML o una notación especial&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Ellipse: &lt;/strong&gt;&lt;/p&gt; &lt;p style="text-align:justify;"&gt;El siguiente código muestra la manera de dibujar dos elipses. La primera elipse tiene especificados los atributos &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;Width &lt;/span&gt;Y&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt; Height &lt;/span&gt;por lo que al momento de cambiar de tamaño la ventana el dibujo de la elipse permanecerá inamovible mientras que en la elipse llamada&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt; MiElipseFija &lt;/span&gt;ocurrirá un redimensionamiento toda vez que hereda el tamaño especificado por su objeto contenedor &lt;/p&gt; &lt;p&gt;XAML &lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;Ellipse Margin=&amp;quot;68,47,82,86&amp;quot; Width=&amp;quot;50&amp;quot; Height=&amp;quot;50&amp;quot; Name=&amp;quot;MiElipseMovible&amp;quot; StrokeThickness=&amp;quot;5&amp;quot; Stroke=&amp;quot;Red&amp;quot; /&amp;gt; &lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;Ellipse Margin=&amp;quot;68,47,82,86&amp;quot; Name=&amp;quot;MiElipseFija&amp;quot; Stroke=&amp;quot;Blue&amp;quot; StrokeThickness=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;/Ellipse&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;El resultado es el siguiente: &lt;/p&gt; &lt;p style="text-align:center;"&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.developersdotnet.com/imagesblogs/mmoran/p10-1.jpg" alt="" /&gt; &lt;/p&gt; &lt;p&gt;Para definir que una elipse será rellenada con determinado color es posible utilizar el atributo Fill. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Line: &lt;/strong&gt;&lt;/p&gt; &lt;p style="text-align:justify;"&gt;Las líneas son uno de los elementos visuales más utilizados en las aplicaciones. Para definir una línea es necesario indicar los puntos origen y destino a través de los cuales se dibujará el segmento de recta. Para definir estos puntos hacemos uso de los atributos &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;X1&lt;/span&gt;, &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;Y1 &lt;/span&gt;para definir el primer punto y &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;X2, Y2&lt;/span&gt; para definir el segundo punto. El ejemplo siguiente muestra cómo definir dos líneas. &lt;/p&gt; &lt;p&gt;XAML &lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;Line X1=&amp;quot;0&amp;quot; Y1=&amp;quot;0&amp;quot; X2=&amp;quot;300&amp;quot; Y2=&amp;quot;280&amp;quot; &lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;Stroke=&amp;quot;Blue&amp;quot; StrokeThickness=&amp;quot;14&amp;quot; /&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&amp;nbsp;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;Line X1=&amp;quot;0&amp;quot; Y1=&amp;quot;260&amp;quot; X2=&amp;quot;280&amp;quot; Y2=&amp;quot;0&amp;quot; &lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;StrokeThickness=&amp;quot;14&amp;quot;&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;Line.Stroke&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;ImageBrush ImageSource=&amp;quot;C:\Revista USERS\2D\fondo.jpg&amp;quot; /&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;/Line.Stroke&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;/Line&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="text-align:justify;"&gt;La primera línea define para el atributo &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;Stroke&lt;/span&gt; un color fijo mientras que la segunda línea utilizada un elemento &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;ImageBrush &lt;/span&gt;para definir el trazado de dicha línea utilizada como fondo una imagen especificada en un archivo el resultado del código anterior es el siguiente. &lt;/p&gt; &lt;p style="text-align:center;"&gt;&lt;/p&gt; &lt;p style="text-align:center;"&gt;&lt;img src="http://www.developersdotnet.com/imagesblogs/mmoran/p10-2.jpg" alt="" /&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Polyline &lt;/strong&gt;&lt;/p&gt; &lt;p style="text-align:justify;"&gt;Este objeto representa una colección de líneas. Las líneas son definidas a través de la propiedad &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;Points&lt;/span&gt; donde se definen los puntos por los cuales pasará el conjunto de líneas. De la misma manera que sucede con el objeto Line, podemos establecer el formato del trazado de la línea mediante los atributos &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;Stroke&lt;/span&gt;,&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt; StrokeThikness&lt;/span&gt; entre otros. Además es posible utilizar el atributo Fill para llenar el área por la que pasan las líneas. &lt;/p&gt; &lt;p style="text-align:justify;"&gt;El código a continuación genera un triángulo: &lt;/p&gt; &lt;p&gt;XAML &lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;Polyline Points=&amp;quot;100,100 200,40 300,100 104,100&amp;quot; Stroke=&amp;quot;Black&amp;quot; &lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;StrokeThickness=&amp;quot;10&amp;quot; Margin=&amp;quot;0,50&amp;quot; StrokeLineJoin=&amp;quot;Round&amp;quot; Fill=&amp;quot;Red&amp;quot;/&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Resultado &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="text-align:center;"&gt;&lt;/p&gt; &lt;p style="text-align:center;"&gt;&lt;img src="http://www.developersdotnet.com/imagesblogs/mmoran/p10-3.jpg" alt="" /&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Polygon &lt;/strong&gt;&lt;/p&gt; &lt;p style="text-align:justify;"&gt;La funcionalidad entre &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;Polyline y Polygon&lt;/span&gt; es prácticamente la misma. La única diferencia que existe entre ambos objetos es que &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;Polygon&lt;/span&gt; automáticamente añade una línea entre el primero y el último punto y de esta manera se genera una figura cerrada. A continuación mostramos el mismo ejemplo anterior utilizando ahora para ver la diferencia entre uno y otro &lt;/p&gt; &lt;p&gt;&lt;span style="font-size:10pt;color:#a31515;font-family:arial;"&gt;XAML &lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;"&gt;&lt;span style="color:blue;font-family:arial;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:black;font-family:courier new;"&gt;Polygon Points=&amp;quot;100,100 200,40 300,100 170,100&amp;quot; Stroke=&amp;quot;Black&amp;quot; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;StrokeThickness=&amp;quot;10&amp;quot; Fill=&amp;quot;Red&amp;quot; Margin=&amp;quot;0,50&amp;quot; StrokeLineJoin=&amp;quot;Round&amp;quot; /&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="text-align:center;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="text-align:center;"&gt;&lt;/p&gt; &lt;p style="text-align:center;"&gt;&lt;img src="http://www.developersdotnet.com/imagesblogs/mmoran/p10-4.jpg" alt="" /&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Path &lt;/strong&gt;&lt;/p&gt; &lt;p style="text-align:justify;"&gt;Con la clase &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;Path&lt;/span&gt; es posible dibujar prácticamente cualquier trazo. A diferencia de las figuras vistas anteriormente, con éste objeto es posible dibujar inclusive curvas y rectas figuras abiertas y figuras cerradas, para eso, hace uso de la propiedad &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;Data&lt;/span&gt; que tiene una notación que permite definir los movimientos, las curvas y las líneas mediante una notación sintaxis que se detalla a continuación. &lt;/p&gt; &lt;div&gt; &lt;table style="border-collapse:collapse;"&gt;     &lt;tr style="background:#4f81bd;"&gt; &lt;td style="padding-right:7px;border-top:#7ba0cd 1pt solid;padding-left:7px;border-left:#7ba0cd 1pt solid;border-bottom:0.5pt solid;border-right-style:none;"&gt; &lt;p&gt;&lt;span style="color:white;"&gt;&lt;strong&gt;Shape (Forma)&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt; &lt;td style="border-right:#7ba0cd 1pt solid;padding-right:7px;border-top:#7ba0cd 1pt solid;padding-left:7px;border-bottom:0.5pt solid;border-left-style:none;"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt; &lt;tr style="background:#d3dfee;"&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-left:0.5pt solid;border-top-style:none;border-bottom:0.5pt solid;"&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;M&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-top-style:none;border-bottom:0.5pt solid;border-left-style:none;"&gt; &lt;p&gt;Define el punto inicial de una figura&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-left:0.5pt solid;border-top-style:none;border-bottom:0.5pt solid;"&gt; &lt;p&gt;&lt;strong&gt;L&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-top-style:none;border-bottom:0.5pt solid;border-left-style:none;"&gt; &lt;p&gt;Define una recta a partir de la posición actual y hasta el punto especificado&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr style="background:#d3dfee;"&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-left:0.5pt solid;border-top-style:none;border-bottom:0.5pt solid;"&gt; &lt;p&gt;&lt;strong&gt;V, H&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-top-style:none;border-bottom:0.5pt solid;border-left-style:none;"&gt; &lt;p&gt;Definen una línea vertical u horizontal respectivamente&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-left:0.5pt solid;border-top-style:none;border-bottom:0.5pt solid;"&gt; &lt;p&gt;&lt;strong&gt;C, Q, S, T&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-top-style:none;border-bottom:0.5pt solid;border-left-style:none;"&gt; &lt;p&gt;Definen curvas de Bezier (cúbicas, cuadráticas, cúbicas suaves y cuadráticas suaves respectivamente)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr style="background:#d3dfee;"&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-left:0.5pt solid;border-top-style:none;border-bottom:0.5pt solid;"&gt; &lt;p&gt;&lt;strong&gt;A&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-top-style:none;border-bottom:0.5pt solid;border-left-style:none;"&gt; &lt;p&gt;Dibuja un arco elíptico&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-left:0.5pt solid;border-top-style:none;border-bottom:0.5pt solid;"&gt; &lt;p&gt;&lt;strong&gt;Z&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt; &lt;td style="border-right:0.5pt solid;padding-right:7px;padding-left:7px;border-top-style:none;border-bottom:0.5pt solid;border-left-style:none;"&gt; &lt;p&gt;Cierra la figura actual&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;El siguiente ejemplo muestra como utilizar el objeto Path &lt;/p&gt; &lt;p&gt;XAML &lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;Path Stroke=&amp;quot;Black&amp;quot; Fill=&amp;quot;Blue&amp;quot;&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;Path.Data&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;PathGeometry Figures=&amp;quot;M 10,100 C 10,300 300,-100 300,100 &amp;quot; /&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;/Path.Data&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;/Path&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;El código previo genera la siguiente salida: &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="text-align:center;"&gt;&lt;/p&gt; &lt;p style="text-align:center;"&gt;&lt;img src="http://www.developersdotnet.com/imagesblogs/mmoran/p10-5.jpg" alt="" /&gt; &lt;/p&gt; &lt;p style="text-align:center;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="text-align:justify;"&gt;Cabe señalar que cuando es necesario dibujar una figura compleja no es muy práctico editar a mano el XAML; es por eso que podemos hacer uso de herramientas especializadas en diseño gráfico como Expression Blend que automáticamente genera el código requerido para representar los trazos y dibujos creados en la herramienta misma. &lt;/p&gt; &lt;p style="text-align:justify;"&gt;A continuación un ejemplo de código generado automáticamente con Expression Blend utilizando su herramienta Pencil. &lt;/p&gt; &lt;p style="text-align:justify;"&gt;XAML &lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;Path Stretch=&amp;quot;Fill&amp;quot; Stroke=&amp;quot;#FF000000&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Margin=&amp;quot;154.833,0,0,121.5&amp;quot; VerticalAlignment=&amp;quot;Bottom&amp;quot; Width=&amp;quot;3&amp;quot; Height=&amp;quot;59&amp;quot; Data=&amp;quot;M155.33333,264 C155.76028,283.21278 157.33333,302.47815 157.33333,322&amp;quot;/&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&amp;nbsp;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;Path Stretch=&amp;quot;Fill&amp;quot; Stroke=&amp;quot;#FF000000&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Margin=&amp;quot;189.5,0,0,122.167&amp;quot; VerticalAlignment=&amp;quot;Bottom&amp;quot; Width=&amp;quot;1.667&amp;quot; Height=&amp;quot;59&amp;quot; Data=&amp;quot;M190,263.33333 C190,282.62739 190.66667,301.97267 190.66667,321.33333&amp;quot;/&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&amp;nbsp;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;Path Stretch=&amp;quot;Fill&amp;quot; Stroke=&amp;quot;#FF000000&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Margin=&amp;quot;156.833,0,0,152.167&amp;quot; VerticalAlignment=&amp;quot;Bottom&amp;quot; Width=&amp;quot;36.334&amp;quot; Height=&amp;quot;2.503&amp;quot; Data=&amp;quot;M157.33333,291.33333 C168.83269,289.12798 180.58536,290 192.66667,290&amp;quot;/&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&amp;nbsp;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;Path Stretch=&amp;quot;Fill&amp;quot; Stroke=&amp;quot;#FF000000&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Margin=&amp;quot;198.432,0,0,127.415&amp;quot; VerticalAlignment=&amp;quot;Bottom&amp;quot; Width=&amp;quot;29.565&amp;quot; Height=&amp;quot;27.752&amp;quot; Data=&amp;quot;M214.66667,290 C204.25621,291.76448 202.49111,287.14113 200,303.33333 198.87719,310.63157 195.22353,319.6057 213.33333,314.66667 222.48637,312.17038 240.35052,303.42693 212.66667,289.33333&amp;quot;/&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&amp;nbsp;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;Path Stretch=&amp;quot;Fill&amp;quot; Stroke=&amp;quot;#FF000000&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Margin=&amp;quot;238.167,0,0,125.5&amp;quot; VerticalAlignment=&amp;quot;Bottom&amp;quot; Width=&amp;quot;1.666&amp;quot; Height=&amp;quot;55.667&amp;quot; Data=&amp;quot;M239.33333,263.33333 C239.33333,281.67256 238.66667,299.67663 238.66667,318&amp;quot;/&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&amp;nbsp;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;Path Stretch=&amp;quot;Fill&amp;quot; Stroke=&amp;quot;#FF000000&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Margin=&amp;quot;246.122,0,0,127.5&amp;quot; VerticalAlignment=&amp;quot;Bottom&amp;quot; Width=&amp;quot;33.045&amp;quot; Height=&amp;quot;34.448&amp;quot; Data=&amp;quot;M276,291.33333 C265.47034,284.113 258.73579,272.80992 249.33333,298.66667 245.70658,308.64023 241.38342,318.87219 268,310 270.13969,303.58094 273.33333,299.49906 273.33333,292 268.11259,304.18173 262.25661,306.1878 278.66667,316&amp;quot;/&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="text-align:justify;"&gt;Resultado: &lt;/p&gt; &lt;p style="text-align:center;"&gt;&lt;/p&gt; &lt;p style="text-align:center;"&gt;&lt;img src="http://www.developersdotnet.com/imagesblogs/mmoran/p10-6.jpg" alt="" /&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Animaciones &lt;/strong&gt;&lt;/p&gt; &lt;p style="text-align:justify;"&gt;WPF incluye clases que nos permiten generar animaciones de una manera muy sencilla. Dentro de WPF básicamente las animaciones se logran mediante la variación de una o varias propiedades a través del tiempo; éstas propiedades pueden ser el tamaño del objeto, su posición, el color, su opacidad etc. Cuando las propiedades cambian durante el tiempo se percibe el efecto de animación. &lt;/p&gt; &lt;p style="text-align:justify;"&gt;Para crear una animación primero debemos de definir el objeto al cual queremos animar. Durante los siguientes pasos definiremos un círculo que variará su tamaño constantemente. &lt;/p&gt; &lt;p style="text-align:justify;"&gt;1) Antes que nada definimos un círculo con el siguiente código &lt;/p&gt; &lt;p&gt;XAML &lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;Ellipse Name=&amp;quot;MiBalon&amp;quot; Height=&amp;quot;50&amp;quot; Width=&amp;quot;50&amp;quot; Stroke=&amp;quot;Black&amp;quot; StrokeThickness=&amp;quot;5&amp;quot;&amp;gt; &lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;/Ellipse&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="text-align:justify;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="text-align:justify;"&gt;2) Posteriormente utilizaremos la propiedad &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;Ellipse.Triggers&lt;/span&gt; que define el suceso o condición que dará inicio a la animación. Existen varios tipos de Triggers como el &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;DataTrigger&lt;/span&gt; que especifica una condición que se debe de cumplir para realizar alguna acción. También tenemos el &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;EventTrigger&lt;/span&gt; que será el objeto que utilizaremos en éste ejemplo y que se usa cuando queremos definir un conjunto de acciones en respuesta a un evento. Cuando utilizamos &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;EventTrigger&lt;/span&gt; debemos definir el evento que debe de suceder para disparar la animación mediante el atributo &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;RoutedEvent&lt;/span&gt;, en este caso, definiremos el evento &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;Ellipse.Loaded&lt;/span&gt; es decir: En el momento de que se cargue la &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;Ellipse&lt;/span&gt; se iniciará inmediatamente la animación &lt;/p&gt; &lt;p&gt;XAML &lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;Ellipse Name=&amp;quot;MiBalon&amp;quot; Height=&amp;quot;50&amp;quot; Width=&amp;quot;50&amp;quot; Stroke=&amp;quot;Black&amp;quot; StrokeThickness=&amp;quot;5&amp;quot;&amp;gt; &lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;Ellipse.Triggers&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="background:#d9d9d9;"&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;EventTrigger RoutedEvent=&amp;quot;Ellipse.Loaded&amp;quot;&amp;gt; &lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;/EventTrigger&amp;gt; &lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;/Ellipse.Triggers&amp;gt; &lt;/span&gt;&lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;&amp;lt;/Ellipse&amp;gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;3) Después de definir el evento utilizaremos las clases &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;StoryBoard y&lt;/span&gt; &lt;span style="font-size:10pt;color:black;font-family:courier new;"&gt;BeginStoryBoard&lt;/span&gt; que representan una línea de tiempo y su inicio&lt;span style="font-size:8pt;font-family:verdana;"&gt;. &lt;/span&gt;&lt;/p&gt; &lt;p style="backgrou