<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.southworks.net/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Jorge Garcia's Blog</title>
	
	<link>http://blogs.southworks.net/jgarcia</link>
	<description>Just another Southworks weblog</description>
	<lastBuildDate>Tue, 02 Dec 2008 21:06:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.southworks.net/jgarcia" /><feedburner:info uri="jgarcia" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>HPC WebCasts</title>
		<link>http://feeds.southworks.net/~r/jgarcia/~3/hGJGfI25kYM/</link>
		<comments>http://blogs.southworks.net/jgarcia/2008/12/02/hpc-webcasts/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 21:06:44 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[HPC]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/jgarcia/?p=36</guid>
		<description><![CDATA[Diciembre 2: HPC 2008: Introducción (10:00 HS Colombia &#8211; 13:00 HS BUENOS AIRES) Oradores:   ·        Angel &#8220;HPC&#8221; Lopez ·        Sebastian Renzi   Abstract: El termino HPC (High Performance Computing) se refiere a la necesidad de contar con gran potencia de computo para la resolución de problemas. Con el avance de la tecnología y el abaratamiento [...]]]></description>
			<content:encoded><![CDATA[<h1 style="margin: 24pt 0in 0pt"><span style="font-size: large"><span style="font-family: Cambria"><span style="color: #1f497d">Diciembre 2: </span><span><span style="color: #365f91">HPC 2008: Introducción</span></span></span></span></h1>
<h2 style="margin: 10pt 0in 0pt"><span><span style="font-size: medium"><span style="color: #4f81bd"><span style="font-family: Cambria">(10:00 HS Colombia &#8211; 13:00 HS BUENOS AIRES)</span></span></span></span></h2>
<h2 style="margin: 10pt 0in 0pt"><span><span style="font-size: medium"><span style="color: #4f81bd"><span style="font-family: Cambria">Oradores: </span></span></span></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><span style="font-size: small;font-family: Calibri"> </span></span></p>
<p class="MsoListParagraph" style="margin: 0in 0in 0pt 0.5in"><span style="font-family: Symbol"><span><span style="font-size: small">·</span><span style="font: 7pt">        </span></span></span><span><span style="font-size: small"><span style="font-family: Calibri">Angel &#8220;<strong>HPC</strong>&#8221; Lopez</span></span></span></p>
<p class="MsoListParagraph" style="margin: 0in 0in 0pt 0.5in"><span style="font-family: Symbol"><span><span style="font-size: small">·</span><span style="font: 7pt">        </span></span></span><span><span style="font-size: small"><span style="font-family: Calibri">Sebastian Renzi </span></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><span style="font-size: small;font-family: Calibri"> </span></span></p>
<h2 style="margin: 10pt 0in 0pt"><span><span style="font-size: medium"><span style="color: #4f81bd"><span style="font-family: Cambria">Abstract:</span></span></span></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><span style="font-size: small"><span style="font-family: Calibri">El termino <strong>HPC</strong> (<strong>High Performance Computing</strong>) se refiere a la necesidad de contar con gran potencia de computo para la resolución de problemas. Con el avance de la tecnología y el abaratamiento de los costos en hardware, hoy en día no es necesario contar con una supercomputadora e invertir grandes cantidades de dinero para obtener gran poder de computo. A partir de la aparición de &#8220;clusters&#8221;, conformados por máquinas convencionales, podemos explotar al máximo la capacidad de cálculo de cada una de ellas mediante la utilización de <strong>Windows HPC Server 2008</strong>. En esta oportunidad veremos una introducción al tema de <strong>HPC</strong>, conjuntamente con las principales características de <strong>Windows</strong> <strong>HPC Server 2008</strong>.</span></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span style="color: #1f497d"><span style="font-size: small;font-family: Calibri"> </span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span style="color: #1f497d"><a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032390223&amp;EventCategory=4&amp;culture=es-AR&amp;CountryCode=AR"><span style="font-size: small;font-family: Calibri">http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032390223&amp;EventCategory=4&amp;culture=es-AR&amp;CountryCode=AR</span></a></span></p>
<div class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span style="color: #1f497d"><span style="font-size: small;font-family: Calibri"></p>
<hr size="2" /></span></span></div>
<h1 style="margin: 24pt 0in 0pt"><span style="font-size: large"><span style="font-family: Cambria"><span style="color: #1f497d">Diciembre 3: </span><span><span style="color: #365f91">HPC 2008: Instalación y Despliegue</span></span></span></span></h1>
<h2 style="margin: 10pt 0in 0pt"><span><span style="font-size: medium"><span style="color: #4f81bd"><span style="font-family: Cambria"><span><span style="font-size: medium"><span style="color: #4f81bd"><span style="font-family: Cambria">(10:00 HS Colombia &#8211; 13:00 HS BUENOS AIRES)</span></span></span></span></span></span></span></span></h2>
<h2 style="margin: 10pt 0in 0pt"><span><span style="font-size: medium"><span style="color: #4f81bd"><span style="font-family: Cambria">Oradores: </span></span></span></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><span style="font-size: small;font-family: Calibri"> </span></span></p>
<p class="MsoListParagraph" style="margin: 0in 0in 0pt 0.5in"><span style="font-family: Symbol"><span><span style="font-size: small">·</span><span style="font: 7pt">        </span></span></span><span><span style="font-size: small"><span style="font-family: Calibri">Ezequiel Bella </span></span></span></p>
<p class="MsoListParagraph" style="margin: 0in 0in 0pt 0.5in"><span style="font-family: Symbol"><span><span style="font-size: small">·</span><span style="font: 7pt">        </span></span></span><span><span style="font-size: small"><span style="font-family: Calibri">Maximiliano Déboli </span></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><span style="font-size: small;font-family: Calibri"> </span></span></p>
<h2 style="margin: 10pt 0in 0pt"><span><span style="font-size: medium"><span style="color: #4f81bd"><span style="font-family: Cambria">Abstract:</span></span></span></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><span style="font-size: small"><span style="font-family: Calibri">Con <strong>Windows HPC Server 2008</strong>, tenemos a nuestra disposición el poder de una supercomputadora: podemos armar un &#8220;cluster&#8221; de máquinas para ejecutar trabajos en paralelo, de forma de poder aumentar el poder de cálculo con solo agregar más máquinas en el sistema.</span></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><span style="font-size: small"><span style="font-family: Calibri">En esta oportunidad mostraremos como construir un clúster utilizando <strong>Windows HPC Server 2008</strong>. A lo largo de la sesión, analizaremos las diferentes topologías que se pueden conformar; las nuevas herramientas disponibles para la instalación y puesta en marcha de nuevas máquinas en un clúster basada en plantillas; y por ultimo ejecutaremos una tarea sencilla sobre el clúster.</span></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span style="color: #1f497d"><span style="font-size: small;font-family: Calibri"> </span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span style="color: #1f497d"><a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032390230&amp;EventCategory=4&amp;culture=es-AR&amp;CountryCode=AR"><span style="font-size: small;color: #0000ff;font-family: Calibri">http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032390230&amp;EventCategory=4&amp;culture=es-AR&amp;CountryCode=AR</span></a></span></p>
<div class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span style="color: #1f497d"><span style="font-size: small;color: #0000ff;font-family: Calibri"></p>
<hr size="2" /></span></span></div>
<h1 style="margin: 24pt 0in 0pt"><span style="font-size: large"><span style="font-family: Cambria"><span style="color: #1f497d">Diciembre 4: </span><span><span style="color: #365f91">HPC 2008: Ejecución y Administración</span></span></span></span></h1>
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><span style="font-size: small;font-family: Calibri"> </span></span></p>
<h2 style="margin: 10pt 0in 0pt"><span><span style="font-size: medium"><span style="color: #4f81bd"><span style="font-family: Cambria"><span><span style="font-size: medium"><span style="color: #4f81bd"><span style="font-family: Cambria">(15:30 HS Colombia &#8211; 18:30 HS BUENOS AIRES)</span></span></span></span></span></span></span></span></h2>
<h2 style="margin: 10pt 0in 0pt"><span><span style="font-size: medium"><span style="color: #4f81bd"><span style="font-family: Cambria">Oradores: </span></span></span></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><span style="font-size: small;font-family: Calibri"> </span></span></p>
<p class="MsoListParagraph" style="margin: 0in 0in 0pt 0.5in"><span style="font-family: Symbol"><span><span style="font-size: small">·</span><span style="font: 7pt">        </span></span></span><span><span style="font-size: small"><span style="font-family: Calibri">Maximiliano Déboli</span></span></span></p>
<p class="MsoListParagraph" style="margin: 0in 0in 0pt 0.5in"><span style="font-family: Symbol"><span><span style="font-size: small">·</span><span style="font: 7pt">        </span></span></span><span><span style="font-size: small"><span style="font-family: Calibri">Jorge Andrés Garcia </span></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><span style="font-size: small;font-family: Calibri"> </span></span></p>
<h2 style="margin: 10pt 0in 0pt"><span><span style="font-size: medium"><span style="color: #4f81bd"><span style="font-family: Cambria">Abstract:</span></span></span></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><span style="font-size: small"><span style="font-family: Calibri">Con <strong>Windows HPC Server 2008</strong>, tenemos a nuestra disposición el poder de una supercomputadora: podemos armar un &#8220;cluster&#8221; de máquinas para ejecutar trabajos en paralelo, de forma de poder aumentar el poder de cálculo con solo agregar más máquinas en el sistema.</span></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><span style="font-size: small"><span style="font-family: Calibri">En esta sesión veremos distintas formas de enviar trabajo a un &#8220;cluster&#8221; de <strong>HPC</strong> y obtener sus resultados. Al tener varias máquinas bajo control, estudiaremos las facilidades de administración, monitoreo y diagnóstico que ofrece esta plataforma. Podremos ver gráficamente el estado de los nodos, su carga de trabajo, así como verificar la salud de su funcionamiento.</span></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span style="color: #1f497d"><span style="font-size: small;font-family: Calibri"> </span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span style="color: #1f497d"><a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032390234&amp;EventCategory=4&amp;culture=es-AR&amp;CountryCode=AR"><span style="font-size: small;color: #0000ff;font-family: Calibri">http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032390234&amp;EventCategory=4&amp;culture=es-AR&amp;CountryCode=AR</span></a></span></p>
<img src="http://feeds.feedburner.com/~r/jgarcia/~4/hGJGfI25kYM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/jgarcia/2008/12/02/hpc-webcasts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blogs.southworks.net/jgarcia/2008/12/02/hpc-webcasts/</feedburner:origLink></item>
		<item>
		<title>Migrando MVC preview v1 a v2 – Cambios Generales</title>
		<link>http://feeds.southworks.net/~r/jgarcia/~3/bDxizENACKg/</link>
		<comments>http://blogs.southworks.net/jgarcia/2008/04/25/migrando-mvc-preview-v1-a-v2-cambios-generales/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 00:00:00 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">/blogs/jgarcia/archive/2008/04/24/Migrando-MVC-preview-v1-a-v2-_2800_cambios-generales_2900_.aspx</guid>
		<description><![CDATA[Cambios generales (fuente: MVC preview 2 Readme) Cambios en la estructura del proyecto Agregado de las librer&#237;as de MVC v2 y remoci&#243;n de MVC Toolkit y Web.Extensions 3.6.0.0 Hay que remover las librer&#237;as MVCToolkit y Web.Extensions 3.6.0.0 y agregar las librer&#237;as System.Web.Abstractions, System.Web.Mvc y System.Web.Routing Agregado de nuevo archivo de Web.Config en el directorio Views [...]]]></description>
			<content:encoded><![CDATA[<h1 style="margin: 24pt 0in 0pt" align="left"><span><font face="Cambria" color="#365f91" size="5">Cambios generales</font></span><span></span></h1>
<p class="MsoNormal" style="margin: 0in 0in 10pt" align="left"><span><font face="Calibri" size="3">(<u>fuente</u>: MVC preview 2 <a title="readme" href="http://www.asp.net/downloads/3.5-extensions/readme/Preview2.aspx" target="_blank">Readme</a></font></span><span><font size="3"><font face="Calibri">)</font></font></span></p>
<h2 style="margin: 10pt 0in 0pt" align="left"><a title="_Toc196717769" name="_Toc196717769"></a><span><font face="Cambria" color="#4f81bd" size="4">Cambios en la estructura del proyecto</font></span></h2>
<p align="left"><span></span></p>
<h2 style="margin: 10pt 0in 0pt" align="left"><a title="_Toc196717770" name="_Toc196717770"></a><span><font face="Cambria" color="#4f81bd" size="3">Agregado de las librer&#237;as de MVC v2 y remoci&#243;n de MVC Toolkit y Web.Extensions 3.6.0.0</font></span></h2>
<ul>
<li>
<h2 style="margin: 10pt 0in 0pt" align="left"><span><font face="Cambria" color="#4f81bd" size="3">Hay que remover las librer&#237;as MVCToolkit y Web.Extensions 3.6.0.0 y agregar las librer&#237;as System.Web.Abstractions, System.Web.Mvc y System.Web.Routing</font></span></h2>
</li>
</ul>
<h3 style="margin: 10pt 0in 0pt" align="left"><a title="_Toc196717771" name="_Toc196717771"></a><span><font face="Cambria" color="#4f81bd" size="3">Agregado de nuevo archivo de Web.Config en el directorio Views</font></span></h3>
<ul>
<li>
<h3 style="margin: 10pt 0in 0pt" align="left"><span></span><span><font face="Cambria" color="#4f81bd" size="3">Hay que agregar un Web.config en la carpeta views con el siguiente c&#243;digo:</font></span></h3>
</li>
</ul>
<blockquote><h3 style="margin: 10pt 0in 0pt" align="left"><span><font face="Cambria" color="#4f81bd" size="3"><font size="2"><font face="Courier New"><font color="#000000">&lt;?</font><span style="color: #a31515">xml</span><font color="#000000"> </font><span style="color: red">version</span></font></font><font size="2"><font face="Courier New"><font color="#000000">=&quot;1.0&quot;?&gt;               <br />&lt;</font><span style="color: #a31515">configuration</span></font></font><font size="2"><font face="Courier New"><font color="#000000">&gt;               <br />&#160; &lt;</font><span style="color: #a31515">system.web</span></font></font><font size="2"><font face="Courier New"><font color="#000000">&gt;               <br />&#160;&#160;&#160; &lt;</font><span style="color: #a31515">httpHandlers</span></font></font><font size="2"><font face="Courier New"><font color="#000000">&gt;               <br />&#160;&#160;&#160;&#160;&#160; &lt;</font><span style="color: #a31515">remove</span><font color="#000000"> </font><span style="color: red">verb</span><font color="#000000">=&quot;*&quot; </font><span style="color: red">path</span></font></font><font size="2"><font face="Courier New"><font color="#000000">=&quot;*.aspx&quot;/&gt;               <br />&#160;&#160;&#160;&#160;&#160; &lt;</font><span style="color: #a31515">add</span><font color="#000000"> </font><span style="color: red">path</span><font color="#000000">=&quot;*.aspx&quot; </font><span style="color: red">verb</span></font></font><font size="2"><font face="Courier New"><font color="#000000">=&quot;*&quot;               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </font><span style="color: red">type</span></font></font><font size="2"><font face="Courier New"><font color="#000000">=&quot;System.Web.HttpNotFoundHandler&quot;/&gt;               <br />&#160;&#160;&#160; &lt;/</font><span style="color: #a31515">httpHandlers</span></font></font><font size="2"><font face="Courier New"><font color="#000000">&gt;               <br />&#160; &lt;/</font><span style="color: #a31515">system.web</span></font></font><font size="2"><font face="Courier New"><font color="#000000">&gt;               <br />&#160; <br />&#160; &lt;</font><span style="color: #a31515">system.webServer</span></font></font><font size="2"><font face="Courier New"><font color="#000000">&gt;               <br />&#160;&#160;&#160; &lt;</font><span style="color: #a31515">validation</span><font color="#000000"> </font><span style="color: red">validateIntegratedModeConfiguration</span></font></font><font size="2"><font face="Courier New"><font color="#000000">=&quot;false&quot;/&gt;               <br />&#160;&#160;&#160; &lt;</font><span style="color: #a31515">handlers</span></font></font><font size="2"><font face="Courier New"><font color="#000000">&gt;               <br />&#160;&#160;&#160;&#160;&#160; &lt;</font><span style="color: #a31515">remove</span><font color="#000000"> </font><span style="color: red">name</span></font></font><font size="2"><font face="Courier New"><font color="#000000">=&quot;PageHandlerFactory-ISAPI-2.0&quot;/&gt;               <br />&#160;&#160;&#160;&#160;&#160; &lt;</font><span style="color: #a31515">remove</span><font color="#000000"> </font><span style="color: red">name</span></font></font><font size="2"><font face="Courier New"><font color="#000000">=&quot;PageHandlerFactory-ISAPI-1.1&quot;/&gt;               <br />&#160;&#160;&#160;&#160;&#160; &lt;</font><span style="color: #a31515">remove</span><font color="#000000"> </font><span style="color: red">name</span></font></font><font size="2"><font face="Courier New"><font color="#000000">=&quot;PageHandlerFactory-Integrated&quot;/&gt;               <br />&#160;&#160;&#160;&#160;&#160; &lt;</font><span style="color: #a31515">add</span><font color="#000000"> </font><span style="color: red">name</span><font color="#000000">=&quot;BlockViewHandler&quot; </font><span style="color: red">path</span><font color="#000000">=&quot;*.aspx&quot; </font><span style="color: red">verb</span></font></font><font size="2"><font face="Courier New"><font color="#000000">=&quot;*&quot;               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </font><span style="color: red">preCondition</span></font></font><font size="2"><font face="Courier New"><font color="#000000">=&quot;integratedMode&quot;               <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </font><span style="color: red">type</span></font></font><font size="2"><font face="Courier New"><font color="#000000">=&quot;System.Web.HttpNotFoundHandler&quot;/&gt;               <br />&#160;&#160;&#160; &lt;/</font><span style="color: #a31515">handlers</span></font></font><font size="2"><font face="Courier New"><font color="#000000">&gt;               <br />&#160; &lt;/</font><span style="color: #a31515">system.webServer</span></font></font><font size="2"><font face="Courier New"><font color="#000000">&gt;               <br />&lt;/</font><span style="color: #a31515">configuration</span><font color="#000000">&gt;</font></font></font></font></span></h3>
</blockquote>
<p class="MsoNormal" style="margin: 0in 0in 10pt" align="left"><span></span><span></span></p>
<h2 style="margin: 10pt 0in 0pt" align="left"><a title="_Toc196717772" name="_Toc196717772"></a><span><font face="Cambria" color="#4f81bd" size="4">Cambios en el archivo Web.config</font></span><span></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt" align="left"><span><font size="3"><font face="Calibri"></font></font></span></p>
<h3 style="margin: 10pt 0in 0pt" align="left"><a title="_Toc196717773" name="_Toc196717773"></a><span><font face="Cambria" color="#4f81bd" size="3">Cambio de versi&#243;n de Web.Extensions v3.6.0.0 a v3.5.0.0</font></span></h3>
<ul>
<li>
<h3 style="margin: 10pt 0in 0pt" align="left"><span><font face="Cambria" color="#4f81bd" size="3">Cambiar en el web.config todas las versiones de la librer&#237;a web.extensions (donde dice 3.6.0.0 hay que poner 3.5.0.0</font></span></h3>
</li>
</ul>
<h3 style="margin: 10pt 0in 0pt" align="left"><a title="_Toc196717774" name="_Toc196717774"></a><font face="Cambria" color="#4f81bd" size="3">Remover Bindings y Dynamic Data and Routing Modules and Handlers</font></h3>
<ul>
<li>
<div style="margin: 10pt 0in 0pt" align="left"><span><font face="Cambria" color="#4f81bd" size="3"><strong>Remover las dependetAssembly que mapeaba las versiones anteriores de Web.Extensions a la versi&#243;n 3.6.0.0 (esto est&#225; dentro del tag </strong></font></span></div>
</li>
<li>
<div style="margin: 10pt 0in 0pt" align="left"><span><font face="Cambria" color="#4f81bd" size="3"><strong>Remover de&#160; los tags con namespace System.Web.DynamicData y tagName </strong><font color="#000000">~</font><strong>/App_Shared/DynamicDataFields/FilterUserControl.ascx</strong></font></span></div>
</li>
<li>
<div style="margin: 10pt 0in 0pt" align="left"><span><strong><font face="Cambria" color="#4f81bd" size="3">Remover de el tag de System.Web.DynamicData.DynamicDataControlSessions</font></strong></span></div>
</li>
<li>
<div style="margin: 10pt 0in 0pt" align="left"><span><strong><font face="Cambria" color="#4f81bd" size="3">Remover la secci&#243;n bajo </font></strong></span></div>
</li>
<li>
<div style="margin: 10pt 0in 0pt" align="left"><span><strong><font face="Cambria" color="#4f81bd" size="3">Remover de la secci&#243;n los modulos de DynamicDataModule y UrlRoutingModule</font></strong></span></div>
</li>
<li>
<div style="margin: 10pt 0in 0pt" align="left"><span><strong><font face="Cambria" color="#4f81bd" size="3">Remover de el m&#243;dulo UrlRoutingModule.</font></strong></span></div>
</li>
</ul>
<p align="left"><font face="Cambria" color="#4f81bd" size="3"></font></p>
<h3 style="margin: 10pt 0in 0pt" align="left"><a title="_Toc196717775" name="_Toc196717775"></a><span><font face="Cambria" color="#4f81bd" size="3">Nuevo ruteo usando System.Web.Routing</font></span></h3>
<ul>
<li>
<h3 style="margin: 10pt 0in 0pt" align="left"><span><font face="Cambria" color="#4f81bd" size="3"><span><font face="Cambria" color="#4f81bd" size="3">En&#160; agregar el siguiente c&#243;digo en la secci&#243;n : <font size="2"><font face="Courier New"><font color="#0000ff">&lt;</font><font color="#000000">add</font><span style="color: blue"> </span><span style="color: red">name</span><span style="color: blue">=</span><font color="#000000">&quot;</font><span style="color: blue">UrlRoutingModule</span><font color="#000000">&quot;</font><span style="color: blue"> </span><span style="color: red">type</span><span style="color: blue">=</span><font color="#000000">&quot;</font><span style="color: blue">System.Web.Routing.UrlRoutingModule, </span><span style="color: blue">System.Web.Routing, Version=3.5.0.0, Culture=neutral, </span><span style="color: blue">PublicKeyToken=31BF3856AD364E35</span><font color="#000000">&quot;</font><span style="color: blue"> /&gt;</span></font></font></font></span></font></span></h3>
</li>
<li>
<h3 style="margin: 10pt 0in 0pt" align="left"><span><font face="Cambria" color="#4f81bd" size="3">En&#160; agregar el siguiente c&#243;digo en la secci&#243;n : <font size="2"><font face="Courier New"><font color="#0000ff">&lt;</font><font color="#000000">add </font><span style="color: red">name</span><span style="color: blue">=</span><font color="#000000">&quot;</font><span style="color: blue">MvcScriptMap</span><font color="#000000">&quot; </font><span style="color: red">preCondition</span><span style="color: blue">=</span><font color="#000000">&quot;</font><span style="color: blue">classicMode,bitness32</span><font color="#000000">&quot; </font><span style="color: red">verb</span><span style="color: blue">=</span><font color="#000000">&quot;</font><span style="color: blue">*</span></font></font><font size="2"><font face="Courier New"><font color="#000000">&quot; </font><span style="color: red">path</span><span style="color: blue">=</span><font color="#000000">&quot;</font><span style="color: blue">*.mvc</span><font color="#000000">&quot;</font><span style="color: red">modules</span><span style="color: blue">=</span><font color="#000000">&quot;</font><span style="color: blue">IsapiModule</span></font></font><font size="2"><font face="Courier New"><font color="#000000">&quot; </font><span style="color: red">scriptProcessor</span><span style="color: blue">=</span><font color="#000000">&quot;</font><span style="color: blue">%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll</span><font color="#000000">&quot;</font><span style="color: blue"> /&gt;</span>
<p><span style="color: blue">&lt;</span><font color="#000000">add</font><span style="color: blue"> </span><span style="color: red">name</span><span style="color: blue">=</span><font color="#000000">&quot;</font><span style="color: blue">MvcScriptMap64</span><font color="#000000">&quot;</font><span style="color: blue"> </span><span style="color: red">preCondition</span><span style="color: blue">=</span><font color="#000000">&quot;</font><span style="color: blue">classicMode,bitness64</span><font color="#000000">&quot; </font><span style="color: red">verb</span><span style="color: blue">=</span><font color="#000000">&quot;</font><span style="color: blue">*</span><font color="#000000">&quot;</font><span style="color: blue"> </span><span style="color: red">path</span><span style="color: blue">=</span><font color="#000000">&quot;</font><span style="color: blue">*.mvc</span><font color="#000000">&quot;</font><span style="color: blue"> </span><span style="color: red">modules</span><span style="color: blue">=</span><font color="#000000">&quot;</font><span style="color: blue">IsapiModule</span><font color="#000000">&quot; </font><span style="color: red">scriptProcessor</span><span style="color: blue">=</span><font color="#000000">&quot;</font><span style="color: blue">%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll</span><font color="#000000">&quot;</font><span style="color: blue"> /&gt;</span></p>
<p><span style="color: blue">&lt;</span><font color="#000000">add</font><span style="color: blue"> </span><span style="color: red">name</span><span style="color: blue">=</span><font color="#000000">&quot;</font><span style="color: blue">UrlRoutingHandler</span><font color="#000000">&quot;</font><span style="color: blue"> </span><span style="color: red">preCondition</span><span style="color: blue">=</span><font color="#000000">&quot;</font><span style="color: blue">integratedMode</span><font color="#000000">&quot;</font><span style="color: blue"> </span><span style="color: red">verb</span><span style="color: blue">=</span><font color="#000000">&quot;</font><span style="color: blue">*</span><font color="#000000">&quot;</font><span style="color: blue"> </span><span style="color: red">path</span><span style="color: blue">=</span><font color="#000000">&quot;</font><span style="color: blue">UrlRouting.axd</span><font color="#000000">&quot;</font><span style="color: blue"> </span><span style="color: red">type</span><span style="color: blue">=</span><font color="#000000">&quot;</font><span style="color: blue">System.Web.Routing.UrlRoutingHandler, </span><span style="color: blue">System.Web.Routing,Version=3.5.0.0, Culture=neutral, </span><span style="color: blue">PublicKeyToken=31BF3856AD364E35</span><font color="#000000">&quot;</font><span style="color: blue"> /&gt;</span></p>
<p>             </font></font></font></span></h3>
</li>
<li>
<h3 style="margin: 10pt 0in 0pt" align="left"><span><font face="Cambria" color="#4f81bd" size="3">En agregar el siguiente c&#243;digo:<font size="2"><font face="Courier New"><font color="#000000">&lt;</font><span style="color: #a31515">add</span><font color="#000000"> </font><span style="color: red">namespace</span><font color="#000000">=&quot;System.Web.Routing&quot;/&gt;</font></font></font></font></span></h3>
</li>
<li>
<h3 style="margin: 10pt 0in 0pt" align="left"><span><font face="Cambria" color="#4f81bd" size="3">En httpModules agregar el siguiente c&#243;digo: </font></span><span><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39">&lt;<span style="color: #a31515">add</span> <span style="color: red">name</span>=&quot;UrlRoutingModule&quot; <span style="color: red">type</span>=&quot;System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&quot; /&gt;</span></span><span></span></h3>
</li>
</ul>
<h3 style="margin: 10pt 0in 0pt" align="left"><a title="_Toc196717776" name="_Toc196717776"></a><span><font face="Cambria" color="#4f81bd" size="3">Nuevos modulos de MVC</font></span></h3>
<ul>
<li>
<h3 style="margin: 10pt 0in 0pt" align="left"><span><font face="Cambria" color="#4f81bd" size="3">Agregar el siguiente c&#243;digo en : <font size="2"><font face="Courier New"><font color="#000000">&lt;</font><span style="color: #a31515">add</span><font color="#000000"> </font><span style="color: red">assembly</span></font></font><font size="2"><font face="Courier New"><font color="#000000">=&quot;System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&quot;/&gt;                 <br />&lt;</font><span style="color: #a31515">add</span><font color="#000000"> </font><span style="color: red">assembly</span></font></font><font size="2"><font face="Courier New"><font color="#000000">=&quot;System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&quot;/&gt;                 <br />&lt;</font><span style="color: #a31515">add</span><font color="#000000"> </font><span style="color: red">assembly</span></font></font><font face="Courier New" color="#000000" size="2">=&quot;System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&quot;/&gt;</font></font></span></h3>
</li>
</ul>
<p class="MsoNormal" style="margin: 0in 0in 10pt" align="left"><span></span><span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt" align="left"><span></span><span></span></p>
<h2 style="margin: 10pt 0in 0pt" align="left"><a title="_Toc196717777" name="_Toc196717777"></a><span><font face="Cambria" color="#4f81bd" size="4">Cambios en Global.asax</font></span><span></span></h2>
<h3 style="margin: 10pt 0in 0pt" align="left"><a title="_Toc196717778" name="_Toc196717778"></a><span><font face="Cambria" color="#4f81bd" size="3">Nueva alta de rutas</font></span></h3>
<ul>
<li>
<h3 style="margin: 10pt 0in 0pt" align="left"><span><font face="Cambria" color="#4f81bd" size="3">Se genera un nuevo m&#233;todo que es llamado por Application_Start: <font size="2"><font face="Courier New"><span style="color: blue">protected</span><font color="#000000"> </font><span style="color: blue">void</span><font color="#000000"> Application_Start(</font><span style="color: blue">object</span><font color="#000000"> sender, </font><span style="color: #2b91af">EventArgs</span></font></font><font size="2"><font face="Courier New"><font color="#000000"> e)                 <br />{                  <br />&#160;&#160;&#160; RegisterRoutes(</font><span style="color: #2b91af">RouteTable</span></font></font><font face="Courier New" color="#000000" size="2">.Routes);             <br />}</font></font></span></h3>
<p align="left"><span><font face="Courier New" size="2"></font></span></p>
<li>
<h3 style="margin: 10pt 0in 0pt" align="left"><span><font face="Cambria" color="#4f81bd" size="3">El m&#233;todo agrega rutas en una collection: <font size="2"><font face="Courier New"><span style="color: blue">private static</span><font color="#000000">&#160;</font><span style="color: blue">void</span><font color="#000000"> RegisterRoutes(</font><span style="color: #2b91af">RouteCollection</span></font></font><font size="2"><font face="Courier New"><font color="#000000"> routes)                   <br />{                    <br />&#160;&#160;&#160; </font><span style="color: green">// Note: Change the URL to &quot;{controller}.mvc/{action}/{id}&quot; to enable</span>                  <br /><font color="#000000">&#160;&#160;&#160; </font><span style="color: green">//&#160;&#160;&#160;&#160;&#160;&#160; automatic support on IIS6 and IIS7 classic mode</span>                  <br /><span style="color: green">&#160;</span>                  <br /><font color="#000000">&#160;&#160;&#160; routes.Add(</font><span style="color: blue">new</span><font color="#000000"> </font><span style="color: #2b91af">Route</span><font color="#000000">(</font><span style="color: #a31515">&quot;{controller}/{action}/{id}&quot;</span><font color="#000000">, </font><span style="color: blue">new</span><font color="#000000"> </font><span style="color: #2b91af">MvcRouteHandler</span></font></font><font size="2"><font face="Courier New"><font color="#000000">())                   <br />&#160;&#160;&#160; {                    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; Defaults = </font><span style="color: blue">new</span><font color="#000000"> </font><span style="color: #2b91af">RouteValueDictionary</span><font color="#000000">(</font><span style="color: blue">new</span><font color="#000000"> { action = </font><span style="color: #a31515">&quot;Index&quot;</span></font></font><font size="2"><font face="Courier New"><font color="#000000">,                   <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; id = </font><span style="color: #a31515">&quot;&quot;</span></font></font><font face="Courier New" color="#000000" size="2">}),               <br />&#160;&#160;&#160; });</font>              <br /></font></span></h3>
<p align="left"><span><font face="Cambria" color="#4f81bd" size="3"></font></span></p>
<h3 style="margin: 10pt 0in 0pt" align="left"><a title="_Toc196717779" name="_Toc196717779"></a><span><font face="Cambria" color="#4f81bd" size="3">Cambio de identificaci&#243;n de los par&#225;metros (cambio de [] a {})</font></span></h3>
<p align="left">
</li>
</li>
</ul>
<p align="left"><span><font face="Cambria" color="#4f81bd" size="3"></font></span></p>
<h3 style="margin: 10pt 0in 0pt" align="left"><a title="_Toc196717779" name="_Toc196717779"></a><span><font face="Cambria" color="#4f81bd" size="3">Cambio de identificaci&#243;n de los par&#225;metros (cambio de [] a {})</font></span></h3>
<ul>
<li>
<h3 style="margin: 10pt 0in 0pt" align="left"><span><font face="Cambria" color="#4f81bd" size="3">Verificar que los par&#225;metros en las rutas est&#233;n declarados entre llaves {} y no entre corchetes []: <font size="2"><font face="Courier New"><span style="color: #a31515">&quot;{controller}/{action}/{id}&quot;</span></font></font></font></span></h3>
</li>
</ul>
<p class="MsoNormal" style="margin: 0in 0in 10pt" align="left"><span></span><span></span></p>
<h2 style="margin: 10pt 0in 0pt" align="left"><a title="_Toc196717780" name="_Toc196717780"></a><span><font face="Cambria" color="#4f81bd" size="4">Cambios en Controllers</font></span><span></span></h2>
<h3 style="margin: 10pt 0in 0pt" align="left"><a title="_Toc196717781" name="_Toc196717781"></a><span><font face="Cambria" color="#4f81bd" size="3">Remover los tags ControllerAction de los m&#233;todos y agregar los tags NonAction</font></span></h3>
<ul>
<li>
<h3 style="margin: 10pt 0in 0pt" align="left"><span><font face="Cambria" color="#4f81bd" size="3">Todos los m&#233;todos p&#250;blicos de un controller (a excepci&#243;n de los constructores) son considerados actions. Hay que remover los tags [ControllerAction] porque no sirven m&#225;s</font></span></h3>
</li>
<li>
<h3 style="margin: 10pt 0in 0pt" align="left"><span><font face="Cambria" color="#4f81bd" size="3">Todos los m&#233;todos p&#250;blicos de un controller (a excepci&#243;n de los constructores) que no quieran ser considerados actions deben etiquetarse con el tag [NonAction]</font></span></h3>
</li>
</ul>
<p align="left"><span></span><br />
<h2 style="margin: 10pt 0in 0pt" align="left"><a title="_Toc196717780" name="_Toc196717780"></a><span><font face="Cambria" color="#4f81bd" size="4">Cambios en Views</font></span></h2>
<h3 style="margin: 10pt 0in 0pt" align="left"><a title="_Toc196717781" name="_Toc196717781"></a><span><font face="Cambria" color="#4f81bd" size="3">Cambios en HtmlHelper y UrlHelper</font></span></h3>
<h3 style="margin: 10pt 0in 0pt">
<ul>
<li>
<h3 style="margin: 10pt 0in 0pt"><span><font face="Cambria" color="#4f81bd" size="3">El m&#233;todo ActionLink de HtmlHelper no conserva la firma (string linkText, object values). Estos m&#233;todos deben reemplazarse por la firma (string linkText, string actionName, object values) quitando la property Action del objecto values.</font></span></h3>
</li>
<li>
<h3 style="margin: 10pt 0in 0pt"><span><font face="Cambria" color="#4f81bd" size="3"><span><font face="Cambria" color="#4f81bd" size="3">El m&#233;todo Action de UrlHelper no conserva la firma (object values). Estos m&#233;todos deben reemplazarse por la firma (string actionName, object values) quitando la property Action del objecto values.</font></span></font></span></h3>
</li>
</ul>
</h3>
<p align="left"></p>
<img src="http://feeds.feedburner.com/~r/jgarcia/~4/bDxizENACKg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/jgarcia/2008/04/25/migrando-mvc-preview-v1-a-v2-cambios-generales/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blogs.southworks.net/jgarcia/2008/04/25/migrando-mvc-preview-v1-a-v2-cambios-generales/</feedburner:origLink></item>
		<item>
		<title>Migración de MVC preview v1 a v2 – Creando un ViewUserControl base</title>
		<link>http://feeds.southworks.net/~r/jgarcia/~3/EvAHQhRSEuE/</link>
		<comments>http://blogs.southworks.net/jgarcia/2008/04/24/migracion-de-mvc-preview-v1-a-v2-creando-un-viewusercontrol-base/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 17:28:00 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">/blogs/jgarcia/archive/2008/04/24/Migraci_F300_n-de-MVC-preview-v1-a-v2-_2D00_-Creando-un-ViewUserControl-base.aspx</guid>
		<description><![CDATA[Creación de un nuevo ContextUserControl para que lo hereden los controles MVC]]></description>
			<content:encoded><![CDATA[<h2 style="margin: 10pt 0in 0pt"><a name="_Toc196717789" title="_Toc196717789"></a><span><font color="#4f81bd" face="Cambria" size="4">Creación de un nuevo ContextUserControl para que lo hereden los controles MVC</font></span></h2>
<img src="http://feeds.feedburner.com/~r/jgarcia/~4/EvAHQhRSEuE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/jgarcia/2008/04/24/migracion-de-mvc-preview-v1-a-v2-creando-un-viewusercontrol-base/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blogs.southworks.net/jgarcia/2008/04/24/migracion-de-mvc-preview-v1-a-v2-creando-un-viewusercontrol-base/</feedburner:origLink></item>
		<item>
		<title>Migración de MVC preview v1 a v2 – Utilizar un controller base y una view Base</title>
		<link>http://feeds.southworks.net/~r/jgarcia/~3/S_E_UhnRlik/</link>
		<comments>http://blogs.southworks.net/jgarcia/2008/04/24/migracion-de-mvc-preview-v1-a-v2-utilizar-un-controller-base/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 17:24:00 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">/blogs/jgarcia/archive/2008/04/24/Migraci_F300_n-de-MVC-preview-v1-a-v2-_2D00_-Utilizar-un-controller-base.aspx</guid>
		<description><![CDATA[Base Controller y Base View Escribir un controller base desde el cual heredan los controllers y una view base desde la cual heredan todas las views tiene muchos beneficios. Aquí presentamos algunos que se vuelven particularmente interesantes al momento de migrar de MVC v1 a v2. Reescritura de HtmlHelper.ActionLink y UrlHelper.Action Como vimos en el [...]]]></description>
			<content:encoded><![CDATA[<h2 style="margin: 10pt 0in 0pt"><a name="_Toc196717785" title="_Toc196717785"></a><span><font color="#4f81bd" face="Cambria" size="4">Base Controller y Base View</font></span></h2>
<h2 style="margin: 10pt 0in 0pt"><span><font size="3"><font face="Calibri">Escribir un controller base desde el cual heredan los controllers y una view base desde la cual heredan todas las views tiene muchos beneficios. Aquí presentamos algunos que se vuelven particularmente interesantes al momento de migrar de MVC v1 a v2.</font></font></span></h2>
<h2 style="margin: 10pt 0in 0pt"><a name="_Toc196717784" title="_Toc196717784"></a><font color="#4f81bd" face="Cambria" size="4">Reescritura de HtmlHelper.ActionLink y UrlHelper.Action</font></h2>
<p style="margin: 10pt 0in 0pt"><strong><span><font size="3"><font face="Calibri">Como vimos en el post anterior, el HtmlHelper.ActionLink y el UrlHelper.Action perdieron 2 firmas, lo que implicaría cambiar TODAS las llamadas a los métodos ActionLink y Action que usen esa firma en TODAS las views. Si existiera una view base de la cual hereden todas las views, una solución a este problema es sobreescribir las property Html y Url de la view Base con clases que hereden de HtmlHelper y UrlHelper y que implementen los métodos ActionLink y Action con los parámetros anteriores. No es una solución prolija, pero en caso de tener muchas views es mucho más rápida que cambiar todas las vistas. El código sería el siguiente:</font></font></span></strong></p>
<p style="margin: 10pt 0in 0pt"><strong><span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span></span></p>
<h2 style="margin: 10pt 0in 0pt"><span><font color="#4f81bd" face="Cambria" size="4"></font></span><span></span><a name="_Toc196717786" title="_Toc196717786"></a><span><font color="#4f81bd" face="Cambria" size="3">Reemplazo de OnError por HandleUnknowAction</font></span><span></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Antes</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span></span><span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Después</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span></span><span></span></p>
<h3 style="margin: 10pt 0in 0pt"><a name="_Toc196717787" title="_Toc196717787"></a><span><font color="#4f81bd" face="Cambria" size="3">Cambio de OnPreAction por OnActionExecuting</font></span><span></span></h3>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Antes</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span></span><span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Después</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span></span><span></span></p>
<h3 style="margin: 10pt 0in 0pt"><a name="_Toc196717788" title="_Toc196717788"></a><span><font color="#4f81bd" face="Cambria" size="3">Sobreescribir InvokeActionMethod</font></span></h3>
<img src="http://feeds.feedburner.com/~r/jgarcia/~4/S_E_UhnRlik" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/jgarcia/2008/04/24/migracion-de-mvc-preview-v1-a-v2-utilizar-un-controller-base/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blogs.southworks.net/jgarcia/2008/04/24/migracion-de-mvc-preview-v1-a-v2-utilizar-un-controller-base/</feedburner:origLink></item>
		<item>
		<title>Miyagi: Día 1</title>
		<link>http://feeds.southworks.net/~r/jgarcia/~3/6HRdtZxGC3A/</link>
		<comments>http://blogs.southworks.net/jgarcia/2007/12/11/miyagi-dia-1/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 01:39:00 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">/blogs/jgarcia/archive/2007/12/10/Miyagi_3A00_-D_ED00_a-1.aspx</guid>
		<description><![CDATA[Application Demo Miyagi &#8211; Creating the basic architecture   Este es el primero de una serie de post en el cual mostraremos paso a paso la implementación de la aplicación del proyecto Miyagi.  Esta serie tiene como objeto mostrar a través de un ejemplo práctico el proceso de desarrollo de aplicaciones en Southworks mostrando el [...]]]></description>
			<content:encoded><![CDATA[<h1 style="margin: 24pt 0in 0pt"><font color="#365f91" face="Cambria" size="5">Application Demo Miyagi &ndash; Creating the basic architecture</font></h1>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><font face="Calibri" size="3"> </font></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Este es el primero de una serie de post en el cual mostraremos paso a paso la implementación de la aplicación del proyecto Miyagi. <span> </span>Esta serie tiene como objeto mostrar a través de un ejemplo práctico el proceso de desarrollo de aplicaciones en Southworks mostrando el avance que día a día fue ocurriendo en la aplicación. </font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Cabe destacar que esta serie de posts comienza una vez que ya se definió el alcance del proyecto (Capacity, Project Charter, business stories, etc). Las etapas previas del proyecto estarán publicadas en otra serie de post (que se publicará en breve). </font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Brevemente, Miyagi es un proyecto<span>  </span>de administración de recursos y proyectos. La aplicación provee funcionalidad para asignar tiempos de dedicación de recursos a proyectos, proveer una serie de alertas en casos especiales (sobre-asignación de horas, sub-asignación, etc) y varias funcionalidades para consultar esta información.<span>  </span></font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Partimos entonces desde el punto en el que se consensuó que el alcance de la aplicación se reduce al desarrollo de 3 vistas principales que son las mínimas que se necesitan para satisfacer las necesidades del cliente. Las vistas se muestran en la figura 1.</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font face="Calibri" size="3"></font></span><span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><strong><em><font size="3"><font color="#4f81bd"><font face="Calibri"><span class="MsoIntenseEmphasis">Figura 1: Vistas de Capacidad, Alocación y Proyecto</span><span class="MsoIntenseEmphasis"><span></span></span></font></font></font></em></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">La idea es crear rápidamente un prototipo de la aplicación que se va a desarrollar con varios objetivos en mente: </font></font></span></p>
<p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 0.5in"><span style="font-family: Wingdings"><span><font size="3">Ø</font><span style="font: 7pt 'Times New Roman'">  </span></span></span><span><font size="3"><font face="Calibri">Darle rápidamente algo tangible al cliente</font></font></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in"><span style="font-family: Wingdings"><span><font size="3">Ø</font><span style="font: 7pt 'Times New Roman'">  </span></span></span><span><font size="3"><font face="Calibri">Mostrarle que entendimos lo que necesita</font></font></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in"><span style="font-family: Wingdings"><span><font size="3">Ø</font><span style="font: 7pt 'Times New Roman'">  </span></span></span><span><font size="3"><font face="Calibri">Mostrarle cómo la aplicación que desarrollemos va a agregarle valor </font></font></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in"><span style="font-family: Wingdings"><span><font size="3">Ø</font><span style="font: 7pt 'Times New Roman'">  </span></span></span><span><font size="3"><font face="Calibri">Que sirva para validar o refutar lo que tenemos relevado hasta el momento.</font></font></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 10pt 0.5in"><span style="font-family: Wingdings"><span><font size="3">Ø</font><span style="font: 7pt 'Times New Roman'">  </span></span></span><span><font size="3"><font face="Calibri">Bajar a tierra las ideas que estaban en papel para que el mismo equipo de desarrollo empiece a pensar en algo más tangible</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">La filosofía es simple: <strong>Hacer sólo lo necesario, de la forma más sencilla y rápida posible para conseguir lo que queremos</strong>. La idea es no perder el foco de lo que queremos conseguir (un prototipo en este caso) y tratar de no buscar la mejor solución sino una que funcione. Cualquier semejanza con TDD no es casualidad. </font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Para generar el prototipo, el primer paso es crear un primer diseño de la BD. En la figura 2 se muestra el diseño resultante que permite almacenar la información necesaria. La tabla <strong>Resource</strong> almacena los recursos de la empresa, la tabla <strong>Project</strong> almacena los proyectos y las tablas <strong>HotAllocation</strong> y <strong>ColdAllocation</strong> almacenan las asignaciones a un recurso en un proyecto en un día determinado (la asignación por día es la menor granularidad posible). La división entre hot y cold allocation está pensada a efectos de mejorar la performance de la aplicación (ya se verá más adelante el funcionamiento de estas tablas).</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font face="Calibri" size="3"></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Figura 2: Primer diseño de la BD.</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">El segundo paso es crear la arquitectura básica de la aplicación que vamos a desarrollar.<span>  </span>En nuestro caso, para este primer prototipo se estipulo crear una aplicación web desarrollada en ASP 2.0. Por lo tanto creamos una solución .Net que más simple que permite cumplir con este requisito:</font></font></span></p>
<p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 0.5in"><span style="font-family: Wingdings"><span><font size="3">Ø</font><span style="font: 7pt 'Times New Roman'">  </span></span></span><font face="Calibri" size="3">Un web site (WebUX)</font></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in"><span style="font-family: Wingdings"><span><font size="3">Ø</font><span style="font: 7pt 'Times New Roman'">  </span></span></span><font face="Calibri" size="3">Un web service (Host.Asmx)</font></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in"><span style="font-family: Wingdings"><span><font size="3">Ø</font><span style="font: 7pt 'Times New Roman'">  </span></span></span><span><font size="3"><font face="Calibri">Una capa de negocio (Services)</font></font></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 10pt 0.5in"><span style="font-family: Wingdings"><span><font size="3">Ø</font><span style="font: 7pt 'Times New Roman'">  </span></span></span><span><font size="3"><font face="Calibri">Una aplicación de test de la capa de negocios (Services.Test)</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">La figura 3 muestra esta arquitectura.</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font face="Calibri" size="3"></font></span><span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span class="MsoIntenseEmphasis"><strong><em><font size="3"><font color="#4f81bd"><font face="Calibri">Figura 3: Arquitecura de la aplicación</font></font></font></em></strong></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Aquí empieza el concepto de desarrollo en TDD. <span> </span>Tenemos que tener una aplicación que compile siempre y que tenga un código correcto, pero que sea lo más fácil y rápido para implementar. Lo primero que hacemos entonces es compilar la solución que creamos y corregir los bugs que surjan. Luego tenemos que correr el analizador de código estático (FxCop) y corregir los warnings que este nos tira. Una vez que corregimos todo esto, tenemos nuestra primera versión correcta.</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Luego tenemos que volver a pensar, cuál es el foco? Qué es lo primero, lo más importante que quiero hacer? Ante esta pregunta, la respuesta que surgió es &ldquo;quiero mostrarle al cliente, el diseño de las pantallas que me pidió en papel en una aplicación&rdquo;. Según TDD esta pregunta tiene que trasladarse a un test. El test, en este caso es manual, es un test de diseño: Necesitamos 3 páginas web que cumplan con el diseño gráfico previamente consensuado.</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Ahora hay que pensar, &ldquo;Para lograr esto, cual es la forma más rápida y fácil?&rdquo;. La respuesta que se presentó es sorprendente y obvia: <strong>Exportar las vistas de Excel a HTML y pegarlas en 3 páginas Aspx cumple con este objetivo</strong>!!!</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Por lo tanto, creamos 3 páginas aspx (ver Figura 4) y exportamos las vistas a html y pegamos el código en estos archivos. Rápidamente concluímos una implementación que cumple con el primer test: Comparando las vistas eran idénticas a las que estaban en Excel. Nuevamente compilamos la aplicación y corrimos el FxCop para asegurarnos que no tenemos problemas. Esto se convirtió en nuestra segunda versión de la aplicación. Fijense que aunque mínimo, esta versión muestra un incremento y que se acerca un poco más al objetivo que buscamos (no perdimos el foco).</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font face="Calibri" size="3"></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><strong><em><font size="3"><font color="#4f81bd"><font face="Calibri"><span class="MsoIntenseEmphasis"><span>Figura 4: Las 3 vistas de la aplicaci</span>ón.</span><span class="MsoIntenseEmphasis"><span></span></span></font></font></font></em></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Luego, con un poco de ayuda de expertos, mejoramos el html, en lo que sería un primer <strong>refactor</strong> de la aplicación (la idea es que en el refactor se elimina código redundante y se mejorar atributos de calidad de la aplicación). En este caso, se limpió el código html generado y se creó un css style que evita repetir código y permite reducir los errores de escritura del html. La figura 5 muestra el diseño final.</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font face="Calibri" size="3"></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span class="MsoIntenseEmphasis"><span><strong><em><font size="3"><font color="#4f81bd"><font face="Calibri">Figura 5: Diseño de la vista de capacity luego del refactor.</font></font></font></em></strong></span></span></p>
<img src="http://feeds.feedburner.com/~r/jgarcia/~4/6HRdtZxGC3A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/jgarcia/2007/12/11/miyagi-dia-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blogs.southworks.net/jgarcia/2007/12/11/miyagi-dia-1/</feedburner:origLink></item>
		<item>
		<title>Controles en Silverlight 1.0 Parte I</title>
		<link>http://feeds.southworks.net/~r/jgarcia/~3/qy3Py8q1iZA/</link>
		<comments>http://blogs.southworks.net/jgarcia/2007/11/06/controles-en-silverlight-10/#comments</comments>
		<pubDate>Tue, 06 Nov 2007 19:37:00 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">/blogs/jgarcia/archive/2007/11/06/Controles-en-Silverlight--1.0.aspx</guid>
		<description><![CDATA[Introducci&#243;n Hoy les quiero mostrar una forma sencilla de hacer controles utilizando la tecnolog&#237;a Silverlight 1.0 (con&#160; una ayudita de JavaScript). Debido a la extensi&#243;n del documento voy a dividir la creaci&#243;n del control en 2 partes, una que muestre la creaci&#243;n del XAML de presentaci&#243;n y otra que muestre la l&#243;gica Javascript del control. [...]]]></description>
			<content:encoded><![CDATA[<h2 style="margin: 10pt 0in 0pt"><span><font size="4"><font color="#4f81bd"><font face="Cambria">Introducci&#243;n</font></font></font></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Hoy les quiero mostrar una forma sencilla de hacer controles utilizando la tecnolog&#237;a <a title="Silverlight" href="http://www.silverlight.net" target="_blank">Silverlight 1.0</a> (con<span>&#160; </span>una ayudita de JavaScript). Debido a la extensi&#243;n del documento voy a dividir la creaci&#243;n del control en 2 partes, una que muestre la creaci&#243;n del XAML de presentaci&#243;n y otra que muestre la l&#243;gica Javascript del control.</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Seguramente se preguntar&#225;n porque hacer controles en Silverlight 1.0 si en la versi&#243;n 1.1 es sencillo hacer controles utilizando C#. Estas son, en mi opini&#243;n, las ventajas:</font></font></span></p>
<p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 0.5in"><span style="font-family: wingdings"><span><font size="3">&#216;</font><span style="font: 7pt &#39;Times New Roman&amp;#39">&#160; </span></span></span><span><font size="3"><font face="Calibri">Primero, Silverlight 1.1<span>&#160; </span>requiere el Framework .Net versi&#243;n 3.0 instalado en la m&#225;quina servidor adem&#225;s de un Servidor que soporte ASP.Net. Silverlight 1.0 en cambio requiere solamente el plug-in de Silverlight instalado en la/s m&#225;quina/s cliente para funcionar. Esto permite que las aplicaciones en Silverlight 1.0 puedan ejecutarse en muchas m&#225;quinas sin la necesidad de instalar componentes adicionales (salvo el plug-in, que es necesario tambi&#233;n para la versi&#243;n 1.1) ni de modificar toda la aplicaci&#243;n para cambiar el look&amp;feel.</font></font></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in"><span style="font-family: wingdings"><span><font size="3">&#216;</font><span style="font: 7pt &#39;Times New Roman&amp;#39">&#160; </span></span></span><span><font size="3"><font face="Calibri">Segundo, Silverlight 1.0 se corre enteramente del lado cliente. Esto trae una enorme mejora en la performance de la aplicaci&#243;n. Y si bien con Ajax se logra lo mismo, Silverlight permite realizar con mucho menos esfuerzo componentes gr&#225;ficos muy interesantes.</font></font></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in"><span style="font-family: wingdings"><span><font size="3">&#216;</font><span style="font: 7pt &#39;Times New Roman&amp;#39">&#160; </span></span></span><span><font size="3"><font face="Calibri">Tercero, si planean hacer desarrollos basados en la plataforma .Net en el futuro (y especialmente en la rama de Foundation),<span>&#160; </span>migrar el look&amp;feel de su aplicaci&#243;n a Silverlight 1.0 es un excelente primer paso. Estos controles y los XAML pueden utilizarse sobre la aplicaci&#243;n actual y van a seguir siendo utilizables cuando se quiera migrar esa aplicaci&#243;n a nuevas tecnolog&#237;as.</font></font></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in"><span style="font-family: wingdings"><span><font size="3">&#216;</font><span style="font: 7pt &#39;Times New Roman&amp;#39">&#160; </span></span></span><span><font size="3"><font face="Calibri">Cuarto,<span>&#160; </span>es bueno hacer controles. Los controles son porciones de c&#243;digo reutilizables, encapsulan funcionalidades coherentes, tienen un comportamiento previsible y una larga lista de etc&#233;teras.</font></font></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 10pt 0.5in"><span style="font-family: wingdings"><span><font size="3">&#216;</font><span style="font: 7pt &#39;Times New Roman&amp;#39">&#160; </span></span></span><span><font size="3"><font face="Calibri">Quinto y no menos importante, provee todas las ventajas del entorno Silverlight-WPF (es multi-browser, se ejecuta puramente del lado del cliente, es multiplataforma ya que para funcionar interpreta el XAML mediante DLR y otra larga lista de etc&#233;teras).</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">En suma, Silverlight 1.0 puede ser implementado en su actual aplicaci&#243;n, con un m&#237;nimo esfuerzo y sin necesidad de cambiar nada m&#225;s que cambiar el look&amp;feel de las p&#225;ginas de su aplicaci&#243;n. Lo &#250;nico que requiere es un plug-in ActiveX para funcionar instalado del lado cliente y el esfuerzo requerido para estos cambios va a ser una inversi&#243;n para el crecimiento de su aplicaci&#243;n en un futuro no muy lejano.</font></font></span></p>
<h2 style="margin: 10pt 0in 0pt"><span><font size="4"><font color="#4f81bd"><font face="Cambria">Desarrollo del XAML</font></font></font></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Eleg&#237; hacer un control que simule el efecto de una gota de agua. No encontr&#233; ejemplos de esta animaci&#243;n en Silverlight y por eso me pareci&#243; interesante. Voy a utilizar el <a title="Expression Blend" href="http://www.microsoft.com/Expression/products/download.aspx?key=blend2preview" target="_blank">Microsoft Expression Blend</a> para hacer el xaml.&#160; Lo primero es generar<span>&#160;</span>un objeto elipse sin relleno de 12 pixels de width y 10 de heigth (aproximadamente, en el c&#243;digo de ejemplo est&#225; hecho a ojo),<span>&#160; </span>el borde se configura con un gradiente radial con 3 tonalidades, que empiece y termine con color blanco y en el medio con color negro. <span>&#160;</span>Tambi&#233;n configuramos el ancho de la l&#237;nea con valor 0 y la opacidad en un 30%. Copiamos 2 veces el objeto elipse y llamamos a las copias ElipseAgua, ElipseAgua1 y ElipseAgua2. Asegurarse que los 3 objetos est&#233;n centrados en un mismo punto de inicio (setear las propiedades Canvas.Left y Canvas.Top con los mismos valores).</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><a href="http://blogs.southworks.net/jgarcia/files/2008/06/vistaelipses.jpg"><img height="339" alt="Vista Elipses" src="http://blogs.southworks.net/jgarcia/files/2008/06/vistaelipses-thumb.jpg" width="450" border="0" /></a> </p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font face="Calibri"></font></span><span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;text-align: center" align="center"><font face="Calibri"><em><u><span style="font-size: 10pt">Figura 1</span></u></em><em><span style="font-size: 10pt">: Vista del Expression Blend con los elipses generados.</span></em></font></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Ahora hacemos una animaci&#243;n que modifique los Elipses para simular el movimiento que se produce cuando cae una gota de agua. Para eso generamos una nueva animaci&#243;n a la que llamamos TimelineAgua y elegimos en orden el ElipseAgua, ElipseAgua1 y ElipseAgua2. Grabamos en el ElipseAgua la posici&#243;n actual al comienzo de la animaci&#243;n y luego grabamos a los 2 segundos un movimiento estirando el objeto hasta cubrir todo el ancho del Canvas (teniendo en cuenta que tenga una forma de elipse y siempre manteni&#233;ndose centrado con respecto al centro original). Tambi&#233;n configuramos en ese momento la propiedad ancho de l&#237;nea a 0.5. Luego, 1 cuarto de segundo despu&#233;s, volvemos a grabar el ElipseAgua pero el &#250;nico cambio que hacemos es volver el ancho de l&#237;nea al valor 0. Repetimos la animaci&#243;n para el ElipseAgua1, pero comenzando la animaci&#243;n 1 segundo despu&#233;s que el caso anterior y terminando 1 segundo m&#225;s tarde y teniendo en cuenta estirar el objeto en una proporci&#243;n menor que el caso anterior. El cambio de la propiedad ancho de l&#237;nea a 0 debe durar un poco menos que 1 cuarto de segundo. Repetimos la animaci&#243;n para el caso ElipseAgua2 cambiando nuevamente el momento del inicio de la animaci&#243;n y el momento de finalizaci&#243;n. Deber&#237;a verse una animaci&#243;n similar a la que se muestra en la figura 2.</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><a href="http://blogs.southworks.net/jgarcia/files/2008/06/vistatimeline.jpg"><img height="338" alt="VistaTimeline" src="http://blogs.southworks.net/jgarcia/files/2008/06/vistatimeline-thumb.jpg" width="450" border="0" /></a> </p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font face="Calibri" size="3"></font></span><span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;text-align: center" align="center"><font face="Calibri"><em><u><span style="font-size: 10pt">Figura 2</span></u></em><em><span style="font-size: 10pt">: Vista del Expression Blend mostrando el Timeline de Animaci&#243;n.</span></em></font></p>
<div style="padding-right: 4pt;padding-left: 4pt;padding-bottom: 1pt;padding-top: 1pt">
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 10pt;padding-top: 0in"><font size="3"><font face="Calibri"><strong><span>Nota:</span></strong><span> Para hacer las animaciones recordar tener presionada la opci&#243;n de recording del timeline</span></font></font></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 10pt;padding-top: 0in"><font size="3"><font face="Calibri"><strong><span>Nota<span>&#160; </span>II:</span></strong><span> Recordar siempre mantener el mismo punto de centro para las 3 elipses</span></font></font></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 10pt;padding-top: 0in"><font size="3"><font face="Calibri"><strong><span>Nota III:</span></strong><span> Una vez finalizado el proceso de la animaci&#243;n hay que modificar el XAML agregando el par&#225;metro <strong>x:Name</strong> a cada uno de los Storyboard de la misma. Silverlight requiere que cada elemento Storyboard tenga un nombre propio que lo identifique. En este caso llamamos a los otros 2 storyboard con los nombres <strong><em>TimelineAgua1</em></strong> y <strong><em>TimelineAgua2</em></strong>. </span></font></font></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 10pt;padding-top: 0in"><font size="3"><font face="Calibri"><strong><span>Nota IV</span></strong><span>: Para hacer luego el control con el mismo XAML, vamos a achicar el tama&#241;o del canvas a las medidas Width=&quot;174&quot; y Height=&quot;68&quot;. </span></font></font></p>
</p></div>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri"></font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Para probar la animaci&#243;n cree una funci&#243;n start que vincul&#233; con el evento MouseLeftButtonDown del Canvas. El c&#243;digo es muy sencillo:</font></font></span></p>
<div style="padding-right: 4pt;padding-left: 4pt;padding-bottom: 1pt;padding-top: 1pt">
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in"><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39">function start(sender, args)</span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in"><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39">{</span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in"><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39"><span>&#160;&#160;&#160;&#160;&#160; </span>var elipse <span>&#160;</span>= sender.findName(&quot;ElipseAgua&quot;);</span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in"><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39"><span>&#160;&#160;&#160;&#160;&#160; </span>var elipse1 = sender.findName(&quot;ElipseAgua1&quot;);</span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in"><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39"><span>&#160;&#160;&#160;&#160;&#160; </span>var elipse2 = sender.findName(&quot;ElipseAgua2&quot;);</span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in"><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39"></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in"><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39"><span>&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39">elipse[&quot;Canvas.Left&quot;] <span>&#160;</span>= args.getPosition(null).x;</span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in"><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39"><span>&#160;&#160;&#160;&#160;&#160; </span>elipse[&quot;Canvas.Top&quot;] <span>&#160; </span>= args.getPosition(null).y;</span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in"><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39"><span>&#160;&#160;&#160;&#160;&#160; </span>elipse1[&quot;Canvas.Left&quot;] = args.getPosition(null).x;</span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in"><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39"><span>&#160;&#160;&#160;&#160;&#160; </span>elipse1[&quot;Canvas.Top&quot;] <span>&#160;</span>= args.getPosition(null).y;</span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in"><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39"><span>&#160;&#160;&#160;&#160;&#160; </span>elipse2[&quot;Canvas.Left&quot;] = args.getPosition(null).x;</span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in"><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39"><span>&#160;&#160;&#160;&#160;&#160; </span>elipse2[&quot;Canvas.Top&quot;] <span>&#160;</span>= args.getPosition(null).y;</span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in"><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39"></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in"><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39"><span>&#160;&#160;&#160;&#160;&#160; </span>sender.findName(&quot;TimelineAgua&quot;).begin();</span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in"><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39"><span>&#160;&#160;&#160;&#160;&#160; </span>sender.findName(&quot;TimelineAgua1&quot;).begin();</span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in"><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39"><span>&#160;&#160;&#160;&#160;&#160; </span>sender.findName(&quot;TimelineAgua2&quot;).begin();</span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in"><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39">}</span></p>
</p></div>
<img src="http://feeds.feedburner.com/~r/jgarcia/~4/qy3Py8q1iZA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/jgarcia/2007/11/06/controles-en-silverlight-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blogs.southworks.net/jgarcia/2007/11/06/controles-en-silverlight-10/</feedburner:origLink></item>
		<item>
		<title>Silverlight 1.0 Parte III</title>
		<link>http://feeds.southworks.net/~r/jgarcia/~3/bOYskdbpDEw/</link>
		<comments>http://blogs.southworks.net/jgarcia/2007/10/26/silverlight-10-parte-iii/#comments</comments>
		<pubDate>Fri, 26 Oct 2007 22:34:00 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">/blogs/jgarcia/archive/2007/10/26/Silverlight-1.0-Parte-III.aspx</guid>
		<description><![CDATA[Animaciones En Silverlight 1.0 se pueden generar animaciones a partir de UI Elements.   Para darle animación a un elemento tiene que setearse la propiedad Name del elemento. Esto sirve para identificar al elemento que se quiere animar. Se puede utilizar un Trigger para capturar un evento (en Silverlight 1.0 el único disponible es el load [...]]]></description>
			<content:encoded><![CDATA[<p><strong><span><font color="#4f81bd" face="Cambria" size="4">Animaciones</font></span><span></span> </strong>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">En Silverlight 1.0 se pueden generar animaciones a partir de UI Elements. <span> </span></font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Para darle animación a un elemento tiene que setearse la propiedad <strong>Name</strong> del elemento. Esto sirve para identificar al elemento que se quiere animar.</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Se puede utilizar un Trigger para capturar un evento (en Silverlight 1.0 el único disponible es el load de un Canvas). Se establece en el tag <strong>BeginStoryboard</strong> los pasos que va a realizar la animación.</font></font></span></p>
<div style="border: #999999 1pt solid;padding: 4pt">
<p class="MsoNormal" style="margin: 0in 0in 0pt;border: medium none;padding: 0in"><span style="font-size: 10pt;color: #000088;font-family: Consolas">&lt;</span><span style="font-size: 10pt;color: #893805;font-family: Consolas">Canvas</span><span style="font-size: 10pt;font-family: Consolas"></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;border: medium none;padding: 0in"><span style="font-size: 10pt;font-family: Consolas"><span>    </span><span style="color: #9e0000">xmlns</span><span style="color: #000088">=&#8221;http://schemas.microsoft.com/client/2007&#8243;</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;border: medium none;padding: 0in"><span style="font-size: 10pt;font-family: Consolas"><span>    </span><span style="color: #9e0000">xmlns:x</span><span style="color: #000088">=&#8221;http://schemas.microsoft.com/winfx/2006/xaml&#8221;&gt;</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;border: medium none;padding: 0in"><strong><span style="font-size: 10pt;font-family: Consolas"><span>  </span></span></strong><strong><span style="font-size: 10pt;color: #000088;font-family: Consolas">&lt;</span></strong><strong><span style="font-size: 10pt;color: #893805;font-family: Consolas">Canvas.Triggers</span></strong><strong><span style="font-size: 10pt;color: #000088;font-family: Consolas">&gt;</span></strong><strong><span style="font-size: 10pt;font-family: Consolas"></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;border: medium none;padding: 0in"><strong><span style="font-size: 10pt;font-family: Consolas"><span>    </span><span style="color: #000088">&lt;</span><span style="color: #893805">EventTrigger</span> <span style="color: #9e0000">RoutedEvent</span><span style="color: #000088">=&#8221;Canvas.Loaded&#8221;&gt;</span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;border: medium none;padding: 0in"><strong><span style="font-size: 10pt;font-family: Consolas"><span>      </span><span style="color: #000088">&lt;</span><span style="color: #893805">EventTrigger.Actions</span><span style="color: #000088">&gt;</span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;border: medium none;padding: 0in"><strong><span style="font-size: 10pt;font-family: Consolas"><span>        </span><span style="color: #000088">&lt;</span><span style="color: #893805">BeginStoryboard</span><span style="color: #000088">&gt;</span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;border: medium none;padding: 0in"><span style="font-size: 10pt;font-family: Consolas"><span>          </span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;border: medium none;padding: 0in"><span style="font-size: 10pt;font-family: Consolas"><span>          </span><span style="color: #000088">&lt;!&#8211;</span><span style="color: #005200"> Insert Storyboard here. </span><span style="color: #000088">&#8211;&gt;</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;border: medium none;padding: 0in"><strong><span style="font-size: 10pt;font-family: Consolas"><span>        </span><span style="color: #000088">&lt;/</span><span style="color: #893805">BeginStoryboard</span><span style="color: #000088">&gt;</span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;border: medium none;padding: 0in"><strong><span style="font-size: 10pt;font-family: Consolas"><span>      </span><span style="color: #000088">&lt;/</span><span style="color: #893805">EventTrigger.Actions</span><span style="color: #000088">&gt;</span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;border: medium none;padding: 0in"><strong><span style="font-size: 10pt;font-family: Consolas"><span>    </span><span style="color: #000088">&lt;/</span><span style="color: #893805">EventTrigger</span><span style="color: #000088">&gt;</span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;border: medium none;padding: 0in"><strong><span style="font-size: 10pt;font-family: Consolas"><span>  </span><span style="color: #000088">&lt;/</span><span style="color: #893805">Canvas.Triggers</span><span style="color: #000088">&gt;</span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;border: medium none;padding: 0in"><span style="font-size: 10pt;font-family: Consolas"><span>  </span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;border: medium none;padding: 0in"><span style="font-size: 10pt;font-family: Consolas"><span>  </span><span style="color: #000088">&lt;</span><span style="color: #893805">Ellipse</span> <span style="color: #9e0000">x:Name</span><span style="color: #000088">=&#8221;ellipse&#8221;</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;border: medium none;padding: 0in"><span style="font-size: 10pt;font-family: Consolas"><span>      </span><span style="color: #9e0000">Height</span><span style="color: #000088">=&#8221;20&#8243;</span> <span style="color: #9e0000">Width</span><span style="color: #000088">=&#8221;20&#8243;</span> <span style="color: #9e0000">Canvas.Left</span><span style="color: #000088">=&#8221;30&#8243;</span> <span style="color: #9e0000">Canvas.Top</span><span style="color: #000088">=&#8221;30&#8243;</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;border: medium none;padding: 0in"><span style="font-size: 10pt;font-family: Consolas"><span>      </span></span><span style="font-size: 10pt;color: #9e0000;font-family: Consolas">Fill</span><span style="font-size: 10pt;color: #000088;font-family: Consolas">=&#8221;black&#8221;/&gt;</span><span style="font-size: 10pt;font-family: Consolas"></span></p>
<p class="MsoNormal" style="margin: 0in 0in 3.75pt;border: medium none;padding: 0in"><span style="font-size: 10pt;color: #000088;font-family: Consolas">&lt;/</span><span style="font-size: 10pt;color: #893805;font-family: Consolas">Canvas</span><span style="font-size: 10pt;color: #000088;font-family: Consolas">&gt;</span><span style="font-size: 10pt;font-family: Consolas"></span></p>
</div>
<div style="padding-right: 0in;padding-left: 0in;padding-bottom: 1pt;padding-top: 1pt">
<p class="MsoNormal" style="margin: 0in 0in 10pt;border: medium none;padding: 0in"><font face="Calibri"><strong><span style="font-size: 9pt">Figura</span></strong><span style="font-size: 9pt">: Esqueleto de un archivo XAML que ejecuta una animación (fuente QuickStar Silverlight 1.0)</span></font></p>
</div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border: medium none">
<tbody>
<tr>
<td colspan="2" style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 6.65in;padding-top: 0in;border: black 1pt solid" valign="top" width="638">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Tipos de Animaciones</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">DoubleAnimation</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><code><span style="font-size: 10pt">Indica que se quiere animar una propiedad del objeto que es de tipo double.</span></code></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">ColorAnimation</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Indica que se quiere animar una de las propiedades del objeto que es de tipo color.</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">PointAnimation</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Indica que se quiere animar una de las propiedades del objeto que es un punto.</font></font></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font face="Calibri" size="3"></font></span></p>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border: medium none">
<tbody>
<tr>
<td colspan="2" style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 6.65in;padding-top: 0in;border: black 1pt solid" valign="top" width="638">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Propiedades</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">TargetName</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><code><span style="font-size: 10pt">Indica el nombre del objeto a animar</span></code></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">TargetProperty</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Indica la propiedad que se quiere animar</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">From</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Indica el origen de la propiedad del objeto a animar. Por defecto es el valor actual de la propiedad</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">To</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Indica el destino de la propiedad del objeto a animar.</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">By</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Especifica un offset para la propiedad del objeto a animar (por ejemplo en posiciones, puede indicar avanzar de a 2 posiciones).</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Duration</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font face="Calibri" size="3">Indica la duración de la animación (en formato hora:min:seg). <strong>OJO: poner un número indica días</strong>!!. Este atributo también puede setearse con 2 valores especiales </font></span><code><span style="font-size: 10pt">"Forever"</span></code><span style="font-size: 10pt;font-family: 'Verdana','sans-serif'"> y </span><code><span style="font-size: 10pt">"Automatic"</span></code><span style="font-size: 10pt;font-family: 'Verdana','sans-serif'">.</span><span><font size="3"><font face="Calibri"> Forever indica que la animación no termina nunca. Automatic indica que la animación es instantánea (este es el valor por defecto)</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">BeginTime</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Indica el comienzo de la animación (a partir del momento que ocurre el evento, indica cuanto tiempo hay que esperar). El formato es el mismo que el atributo Duration</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">FillBehavior</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Indica si la propiedad del objeto animada vuelve a su valor anterior a la animación o si permanece en el valor final de la animación.<span>  </span>Los valores son Stop y HoldEnd (respectivamente). Por defecto el valor es HoldEnd.</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><font face="Calibri" size="3">RepeatBehavior</font></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Indica cuantas veces se repite la animación. Puede tener 3 tipos de valores:</font></font></span></p>
<p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 0.75in"><span><span><font face="Calibri" size="3">-</font><span style="font: 7pt 'Times New Roman'">          </span></span></span><span><font size="3"><font face="Calibri">Forever (que indica que la animación se repite indefinidamente)</font></font></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.75in"><span><span><font face="Calibri" size="3">-</font><span style="font: 7pt 'Times New Roman'">          </span></span></span><span><font size="3"><font face="Calibri">Un tiempo finito (formato como el campo Duration). Lo que indica que la animación se repite cada cierto intervalo finito de tiempo</font></font></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 0pt 0.75in"><span><span><font face="Calibri" size="3">-</font><span style="font: 7pt 'Times New Roman'">          </span></span></span><span><font size="3"><font face="Calibri">Un número de iteraciones (formato <em>number</em>x) que indica que la animación se repite una cantidad finita de veces. </font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Por defecto el valor es 1x.</font></font></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font face="Calibri" size="3"></font></span></p>
<h2 style="margin: 10pt 0in 0pt"><span><font color="#4f81bd" face="Cambria" size="4">Scripting y eventos de mouse</font></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Se pueden capturar eventos del mouse y manejarlos mediante scripting. <span> </span>Para esto se tiene que acceder a los objetos (el plug-in, el canvas y los objetos contenidos en el canvas) en las funciones javascript y cambiar el valor de sus propiedades. También se pueden crear en forma dinámica objetos manipulando el XAML y controlar animaciones también mediante scripting.</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Todos los objetos pueden capturar eventos del mouse.</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Para acceder a un objeto en javascript existen 3 posibilidades:</font></font></span></p>
<p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 0.75in"><span><span><font face="Calibri" size="3">-</font><span style="font: 7pt 'Times New Roman'">          </span></span></span><font size="3"><font face="Calibri"><strong><u><span>Que sea pasado como parámetro</span></u></strong><span>: Cuando se indican parámetros en las funciones que se utilizan para manejar el evento, el primer parámetro siempre es el objeto que capturó el evento (sender).</span></font></font></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.75in"><span><span><font face="Calibri" size="3">-</font><span style="font: 7pt 'Times New Roman'">          </span></span></span><font size="3"><font face="Calibri"><strong><u><span>Qué esté contenido dentro del objeto pasado como parámetro</span></u></strong><span>: En ese caso se utiliza sender.findName(&ldquo;<em>nombreObjeto</em>&rdquo;). El objeto a buscar debe tener seteada la propiedad Name.</span></font></font></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 10pt 0.75in"><span><span><font face="Calibri" size="3">-</font><span style="font: 7pt 'Times New Roman'">          </span></span></span><font size="3"><font face="Calibri"><strong><u><span>Que se esté buscando el objeto plug-in: </span></u></strong><span>En este caso puede obtenerse mediante el método <strong>getHost</strong>() del objeto sender (siempre que exista un objeto sender) o invocando al método <strong>getElementById</strong>.</span></font></font></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Dos métodos interesantes son:</font></font></span></p>
<p class="MsoListParagraph" style="margin: 0in 0in 10pt 0.75in"><span><span><font face="Calibri" size="3">-</font><span style="font: 7pt 'Times New Roman'">          </span></span></span><font size="3"><font face="Calibri"><strong><span>sender[<em>&ldquo;attachedPropertyName&rdquo;]</em></span></strong><em><span>:<span>  </span></span></em><span>Permite manipular las propiedades adjuntas del objeto sender . Por ejemplo:</span></font></font></p>
<div style="margin-left: 0.5in;margin-right: 0in;border: #999999 1pt solid;padding: 4pt">
<pre style="margin-left: 0.25in;border: medium none;padding: 0in"><span style="font-family: 'Calibri','sans-serif'"><span>-<span style="font: 7pt 'Times New Roman'">     </span></span></span><span class="code-blue1"><span style="font-family: Consolas"><font color="#000088">function</font></span></span><span style="font-family: Consolas"> <span class="code-black">changelocation(sender,</span> <span class="code-black">args)</span> <span class="code-black">{</span></span></pre>
<pre style="margin-left: 0.25in;border: medium none;padding: 0in"><span style="font-family: 'Calibri','sans-serif'"><span>-<span style="font: 7pt 'Times New Roman'">     </span></span></span><span style="font-family: Consolas"><span>    </span></span></pre>
<pre style="margin-left: 0.25in;border: medium none;padding: 0in"><span style="font-family: 'Calibri','sans-serif'"><span>-<span style="font: 7pt 'Times New Roman'">     </span></span></span><span style="font-family: Consolas"><span>    </span><span class="code-black">sender<strong>[</strong></span><span class="code-red1"><strong><font color="#9e0000">"Canvas.Top"</font></strong></span><span class="code-black"><strong>]</strong></span><strong><span style="font-family: Consolas"> </span></strong><span class="code-black"><strong>=</strong></span><strong><span style="font-family: Consolas"> </span></strong><span class="code-black"><strong>70;</strong></span></span></pre>
<pre style="margin-left: 0.25in;border: medium none;padding: 0in"><span style="font-family: 'Calibri','sans-serif'"><span>-<span style="font: 7pt 'Times New Roman'">     </span></span></span><span class="code-black"><span style="font-family: Consolas">}</span></span><span style="font-family: Consolas"></span></pre>
</div>
<p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 0.75in"><span><font face="Calibri" size="3"></font></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 10pt 0.75in"><span class="code-black"><span><span><font face="Calibri" size="3">-</font><span style="font: 7pt 'Times New Roman'">          </span></span></span></span><font size="3"><font face="Calibri"><strong><u><span>createFromXAML</span></u></strong><span>: Permite modificar el archivo XAML dinámicamente. Se invoca llamando al objeto </span></font><span class="code-black"><span style="font-family: Consolas">plug-in.content.createFromXaml.</span></span><font face="Calibri"><span class="code-black"><span> A continuación se ve el código de una función que agrega un elipse en la pantalla:</span></span><span class="code-black"><span></span></span></font></font></p>
<div style="margin-left: 0.5in;margin-right: 0in;border: #999999 1pt solid;padding: 4pt">
<pre style="margin-left: 0.25in;border: medium none;padding: 0in"><span style="font-family: 'Calibri','sans-serif'"><span>-<span style="font: 7pt 'Times New Roman'">     </span></span></span><span class="code-blue1"><span style="font-family: Consolas"><font color="#000088">function</font></span></span><span style="font-family: Consolas"> <span class="code-black">createEllipse(sender,</span> <span class="code-black">args)</span> <span class="code-black">{</span></span></pre>
<pre style="margin-left: 0.25in;border: medium none;padding: 0in"><span style="font-family: 'Calibri','sans-serif'"><span>-<span style="font: 7pt 'Times New Roman'">     </span></span></span><span style="font-family: Consolas"><span>    </span></span></pre>
<pre style="margin-left: 0.25in;border: medium none;padding: 0in"><span style="font-family: 'Calibri','sans-serif'"><span>-<span style="font: 7pt 'Times New Roman'">     </span></span></span><span style="font-family: Consolas"><span>    </span><span class="code-blue1"><font color="#000088">var</font></span> <span class="code-black">slControl</span> <span class="code-black">=</span> <span class="code-black">sender.getHost();</span></span></pre>
<pre style="margin-left: 0.25in;border: medium none;padding: 0in"><span style="font-family: 'Calibri','sans-serif'"><span>-<span style="font: 7pt 'Times New Roman'">     </span></span></span><span style="font-family: Consolas"><span>    </span><span class="code-blue1"><font color="#000088">var</font></span> <span class="code-black">e</span> <span class="code-black">=</span> </span></pre>
<pre style="margin-left: 0.25in;border: medium none;padding: 0in"><span style="font-family: 'Calibri','sans-serif'"><span>-<span style="font: 7pt 'Times New Roman'">     </span></span></span><span style="font-family: Consolas"><span>        </span><span class="code-black">slControl.content.createFromXaml(</span></span></pre>
<pre style="margin-left: 0.25in;border: medium none;padding: 0in"><span style="font-family: 'Calibri','sans-serif'"><span>-<span style="font: 7pt 'Times New Roman'">     </span></span></span><span style="font-family: Consolas"><span>            </span><span class="code-red1"><font color="#9e0000">&#39;&#39;</font></span><span class="code-black">);</span></span></pre>
<pre style="margin-left: 0.25in;border: medium none;padding: 0in"><span style="font-family: 'Calibri','sans-serif'"><span>-<span style="font: 7pt 'Times New Roman'">     </span></span></span><span style="font-family: Consolas"><span>    </span><span class="code-blue1"><font color="#000088">var</font></span> <span class="code-black">canvas</span> <span class="code-black">=</span> <span class="code-black">sender;</span></span></pre>
<pre style="margin-left: 0.25in;border: medium none;padding: 0in"><span style="font-family: 'Calibri','sans-serif'"><span>-<span style="font: 7pt 'Times New Roman'">     </span></span></span><span style="font-family: Consolas"><span>    </span><span class="code-black">canvas.<strong>children.Add(e)</strong>;</span></span></pre>
<pre style="margin-left: 0.25in;border: medium none;padding: 0in"><span style="font-family: 'Calibri','sans-serif'"><span>-<span style="font: 7pt 'Times New Roman'">     </span></span></span><span class="code-black"><span style="font-family: Consolas">}</span></span><span style="font-family: Consolas"></span></pre>
</div>
<p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 0.75in"><span><font face="Calibri" size="3"></font></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 10pt 0.75in"><span><font face="Calibri" size="3"></font></span></p>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border: medium none">
<tbody>
<tr>
<td colspan="2" style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 6.65in;padding-top: 0in;border: black 1pt solid" valign="top" width="638">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Eventos de mouse</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 115.65pt;padding-top: 0in" valign="top" width="154">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">MouseLeftButtonDown</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 363.15pt;padding-top: 0in" valign="top" width="484">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><code><span style="font-size: 10pt">Se dispara cuando se presiona el botón izquierdo del mouse sobre el elemento que contiene el handler del evento</span></code></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 115.65pt;padding-top: 0in" valign="top" width="154">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">MouseLeftButtonUp</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 363.15pt;padding-top: 0in" valign="top" width="484">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font face="Calibri" size="3">Se dispara cuando se suelta el botón izquierdo del mouse </font></span><code><span style="font-size: 10pt">sobre el elemento que contiene el handler del evento</span></code><span></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 115.65pt;padding-top: 0in" valign="top" width="154">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">MouseEnter</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 363.15pt;padding-top: 0in" valign="top" width="484">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font face="Calibri" size="3">Se dispara cuando el cursor se posiciona </font></span><code><span style="font-size: 10pt">sobre el elemento que contiene el handler del evento</span></code><span></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 115.65pt;padding-top: 0in" valign="top" width="154">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">MouseLeave</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 363.15pt;padding-top: 0in" valign="top" width="484">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font face="Calibri" size="3">Se dispara cuando el cursor deja de estar posicionado </font></span><code><span style="font-size: 10pt">sobre el elemento que contiene el handler del evento</span></code><span></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 115.65pt;padding-top: 0in" valign="top" width="154">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">MouseMove</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 363.15pt;padding-top: 0in" valign="top" width="484">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font face="Calibri" size="3">Se dispara cuando el cursor se mueve estando posicionado </font></span><code><span style="font-size: 10pt">sobre el elemento que contiene el handler del evento</span></code><span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font face="Calibri" size="3"></font></span></p>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border: medium none">
<tbody>
<tr>
<td colspan="2" style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 6.65in;padding-top: 0in;border: black 1pt solid" valign="top" width="638">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Otros Eventos</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 115.65pt;padding-top: 0in" valign="top" width="154">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Loaded</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 363.15pt;padding-top: 0in" valign="top" width="484">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><code><span style="font-size: 10pt">Se dispara cuando se carga un elemento.</span></code></p>
</td>
</tr>
</tbody>
</table>
<img src="http://feeds.feedburner.com/~r/jgarcia/~4/bOYskdbpDEw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/jgarcia/2007/10/26/silverlight-10-parte-iii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blogs.southworks.net/jgarcia/2007/10/26/silverlight-10-parte-iii/</feedburner:origLink></item>
		<item>
		<title>Silverlight 1.0 Parte II</title>
		<link>http://feeds.southworks.net/~r/jgarcia/~3/KptbVeC5gzg/</link>
		<comments>http://blogs.southworks.net/jgarcia/2007/10/19/silverlight-10-parte-ii/#comments</comments>
		<pubDate>Fri, 19 Oct 2007 19:59:00 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">/blogs/jgarcia/archive/2007/10/19/Silverlight-1.0-Parte-II.aspx</guid>
		<description><![CDATA[El objeto Canvas El objeto &#8220;Canvas&#8221; puede contener muchos objetos que representan UIElements (son objetos que se muestran en pantalla). Se pueden construir figuras geométricas y ubicarlas con referencia al objeto Canvas que las contiene. Además un objeto Canvas puede contener otros objetos Canvas. Elementos geométricos Ellipse Representa un círculo en pantalla Rectangle Representa un rectángulo Line Representa una [...]]]></description>
			<content:encoded><![CDATA[<h2 style="margin: 10pt 0in 0pt"><span><font color="#4f81bd" face="Cambria" size="4">El objeto Canvas</font></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">El objeto &ldquo;Canvas&rdquo; puede contener muchos objetos que representan UIElements (son objetos que se muestran en pantalla). Se pueden construir figuras geométricas y ubicarlas con referencia al objeto Canvas que las contiene. Además un objeto Canvas puede contener otros objetos Canvas.</font></font></span></p>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border: medium none">
<tbody>
<tr>
<td colspan="2" style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 6.2in;padding-top: 0in;border: black 1pt solid" valign="top" width="595">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Elementos geométricos</font></font></span></p>
</td>
</tr>
<tr style="height: 11.65pt">
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 79.8pt;padding-top: 0in;height: 11.65pt" valign="top" width="106">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Ellipse</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 366.6pt;padding-top: 0in;height: 11.65pt" valign="top" width="489">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Representa un círculo en pantalla</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 79.8pt;padding-top: 0in" valign="top" width="106">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Rectangle</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 366.6pt;padding-top: 0in" valign="top" width="489">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Representa un rectángulo</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 79.8pt;padding-top: 0in" valign="top" width="106">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Line</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 366.6pt;padding-top: 0in" valign="top" width="489">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Representa una línea</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 79.8pt;padding-top: 0in" valign="top" width="106">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Polyline</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 366.6pt;padding-top: 0in" valign="top" width="489">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Representa un conjunto de líneas unidas entre si</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 79.8pt;padding-top: 0in" valign="top" width="106">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Polygon</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 366.6pt;padding-top: 0in" valign="top" width="489">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Representa un polígono</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 79.8pt;padding-top: 0in" valign="top" width="106">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Path</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 366.6pt;padding-top: 0in" valign="top" width="489">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Representa figuras no geométricas (Ver en el SDK <em>Path Markup Syntax)</em></font></font></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font face="Calibri" size="3"></font></span></p>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border: medium none">
<tbody>
<tr>
<td colspan="2" style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.7in;padding-top: 0in;border: black 1pt solid" valign="top" width="547">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Propiedades</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 0.95in;padding-top: 0in" valign="top" width="91">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Aplica a</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 76.4pt;padding-top: 0in" valign="top" width="102">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Canvas.Left</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 334pt;padding-top: 0in" valign="top" width="445">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">La posición de un objeto con respecto al margen izquierdo del Canvas</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 0.95in;padding-top: 0in" valign="top" width="91">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Todos</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 76.4pt;padding-top: 0in" valign="top" width="102">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Canvas.ZOrder</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 334pt;padding-top: 0in" valign="top" width="445">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">La posición de un objeto en cuanto al eje de referencia Z con respecto a otros objetos que se encuentran contenidos en el Canvas.</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 0.95in;padding-top: 0in" valign="top" width="91">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Todos</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 76.4pt;padding-top: 0in" valign="top" width="102">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">With</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 334pt;padding-top: 0in" valign="top" width="445">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Ancho de los objetos</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 0.95in;padding-top: 0in" valign="top" width="91">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Rectangle</font></font></span></p>
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Ellipse</font></font></span></p>
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Canvas</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 76.4pt;padding-top: 0in" valign="top" width="102">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Heigth</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 334pt;padding-top: 0in" valign="top" width="445">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Alto de los objetos</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 0.95in;padding-top: 0in" valign="top" width="91">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Rectangle</font></font></span></p>
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Ellipse</font></font></span></p>
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Canvas</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 76.4pt;padding-top: 0in" valign="top" width="102">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Background</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 334pt;padding-top: 0in" valign="top" width="445">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Color de Fondo del objeto</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 0.95in;padding-top: 0in" valign="top" width="91">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Todos</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 76.4pt;padding-top: 0in" valign="top" width="102">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Storke</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 334pt;padding-top: 0in" valign="top" width="445">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Representa el color del borde de un elemento</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 0.95in;padding-top: 0in" valign="top" width="91">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Rectangle</font></font></span></p>
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Ellipse</font></font></span></p>
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Line</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 76.4pt;padding-top: 0in" valign="top" width="102">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">StrokeTickness</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 334pt;padding-top: 0in" valign="top" width="445">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Representa el ancho del borde de un elemento</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 0.95in;padding-top: 0in" valign="top" width="91">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Rectangle</font></font></span></p>
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Ellipse</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 76.4pt;padding-top: 0in" valign="top" width="102">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">RadiusX &#8211; RadiusY</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 334pt;padding-top: 0in" valign="top" width="445">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Sirve para ajustar el redondeo de los bordes.</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 0.95in;padding-top: 0in" valign="top" width="91">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Rectangle</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 76.4pt;padding-top: 0in" valign="top" width="102">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">X1, Y1, X2, Y2</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 334pt;padding-top: 0in" valign="top" width="445">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Los puntos iniciales y finales del en coordenadas cartesianas</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 0.95in;padding-top: 0in" valign="top" width="91">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Line</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 76.4pt;padding-top: 0in" valign="top" width="102">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Points</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 334pt;padding-top: 0in" valign="top" width="445">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Puntos de referencia de una figura</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 0.95in;padding-top: 0in" valign="top" width="91">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Polygon</font></font></span></p>
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Polyline</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 76.4pt;padding-top: 0in" valign="top" width="102">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Data</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 334pt;padding-top: 0in" valign="top" width="445">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Atributo para enviar información de formas</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 0.95in;padding-top: 0in" valign="top" width="91">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Path</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 76.4pt;padding-top: 0in" valign="top" width="102">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Fill</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 334pt;padding-top: 0in" valign="top" width="445">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Color de relleno de un objeto</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 0.95in;padding-top: 0in" valign="top" width="91">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Rectangle</font></font></span></p>
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Ellipse</font></font></span></p>
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Polygon</font></font></span></p>
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Polyline</font></font></span></p>
</td>
</tr>
</tbody>
</table>
<p><span><font face="Calibri" size="3"><br />
<h2 style="margin: 10pt 0in 0pt"><a name="_Toc179089831" title="_Toc179089831"></a><span><font color="#4f81bd" face="Cambria" size="4">Dibujar y pintar</font></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Se utilizan las propiedades de brush para pintar los objetos geométricos. Se pueden </font></font></span><span><font size="3"><font face="Calibri">colorear utilizando gradientes (permite colorear un mismo objeto con distintos colores).</font></font></span></p>
<p></font></span><br />
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border: medium none">
<tbody>
<tr>
<td colspan="2" style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 6.65in;padding-top: 0in;border: black 1pt solid" valign="top" width="638">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Propiedades para relleno de objetos</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 239.4pt;padding-top: 0in" valign="top" width="319">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><strong><span class="api-name1"><span style="font-size: 10pt;font-family: 'Verdana','sans-serif'">SolidColorBrush</span></span><span></span></strong></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 239.4pt;padding-top: 0in" valign="top" width="319">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Rellena un objeto con una color sólido</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 239.4pt;padding-top: 0in" valign="top" width="319">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><strong><span class="api-name1"><span style="font-size: 10pt;font-family: 'Verdana','sans-serif'">LinearGradientBrush</span></span><span></span></strong></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 239.4pt;padding-top: 0in" valign="top" width="319">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Rellena con una transición de colores gradual que se separan mediante líneas. Para detener el avance de un color se pueden indicar <strong>GradientStop</strong>. </font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 239.4pt;padding-top: 0in" valign="top" width="319">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><strong><span class="api-name1"><span style="font-size: 10pt;font-family: 'Verdana','sans-serif'">RadialGradientBrush</span></span><span></span></strong></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 239.4pt;padding-top: 0in" valign="top" width="319">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Rellena con una transición de colores gradual que se separa formando círculos. Para detener el avance de un color se pueden indicar <strong>GradientStop</strong>. Además se puede setear el centro de la figura circular con las propiedades <span class="api-name1"><strong>GradientOrigin</strong></span>, <span class="api-name1"><strong>Center</strong></span>, <span class="api-name1"><strong>RadiusX</strong></span>, and <strong><span class="api-name1">RadiusY</span></strong></font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 239.4pt;padding-top: 0in" valign="top" width="319">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><strong><span class="api-name1"><span style="font-size: 10pt;font-family: 'Verdana','sans-serif'">ImageBrush</span></span><span></span></strong></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 239.4pt;padding-top: 0in" valign="top" width="319">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Rellena un objeto con una imagen</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 239.4pt;padding-top: 0in" valign="top" width="319">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><strong><span class="api-name1"><span style="font-size: 10pt;font-family: 'Verdana','sans-serif'">VideoBrush</span></span><span></span></strong></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 239.4pt;padding-top: 0in" valign="top" width="319">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Rellena un objeto con un video</font></font></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font face="Calibri" size="3"></font></span></p>
<h2 style="margin: 10pt 0in 0pt"><a name="_Toc179089832" title="_Toc179089832"></a><span><font color="#4f81bd" face="Cambria" size="4">Propiedades Gráficas comunes</font></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Se puede manejar la opacidad de las figuras (tanto de toda la figura como utilizando gradientes).  También se puede usar la propiedad Clip (que permite mostrar una parte de una figura).<span>  </span>Y utilizar Render Transform que es básicamente redibujar las imágenes (por ejemplo, un rectángulo se convierte en un rombo, etc).</font></font></span></p>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border: medium none">
<tbody>
<tr>
<td colspan="2" style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 6.65in;padding-top: 0in;border: black 1pt solid" valign="top" width="638">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Propiedades</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Opacity</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Maneja la opacidad de un objeto</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Opacity Mask</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Permite setear la opacidad de ciertas partes de un objeto. Para ello utiliza un objeto al que le setea la propiedad Brush logrando que el mismo se superponga sobre el objeto al que se le quiere cambiar la opacidad. </font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Clip</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Permite solapar un objeto para que sólo se vea una porción del mismo. Hay que usar un objeto Geométrico para definir que parte del objeto se quiere mostrar</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">RenderTransform</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Propiedad para renderizar imágenes. Utiliza las propiedades RotateTransform, SkewTransform, ScaleTransform, TranslateTransform.</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Rotate Transform</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Rota una imagen sobre su eje.</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Skew Transform</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Estira la imagen sobre el eje X o el Y</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">ScaleTransform</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Cambia la escala de la imagen tanto en el eje X como en el Y</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">TransalteTransform</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Traslada un objeto en forma horizontal o vertical</font></font></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font face="Calibri" size="3"></font></span></p>
<h2 style="margin: 10pt 0in 0pt"><a name="_Toc179089833" title="_Toc179089833"></a><span><font color="#4f81bd" face="Cambria" size="4">Imagenes</font></span><span></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">La imagen se carga mediante el tag Image.</font></font></span></p>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border: medium none">
<tbody>
<tr>
<td colspan="2" style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 6.65in;padding-top: 0in;border: black 1pt solid" valign="top" width="638">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Propiedades</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Source</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Indica la fuente donde se encuentra la imagen.</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Stretch</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Acomoda una imagen dentro de la porción del Canvas que lo contiene. Puede setearse con los valores <strong>Fill, None o Uniform</strong>.</font></font></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font face="Calibri" size="3"></font></span></p>
<h2 style="margin: 10pt 0in 0pt"><a name="_Toc179089834" title="_Toc179089834"></a><span><font color="#4f81bd" face="Cambria" size="4">Texto</font></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Se puede darle formato a un texto (tamaño de letra, color, screcht, etc). Pueden aplicarse las propiedades generales de UI Elements (Opacidad, Clip, etc). Se utiliza un tag TextBlock para indicar un bloque de texto.</font></font></span></p>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border: medium none">
<tbody>
<tr>
<td colspan="2" style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 6.65in;padding-top: 0in;border: black 1pt solid" valign="top" width="638">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Propiedades</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">FontSize</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Tamaño de letra</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">FontStyle</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Estilo (Normal o Italic)</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">FontStretch</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><code><span style="font-size: 10pt">Como se acomoda el texto dentro de la porción del Canvas que lo contiene. Las opciones son UltraCondensed</span></code><span style="font-size: 10pt;font-family: 'Verdana','sans-serif'">, </span><code><span style="font-size: 10pt">ExtraCondensed</span></code><span style="font-size: 10pt;font-family: 'Verdana','sans-serif'">, </span><code><span style="font-size: 10pt">Condensed</span></code><span style="font-size: 10pt;font-family: 'Verdana','sans-serif'">, </span><code><span style="font-size: 10pt">SemiCondensed</span></code><span style="font-size: 10pt;font-family: 'Verdana','sans-serif'">, </span><code><span style="font-size: 10pt">Normal</span></code><span style="font-size: 10pt;font-family: 'Verdana','sans-serif'">, </span><code><span style="font-size: 10pt">Medium</span></code><span style="font-size: 10pt;font-family: 'Verdana','sans-serif'">, </span><code><span style="font-size: 10pt">SemiExpanded</span></code><span style="font-size: 10pt;font-family: 'Verdana','sans-serif'">, </span><code><span style="font-size: 10pt">Expanded</span></code><span style="font-size: 10pt;font-family: 'Verdana','sans-serif'">, </span><code><span style="font-size: 10pt">ExtraExpanded</span></code><span style="font-size: 10pt;font-family: 'Verdana','sans-serif'">, or </span><code><span style="font-size: 10pt">UltraExpanded</span></code><span></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">FontWeigth</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font face="Calibri" size="3"></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">FontFamily</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">La familia de la letra</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Foreground</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Brush del texto (cómo se rellena). Puede utilizarse todas las opciones de Brush.</font></font></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font face="Calibri" size="3"></font></span></p>
<h2 style="margin: 10pt 0in 0pt"><a name="_Toc179089835" title="_Toc179089835"></a><span><font color="#4f81bd" face="Cambria" size="4">Media (audio y video)</font></span><span></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">Se puede agregar video en formato WMV. Como es la versión 1.0, se tienen que generar los scripts necesarios para manipular el video (stop, pause, play). Se puede ver el video en pantalla completa. Se utiliza un tag MediaElement para indicar el objeto multimedia.</font></font></span></p>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border: medium none">
<tbody>
<tr>
<td colspan="2" style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 6.65in;padding-top: 0in;border: black 1pt solid" valign="top" width="638">
<p align="center" class="MsoNormal" style="margin: 0in 0in 0pt;text-align: center"><span><font size="3"><font face="Calibri">Propiedades</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Source</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><code><span style="font-size: 10pt">Indica la fuente donde se encuentra el video. Solo se reproduce formato WMV.</span></code></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Stretch</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><code><span style="font-size: 10pt">Como se acomoda el video dentro de la porción del Canvas que lo contiene. Las opciones son None</span></code><span style="font-size: 10pt;font-family: 'Verdana','sans-serif'">, </span><code><span style="font-size: 10pt">Uniform</span></code><span style="font-size: 10pt;font-family: 'Verdana','sans-serif'">, </span><code><span style="font-size: 10pt">UniformToFill</span></code><span style="font-size: 10pt;font-family: 'Verdana','sans-serif'"> y </span><code><span style="font-size: 10pt">Fill. Por defecto se setea en Fill.</span></code><span></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">IsMuted</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Setea si el video es o no mudo. Valores posibles true o false. Por defecto está en false.</font></font></span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 1.45in;padding-top: 0in" valign="top" width="139">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Volume</font></font></span></p>
</td>
<td style="padding-right: 5.4pt;padding-left: 5.4pt;padding-bottom: 0in;width: 5.2in;padding-top: 0in" valign="top" width="499">
<p class="MsoNormal" style="margin: 0in 0in 0pt"><span><font size="3"><font face="Calibri">Setea el volumen del video. Los valores van del 0 al 1 siendo el 1 el valor más alto. Por defecto el volumen es 0.5.</font></font></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span></span></p>
<img src="http://feeds.feedburner.com/~r/jgarcia/~4/KptbVeC5gzg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/jgarcia/2007/10/19/silverlight-10-parte-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blogs.southworks.net/jgarcia/2007/10/19/silverlight-10-parte-ii/</feedburner:origLink></item>
		<item>
		<title>Silverlight 1.0 Parte I</title>
		<link>http://feeds.southworks.net/~r/jgarcia/~3/3wOFv7sLPGk/</link>
		<comments>http://blogs.southworks.net/jgarcia/2007/10/17/silverlight-10/#comments</comments>
		<pubDate>Wed, 17 Oct 2007 05:45:00 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">/blogs/jgarcia/archive/2007/10/16/Silverlight-1.0.aspx</guid>
		<description><![CDATA[Crear un proyecto Silverlight Todo proyecto Silverlight en la versi&#243;n 1.0 tiene 4 elementos: -&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Una o m&#225;s p&#225;ginas HTML -&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Uno o m&#225;s archivos de scripting -&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Uno o m&#225;s archivos de XAML -&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Un Plug-in que se ejecuta sobre la aplicaci&#243;n cliente y el archivo Silverlight.js La aplicaci&#243;n puede instanciar muchos objetos &#8220;plug-in&#8221; [...]]]></description>
			<content:encoded><![CDATA[<h2 style="margin: 10pt 0in 0pt" align="left"><span><font face="Cambria" color="#4f81bd" size="4">Crear un proyecto Silverlight</font></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt" align="left"><span><font size="3"><font face="Calibri">Todo proyecto Silverlight en la versi&#243;n 1.0 tiene 4 elementos:</font></font></span></p>
<p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 0.75in" align="left"><span><span><font face="Calibri" size="3">-</font><span style="font: 7pt &#39;Times New Roman&amp;#39">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span><font size="3"><font face="Calibri">Una o m&#225;s p&#225;ginas HTML</font></font></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.75in" align="left"><span><span><font face="Calibri" size="3">-</font><span style="font: 7pt &#39;Times New Roman&amp;#39">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span><font size="3"><font face="Calibri">Uno o m&#225;s archivos de scripting</font></font></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.75in" align="left"><span><span><font face="Calibri" size="3">-</font><span style="font: 7pt &#39;Times New Roman&amp;#39">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span><font size="3"><font face="Calibri">Uno o m&#225;s archivos de XAML</font></font></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 10pt 0.75in" align="left"><span><span><font face="Calibri" size="3">-</font><span style="font: 7pt &#39;Times New Roman&amp;#39">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span><font face="Calibri" size="3">Un Plug-in que se ejecuta sobre la aplicaci&#243;n cliente y </font></span><span><font face="Calibri" size="3">el archivo </font></span><span style="font-size: 10pt;font-family: &#39;Courier New&amp;#39">Silverlight.js</span><span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt" align="left"><span><font size="3"><font face="Calibri">La aplicaci&#243;n puede instanciar muchos objetos &#8220;plug-in&#8221; que representan objetos que pueden procesarse mediante la capa Core de la arquitectura. Para lograr eso debe generar divisiones en el html y asignarle un objeto plug-in a cada divisi&#243;n.</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt" align="left"><span><font face="Calibri" size="3">El archivo </font></span><code><span style="font-size: 10pt">Silverlight.js</span></code><span><font size="3"><font face="Calibri"> es un archivo de ayuda que permite que el proyecto Silverlight sea visto en m&#250;ltiples plataformas.</font></font></span></p>
<div align="left">
<pre><span style="font-size: 11pt;font-family: &#39;Calibri&#39;,&#39;sans-serif&amp;#39">Para ejecutar el plug-in de Silverlight es necesario llamar al m&#233;todo </span><span style="font-size: 11pt;font-family: &#39;Calibri&#39;,&#39;sans-serif&amp;#39">Silverlight.createObject. A continuaci&#243;n</span></pre>
</div>
<p align="left">
<div align="left">
<pre><span style="font-size: 11pt;font-family: &#39;Calibri&#39;,&#39;sans-serif&amp;#39">vemos </span><span style="font-size: 11pt;font-family: &#39;Calibri&#39;,&#39;sans-serif&amp;#39">los par&#225;metros que este m&#233;todo toma:</span><span><font face="Courier New">&#160;</font></span></pre>
</div>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;font-family: consolas">Silverlight.createObject(</span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>&quot;myxaml.xaml&quot;,<span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #005200">// Archivo xaml que se asocia al plug-in.</span></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>parentElement,<span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #005200">// referencia a la Divisi&#243;n que contiene este plug-in.</span></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-size: 10pt;font-family: consolas">&quot;mySilverlightPlugin&quot;,<span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #005200">// ID del plug-in. </span></span><span style="font-size: 10pt;color: #005200;font-family: consolas">Debe ser &#250;nico.</span><span style="font-size: 10pt;font-family: consolas"></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>{<span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #005200">// Propiedades por instancia.</span></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>width:&#8217;300&#8242;,<span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #005200">// Ancho de la regi&#243;n del plug-in en pixels </span></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>height:&#8217;300&#8242;,<span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #005200">// Alto de la regi&#243;n del plug-in en pixels </span></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>inplaceInstallPrompt:false, <span style="color: #005200">// Determina si se muestra el prompt de</span></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;color: #005200;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>// instalaci&#243;n si se identifica que </span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;color: #005200;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>// la versi&#243;n es inv&#225;lida</span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>background:&#8217;#D6D6D6&#8242;,<span>&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #005200">// Color de fondo en el &#225;rea del objeto</span></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;color: #005200;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>// plug-in.</span><span style="font-size: 10pt;font-family: consolas"></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>isWindowless:&#8217;false&#8217;,<span>&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #005200">// Determina si se muestra el plug-in</span></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;color: #005200;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>// en modo Windowless.</span><span style="font-size: 10pt;font-family: consolas"></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>framerate:&#8217;24&#8242;,<span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #005200">// Propiedad MaxFrameRate.</span></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>version:&#8217;1.0&#8242;<span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #005200">// Versi&#243;n de Silverlight a usar.</span></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>},</span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>{</span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>onError:null,<span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #005200">// valor de la propiedad OnError &#8212; </span></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;color: #005200;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>// se debe indicar el nombre de la funci&#243;n </span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;color: #005200;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>//que manejar&#225; el evento</span><span style="font-size: 10pt;font-family: consolas"></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>onLoad:null<span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #005200">// valor de la propiedad OnLoad &#8212; </span></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;color: #005200;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>// se debe indicar el nombre de la funci&#243;n </span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;color: #005200;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>//que manejar&#225; el evento</span><span style="font-size: 10pt;font-family: consolas"></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>},</span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>null);<span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: #005200">// Valor de la propiedad de Contexto &#8211;</span></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;color: #005200;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>// se debe indicar el nombre de la funci&#243;n </span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 0pt;padding-top: 0in" align="left"><span style="font-size: 10pt;color: #005200;font-family: consolas"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>//que manejar&#225; el evento</span><span style="font-size: 10pt;font-family: consolas"></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt" align="left"><span><font size="3"><font face="Calibri"><span>&#160;</span>A continuaci&#243;n se muestra con un gr&#225;fico la vista de m&#243;dulos<span>&#160; </span>(que identifica la relaci&#243;n &#8220;<strong>Contiene A</strong>&#8221;) que genera esta estructura:</font></font></span><a href="http://blogs.southworks.net/jgarcia/files/2008/06/modulesilverlight.jpg"><img height="295" alt="ModuleSilverlight" src="http://blogs.southworks.net/jgarcia/files/2008/06/modulesilverlight-thumb.jpg" width="248" border="0" /></a> </p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 10pt;padding-top: 0in;text-align: center" align="left"><span></span><span></span></p>
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 10pt;padding-top: 0in" align="left"><font face="Calibri"><strong><span style="font-size: 9pt">Figura</span></strong><span style="font-size: 9pt">: Elementos de una aplicaci&#243;n Silverlight</span></font></p>
<h2 style="margin: 10pt 0in 0pt" align="left"><a title="_Toc179089829" name="_Toc179089829"></a><span><font face="Cambria" color="#4f81bd" size="4">Crear un archivo XAML</font></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt" align="left"><span><font size="3"><font face="Calibri">El <a href="http://msdn2.microsoft.com/en-us/library/ms747122.aspx">XAML</a> representa un objeto a procesar mediante un objeto plug-in.<span>&#160; </span>En esencia es un archivo XML con un formato especial extendido. En Silverlight s&#243;lo puede tener como ra&#237;z un objeto &#8220;Canvas&#8221; (es el &#250;nico objeto contenedor que existe). Un XAML puede procesarse en m&#225;s de un objeto plug-in.</font></font></span></p>
<img src="http://feeds.feedburner.com/~r/jgarcia/~4/3wOFv7sLPGk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/jgarcia/2007/10/17/silverlight-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blogs.southworks.net/jgarcia/2007/10/17/silverlight-10/</feedburner:origLink></item>
		<item>
		<title>Introducción a Silverlight</title>
		<link>http://feeds.southworks.net/~r/jgarcia/~3/BDeYqJrelfk/</link>
		<comments>http://blogs.southworks.net/jgarcia/2007/10/09/introduccion-a-silverlight/#comments</comments>
		<pubDate>Tue, 09 Oct 2007 18:54:00 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">/blogs/jgarcia/archive/2007/10/09/Introducci_F300_n-a-Silverlight.aspx</guid>
		<description><![CDATA[Resumen&#160; Silverlight es un nuevo avance para desarrollos de aplicaciones web. Las principales ventajas que se observan son: - Provee un framework de dise&#241;o independiente del control de la p&#225;gina, lo que le da herramientas reales a los dise&#241;adores que no necesitan la intervenci&#243;n de un programador. - Permite que la misma aplicaci&#243;n se ejecute [...]]]></description>
			<content:encoded><![CDATA[<h2 style="margin: 10pt 0in 0pt"><a title="_Toc179089818" name="_Toc179089818"></a><font face="Cambria" color="#4f81bd" size="4">Resumen</font><font face="Calibri" size="3">&#160;</font></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri"></font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri"><a href="http://silverlight.net/" target="_blank">Silverlight</a> es un nuevo avance para desarrollos de aplicaciones web. Las principales ventajas que se observan son:</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">- Provee un framework de dise&#241;o independiente del control de la p&#225;gina, lo que le da herramientas reales a los dise&#241;adores que no necesitan la intervenci&#243;n de un programador.</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">- Permite que la misma aplicaci&#243;n se ejecute en diferentes web browsers.</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">- Utiliza <a href="http://www.microsoft.com/net/wpf.aspx" target="_blank">Windows Presentation Fundation</a> (WPF) como herramienta<span>&#160; </span>para el desarrollo.</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">- Incluye <a href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx" target="_blank">Language Integrated Query</a> (LINQ) lo que permite acceso a datos. </font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">- Posee soporte para ejecutar scripting bajo JavaScript </font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">- Se integra con las tecnolog&#237;as ya existentes (.Net AJAX, Phyton, Ruby, JavaScript, WebServices, etc).</font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">- Permite un manejo f&#225;cil de elementos multimedia (video, sonido).</font></font></span></p>
<h2 style="margin: 10pt 0in 0pt"><a title="_Toc179089820" name="_Toc179089820"></a><span><font face="Cambria" color="#4f81bd" size="4">Arquitectura</font></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri"></font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">La arquitectura de Silverlight se divide en 2 partes:</font></font></span></p>
<p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 0.75in"><span><span><font face="Calibri" size="3">-</font><span style="font: 7pt &#39;Times New Roman&amp;#39">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span><font size="3"><font face="Calibri">El Core Presentation Fundation que es b&#225;sicamente un Software Development Kit (SDK) que permite la renderizaci&#243;n de elementos de interfase, control de eventos de usuario (clicks, teclado, etc), un conjunto de elementos de interfase (UIElements) con valor agregado respecto de los UIElements<span>&#160; </span>que se encuentran en .Net 2.0 (en la versi&#243;n 1.1)<span>&#160; </span>y permite la ejecuci&#243;n de elementos multimedia (en la versi&#243;n 1.1) <strong>todo del lado del cliente</strong>!!!. Para utilizarlo hay que instalar un plugin (que permite ejecutar los componentes en un &#225;rea restringida de la m&#225;quina cliente) y es multi-browser (o sea, se puede implementar un plug-in para distintos web browsers). Toda la programaci&#243;n de esta capa puede hacerse mediante scripting.</font></font></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.75in"><span><span><font face="Calibri" size="3">-</font><span style="font: 7pt &#39;Times New Roman&amp;#39">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span><font size="3"><font face="Calibri">El Framework .Net de Silverlight<span>&#160; </span>que es b&#225;sicamente un subconjunto del Framework .Net que implementa herramientas para el manejo de datos (LINQ),<span>&#160; </span>Controles extendidos (WPF),<span>&#160; </span>DLR para interpretar scripting y herramientas para la conexi&#243;n a accesos remotos. La versi&#243;n 1.0 de Silverlight no tiene una implementaci&#243;n muy interesante de esta capa de la arquitectura, la versi&#243;n 1.1 (todav&#237;a en desarrollo) incluye todas estas herramientas y agrega un CLR que implementa el manejo de los objetos de esta capa (se encarga del garbage collection, chequeo de tipos y manejo de excepciones).</font></font></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.75in"><span><span><font face="Calibri" size="3">-</font><span style="font: 7pt &#39;Times New Roman&amp;#39">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span><font size="3"><font face="Calibri">Para comunicarse entre las capas se utiliza un XAML Object (un Extensible Application Markup Language) que es b&#225;sicamente un XML con un formato especializado (ver WPF). </font></font></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 10pt 0.75in"><span><font face="Calibri" size="3"></font></span></p>
<div style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;padding-top: 1pt">
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 10pt;padding-top: 0in;text-align: center" align="center"><a href="http://blogs.southworks.net/jgarcia/files/2008/06/silverlightarq.jpg"><img height="381" alt="SilverlightArq" src="http://blogs.southworks.net/jgarcia/files/2008/06/silverlightarq-thumb.jpg" width="430" border="0" /></a> </p>
</p></div>
<div style="padding-right: 0in;padding-left: 0in;padding-bottom: 1pt;padding-top: 1pt">
<p class="MsoNormal" style="padding-right: 0in;padding-left: 0in;padding-bottom: 0in;margin: 0in 0in 10pt;padding-top: 0in"><font face="Calibri"><strong><span style="font-size: 9pt">Figura</span></strong><span style="font-size: 9pt">: Componentes de la arquitectura Silverlight (fuente MSDN Silverlight)</span></font></p>
</p></div>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri"></font></font></span></p>
<p><span><font size="3"><font face="Calibri"></font><br />
<h2 style="margin: 10pt 0in 0pt"><span><font size="4"><font color="#4f81bd"><font face="Cambria">Conclusi&#243;n</font></font></font></span></h2>
</p>
<p>     </font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri"></font></font></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><font size="3"><font face="Calibri">En suma, Silverlight corre un poco m&#225;s la barrera entre el dise&#241;o de la interfaz web y la programaci&#243;n en ASP.Net necesaria para lograr interactividad lo que facilita el dise&#241;o de la interfaz de la aplicaci&#243;n web. Adem&#225;s mejora la performance sobre todo en aplicaciones multimedia pues ejecuta muchas m&#225;s cosas del lado cliente de la aplicaci&#243;n. Y permite hacer el desarrollo con la certeza de que la interfaz se ejecuta en los browser m&#225;s populares sin necesidad de cambios.</font></font></span></p>
<img src="http://feeds.feedburner.com/~r/jgarcia/~4/BDeYqJrelfk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/jgarcia/2007/10/09/introduccion-a-silverlight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blogs.southworks.net/jgarcia/2007/10/09/introduccion-a-silverlight/</feedburner:origLink></item>
	</channel>
</rss>

