<?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>vtortola.Net</title>
	<atom:link href="http://vtortola.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://vtortola.wordpress.com</link>
	<description>eXtreme Programming + eXtreme Coding + eXtreme Performance</description>
	<lastBuildDate>Sun, 16 Sep 2007 14:13:59 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='vtortola.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>vtortola.Net</title>
		<link>http://vtortola.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://vtortola.wordpress.com/osd.xml" title="vtortola.Net" />
	<atom:link rel='hub' href='http://vtortola.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Inaugurando nuevo blog !!</title>
		<link>http://vtortola.wordpress.com/2007/08/27/inaugurando-nuevo-blog/</link>
		<comments>http://vtortola.wordpress.com/2007/08/27/inaugurando-nuevo-blog/#comments</comments>
		<pubDate>Mon, 27 Aug 2007 17:04:49 +0000</pubDate>
		<dc:creator>vtortola</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Certificaciones]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://vtortola.wordpress.com/2007/08/27/inaugurando-nuevo-blog/</guid>
		<description><![CDATA[Bueno, por fin después de varios días trabajando con la versión en desarrollo de BlogEngine.NET para realizar unos cambios y siguiendo los bugs que han ido solventando, tengo las características que necesito como para plantarme e inaugurar el blog !! Si alguien ve algún error que me mande un email. Ahora, http://www.vtortola.net redirecciona allí siempre. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=225&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Bueno, por fin después de varios días trabajando con la versión en desarrollo de <a href="http://codeplex.com/blogengine" target="_blank">BlogEngine.NET</a> para realizar unos cambios y siguiendo los bugs que han ido solventando, tengo las características que necesito como para plantarme e inaugurar el blog !! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Si alguien ve algún error que me mande un email.</p>
<p>Ahora, <a href="http://www.vtortola.net/">http://www.vtortola.net</a> redirecciona allí siempre.</p>
<p>A partir de ahora bloggearé aquí, e iré recuperando algunos de los artículos que postee en mi antiguo <a href="http://vtortola.wordpress.com//" target="_blank">blog en WordPress</a>y <a href="http://elbruno.com/blogs/vtortola/" target="_blank">mi blog en ElBruno</a>, aunque en este seguiré hanciéndolo.</p>
<p>Lo dicho, allí me encontrareis!</p>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<h1 align="justify"><font color="#008000"><a href="http://www.vtortola.NET" target="_blank">www.vtortola.Net </a></font></h1>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/vtortola.wordpress.com/225/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/vtortola.wordpress.com/225/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vtortola.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vtortola.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vtortola.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vtortola.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vtortola.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vtortola.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vtortola.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vtortola.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vtortola.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vtortola.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vtortola.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vtortola.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vtortola.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vtortola.wordpress.com/225/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=225&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vtortola.wordpress.com/2007/08/27/inaugurando-nuevo-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a2bdbedc82cb3b6f8ae8f1dee4bfd37?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vtortola</media:title>
		</media:content>
	</item>
		<item>
		<title>Nuevo blog en proceso&#8230;</title>
		<link>http://vtortola.wordpress.com/2007/08/01/nuevo-blog-en-proceso/</link>
		<comments>http://vtortola.wordpress.com/2007/08/01/nuevo-blog-en-proceso/#comments</comments>
		<pubDate>Wed, 01 Aug 2007 07:10:13 +0000</pubDate>
		<dc:creator>vtortola</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://vtortola.wordpress.com/2007/08/01/nuevo-blog-en-proceso/</guid>
		<description><![CDATA[Bueno, WordPress ya no cumple con mis expectativas y después de haber probado Community Server + Live Writer en el blog que Bruno me ha dejado&#8230; simplemente no hay color, y la verdad es que no solo me simplifica la vida si no que el acabado es mucho mejor y da gusto escribir asi Ya [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=224&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Bueno, WordPress ya no cumple con mis expectativas y después de haber probado <a href="http://communityserver.org/">Community Server</a> + <a href="http://writer.live.com">Live Writer</a> en el blog que Bruno me ha dejado&#8230;  simplemente no hay color, y la verdad es que no solo me simplifica la vida si no que el acabado es mucho mejor y da gusto escribir asi <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Ya no es solo el formateo de código, es el texto, las imagenes, las opciones &#8230; todo!! Comparad:</p>
<p><a href="http://vtortola.wordpress.com/2007/07/11/el-patron-desechable/">Artículo sobre el patrón desechable en WordPress</a>.</p>
<p><a href="http://elbruno.com/blogs/vtortola/archive/2007/07/13/el-patr-243-n-desechable-con-la-interfaz-idisposable.aspx">Artículo sobre el patrón desechable en Community Server</a>.</p>
<p>Asi que estoy en proceso de crear un blog con dicho portal en un hosting y hasta entonces seguiré posteando al blog que tengo en <a href="http://elbruno.com">ElBruno.com</a>,  después haré una migración paulatina de todos los artículos al nuevo blog y ya seguiré allí y en el resto vía Crossposting <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>El nombre de dominio <a href="http://www.vtortola.net">www.vtortola.NET</a> apuntará al donde esté posteando en ese momento, como ahora que apunta a mi blog de <a href="http://elbruno.com">ElBruno.com</a>.</p>
<p>Un saludo.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/vtortola.wordpress.com/224/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/vtortola.wordpress.com/224/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vtortola.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vtortola.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vtortola.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vtortola.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vtortola.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vtortola.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vtortola.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vtortola.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vtortola.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vtortola.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vtortola.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vtortola.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vtortola.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vtortola.wordpress.com/224/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=224&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vtortola.wordpress.com/2007/08/01/nuevo-blog-en-proceso/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a2bdbedc82cb3b6f8ae8f1dee4bfd37?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vtortola</media:title>
		</media:content>
	</item>
		<item>
		<title>70-526 Aprobado !!</title>
		<link>http://vtortola.wordpress.com/2007/07/12/70-526-aprobado/</link>
		<comments>http://vtortola.wordpress.com/2007/07/12/70-526-aprobado/#comments</comments>
		<pubDate>Thu, 12 Jul 2007 22:20:59 +0000</pubDate>
		<dc:creator>vtortola</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Certificaciones]]></category>
		<category><![CDATA[MCTS]]></category>
		<category><![CDATA[70-526]]></category>

		<guid isPermaLink="false">http://vtortola.wordpress.com/2007/07/12/70-526-aprobado/</guid>
		<description><![CDATA[Aprobé el 70-526, por lo que ya soy MCTS: Windows Applications Ahora ya a por el 70-528 de Web Applications, pero de este no haré resumenes porque no me agrada mucho la programación web y el único objetivo de hacerlo es que lo necesito para ser MCPD:Enterprise Applications<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=200&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<table border="0" width="100%">
<tr>
<td style="padding:10px;" valign="middle" width="20%">
<p style="text-align:center;"><img src="http://vtortola.files.wordpress.com/2007/07/mctswin.png" /></p>
</td>
<td style="padding-left:10px;padding-top:10px;" align="left">
<h1><font color="#808080">Aprobé el 70-526, por lo que ya soy MCTS: Windows Applications <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </font></h1>
<p>Ahora ya a por el 70-528 de Web Applications, pero de este no haré resumenes porque no me agrada mucho la programación web y el único objetivo de hacerlo es que lo necesito para ser MCPD:Enterprise Applications <img src='http://s2.wp.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </td>
</tr>
</table>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/vtortola.wordpress.com/200/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/vtortola.wordpress.com/200/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vtortola.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vtortola.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vtortola.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vtortola.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vtortola.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vtortola.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vtortola.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vtortola.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vtortola.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vtortola.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vtortola.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vtortola.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vtortola.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vtortola.wordpress.com/200/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=200&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vtortola.wordpress.com/2007/07/12/70-526-aprobado/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a2bdbedc82cb3b6f8ae8f1dee4bfd37?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vtortola</media:title>
		</media:content>

		<media:content url="http://vtortola.files.wordpress.com/2007/07/mctswin.png" medium="image" />
	</item>
		<item>
		<title>El patrón desechable con la interfaz IDisposable</title>
		<link>http://vtortola.wordpress.com/2007/07/11/el-patron-desechable/</link>
		<comments>http://vtortola.wordpress.com/2007/07/11/el-patron-desechable/#comments</comments>
		<pubDate>Wed, 11 Jul 2007 09:26:19 +0000</pubDate>
		<dc:creator>vtortola</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Garbage Collector]]></category>

		<guid isPermaLink="false">http://vtortola.wordpress.com/2007/07/11/el-patron-desechable/</guid>
		<description><![CDATA[Este artículo ha sido migrado a mi nuevo blog: Objetos desechables con la interfaz IDisposable<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=199&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Este artículo ha sido migrado a mi nuevo blog:</p>
<h5><a href="http://www.vtortola.net/post/Objetos-desechables-con-la-interfaz-IDisposable.aspx" class="taggedlink">Objetos desechables con la interfaz IDisposable</a></h5>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/vtortola.wordpress.com/199/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/vtortola.wordpress.com/199/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vtortola.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vtortola.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vtortola.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vtortola.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vtortola.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vtortola.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vtortola.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vtortola.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vtortola.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vtortola.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vtortola.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vtortola.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vtortola.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vtortola.wordpress.com/199/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=199&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vtortola.wordpress.com/2007/07/11/el-patron-desechable/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a2bdbedc82cb3b6f8ae8f1dee4bfd37?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vtortola</media:title>
		</media:content>
	</item>
		<item>
		<title>Jugando con el Garbage Collector</title>
		<link>http://vtortola.wordpress.com/2007/07/10/jugando-con-el-garbage-collector/</link>
		<comments>http://vtortola.wordpress.com/2007/07/10/jugando-con-el-garbage-collector/#comments</comments>
		<pubDate>Tue, 10 Jul 2007 19:50:34 +0000</pubDate>
		<dc:creator>vtortola</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Garbage Collector]]></category>

		<guid isPermaLink="false">http://vtortola.wordpress.com/2007/07/10/jugando-con-el-garbage-collector/</guid>
		<description><![CDATA[Ya había hablado del Garbage Collector aquí antes, pero me surgieron dudas existenciales sobre que pasa con una clase y sus relacionadas cuando se trata de una composición y cuando se trata de una agregación, que pasa con los hijos… con los nietos… y cuestiones varias como ¿y si se intenta destruir un hijo cuyo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=195&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<table border="0">
<tr>
<td width="15%">
<p style="text-align:center;"><img src="http://vtortola.files.wordpress.com/2007/07/gc.png" /></p>
</td>
<td style="padding-left:10px;padding-top:10px;">
<p class="MsoNormal" style="text-indent:35.4pt;"><span style="font-size:8pt;font-family:Verdana;">Ya había hablado del <a href="http://vtortola.wordpress.com/2007/04/21/garbagecollector/">Garbage Collector aquí antes</a>, pero me surgieron dudas existenciales sobre que pasa con una clase y sus relacionadas cuando se trata de una composición y cuando se trata de una agregación, que pasa con los hijos… con los nietos… y cuestiones varias como ¿y si se intenta destruir un hijo cuyo padre esta desreferenciado pero el GC aún no lo ha recolectado? ¿mantendría esta situación al hijo “vivo” hasta la siguiente recolección? etc… las típicas cosas que te hacen comerte la cabeza, así que decidí hacer unos experimentos <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  La conclusión es simple, si el GC sale de caza y todos se han olvidado de ti… ó los que se acuerdan de ti ya nadie se acuerda de ellos… te come el GC (que trágica es la vida de un objeto en .Net <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ). </span></p>
</td>
</tr>
</table>
<p><span id="more-195"></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;">En principio, cuando una relación entre dos objetos es de composición, digamos que el hijo no puede vivir sin el padre, por lo que al destruir el padre ha de destruirse el hijo; cuando se trata de una relación de agregación, el hijo puede subsistir sin el padre ya que podría pertenecer a más relaciones ó simplemente ser un objeto independiente. Pero, estos dos conceptos son únicamente inherentes al diseño, en la práctica un objeto es un objeto y si no existe una referencia a él en ningún sitio es candidato a ser destruido por el GC, da igual de que color pintases la flecha en el diagrama UML xD.</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;"> Para las pruebas usaré esta sencilla clase de nodo, que permite ponerle un nombre, añadir más subnodos e indica en la consola cuando es destruida la instancia, que nombre tiene y en que generación ha sido:</span></p>
<table border="0" width="100%">
<tr>
<td bgcolor="#f1f2f8">
<p align="left"><font color="#000000" face="Verdana" size="1">    </font><font color="#0000ff" face="Verdana" size="1">class</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">Nodo<br />
</font><font color="#000000" face="Verdana" size="1">    {<br />
</font></p>
<blockquote><p><font color="#0000ff" face="Verdana" size="1">string</font><font color="#000000" face="Verdana" size="1"> name;<br />
</font><font color="#2b91af" face="Verdana" size="1">List</font><font color="#000000" face="Verdana" size="1">&lt;</font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">&gt; items;<br />
</font><font color="#0000ff" face="Verdana" size="1">public</font><font color="#000000" face="Verdana" size="1"> </font><font color="#0000ff" face="Verdana" size="1">string</font><font color="#000000" face="Verdana" size="1"> Name<br />
{<br />
</font></p>
<blockquote><p><font color="#0000ff" face="Verdana" size="1">get<br />
</font><font color="#000000" face="Verdana" size="1">            {<br />
</font></p>
<blockquote><p><font color="#0000ff" face="Verdana" size="1">return</font><font color="#000000" face="Verdana" size="1"> name; </font></p></blockquote>
<p><font color="#000000" face="Verdana" size="1">} </font></p></blockquote>
<p><font color="#000000" face="Verdana" size="1">}<br />
</font><font color="#0000ff" face="Verdana" size="1">public</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">List</font><font color="#000000" face="Verdana" size="1">&lt;</font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">&gt; Items<br />
{<br />
</font></p>
<blockquote><p><font color="#0000ff" face="Verdana" size="1">get</font><font color="#000000" face="Verdana" size="1"><br />
{<br />
</font></p>
<blockquote><p><font color="#0000ff" face="Verdana" size="1">return</font><font color="#000000" face="Verdana" size="1"> items; </font></p></blockquote>
<p><font color="#000000" face="Verdana" size="1">} </font></p></blockquote>
<p><font color="#000000" face="Verdana" size="1">}<br />
</font><font color="#0000ff" face="Verdana" size="1">public</font><font color="#000000" face="Verdana" size="1"> Nodo(</font><font color="#0000ff" face="Verdana" size="1">string</font><font color="#000000" face="Verdana" size="1"> Name)<br />
{<br />
</font></p>
<blockquote><p><font color="#0000ff" face="Verdana" size="1">this</font><font color="#000000" face="Verdana" size="1">.name = Name;<br />
items = </font><font color="#0000ff" face="Verdana" size="1">new</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">List</font><font color="#000000" face="Verdana" size="1">&lt;</font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">&gt;();<br />
Prueba = </font><font color="#0000ff" face="Verdana" size="1">new</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">TestClass</font><font color="#000000" face="Verdana" size="1">(Name); </font></p></blockquote>
<p><font color="#000000" face="Verdana" size="1">}<br />
~Nodo()<br />
{<br />
</font></p>
<blockquote><p><font color="#2b91af" face="Verdana" size="1">Console</font><font color="#000000" face="Verdana" size="1">.WriteLine(</font><font color="#a31515" face="Verdana" size="1">&#8220;Destruyendo nodo {0} en generación {1}&#8221;</font><font color="#000000" face="Verdana" size="1">,</font><font color="#0000ff" face="Verdana" size="1">this</font><font color="#000000" face="Verdana" size="1">.name, </font><font color="#2b91af" face="Verdana" size="1">GC</font><font color="#000000" face="Verdana" size="1">.GetGeneration(</font><font color="#0000ff" face="Verdana" size="1">this</font><font color="#000000" face="Verdana" size="1">)); </font></p></blockquote>
<p><font color="#000000" face="Verdana" size="1">} </font></p></blockquote>
<p><font color="#000000" face="Verdana" size="1">}</font></td>
</tr>
</table>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;">Si creo un arbol de nodos y a continuación desreferencio al padre…</span></p>
<table border="0" width="100%">
<tr>
<td bgcolor="#f1f2f8">
<p align="left"><font color="#000000" face="Verdana" size="1">            </font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1"> Padre = </font><font color="#0000ff" face="Verdana" size="1">new</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">(</font><font color="#a31515" face="Verdana" size="1">&#8220;Padre&#8221;</font><font color="#000000" face="Verdana" size="1">);<br />
Padre.Items.Add(</font><font color="#0000ff" face="Verdana" size="1">new</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">(</font><font color="#a31515" face="Verdana" size="1">&#8220;Hijo 1&#8243;</font><font color="#000000" face="Verdana" size="1">));<br />
Padre.Items.Add(</font><font color="#0000ff" face="Verdana" size="1">new</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">(</font><font color="#a31515" face="Verdana" size="1">&#8220;Hijo 2&#8243;</font><font color="#000000" face="Verdana" size="1">));<br />
Padre.Items.Add(</font><font color="#0000ff" face="Verdana" size="1">new</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">(</font><font color="#a31515" face="Verdana" size="1">&#8220;Hijo 3&#8243;</font><font color="#000000" face="Verdana" size="1">));<br />
Padre.Items[0].Items.Add(</font><font color="#0000ff" face="Verdana" size="1">new</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">(</font><font color="#a31515" face="Verdana" size="1">&#8220;Nieto 1&#8243;</font><font color="#000000" face="Verdana" size="1">));<br />
Padre.Items[0].Items.Add(</font><font color="#0000ff" face="Verdana" size="1">new</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">(</font><font color="#a31515" face="Verdana" size="1">&#8220;Nieto 2&#8243;</font><font color="#000000" face="Verdana" size="1">));<br />
Padre.Items[0].Items.Add(</font><font color="#0000ff" face="Verdana" size="1">new</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">(</font><font color="#a31515" face="Verdana" size="1">&#8220;Nieto 3&#8243;</font><font color="#000000" face="Verdana" size="1">));<br />
Padre = </font><font color="#0000ff" face="Verdana" size="1">null</font><font color="#000000" face="Verdana" size="1">;<br />
</font><font color="#2b91af" face="Verdana" size="1">GC</font><font color="#000000" face="Verdana" size="1">.Collect();<br />
</font></td>
</tr>
</table>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;">Sucede que todos son destruidos:</span></p>
<table bgcolor="#000000" border="0">
<tr>
<td><span style="background:black none repeat scroll 0 50%;font-size:8pt;font-family:'Lucida Console';color:white;">Destruyendo Hijo 2 en generación 0<br />
Destruyendo Padre en generación 0<br />
Destruyendo Nieto 3 en generación 0<br />
Destruyendo Nieto 2 en generación 0<br />
Destruyendo Nieto 1 en generación 0<br />
Destruyendo Hijo 3 en generación 0<br />
Destruyendo Hijo 1 en generación 0<br />
</span></td>
</tr>
</table>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;"><br />
Pero, si creo una referencia a por ejemplo el “Nieto 1”…</span></p>
<table border="0" width="100%">
<tr>
<td bgcolor="#f1f2f8">
<p align="left"><font color="#000000" face="Verdana" size="1">            </font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1"> Padre = </font><font color="#0000ff" face="Verdana" size="1">new</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">(</font><font color="#a31515" face="Verdana" size="1">&#8220;Padre&#8221;</font><font color="#000000" face="Verdana" size="1">);<br />
Padre.Items.Add(</font><font color="#0000ff" face="Verdana" size="1">new</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">(</font><font color="#a31515" face="Verdana" size="1">&#8220;Hijo 1&#8243;</font><font color="#000000" face="Verdana" size="1">));<br />
Padre.Items.Add(</font><font color="#0000ff" face="Verdana" size="1">new</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">(</font><font color="#a31515" face="Verdana" size="1">&#8220;Hijo 2&#8243;</font><font color="#000000" face="Verdana" size="1">));<br />
Padre.Items.Add(</font><font color="#0000ff" face="Verdana" size="1">new</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">(</font><font color="#a31515" face="Verdana" size="1">&#8220;Hijo 3&#8243;</font><font color="#000000" face="Verdana" size="1">));<br />
Padre.Items[0].Items.Add(</font><font color="#0000ff" face="Verdana" size="1">new</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">(</font><font color="#a31515" face="Verdana" size="1">&#8220;Nieto 1&#8243;</font><font color="#000000" face="Verdana" size="1">));<br />
Padre.Items[0].Items.Add(</font><font color="#0000ff" face="Verdana" size="1">new</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">(</font><font color="#a31515" face="Verdana" size="1">&#8220;Nieto 2&#8243;</font><font color="#000000" face="Verdana" size="1">));<br />
Padre.Items[0].Items.Add(</font><font color="#0000ff" face="Verdana" size="1">new</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">(</font><font color="#a31515" face="Verdana" size="1">&#8220;Nieto 3&#8243;</font><font color="#000000" face="Verdana" size="1">));<br />
</font></p>
<p align="left"><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1"> Nieto1 = Padre.Items[0].Items[0];<br />
</font></p>
<p align="left"><font color="#000000" face="Verdana" size="1">Padre = </font><font color="#0000ff" face="Verdana" size="1">null</font><font color="#000000" face="Verdana" size="1">;<br />
</font><font color="#2b91af" face="Verdana" size="1">GC</font><font color="#000000" face="Verdana" size="1">.Collect();<br />
</font></td>
</tr>
</table>
<p class="MsoNormal"> <span style="font-size:8pt;font-family:Verdana;">Sucede que ese nodo en concreto no es recolectado, independientemente de que la clase que lo contenía haya desaparecido ya.</span></p>
<table bgcolor="#000000" border="0">
<tr>
<td><span style="background:black none repeat scroll 0 50%;font-size:8pt;font-family:'Lucida Console';color:white;">Destruyendo Nieto 2 en generación 2<br />
Destruyendo Hijo 3 en generación 2<br />
Destruyendo Hijo 2 en generación 2<br />
Destruyendo Hijo 1 en generación 2<br />
Destruyendo Padre en generación 2<br />
Destruyendo Nieto 3 en generación 2<br />
</span></td>
</tr>
</table>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;"> Esto se extiende a cualquier tipo de objeto, no solo a los que están en colecciones. Por ejemplo, creo una nueva clase que pueda monitorizar su destrucción:</span></p>
<table border="0" width="100%">
<tr>
<td bgcolor="#f1f2f8">
<p align="left"><font color="#000000" face="Verdana" size="1">    </font><font color="#0000ff" face="Verdana" size="1">class</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">TestClass<br />
</font><font color="#000000" face="Verdana" size="1">    {<br />
</font></p>
<blockquote><p><font color="#0000ff" face="Verdana" size="1">string</font><font color="#000000" face="Verdana" size="1"> name;<br />
</font><font color="#0000ff" face="Verdana" size="1">public</font><font color="#000000" face="Verdana" size="1"> TestClass(</font><font color="#0000ff" face="Verdana" size="1">string</font><font color="#000000" face="Verdana" size="1"> Name)<br />
{<br />
</font></p>
<blockquote><p><font color="#0000ff" face="Verdana" size="1">this</font><font color="#000000" face="Verdana" size="1">.name = Name; </font></p></blockquote>
<p><font color="#000000" face="Verdana" size="1">}<br />
~TestClass()<br />
{<br />
</font></p>
<blockquote><p><font color="#2b91af" face="Verdana" size="1">Console</font><font color="#000000" face="Verdana" size="1">.WriteLine(</font><font color="#a31515" face="Verdana" size="1">&#8220;Destruyendo TestClass 0 en generación 1&#8243;</font><font color="#000000" face="Verdana" size="1">, </font><font color="#0000ff" face="Verdana" size="1">this</font><font color="#000000" face="Verdana" size="1">.name, </font><font color="#2b91af" face="Verdana" size="1">GC</font><font color="#000000" face="Verdana" size="1">.GetGeneration(</font><font color="#0000ff" face="Verdana" size="1">this</font><font color="#000000" face="Verdana" size="1">)); </font></p></blockquote>
<p><font color="#000000" face="Verdana" size="1">} </font></p></blockquote>
<p><font color="#000000" face="Verdana" size="1">}</font></td>
</tr>
</table>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;">La añado como miembro a la clase Nodo, quedando de esta forma:</span></p>
<table border="0" width="100%">
<tr>
<td bgcolor="#f1f2f8">
<p align="left"><font color="#000000" face="Verdana" size="1">    </font><font color="#0000ff" face="Verdana" size="1">class</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">Nodo<br />
</font><font color="#000000" face="Verdana" size="1">    {<br />
</font></p>
<blockquote><p><font color="#0000ff" face="Verdana" size="1">string</font><font color="#000000" face="Verdana" size="1"> name;<br />
</font><font color="#2b91af" face="Verdana" size="1">List</font><font color="#000000" face="Verdana" size="1">&lt;</font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">&gt; items;<br />
</font><font color="#0000ff" face="Verdana" size="1">public</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">TestClass</font><font color="#000000" face="Verdana" size="1"> Prueba;<br />
</font><font color="#0000ff" face="Verdana" size="1">public</font><font color="#000000" face="Verdana" size="1"> </font><font color="#0000ff" face="Verdana" size="1">string</font><font color="#000000" face="Verdana" size="1"> Name<br />
{<br />
</font></p>
<blockquote><p><font color="#0000ff" face="Verdana" size="1">get<br />
</font><font color="#000000" face="Verdana" size="1">            {<br />
</font></p>
<blockquote><p><font color="#0000ff" face="Verdana" size="1">return</font><font color="#000000" face="Verdana" size="1"> name; </font></p></blockquote>
<p><font color="#000000" face="Verdana" size="1">} </font></p></blockquote>
<p><font color="#000000" face="Verdana" size="1">}<br />
</font><font color="#0000ff" face="Verdana" size="1">public</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">List</font><font color="#000000" face="Verdana" size="1">&lt;</font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">&gt; Items<br />
{<br />
</font></p>
<blockquote><p><font color="#0000ff" face="Verdana" size="1">get</font><font color="#000000" face="Verdana" size="1"><br />
{<br />
</font></p>
<blockquote><p><font color="#0000ff" face="Verdana" size="1">return</font><font color="#000000" face="Verdana" size="1"> items; </font></p></blockquote>
<p><font color="#000000" face="Verdana" size="1">} </font></p></blockquote>
<p><font color="#000000" face="Verdana" size="1">}<br />
</font><font color="#0000ff" face="Verdana" size="1">public</font><font color="#000000" face="Verdana" size="1"> Nodo(</font><font color="#0000ff" face="Verdana" size="1">string</font><font color="#000000" face="Verdana" size="1"> Name)<br />
{<br />
</font></p>
<blockquote><p><font color="#0000ff" face="Verdana" size="1">this</font><font color="#000000" face="Verdana" size="1">.name = Name;<br />
items = </font><font color="#0000ff" face="Verdana" size="1">new</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">List</font><font color="#000000" face="Verdana" size="1">&lt;</font><font color="#2b91af" face="Verdana" size="1">Nodo</font><font color="#000000" face="Verdana" size="1">&gt;();<br />
Prueba = </font><font color="#0000ff" face="Verdana" size="1">new</font><font color="#000000" face="Verdana" size="1"> </font><font color="#2b91af" face="Verdana" size="1">TestClass</font><font color="#000000" face="Verdana" size="1">(Name); </font></p></blockquote>
<p><font color="#000000" face="Verdana" size="1">}<br />
~Nodo()<br />
{<br />
</font></p>
<blockquote><p><font color="#2b91af" face="Verdana" size="1">Console</font><font color="#000000" face="Verdana" size="1">.WriteLine(</font><font color="#a31515" face="Verdana" size="1">&#8220;Destruyendo nodo {</font><font color="#a31515"><font size="1"><font face="Verdana">0</font></font></font><font color="#a31515" face="Verdana" size="1">} en generación {</font><font color="#a31515"><font size="1"><font face="Verdana">1</font></font></font><font color="#a31515" face="Verdana" size="1">}&#8221;</font><font color="#000000" face="Verdana" size="1">,</font><font color="#0000ff" face="Verdana" size="1">this</font><font color="#000000" face="Verdana" size="1">.name, </font><font color="#2b91af" face="Verdana" size="1">GC</font><font color="#000000" face="Verdana" size="1">.GetGeneration(</font><font color="#0000ff" face="Verdana" size="1">this</font><font color="#000000" face="Verdana" size="1">)); </font></p></blockquote>
<p><font color="#000000" face="Verdana" size="1">} </font></p></blockquote>
<p><font color="#000000" face="Verdana" size="1">}</font></td>
</tr>
</table>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;">Si ejecuto de nuevo el primer ejemplo, todo se destruye:</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;"></span></p>
<table bgcolor="#000000" border="0">
<tr>
<td><span style="background:black none repeat scroll 0 50%;font-size:8pt;font-family:'Lucida Console';color:white;">Destruyendo nodo Hijo 2 en generación 1<br />
Destruyendo TestClass Nieto 1 en generación 1<br />
Destruyendo nodo Nieto 1 en generación 1<br />
Destruyendo TestClass Hijo 3 en generación 1<br />
Destruyendo nodo Hijo 3 en generación 1<br />
Destruyendo TestClass Hijo 2 en generación 1<br />
Destruyendo TestClass Hijo 1 en generación 1<br />
Destruyendo nodo Hijo 1 en generación 1<br />
Destruyendo TestClass Padre en generación 1<br />
Destruyendo nodo Padre en generación 1<br />
Destruyendo TestClass Nieto 3 en generación 1<br />
Destruyendo nodo Nieto 3 en generación 1<br />
Destruyendo TestClass Nieto 2 en generación 1<br />
Destruyendo nodo Nieto 2 en generación 1 </span></td>
</tr>
</table>
<p class="MsoNormal" style="text-indent:35.4pt;"><span style="font-size:8pt;font-family:Verdana;"> En conclusión, el algoritmo de optimización de memoria del GC contempla estas situaciones, y todo lo que no pueda ser accedido ya sea de forma directa ó indirecta es recolectado.</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;">Hasta el próximo capítulo de “El Garbage Collector y tu” <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/vtortola.wordpress.com/195/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/vtortola.wordpress.com/195/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vtortola.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vtortola.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vtortola.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vtortola.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vtortola.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vtortola.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vtortola.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vtortola.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vtortola.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vtortola.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vtortola.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vtortola.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vtortola.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vtortola.wordpress.com/195/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=195&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vtortola.wordpress.com/2007/07/10/jugando-con-el-garbage-collector/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a2bdbedc82cb3b6f8ae8f1dee4bfd37?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vtortola</media:title>
		</media:content>

		<media:content url="http://vtortola.files.wordpress.com/2007/07/gc.png" medium="image" />
	</item>
		<item>
		<title>70-526 Resumen 8/8: Distribuir aplicaciones Windows.</title>
		<link>http://vtortola.wordpress.com/2007/07/09/70-526-resumen-88-distribuir-aplicaciones-windows/</link>
		<comments>http://vtortola.wordpress.com/2007/07/09/70-526-resumen-88-distribuir-aplicaciones-windows/#comments</comments>
		<pubDate>Mon, 09 Jul 2007 21:10:21 +0000</pubDate>
		<dc:creator>vtortola</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Certificaciones]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Windows Forms]]></category>
		<category><![CDATA[MCTS]]></category>
		<category><![CDATA[70-526]]></category>

		<guid isPermaLink="false">http://vtortola.wordpress.com/2007/07/09/70-526-resumen-78-distribuir-aplicaciones-windows/</guid>
		<description><![CDATA[Octavo resumen de 8 del temario para el examen 70-526 de la certificación MCTS Windows Applications 2.0. Esta, es una de las nuevas certificaciones Microsoft para .NET 2.0. El último tema (por fin!!). Como distribuir nuestras aplicaciones de forma elegante y eficiente. Lo de mandar un .rar por email y un .txt adjunto con las [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=194&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<table border="0" width="100%">
<tr>
<td style="padding:10px;" valign="middle" width="20%">
<p style="text-align:center;"><img src="http://vtortola.files.wordpress.com/2007/07/mctswin.png" /></p>
</td>
<td style="padding-left:10px;padding-top:10px;" align="left">
<p class="MsoNormal" style="text-indent:35.4pt;"><span style="font-size:8pt;font-family:Verdana;">Octavo resumen de 8 del temario para el examen <a href="http://www.microsoft.com/learning/exams/70-526.mspx">70-526</a> de la <a href="http://www.microsoft.com/learning/mcp/mcts/winapps/default.mspx">certificación MCTS <span> </span>Windows Applications 2.0</a>. </span><span style="font-size:8pt;font-family:Verdana;">Esta, es una de <a href="http://vtortola.wordpress.com/2007/04/02/las-nuevas-certificaciones-microsoft/">las nuevas certificaciones Microsoft para .NET 2.0</a>.</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;">El último tema <font color="#999999">(por fin!!)</font>. Como distribuir nuestras aplicaciones de forma elegante y eficiente. Lo de mandar un .rar por email y un .txt adjunto con las instrucciones de instalación esta pasado de moda <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Personalmente, veo ClickOnce como una gran idea, pués uno de los handicaps de las WinApps contra las WebApps es esto mismo, la distribución <img src='http://s2.wp.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;"> Engloba el tema <em>15<span>.</span></em><em><span></span></em><span></span><em><span>Deploying</span></em> </span><span style="font-size:8pt;font-family:Verdana;">del</span><span style="font-size:8pt;font-family:Verdana;"> </span><a href="http://www.microsoft.com/MSPress/books/9983.aspx"><span style="font-size:8pt;font-family:Verdana;"></span></a><a href="http://www.microsoft.com/MSPress/books/9983.aspx"><span>libro oficial de Microsoft</span></a><span style="font-size:8pt;font-family:Verdana;">.</span></p>
</td>
</tr>
</table>
<p class="western" style="margin-bottom:0;"><span id="more-194"></span></p>
<p class="MsoNormal"><strong><span style="font-size:8pt;font-family:Verdana;">ClickOnce:</span></strong></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;"><a href="http://msdn2.microsoft.com/es-es/library/wh45kb66%28VS.80%29.aspx">Implementación de ClickOnce para aplicaciones Windows Forms</a>.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;"><a href="http://msdn2.microsoft.com/es-es/library/t71a733d%28VS.80%29.aspx">Implementación ClickOnce con Visual Studio</a>.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Es una nueva tecnología que permite al desarrollador distribuir sus aplicaciones de forma rápida y confiable en sitios web, carpetas compartidas ó sitios ftp.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Las aplicaciones ClickOnce pueden ser configuradas para actualizarse automáticamente. Se puede configurar la aplicación para que busque actualizaciones siempre que se ejecute ó en un intervalo predefinido. </span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Por defecto, estas aplicaciones se ejecutan en la zona de seguridad correspondiente a Internet si es descargada de un sitio web ó en la zona correspondiente a Intranet si se descargó de una carpeta compartida.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Si se requieren permisos adicionales, pueden ser concedidos por el desarrollador, introducidos manualmente ó calculando los necesarios, para que posteriormente sean aceptados ó rechazados por el instalador.</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;"> </span></p>
<p class="MsoNormal"><strong><span style="font-size:8pt;font-family:Verdana;">Proyectos de instalación:</span></strong></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><em><span style="font-size:8pt;font-family:Verdana;">Remember</span></em><span style="font-size:8pt;font-family:Verdana;">: <a href="http://vtortola.wordpress.com/2007/06/29/70-536-resumen-77-instrumentacion-e-instalar-y-configurar-aplicaciones/">70-536: Instrumentación e Instalar y Configurar aplicaciones</a>.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;"><a href="http://msdn2.microsoft.com/es-es/library/2kt85ked%28VS.80%29.aspx">Implementación de Windows Installer</a>.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Permiten crear aplicaciones <em>“Windows Installer”</em> para instalar una solución. Son altamente configurables y permiten un gran control sobre la configuración del proceso de instalación.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Tienen varios editores para editar aspectos del proceso de instalación, incluyendo el editor de sistema de archivos, el editor del registro, el editor de tipos, el editor de interfaz de usuario, el editor de acciones personalizadas y el editor de condiciones de ejecución.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">El editor del sistema de archivos se usa para añadir otros archivos necesarios para la aplicación que no están en la solución ó no pertenecen al código. Puede crear directorios e instalar archivos en ellos. Puede crear accesos directos e incluso copiar según que archivos en función del sistema operativo.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Tienen varias propiedades que muestran información descriptiva sobre la aplicación y afectan al comportamiento de esta en el momento de la instalación. Se pueden cambiar desde la ventana Propiedades de Visual Studio seleccionando el proyecto.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Las acciones personalizadas son procedimientos que se ejecutan en tiempo de instalación/desinstalación. Se puede crear una acción personalizada añadiendo el código a una clase <a href="http://msdn2.microsoft.com/es-es/library/system.configuration.install.installer%28VS.80%29.aspx">Installer</a>, añadiendo dicha clase al proyecto, e indicando que proyecto es en el editor de acciones personalizadas.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Cuando se dan errores que son irrecuperables en una acción personalizada, deberías lanzar una <a href="http://msdn2.microsoft.com/es-es/library/system.configuration.install.installexception%28VS.80%29.aspx">InstallException</a> para deshacer la instalación sin dañar el sistema destino.</span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/vtortola.wordpress.com/194/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/vtortola.wordpress.com/194/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vtortola.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vtortola.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vtortola.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vtortola.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vtortola.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vtortola.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vtortola.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vtortola.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vtortola.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vtortola.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vtortola.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vtortola.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vtortola.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vtortola.wordpress.com/194/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=194&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vtortola.wordpress.com/2007/07/09/70-526-resumen-88-distribuir-aplicaciones-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a2bdbedc82cb3b6f8ae8f1dee4bfd37?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vtortola</media:title>
		</media:content>

		<media:content url="http://vtortola.files.wordpress.com/2007/07/mctswin.png" medium="image" />
	</item>
		<item>
		<title>70-526 Resumen 7/8: Crear controles de formulario.</title>
		<link>http://vtortola.wordpress.com/2007/07/09/70-526-resumen-78-crear-controles/</link>
		<comments>http://vtortola.wordpress.com/2007/07/09/70-526-resumen-78-crear-controles/#comments</comments>
		<pubDate>Mon, 09 Jul 2007 20:05:04 +0000</pubDate>
		<dc:creator>vtortola</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Certificaciones]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Windows Forms]]></category>
		<category><![CDATA[MCTS]]></category>
		<category><![CDATA[70-526]]></category>

		<guid isPermaLink="false">http://vtortola.wordpress.com/2007/07/09/70-526-resumen-78-crear-controles/</guid>
		<description><![CDATA[Séptimo resumen de 8 del temario para el examen 70-526 de la certificación MCTS Windows Applications 2.0. Esta, es una de las nuevas certificaciones Microsoft para .NET 2.0. Otro tema que para mi es bastante importante, el como crear tus propios controles. Engloba el tema 14.Creating Windows Forms Controls del libro oficial de Microsoft. Controles [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=193&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<table border="0" width="100%">
<tr>
<td style="padding:10px;" valign="middle" width="20%">
<p style="text-align:center;"><img src="http://vtortola.files.wordpress.com/2007/07/mctswin.png" /></p>
</td>
<td style="padding-left:10px;padding-top:10px;" align="left">
<p class="MsoNormal" style="text-indent:35.4pt;"><span style="font-size:8pt;font-family:Verdana;">Séptimo resumen de 8 del temario para el examen <a href="http://www.microsoft.com/learning/exams/70-526.mspx">70-526</a> de la <a href="http://www.microsoft.com/learning/mcp/mcts/winapps/default.mspx">certificación MCTS <span> </span>Windows Applications 2.0</a>. </span><span style="font-size:8pt;font-family:Verdana;">Esta, es una de <a href="http://vtortola.wordpress.com/2007/04/02/las-nuevas-certificaciones-microsoft/">las nuevas certificaciones Microsoft para .NET 2.0</a>.</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;">Otro tema que para mi es bastante importante, el como crear tus propios controles.</span><span style="font-size:8pt;font-family:Verdana;"></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;"> Engloba el tema <em>14<span>.</span></em><em><span></span></em><span></span><em><span>Creating Windows Forms Controls</span></em> </span><span style="font-size:8pt;font-family:Verdana;">del</span><span style="font-size:8pt;font-family:Verdana;"> </span><a href="http://www.microsoft.com/MSPress/books/9983.aspx"><span style="font-size:8pt;font-family:Verdana;"></span></a><a href="http://www.microsoft.com/MSPress/books/9983.aspx"><span>libro oficial de Microsoft</span></a><span style="font-size:8pt;font-family:Verdana;">.</span></p>
</td>
</tr>
</table>
<p class="western" style="margin-bottom:0;"><span id="more-193"></span></p>
<p class="MsoNormal"><strong><span style="font-size:8pt;font-family:Verdana;">Controles compuestos:</span></strong></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;"><a href="http://msdn2.microsoft.com/es-es/library/w29y3h59%28VS.80%29.aspx">Desarrollar controles compuestos de formularios Windows Forms</a>.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;"><a href="http://msdn2.microsoft.com/es-es/library/ettb6e2a%28VS.80%29.aspx">Controles de formularios Windows Forms</a>.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Los controles compuestos, también llamados controles de usuario, consisten en un control compuesto de otros controles convencionales, llamados en este caso constituyentes.<span>  </span>Se puede extender la funcionalidad de este tipo de controles siguiendo las reglas del polimorfismo y la POO. Estos controles son una especialización de la clase <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.usercontrol%28VS.80%29.aspx">UserControl</a>.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Al añadir una nueva clase de tipo UserControl, Visual Studio nos provee de las herramientas y funcionalidades básicas para crearlo y diseñarlo. </span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Las propiedades de los controles constituyentes generalmente no son accesibles por los desarrolladores (suelen ser privados). Se pueden exponer dichas propiedades envolviéndolas con propiedades públicas propias.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Puedes hacer invisible un control en tiempo de ejecución configurando la propiedad <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.control.visible%28VS.80%29.aspx">Visible</a> a <em>True</em>. Puedes definir el fondo transparente configurando <a href="http://msdn2.microsoft.com/es-es/library/tstx4c33%28VS.80%29.aspx">BackColor</a> a <em>Color.Transparent</em>. Puedes hacer un color transparente para todo el formulario configurándolo como <a href="http://msdn2.microsoft.com/es-es/library/zka49s12%28VS.80%29.aspx">Form.TransparencyKey</a>.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Puedes añadir una imagen al control para que aparezca en la barra de herramientas en la propiedad <a href="http://msdn2.microsoft.com/es-es/library/system.drawing.toolboxbitmapattribute%28VS.80%29.aspx">ToolboxBitmap</a>.</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;"> </span></p>
<p class="MsoNormal"><strong><span style="font-size:8pt;font-family:Verdana;">Controles personalizados:</span></strong></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;"><a href="http://msdn2.microsoft.com/es-es/library/6hws6h2t%28VS.80%29.aspx">Desarrollar controles personalizados en Windows Forms</a>.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">A diferencia de los controles de usuario, para los controles personalizados hay que darles su propio código de pintado y renderizado</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Estos controles no tienen una interfaz visual por defecto y por ello no podemos diseñarlos al 100% con Visual Studio. Generalmente no incorporan otros controles Windows Forms.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Se debe sobrescribir el método <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.form.onpaint%28VS.80%29.aspx">OnPaint</a> para indicar como pintar el control.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Con la instancia de <a href="http://msdn2.microsoft.com/es-es/library/system.drawing.graphics%28VS.80%29.aspx">Graphics</a> obtenida de OnPaint se puede pintar el control.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Estos controles son especializaciones de la clase Control.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><em><span style="font-size:8pt;font-family:Verdana;">Remember</span></em><span style="font-size:8pt;font-family:Verdana;">: <a href="http://vtortola.wordpress.com/2007/06/23/70-536-resumen-37-globalizacion-graficos-y-manipulacion-de-texto/">70-536, Globalización, gráficos y manipulación de texto</a>.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Cuando se renderiza un control personalizado, se deben usar coordenadas para referenciar puntos en el control, y así indicar donde se quiere pintar.</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;"> </span></p>
<p class="MsoNormal"><strong><span style="font-size:8pt;font-family:Verdana;">Controles Extendidos:</span></strong></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Se puede extender la funcionalidad de un control creando una clase que especializa dicho control existente. Encapsulan toda la funcionalidad del control del que heredan, pero además añaden unas nuevas funcionalidades y sobrescriben otras, creando un control con un fin ó especialización distintos.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Puedes modificar la apariencia de un control extendido sobrescribiendo su método OnPaint y codificando ahí la nueva forma de renderizado.</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;"> </span></p>
<p class="MsoNormal"><strong><span style="font-size:8pt;font-family:Verdana;">Ventanas de dialogo personalizadas:</span></strong></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;"><a href="http://msdn2.microsoft.com/es-es/library/55cz5x2c%28VS.80%29.aspx">Crear ventanas de dialogo en tiempo de diseño</a>.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Las ventanas de dialogo son unos formularios especiales diseñados para solicitar una información puntual al usuario. </span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">Pueden ser mostrados en modal ó no, con <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.form.showdialog%28VS.80%29.aspx">ShowDialog</a> ó <a href="http://msdn2.microsoft.com/es-es/library/szcefbbd%28VS.80%29.aspx">Show</a> respectivamente.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">En modo modal detienen la aplicación y acaparan el foco hasta que el usuario emprende una acción y cierra el dialogo.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">En el método ShowDialog se puede especificar cual será el formulario padre al que bloqueará hasta obtener respuesta.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><span style="font-size:8pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;font-family:Verdana;">La enumeración <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.dialogresult%28VS.80%29.aspx">DialogResult</a> representa los distintos valores que puede devolver un formulario cuando se muestra con ShowDialog.</span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/vtortola.wordpress.com/193/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/vtortola.wordpress.com/193/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vtortola.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vtortola.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vtortola.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vtortola.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vtortola.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vtortola.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vtortola.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vtortola.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vtortola.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vtortola.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vtortola.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vtortola.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vtortola.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vtortola.wordpress.com/193/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=193&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vtortola.wordpress.com/2007/07/09/70-526-resumen-78-crear-controles/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a2bdbedc82cb3b6f8ae8f1dee4bfd37?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vtortola</media:title>
		</media:content>

		<media:content url="http://vtortola.files.wordpress.com/2007/07/mctswin.png" medium="image" />
	</item>
		<item>
		<title>70-526 Resumen 6/8: Funcionalidades avanzadas y usabilidad en Windows Forms.</title>
		<link>http://vtortola.wordpress.com/2007/07/08/70-526-resumen-68-funcionalidades-avanzadas-y-usabilidad-en-windows-forms/</link>
		<comments>http://vtortola.wordpress.com/2007/07/08/70-526-resumen-68-funcionalidades-avanzadas-y-usabilidad-en-windows-forms/#comments</comments>
		<pubDate>Sun, 08 Jul 2007 18:25:21 +0000</pubDate>
		<dc:creator>vtortola</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Certificaciones]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Windows Forms]]></category>
		<category><![CDATA[MCTS]]></category>
		<category><![CDATA[70-526]]></category>

		<guid isPermaLink="false">http://vtortola.wordpress.com/2007/07/08/70-526-resumen-68-funcionalidades-avanzadas-y-usabilidad-en-windows-forms/</guid>
		<description><![CDATA[Sexto resumen de 8 del temario para el examen 70-526 de la certificación MCTS Windows Applications 2.0. Esta, es una de las nuevas certificaciones Microsoft para .NET 2.0. Desde mi punto de vista, lo más interesante del temario sobre &#8220;Win Apps&#8221;. Muchas de las cosas son pautas que se deberían tener en cuenta siempre, sobre [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=192&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<table border="0" width="100%">
<tr>
<td style="padding:10px;" valign="middle" width="20%">
<p style="text-align:center;"><img src="http://vtortola.files.wordpress.com/2007/07/mctswin.png" /></p>
</td>
<td style="padding-left:10px;padding-top:10px;" align="left">
<p class="MsoNormal" style="text-indent:35.4pt;"><span style="font-size:8pt;font-family:Verdana;">Sexto resumen de 8 del temario para el examen <a href="http://www.microsoft.com/learning/exams/70-526.mspx">70-526</a> de la <a href="http://www.microsoft.com/learning/mcp/mcts/winapps/default.mspx">certificación MCTS <span> </span>Windows Applications 2.0</a>. </span><span style="font-size:8pt;font-family:Verdana;">Esta, es una de <a href="http://vtortola.wordpress.com/2007/04/02/las-nuevas-certificaciones-microsoft/">las nuevas certificaciones Microsoft para .NET 2.0</a>.</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;">Desde mi punto de vista, lo más interesante del temario sobre <em>&#8220;Win Apps&#8221;</em>. Muchas de las cosas son pautas que se deberían tener en cuenta siempre, sobre todo la globalización y la accesbilidad</span><span style="font-size:8pt;font-family:Verdana;"></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;"> Engloba el tema <em>11<span>.</span></em><em><span>Advanced Topics in Windows Forms</span></em><span> y </span><em><span>12.Enhancing Usability</span></em> </span><span style="font-size:8pt;font-family:Verdana;">del</span><span style="font-size:8pt;font-family:Verdana;"> </span><a href="http://www.microsoft.com/MSPress/books/9983.aspx"><span style="font-size:8pt;font-family:Verdana;"></span></a><a href="http://www.microsoft.com/MSPress/books/9983.aspx"><span>libro oficial de Microsoft</span></a><span style="font-size:8pt;font-family:Verdana;">.</span></p>
</td>
</tr>
</table>
<p class="western" style="margin-bottom:0;"><span id="more-192"></span></p>
<p class="MsoNormal"><strong><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Arrastrar y soltar (Drag and Drop):</span></strong></p>
<p class="MsoListParagraphCxSpFirst" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"><a href="http://msdn2.microsoft.com/es-es/library/za0zx9y0%28VS.80%29.aspx">Arrastrar y colocar en Windows Forms</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Las operaciones de “arrastrar y soltar” se inician llamando al método <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.control.dodragdrop%28VS.80%29.aspx">DoDragDrop</a> en el control que inicia la acción, se suele hacer normalmente en el manejador del evento <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.control.mousedown%28VS.80%29.aspx">MouseDown</a> de dicho control. Dicho método toma dos parámetros, un objeto que contiene los datos que serán “arrastrados y soltados” y otro parámetro DragDropEffects que indica que efectos son permitidos. </span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">La enumeración <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.dragdropeffects%28VS.80%29.aspx">DragDropEffects</a> representa el efecto ó efectos en una operación de arrastrar y soltar.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Los eventos <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.control.givefeedback%28VS.80%29.aspx">GiveFeedBack</a> y <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.control.querycontinuedrag%28VS.80%29.aspx">QueryContinueDrag</a> son disparados en el control origen en este punto. El primero, permite personalizar el puntero del ratón con una forma personalizada y el segundo, podría usarse para decidir si continuar ó abortar la operación.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">El control destino debe tener como True la propiedad <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.control.allowdrop%28VS.80%29.aspx">AllowDrop</a>. Cuando se da esta condición al arrastrar datos a él, se dispara en el destino el evento DragEnter.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">El evento <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.control.dragenter%28VS.80%29.aspx">DragEnter</a> en el control destino se usa para indicar los efectos permitidos en dicho control destino. Puedes examinar los datos en la propiedad <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.drageventargs.data%28VS.80%29.aspx">DragEventArgs.Data</a> que existen en el manejador del evento DragEnter y determinar si los datos son apropiados para el control. Puedes abortar la operación fijando <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.drageventargs.effect%28VS.80%29.aspx">DragEventArgs.Effect</a> a None.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">La operación se completa en el evento <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.control.dragdrop%28VS.80%29.aspx">DragDrop</a> del control destino.Aquí, debe escribirse el código que complete la operación a alto nivel (añadir los datos a un ListView … realizar otra operación Query … etc… ).</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Los datos pueden ser arrastrados y soltados entre controles de diferentes aplicaciones. No hace falta ningún paso adicional para ello.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Esta operación en un control TreeView comienza llamando al método DoDragDrop en el manejador del evento <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.treeview.itemdrag%28VS.80%29.aspx">TreeView.ItemDrag</a>. El resto del proceso es similar.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:0;"><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:0;"><strong><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Globalización y localización:</span></strong></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"><a href="http://msdn2.microsoft.com/es-es/library/1021kkz0%28VS.80%29.aspx">Globalizar y localizar aplicaciones</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><em><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Remember 70-536:</span></em><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"> <a href="http://vtortola.wordpress.com/2007/06/23/70-536-resumen-37-globalizacion-graficos-y-manipulacion-de-texto/">Globalización, gráficos y texto</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Globalización: se refiere a cuestiones de formateado de datos, por ejemplo, la separación de decimales, miles ó los símbolos monetarios.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Localización: se refiere a cuestiones relacionadas con el lenguaje de la aplicación, como el idioma ó la dirección del texto, mostrando unos textos u otros en función del lenguaje en cuestión.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Cuando se habla de cultura, se habla de la información cultural en el país ó región en el cual la aplicación se desarrolla y está representada por un código.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">CurrentCulture hace referencia a la cultura que será usada para formatear los datos de la aplicación. <a href="http://msdn2.microsoft.com/es-es/library/se513yha%28VS.80%29.aspx">Utilizar la propiedad CurrentCulture</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">CurrentUICulture hace referencia a la cultura que será usada para determinar qué recursos de localización serán usados. <a href="http://msdn2.microsoft.com/es-es/library/441487wx%28VS.80%29.aspx">Utilizar la propiedad CurrentUICulture</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Los formularios localizados, pueden crearse ajustando la propiedad Localizable a True y configurando la propiedad Language a una lengua distinta de la Default. Una nueva copia del formulario es creada para esta cultura y se le pueden añadir recursos localizados.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Se puede mostrar la información de derecha a izquierda en un control ajustando la propiedad RightToLeft a True. Puedes invertir la distribución de todos los controles de un formulario ajustando las propiedades Form.RightToLeftLayout y Form.RightToLeft a True. </span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:0;"><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:0;"><strong><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Formularios MDI (Multiple Document Interface):</span></strong></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"><a href="http://msdn2.microsoft.com/es-es/library/xyhh2e7e%28VS.80%29.aspx">Aplicaciones MDI</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Las aplicaciones MDI siguen un modelo padre/hijo. Un formulario padre contiene y organiza múltiples formularios hijos. Se pueden crear un formulario padre ajustando la propiedad <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.form.ismdicontainer%28VS.80%29.aspx">Form.IsMdiContainer</a> a True. Los formularios hijos son creados asignando la propiedad <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.form.mdiparent%28VS.80%29.aspx">Form.MdiParent</a> a un formulario padre apropiado.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">El formulario padre tiene métodos y propiedades que le permiten la organización de sus formularios hijos. Se puede obtener cual es el formulario hijo activo mediante la propiedad <a href="http://msdn2.microsoft.com/es-es/library/2dz698a1%28VS.80%29.aspx">Form.ActiveMdiChild</a> del formulario padre. Los formularios hijos pueden ser agrupados en el formulario padre usando el método <a href="http://msdn2.microsoft.com/es-es/library/yftc453z%28VS.80%29.aspx">Form.LayoutMdi</a> de este.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Puedes crear una lista de menú con los formularios hijos ajustando la propiedad MenuStrip.MdiWindowListItem a un ToolStripMenuItem. En tiempo de ejecución, el menú automáticamente mostrará los formularios hijos.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:0;"><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:0;"><strong><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Accesibilidad:</span></strong></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"><a href="http://msdn2.microsoft.com/es-es/library/ms233627%28VS.80%29.aspx">Accesibilidad en Windows Forms</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Las aplicaciones deberían ser diseñadas para cumplir los principios de la accesibilidad, incluyendo flexibilidad, elección de métodos de entrada y/ó salida, consistencia y compatibilidad con las ayudas a la accesibilidad.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Las aplicaciones deberían cumplir con la configuración estándar del sistema donde se ejecutan, de esta forma, las ayudas como la modificación del esquema de colores por uno de alto contraste ó el aumento del tamaño de las fuentes afectarán también a nuestra aplicación.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Las aplicaciones accesibles deberían ser diseñadas teniendo en cuenta varias fuentes de entrada, incluyendo accesos de teclado (Hotkeys) bien documentados.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Siempre que se emita un aviso sonoro, ha de ir acompañado de un mensaje informativo. </span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Cada control tiene varias propiedades referentes a la accesibilidad que son usadas por las ayudas a la accesibilidad para obtener y mostrar información. Puedes configurar las propiedades de accesibilidad en tiempo de diseño en la ventana Propiedades del diseñador en Visual Studio.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:0;"><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:0;"><strong><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Asistencia al usuario:</span></strong></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"><a href="http://msdn2.microsoft.com/es-es/library/9cwse3xa%28VS.80%29.aspx">Integrar ayuda al usuario en Windows Forms</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">El control <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.propertygrid%28VS.80%29.aspx">PropertyGrid</a> permite configurar las propiedades de un objeto en la aplicación mediante una interfaz tabular. La propiedad SelectedObject indica el objeto cuyas propiedades se pueden ajustar.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">El control <a href="http://msdn2.microsoft.com/es-es/library/3e51y26z%28VS.80%29.aspx">ProgressBar</a> informa al usuario del progreso de una tarea. Las propiedades ProgressBar.Minimun y ProgressBar.Maximun representan las dos cotas y ProgressBar.Value el valor actual.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">El control <a href="http://msdn2.microsoft.com/es-es/library/3e51y26z%28VS.80%29.aspx">StatusStrip</a> es un control ToolStrip que esta diseñado para mostrar información sobre el estado de la aplicación. Controles como ToolStripStatus y ToolStripProgressBar son controles de tipo ToolStripItem que están diseñados para combinarlos en StatusStrip.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">El componente <a href="http://msdn2.microsoft.com/es-es/library/he23h308%28VS.80%29.aspx">ToolTip</a> permite mostrar tooltips en los controles del formulario.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">El componente <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.errorprovider%28VS.80%29.aspx">ErrorProvider</a> permite mostrar errores in los controles de entrada de datos de la aplicación. Puedes validar la entrada del usuario añadiendo código en el manejador de eventos de Validating y si los datos no son válidos, usa el método ErrorProvider.SetError para mostrar un error.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">El componente <a href="http://msdn2.microsoft.com/es-es/library/2ksk25ts%28VS.80%29.aspx">HelpProvider</a> permite integrar un archivo de ayuda “HTML Help 1.x” (.chm y .htm) con tu aplicación. La propiedad HelpNamespace representa la ubicación del archivo de ayuda asociado con el componente HelpProvider. Se puede llamar a HelpProvider.ShowHelp ó configurar ‘F1’ como SetHelpKeyword para mostrar la ayuda.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">El componente <a href="http://msdn2.microsoft.com/es-es/library/w5bfdtza%28VS.80%29.aspx">SoundPlayer</a> te permite reproducir sonidos. Puedes usar la clase SystemSounds para reproducir sonidos en tiempo de ejecución.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">El componente <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.timer%28VS.80%29.aspx">Timer</a> permite ejecutar acciones en intervalos regulares. El método que maneja el evento Timer.Tick se ejecutará en intervalos regulares definidos por la propiedad Timer.Interval.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Los controles <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.hscrollbar%28vs.80%29.aspx">HScrollBar</a> y <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.vscrollbar%28VS.80%29.aspx">VScrollBar</a> están diseñados para proveer una interfaz que permite acceso rápido a un largo rango de valores en una lista de opciones.</span></p>
<p class="MsoListParagraphCxSpLast" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Los ajustes de aplicación permiten que estos persistan entre sesiones de usuario. Los ajustes de ámbito de aplicación son de solo lectura y los de ámbito de usuario de lectura/escritura en tiempo de ejecución. <span> </span><a href="http://msdn2.microsoft.com/es-es/library/c9db58th%28VS.80%29.aspx">Administrar la configuración de la aplicación</a>.</span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/vtortola.wordpress.com/192/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/vtortola.wordpress.com/192/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vtortola.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vtortola.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vtortola.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vtortola.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vtortola.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vtortola.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vtortola.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vtortola.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vtortola.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vtortola.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vtortola.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vtortola.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vtortola.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vtortola.wordpress.com/192/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=192&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vtortola.wordpress.com/2007/07/08/70-526-resumen-68-funcionalidades-avanzadas-y-usabilidad-en-windows-forms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a2bdbedc82cb3b6f8ae8f1dee4bfd37?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vtortola</media:title>
		</media:content>

		<media:content url="http://vtortola.files.wordpress.com/2007/07/mctswin.png" medium="image" />
	</item>
		<item>
		<title>70-526 Resumen 5/8: Operaciones Asíncronas.</title>
		<link>http://vtortola.wordpress.com/2007/07/07/70-526-resumen-58-operaciones-asincronas/</link>
		<comments>http://vtortola.wordpress.com/2007/07/07/70-526-resumen-58-operaciones-asincronas/#comments</comments>
		<pubDate>Sat, 07 Jul 2007 23:07:43 +0000</pubDate>
		<dc:creator>vtortola</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Certificaciones]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Modelo Asíncrono]]></category>
		<category><![CDATA[MCTS]]></category>
		<category><![CDATA[70-526]]></category>

		<guid isPermaLink="false">http://vtortola.wordpress.com/2007/07/07/70-526-resumen-58-operaciones-asincronas/</guid>
		<description><![CDATA[Quinto resumen de 8 del temario para el examen 70-526 de la certificación MCTS Windows Applications 2.0. Esta, es una de las nuevas certificaciones Microsoft para .NET 2.0. Lo prometí no? Vuelve el modelo asíncrono &#8230; pero en plan repaso Engloba el tema 13.Asynchronous Programming Techniques del libro oficial de Microsoft. Administrando tareas en segundo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=191&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<table border="0" width="100%">
<tr>
<td style="padding:10px;" valign="middle" width="20%">
<p style="text-align:center;"><img src="http://vtortola.files.wordpress.com/2007/07/mctswin.png" /></p>
</td>
<td style="padding-left:10px;padding-top:10px;" align="left">
<p class="MsoNormal" style="text-indent:35.4pt;"><span style="font-size:8pt;font-family:Verdana;">Quinto resumen de 8 del temario para el examen <a href="http://www.microsoft.com/learning/exams/70-526.mspx">70-526</a> de la <a href="http://www.microsoft.com/learning/mcp/mcts/winapps/default.mspx">certificación MCTS <span> </span>Windows Applications 2.0</a>. </span><span style="font-size:8pt;font-family:Verdana;">Esta, es una de <a href="http://vtortola.wordpress.com/2007/04/02/las-nuevas-certificaciones-microsoft/">las nuevas certificaciones Microsoft para .NET 2.0</a>.</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;">Lo prometí no? Vuelve el <a href="http://vtortola.wordpress.com/tag/net/modelo-asincrono/">modelo asíncrono</a> &#8230; pero en plan repaso <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </span><span style="font-size:8pt;font-family:Verdana;"></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;"> Engloba el tema <em>13<span>.</span></em><em><span>Asynchronous Programming Techniques</span></em> </span><span style="font-size:8pt;font-family:Verdana;">del</span><span style="font-size:8pt;font-family:Verdana;"> </span><a href="http://www.microsoft.com/MSPress/books/9983.aspx"><span style="font-size:8pt;font-family:Verdana;"></span></a><a href="http://www.microsoft.com/MSPress/books/9983.aspx"><span>libro oficial de Microsoft</span></a><span style="font-size:8pt;font-family:Verdana;">.</span></p>
</td>
</tr>
</table>
<p class="western" style="margin-bottom:0;"><span id="more-191"></span></p>
<p class="MsoNormal"><strong><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Administrando tareas en segundo plano con BackgroundWorker:</span></strong></p>
<p class="MsoListParagraphCxSpFirst" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">El componente <a href="http://msdn2.microsoft.com/es-es/library/c8dcext2%28VS.80%29.aspx">BackgroundWorker</a> permite ejecutar operaciones en un hilo de ejecución separado. Llamando al método <a href="http://msdn2.microsoft.com/es-es/library/system.componentmodel.backgroundworker.runworkerasync%28VS.80%29.aspx">BackgroundWorker.RunWorkerAsync</a> comienza la ejecución en segundo plano. El método manejador del evento <a href="http://msdn2.microsoft.com/es-es/library/system.componentmodel.backgroundworker.dowork%28VS.80%29.aspx">DoWork</a> contiene el código que se ejecutará en un hilo separado.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Para pasar argumentos a la ejecución del método, usa la sobrecarga del método BackgroundWorker.RunWorkerAsync que acepta un objeto como parámetro. Luego, se puede obtener dicho parámetro desde la propiedad <a href="http://msdn2.microsoft.com/es-es/library/system.componentmodel.doworkeventargs.argument%28VS.80%29.aspx">DoWorkEventArgs.Argument</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">El evento <a href="http://msdn2.microsoft.com/es-es/library/system.componentmodel.backgroundworker.runworkercompleted%28VS.80%29.aspx">BackgroundWorker.RunWorkerCompleted</a> es disparado cuando el proceso se completa.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Es posible habilitar la cancelación de un proceso en segundo plano configurando la propiedad booleana <a href="http://msdn2.microsoft.com/es-es/library/system.componentmodel.backgroundworker.workersupportscancellation%28VS.80%29.aspx">BackgroundWorker.WorkerSupportsCacellation</a> a True. <span> </span>Entonces se indica al BackgroundWorker que cancele el proceso llamando al método <a href="http://msdn2.microsoft.com/es-es/library/system.componentmodel.backgroundworker.cancelasync%28VS.80%29.aspx">BackgroundWorker.CancelAsync</a>, el cual ajusta la propiedad <a href="http://msdn2.microsoft.com/es-es/library/system.componentmodel.backgroundworker.cancellationpending%28VS.80%29.aspx">BackgroundWorker.CancellationPending</a> a True. Entonces se debe evaluar dicha propiedad para abortar la ejecución de la lógica del método DoWork.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Se puede informar del progreso de la operación en segundo plano,<span>  </span>primero hay que ajustar la propiedad <a href="http://msdn2.microsoft.com/es-es/library/system.componentmodel.backgroundworker.workerreportsprogress%28VS.80%29.aspx">BackgroundWorker.WorkerReportsProgress</a> a True. Puedes entonces llamar al método BackgroundWorker.ReportProgress desde el que se enviará el progreso. La ejecución de dicho método disparará el evento <a href="http://msdn2.microsoft.com/es-es/library/system.componentmodel.backgroundworker.progresschanged%28VS.80%29.aspx">BackgroundWorker.ProgressChanged</a> el cual se debe manejar para tomar la decisión deseada con dicha información.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:0;"><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:0;"><strong><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Modelo asíncrono de desarrollo:</span></strong></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><em><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Remember</span></em><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">:<span>  </span><a href="http://vtortola.wordpress.com/2007/06/23/70-536-resumen-47-threading-dominios-de-aplicacion-y-servicios-windows/">70-536 Resumen 4/7: Threading, dominios de aplicación y servicios Windows.</a></span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"><a href="http://vtortola.wordpress.com/2007/04/24/modelo-asincrono-parte-i/">Modelo asíncrono de desarrollo. La invocación.</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"><a href="http://vtortola.wordpress.com/2007/04/29/modelo-asincrono-parte-ii-control/">Modelo asíncrono. El control</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"><a href="http://vtortola.wordpress.com/2007/05/08/modelo-asincrono-parte-iii-espera-y-finalizacion/">Modelo asíncrono. Espera y finalización</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"><a href="http://vtortola.wordpress.com/2007/06/09/modelo-asincrono-parte-iv-sincronizacion/">Modelo asíncrono. Sincronización</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"><a href="http://vtortola.wordpress.com/2007/06/10/modelo-asincrono-parte-v-modificando-controles-desde-otros-hilos/">Modelo asíncrono. Modificar controles desde otros hilos</a>.</span></p>
<p class="MsoListParagraphCxSpLast" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"><a href="http://vtortola.wordpress.com/2007/06/15/modelo-asincrono-parte-vi-deadlocks/">Modelo asíncrono. Deadlocks</a>.</span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/vtortola.wordpress.com/191/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/vtortola.wordpress.com/191/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vtortola.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vtortola.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vtortola.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vtortola.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vtortola.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vtortola.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vtortola.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vtortola.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vtortola.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vtortola.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vtortola.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vtortola.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vtortola.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vtortola.wordpress.com/191/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=191&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vtortola.wordpress.com/2007/07/07/70-526-resumen-58-operaciones-asincronas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a2bdbedc82cb3b6f8ae8f1dee4bfd37?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vtortola</media:title>
		</media:content>

		<media:content url="http://vtortola.files.wordpress.com/2007/07/mctswin.png" medium="image" />
	</item>
		<item>
		<title>70-526 Resumen 4/8: Imprimir en Windows Forms.</title>
		<link>http://vtortola.wordpress.com/2007/07/07/70-526-resumen-48-imprimir-en-windows-forms/</link>
		<comments>http://vtortola.wordpress.com/2007/07/07/70-526-resumen-48-imprimir-en-windows-forms/#comments</comments>
		<pubDate>Sat, 07 Jul 2007 19:11:07 +0000</pubDate>
		<dc:creator>vtortola</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Certificaciones]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[MCTS]]></category>
		<category><![CDATA[70-526]]></category>

		<guid isPermaLink="false">http://vtortola.wordpress.com/2007/07/07/70-526-resumen-48-imprimir-en-windows-forms/</guid>
		<description><![CDATA[Cuarto resumen de 8 del temario para el examen 70-526 de la certificación MCTS Windows Applications 2.0. Esta, es una de las nuevas certificaciones Microsoft para .NET 2.0. Como imprimir desde nuestras aplicaciones en .NET, ni interesante ni emocionante, el papel es cosa de otra época Engloba el tema 10.Printing in Windows Forms del libro [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=190&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<table border="0" width="100%">
<tr>
<td style="padding:10px;" valign="middle" width="20%">
<p style="text-align:center;"><img src="http://vtortola.files.wordpress.com/2007/07/mctswin.png" /></p>
</td>
<td style="padding-left:10px;padding-top:10px;" align="left">
<p class="MsoNormal" style="text-indent:35.4pt;"><span style="font-size:8pt;font-family:Verdana;">Cuarto resumen de 8 del temario para el examen <a href="http://www.microsoft.com/learning/exams/70-526.mspx">70-526</a> de la <a href="http://www.microsoft.com/learning/mcp/mcts/winapps/default.mspx">certificación MCTS <span> </span>Windows Applications 2.0</a>. </span><span style="font-size:8pt;font-family:Verdana;">Esta, es una de <a href="http://vtortola.wordpress.com/2007/04/02/las-nuevas-certificaciones-microsoft/">las nuevas certificaciones Microsoft para .NET 2.0</a>.</span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;">Como imprimir desde nuestras aplicaciones en .NET, ni interesante ni emocionante, el papel es cosa de otra época <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </span><span style="font-size:8pt;font-family:Verdana;"></span></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:Verdana;"> Engloba el tema <em>10<span>.</span></em><em><span>Printing in Windows Forms</span></em> </span><span style="font-size:8pt;font-family:Verdana;">del</span><span style="font-size:8pt;font-family:Verdana;"> </span><a href="http://www.microsoft.com/MSPress/books/9983.aspx"><span style="font-size:8pt;font-family:Verdana;"></span></a><a href="http://www.microsoft.com/MSPress/books/9983.aspx"><span>libro oficial de Microsoft</span></a><span style="font-size:8pt;font-family:Verdana;">.</span></p>
</td>
</tr>
</table>
<p class="western" style="margin-bottom:0;"><span id="more-190"></span></p>
<p class="MsoNormal"><strong><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Imprimiendo en Windows Forms:</span></strong></p>
<p class="MsoListParagraphCxSpFirst" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"><a href="http://msdn2.microsoft.com/es-es/library/xdt36c58%28VS.80%29.aspx">Funcionalidad para imprimir en formularios Windows Forms</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">El componene <a href="http://msdn2.microsoft.com/es-es/library/z9yx67hb%28VS.80%29.aspx">PrintDialog</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">La clase <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.printdialog%28VS.80%29.aspx">PrintDialog</a> representa una ventana de dialogo de impresión. Configurando la propiedad <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.printdialog.document%28VS.80%29.aspx">Document</a> de un PrintDialog puedes habilitar al usuario a cambiar los ajustes de impresión para ese documento. También tiene varias propiedades que permiten ajustar que opciones podrá configurar el usuario.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">El componente <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.pagesetupdialog%28VS.80%29.aspx">PageSetupDialog</a> representa una ventana de dialogo de configuración de página. Configurando la propiedad <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.pagesetupdialog.document%28VS.80%29.aspx">Document</a> puedes permitir al usuario que cambie la configuración de página para ese documento. También tiene varias propiedades que permiten ajustar que opciones podrá configurar el usuario.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"><a href="http://msdn2.microsoft.com/es-es/library/db5y99f9%28VS.80%29.aspx">Información acerca de PageSetupDialog</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">El componente <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.printpreviewdialog%28VS.80%29.aspx">PrintPreviewDialog</a> representa una ventana de dialogo de vista previa de impresión. La propiedad <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.printpreviewdialog.document%28VS.80%29.aspx">Document</a> indica cual es el componente PrintDocument que se está mostrando. También tiene una serie de botones que permite al usuario configurar el modo de presentación.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"><a href="http://msdn2.microsoft.com/es-es/library/36dhht1y%28VS.80%29.aspx">Información acerca de PrintPreviewDialog</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:0;"><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:0;"><strong><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Creando documentos de impresión:</span></strong></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Un documento a imprimir es representado por el componente <a href="http://msdn2.microsoft.com/es-es/library/system.drawing.printing.printdocument%28VS.80%29.aspx">PrintDocument</a>. Este dispara un evento <a href="http://msdn2.microsoft.com/es-es/library/system.drawing.printing.printdocument.printpage%28VS.80%29.aspx">PrintPage</a> cuando se llama al método <a href="http://msdn2.microsoft.com/es-es/library/system.drawing.printing.printdocument.print%28VS.80%29.aspx">Print</a>. El método que maneja dicho evento contiene toda la lógica que dibuja las formas que serán imprimidas.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"><a href="http://msdn2.microsoft.com/es-es/library/se805s02%28VS.80%29.aspx">Información acerca del componente PrintDocument</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">El objeto <a href="http://msdn2.microsoft.com/es-es/library/system.drawing.printing.printpageeventargs%28VS.80%29.aspx">PrintPageEventArgs</a> que se pasa como parámetro al método manejador contiene un objeto Graphics que representa la impresora. Se puede usar los métodos de la clase Graphics para dibujar formas y texto a la impresora.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Si hay múltiples páginas para ser imprimidas, debes configurar la propiedad <a href="http://msdn2.microsoft.com/es-es/library/system.drawing.printing.printpageeventargs.hasmorepages%28VS.80%29.aspx">PrintPageEventArgs.HasMorePages</a> como True. Esto causará que dispare otra vez el evento PrintPage y el método volverá a ejecutarse. Se puede desarrollar una lógica que mantenga un seguimiento del número de páginas y así saber siempre si quedan páginas por imprimir.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Se puede notificar al usuario cuando termina de imprimirse un trabajo manejando el evento <a href="http://msdn2.microsoft.com/es-es/library/system.drawing.printing.printdocument.endprint%28VS.80%29.aspx">EndPrint</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">          </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">La clase <a href="http://msdn2.microsoft.com/es-es/library/system.drawing.printing.printingpermission%28VS.80%29.aspx">PrintingPermission</a> especifica cuatro <a href="http://msdn2.microsoft.com/es-es/library/system.drawing.printing.printingpermissionlevel%28VS.80%29.aspx">PrintingPermissionLevel</a> que detallan los permisos para imprimir.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:0;"><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:0;"><strong><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Creando un componente de previsualización personalizado:</span></strong></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;"><span>-<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">           </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Información sobre <a href="http://msdn2.microsoft.com/es-es/library/zfk9y17w%28VS.80%29.aspx">PrintPreviewControl</a>.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;"><span>-<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">           </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">El control <a href="http://msdn2.microsoft.com/es-es/library/system.windows.forms.printpreviewcontrol%28VS.80%29.aspx">PrintPreviewControl</a> es el corazón del dialogo PrintPreviewDialog y contiene todas las funcionalidades requeridas para llamar al evento PrintPages y refirecionar la salida al control. La propiedad Document representa el componente PrintDocument que es previsualizado.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;"><span>-<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">           </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Expone propiedades que permiten configurar el número de filas, el número de columnas, el nivel de zoom, si hay que usar anti-aliasing y la página de inicio.</span></p>
<p class="MsoListParagraphCxSpLast" style="text-indent:18pt;"><span style="font-size:8pt;line-height:115%;"><span>-<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">           </span></span></span><span style="font-size:8pt;line-height:115%;font-family:'Verdana','sans-serif';">Si necesitas métodos ó eventos adicionales para extender la funcionalidad de PrintPreviewControl puedes crear una clase que herede de esta con los miembros adicionales.</span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/vtortola.wordpress.com/190/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/vtortola.wordpress.com/190/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vtortola.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vtortola.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vtortola.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vtortola.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vtortola.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vtortola.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vtortola.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vtortola.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vtortola.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vtortola.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vtortola.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vtortola.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vtortola.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vtortola.wordpress.com/190/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vtortola.wordpress.com&amp;blog=936542&amp;post=190&amp;subd=vtortola&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vtortola.wordpress.com/2007/07/07/70-526-resumen-48-imprimir-en-windows-forms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a2bdbedc82cb3b6f8ae8f1dee4bfd37?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vtortola</media:title>
		</media:content>

		<media:content url="http://vtortola.files.wordpress.com/2007/07/mctswin.png" medium="image" />
	</item>
	</channel>
</rss>
