<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title></title>
	<atom:link href="http://eliasnegrete.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://eliasnegrete.wordpress.com</link>
	<description></description>
	<lastBuildDate>Thu, 06 Jan 2011 13:14:39 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='eliasnegrete.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title></title>
		<link>http://eliasnegrete.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://eliasnegrete.wordpress.com/osd.xml" title="" />
	<atom:link rel='hub' href='http://eliasnegrete.wordpress.com/?pushpress=hub'/>
		<item>
		<title>WPF en Español</title>
		<link>http://eliasnegrete.wordpress.com/2010/12/29/wpf-en-espanol/</link>
		<comments>http://eliasnegrete.wordpress.com/2010/12/29/wpf-en-espanol/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 03:08:35 +0000</pubDate>
		<dc:creator>efnegrete</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://eliasnegrete.wordpress.com/?p=512</guid>
		<description><![CDATA[WPF en Español Download: http://www.megaupload.com/?d=A4LHEFLE Tagged: WPF<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=512&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img src="/Users/enegrete/AppData/Local/Temp/moz-screenshot.png" alt="" /><a href="http://eliasnegrete.files.wordpress.com/2010/12/book43.jpg"><img class="size-full wp-image-513 aligncenter" title="book43" src="http://eliasnegrete.files.wordpress.com/2010/12/book43.jpg?w=500" alt=""   /></a></p>
<p>WPF en Español</p>
<p>Download:</p>
<p><a href="http://www.megaupload.com/?d=A4LHEFLE">http://www.megaupload.com/?d=A4LHEFLE</a></p>
<br /> Tagged: <a href='http://eliasnegrete.wordpress.com/tag/wpf/'>WPF</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eliasnegrete.wordpress.com/512/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eliasnegrete.wordpress.com/512/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eliasnegrete.wordpress.com/512/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eliasnegrete.wordpress.com/512/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eliasnegrete.wordpress.com/512/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eliasnegrete.wordpress.com/512/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eliasnegrete.wordpress.com/512/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eliasnegrete.wordpress.com/512/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eliasnegrete.wordpress.com/512/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eliasnegrete.wordpress.com/512/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eliasnegrete.wordpress.com/512/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eliasnegrete.wordpress.com/512/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eliasnegrete.wordpress.com/512/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eliasnegrete.wordpress.com/512/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=512&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eliasnegrete.wordpress.com/2010/12/29/wpf-en-espanol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f9e7caebfe356c89607c929ce4ce8eab?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efnegrete</media:title>
		</media:content>

		<media:content url="http://eliasnegrete.files.wordpress.com/2010/12/book43.jpg" medium="image">
			<media:title type="html">book43</media:title>
		</media:content>
	</item>
		<item>
		<title>Professional ASP.NET 4 in C# and VB</title>
		<link>http://eliasnegrete.wordpress.com/2010/06/08/professional-asp-net-4-in-c-and-vb/</link>
		<comments>http://eliasnegrete.wordpress.com/2010/06/08/professional-asp-net-4-in-c-and-vb/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 02:21:10 +0000</pubDate>
		<dc:creator>efnegrete</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[.NET 4]]></category>
		<category><![CDATA[asp]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[VB]]></category>

		<guid isPermaLink="false">http://eliasnegrete.wordpress.com/?p=507</guid>
		<description><![CDATA[professional asp.net 4 in c# and vb publisher: wrox 2010 &#124; 1539 pages &#124; isbn: 0470502207 &#124; pdf &#124; 24 mb Este libro fue escrito para presentar a las características y capacidades que ofrece asp.net 4, así como para darle una explicación de la fundación que ofrece asp.net. asumimos que tener un conocimiento general de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=507&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><a href="http://eliasnegrete.files.wordpress.com/2010/06/book42.jpg"><img class="size-full wp-image-508 aligncenter" title="book42" src="http://eliasnegrete.files.wordpress.com/2010/06/book42.jpg?w=500" alt=""   /></a></p>
<p style="text-align:center;">professional asp.net 4 in c# and <acronym title="vbulletin">vb</acronym><br />
publisher: wrox 2010 | 1539 pages | isbn: 0470502207 | pdf | 24 mb</p>
<p style="text-align:justify;">Este libro fue  escrito para presentar a las características y capacidades que ofrece  asp.net 4, así como para darle una explicación de la fundación que  ofrece asp.net. asumimos que tener un conocimiento general de las  tecnologías web, como las versiones anteriores de asp.net, páginas  Active Server 2.0/3.0, o JavaServer Pages. si usted entiende  los conceptos básicos de programación web, usted no debería tener  muchos problemas a lo largo de los siguientes con este libro? s  content.if que son completamente nuevos para asp.net, asegúrese de  comprobar a cabo a partir asp.net 4: en c # y vb por spaanjaars IMAR  (Wiley Publishing, inc., 2010) para ayudarle a entender los conceptos  básicos.</p>
<p style="text-align:justify;"><span id="more-507"></span></p>
<p style="text-align:justify;">además de trabajar con las tecnologías  web, también se supone que entienden de programación construcciones  básicas, como las variables, para cada bucle, y la programación  orientada a objetos.</p>
<p>también se estará preguntando si este  libro es para el desarrollador de Visual Basic o C # el desarrollador. estamos felices  de decir que es para ambos! cuando el código difiere sustancialmente,  este libro ofrece ejemplos tanto en VB y C #.<br />
este libro  explora la versión 4 de asp.net. cubre cada característica nueva e  importante incluido en asp.net 4 en detalle. la siguiente  lista te dice algo sobre el contenido de cada capítulo.</p>
<p style="text-align:justify;">Download:</p>
<pre><a rel="nofollow" href="http://www.tipete.com/ext?url=http://hotfile.com/dl/41851617/2cfa11c/0470502207.rar.html" target="_blank">http://hotfile.com/dl/41851617/2cfa11c/0470502207.rar.html</a>
</pre>
<br /> Tagged: <a href='http://eliasnegrete.wordpress.com/tag/net-4/'>.NET 4</a>, <a href='http://eliasnegrete.wordpress.com/tag/asp/'>asp</a>, <a href='http://eliasnegrete.wordpress.com/tag/c/'>C#</a>, <a href='http://eliasnegrete.wordpress.com/tag/vb/'>VB</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eliasnegrete.wordpress.com/507/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eliasnegrete.wordpress.com/507/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eliasnegrete.wordpress.com/507/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eliasnegrete.wordpress.com/507/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eliasnegrete.wordpress.com/507/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eliasnegrete.wordpress.com/507/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eliasnegrete.wordpress.com/507/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eliasnegrete.wordpress.com/507/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eliasnegrete.wordpress.com/507/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eliasnegrete.wordpress.com/507/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eliasnegrete.wordpress.com/507/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eliasnegrete.wordpress.com/507/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eliasnegrete.wordpress.com/507/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eliasnegrete.wordpress.com/507/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=507&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eliasnegrete.wordpress.com/2010/06/08/professional-asp-net-4-in-c-and-vb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f9e7caebfe356c89607c929ce4ce8eab?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efnegrete</media:title>
		</media:content>

		<media:content url="http://eliasnegrete.files.wordpress.com/2010/06/book42.jpg" medium="image">
			<media:title type="html">book42</media:title>
		</media:content>
	</item>
		<item>
		<title>RIA Services</title>
		<link>http://eliasnegrete.wordpress.com/2010/06/05/ria-services/</link>
		<comments>http://eliasnegrete.wordpress.com/2010/06/05/ria-services/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 11:49:09 +0000</pubDate>
		<dc:creator>efnegrete</dc:creator>
				<category><![CDATA[Arquitecturas]]></category>
		<category><![CDATA[asp]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[Silverligth]]></category>

		<guid isPermaLink="false">http://eliasnegrete.wordpress.com/?p=502</guid>
		<description><![CDATA[El objetivo de RIA Services es simplificar el desarrollo de aplicaciones RIA, para que podemos desarrollar aplicaciones de este tipo como si fuesen aplicaciones web tradicionales, sin tener que preocuparnos de los aspectos que mencionaba en el párrafo anterior. Beneficiarnos de todas las bondades de tener aplicaciones RIA pero sin pagar un coste por ello [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=502&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;"><a href="http://eliasnegrete.files.wordpress.com/2010/06/cod2.png"><img class="size-full wp-image-504 aligncenter" title="cod2" src="http://eliasnegrete.files.wordpress.com/2010/06/cod2.png?w=500&#038;h=142" alt="" width="500" height="142" /></a></p>
<p style="text-align:justify;">El objetivo de RIA Services<strong> es simplificar el desarrollo de  aplicaciones RIA</strong>, para que podemos desarrollar aplicaciones de  este tipo como si fuesen aplicaciones web tradicionales, sin tener que  preocuparnos de los aspectos que mencionaba en el párrafo anterior.<br />
<span id="more-502"></span><br />
Beneficiarnos de todas las bondades de tener aplicaciones RIA pero  sin pagar un coste por ello (al menos no uno excesivo), pudiendo hacerlo  de una manera similar al que si hiciésemos aplicaciones web  tradicionales.</p>
<p style="text-align:justify;">En algunos sitios he visto que definían RIA Services como las  herramientas RAD de Microsoft para la construcción de aplicaciones  RIA…no sé si será para tanto <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="text-align:justify;">RIA Services nos va a servir de pegamento entre la lógica de  presentación y la lógica de negocio para simplificar la comunicación  entre ambas, permitiéndonos centrarnos en el desarrollo de la aplicación  propiamente dicha.</p>
<p style="text-align:justify;">En la arquitectura que se presenta a continuación podéis ver dos  nuevos componentes que aporta RIA Services, uno en la parte cliente (  DomainContext ) y otro en la parte servidora ( DomainService ).</p>
<p style="text-align:justify;">Seguro que ya todos conocéis los DataSources que tenemos actualmente  disponibles en ASP.NET (XmlDataSource, SqlDataSource, ObjectDataSource,  EntityDataSource etc…) y lo mucho que nos facilitan el desarrollo.</p>
<p style="text-align:justify;">Pues bien, con RIA Services tendremos uno nuevo; <strong>DomainDataSource</strong>.  Este componente es muy similar al resto de DataSources (la idea es la  misma) y nos va permitir trabajar de una manera bastante cómoda y  sencilla contra servicios de dominio que se exponen con RIA Services.</p>
<p style="text-align:justify;">Por ejemplo, en una aplicación RIA hecha con Silverlight podemos  tener los típicos formularios de lista/detalles, con las operaciones de  selección, inserción, actualización, borrado, filtrado y ordenación como  si de una aplicación web tradicional se tratase.</p>
<p style="text-align:justify;">Por cierto, aunque menciono Silverlight, el componente  DomainDataSource también se puede usar en aplicaciones ASP.NET  tradicionales o para montar aplicaciones con Dynamic Data, no es algo  sólo para Silverlight.</p>
<p style="text-align:justify;"><a href="http://eliasnegrete.files.wordpress.com/2010/06/cod3.png"><img class="size-full wp-image-505 aligncenter" title="cod3" src="http://eliasnegrete.files.wordpress.com/2010/06/cod3.png?w=500&#038;h=235" alt="" width="500" height="235" /></a></p>
<br /> Tagged: <a href='http://eliasnegrete.wordpress.com/tag/asp/'>asp</a>, <a href='http://eliasnegrete.wordpress.com/tag/ria/'>RIA</a>, <a href='http://eliasnegrete.wordpress.com/tag/silverligth/'>Silverligth</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eliasnegrete.wordpress.com/502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eliasnegrete.wordpress.com/502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eliasnegrete.wordpress.com/502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eliasnegrete.wordpress.com/502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eliasnegrete.wordpress.com/502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eliasnegrete.wordpress.com/502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eliasnegrete.wordpress.com/502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eliasnegrete.wordpress.com/502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eliasnegrete.wordpress.com/502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eliasnegrete.wordpress.com/502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eliasnegrete.wordpress.com/502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eliasnegrete.wordpress.com/502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eliasnegrete.wordpress.com/502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eliasnegrete.wordpress.com/502/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=502&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eliasnegrete.wordpress.com/2010/06/05/ria-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f9e7caebfe356c89607c929ce4ce8eab?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efnegrete</media:title>
		</media:content>

		<media:content url="http://eliasnegrete.files.wordpress.com/2010/06/cod2.png" medium="image">
			<media:title type="html">cod2</media:title>
		</media:content>

		<media:content url="http://eliasnegrete.files.wordpress.com/2010/06/cod3.png" medium="image">
			<media:title type="html">cod3</media:title>
		</media:content>
	</item>
		<item>
		<title>Comunicaciones Inalámbricas: Principios y Práctica</title>
		<link>http://eliasnegrete.wordpress.com/2010/06/05/comunicaciones-inalambricas-principios-y-practica/</link>
		<comments>http://eliasnegrete.wordpress.com/2010/06/05/comunicaciones-inalambricas-principios-y-practica/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 01:51:20 +0000</pubDate>
		<dc:creator>efnegrete</dc:creator>
				<category><![CDATA[Redes]]></category>
		<category><![CDATA[Inalambricas]]></category>
		<category><![CDATA[Wireles]]></category>

		<guid isPermaLink="false">http://eliasnegrete.wordpress.com/?p=497</guid>
		<description><![CDATA[Wireless Communications: Principles and Practice Publisher: Prentice Hall &#124; ISBN: 0130422320 &#124; edition 2002 &#124; PDF &#124; 640 pages &#124; 19,9 mb Comunicaciones Inalámbricas, Segunda edición es el profesional de vista definitivo de la tecnología de las comunicaciones inalámbricas y diseño del sistema. A partir de su primera edición clásica, Theodore S. Rappaport comentarios casi [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=497&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><a href="http://eliasnegrete.files.wordpress.com/2010/06/book41.jpg"><img class="size-full wp-image-498 aligncenter" title="book41" src="http://eliasnegrete.files.wordpress.com/2010/06/book41.jpg?w=500" alt=""   /></a><strong>Wireless Communications: Principles and Practice</strong><br />
Publisher:  Prentice Hall | ISBN: 0130422320 | edition 2002 | PDF | 640 pages | 19,9  mb</p>
<p style="text-align:justify;">Comunicaciones  Inalámbricas, Segunda edición es el profesional de vista definitivo de  la tecnología de las comunicaciones inalámbricas y diseño del sistema. A partir de su  primera edición clásica, Theodore S. Rappaport comentarios casi todos  los importantes nuevo estándar inalámbrico y el desarrollo tecnológico,  incluyendo los formularios W-CDMA, CDMA2000, UMTS, y 136/EDGE UMC; WLAN  IEEE 802.11 y HIPERLAN; Bluetooth, LMDS, y mucho más. Incluye decenas  de ejemplos prácticos nuevos, resueltos paso a paso</p>
<p><span id="more-497"></span></p>
<p>Comunicaciones  inalámbricas: Principios y Práctica, Segunda edición es el texto  definitivo de la tecnología moderna de comunicaciones inalámbricas y  diseño del sistema. A partir de su  primera edición clásica, Theodore S. Rappaport abarca las cuestiones  fundamentales que afectan todas las redes inalámbricas y prácticamente  todos los comentarios importantes nuevo estándar inalámbrico y el  desarrollo tecnológico, que ofrece una cobertura completa de todo los  sistemas de 3G y las redes inalámbricas de área local (WLAN) que va a  transformar comunicaciones en los próximos años. Rappaport  ilustra cada concepto clave con ejemplos prácticos, bien explicado y  resuelto paso a paso. La cobertura incluye:</p>
<p>Download:</p>
<p><a href="http://www.newwebstar.com/engine/go.php?url=aHR0cDovL2hvdGZpbGUuY29tL2RsLzQ2NDI2ODUxL2I3ZDMwYjQvNDMxNC5yYXIuaHRtbA%3D%3D" target="_blank">http://hotfile.com/dl/46426851/b7d30b4/4314.rar.html</a><!--dle_leech_end--></p>
<p><a href="http://www.newwebstar.com/engine/go.php?url=aHR0cDovL3VwbG9hZGluZy5jb20vZmlsZXMvOTllMjM2bWMvNDMxNC5yYXIv" target="_blank">http://uploading.com/files/99e236mc/4314.rar/</a></p>
<br /> Tagged: <a href='http://eliasnegrete.wordpress.com/tag/inalambricas/'>Inalambricas</a>, <a href='http://eliasnegrete.wordpress.com/tag/redes/'>Redes</a>, <a href='http://eliasnegrete.wordpress.com/tag/wireles/'>Wireles</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eliasnegrete.wordpress.com/497/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eliasnegrete.wordpress.com/497/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eliasnegrete.wordpress.com/497/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eliasnegrete.wordpress.com/497/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eliasnegrete.wordpress.com/497/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eliasnegrete.wordpress.com/497/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eliasnegrete.wordpress.com/497/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eliasnegrete.wordpress.com/497/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eliasnegrete.wordpress.com/497/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eliasnegrete.wordpress.com/497/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eliasnegrete.wordpress.com/497/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eliasnegrete.wordpress.com/497/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eliasnegrete.wordpress.com/497/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eliasnegrete.wordpress.com/497/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=497&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eliasnegrete.wordpress.com/2010/06/05/comunicaciones-inalambricas-principios-y-practica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f9e7caebfe356c89607c929ce4ce8eab?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efnegrete</media:title>
		</media:content>

		<media:content url="http://eliasnegrete.files.wordpress.com/2010/06/book41.jpg" medium="image">
			<media:title type="html">book41</media:title>
		</media:content>
	</item>
		<item>
		<title>2DArtist Issue 53 &#8211; Mayo 2010</title>
		<link>http://eliasnegrete.wordpress.com/2010/06/05/2dartist-issue-53-mayo-2010/</link>
		<comments>http://eliasnegrete.wordpress.com/2010/06/05/2dartist-issue-53-mayo-2010/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 01:45:11 +0000</pubDate>
		<dc:creator>efnegrete</dc:creator>
				<category><![CDATA[Revistas]]></category>
		<category><![CDATA[Diseño]]></category>
		<category><![CDATA[Revista]]></category>

		<guid isPermaLink="false">http://eliasnegrete.wordpress.com/?p=494</guid>
		<description><![CDATA[2DArtist Issue 53 &#8211; May 2010 English &#124; 85 pages &#124; PDF &#124; 125.1 Mb Download: http://uploading.com/files/262fmdmf/2D_Art_o53_2o1o-o5.rar/ http://hotfile.com/dl/46459140/06cc966/2D_Art_o53_2o1o-o5.rar.html Tagged: Diseño, Revista<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=494&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><a href="http://eliasnegrete.files.wordpress.com/2010/06/rev24.jpg"><img class="size-full wp-image-495 aligncenter" title="Rev24" src="http://eliasnegrete.files.wordpress.com/2010/06/rev24.jpg?w=500" alt=""   /></a><strong>2DArtist Issue 53 &#8211; May 2010</strong><br />
English | 85 pages | PDF | 125.1  Mb</p>
<p><span id="more-494"></span></p>
<p>Download:</p>
<p><a href="http://uploading.com/files/262fmdmf/2D_Art_o53_2o1o-o5.rar/" target="_blank">http://uploading.com/files/262fmdmf/2D_Art_o53_2o1o-o5.rar/</a></p>
<p><a href="http://hotfile.com/dl/46459140/06cc966/2D_Art_o53_2o1o-o5.rar.html" target="_blank">http://hotfile.com/dl/46459140/06cc966/2D_Art_o53_2o1o-o5.rar.html</a></p>
<br /> Tagged: <a href='http://eliasnegrete.wordpress.com/tag/diseno/'>Diseño</a>, <a href='http://eliasnegrete.wordpress.com/tag/revista/'>Revista</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eliasnegrete.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eliasnegrete.wordpress.com/494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eliasnegrete.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eliasnegrete.wordpress.com/494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eliasnegrete.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eliasnegrete.wordpress.com/494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eliasnegrete.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eliasnegrete.wordpress.com/494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eliasnegrete.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eliasnegrete.wordpress.com/494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eliasnegrete.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eliasnegrete.wordpress.com/494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eliasnegrete.wordpress.com/494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eliasnegrete.wordpress.com/494/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=494&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eliasnegrete.wordpress.com/2010/06/05/2dartist-issue-53-mayo-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f9e7caebfe356c89607c929ce4ce8eab?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efnegrete</media:title>
		</media:content>

		<media:content url="http://eliasnegrete.files.wordpress.com/2010/06/rev24.jpg" medium="image">
			<media:title type="html">Rev24</media:title>
		</media:content>
	</item>
		<item>
		<title>Exploración de soporte técnico multitoque en Silverlight</title>
		<link>http://eliasnegrete.wordpress.com/2010/04/25/exploracion-de-soporte-tecnico-multitoque-en-silverlight/</link>
		<comments>http://eliasnegrete.wordpress.com/2010/04/25/exploracion-de-soporte-tecnico-multitoque-en-silverlight/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 03:38:34 +0000</pubDate>
		<dc:creator>efnegrete</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Multitoque]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://eliasnegrete.wordpress.com/?p=482</guid>
		<description><![CDATA[Cada vez que visito el Museo Americano de Historia Natural de Nueva York, siempre paso por la Sala de los primates. Esta sala, con una gran colección de esqueletos y especímenes disecados, expone un panorama evolutivo del orden de los Primates, animales cuyo tamaño abarca desde musarañas, lémures y monos tití diminutos hasta chimpancés, monos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=482&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Cada vez que visito el Museo Americano de Historia Natural de Nueva York, siempre paso por la Sala de los primates. Esta sala, con una gran colección de esqueletos y especímenes disecados, expone un panorama evolutivo del orden de los Primates, animales cuyo tamaño abarca desde musarañas, lémures y monos tití diminutos hasta chimpancés, monos de gran tamaño y humanos.</p>
<p style="text-align:justify;">Lo que se destaca en esta exposición es una sorprendente característica común a todos los primates: la estructura ósea de la mano, lo que incluye el dedo pulgar oponible. El mismo conjunto de articulaciones y dedos que permitieron que nuestros ancestros y primos lejanos se agarraran de las ramas de los árboles y treparan por ellas permite que nuestra especie manipule el mundo en torno a nosotros y que construya objetos. Es posible que nuestras manos tengan su origen en las patas de los primates diminutos de hace decenas de millones de años, aunque éstas poseen un factor importante que nos distingue como humanos.</p>
<p style="text-align:justify;">¿Tiene algo de sorprendente que de forma instintiva apuntemos objetos o incluso los toquemos en la pantalla del equipo?<br />
<span id="more-482"></span></p>
<p style="text-align:justify;">En respuesta a este deseo humano de que nuestros dedos tengan una  conexión más íntima con el equipo, también han evolucionado nuestros  dispositivos de entrada. El mouse es estupendo para realizar las  funciones de seleccionar y arrastrar, pero no sirve para bocetos de  forma libre ni escritura a mano. El lápiz de la tableta gráfica nos  permite escribir, pero con frecuencia es difícil manejarlo. Las  pantallas táctiles son similares a los cajeros automáticos y a los  quioscos de museos, pero generalmente están restringidas a señalar y  presionar.</p>
<p style="text-align:justify;">Creo que la tecnología conocida como “multitoque” representa  un gran avance. La tecnología multitoque, como lo indica su nombre, va  más allá de las pantallas táctiles del pasado en cuanto a que detecta  varios dedos y esto marca una gran diferencia en los tipos de movimiento  y gestos que se pueden transmitir a través de la pantalla. La  tecnología multitoque ha evolucionado desde los dispositivos de entrada  táctiles del pasado, pero al mismo tiempo sugiere un paradigma de  entrada intrínsicamente diferente.</p>
<p style="text-align:justify;">La tecnología multitoque probablemente ha sido más evidente  en la transmisión de noticias por televisión, con mapas en grandes  pantallas que un experto o un meteorólogo residente manipula. Microsoft  ha estado explorando la tecnología multitoque de varias formas, desde el  equipo Microsoft Surface del tamaño de una mesa de café hasta pequeños  dispositivos como Zune HD, y esta tecnología también se ha vuelto  bastante estándar en los smartphones.</p>
<p style="text-align:justify;">Aunque Microsoft Surface puede responder a varios toques  simultáneos con los dedos (e incluso contiene cámaras internas para ver  objetos en transparencia), la mayoría de los otros dispositivos  multitoque se limitan a un número reducido de toques. Varios responden  sólo a dos dedos, o puntos de toque, como son denominados. (Usaré los  términos “dedo” y “punto de toque” como sinónimos). Sin embargo, aquí  actúa la sinergia: en la pantalla del equipo, dos dedos son dos veces  más poderosos que uno.</p>
<p style="text-align:justify;">La limitación de dos puntos de toque es una característica de  los monitores multitoque que se han puesto a disposición recientemente  para los equipos de escritorio y los equipos portátiles, así como  también el equipo portátil Acer Aspire 1420P distribuido a los  asistentes a la conferencia Microsoft Professional Developers Conference  (PDC) realizada en noviembre del año pasado, que se conoce comúnmente  como el equipo portátil PDC. La distribución del equipo portátil PDC  proporcionó una oportunidad única para miles de desarrolladores de  escribir aplicaciones compatibles con tecnología multitoque.</p>
<p style="text-align:justify;">El equipo portátil PDC es el equipo que utilizo para explorar  soporte técnico multitoque en Silverlight 3.</p>
<h2 style="text-align:justify;">Eventos y clases de Silverlight</h2>
<p style="text-align:justify;">El soporte técnico multitoque se está transformando en un estándar en  los distintos marcos y API de Windows. El soporte técnico se crea en  Windows 7 y en Windows Presentation Foundation (WPF) 4. (El equipo  Microsoft Surface también se basa en torno a WPF, pero incluye  extensiones personalizadas para sus capacidades muy especiales).</p>
<p style="text-align:justify;">Para este artículo, me gustaría centrarme en el soporte  técnico multitoque en Silverlight 3. El soporte técnico se encuentra en  sus inicios, pero indudablemente es adecuado y muy útil para explorar  conceptos básicos de la tecnología multitoque.</p>
<p style="text-align:justify;">Si publica una aplicación Silverlight multitoque en su sitio  web, ¿podrá utilizarlo? Por supuesto, el usuario necesitará un monitor  multitoque, pero también será necesario que ejecute la aplicación  Silverlight en un sistema operativo y un explorador que admitan  tecnología multitoque. Por ahora, Internet Explorer 8 que se ejecuta en  Windows 7 proporciona este soporte técnico y, probablemente, más  sistemas operativos y exploradores admitirán la tecnología multitoque en  el futuro.</p>
<p style="text-align:justify;">El soporte técnico de Silverlight 3 para tecnología  multitoque consiste en cinco clases, un delegado, una enumeración y un  solo evento. No existe forma de determinar si el programa Silverlight se  ejecuta en un dispositivo multitoque o, en caso de hacerlo, cuántos  puntos de toque admite el dispositivo.</p>
<p style="text-align:justify;">Una aplicación Silverlight que desea responder a tecnología  multitoque debe adjuntar un controlador al evento estático  Touch.FrameReported:</p>
<div id="ctl00_MTContentSelector1_mainContentContainer_ctl03_" class="libCScode" style="text-align:justify;">
<div style="background-color:#ddddd2;" dir="ltr">
<pre class="libCScode">Touch.FrameReported += OnTouchFrameReported;</pre>
</div>
</div>
<p style="text-align:justify;">Puede adjuntar este controlador de eventos en equipos que no cuenten con  monitores multitoque y no sucederá nada malo. El evento FrameReported  es el único miembro público de la clase estática Touch. El controlador  es similar a lo siguiente:</p>
<div style="background-color:#ddddd2;text-align:justify;" dir="ltr">
<pre class="libCScode"><span style="color:#3366ff;"><strong>void</strong> </span>OnTouchFrameReported<span style="color:#3366ff;"><strong>(</strong></span>
  object sender, TouchFrameEventArgs args) {
  ...
<strong><span style="color:#3366ff;">}</span></strong></pre>
</div>
<p style="text-align:justify;">Puede instalar varios controladores de eventos Touch.FrameReported en  su aplicación y todos ellos informarán a todos los eventos de toque en  cualquier parte de la aplicación.</p>
<p style="text-align:justify;">TouchFrameEventArgs tiene una propiedad pública denominada  TimeStamp que no he tenido la oportunidad de usar y tres métodos  públicos esenciales:</p>
<ul style="text-align:justify;">
<li>TouchPoint GetPrimaryTouchPoint(UIElement relativeTo)</li>
<li>TouchPointCollection GetTouchPoints(UIElement relativeTo)</li>
<li>void SuspendMousePromotionUntilTouchUp()</li>
</ul>
<p style="text-align:justify;">El argumento a GetPrimaryTouchPoint o GetTouchPoints se  utiliza exclusivamente para entregar información de posición en el  objeto TouchPoint. Puede usar un valor nulo para este argumento; la  información de posicionamiento será en relación con la esquina superior  izquierda de la aplicación Silverlight completa.</p>
<p style="text-align:justify;">La tecnología multitoque admite varios dedos que toquen la  pantalla y cada dedo que toque la pantalla (hasta el número máximo, que  actualmente es dos) es un punto de toque. El punto de toque principal  hace referencia al dedo que toca la pantalla cuando ningún otro dedo  está tocándola y el botón del mouse no está presionado.</p>
<p style="text-align:justify;">Toque la pantalla con un dedo. Ese es el punto de toque  principal. Con el primer dedo aún tocando la pantalla, toque la pantalla  con un segundo dedo. Obviamente, ese segundo dedo es un punto de toque  principal. Pero ahora, con el segundo dedo aún en contacto con la  pantalla, levante el primer dedo y vuelva a tocar la pantalla con éste.  ¿Es ese un punto de toque principal? No, no es así. Un punto de toque  principal se produce sólo cuando ningún otro dedo está tocando la  pantalla.</p>
<p style="text-align:justify;">Un punto de toque principal asigna el punto de toque que se  promoverá al mouse. En aplicaciones de multitoque reales, debe tener  cuidado de no depender del punto de toque principal, porque el usuario  normalmente no asocia un significado específico al primer toque.</p>
<p style="text-align:justify;">Los eventos se activan sólo para los dedos que realmente  tocan la pantalla. No existe una detección de movimiento del mouse para  los dedos que están muy cerca de la pantalla, pero que no la están  tocando.</p>
<p style="text-align:justify;">De manera predeterminada, la actividad que implica el punto  de toque principal se promueve a distintos eventos del mouse. Esto  permite que las aplicaciones existentes respondan a un toque sin ninguna  codificación especial. Tocar la pantalla se transforma en un evento  MouseLeftButtonDown, mover el dedo mientras aún esté tocando la pantalla  se transforma en un evento MouseMove y levantar el dedo es un evento  MouseLeftButtonUp.</p>
<p style="text-align:justify;">El objeto MouseEventArgs que acompaña los mensajes del mouse  incluye una propiedad denominada StylusDevice que ayuda a diferenciar  los eventos del mouse de los eventos de lápiz y de toque. Mi experiencia  con el equipo portátil PDC indica que la propiedad DeviceType es igual  que TabletDeviceType.Mouse cuando el evento proviene del mouse y que  TabletDeviceType.Touch, sin importar si la pantalla se toca con el dedo o  el lápiz.</p>
<p style="text-align:justify;">Sólo el punto de toque principal se promueve a los eventos  del mouse y, como el nombre del tercer método de TouchFrameEventArgs lo  sugiere, puede inhibir esa promoción. Más adelante hablaremos sobre  esto.</p>
<p style="text-align:justify;">Un evento Touch.FrameReported específico se podría activar  basado en un punto de toque o varios puntos de toque.  TouchPointCollection que se devuelve del método GetTouchPoints contiene  todos los puntos de toque asociados a un evento específico. TouchPoint  que se devuelve de GetPrimaryTouchPoint siempre constituye un punto de  toque principal. Si no existe ningún punto de toque principal asociado  al evento específico, GetPrimaryTouchPoint devolverá un valor nulo.</p>
<p style="text-align:justify;">Incluso si TouchPoint que se devuelve de GetPrimaryTouchPoint  no es un valor nulo, no será el mismo objeto que uno de los objetos  TouchPoint devueltos de GetTouchPoints, aunque todas las propiedades  serán las mismas si el argumento transmitido a los métodos es el mismo.</p>
<p style="text-align:justify;">La clase TouchPoint define las siguientes cuatro propiedades  get-only, todas respaldadas por propiedades de dependencia:</p>
<ul style="text-align:justify;">
<li>Action de tipo TouchAction, una enumeración con los  miembros Down, Move y Up.</li>
<li>Position de tipo Point en relación con el elemento  transmitido como un argumento al método GetPrimaryTouchPoint o  GetTouchPoints (o en relación con la esquina superior izquierda de la  aplicación para un argumento de nulo).</li>
<li>Size de tipo Size. La información de tamaño no se  encuentra disponible en el equipo portátil PDC, de modo que nunca he  trabajado con esta propiedad.</li>
<li>TouchDevice de tipo TouchDevice.</li>
</ul>
<p style="text-align:justify;">Puede llamar al método SuspendMousePromotionUntilTouchUp  desde el controlador de eventos sólo cuando GetPrimaryTouchPoint  devuelve un objeto no nulo y la propiedad Action sea igual a  TouchAction.Down.</p>
<p style="text-align:justify;">El objeto TouchDevice tiene dos propiedades get-only, también  todas respaldadas por propiedades de dependencia:</p>
<ul style="text-align:justify;">
<li>DirectlyOver de tipo UIElement, el elemento superior por  debajo del dedo.</li>
<li>Id de tipo int.</li>
</ul>
<p style="text-align:justify;">Es necesario que DirectlyOver no sea un elemento secundario  del elemento transmitido a GetPrimaryTouchPoint o GetTouchPoints. Esta  propiedad puede ser nula si el dedo se encuentra dentro de la aplicación  Silverlight (según lo definan las dimensiones del objeto de complemento  Silverlight), pero no dentro del área que abarca un control con prueba  de acceso. (Los paneles con un pincel de fondo nulo no son paneles con  prueba de acceso).</p>
<p style="text-align:justify;">La propiedad ID es fundamental para distinguir entre varios  dedos. Un serie específica de eventos asociados a un dedo especifico  siempre empezará con Action de Down cuando el dedo toque la pantalla,  seguido de eventos Move y finalizará con un evento Up. Todos estos  eventos se asociarán con el mismo ID. (Sin embargo, no se debe suponer  que un punto de toque principal tendrá un valor ID de 0 o 1).</p>
<p style="text-align:justify;">La mayoría del código multitoque trivial hará uso de una  colección Dictionary donde la propiedad ID de TouchDevice es la clave  del diccionario. Así es cómo almacenará información para un dedo  específico en todos los eventos.</p>
<h2 style="text-align:justify;">Análisis de los eventos</h2>
<p style="text-align:justify;">Al explorar un nuevo dispositivo de entrada, siempre es útil  escribir una pequeña aplicación que registre los eventos en la pantalla,  de modo que pueda tener una idea de cuál es su aspecto. Entre el código  descargable que viene adjunto a este artículo, hay un proyecto  denominado MultiTouchEvents. Este proyecto consiste en dos controles  TextBox en paralelo que muestran los eventos de multitoque para dos  dedos. Si tiene un monitor multitoque, puede ejecutar este programa en <a id="ctl00_MTContentSelector1_mainContentContainer_ctl05" href="http://charlespetzold.com/silverlight/MultiTouchEvents" target="_blank">charlespetzold.com/silverlight/MultiTouchEvents</a>.</p>
<p style="text-align:justify;">El archivo XAML consiste en sólo una Cuadrícula de dos  columnas que contiene dos controles TextBox denominados txtbox1 y  txtbox2. El archivo de código se muestra en la <strong>figura 1</strong>.</p>
<p style="text-align:justify;">Figura 1 <strong>Código para MultiTouchEvents</strong></p>
<p style="text-align:justify;"><strong><br />
</strong></p>
<div style="background-color:#ddddd2;text-align:justify;" dir="ltr">
<pre class="libCScode">using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;

namespace MultiTouchEvents {
  public partial class MainPage : UserControl {
    Dictionary&lt;int, TextBox&gt; touchDict =
      new Dictionary&lt;int, TextBox&gt;();

    public MainPage() {
      InitializeComponent();
      Touch.FrameReported += OnTouchFrameReported;
    }

    void OnTouchFrameReported(
      object sender, TouchFrameEventArgs args) {

      TouchPoint primaryTouchPoint =
        args.GetPrimaryTouchPoint(null);

      // Inhibit mouse promotion
      if (primaryTouchPoint != null &amp;&amp;
        primaryTouchPoint.Action == TouchAction.Down)
        args.SuspendMousePromotionUntilTouchUp();

      TouchPointCollection touchPoints =
        args.GetTouchPoints(null);

      foreach (TouchPoint touchPoint in touchPoints) {
        TextBox txtbox = null;
        int id = touchPoint.TouchDevice.Id;
        // Limit touch points to 2
        if (touchDict.Count == 2 &amp;&amp;
          !touchDict.ContainsKey(id)) continue;

        switch (touchPoint.Action) {
          case TouchAction.Down:
            txtbox = touchDict.ContainsValue(txtbox1) ?
              txtbox2 : txtbox1;
            touchDict.Add(id, txtbox);
            break;

          case TouchAction.Move:
            txtbox = touchDict[id];
            break;

          case TouchAction.Up:
            txtbox = touchDict[id];
            touchDict.Remove(id);
            break;
        }

        txtbox.Text += String.Format("{0} {1} {2}\r\n",
          touchPoint.TouchDevice.Id, touchPoint.Action,
          touchPoint.Position);
        txtbox.Select(txtbox.Text.Length, 0);
      }
    }
  }
}</pre>
</div>
<p style="text-align:justify;">Observe la definición de diccionario en la parte superior de la clase. El diccionario realiza un seguimiento de qué TextBox está asociado a los dos ID de punto de toque.</p>
<p style="text-align:justify;">El controlador OnTouchFrameReported empieza por inhibir toda la promoción del mouse. Ese es el único motivo para la llamada a GetPrimaryTouchPoint y, con bastante frecuencia, el único motivo por el cual se llamará a este método en un programa real.</p>
<p style="text-align:justify;">Un bucle Foreach se enumera a través de los miembros TouchPoint de TouchPointCollection que se devuelve de GetTouchPoints. Debido a que el programa contiene sólo dos controles TextBox y es el único equipado para controlar dos puntos de toque, ignora cualquier punto de toque en que el diccionario ya tenga dos y en que ID no se encuentre en ese diccionario. (Del mismo que desea que su programa Silverlight compatible con multitoque controle varios dedos, no desea que éste se bloquee si encuentra demasiados dedos). ID se agrega al diccionario en un evento y se elimina del diccionario en un evento Up.</p>
<p style="text-align:justify;">Observará que en ocasiones los controles TextBox se saturan con demasiado texto y que será necesario que seleccione todo el texto y lo elimine (Ctrl-A, Ctrl-X) para que el programa se vuelva a ejecutar correctamente.</p>
<p style="text-align:justify;">Lo que observará en este programa es que la entrada de multitoque se captura en un nivel de aplicación. Por ejemplo, si presiona su dedo en la aplicación y después lo quita de la aplicación, esta última continuará recibiendo eventos Move y, finalmente, un evento Up cuando levante su dedo. De hecho, una vez que la aplicación obtiene alguna entrada de multitoque, se inhibe la entrada de multitoque a otras aplicaciones y el cursor del mouse desaparece.</p>
<p style="text-align:justify;">Esta captura de entrada de multitoque centrada en la aplicación permite que la aplicación MultiTouchEvents sea muy segura de ella misma. Por ejemplo, en los eventos Move y Down, el programa simplemente supone que ID se encontrará en el diccionario. En una aplicación real, es posible que desee que sea más infalible en caso de que suceda algo extraño, pero siempre obtendrá el evento Down.<br />
Manipulación con dos dedos</p>
<p style="text-align:justify;">Uno de los escenarios multitoque estándar es una galería fotográfica que permite mover fotografías, cambiarles el tamaño y girarlas con los dedos. Dedicí probar algo similar, sólo con el propósito de conocer mejor los principios implicados, pero mucho más simple. Mi versión del programa tiene sólo un elemento para manipular, una cadena de texto de la palabra “TOUCH”. Puede ejecutar el programa TwoFingerManipulation en mi sitio web en charlespetzold.com/silverlight/TwoFingerManipulation.</p>
<p style="text-align:justify;">Cuando codifique una aplicación para tecnología multitoque, probablemente siempre inhibirá la promoción del mouse para los controles compatibles con multitoque. Sin embargo, para que su programa se pueda utilizar sin un monitor multitoque, también agregará un procesamiento específico del mouse.</p>
<p style="text-align:justify;">Si tiene sólo un mouse o un solo dedo, aún puede mover la cadena dentro del programa TwoFingerManipulation, pero puede cambiar sólo su posición: la operación gráfica conocida como traslación. Con dos dedos en una pantalla multitoque, también puede escalar el objeto y girarlo.</p>
<p style="text-align:justify;">Cuando me senté a resolver el algoritmo que necesitaría para esta escala y rotación, pronto fue obvio que no existía sólo una solución.</p>
<p style="text-align:justify;">Suponga que un dedo permanece fijo en el punto ptRef. (Todos los puntos aquí son en relación con una superficie de pantalla debajo del objeto que se manipula). El otro dedo se mueve desde el punto ptOld a ptNew. Como se muestra en la figura 2, puede usar estos tres puntos exclusivamente para calcular los factores de escala horizontal y vertical para el objeto.</p>
<p style="text-align:justify;"><a href="http://eliasnegrete.files.wordpress.com/2010/04/silver1.png"><img class="aligncenter size-full wp-image-483" title="Silver1" src="http://eliasnegrete.files.wordpress.com/2010/04/silver1.png?w=500&#038;h=277" alt="" width="500" height="277" /></a></p>
<p style="text-align:justify;">Figura 2 <strong>Movimiento con dos dedos convertido a factores de  escala</strong></p>
<p style="text-align:justify;">Por ejemplo, la escala horizontal es el aumento en la  distancia de ptOld.X y ptNew.X desde ptRef.X o:</p>
<div style="background-color:#ddddd2;text-align:justify;" dir="ltr">
<pre class="libCScode">scaleX = (ptNew.X – ptRef.X) / (ptOld.X – ptRef.X)</pre>
</div>
<p style="text-align:justify;">La escala vertical es similar. Para el ejemplo de la figura 2, el factor de escala horizontal es 2 y el factor de escala vertical es ½.</p>
<p style="text-align:justify;">Sin duda, esta es la forma más fácil de codificarlo. Sin embargo, el programa parece funcionar de forma más natural si los dos dedos también giran el objeto. Esto se muestra en la figura 3.<br />
<a href="http://eliasnegrete.files.wordpress.com/2010/04/silver2.png"><img class="aligncenter size-full wp-image-484" title="Silver2" src="http://eliasnegrete.files.wordpress.com/2010/04/silver2.png?w=500&#038;h=277" alt="" width="500" height="277" /></a><br />
Figura 3 Movimiento con dos dedos convertido a rotación y escala</p>
<p style="text-align:justify;">En primer lugar, se calculan los ángulos de los dos vectores, de ptRef a ptOld y de ptRef a ptNew. (El método Math.Atan2 es ideal para este trabajo). Luego, ptOld se gira en relación con ptRef por la diferencia en estos ángulos. Este ptOld girado luego se usa con ptRef y ptNew para calcular los factores de escala. Estos factores de escala son muchos menos porque se ha eliminado un componente de rotación.</p>
<p style="text-align:justify;">El algoritmo real (implementado en el método ComputeMoveMatrix en el archivo C#) se vuelve bastante fácil. Sin embargo, el programa también necesitaba un grupo de código de soporte de transformación para compensar las deficiencias de las clases de transformación de Silverlight, que no tienen ninguna propiedad pública Value o multiplicación de matriz como en WPF.</p>
<p style="text-align:justify;">En el programa real, ambos dedos se pueden mover al mismo tiempo y el control de la interacción entre los dos dedos es más simple de lo que parece inicialmente. Cada dedo que se mueve se controla de forma independiente usando el otro dedo como el punto de referencia. A pesar de la mayor complejidad del cálculo, el resultado parece más natural y creo que existe una explicación simple para esto: en la vida real, es muy común girar objetos con los dedos, pero es muy poco común escalarlos.</p>
<p style="text-align:justify;">La rotación es tan común en el mundo real que tendría sentido implementarla cuando un objeto sea manipulado con un sólo dedo o el mouse. Esto se demuestra en el programa alternativo AltFingerManipulation (ejecutable en charlespetzold.com/silverlight/AltFingerManipulation). Para dos dedos, el programa funciona igual que TwoFingerManipulation. Para un dedo, calcula una rotación en relación con el centro del objeto y después usa cualquier movimiento en exceso lejos del centro para traslación.<br />
Ajuste del evento con más eventos</p>
<p style="text-align:justify;">En general, me gusta trabajar con clases que Microsoft proporciona cuidadosamente en un marco en lugar de empaquetarlas en mi propio código. Sin embargo, tenía en mente algunas aplicaciones multitoque que creía que se beneficiarían de una interfaz de evento más sofisticada.</p>
<p style="text-align:justify;">Primero deseaba un sistema más modular. Deseaba combinar controles personalizados que controlaran su propia entrada de toque con controles existentes de Silverlight que simplemente permiten que una entrada de toque se convierta en una entrada de mouse. También deseaba implementar captura. Aunque la aplicación Silverlight misma captura el dispositivo multitoque, deseaba controles individuales para capturar de forma independiente un punto de toque específico.</p>
<p style="text-align:justify;">Además deseaba los eventos Enter y Leave. En un sentido, estos eventos son lo opuesto a un paradigma de captura. Para entender la diferencia, piense en un teclado de piano en pantalla en que cada tecla sea una instancia del control PianoKey. Al principio, podría pensar en estas teclas como botones activados por mouse. En un evento down del mouse, la tecla del piano activa una nota y en un evento up del mouse, la desactiva.</p>
<p style="text-align:justify;">Pero eso no es lo que desea para las teclas del piano. Desea poder arrastrar su dedo hacia arriba y hacia abajo del teclado para realizar efectos glissando. A las teclas realmente no les interesan los eventos Down y Up. En realidad, sólo les importan los eventos Enter y Leave.</p>
<p style="text-align:justify;">WPF 4 y Microsoft Surface ya han enrutado eventos de toque y probablemente éstos se incorporen en Silverlight en el futuro. Pero pude satisfacer mis necesidades actuales con una clase que denominé TouchManager, implementada en el proyecto de biblioteca Petzold.MultiTouch en la solución TouchDialDemos. Una gran parte de TouchManager consiste en métodos estáticos, campos y un controlador estático para el evento Touch.FrameReported que le permite administrar eventos de toque en toda una aplicación.</p>
<p style="text-align:justify;">Una clase que desea registrarse con TouchManager crea una instancia similar a lo siguiente:</p>
<div style="background-color:#ddddd2;text-align:justify;" dir="ltr">
<pre class="libCScode">TouchManager touchManager = new TouchManager(element);</pre>
</div>
<p>El argumento de constructor es de tipo UIElement y, generalmente, será el elemento que cree el objeto:</p>
<div style="background-color:#ddddd2;" dir="ltr">
<pre class="libCScode">TouchManager touchManager = new TouchManager(this);</pre>
</div>
<p>Al registrarse con TouchManager, la clase indica que está interesada en todos los eventos multitoque en que la propiedad DirectlyOver de TouchDevice son secundarios del elemento transmitido al constructor TouchManager y que estos eventos de multitoque no se deben promover a los eventos del mouse. No existe ninguna manera de anular el registro de un elemento.</p>
<p>Después de crear una nueva instancia de TouchManager, una clase puede instalar controladores para los eventos denominados TouchDown, TouchMove, TouchUp, TouchEnter, TouchLeave y LostTouchCapture:</p>
<div style="background-color:#ddddd2;" dir="ltr">
<pre class="libCScode">touchManager.TouchEnter += OnTouchEnter;</pre>
</div>
<p>Todos los controladores se definen de acuerdo con el delegado EventHandler:</p>
<div style="background-color:#ddddd2;" dir="ltr">
<pre class="libCScode">void OnTouchEnter(
  object sender, TouchEventArgs args) {
  ...
}</pre>
</div>
<p>TouchEventArgs define cuatro propiedades:</p>
<p>* Source de tipo UIElement, que es un elemento que originalmente se transmite al constructor TouchManager.<br />
* Position de tipo Point. Esta posición se encuentra en relación con Source.<br />
* DirectlyOver de tipo UIElement, que simplemente se copia del objeto TouchDevice.<br />
* Id de tipo int, también sólo se copia del objeto TouchDevice.</p>
<p>Sólo cuando se procesa el evento TouchDown, a una clase se le permite llamar al método Capture con la Id. de punto de toque asociada a ese evento:</p>
<div style="background-color:#ddddd2;" dir="ltr">
<pre class="libCScode">touchManager.Capture(id);</pre>
</div>
<p>Todas las entradas de toque posteriores para esa ID se dirigen al elemento asociado a esta instancia TouchManager hasta que el evento TouchUp o una llamada explícita llama a ReleaseTouchCapture. En cualquiera de los casos, TouchManager activa el evento LostTouchCapture.</p>
<p>Los eventos generalmente se encuentran en el siguiente orden: TouchEnter, TouchDown, TouchMove, TouchUp, TouchLeave y LostTouchCapture (si corresponde). Por supuesto, pueden existir múltiples eventos TouchMove entre TouchDown y TouchUp. Cuando un punto de toque no se captura, pueden existir varios eventos en el orden TouchLeave, TouchEnter y TouchMove, ya que el punto de toque sale de un elemento registrado e ingresa en otro.<br />
El control TouchDial</p>
<p>Los cambios en los paradigmas de entrada de usuario con frecuencia necesitan que se cuestione antiguas suposiciones sobre el diseño adecuado de los controles y de otros mecanismos de entrada. Por ejemplo, pocos controles GUI están afianzados de forma tan sólida como la barra de desplazamiento y el control deslizante. Estos controles se utilizan para desplazarse por documentos o imágenes grandes, pero también como controles de volumen pequeños en los reproductores multimedia.</p>
<p>Cuando estaba considerando hacer un control de volumen en pantalla que respondiera al tacto, me preguntaba si el enfoque antiguo era realmente el enfoque correcto. En el mundo real, los controles deslizantes algunas veces se usan como controles de volumen, pero generalmente se restringen a paneles de mezcla de audio o ecualizadores gráficos profesionales. En el mundo, la mayoría de los controles de volumen son botones de sintonización. ¿Un botón de sintonización podría ser una mejor solución para un control de volumen habilitado para toque?</p>
<p>No pretendo tener la respuesta definitiva, pero les mostraré como construir uno.</p>
<p>El control TouchDial está incluido en la biblioteca Petzold.MultiTouch en la solución TouchDialDemos (para obtener detalles, consulte la descarga de código). TouchDial se deriva de RangeBase, de modo que puede sacar provecho de las propiedades Minimum, Maximum y Value, que incluye la lógica de coerción para mantener a Value dentro del intervalo Minimum y Maximum, y del evento ValueChanged. Pero en TouchDial, las propiedades Minimum, Maximum y Value todas son ángulos en unidades de grado.</p>
<p>TouchDial responde al mouse y al toque, y utiliza la clase TouchManager para capturar un punto de toque. Con el mouse o la entrada táctil, TouchDial cambia la propiedad Value durante un evento Move de acuerdo con la nueva ubicación y la ubicación anterior del mouse o del dedo en relación con un punto central. La acción es bastante similar a la figura 3, excepto que no hay implicada ninguna escala. El evento Move usa el método Math.Atan2 para convertir las coordenadas cartesianas en ángulos y después suma la diferencia entre los dos ángulos a Value.</p>
<p>TouchDial no incluye una plantilla predeterminada y, por lo tanto, no tiene ninguna apariencia visual predeterminada. Al usar TouchDial, su trabajo es proporcionar una plantilla, pero puede estar conformada por sólo algunos elementos. Es obvio que algo en esta plantilla debe girar probablemente de acuerdo con los cambios en la propiedad Value. Para su comodidad, TouchDial proporciona una propiedad get-only RotateTransform, en que la propiedad Angle es igual a la propiedad Value de RangeBase, y las propiedades CenterX y CenterY reflejan el centro del control.</p>
<p>En la figura 4 se muestra un archivo XAML con dos controles TouchDial que hacen referencia a un estilo y a una plantilla definidos como un recurso.</p>
<p><strong>Figura 4 El archivo XAML para el proyecto SimpleTouchDialTemplate</strong></p>
<div style="background-color:#ddddd2;" dir="ltr">
<pre class="libCScode">&lt;UserControl x:Class="SimpleTouchDialTemplate.MainPage"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:multitouch="clr-namespace:Petzold.MultiTouch;assembly=Petzold.MultiTouch"&gt;
  &lt;UserControl.Resources&gt;

    &lt;Style x:Key="touchDialStyle"
      TargetType="multitouch:TouchDial"&gt;
      &lt;Setter Property="Maximum" Value="180" /&gt;
      &lt;Setter Property="Minimum" Value="-180" /&gt;
      &lt;Setter Property="Width" Value="200" /&gt;
      &lt;Setter Property="Height" Value="200" /&gt;
      &lt;Setter Property="HorizontalAlignment" Value="Center" /&gt;

      &lt;Setter Property="VerticalAlignment" Value="Center" /&gt;
      &lt;Setter Property="Template"&gt;
        &lt;Setter.Value&gt;
          &lt;ControlTemplate TargetType="multitouch:TouchDial"&gt;
            &lt;Grid&gt;
              &lt;Ellipse Fill="{TemplateBinding Background}" /&gt;

              &lt;Grid RenderTransform="{TemplateBinding RotateTransform}"&gt;
                &lt;Rectangle Width="20" Margin="10"
                  Fill="{TemplateBinding Foreground}" /&gt;
              &lt;/Grid&gt;
            &lt;/Grid&gt;
          &lt;/ControlTemplate&gt;
        &lt;/Setter.Value&gt;

      &lt;/Setter&gt;
    &lt;/Style&gt;
  &lt;/UserControl.Resources&gt;

  &lt;Grid x:Name="LayoutRoot"&gt;
    &lt;Grid.ColumnDefinitions&gt;
      &lt;ColumnDefinition Width="*" /&gt;

      &lt;ColumnDefinition Width="*" /&gt;
    &lt;/Grid.ColumnDefinitions&gt;

    &lt;multitouch:TouchDial Grid.Column="0"
      Background="Blue" Foreground="Pink"
      Style="{StaticResource touchDialStyle}" /&gt;

    &lt;multitouch:TouchDial Grid.Column="1"
      Background="Red" Foreground="Aqua"
      Style="{StaticResource touchDialStyle}" /&gt;
  &lt;/Grid&gt;
&lt;/UserControl&gt;</pre>
</div>
<p>Observe que el estilo establece la propiedad Maximum en 180 y la propiedad Minimum en -180 para permitir que la barra gire en 180 grados a la izquierda y a la derecha. (Curiosamente, el programa no funcionó correctamente cuando cambié el orden de esas dos propiedades en la definición de estilo). El botón de sintonización consiste simplemente en una barra conformada de un elemento Rectangle dentro de un elemento Ellipse. La barra se encuentra dentro de una Cuadrícula de una sola celda, que tiene su RenderTransform enlazado a la propiedad RotateTransform calculada por TouchDial.</p>
<p>El programa SimpleTouchDialTemplate se muestra en ejecución en la figura 5.<br />
<a href="http://eliasnegrete.files.wordpress.com/2010/04/silver3.png"><img class="aligncenter size-full wp-image-485" title="Silver3" src="http://eliasnegrete.files.wordpress.com/2010/04/silver3.png?w=500&#038;h=228" alt="" width="500" height="228" /></a><br />
Figura 5 El programa SimpleTouchDialTemplate</p>
<p>Puede probarlo (junto con los siguientes dos programas que analizaré en este documento) en charlespetzold.com/silverlight/TouchDialDemos.</p>
<p>Girar la barra con el mouse dentro del círculo es un poco difícil y se siente más natural con un dedo. Observe que puede girar la barra cuando presiona el botón primario del mouse (o toque la pantalla con su dedo) en cualquier parte dentro del círculo. Mientras gira la barra, puede alejar el mouse o el dedo porque ambos están capturados.</p>
<p>Si desea restringir que el usuario gire la barra, salvo que el mouse o el dedo esté presionado directamente sobre la barra, puede establecer la propiedad IsHitTestVisible de Ellipse en False.</p>
<p>Mi primera versión del control TouchDial no incluyó la propiedad RotateTransform. Tenía más sentido para mí que la plantilla pudiera incluir un RotateTransform explícito, en que la propiedad Angle fuera el destino de TemplateBinding en la propiedad Value del control. Sin embargo, en Silverlight 3, los enlaces no funcionan en las propiedades de clases que no se derivan de FrameworkElement, de modo que la propiedad Angle de RotateTransform no sea un destino de enlace (esto está corregido en Silverlight 4).</p>
<p>La rotación siempre está en referencia a un punto central y ese pequeño hecho complica el control TouchDial. TouchDial usa un punto central de dos formas: para calcular los ángulos que se muestran en la figura 3 y además para establecer las propiedades CenterX y CenterY de RotateTransform que crea. De manera predeterminada, TouchDial calcula ambos centros como la mitad de las propiedades ActualWidth y ActualHeight, que es el centro del control, pero existen varios casos en que eso no es lo que se desea.</p>
<p>Por ejemplo, en la plantilla de la figura 4, suponga que desea enlazar la propiedad RenderTransform de Rectangle a la propiedad RotateTransform de TouchDial. No funcionará correctamente porque TouchDial está estableciendo las propiedades CenterX y CenterY de RotateTransform en 100, pero el centro de Rectangle en relación a él mismo es realmente el punto (10, 90). Para permitirle invalidar estos valores predeterminados que TouchDial calcula a partir del tamaño del control, el control define las propiedades RenderCenterX y RenderCenterY. En la propiedad SimpleTouchDialTemplate, puede establecer estas propiedades en el estilo de la siguiente manera:</p>
<p>O bien, puede establecer estas propiedades en cero y establecer RenderTransformOrigin del elemento Rectangle para indicar el centro en relación a él mismo:</p>
<p>RenderTransformOrigin=&#8221;0.5 0.5&#8243;</p>
<p>Es posible que también desee usar TouchDial en los casos en que el punto que se utiliza para referencia del movimiento del mouse o del dedo no se encuentre en el centro del control. En ese caso, puede establecer las propiedades InputCenterX e InputCenterY para invalidar los valores predeterminados.</p>
<p>En la figura 6 se muestra el archivo XAML del proyecto OffCenterTouchDial.</p>
<p>Figura 6 <strong>El archivo XAML de OffCenterTouchDial</strong></p>
<div style="background-color:#ddddd2;" dir="ltr">
<pre class="libCScode">&lt;UserControl x:Class="OffCenterTouchDial.MainPage"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:multitouch="clr-namespace:Petzold.MultiTouch;assembly=Petzold.MultiTouch"&gt;
  &lt;Grid x:Name="LayoutRoot"&gt;

    &lt;multitouch:TouchDial Width="300" Height="200"
      HorizontalAlignment="Center" VerticalAlignment="Center"
      Minimum="-20" Maximum="20"
      InputCenterX="35" InputCenterY="100"
      RenderCenterX="15" RenderCenterY="15"&gt;
      &lt;multitouch:TouchDial.Template&gt;
        &lt;ControlTemplate TargetType="multitouch:TouchDial"&gt;
          &lt;Grid Background="Pink"&gt;
            &lt;Rectangle Height="30" Width="260"
              RadiusX="15" RadiusY="15" Fill="Lime"
              RenderTransform="{TemplateBinding RotateTransform}" /&gt;
            &lt;Ellipse Width="10" Height="10"
              Fill="Black" HorizontalAlignment="Left"
              Margin="30" /&gt;

          &lt;/Grid&gt;
        &lt;/ControlTemplate&gt;
      &lt;/multitouch:TouchDial.Template&gt;
    &lt;/multitouch:TouchDial&gt;
  &lt;/Grid&gt;
&lt;/UserControl&gt;</pre>
</div>
<p>Este archivo contiene un control único TouchDial, en que las propiedades se establecen en el control mismo y la propiedad Template se establece en una plantilla Control que contiene una Cuadrícula de una sola celda con Rectangle y Ellipse. Ellipse es un punto de pivote simbólico diminuto para Rectangle, que puede hacer girar hacia arriba o hacia abajo en 20 grados, como se muestra en la figura 7.<br />
<a href="http://eliasnegrete.files.wordpress.com/2010/04/silver4.png"><img class="aligncenter size-full wp-image-486" title="Silver4" src="http://eliasnegrete.files.wordpress.com/2010/04/silver4.png?w=500&#038;h=333" alt="" width="500" height="333" /></a><br />
Figura 7 El programa OffCenterTouchDial</p>
<p>Las propiedades InputCenterX e InputCenterY siempre están en relación con el control completo, de modo que indican la ubicación del centro del elemento Ellipse dentro de la Cuadrícula rosa. Las propiedades RenderCenterX y RenderCenterY siempre están en relación con la parte del control al cual se aplica la propiedad RotateTransform.<br />
Controles de volumen y PitchPipe</p>
<p>Los dos ejemplos anteriores demuestran cómo puede dar una apariencia visual a TouchDial al establecer la propiedad Template explícitamente en revisión o, si necesita compartir plantillas entre varios controles, al hacer referencia a ControlTemplate que se define como un recurso.</p>
<p>También puede derivar una nueva clase de TouchDial y utilizar el archivo XAML exclusivamente para establecer una plantilla. Este es el caso de RidgedTouchDial en la biblioteca Petzold.MultiTouch. RidgedTouchDial es lo mismo que TouchDial, salvo que tiene un tamaño y una apariencia visual específicos (lo que se explica más adelante).</p>
<p>También es posible usar TouchDial (o una clase derivada como RidgedTouchDial) dentro de una clase derivada de UserControl. La ventaja de este enfoque es que puede ocultar todas las propiedades definidas por RangeBase, que incluyen Minimum, Maximum y Value, y reemplazarlas por una nueva propiedad.</p>
<p>Este es el caso de VolumeControl. VolumeControl se deriva de RidgedTouchDial para su apariencia visual y define una nueva propiedad denominada Volume. La propiedad Volume está respaldada por una propiedad de dependencia y cualquier cambio a esa propiedad activa un evento VolumeChanged.</p>
<p>El archivo XAML para VolumeControl simplemente hace referencia al control RidgedTouchDial y establece varias propiedades, que incluyen Minimum, Maximum y Value:</p>
<div class="CodeSnippetTitleBar"></div>
<div style="background-color:#ddddd2;" dir="ltr">
<pre class="libCScode">&lt;src:RidgedTouchDial
  Name="touchDial"
  Background="{Binding Background}"
  Maximum="150"
  Minimum="-150"
  Value="-150"
  ValueChanged="OnTouchDialValueChanged" /&gt;</pre>
</div>
<br /> Tagged: <a href='http://eliasnegrete.wordpress.com/tag/multitoque/'>Multitoque</a>, <a href='http://eliasnegrete.wordpress.com/tag/programacion/'>Programacion</a>, <a href='http://eliasnegrete.wordpress.com/tag/silverlight/'>Silverlight</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eliasnegrete.wordpress.com/482/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eliasnegrete.wordpress.com/482/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eliasnegrete.wordpress.com/482/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eliasnegrete.wordpress.com/482/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eliasnegrete.wordpress.com/482/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eliasnegrete.wordpress.com/482/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eliasnegrete.wordpress.com/482/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eliasnegrete.wordpress.com/482/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eliasnegrete.wordpress.com/482/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eliasnegrete.wordpress.com/482/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eliasnegrete.wordpress.com/482/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eliasnegrete.wordpress.com/482/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eliasnegrete.wordpress.com/482/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eliasnegrete.wordpress.com/482/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=482&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eliasnegrete.wordpress.com/2010/04/25/exploracion-de-soporte-tecnico-multitoque-en-silverlight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f9e7caebfe356c89607c929ce4ce8eab?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efnegrete</media:title>
		</media:content>

		<media:content url="http://eliasnegrete.files.wordpress.com/2010/04/silver1.png" medium="image">
			<media:title type="html">Silver1</media:title>
		</media:content>

		<media:content url="http://eliasnegrete.files.wordpress.com/2010/04/silver2.png" medium="image">
			<media:title type="html">Silver2</media:title>
		</media:content>

		<media:content url="http://eliasnegrete.files.wordpress.com/2010/04/silver3.png" medium="image">
			<media:title type="html">Silver3</media:title>
		</media:content>

		<media:content url="http://eliasnegrete.files.wordpress.com/2010/04/silver4.png" medium="image">
			<media:title type="html">Silver4</media:title>
		</media:content>
	</item>
		<item>
		<title>Pro WPF in VB 2010</title>
		<link>http://eliasnegrete.wordpress.com/2010/04/25/pro-wpf-in-vb-2010/</link>
		<comments>http://eliasnegrete.wordpress.com/2010/04/25/pro-wpf-in-vb-2010/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 03:29:39 +0000</pubDate>
		<dc:creator>efnegrete</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Visual 2010]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[xaml]]></category>

		<guid isPermaLink="false">http://eliasnegrete.wordpress.com/?p=487</guid>
		<description><![CDATA[Apress (4-2010) &#124; PDF &#124; 1212 pages &#124; 1430272406 &#124; 20.8Mb Pro WPF en Visual Basic 2010 / por Matthew MacDonald (Autor). De Microsoft Windows Presentation Foundation (WPF) proporciona la base para la creación de aplicaciones y experiencias de usuario de alta calidad para el sistema operativo Windows. Se mezcla la interfaz de usuario de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=487&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://eliasnegrete.files.wordpress.com/2010/04/book40.jpg"></a></p>
<p style="text-align:center;"><a href="http://eliasnegrete.files.wordpress.com/2010/04/book40.jpg"><img class="alignnone size-full wp-image-488" title="book40" src="http://eliasnegrete.files.wordpress.com/2010/04/book40.jpg?w=500" alt=""   /></a></p>
<p style="text-align:center;">Apress (4-2010) | PDF | 1212 pages | 1430272406 | 20.8Mb</p>
<p style="text-align:justify;">Pro WPF en Visual Basic 2010 / por  Matthew MacDonald (Autor). De Microsoft Windows Presentation Foundation  (WPF) proporciona la base para la creación de aplicaciones y  experiencias de usuario de alta calidad para el sistema operativo  Windows. Se mezcla la interfaz de usuario de aplicaciones, documentos y  contenidos de los medios, aprovechando toda la potencia del sistema  operativo de su computadora. Su  funcionalidad se extiende al apoyo a los Tablet PC y otras formas de  dispositivo de entrada, y proporciona una imagen más moderna y  canalización de impresión, la accesibilidad y la infraestructura de  automatización de la interfaz de usuario, por datos de interfaz de  usuario y visualización, y puntos de integración para tejer la  experiencia de aplicación en el Windows concha.</p>
<p style="text-align:justify;"><span id="more-487"></span></p>
<p style="text-align:justify;">Este  libro le muestra cómo funciona realmente WPF. Este le da el  no-absurdo, consejos prácticos que necesitan para crear aplicaciones WPF  de alta calidad en forma rápida y sencilla. Habiendo construido una  base firme, va a explorar los aspectos más avanzados de WPF y cómo se  relacionan con los elementos de las otras. NET 4.0 plataforma y  tecnologías asociadas, tales como Silverlight.<br />
Lo que aprenderá<br />
* WPF básico: XAML, diseño,  elementos esenciales de control y flujo de datos<br />
* Aplicaciones WPF:  Navegación, comandos, localización, y el despliegue<br />
* Controles  avanzados: Los controles personalizados, menús, barras de herramientas, y  los árboles<br />
* WPF documentos: diseño de texto, impresión y embalaje de  documentos<br />
* Los gráficos y  multimedia: las formas de dibujo, sonido y vídeo, animación,  transformaciones geométricas, y las imágenes</p>
<p>Download:<br />
<a href="http://depositfiles.com/files/v9wt6ymas" target="_blank">http://depositfiles.com/files/v9wt6ymas</a><br />
<a href="http://sharingmatrix.com/file/3753024" target="_blank">http://sharingmatrix.com/file/3753024</a></p>
<br /> Tagged: <a href='http://eliasnegrete.wordpress.com/tag/book/'>Book</a>, <a href='http://eliasnegrete.wordpress.com/tag/visual-2010/'>Visual 2010</a>, <a href='http://eliasnegrete.wordpress.com/tag/wpf/'>WPF</a>, <a href='http://eliasnegrete.wordpress.com/tag/xaml/'>xaml</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eliasnegrete.wordpress.com/487/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eliasnegrete.wordpress.com/487/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eliasnegrete.wordpress.com/487/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eliasnegrete.wordpress.com/487/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eliasnegrete.wordpress.com/487/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eliasnegrete.wordpress.com/487/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eliasnegrete.wordpress.com/487/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eliasnegrete.wordpress.com/487/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eliasnegrete.wordpress.com/487/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eliasnegrete.wordpress.com/487/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eliasnegrete.wordpress.com/487/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eliasnegrete.wordpress.com/487/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eliasnegrete.wordpress.com/487/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eliasnegrete.wordpress.com/487/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=487&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eliasnegrete.wordpress.com/2010/04/25/pro-wpf-in-vb-2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f9e7caebfe356c89607c929ce4ce8eab?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efnegrete</media:title>
		</media:content>

		<media:content url="http://eliasnegrete.files.wordpress.com/2010/04/book40.jpg" medium="image">
			<media:title type="html">book40</media:title>
		</media:content>
	</item>
		<item>
		<title>Alto rendimiento de JavaScript</title>
		<link>http://eliasnegrete.wordpress.com/2010/04/16/alto-rendimiento-de-javascript/</link>
		<comments>http://eliasnegrete.wordpress.com/2010/04/16/alto-rendimiento-de-javascript/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 01:07:22 +0000</pubDate>
		<dc:creator>efnegrete</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://eliasnegrete.wordpress.com/?p=475</guid>
		<description><![CDATA[Alto rendimiento de Javascript / por Nicholas C. Zakas (Autor). Si usted es como la mayoría de los desarrolladores, que dependen en gran medida Javascript para construir interactiva y rápida respuesta de aplicaciones web. El problema es que todas esas líneas de código javascript puede ralentizar sus aplicaciones. Este libro revela las técnicas y estrategias [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=475&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://eliasnegrete.files.wordpress.com/2010/04/book39.jpg"><img class="aligncenter size-full wp-image-476" title="book39" src="http://eliasnegrete.files.wordpress.com/2010/04/book39.jpg?w=500" alt=""   /> </a></p>
<p style="text-align:justify;">Alto  rendimiento de Javascript / por Nicholas C. Zakas (Autor). Si usted es  como la mayoría de los desarrolladores, que dependen en gran medida  Javascript para construir interactiva y rápida respuesta de aplicaciones  web. El problema es que todas esas líneas de código  javascript puede ralentizar sus aplicaciones. Este libro revela las técnicas y estrategias para  ayudar a eliminar los cuellos de botella durante el desarrollo. Usted aprenderá a mejorar el tiempo de ejecución,  descarga, la interacción con el DOM, el ciclo de vida de la página, y  más.</p>
<p style="text-align:justify;"><span id="more-475"></span></p>
<p style="text-align:justify;">Yahoo! Frontend ingeniero Nicholas C. Zakas y otros cinco  expertos Javascript &#8211; Harmes Ross, Julien Lecomte, Levithan Steven,  Stoyan Stefanov, y Matt Sweeney &#8211; demostrar las maneras óptimas de  cargar el código en una página, y ofrecen consejos para ayudar a su  programación de Javascript correr  tan eficiente y rápidamente como sea posible. Usted aprenderá las mejores prácticas para construir y  desplegar los archivos en un entorno de producción, y herramientas que  pueden ayudarle a encontrar problemas una vez que su sitio va en vivo.<br />
*  Identificar código de problema y el uso más rápido alternativas a  realizar la misma tarea<br />
* Mejorar las secuencias de comandos por  aprender Javascript tiendas y tiene acceso a datos<br />
*  Poner en práctica el código javascript para que no frene la interacción  con el DOM<br />
* Utilice las técnicas de optimización para mejorar el  rendimiento en tiempo de ejecución<br />
* Aprenda formas de garantizar  la interfaz de usuario responda en todo momento<br />
* Lograr  cliente-servidor más rápido de comunicación<br />
* Utilice un sistema de compilación de archivos minify y la  compresión de HTTP que se lo</p>
<p style="text-align:justify;">Download:</p>
<p style="text-align:justify;"><a href="http://depositfiles.com/files/jnenqlfu2" target="_blank">http://depositfiles.com/files/jnenqlfu2</a></p>
<p><a href="http://extabit.com/file/2a0qpq9ygi0py" target="_blank">http://extabit.com/file/2a0qpq9ygi0py</a></p>
<br /> Tagged: <a href='http://eliasnegrete.wordpress.com/tag/book/'>Book</a>, <a href='http://eliasnegrete.wordpress.com/tag/javascript/'>JavaScript</a>, <a href='http://eliasnegrete.wordpress.com/tag/programacion/'>Programacion</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eliasnegrete.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eliasnegrete.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eliasnegrete.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eliasnegrete.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eliasnegrete.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eliasnegrete.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eliasnegrete.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eliasnegrete.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eliasnegrete.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eliasnegrete.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eliasnegrete.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eliasnegrete.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eliasnegrete.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eliasnegrete.wordpress.com/475/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=475&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eliasnegrete.wordpress.com/2010/04/16/alto-rendimiento-de-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f9e7caebfe356c89607c929ce4ce8eab?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efnegrete</media:title>
		</media:content>

		<media:content url="http://eliasnegrete.files.wordpress.com/2010/04/book39.jpg" medium="image">
			<media:title type="html">book39</media:title>
		</media:content>
	</item>
		<item>
		<title>PHP 5 E-commerce Desarrollo</title>
		<link>http://eliasnegrete.wordpress.com/2010/04/16/php-5-e-commerce-desarrollo/</link>
		<comments>http://eliasnegrete.wordpress.com/2010/04/16/php-5-e-commerce-desarrollo/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 00:59:01 +0000</pubDate>
		<dc:creator>efnegrete</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[E-Comerce]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://eliasnegrete.wordpress.com/?p=471</guid>
		<description><![CDATA[La popularidad de las compras en línea ha aumentado notablemente en los últimos años. Hay un montón de opciones disponibles si no está pensando en construir su propia solución de comercio electrónico pero a veces es mejor utilizar sus propias soluciones. Puede ser fácil encontrar un sistema de comercio electrónico, pero cuando se trata de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=471&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;"><a href="http://eliasnegrete.files.wordpress.com/2010/04/book38.jpeg"><img class="aligncenter size-full wp-image-472" title="book38" src="http://eliasnegrete.files.wordpress.com/2010/04/book38.jpeg?w=500&#038;h=500" alt="" width="500" height="500" /></a>La popularidad de las  compras en línea ha aumentado notablemente en los últimos años. Hay un montón de opciones disponibles si no está pensando en  construir su propia solución de comercio electrónico pero a veces es  mejor utilizar sus propias soluciones. Puede ser fácil encontrar  un sistema de comercio electrónico, pero cuando se trata de que la  ampliación o del uso que usted podría entrar en un montón de  dificultades.<br />
<span id="more-471"></span></p>
<p style="text-align:justify;">Este libro le mostrará  cómo crear su propio framework PHP que puede ser extendido y utilizado  con facilidad, sobre todo para sitios de comercio electrónico. El uso de este marco que  será capaz de presentar y gestionar los productos, personalizar los  productos, crear listas de deseos, hacer recomendaciones a los clientes  basados en compras anteriores, enviar notificaciones por correo  electrónico si determinados productos están en stock, la tasa de los  productos en línea, y mucho más.</p>
<p>Este libro le ayuda a  construir un marco de estilo Modelo-Vista-Controlador, que luego se  utilizará para armar una aplicación de comercio electrónico. El marco contiene  plantilla de gestión, gestión de base de datos y gestión de la  autenticación de usuarios. Con funcionalidad básica  en el lugar, e-comercio-características enfocadas se irán incorporando  paulatinamente al marco, incluidos los productos, categorías, productos  personalizables con diferentes variaciones y aportaciones de los  clientes, listas de deseos, las recomendaciones, la cesta de la compra, y  un proceso de pedido completo.</p>
<p>Al final del libro,  tendrá una arquitectura de comercio electrónico que le llevará desde la  visualización o la búsqueda de productos, y añadirlos a su cesta, a  través del proceso de pago y realizar el pago de su pedido, a su  solicitud de ser enviados. El enfoque está puesto en  la flexibilidad, de modo que el marco puede ser ampliada según las  necesidades de un cambio de tienda en particular, como lo demuestra uno  de los apéndices, que pasa por el proceso de modificación de la tienda  para vender productos descargables, así como las físicas.</p>
<p>Información adicional,  como la forma de comercializar y promover una tienda en línea, así como  realizar copias de seguridad regulares y realizar tareas de  mantenimiento está también cubierto, asegurando que tienen todas las  posibilidades de éxito con usted es dueño de comercio electrónico  respaldadas marco tienda.</p>
<p style="text-align:justify;">Lo que usted aprenderá de  este libro</p>
<p>* Planear y desarrollar  un marco flexible, escalable PHP con énfasis en el comercio electrónico<br />
* Implementar el  Modelo-Vista-Controlador arquitectura dentro del marco y aprender a  utilizar el modelo de diseño de registro para centralizar las  características esenciales<br />
* Permitir a los clientes  personalizar su compra mediante la selección de los atributos del  producto, cargar archivos, y el suministro de un texto personalizado<br />
* Oferta atractivos  incentivos a sus clientes en forma de códigos de descuento<br />
* Proteja su marco de  comercio electrónico por conservar y mantener copias de seguridad  periódicas<br />
* Estructura de un marco  extensible para crear una personalizada de comercio electrónico del  sitio web<br />
* Agregue las  características como las calificaciones de los productos y comentarios  de los clientes para mejorar la experiencia del usuario<br />
* Mantenga su sitio web  utilizando herramientas de seguimiento de campaña y CAPTCHA<br />
* Crear una cesta de la  compra, la gestión de sus contenidos, la estructura y el proceso de pago  y envío del pedido<br />
* Lleno de  comercialización útil, Search Engine Optimization, y consejos de  retención de clientes<br />
características * Crear  un framework PHP para potenciar su página web con una serie de  e-commerce</p>
<p>Enfoque<br />
Este es un enfoque  tutorial rápido en la creación de un marco y utilizarlo para construir  una tienda en línea a través de un estudio de caso en curso. Los últimos capítulos  incluyen ejemplos para ilustrar la facilidad del marco se puede adaptar a  diferentes situaciones. El marco y el código se  basa en una mayor y con cada capítulo, añadiendo más y más  funcionalidad.</p>
<p>Quién este libro está  escrito para<br />
Si eres un desarrollador  web, o cualquier persona en busca de aumentar su comprensión del  desarrollo del comercio electrónico del sitio, este libro es para usted.  Principalmente dirigido a  los desarrolladores de PHP, que es adecuado para cualquier  desarrollador web interesados en mejorar sus conocimientos de comercio  electrónico, o desarrolladores que buscan avanzar hacia PHP.</p>
<p>conocimientos intermedios  de desarrollo de PHP y la programación orientada a objetos se supone, y  conocimientos básicos del comercio electrónico principios serán de  beneficio también.</p>
<p>Acerca del Autor<br />
Michael Peacock es un  desarrollador web de Newcastle en Tyne, Reino Unido con un título en  Ingeniería de Software de la Universidad de Durham. Después de reunirse con  su socio de negocios, mientras estudiaba en Durham, fue cofundador de  pavo real Carter Limited (peacockcarter.co.uk) una consultora creativa  de Newcastle que se especializa en diseño web, desarrollo web, y  identity.Michael empresarial le encanta trabajar en proyectos  relacionados con la web y las nuevas ideas de  negocios, por lo general con intereses en varias empresas.</p>
<p>Ha estado involucrado con  una serie de libros, ha escrito cuatro libros: La construcción de un  PHP E-Commerce Marco, Drupal 6 redes sociales, Venta en línea con Drupal  comercio electrónico, y construcción de sitios web con TYPO3, y ha  actuado como revisor técnico para otros dos &#8211; Desarrollo de Web Móvil  y Drupal para la Educación y E-Learning.</p>
<p style="text-align:justify;">Download:</p>
<p style="text-align:justify;"><a href="http://letitbit.net/download/9707.9794a216784c381fa57bc652c5/Packtpub.PHP.5.E.commerce.Development.Feb.2010.rar.html" target="_blank">http://letitbit.net/download/9707.9794a216784c381fa57bc652c5/Packtpub.PHP.5.E.commerce.Development.Feb.2010.rar.html</a></p>
<p style="text-align:justify;">
<br /> Tagged: <a href='http://eliasnegrete.wordpress.com/tag/e-comerce/'>E-Comerce</a>, <a href='http://eliasnegrete.wordpress.com/tag/php/'>PHP</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eliasnegrete.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eliasnegrete.wordpress.com/471/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eliasnegrete.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eliasnegrete.wordpress.com/471/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eliasnegrete.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eliasnegrete.wordpress.com/471/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eliasnegrete.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eliasnegrete.wordpress.com/471/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eliasnegrete.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eliasnegrete.wordpress.com/471/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eliasnegrete.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eliasnegrete.wordpress.com/471/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eliasnegrete.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eliasnegrete.wordpress.com/471/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=471&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eliasnegrete.wordpress.com/2010/04/16/php-5-e-commerce-desarrollo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f9e7caebfe356c89607c929ce4ce8eab?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efnegrete</media:title>
		</media:content>

		<media:content url="http://eliasnegrete.files.wordpress.com/2010/04/book38.jpeg" medium="image">
			<media:title type="html">book38</media:title>
		</media:content>
	</item>
		<item>
		<title>PHP las partes buenas: ofrecer lo mejor de PHP</title>
		<link>http://eliasnegrete.wordpress.com/2010/04/16/php-las-partes-buenas-ofrecer-lo-mejor-de-php/</link>
		<comments>http://eliasnegrete.wordpress.com/2010/04/16/php-las-partes-buenas-ofrecer-lo-mejor-de-php/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 00:44:52 +0000</pubDate>
		<dc:creator>efnegrete</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://eliasnegrete.wordpress.com/?p=468</guid>
		<description><![CDATA[PHP las partes buenas: ofrecer lo mejor de PHP / por Peter MacIntyre (Autor). Obtener más allá de todo el bombo sobre PHP y profundizar en el verdadero poder de esta lengua. Este libro explora las características más útiles de PHP y cómo se puede acelerar el proceso de desarrollo web, y explica por qué [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=468&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;"><a href="http://eliasnegrete.files.wordpress.com/2010/04/book37.jpg"><img class="aligncenter size-full wp-image-469" title="book37" src="http://eliasnegrete.files.wordpress.com/2010/04/book37.jpg?w=500" alt=""   /></a>PHP las partes buenas: ofrecer  lo mejor de PHP / por Peter MacIntyre (Autor). Obtener más allá de todo  el bombo sobre PHP y profundizar en el verdadero poder de esta lengua. Este libro explora las  características más útiles de PHP y cómo se puede acelerar el proceso de  desarrollo web, y explica por qué la mayoría de los elementos de uso  común PHP son a menudo mal utilizado o mal aplicados.<br />
<span id="more-468"></span></p>
<p style="text-align:justify;">Usted aprenderá qué partes  añadir fuerza a la programación orientada a objetos, y cómo utilizar  ciertas características para integrar sus aplicaciones con bases de  datos.<br />
Escrito por un antiguo miembro de la  comunidad de PHP, PHP: lo bueno es ideal para los nuevos programadores  de PHP, así como los desarrolladores web de conmutación de otros  idiomas.<br />
* Familiarizarse con la sintaxis básica de PHP, variables y  tipos de datos<br />
*  Aprenda a integrar la lengua con las páginas web<br />
* Comprender la  forma de utilizar cadenas, matrices y PHP funciones integradas<br />
* Descubre las  ventajas de usar PHP como un lenguaje orientado a objetos<br />
* Descubra cómo  interactúa PHP con bases de datos, como MySQL y SQLite<br />
* Aprenda  de entrada-salida y la manipulación-las mejores prácticas para prevenir  violaciones de seguridad</p>
<p style="text-align:justify;">Download:</p>
<p style="text-align:justify;"><a href="http://depositfiles.com/files/0uoe18ub2" target="_blank">http://depositfiles.com/files/0uoe18ub2</a></p>
<p><a href="http://sharingmatrix.com/file/3390620" target="_blank">http://sharingmatrix.com/file/3390620</a></p>
<br /> Tagged: <a href='http://eliasnegrete.wordpress.com/tag/book/'>Book</a>, <a href='http://eliasnegrete.wordpress.com/tag/php/'>PHP</a>, <a href='http://eliasnegrete.wordpress.com/tag/programacion/'>Programacion</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eliasnegrete.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eliasnegrete.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eliasnegrete.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eliasnegrete.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eliasnegrete.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eliasnegrete.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eliasnegrete.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eliasnegrete.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eliasnegrete.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eliasnegrete.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eliasnegrete.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eliasnegrete.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eliasnegrete.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eliasnegrete.wordpress.com/468/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eliasnegrete.wordpress.com&amp;blog=11350670&amp;post=468&amp;subd=eliasnegrete&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eliasnegrete.wordpress.com/2010/04/16/php-las-partes-buenas-ofrecer-lo-mejor-de-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f9e7caebfe356c89607c929ce4ce8eab?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">efnegrete</media:title>
		</media:content>

		<media:content url="http://eliasnegrete.files.wordpress.com/2010/04/book37.jpg" medium="image">
			<media:title type="html">book37</media:title>
		</media:content>
	</item>
	</channel>
</rss>
