<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2spanishfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>DevTroce.com</title>
	
	<link>http://www.devtroce.com</link>
	<description>Destrozando código!</description>
	<lastBuildDate>Sat, 04 Sep 2010 22:39:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Devtroce" /><feedburner:info uri="devtroce" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><image><link>www.devtroce.com</link><url>http://www.devtroce.com/images/logo_64_blue.png</url><title>Devtroce.com</title></image><feedburner:emailServiceId>Devtroce</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/content?lg=es&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FDevtroce" src="http://eur.i1.yimg.com/eur.yimg.com/i/es/my/addto1.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FDevtroce" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/Devtroce" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FDevtroce" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FDevtroce" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FDevtroce" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2FDevtroce" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FDevtroce" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FDevtroce" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FDevtroce" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FDevtroce" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FDevtroce" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FDevtroce" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FDevtroce" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2FDevtroce" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item>
		<title>Recorrer los controles de un formulario con C# &amp; VB.Net</title>
		<link>http://feedproxy.google.com/~r/Devtroce/~3/xLIJdbLhbSw/</link>
		<comments>http://www.devtroce.com/2010/09/01/recorrer-los-controles-de-un-formulario-con-c-vb-net/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 00:04:34 +0000</pubDate>
		<dc:creator>GeekZero</dc:creator>
				<category><![CDATA[C# .Net]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Lenguajes de Programación]]></category>
		<category><![CDATA[Plataformas]]></category>
		<category><![CDATA[VB .Net]]></category>

		<guid isPermaLink="false">http://www.devtroce.com/?p=2009</guid>
		<description><![CDATA[Hoy un compañero mío preguntaba en el buzz como podía recorrer los controles de su WinForm con C#. Entre 2 estuvimos dando una solución rápida y a ciegas que creo funcionaba , pero en el mismo buzz le comentaba que un tiempo atrás ya había escrito el código y prometía pasarle lo que había hecho [...]


Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2010/07/14/como-programar-en-n-capas-con-c-parte-5/' rel='bookmark' title='Permanent Link: Como programar en n-Capas con C# (Parte 5)'>Como programar en n-Capas con C# (Parte 5)</a></li>
<li><a href='http://www.devtroce.com/2010/07/29/pasar-parametros-por-get-en-asp-net/' rel='bookmark' title='Permanent Link: Pasar parametros por GET en ASP.Net'>Pasar parametros por GET en ASP.Net</a></li>
<li><a href='http://www.devtroce.com/2010/06/09/convertir-de-string-a-color-en-asp-net/' rel='bookmark' title='Permanent Link: Convertir de String a Color en ASP.Net'>Convertir de String a Color en ASP.Net</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Hoy un compañero mío preguntaba en el buzz como podía recorrer los controles de su WinForm con<strong> C#</strong>. Entre 2 estuvimos dando una solución rápida y a ciegas que creo funcionaba <img src='http://www.devtroce.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> , pero en el mismo buzz le comentaba que un tiempo atrás ya había escrito el código y prometía pasarle lo que había hecho (bueno de yapa se viene el artículo en devtroce).</p>
<p>Ésta tarea es particularmente sencilla realizarla con <strong>dotNet</strong> por ello que me tomo la particularidad de escribirla en los 2 lenguajes <strong>C# </strong>y <strong>VB Net</strong>. No sólo recorreremos todos los controles sino <span id="more-2009"></span>también preguntaremos si es de un tipo especifico &#8211; en este caso un <strong>TextBox </strong>- y lo <strong>inhabilitaremos </strong>si cumple con la condición. También cubriremos la posibilidad que un control sea GroupBox y recorreremos todo lo que contenga, si hay dentro algún TextBox, será inhabilitado.</p>
<h1>C#.Net</h1>

<div class="wp_codebox"><table><tr id="p20093"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code" id="p2009code3"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">foreach</span> <span style="color: #008000;">&#40;</span>Control controlChotex <span style="color: #0600FF; font-weight: bold;">in</span> <span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Controls</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>controlcito <a href="http://www.google.com/search?q=is+msdn.microsoft.com"><span style="color: #008000;">is</span></a> TextBox<span style="color: #008000;">&#41;</span>
		controlcito<span style="color: #008000;">.</span><span style="color: #0000FF;">Enabled</span> <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">false</span><span style="color: #008000;">;</span>
	<span style="color: #0600FF; font-weight: bold;">else</span> <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>controlcito<span style="color: #008000;">.</span><span style="color: #0000FF;">HasChildren</span><span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		<span style="color: #0600FF; font-weight: bold;">foreach</span> <span style="color: #008000;">&#40;</span>Control controlChild <span style="color: #0600FF; font-weight: bold;">in</span> controlcito<span style="color: #008000;">.</span><span style="color: #0000FF;">Controls</span><span style="color: #008000;">&#41;</span>
		<span style="color: #008000;">&#123;</span>
			<span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>controlChild <a href="http://www.google.com/search?q=is+msdn.microsoft.com"><span style="color: #008000;">is</span></a> TextBox<span style="color: #008000;">&#41;</span>
				controlChild <span style="color: #008000;">.</span><span style="color: #0000FF;">Enabled</span> <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">false</span><span style="color: #008000;">;</span>
		<span style="color: #008000;">&#125;</span>
	<span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<h1>Visual Basic.Net</h1>

<div class="wp_codebox"><table><tr id="p20094"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code" id="p2009code4"><pre class="vbnet" style="font-family:monospace;"><span style="color: #0600FF;">Dim</span> controlcito <span style="color: #FF8000;">As</span> Control
<span style="color: #0600FF;">Dim</span> controlChild <span style="color: #FF8000;">As</span> Control
&nbsp;
<span style="color: #FF8000;">For</span> <span style="color: #0600FF;">Each</span> controlcito In <span style="color: #FF8000;">Me</span>.<span style="color: #0000FF;">Controls</span>
	<span style="color: #0600FF;">If</span> TypeOf controlcito <span style="color: #FF8000;">Is</span> TextBox <span style="color: #FF8000;">Then</span>
		controlcito.<span style="color: #0000FF;">Enabled</span> <span style="color: #008000;">=</span> <span style="color: #0600FF;">False</span>
	<span style="color: #FF8000;">ElseIf</span> controlcito.<span style="color: #0000FF;">HasChildren</span> <span style="color: #FF8000;">Then</span>
		<span style="color: #FF8000;">For</span> <span style="color: #0600FF;">Each</span> controlChild In controlcito.<span style="color: #0000FF;">Controls</span>
			<span style="color: #0600FF;">If</span> TypeOf controlChild <span style="color: #FF8000;">Is</span> TextBox <span style="color: #FF8000;">Then</span>
				controlChild.<span style="color: #0000FF;">Enabled</span> <span style="color: #008000;">=</span> <span style="color: #0600FF;">False</span>
			<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">If</span>
		<span style="color: #FF8000;">Next</span>
	<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">If</span>
<span style="color: #FF8000;">Next</span></pre></td></tr></table></div>



<p>Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2010/07/14/como-programar-en-n-capas-con-c-parte-5/' rel='bookmark' title='Permanent Link: Como programar en n-Capas con C# (Parte 5)'>Como programar en n-Capas con C# (Parte 5)</a></li>
<li><a href='http://www.devtroce.com/2010/07/29/pasar-parametros-por-get-en-asp-net/' rel='bookmark' title='Permanent Link: Pasar parametros por GET en ASP.Net'>Pasar parametros por GET en ASP.Net</a></li>
<li><a href='http://www.devtroce.com/2010/06/09/convertir-de-string-a-color-en-asp-net/' rel='bookmark' title='Permanent Link: Convertir de String a Color en ASP.Net'>Convertir de String a Color en ASP.Net</a></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Devtroce?a=xLIJdbLhbSw:oDsJDzOro5E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=xLIJdbLhbSw:oDsJDzOro5E:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=xLIJdbLhbSw:oDsJDzOro5E:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Devtroce/~4/xLIJdbLhbSw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.devtroce.com/2010/09/01/recorrer-los-controles-de-un-formulario-con-c-vb-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.devtroce.com/2010/09/01/recorrer-los-controles-de-un-formulario-con-c-vb-net/</feedburner:origLink></item>
		<item>
		<title>Cambiar la apariencia de las aplicaciones hechas en Java – Swing</title>
		<link>http://feedproxy.google.com/~r/Devtroce/~3/fy2hZHR5LPg/</link>
		<comments>http://www.devtroce.com/2010/09/01/cambiar-la-apariencia-de-las-aplicaciones-hechas-en-java/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 04:30:31 +0000</pubDate>
		<dc:creator>GeekZero</dc:creator>
				<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Lenguajes de Programación]]></category>
		<category><![CDATA[Plataformas]]></category>

		<guid isPermaLink="false">http://www.devtroce.com/?p=2004</guid>
		<description><![CDATA[Desde que conocí el desarrollo de aplicaciones Desktop con Java - hace un par de años atrás &#8211; me pareció que tiene una interfaz gráfica de usuario pobre y fea. La apariencia a Metal da un aspecto muy rígido, incluso más feo al que tenía Windows 95 en la época (Eso que estoy hablando de Swing porque [...]


Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2010/03/26/verificar-y-crear-directorio-con-java/' rel='bookmark' title='Permanent Link: Verificar y Crear directorio con Java'>Verificar y Crear directorio con Java</a></li>
<li><a href='http://www.devtroce.com/2009/12/21/autenticarse-contra-un-web-service-con-autenticacion-con-java-y-visual-basic/' rel='bookmark' title='Permanent Link: Autenticarse contra un Web Service con Autenticación con Java y Visual Basic'>Autenticarse contra un Web Service con Autenticación con Java y Visual Basic</a></li>
<li><a href='http://www.devtroce.com/2010/02/05/capturar-texto-por-consola-en-java-en-modo-password/' rel='bookmark' title='Permanent Link: Capturar texto por consola en Java en modo Password'>Capturar texto por consola en Java en modo Password</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Desde que conocí el desarrollo de aplicaciones <strong>Desktop </strong>con <strong>Java </strong>- hace un par de años atrás &#8211; me pareció que tiene una <strong>interfaz gráfica de usuario </strong>pobre y fea. La apariencia a Metal da un aspecto muy rígido, incluso más feo al que tenía Windows 95 en la época (Eso que estoy hablando de Swing porque si consideramos AWT)</p>
<p>Por suerte esto quedó remediado desde el update 10 de la versión 6 de Java (algo tarde pero lo vale), incluye lo que se llama <strong>Feel &amp; Look</strong> lo que nos permite cambiar de apariencia según nuestro gusto. Esto podemos hacerlo editando la configuración del JRE que tenemos instalado, pero no lo mostraré porque estoy convencido que las aplicaciones que creamos son para el usuario final y a ellos no vamos a exigirles que entren a configurar su <em>Runtime </em>manualmente, no?</p>
<p>Así que haremos algo más interesante que eso, y veremos como setear la configuración visual para la App<span id="more-2004"></span>, si somos algo ingeniosos podemos cambiar en tiempo de ejecución la misma a elección del usuario, pero ese es otro cuento que ustedes narrarán.</p>
<p>El código debemos escribirlo ante que todo, ante que instanciemos objetos gráficos como botones, jFrame, jPanel, etc. preferentemente en el main void de la aplicación. Para ello importamos lo siguiente:</p>

<div class="wp_codebox"><table><tr id="p200412"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p2004code12"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.swing.*</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Luego nos vemos obligados a crear un bloque con control de errores y cargar el Look</p>
<h1>Feel &amp; Look: Nimbus</h1>

<div class="wp_codebox"><table><tr id="p200413"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code" id="p2004code13"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
		<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Auimanager+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">UIManager</span></a>.<span style="color: #006633;">setLookAndFeel</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Exception</span></a> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	FrmPrincipal frmPrincipal <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> FrmPrincipal<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	frmPrincipal.<span style="color: #006633;">setVisible</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Con esta linea cargaríamos el tema que personalmente más me agrada, y de hecho el que es más preciso ya que está construidos con vectores a diferencia de los bitmap de los otros temas, para ejemplificar les muestro una captura de sus controles</p>
<p style="text-align: center;"><a href="http://www.devtroce.com/wp-content/uploads/2010/09/Nimbus.png" rel="shadowbox[post-2004];player=img;" title="Nimbus"><img class="aligncenter size-full wp-image-2005" title="Nimbus" src="http://www.devtroce.com/wp-content/uploads/2010/09/Nimbus.png" alt="Nimbus" width="479" height="280" /></a></p>
<h1>Feel &amp; Look: Metal</h1>
<p>Para cambiar de apariencia al Metal, que es el que viene por defecto solo cambiamos línea 3 del código anterior por ésta:</p>

<div class="wp_codebox"><table><tr id="p200414"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p2004code14"><pre class="java" style="font-family:monospace;"><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Auimanager+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">UIManager</span></a>.<span style="color: #006633;">setLookAndFeel</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;javax.swing.plaf.metal.MetalLookAndFeel&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p style="text-align: center;"><a href="http://www.devtroce.com/wp-content/uploads/2010/09/Metal.png" rel="shadowbox[post-2004];player=img;" title="Metal"><img class="aligncenter size-full wp-image-2006" title="Metal" src="http://www.devtroce.com/wp-content/uploads/2010/09/Metal.png" alt="" width="472" height="279" /></a></p>
<h1>Feel &amp; Look: Windows</h1>

<div class="wp_codebox"><table><tr id="p200415"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p2004code15"><pre class="java" style="font-family:monospace;"><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Auimanager+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">UIManager</span></a>.<span style="color: #006633;">setLookAndFeel</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;com.sun.java.swing.plaf.windows.WindowsLookAndFeel&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p style="text-align: center;"><a href="http://www.devtroce.com/wp-content/uploads/2010/09/Windows.png" rel="shadowbox[post-2004];player=img;" title="Windows"><img class="aligncenter size-full wp-image-2007" title="Windows" src="http://www.devtroce.com/wp-content/uploads/2010/09/Windows.png" alt="Windows" width="490" height="309" /></a></p>
<p>Otras opciones típicas que tienen son las siguientes (aunque ya no pondré capturas, debido a que no las tengo instaladas en éste momento)</p>
<h1>Feel &amp; Look: GTK</h1>

<div class="wp_codebox"><table><tr id="p200416"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p2004code16"><pre class="java" style="font-family:monospace;"><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Auimanager+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">UIManager</span></a>.<span style="color: #006633;">setLookAndFeel</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;com.sun.java.swing.plaf.gtk.GTKLookAndFeel&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<h1>Feel &amp; Look: MAC OS o QUAQUA</h1>

<div class="wp_codebox"><table><tr id="p200417"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p2004code17"><pre class="java" style="font-family:monospace;"><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Auimanager+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">UIManager</span></a>.<span style="color: #006633;">setLookAndFeel</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;com.apple.laf.AquaLookAndFeel&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
O
<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Auimanager+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">UIManager</span></a>.<span style="color: #006633;">setLookAndFeel</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;com.sun.java.swing.plaf.mac.MacLookAndFeel&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Si lo que necesitamos es recorrer los LAF instalados en el Sistema Operativo pueden hacerlo con este código:</p>

<div class="wp_codebox"><table><tr id="p200418"><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code" id="p2004code18"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.swing.UIManager.*</span><span style="color: #339933;">;</span>
...
<span style="color: #006633;">LookAndFeelInfo</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> lista <span style="color: #339933;">=</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Auimanager+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">UIManager</span></a>.<span style="color: #006633;">getInstalledLookAndFeels</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> lista.<span style="color: #006633;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Asystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">System</span></a>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>lista<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">getClassName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
...</pre></td></tr></table></div>



<p>Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2010/03/26/verificar-y-crear-directorio-con-java/' rel='bookmark' title='Permanent Link: Verificar y Crear directorio con Java'>Verificar y Crear directorio con Java</a></li>
<li><a href='http://www.devtroce.com/2009/12/21/autenticarse-contra-un-web-service-con-autenticacion-con-java-y-visual-basic/' rel='bookmark' title='Permanent Link: Autenticarse contra un Web Service con Autenticación con Java y Visual Basic'>Autenticarse contra un Web Service con Autenticación con Java y Visual Basic</a></li>
<li><a href='http://www.devtroce.com/2010/02/05/capturar-texto-por-consola-en-java-en-modo-password/' rel='bookmark' title='Permanent Link: Capturar texto por consola en Java en modo Password'>Capturar texto por consola en Java en modo Password</a></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Devtroce?a=fy2hZHR5LPg:c7gHQSu3nTs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=fy2hZHR5LPg:c7gHQSu3nTs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=fy2hZHR5LPg:c7gHQSu3nTs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Devtroce/~4/fy2hZHR5LPg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.devtroce.com/2010/09/01/cambiar-la-apariencia-de-las-aplicaciones-hechas-en-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.devtroce.com/2010/09/01/cambiar-la-apariencia-de-las-aplicaciones-hechas-en-java/</feedburner:origLink></item>
		<item>
		<title>Guía para crear aplicaciones Multilenguajes con dotNet</title>
		<link>http://feedproxy.google.com/~r/Devtroce/~3/DNZGSI556eI/</link>
		<comments>http://www.devtroce.com/2010/08/30/guia-para-crear-aplicaciones-multilenguajes-con-dotnet/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 21:31:55 +0000</pubDate>
		<dc:creator>GeekZero</dc:creator>
				<category><![CDATA[C# .Net]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Lenguajes de Programación]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Desktop]]></category>

		<guid isPermaLink="false">http://www.devtroce.com/?p=1993</guid>
		<description><![CDATA[Siempre me preguntaba como crear programas multilenguajes, ya tenía una idea bastante robusta para hacerlo y luego de investigar en varias fuentes me he quedado con un método sencillo (casi todos son sencillos de hecho), pero éste es el más práctico. Para ejemplificar vamos a crear un proyecto WinForm con C# en Visual Studio, el [...]


Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2009/12/25/integrar-aplicaciones-con-el-escritorio-de-windows-7/' rel='bookmark' title='Permanent Link: Integrar Aplicaciones con el escritorio de Windows 7'>Integrar Aplicaciones con el escritorio de Windows 7</a></li>
<li><a href='http://www.devtroce.com/2010/06/17/crear-y-utilizar-sesiones-en-asp-net/' rel='bookmark' title='Permanent Link: Crear y Utilizar Sesiones en ASP.Net'>Crear y Utilizar Sesiones en ASP.Net</a></li>
<li><a href='http://www.devtroce.com/2010/07/18/compilacion-condicional-en-dotnet/' rel='bookmark' title='Permanent Link: Compilación condicional en dotNet'>Compilación condicional en dotNet</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Siempre me preguntaba como crear programas <strong>multilenguajes</strong>, ya tenía una idea bastante robusta para hacerlo y luego de investigar en varias fuentes me he quedado con un método sencillo (casi todos son sencillos de hecho), pero éste es el más práctico.</p>
<p>Para ejemplificar vamos a crear un proyecto WinForm con C# en<strong> Visual Studio</strong>, el formulario debe quedar algo así:</p>
<p><a href="http://www.devtroce.com/wp-content/uploads/2010/08/disenho1.png" rel="shadowbox[post-1993];player=img;" title="disenho"><img class="aligncenter size-full wp-image-1996" title="disenho" src="http://www.devtroce.com/wp-content/uploads/2010/08/disenho1.png" alt="" width="358" height="181" /></a></p>
<p>Lo que haremos será escribir las 3 comidas principales del dia, <em>Desayuno</em>, <em>Almuerzo </em>y <em>Cena </em>en los Label de los botones, obviamente cada uno en una lengua según los radio button que elijamos. Si ya se pude haber tenido una mejor idea :[</p>
<p>Luego vamos a crear una carpeta llamada Lenguajes <span id="more-1993"></span>(o como les guste) y crearemos dentro de él, 4 <strong>archivos de recursos</strong>, uno para cada idioma, teniendo en cuenta uno por defecto por si no podemos detectar correctamente la cultura o no tenemos un recurso para dicha cultura .</p>
<p><a href="http://www.devtroce.com/wp-content/uploads/2010/08/Recursos.png" rel="shadowbox[post-1993];player=img;" title="Recursos"><img class="aligncenter size-full wp-image-1995" title="Recursos" src="http://www.devtroce.com/wp-content/uploads/2010/08/Recursos.png" alt="" width="422" height="350" /></a></p>
<p>Quedaría así mas o menos el contenido de cada recurso.</p>
<p style="text-align: center;"><a href="http://www.devtroce.com/wp-content/uploads/2010/08/recursos.py_.png" rel="shadowbox[post-1993];player=img;" title="recursos.py"><img class="aligncenter size-full wp-image-1997" title="recursos.py" src="http://www.devtroce.com/wp-content/uploads/2010/08/recursos.py_.png" alt="" width="412" height="116" /></a></p>
<p style="text-align: left;">Ya solo nos queda crear un archivo de recurso por cada idioma y al final del nombre agregarle la <strong>Cultura</strong>, en este ejemplo use</p>
<ol>
<li>DE-DE: Alemán</li>
<li>ES-PY: Paraguay</li>
<li>ES-US: Inglés</li>
</ol>
<p>Necesitamos crear un método que se encargue de asignar los labels correctos para cada idioma, de este modo:</p>

<div class="wp_codebox"><table><tr id="p199322"><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code" id="p1993code22"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">void</span> SwitchIdioma<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    Boton1<span style="color: #008000;">.</span><span style="color: #0000FF;">Text</span> <span style="color: #008000;">=</span> Lenguajes<span style="color: #008000;">.</span><span style="color: #0000FF;">Recurso</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Boton1</span><span style="color: #008000;">;</span>
    Boton2<span style="color: #008000;">.</span><span style="color: #0000FF;">Text</span> <span style="color: #008000;">=</span> Lenguajes<span style="color: #008000;">.</span><span style="color: #0000FF;">Recurso</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Boton2</span><span style="color: #008000;">;</span>
    Boton3<span style="color: #008000;">.</span><span style="color: #0000FF;">Text</span> <span style="color: #008000;">=</span> Lenguajes<span style="color: #008000;">.</span><span style="color: #0000FF;">Recurso</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Boton3</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p style="text-align: left;">Ahora en el evento de change selection de cada radio button escribimos el siguiente código:</p>

<div class="wp_codebox"><table><tr id="p199323"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code" id="p1993code23"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">void</span> rdbEspañol_CheckedChanged<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">object</span> sender, EventArgs e<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #000000;">System.<span style="color: #0000FF;">Threading</span></span><span style="color: #008000;">.</span><span style="color: #0000FF;">Thread</span><span style="color: #008000;">.</span><span style="color: #0000FF;">CurrentThread</span><span style="color: #008000;">.</span><span style="color: #0000FF;">CurrentUICulture</span> <span style="color: #008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> CultureInfo<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;ES-PY&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
    SwitchIdioma<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">void</span> rdbIngles_CheckedChanged<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">object</span> sender, EventArgs e<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #000000;">System.<span style="color: #0000FF;">Threading</span></span><span style="color: #008000;">.</span><span style="color: #0000FF;">Thread</span><span style="color: #008000;">.</span><span style="color: #0000FF;">CurrentThread</span><span style="color: #008000;">.</span><span style="color: #0000FF;">CurrentUICulture</span> <span style="color: #008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> CultureInfo<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;ES-US&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
    SwitchIdioma<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">void</span> rdbAleman_CheckedChanged<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">object</span> sender, EventArgs e<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #000000;">System.<span style="color: #0000FF;">Threading</span></span><span style="color: #008000;">.</span><span style="color: #0000FF;">Thread</span><span style="color: #008000;">.</span><span style="color: #0000FF;">CurrentThread</span><span style="color: #008000;">.</span><span style="color: #0000FF;">CurrentUICulture</span> <span style="color: #008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> CultureInfo<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;DE-DE&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
    SwitchIdioma<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>En todo caso para que cuando se cargue el formulario se vean ya bien configurado un idioma llamamos al metodo en el Load del Form:</p>

<div class="wp_codebox"><table><tr id="p199324"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p1993code24"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">void</span> FrmDevTroce_Load<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">object</span> sender, EventArgs e<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    SwitchIdioma<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>Finalmente los formularios se verán asi:</p>
<p><a href="http://www.devtroce.com/wp-content/uploads/2010/08/es.png" rel="shadowbox[post-1993];player=img;" title="es"><img class="aligncenter size-full wp-image-1999" title="es" src="http://www.devtroce.com/wp-content/uploads/2010/08/es.png" alt="" width="358" height="180" /></a><a href="http://www.devtroce.com/wp-content/uploads/2010/08/us.png" rel="shadowbox[post-1993];player=img;"></a></p>
<p><a href="http://www.devtroce.com/wp-content/uploads/2010/08/us.png" rel="shadowbox[post-1993];player=img;" title="us"><img class="aligncenter size-full wp-image-2000" title="us" src="http://www.devtroce.com/wp-content/uploads/2010/08/us.png" alt="" width="358" height="180" /></a></p>
<p><a href="http://www.devtroce.com/wp-content/uploads/2010/08/al.png" rel="shadowbox[post-1993];player=img;" title="al"><img class="aligncenter size-full wp-image-1998" title="al" src="http://www.devtroce.com/wp-content/uploads/2010/08/al.png" alt="" width="358" height="180" /></a></p>


<p>Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2009/12/25/integrar-aplicaciones-con-el-escritorio-de-windows-7/' rel='bookmark' title='Permanent Link: Integrar Aplicaciones con el escritorio de Windows 7'>Integrar Aplicaciones con el escritorio de Windows 7</a></li>
<li><a href='http://www.devtroce.com/2010/06/17/crear-y-utilizar-sesiones-en-asp-net/' rel='bookmark' title='Permanent Link: Crear y Utilizar Sesiones en ASP.Net'>Crear y Utilizar Sesiones en ASP.Net</a></li>
<li><a href='http://www.devtroce.com/2010/07/18/compilacion-condicional-en-dotnet/' rel='bookmark' title='Permanent Link: Compilación condicional en dotNet'>Compilación condicional en dotNet</a></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Devtroce?a=DNZGSI556eI:KP4aIsaoLAU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=DNZGSI556eI:KP4aIsaoLAU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=DNZGSI556eI:KP4aIsaoLAU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Devtroce/~4/DNZGSI556eI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.devtroce.com/2010/08/30/guia-para-crear-aplicaciones-multilenguajes-con-dotnet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.devtroce.com/2010/08/30/guia-para-crear-aplicaciones-multilenguajes-con-dotnet/</feedburner:origLink></item>
		<item>
		<title>Programación Orientada a Objetos: Clases y Objetos</title>
		<link>http://feedproxy.google.com/~r/Devtroce/~3/c9nOd3uioBw/</link>
		<comments>http://www.devtroce.com/2010/08/28/programacion-orientada-a-objetos-clases-y-objetos/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 17:44:47 +0000</pubDate>
		<dc:creator>GeekZero</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Lenguajes de Programación]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[VB .Net]]></category>
		<category><![CDATA[OOP]]></category>

		<guid isPermaLink="false">http://www.devtroce.com/?p=1992</guid>
		<description><![CDATA[Desde la universidad y el trabajo he notado constantemente que los conceptos del paradigma de la Programación Orientada a Objetos hace temblar hasta al mas experimentado programador tradicional, me parecen que no son difíciles de comprender pero es un poco duro masticarlos ya que nos hacen cambiar de manera radical nuestra manera de pensar en código, por eso decidí [...]


Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2009/12/15/como-destruir-clases-en-c/' rel='bookmark' title='Permanent Link: Como destruir clases en C#'>Como destruir clases en C#</a></li>
<li><a href='http://www.devtroce.com/2009/12/21/autenticarse-contra-un-web-service-con-autenticacion-con-java-y-visual-basic/' rel='bookmark' title='Permanent Link: Autenticarse contra un Web Service con Autenticación con Java y Visual Basic'>Autenticarse contra un Web Service con Autenticación con Java y Visual Basic</a></li>
<li><a href='http://www.devtroce.com/2010/01/11/desplegar-asp-net-en-apache-tomcat-sobre-gnulinux-y-sql-server/' rel='bookmark' title='Permanent Link: Desplegar ASP.Net en Apache Tomcat sobre GNU/Linux y SQL Server'>Desplegar ASP.Net en Apache Tomcat sobre GNU/Linux y SQL Server</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Desde la universidad y el trabajo he notado constantemente que los conceptos del paradigma de la <strong>Programación Orientada a Objetos</strong> hace temblar hasta al mas experimentado programador tradicional, me parecen que no son difíciles de comprender pero es un poco duro masticarlos ya que nos hacen cambiar de manera radical nuestra manera de pensar en código, por eso decidí escribir un tutorial entregados en varios artículos, explicando los conceptos de este paradigma.</p>
<p>En Internet encontrarán miles de guías, tutoriales, libros, blog, foros que explican estos conceptos a su manera. He llegado en conclusión que las personas por algún motivos sólo les llega la explicación de algunos de éstos autores y no todos (como me paso a mí y a mis compañeros), espero poder llegar a explicar y dar a entender estas ideas. Para facilitar la comprensión, en el tutorial escribiré ejemplos prácticos en 2 lenguajes distintos: <strong>Java </strong>y <strong>Visual Basic</strong>. <span id="more-1992"></span>(No elijo C# por su parecido sintáctico con Java). También cuando sea necesario contextualmente veremos SQL aplicado.</p>
<p>La definición que da la Wikipedia sobre la Programación Orientada a Objetos (de ahora en más <strong>OOP</strong>) es la siguiente:</p>
<blockquote><p>La programación orientada a objetos o <strong>POO </strong>(<strong>OOP </strong>según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe variedad de lenguajes de programación que soportan la orientación a objetos.</p></blockquote>
<p>En la primer parte comenzaremos con 2 conceptos muy sencillos, que son las clases y los objetos, aún así siendo sencillos producen tanta duda en programadores que comienzan a introducirse en el Mundo OOP.</p>
<p>Una <strong>clase </strong>es un <em>mapeo, </em> una <em>abstracción conceptual, definición o descripción</em> de un cualquier &#8220;cosa&#8221; del mundo real, esas definiciones se logran mediante atributos y acciones propias de la clase. Y el objeto es la instancia, algo &#8220;real&#8221; que plasma las definiciones de su clase.</p>
<p>Es un poco engorroso comprenderlo así no?, con una idea más práctica es más sencillo. Se puede decir que una <strong>persona es una clase</strong>, por que las personas están compuestas por varios atributos que la definen, por ejemplo sus brazos, ojos, bocas, altura, peso, tez, género, nombre, apellido, nacimiento, nacionalidad, todo esto son abstracciones conceptuales que definen a una persona. Si plasmamos esto en el plano real, Yo soy un objeto, Tú eres otro objeto, Linus Torvals es otro objeto de la clase persona, todos somos un objeto o una instancia de la clase persona y cada uno tenemos nuestros atributos que nos definen como tal.</p>
<p>Aplicados a la OOP estas ideas, una clase tiene prácticamente n-atributos, pero para resolver un sistema no necesitamos de todos ellos, sólo debemos abstraer los conceptos que son requeridos para el contexto del sistema, dicho en otras palabras, un atributo típico de la clase persona suele ser Número de Documento de Identidad y sus nombres. En la mayoría de los sistemas o contextos a resolver es un atributo válido, pero que sucede si estamos creando un sistema para una hospital materno, donde sólo se hacen partos? Estos atributos no se ven aplicados al contexto, ya que los bebés al nacer recién no se registran aún y por ende no tienen nombres, apellidos y mucho menos documento de identidad. Se comprende? Es por eso que sólo debemos dedicarnos a mapear los atributos relevantes dentro de nuestro contexto.</p>
<p>Vamos ya a lo práctico y creemos la clase Persona en los lenguajes de programación citados arriba.</p>
<h1>Java</h1>

<div class="wp_codebox"><table><tr id="p199228"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
</pre></td><td class="code" id="p1992code28"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">devtroce</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Persona <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * @author GeekZero@DevTroce.com
	 */</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// lista de atributos que la definen</span>
	<span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> Nombre<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> Apellido<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> Documento<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span> Peso<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> Ojos<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">char</span> Sexo<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// metodo para poder ejecutar la clase en Java (irrelevante para el conceto estudiado)</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// instancia de la clase persona</span>
		<span style="color: #666666; font-style: italic;">// el nombre del objeto debe ser distinto que el nombre de su clase,</span>
		<span style="color: #666666; font-style: italic;">// puede tener cualquiera que querramos</span>
		Persona persona <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Persona<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// asignación de valores al objeto</span>
		persona.<span style="color: #006633;">Nombre</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Linus&quot;</span><span style="color: #339933;">;</span>
		persona.<span style="color: #006633;">Apellido</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Torvals&quot;</span><span style="color: #339933;">;</span>
		persona.<span style="color: #006633;">Documento</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;777&quot;</span><span style="color: #339933;">;</span>
		persona.<span style="color: #006633;">Peso</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">80</span><span style="color: #339933;">;</span>
		persona.<span style="color: #006633;">Ojos</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Azul&quot;</span><span style="color: #339933;">;</span>
		persona.<span style="color: #006633;">Sexo</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'M'</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// instancia de la clase persona</span>
		Persona otraPersona <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Persona<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// asignación de valores al objeto</span>
		otraPersona.<span style="color: #006633;">Nombre</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Winona&quot;</span><span style="color: #339933;">;</span>
		otraPersona.<span style="color: #006633;">Apellido</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Raider&quot;</span><span style="color: #339933;">;</span>
		otraPersona.<span style="color: #006633;">Documento</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;666&quot;</span><span style="color: #339933;">;</span>
		otraPersona.<span style="color: #006633;">Peso</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">65</span><span style="color: #339933;">;</span>
		otraPersona.<span style="color: #006633;">Ojos</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Marrones&quot;</span><span style="color: #339933;">;</span>
		otraPersona.<span style="color: #006633;">Sexo</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'F'</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// listado</span>
		<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Asystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">System</span></a>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;La primer persona es: &quot;</span> <span style="color: #339933;">+</span> persona.<span style="color: #006633;">Nombre</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; &quot;</span> <span style="color: #339933;">+</span> persona.<span style="color: #006633;">Apellido</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Asystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">System</span></a>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;La segunda persona es: &quot;</span> <span style="color: #339933;">+</span> otraPersona.<span style="color: #006633;">Nombre</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; &quot;</span> <span style="color: #339933;">+</span> otraPersona.<span style="color: #006633;">Apellido</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<h1>Visual Basic</h1>

<div class="wp_codebox"><table><tr id="p199229"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
</pre></td><td class="code" id="p1992code29"><pre class="vbnet" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">' @author GeekZero@DevTroce.com</span>
&nbsp;
<span style="color: #FF8000;">Public</span> <span style="color: #0600FF;">Class</span> Persona
&nbsp;
    <span style="color: #008080; font-style: italic;">' lista de atributos que la definen</span>
    <span style="color: #FF8000;">Private</span> Nombre <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span>
    <span style="color: #FF8000;">Private</span> Apellido <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span>
    <span style="color: #FF8000;">Private</span> Documento <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span>
    <span style="color: #FF8000;">Private</span> Peso <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Integer</span>
    <span style="color: #FF8000;">Private</span> Ojos <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span>
    <span style="color: #FF8000;">Private</span> Sexo <span style="color: #FF8000;">As</span> Char
&nbsp;
    <span style="color: #FF8000;">Public</span> <span style="color: #0600FF;">Sub</span> Mostrar<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #008080; font-style: italic;">' instancia de la clase persona</span>
        <span style="color: #008080; font-style: italic;">' el nombre del objeto debe ser distinto que el nombre de su clase,</span>
        <span style="color: #008080; font-style: italic;">' puede tener cualquiera que querramos</span>
        <span style="color: #0600FF;">Dim</span> persona <span style="color: #FF8000;">As</span> Persona <span style="color: #008000;">=</span> <span style="color: #FF8000;">New</span> Persona
&nbsp;
        <span style="color: #008080; font-style: italic;">' asignación de valores al objeto</span>
        persona.<span style="color: #0000FF;">Nombre</span> <span style="color: #008000;">=</span> <span style="color: #808080;">&quot;Linus&quot;</span>
        persona.<span style="color: #0000FF;">Apellido</span> <span style="color: #008000;">=</span> <span style="color: #808080;">&quot;Torvals&quot;</span>
        persona.<span style="color: #0000FF;">Documento</span> <span style="color: #008000;">=</span> <span style="color: #808080;">&quot;777&quot;</span>
        persona.<span style="color: #0000FF;">Peso</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">80</span>
        persona.<span style="color: #0000FF;">Ojos</span> <span style="color: #008000;">=</span> <span style="color: #808080;">&quot;Azul&quot;</span>
        persona.<span style="color: #0000FF;">Sexo</span> <span style="color: #008000;">=</span> <span style="color: #808080;">&quot;M&quot;</span>
&nbsp;
        <span style="color: #008080; font-style: italic;">' instancia de la clase persona</span>
        <span style="color: #0600FF;">Dim</span> otraPersona <span style="color: #FF8000;">As</span> Persona <span style="color: #008000;">=</span> <span style="color: #FF8000;">New</span> Persona
&nbsp;
        <span style="color: #008080; font-style: italic;">' asignación de valores al objeto</span>
        otraPersona.<span style="color: #0000FF;">Nombre</span> <span style="color: #008000;">=</span> <span style="color: #808080;">&quot;Winona&quot;</span>
        otraPersona.<span style="color: #0000FF;">Apellido</span> <span style="color: #008000;">=</span> <span style="color: #808080;">&quot;Raider&quot;</span>
        otraPersona.<span style="color: #0000FF;">Documento</span> <span style="color: #008000;">=</span> <span style="color: #808080;">&quot;666&quot;</span>
        otraPersona.<span style="color: #0000FF;">Peso</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">65</span>
        otraPersona.<span style="color: #0000FF;">Ojos</span> <span style="color: #008000;">=</span> <span style="color: #808080;">&quot;Marrones&quot;</span>
        otraPersona.<span style="color: #0000FF;">Sexo</span> <span style="color: #008000;">=</span> <span style="color: #808080;">&quot;F&quot;</span>
&nbsp;
        <span style="color: #008080; font-style: italic;">' listado</span>
        <a href="http://www.google.com/search?q=DEBUG+site:msdn.microsoft.com"><span style="color: #008000;">Debug</span></a>.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;La primer persona es: &quot;</span> <span style="color: #008000;">+</span> persona.<span style="color: #0000FF;">Nombre</span> <span style="color: #008000;">+</span> <span style="color: #808080;">&quot; &quot;</span> <span style="color: #008000;">+</span> persona.<span style="color: #0000FF;">Apellido</span><span style="color: #000000;">&#41;</span>
        <a href="http://www.google.com/search?q=DEBUG+site:msdn.microsoft.com"><span style="color: #008000;">Debug</span></a>.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;La segunda persona es: &quot;</span> <span style="color: #008000;">+</span> otraPersona.<span style="color: #0000FF;">Nombre</span> <span style="color: #008000;">+</span> <span style="color: #808080;">&quot; &quot;</span> <span style="color: #008000;">+</span> otraPersona.<span style="color: #0000FF;">Apellido</span><span style="color: #000000;">&#41;</span>
&nbsp;
    <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span>
&nbsp;
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Class</span></pre></td></tr></table></div>

<p>Ahora si, muy sencillo no? Alguno me dirán, pero con este ejemplo no lograste gran cosa, y es cierto. Aún no es la forma definitiva que escribiremos código <strong>OOP </strong>más adelante, sólo es para comprender el concepto y diferencia entre una <strong>clase</strong> y <strong>objeto</strong>. Una vez que veamos otros conceptos como Setter, Getter y Métodos será más interesan la manera que declararemos las clases.</p>
<p>Otra pregunta que puede surgir es para que andar creando variables a diestra y siniestra? es para luego ir reutilizando y obligatorio y necesario crear una variable por cada campo de nuestras tabla (esto ya hablando de un sistema real con tablas y no sólo concepto volátiles). Estoy seguro que en la gran mayoría de los tutoriales que encontrarán sólo llegará hasta aquí, pero cuando yo estudiaba me hubiera gustado que me hubieran dicho de entrada que éstas cosas son a parte de una abstracción conceptual, son también un mapeo de nuestras tablas de la Base de Datos, les dejo el script <strong>DDL SQL</strong> de una supuesta tabla.</p>
<h1>T-SQL</h1>

<div class="wp_codebox"><table><tr id="p199230"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
</pre></td><td class="code" id="p1992code30"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">USE</span> <span style="color: #808080;">&#91;</span>OOP<span style="color: #808080;">&#93;</span>
GO
&nbsp;
<span style="color: #0000FF;">CREATE</span> <span style="color: #0000FF;">TABLE</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>Persona<span style="color: #808080;">&#93;</span><span style="color: #808080;">&#40;</span>
	<span style="color: #808080;">&#91;</span>IdPersona<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">int</span><span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">IDENTITY</span><span style="color: #808080;">&#40;</span><span style="color: #000;">1</span>,<span style="color: #000;">1</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>,
	<span style="color: #808080;">&#91;</span>Nombre<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">varchar</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#40;</span><span style="color: #000;">50</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>,
	<span style="color: #808080;">&#91;</span>Apellido<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">varchar</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#40;</span><span style="color: #000;">50</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>,
	<span style="color: #808080;">&#91;</span>Documento<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">varchar</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#40;</span><span style="color: #000;">20</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>,
	<span style="color: #808080;">&#91;</span>Peso<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">int</span><span style="color: #808080;">&#93;</span> <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>,
	<span style="color: #808080;">&#91;</span>Ojos<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">varchar</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#40;</span><span style="color: #000;">15</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>,
	<span style="color: #808080;">&#91;</span>Sexo<span style="color: #808080;">&#93;</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">char</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#40;</span><span style="color: #000;">1</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">NOT</span> <span style="color: #808080;">NULL</span>,
 <span style="color: #0000FF;">CONSTRAINT</span> <span style="color: #808080;">&#91;</span>PK_Persona<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">PRIMARY</span> <span style="color: #0000FF;">KEY</span> <span style="color: #0000FF;">CLUSTERED</span> 
<span style="color: #808080;">&#40;</span>
	<span style="color: #808080;">&#91;</span>IdPersona<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">ASC</span>
<span style="color: #808080;">&#41;</span><span style="color: #0000FF;">WITH</span> <span style="color: #808080;">&#40;</span>PAD_<span style="color: #808080;">IN</span>DEX  <span style="color: #808080;">=</span> <span style="color: #0000FF;">OFF</span>, STATISTICS_N<span style="color: #808080;">OR</span>ECOMPUTE  <span style="color: #808080;">=</span> <span style="color: #0000FF;">OFF</span>, IGN<span style="color: #808080;">OR</span>E_DUP_KEY <span style="color: #808080;">=</span> <span style="color: #0000FF;">OFF</span>, <span style="color: #808080;">ALL</span>OW_ROW_LOCKS  <span style="color: #808080;">=</span> <span style="color: #0000FF;">ON</span>, <span style="color: #808080;">ALL</span>OW_PAGE_LOCKS  <span style="color: #808080;">=</span> <span style="color: #0000FF;">ON</span><span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">PRIMARY</span><span style="color: #808080;">&#93;</span>
<span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">PRIMARY</span><span style="color: #808080;">&#93;</span>
&nbsp;
GO
&nbsp;
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">TABLE</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>Persona<span style="color: #808080;">&#93;</span>  <span style="color: #0000FF;">WITH</span> <span style="color: #0000FF;">CHECK</span> <span style="color: #0000FF;">ADD</span>  <span style="color: #0000FF;">CONSTRAINT</span> <span style="color: #808080;">&#91;</span>CK_Persona<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">CHECK</span>  <span style="color: #808080;">&#40;</span><span style="color: #808080;">&#40;</span><span style="color: #808080;">&#91;</span>Sexo<span style="color: #808080;">&#93;</span><span style="color: #808080;">=</span><span style="color: #FF0000;">'M'</span> <span style="color: #808080;">OR</span> <span style="color: #808080;">&#91;</span>Sexo<span style="color: #808080;">&#93;</span><span style="color: #808080;">=</span><span style="color: #FF0000;">'F'</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span>
GO
&nbsp;
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">TABLE</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>Persona<span style="color: #808080;">&#93;</span> <span style="color: #0000FF;">CHECK</span> <span style="color: #0000FF;">CONSTRAINT</span> <span style="color: #808080;">&#91;</span>CK_Persona<span style="color: #808080;">&#93;</span>
GO</pre></td></tr></table></div>



<p>Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2009/12/15/como-destruir-clases-en-c/' rel='bookmark' title='Permanent Link: Como destruir clases en C#'>Como destruir clases en C#</a></li>
<li><a href='http://www.devtroce.com/2009/12/21/autenticarse-contra-un-web-service-con-autenticacion-con-java-y-visual-basic/' rel='bookmark' title='Permanent Link: Autenticarse contra un Web Service con Autenticación con Java y Visual Basic'>Autenticarse contra un Web Service con Autenticación con Java y Visual Basic</a></li>
<li><a href='http://www.devtroce.com/2010/01/11/desplegar-asp-net-en-apache-tomcat-sobre-gnulinux-y-sql-server/' rel='bookmark' title='Permanent Link: Desplegar ASP.Net en Apache Tomcat sobre GNU/Linux y SQL Server'>Desplegar ASP.Net en Apache Tomcat sobre GNU/Linux y SQL Server</a></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Devtroce?a=c9nOd3uioBw:wjMWS37-5q4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=c9nOd3uioBw:wjMWS37-5q4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=c9nOd3uioBw:wjMWS37-5q4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Devtroce/~4/c9nOd3uioBw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.devtroce.com/2010/08/28/programacion-orientada-a-objetos-clases-y-objetos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.devtroce.com/2010/08/28/programacion-orientada-a-objetos-clases-y-objetos/</feedburner:origLink></item>
		<item>
		<title>Habilitar la protección HotLink en Apache</title>
		<link>http://feedproxy.google.com/~r/Devtroce/~3/755DRBJgHPA/</link>
		<comments>http://www.devtroce.com/2010/08/27/habilitar-la-proteccion-hotlink-en-apache/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 18:03:19 +0000</pubDate>
		<dc:creator>GeekZero</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Plataformas]]></category>
		<category><![CDATA[Servidores]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.devtroce.com/?p=1989</guid>
		<description><![CDATA[Cuando hablamos de servidores web, una de las cosas que más nos preocupa es su rendimiento y para ello necesitamos aprovechar al máximo el los recursos del servidor, especialmente el ancho de banda. Si tenemos hosteado nuestro sitio en servidor compartido ya entramos en la lucha por los recursos del servidor con quienes también esten [...]


Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2010/07/27/redireccionar-automaticamente-en-apache-con-htaccess/' rel='bookmark' title='Permanent Link: Redireccionar automáticamente en Apache con .htaccess'>Redireccionar automáticamente en Apache con .htaccess</a></li>
<li><a href='http://www.devtroce.com/2009/12/30/habilitar-la-indexacion-en-apache-sobre-opensuse/' rel='bookmark' title='Permanent Link: Habilitar la Indexación de ficheros en Apache'>Habilitar la Indexación de ficheros en Apache</a></li>
<li><a href='http://www.devtroce.com/2010/06/28/subir-ficheros-al-servidor-con-jsp/' rel='bookmark' title='Permanent Link: Subir ficheros al servidor con JSP'>Subir ficheros al servidor con JSP</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Cuando hablamos de<strong> servidores web</strong>, una de las cosas que más nos preocupa es su rendimiento y para ello necesitamos aprovechar al máximo el los <em>recursos </em>del <em>servidor</em>, especialmente el ancho de banda.</p>
<p>Si tenemos hosteado nuestro sitio en servidor compartido ya entramos en la lucha por los recursos del servidor con quienes también esten hosteados allí. Teniendo esa lucha pendiente, con lo poco que sacamos de esa lucha no nos hace falta que otro venga y nos robe nuestro ancho de banda para optimizar el suyo. Por ejemplo expone un tercero texto en su sitio pero las imagenes y videos las enlaza con tu servidor<span id="more-1989"></span>, para ahorrarse su<strong> ancho de banda</strong> y su tiempo al no alzar las imágenes a los servidores gratuitos o de paga tercerizados.</p>
<p>Si nuestra web se encuentra desplegada sobre <strong>Apache</strong>, podemos configurar para que ciertos tipos de archivos no puedan ser enlazadas desde otros sitios. Los que cuentan con <strong>CPanel </strong>y tienen la opción habilitada sólo allí pueden hacerlo, los que no lo tienen igual desde el fichero<strong> .htaccess</strong> pueden configurarlo manualmente asi:</p>

<div class="wp_codebox"><table><tr id="p198932"><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code" id="p1989code32"><pre class="apache" style="font-family:monospace;"><span style="color: #adadad; font-style: italic;"># BEGIN HotLinkProtection</span>
<span style="color: #00007f;">RewriteEngine</span> <span style="color: #0000ff;">on</span>
<span style="color: #00007f;">RewriteCond</span> %{HTTP_REFERER} !^$
<span style="color: #00007f;">RewriteCond</span> %{HTTP_REFERER} !^http(s)?://(www\.)?devtroce.com [NC]
<span style="color: #00007f;">RewriteRule</span> \.(jpg|jpeg|png|gif)$ - [NC,F,L]
<span style="color: #adadad; font-style: italic;"># END HotLinkProtection</span></pre></td></tr></table></div>



<p>Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2010/07/27/redireccionar-automaticamente-en-apache-con-htaccess/' rel='bookmark' title='Permanent Link: Redireccionar automáticamente en Apache con .htaccess'>Redireccionar automáticamente en Apache con .htaccess</a></li>
<li><a href='http://www.devtroce.com/2009/12/30/habilitar-la-indexacion-en-apache-sobre-opensuse/' rel='bookmark' title='Permanent Link: Habilitar la Indexación de ficheros en Apache'>Habilitar la Indexación de ficheros en Apache</a></li>
<li><a href='http://www.devtroce.com/2010/06/28/subir-ficheros-al-servidor-con-jsp/' rel='bookmark' title='Permanent Link: Subir ficheros al servidor con JSP'>Subir ficheros al servidor con JSP</a></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Devtroce?a=755DRBJgHPA:OtTLWsp5OyU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=755DRBJgHPA:OtTLWsp5OyU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=755DRBJgHPA:OtTLWsp5OyU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Devtroce/~4/755DRBJgHPA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.devtroce.com/2010/08/27/habilitar-la-proteccion-hotlink-en-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.devtroce.com/2010/08/27/habilitar-la-proteccion-hotlink-en-apache/</feedburner:origLink></item>
		<item>
		<title>Autorefrescar una página con sólo HTML</title>
		<link>http://feedproxy.google.com/~r/Devtroce/~3/TqFSSn9zZi0/</link>
		<comments>http://www.devtroce.com/2010/08/25/autorefrescar-una-pagina-con-solo-html/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 19:00:44 +0000</pubDate>
		<dc:creator>GeekZero</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Lenguajes de Programación]]></category>
		<category><![CDATA[Plataformas]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.devtroce.com/?p=1987</guid>
		<description><![CDATA[A veces necesitamos que nuestro sitio se actualice automáticamente sin la interacción del usuario (presionando F5 o con el botón del browser), esto se puede lograr de un par de maneras con HMTL o con JavaScript. Cada uno tiene un pro y contra pero ambos servirían para la misma cosa. Con HTML estamos seguros que [...]


Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2010/07/24/invocar-metodos-del-servidor-con-javascript-en-asp-net/' rel='bookmark' title='Permanent Link: Invocar métodos del Servidor con JavaScript en ASP.Net'>Invocar métodos del Servidor con JavaScript en ASP.Net</a></li>
<li><a href='http://www.devtroce.com/2010/06/28/subir-ficheros-al-servidor-con-jsp/' rel='bookmark' title='Permanent Link: Subir ficheros al servidor con JSP'>Subir ficheros al servidor con JSP</a></li>
<li><a href='http://www.devtroce.com/2010/07/27/redireccionar-automaticamente-en-apache-con-htaccess/' rel='bookmark' title='Permanent Link: Redireccionar automáticamente en Apache con .htaccess'>Redireccionar automáticamente en Apache con .htaccess</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>A veces necesitamos que nuestro sitio se <strong>actualice automáticamente</strong> sin la interacción del usuario (presionando F5 o con el botón del browser), esto se puede lograr de un par de maneras con <strong>HMTL </strong>o con <strong>JavaScript</strong>.</p>
<p>Cada uno tiene un pro y contra pero ambos servirían para la misma cosa. Con <strong>HTML </strong>estamos seguros que funcionará en más navegadores que JavaScript (por falta de soporte o por que está deshabilitado el mismo).<span id="more-1987"></span></p>
<p>El tag que nos permite refrescar es el siguiente (con el ejemplo lo haría cada 1minuto o 60 segundos):</p>
<pre class="brush: xml;">&lt;meta http-equiv=&quot;refresh&quot; content=&quot;60&quot; /&gt;</pre>
<p>También se puede utilizar para <strong>redireccionar</strong></p>
<pre class="brush: xml;">&lt;meta http-equiv=&quot;refresh&quot; content=&quot;60; URL=./Devtroce.htm&quot; /&gt;</pre>
<p>Este último no es muy recomendable para páginas que se indexarán en los buscadores, ya que algunos de ellos los descartan y sacan de su base de datos de indexado. Si necesitan redireccionar es conveniente usar otros métodos. Ahora si sólo será una <strong>WebApp </strong>interna no conlleva ningún problema</p>


<p>Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2010/07/24/invocar-metodos-del-servidor-con-javascript-en-asp-net/' rel='bookmark' title='Permanent Link: Invocar métodos del Servidor con JavaScript en ASP.Net'>Invocar métodos del Servidor con JavaScript en ASP.Net</a></li>
<li><a href='http://www.devtroce.com/2010/06/28/subir-ficheros-al-servidor-con-jsp/' rel='bookmark' title='Permanent Link: Subir ficheros al servidor con JSP'>Subir ficheros al servidor con JSP</a></li>
<li><a href='http://www.devtroce.com/2010/07/27/redireccionar-automaticamente-en-apache-con-htaccess/' rel='bookmark' title='Permanent Link: Redireccionar automáticamente en Apache con .htaccess'>Redireccionar automáticamente en Apache con .htaccess</a></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Devtroce?a=TqFSSn9zZi0:RHZU-Ldg0mw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=TqFSSn9zZi0:RHZU-Ldg0mw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=TqFSSn9zZi0:RHZU-Ldg0mw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Devtroce/~4/TqFSSn9zZi0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.devtroce.com/2010/08/25/autorefrescar-una-pagina-con-solo-html/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.devtroce.com/2010/08/25/autorefrescar-una-pagina-con-solo-html/</feedburner:origLink></item>
		<item>
		<title>Ejecutar aplicación al iniciar la PC en openSuSE</title>
		<link>http://feedproxy.google.com/~r/Devtroce/~3/_OLofDNr3u8/</link>
		<comments>http://www.devtroce.com/2010/08/23/ejecutar-aplicacion-al-iniciar-la-pc-en-opensuse/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 17:15:19 +0000</pubDate>
		<dc:creator>GeekZero</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Sistemas Operativos]]></category>
		<category><![CDATA[openSuSE]]></category>

		<guid isPermaLink="false">http://www.devtroce.com/?p=1977</guid>
		<description><![CDATA[En openSuSE a diferencia de la mayoría de las distro tiene un fichero distinto para iniciar aplicaciones o ejecutar script al simple encendido de la máquina. El motivo porque lo cambiaron no lo sé (aunque tiene un nombre y lugar más intuitivo que el resto a mi parecer). Para ejemplicar el caso lo que haré [...]


Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2009/12/20/virtualizar-con-xen-3-en-opensuse/' rel='bookmark' title='Permanent Link: Virtualizar con XEN 3 en openSuSE'>Virtualizar con XEN 3 en openSuSE</a></li>
<li><a href='http://www.devtroce.com/2009/12/10/ejecutar-comandos-shell-ssh-con-nuestra-aplicacion-en-java/' rel='bookmark' title='Permanent Link: Ejecutar comandos Shell (SSH) con nuestra aplicación en Java'>Ejecutar comandos Shell (SSH) con nuestra aplicación en Java</a></li>
<li><a href='http://www.devtroce.com/2010/01/02/instalar-los-drivers-propietarios-de-nvidia-en-opensuse/' rel='bookmark' title='Permanent Link: Instalar los drivers propietarios de nVidia en openSuSE'>Instalar los drivers propietarios de nVidia en openSuSE</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>En <strong>openSuSE </strong>a diferencia de la mayoría de las distro tiene un fichero distinto para iniciar aplicaciones o ejecutar <strong>script </strong>al simple encendido de la máquina. El motivo porque lo cambiaron no lo sé (aunque tiene un nombre y lugar más intuitivo que el resto a mi parecer).</p>
<p>Para ejemplicar el caso lo que haré <span id="more-1977"></span>será iniciar el servicio de SSH Server, ustedes pueden iniciar cualquier otra aplicación o llamar a un script sin ningún problema.</p>
<p>En el path de abajo encontraran el fichero que deben editar y agregar al final del contenido lo que necesiten.</p>
<pre class="brush: bash;">/etc/init.d/boot.local</pre>
<p>Quedaría asi:</p>
<pre class="brush: bash;">
#! /bin/sh
#
# Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany.  All rights reserved.
#
# Author: Werner Fink &lt;werner@suse.de&gt;, 1996
#         Burchard Steinbild, 1996
#
# /etc/init.d/boot.local
#
# script with local commands to be executed from init on system startup
#
# Here you should add things, that should happen directly after booting
# before we're going to the first run level.
#
/etc/init.d/sshd start
</pre>


<p>Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2009/12/20/virtualizar-con-xen-3-en-opensuse/' rel='bookmark' title='Permanent Link: Virtualizar con XEN 3 en openSuSE'>Virtualizar con XEN 3 en openSuSE</a></li>
<li><a href='http://www.devtroce.com/2009/12/10/ejecutar-comandos-shell-ssh-con-nuestra-aplicacion-en-java/' rel='bookmark' title='Permanent Link: Ejecutar comandos Shell (SSH) con nuestra aplicación en Java'>Ejecutar comandos Shell (SSH) con nuestra aplicación en Java</a></li>
<li><a href='http://www.devtroce.com/2010/01/02/instalar-los-drivers-propietarios-de-nvidia-en-opensuse/' rel='bookmark' title='Permanent Link: Instalar los drivers propietarios de nVidia en openSuSE'>Instalar los drivers propietarios de nVidia en openSuSE</a></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Devtroce?a=_OLofDNr3u8:-NuM22yUedo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=_OLofDNr3u8:-NuM22yUedo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=_OLofDNr3u8:-NuM22yUedo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Devtroce/~4/_OLofDNr3u8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.devtroce.com/2010/08/23/ejecutar-aplicacion-al-iniciar-la-pc-en-opensuse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.devtroce.com/2010/08/23/ejecutar-aplicacion-al-iniciar-la-pc-en-opensuse/</feedburner:origLink></item>
		<item>
		<title>Estadísticas generales en DevTroce</title>
		<link>http://feedproxy.google.com/~r/Devtroce/~3/b7a9ratpJU8/</link>
		<comments>http://www.devtroce.com/2010/08/22/estadisticas-generales-en-devtroce/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 15:21:08 +0000</pubDate>
		<dc:creator>GeekZero</dc:creator>
				<category><![CDATA[Misceláneas]]></category>

		<guid isPermaLink="false">http://www.devtroce.com/?p=1971</guid>
		<description><![CDATA[Hace tiempo que estamos en línea destrozando código, y desde que nació DevTroce creció mucho gracias a ustedes los visitantes que hoy día son casi 11 mil mensuales de varias regiones del mundo, aunque esta ciertamente más centrado en toda América y la parte Oeste / Centro de Europa. Diariamente reviso las estadísticas del sitio, con que navegadores, [...]


Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2010/05/11/inaugurando-el-foro-devtroce/' rel='bookmark' title='Permanent Link: Inaugurando el foro [DevTroce]'>Inaugurando el foro [DevTroce]</a></li>
<li><a href='http://www.devtroce.com/2010/06/02/mostrar-lo-que-estoy-escuchando-con-winamp-o-aimp-en-pidgin/' rel='bookmark' title='Permanent Link: Mostrar lo que estoy escuchando con Winamp o Aimp en Pidgin'>Mostrar lo que estoy escuchando con Winamp o Aimp en Pidgin</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Hace tiempo que estamos en línea destrozando código, y desde que nació <strong><em>DevTroce </em></strong>creció mucho gracias a ustedes los visitantes que hoy día son casi 11 mil mensuales de varias regiones del mundo, aunque esta ciertamente más centrado en toda <em>América </em>y la parte Oeste / Centro de <em>Europa</em>.</p>
<p>Diariamente reviso las estadísticas del sitio, con que navegadores, sistema operativos, buscadores, referencias usan para entrar<span id="more-1971"></span>, resulta interesante y a veces divertido. También esto ayuda a que crear mejores entradas en las que ustedes están más interesados.</p>
<p>Me agrada mucho la idea que la gran mayoría de ustedes no usan<em> Internet Explorer 6</em>. Aunque si en su mayoría utilizan <em>Windows </em>(incluyéndome) me resulta muy interesante ver que hay una buena porción de personas conectándose con distros de<em> GNU/Linux</em>, <em>MAC </em>incluso desde móviles como <em>iPhone</em>, <em>Nokia</em>, <em>Blackberry </em>y demás, siendo que por la naturaleza del sitio normalmente no ingresaríamos con el móvil.</p>
<p>Quería compartir con ustedes unos gráficos estadísticos, uno sobre los browsers usados y otro de los sistemas operativos. Supongo que al verlos sacaran conclusiones propias sobre la calidad de usuarios que son <img src='http://www.devtroce.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<div id="attachment_1972" class="wp-caption aligncenter" style="width: 460px"><a href="http://www.devtroce.com/wp-content/uploads/2010/08/so-stats-devtroce.png" rel="shadowbox[post-1971];player=img;" title="Stats Sistemas Operativos"><img class="size-full wp-image-1972 " title="Stats Sistemas Operativos" src="http://www.devtroce.com/wp-content/uploads/2010/08/so-stats-devtroce.png" alt="Stats Sistemas Operativos" width="450" height="408" /></a><p class="wp-caption-text">Stats Sistemas Operativos</p></div>
<div id="attachment_1973" class="wp-caption aligncenter" style="width: 451px"><a href="http://www.devtroce.com/wp-content/uploads/2010/08/browser-stats-devtroce.png" rel="shadowbox[post-1971];player=img;" title="Stats Browsers"><img class="size-full wp-image-1973  " title="Stats Browsers" src="http://www.devtroce.com/wp-content/uploads/2010/08/browser-stats-devtroce.png" alt="Stats Browsers" width="441" height="268" /></a><p class="wp-caption-text">Stats Browsers</p></div>


<p>Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2010/05/11/inaugurando-el-foro-devtroce/' rel='bookmark' title='Permanent Link: Inaugurando el foro [DevTroce]'>Inaugurando el foro [DevTroce]</a></li>
<li><a href='http://www.devtroce.com/2010/06/02/mostrar-lo-que-estoy-escuchando-con-winamp-o-aimp-en-pidgin/' rel='bookmark' title='Permanent Link: Mostrar lo que estoy escuchando con Winamp o Aimp en Pidgin'>Mostrar lo que estoy escuchando con Winamp o Aimp en Pidgin</a></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Devtroce?a=b7a9ratpJU8:o-Un-gETsx8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=b7a9ratpJU8:o-Un-gETsx8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=b7a9ratpJU8:o-Un-gETsx8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Devtroce/~4/b7a9ratpJU8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.devtroce.com/2010/08/22/estadisticas-generales-en-devtroce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.devtroce.com/2010/08/22/estadisticas-generales-en-devtroce/</feedburner:origLink></item>
		<item>
		<title>Solucionar error: ‘Unable to convert MySQL date/time value to System.DateTime’</title>
		<link>http://feedproxy.google.com/~r/Devtroce/~3/jUWclN3kGDE/</link>
		<comments>http://www.devtroce.com/2010/08/18/solucionar-error-unable-to-convert-mysql-datetime-value-to-system-datetime/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 12:27:11 +0000</pubDate>
		<dc:creator>GeekZero</dc:creator>
				<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[C# .Net]]></category>
		<category><![CDATA[Lenguajes de Programación]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[VB .Net]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.devtroce.com/?p=1966</guid>
		<description><![CDATA[Ayer estuve trabajando con la versión 4 de MySQL y como front-end tenía a ASP.Net. Utilice como proveedor de datos MySQL Data Provider ofrecido gratuitamente por Oracle en su versión 6.2. Mientras iba desarrollando la app lograba la conexión y el paso de datos varchar y las variantes númericas sin ningún problema, en cierto momento necesite trabajar [...]


Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2010/03/24/solucionar-error-cant-create-table-errno-150-en-mysql/' rel='bookmark' title='Permanent Link: Solucionar error Can&#8217;t create table &#8216;???&#8217; (errno: 150) en MySQL'>Solucionar error Can&#8217;t create table &#8216;???&#8217; (errno: 150) en MySQL</a></li>
<li><a href='http://www.devtroce.com/2010/02/19/ejecutar-procedimientos-almacenados-en-mysql-con-c/' rel='bookmark' title='Permanent Link: Ejecutar Procedimientos Almacenados en MySQL con C#'>Ejecutar Procedimientos Almacenados en MySQL con C#</a></li>
<li><a href='http://www.devtroce.com/2010/07/14/como-programar-en-n-capas-con-c-parte-5/' rel='bookmark' title='Permanent Link: Como programar en n-Capas con C# (Parte 5)'>Como programar en n-Capas con C# (Parte 5)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Ayer estuve trabajando con la versión 4 de <strong>MySQL </strong>y como front-end tenía a <strong>ASP.Net</strong>. Utilice como proveedor de datos <strong>MySQL </strong>Data Provider ofrecido gratuitamente por <strong>Oracle </strong>en su versión 6.2.</p>
<p>Mientras iba desarrollando la app lograba la conexión y el paso de datos varchar y las variantes númericas sin ningún problema, en cierto momento necesite trabajar con datos timestamp y datetime donde fue que me apareció el siguiente error:</p>
<blockquote><p>Unable to convert MySQL date/time value to System.DateTime</p></blockquote>
<p>Leyendo la documentación me enteré cual era el problema, algunos campos de este tipo de dato estaban con valores nulos o en el caso de datetime tenia &#8217;0000-00-00 00:00:00&#8242;. Lo cual produce el error de conversión con el Data Provider (por lo que leí también ocurre con conexiones <strong>ODBC</strong>).<span id="more-1966"></span></p>
<p>La solución a esto sencillo, simplemente en nuestra cadena de conexión tenemos que agregar dos parámetros extras, <strong>Allow Zero Datetime=True</strong> y <strong>Convert Zero Datetime=True</strong>:</p>

<div class="wp_codebox"><table><tr id="p196634"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p1966code34"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;connectionStrings<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;add</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;mysqlcon&quot;</span> <span style="color: #000066;">connectionString</span>=<span style="color: #ff0000;">&quot;server=devtroce.com;User Id=root;password=*********;database=test;Allow Zero Datetime=True;Convert Zero Datetime=True;Persist Security Info=True&quot;</span></span>
<span style="color: #009900;">   <span style="color: #000066;">providerName</span>=<span style="color: #ff0000;">&quot;MySql.Data.MySqlClient&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
 <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/connectionStrings<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>



<p>Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2010/03/24/solucionar-error-cant-create-table-errno-150-en-mysql/' rel='bookmark' title='Permanent Link: Solucionar error Can&#8217;t create table &#8216;???&#8217; (errno: 150) en MySQL'>Solucionar error Can&#8217;t create table &#8216;???&#8217; (errno: 150) en MySQL</a></li>
<li><a href='http://www.devtroce.com/2010/02/19/ejecutar-procedimientos-almacenados-en-mysql-con-c/' rel='bookmark' title='Permanent Link: Ejecutar Procedimientos Almacenados en MySQL con C#'>Ejecutar Procedimientos Almacenados en MySQL con C#</a></li>
<li><a href='http://www.devtroce.com/2010/07/14/como-programar-en-n-capas-con-c-parte-5/' rel='bookmark' title='Permanent Link: Como programar en n-Capas con C# (Parte 5)'>Como programar en n-Capas con C# (Parte 5)</a></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Devtroce?a=jUWclN3kGDE:g0Ytg1ltId0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=jUWclN3kGDE:g0Ytg1ltId0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=jUWclN3kGDE:g0Ytg1ltId0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Devtroce/~4/jUWclN3kGDE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.devtroce.com/2010/08/18/solucionar-error-unable-to-convert-mysql-datetime-value-to-system-datetime/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.devtroce.com/2010/08/18/solucionar-error-unable-to-convert-mysql-datetime-value-to-system-datetime/</feedburner:origLink></item>
		<item>
		<title>Detectar el País de Origen del usuario con PHP</title>
		<link>http://feedproxy.google.com/~r/Devtroce/~3/IgnsyavbdNk/</link>
		<comments>http://www.devtroce.com/2010/08/17/detectar-el-pais-de-origen-del-usuario-con-php/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 00:31:39 +0000</pubDate>
		<dc:creator>GeekZero</dc:creator>
				<category><![CDATA[Lenguajes de Programación]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plataformas]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://www.devtroce.com/?p=1960</guid>
		<description><![CDATA[Ricardo, uno de nuestros lectores nos preguntaba como puede detectar de que zona o país provienen sus lectores y necesita hacerlo con PHP. Tenía en mente una manera de desarrollarlo algo más largo y menos práctico que la que veremos hoy. Me puse a investigar rápidamente y encotré un muy buen ejemplo escrito por Francisco [...]


Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2010/06/14/detectar-desde-donde-llego-un-visitante-con-php/' rel='bookmark' title='Permanent Link: Detectar desde donde llegó un visitante con PHP'>Detectar desde donde llegó un visitante con PHP</a></li>
<li><a href='http://www.devtroce.com/2010/01/26/obtener-la-ip-de-una-pc-cliente-con-php/' rel='bookmark' title='Permanent Link: Obtener la IP de una PC Cliente con PHP'>Obtener la IP de una PC Cliente con PHP</a></li>
<li><a href='http://www.devtroce.com/2009/12/27/concatenar-cadenas-string-con-php/' rel='bookmark' title='Permanent Link: Concatenar cadenas string con PHP'>Concatenar cadenas string con PHP</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Ricardo, uno de nuestros lectores nos preguntaba como puede <strong>detectar </strong>de que zona o país provienen sus lectores y necesita hacerlo con <strong>PHP</strong>. Tenía en mente una manera de desarrollarlo algo más largo y menos práctico que la que veremos hoy. Me puse a investigar rápidamente y encotré un muy buen ejemplo escrito por Francisco en su <a href="http://blogandweb.com/php/detectar-el-pais-de-referencia-de-nuestros-usuarios-con-php/" target="_blank">Blog</a>, como soy partidario de no reinventar la rueda y su código me pareció más sencillo que el mío, así que veremos el suyo <img src='http://www.devtroce.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>A explicar un poco lo que hace el  código, como los países tienen asignados rangos de <strong>IP</strong> que se van distribuyendo a las <strong>ISP </strong>entonces es relativamente sencillo este proceso. <span id="more-1960"></span>Lo primero que hacemos es obtener el la <strong>IP </strong>del visitante y luego utilizamos uno de los servicios de <a href="http://ip-to-country.webhosting.info/node/view/36" target="_blank">WebHosting.info</a>, quien nos devolverá las 2 letras asignadas a las <strong>URL </strong>por paises, ejemplo:</p>
<ul>
<li><em>Paraguay: py</em></li>
<li><em>Chile: cl</em></li>
<li><em>España: es</em></li>
<li><em>Mexico: mx</em></li>
<li><em>Rusia: ru</em></li>
</ul>

<div class="wp_codebox"><table><tr id="p196036"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
</pre></td><td class="code" id="p1960code36"><pre class="php" style="font-family:monospace;">   <span style="color: #666666; font-style: italic;">//Obtener IP:</span>
   <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_CLIENT_IP&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">!=</span><span style="color: #0000ff;">&quot;&quot;</span>?<span style="color: #000088;">$ip</span><span style="color: #339933;">=</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_CLIENT_IP&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span>
   <span style="color: #000088;">$ip</span><span style="color: #339933;">=</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;REMOTE_ADDR&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #666666; font-style: italic;">//Función de obtención de IP (basado en la web de webhosting.info)</span>
   <span style="color: #000000; font-weight: bold;">function</span> getCountry<span style="color: #009900;">&#40;</span><span style="color: #000088;">$ip_address</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
      <span style="color: #666666; font-style: italic;">//By Marc Palau (http://www.nbsp.es)</span>
      <span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://ip-to-country.webhosting.info/node/view/36&quot;</span><span style="color: #339933;">;</span>
&nbsp;
      <span style="color: #000088;">$inici</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;src=/flag/?type=2&amp;amp;cc2=&quot;</span><span style="color: #339933;">;</span>
&nbsp;
      <span style="color: #000088;">$ch</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/curl_init"><span style="color: #990000;">curl_init</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <a href="http://www.php.net/curl_setopt"><span style="color: #990000;">curl_setopt</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_URL<span style="color: #339933;">,</span> <span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <a href="http://www.php.net/curl_setopt"><span style="color: #990000;">curl_setopt</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_POST<span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;POST&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <a href="http://www.php.net/curl_setopt"><span style="color: #990000;">curl_setopt</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_POST<span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <a href="http://www.php.net/curl_setopt"><span style="color: #990000;">curl_setopt</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_POSTFIELDS<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ip_address=<span style="color: #006699; font-weight: bold;">$ip_address</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
      <a href="http://www.php.net/ob_start"><span style="color: #990000;">ob_start</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
      <a href="http://www.php.net/curl_exec"><span style="color: #990000;">curl_exec</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <a href="http://www.php.net/curl_close"><span style="color: #990000;">curl_close</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$cache</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/ob_get_contents"><span style="color: #990000;">ob_get_contents</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <a href="http://www.php.net/ob_end_clean"><span style="color: #990000;">ob_end_clean</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
      <span style="color: #000088;">$resto</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/strstr"><span style="color: #990000;">strstr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cache</span><span style="color: #339933;">,</span><span style="color: #000088;">$inici</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$pais</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$resto</span><span style="color: #339933;">,</span><a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$inici</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
      <span style="color: #b1b100;">return</span> <span style="color: #000088;">$pais</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">//obtención de código de país:</span>
<span style="color: #000088;">$pais</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/strtolower"><span style="color: #990000;">strtolower</span></a><span style="color: #009900;">&#40;</span>getCountry<span style="color: #009900;">&#40;</span><span style="color: #000088;">$ip</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Lo que correrá por nuestra cuenta es almacenar  en algún lugar (base de datos, fichero de texto o algun otro lugar) la lista de países con sus zonas para luego comparar y reaccionar contra él. Si queremos crear zonas agregamos un nivel más de relación de los países por zonas como nos guste o convenga organizar los países.</p>
<p>Si quieren mostrar al usuario su origen, con una bandera pueden crear la estructura y tener almacenadas las imágenes para cruzar las referencias y dejar todo enchulado <img src='http://www.devtroce.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Lo he probado aquí en <strong>devtroce </strong>y funciona el código, espero sepan darle buen uso y éxito con sus sitios <img src='http://www.devtroce.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>


<p>Articulos Relacionados:<ol><li><a href='http://www.devtroce.com/2010/06/14/detectar-desde-donde-llego-un-visitante-con-php/' rel='bookmark' title='Permanent Link: Detectar desde donde llegó un visitante con PHP'>Detectar desde donde llegó un visitante con PHP</a></li>
<li><a href='http://www.devtroce.com/2010/01/26/obtener-la-ip-de-una-pc-cliente-con-php/' rel='bookmark' title='Permanent Link: Obtener la IP de una PC Cliente con PHP'>Obtener la IP de una PC Cliente con PHP</a></li>
<li><a href='http://www.devtroce.com/2009/12/27/concatenar-cadenas-string-con-php/' rel='bookmark' title='Permanent Link: Concatenar cadenas string con PHP'>Concatenar cadenas string con PHP</a></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Devtroce?a=IgnsyavbdNk:UJvc5vO2zRQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=IgnsyavbdNk:UJvc5vO2zRQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Devtroce?a=IgnsyavbdNk:UJvc5vO2zRQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Devtroce?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Devtroce/~4/IgnsyavbdNk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.devtroce.com/2010/08/17/detectar-el-pais-de-origen-del-usuario-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.devtroce.com/2010/08/17/detectar-el-pais-de-origen-del-usuario-con-php/</feedburner:origLink></item>
	</channel>
</rss>
