<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Emilio Torrens</title>
	<atom:link href="http://www.emiliotorrens.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.emiliotorrens.com</link>
	<description></description>
	<lastBuildDate>Sat, 04 Feb 2012 13:38:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Nevando en Palma</title>
		<link>http://www.emiliotorrens.com/2012/02/04/nevando-en-palma/</link>
		<comments>http://www.emiliotorrens.com/2012/02/04/nevando-en-palma/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 13:33:01 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Fotos]]></category>
		<category><![CDATA[Mallorca]]></category>
		<category><![CDATA[Mis Cosas]]></category>

		<guid isPermaLink="false">http://www.emiliotorrens.com/?p=6875</guid>
		<description><![CDATA[El otro día puse una foto de la carretera de Orient con nieve, raro pero no tanto … Ojo con esta que es de esta mañana en el Paseo Marítimo !!!]]></description>
			<content:encoded><![CDATA[<p>El otro día puse una foto de la carretera de Orient con nieve, raro pero no tanto … Ojo con esta que es de esta mañana en el Paseo Marítimo !!!</p>
<p><a href="http://www.emiliotorrens.com/wp-content/uploads/2012/02/Nieve_casa.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Nieve_casa" border="0" alt="Nieve_casa" src="http://www.emiliotorrens.com/wp-content/uploads/2012/02/Nieve_casa_thumb.jpg" width="477" height="358" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.emiliotorrens.com/2012/02/04/nevando-en-palma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extension Methods en MongoMapper.NET</title>
		<link>http://www.emiliotorrens.com/2012/02/02/extension-methods-en-mongomapper-net/</link>
		<comments>http://www.emiliotorrens.com/2012/02/02/extension-methods-en-mongomapper-net/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 18:55:10 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[MongoMapper]]></category>
		<category><![CDATA[NOSQL]]></category>

		<guid isPermaLink="false">http://www.emiliotorrens.com/?p=6859</guid>
		<description><![CDATA[&#160; He subido una versión a master con el tema de los extension methods terminado. Un código que era: Country c = new Country &#123;Code =&#34;US&#34;, Name = &#34;Estados Unidos&#34;&#125;; c.Save&#60;Country&#62;&#40;&#41;; &#160; Country c2 = Country.FindByKey&#60;Country&#62;&#40;&#34;US&#34;&#41;; &#160; List&#60;Country&#62; Countries = Country.FindAsList&#60;Country&#62;&#40;&#34;Code&#34;, &#34;US&#34;&#41;; Se puede escribir: Country c = new Country &#123;Code =&#34;US&#34;, Name = &#34;Estados [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>He subido una versión a master con el tema de los extension methods terminado.</p>
<p>Un código que era:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">Country c <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Country <span style="color: #008000;">&#123;</span>Code <span style="color: #008000;">=</span><span style="color: #666666;">&quot;US&quot;</span>, Name <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Estados Unidos&quot;</span><span style="color: #008000;">&#125;</span><span style="color: #008000;">;</span>
c<span style="color: #008000;">.</span><span style="color: #0000FF;">Save</span><span style="color: #008000;">&lt;</span>Country<span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
Country c2 <span style="color: #008000;">=</span> Country<span style="color: #008000;">.</span><span style="color: #0000FF;">FindByKey</span><span style="color: #008000;">&lt;</span>Country<span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;US&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
List<span style="color: #008000;">&lt;</span>Country<span style="color: #008000;">&gt;</span> Countries <span style="color: #008000;">=</span> Country<span style="color: #008000;">.</span><span style="color: #0000FF;">FindAsList</span><span style="color: #008000;">&lt;</span>Country<span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Code&quot;</span>, <span style="color: #666666;">&quot;US&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p>Se puede escribir:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">Country c <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Country <span style="color: #008000;">&#123;</span>Code <span style="color: #008000;">=</span><span style="color: #666666;">&quot;US&quot;</span>, Name <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Estados Unidos&quot;</span><span style="color: #008000;">&#125;</span><span style="color: #008000;">;</span>
c<span style="color: #008000;">.</span><span style="color: #0000FF;">Save</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
Country c2 <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Country<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
c<span style="color: #008000;">.</span><span style="color: #0000FF;">FillByKey</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;US&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
List<span style="color: #008000;">&lt;</span>Country<span style="color: #008000;">&gt;</span> Countries <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> List<span style="color: #008000;">&lt;</span>Country<span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
Countries<span style="color: #008000;">.</span><span style="color: #0000FF;">MongoFind</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Code&quot;</span>, <span style="color: #666666;">&quot;US&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p><a href="https://github.com/emiliotorrens/MongoMapper.NET/blob/master/EtoolTech.MongoDB.Mapper.Test.NUnit/ExtensionTest.cs" target="_blank">Puedes ver ejemplos aquí.</a></p>
<p>La lista de extension methods es:</p>
<p>Para clases que heredan de MongoMapper:</p>
<ul>
<li>Save</li>
<li>Delete</li>
<li>FindByKey</li>
<li>FindByMongoId</li>
</ul>
<p>Para listas de objetos que hereden de MongoMapper:</p>
<ul>
<li>MongoFind</li>
</ul>
<p><center><br />
<strong><a href="https://github.com/emiliotorrens/MongoMapper.NET"><span style="font-size: small;">https://github.com/emiliotorrens/MongoMapper.NET</span></a></strong></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.emiliotorrens.com/2012/02/02/extension-methods-en-mongomapper-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ya es invierno en Mallorca</title>
		<link>http://www.emiliotorrens.com/2012/01/30/ya-es-invierno-en-mallorca/</link>
		<comments>http://www.emiliotorrens.com/2012/01/30/ya-es-invierno-en-mallorca/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 09:30:22 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Fotos]]></category>
		<category><![CDATA[Mallorca]]></category>
		<category><![CDATA[Mis Cosas]]></category>

		<guid isPermaLink="false">http://www.emiliotorrens.com/?p=6854</guid>
		<description><![CDATA[Y para demostrarlo aquí dejo una foto de ayer en la carretera de Orient:]]></description>
			<content:encoded><![CDATA[<p>Y para demostrarlo aquí dejo una foto de ayer en la carretera de Orient:</p>
<p><a href="http://www.emiliotorrens.com/wp-content/uploads/2012/01/IMG-20120129-WA00001.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="IMG-20120129-WA0000" border="0" alt="IMG-20120129-WA0000" src="http://www.emiliotorrens.com/wp-content/uploads/2012/01/IMG-20120129-WA0000_thumb1.jpg" width="480" height="376" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.emiliotorrens.com/2012/01/30/ya-es-invierno-en-mallorca/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instala la ultima versión de MonoDevelop en Ubuntu</title>
		<link>http://www.emiliotorrens.com/2012/01/22/instalar-la-ultima-version-de-monodevelop-en-ubuntu/</link>
		<comments>http://www.emiliotorrens.com/2012/01/22/instalar-la-ultima-version-de-monodevelop-en-ubuntu/#comments</comments>
		<pubDate>Sun, 22 Jan 2012 12:15:25 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[Mono]]></category>
		<category><![CDATA[MonoDevelop]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.emiliotorrens.com/?p=6811</guid>
		<description><![CDATA[&#160; Por alguna razón no esta disponible en el &#8220;Centro de Software de Ubuntu&#8221; la ultima versión de MonoDevelop, pero eso no quiere decir que no podamos instalarla, podemos bajarnos el código de github compilarlo e instalar la ultima versión en nuestro Ubuntu. Lo primero que necesitamos es el git instalado en el Ubuntu, abrimos [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>Por alguna razón no esta disponible en el &#8220;Centro de Software de Ubuntu&#8221; la ultima versión de <a href="http://monodevelop.com/" target="_blank">MonoDevelop</a>, pero eso no quiere decir que no podamos instalarla, podemos bajarnos el código de <a href="https://github.com/" target="_blank">github</a> compilarlo e instalar la ultima versión en nuestro Ubuntu.</p>
<p>Lo primero que necesitamos es el git instalado en el Ubuntu, abrimos un terminal y:<br />
<span style="color: #008000;">&gt; sudo apt-get install git-core</span><br />
<span style="color: #008000;"> &gt; sudo apt-get install git-doc</span></p>
<p>Después creas una carpeta nueva, te posicionas en ella y descargas la ultima versión del código desde github con:<br />
<span style="color: #008000;">&gt; git clone https://github.com/mono/monodevelop.git</span></p>
<p>Ahora ya tenemos el código, antes de seguir hay que ver si tenemos instalado todo lo necesario.</p>
<p>El autoconf y automake:<br />
<span style="color: #008000;">&gt; sudo apt-get install autoconf</span><br />
<span style="color: #008000;"> &gt; sudo apt-get install automake</span></p>
<p>El mono:<br />
<span style="color: #008000;">&gt; sudo apt-get install mono-complete</span><br />
<span style="color: #008000;"> &gt; sudo apt-get install mono-gmcs</span><br />
<span style="color: #008000;"> &gt; sudo apt-get install mono-adddins-utils</span></p>
<p>Los mono-addins necesarios:<br />
<span style="color: #008000;">&gt; sudo apt-get install libmono-addins-cil-dev</span><br />
<span style="color: #008000;"> &gt; sudo apt-get install libmono-addins-gui-cil-dev</span></p>
<p>librerias de gtc y gnome:<br />
<span style="color: #008000;">&gt; sudo apt-get install gtk-sharp2</span><br />
<span style="color: #008000;"> &gt; sudo apt-get install gnome-sharp2</span></p>
<p>Y esta,que reconozco no se para que es, pero hace falta:<br />
<span style="color: #008000;">&gt; sudo apt-get install intltool</span></p>
<p>Con todas las dependencias instaladas te metes en el directorio donde hemos descargado el código y:<br />
<span style="color: #008000;">&gt;./configure</span></p>
<p>Cuando termine<br />
<span style="color: #008000;">&gt;make</span></p>
<p>y cuanto termine<br />
<span style="color: #008000;">&gt;sudo make install</span></p>
<p>y listo ya tienes la ultima versión de MonoDevelop Instalada</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emiliotorrens.com/2012/01/22/instalar-la-ultima-version-de-monodevelop-en-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changelog de MongoMapper.NET</title>
		<link>http://www.emiliotorrens.com/2012/01/05/changelog-de-mongomapper-net-2/</link>
		<comments>http://www.emiliotorrens.com/2012/01/05/changelog-de-mongomapper-net-2/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 20:02:22 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Microsoft.NET]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[MongoMapper]]></category>
		<category><![CDATA[NOSQL]]></category>

		<guid isPermaLink="false">http://www.emiliotorrens.com/?p=6793</guid>
		<description><![CDATA[Acabo de subir una nueva versión del MongoMapper para .NET, no lleva muchos cambios pero los que lleva son interesantes. Ahora hay disponibles “Extension Methods” en las las listas de Objetos y en los Objetos que heredan de MongoMapper y se pueden cargar los objetos tipo MyClass.FindByKey(…) o MyClassList.MongoFind(…). He hecho algunas pruebas viendo lo [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.emiliotorrens.com/wp-content/uploads/2012/01/mongodb.jpg"><img style="background-image: none; margin: 0px 6px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; padding-top: 0px; border-width: 0px;" title="mongodb" src="http://www.emiliotorrens.com/wp-content/uploads/2012/01/mongodb_thumb.jpg" alt="mongodb" width="162" height="108" align="left" border="0" /></a>Acabo de subir una nueva versión del MongoMapper para .NET, no lleva muchos cambios pero los que lleva son interesantes.</p>
<p>Ahora hay disponibles<em> </em><a href="http://en.wikipedia.org/wiki/Extension_method" target="_blank">“Extension Methods”</a><em></em> en las las listas de Objetos y en los Objetos que heredan de MongoMapper y se pueden cargar los objetos tipo <em>MyClass.FindByKey(…)</em> o <em>MyClassList.MongoFind(…).</em></p>
<p>He hecho algunas pruebas viendo lo que tarda de una manera y la otra y no hay prácticamente diferencia, de todas formas eran pruebas preliminares.</p>
<p>El código queda algo mejor sin acceder a los métodos estáticos de la clase base:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">List countries <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> List<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
countries<span style="color: #008000;">.</span><span style="color: #0000FF;">MongoFind</span><span style="color: #008000;">&#40;</span>Query<span style="color: #008000;">.</span><span style="color: #0000FF;">Or</span><span style="color: #008000;">&#40;</span>MongoQuery<span style="color: #008000;">.</span><span style="color: #0000FF;">Eq</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>Country co<span style="color: #008000;">&#41;</span> <span style="color: #008000;">=&gt;</span> co<span style="color: #008000;">.</span><span style="color: #0000FF;">Code</span>, <span style="color: #666666;">&quot;ES&quot;</span><span style="color: #008000;">&#41;</span>, MongoQuery<span style="color: #008000;">.</span><span style="color: #0000FF;">Eq</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>Country co<span style="color: #008000;">&#41;</span> <span style="color: #008000;">=&gt;</span> co<span style="color: #008000;">.</span><span style="color: #0000FF;">Code</span>, <span style="color: #666666;">&quot;UK&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
Country country <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Country<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
country<span style="color: #008000;">.</span><span style="color: #0000FF;">FindByKey</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;ES&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p>Puedes ver <a href="https://github.com/emiliotorrens/MongoMapper.NET/blob/master/EtoolTech.MongoDB.Mapper.Test/ExtensionTest.cs" target="_blank">algunos ejemplos y las pruebas aquí</a>, cualquier bug o mejora que se te ocurra, fork o mail me <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="http://www.emiliotorrens.com/wp-content/uploads/2012/01/wlEmoticon-smile1.png" alt="Sonrisa" /></p>
<p align="center"><strong><span style="font-size: small;"><a href="https://github.com/emiliotorrens/MongoMapper.NET" target="_blank">https://github.com/emiliotorrens/MongoMapper.NET</a></span></strong></p>
<p align="center">.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emiliotorrens.com/2012/01/05/changelog-de-mongomapper-net-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tiempos de proceso en .NET</title>
		<link>http://www.emiliotorrens.com/2012/01/05/tiempos-de-proceso-en-net/</link>
		<comments>http://www.emiliotorrens.com/2012/01/05/tiempos-de-proceso-en-net/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 19:17:55 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Microsoft.NET]]></category>
		<category><![CDATA[StopWatch]]></category>
		<category><![CDATA[System.Diagnostics]]></category>

		<guid isPermaLink="false">http://www.emiliotorrens.com/?p=6786</guid>
		<description><![CDATA[La mejor forma de medir tiempo de proceso en nuestro código es usando StopWatch. Esta clase es la que nos dará toda la información que necesitamos, la encontraremos en el espacio de nombres System.Diagnostics. Aquí dejo un ejemplo de uso: var timer = System.Diagnostics.Stopwatch.StartNew&#40;&#41;; for &#40;int i = 0; i &#60; 1000000; i++&#41; &#123; //... [...]]]></description>
			<content:encoded><![CDATA[<p>La mejor forma de medir tiempo de proceso en nuestro código es usando StopWatch.</p>
<p>Esta clase es la que nos dará toda la información que necesitamos, la encontraremos en el espacio de nombres System.Diagnostics.</p>
<p>Aquí dejo un ejemplo de uso:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">var timer <span style="color: #008000;">=</span> <span style="color: #000000;">System.<span style="color: #0000FF;">Diagnostics</span></span><span style="color: #008000;">.</span><span style="color: #0000FF;">Stopwatch</span><span style="color: #008000;">.</span><span style="color: #0000FF;">StartNew</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">int</span> i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&lt;</span> <span style="color: #FF0000;">1000000</span><span style="color: #008000;">;</span> i<span style="color: #008000;">++</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
 <span style="color: #008080; font-style: italic;">//...</span>
<span style="color: #008000;">&#125;</span>
timer<span style="color: #008000;">.</span><span style="color: #0000FF;">Stop</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
Console<span style="color: #008000;">.</span><span style="color: #0000FF;">WriteLine</span><span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Format</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Elapsed: {0}&quot;</span>, timer<span style="color: #008000;">.</span><span style="color: #0000FF;">Elapsed</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
Console<span style="color: #008000;">.</span><span style="color: #0000FF;">WriteLine</span><span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Format</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;MS: {0}&quot;</span>, timer<span style="color: #008000;">.</span><span style="color: #0000FF;">ElapsedMilliseconds</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
Console<span style="color: #008000;">.</span><span style="color: #0000FF;">WriteLine</span><span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Format</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Ticks: {0}&quot;</span>, timer<span style="color: #008000;">.</span><span style="color: #0000FF;">ElapsedTicks</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.emiliotorrens.com/2012/01/05/tiempos-de-proceso-en-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tuneando el Galaxy S II</title>
		<link>http://www.emiliotorrens.com/2012/01/03/tuneando-el-galaxy-s-ii/</link>
		<comments>http://www.emiliotorrens.com/2012/01/03/tuneando-el-galaxy-s-ii/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 15:54:27 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Galaxy]]></category>
		<category><![CDATA[Samsung]]></category>

		<guid isPermaLink="false">http://www.emiliotorrens.com/?p=6774</guid>
		<description><![CDATA[Hoy he recibido mi nuevo teléfono, un Galaxy S 2 (I9100). Como siempre el firmware que traía del operador era un autentico truño, así que le he tenido que hacer algunos cambios, firmware, hacerme root y las notificaciones BLN. Aunque no tiene porque pasar nada toquetear el teléfono de esta manera tiene sus riesgos, hay [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.emiliotorrens.com/wp-content/uploads/2012/01/001_small1.jpg"><img style="background-image: none; border-right-width: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="001_small" border="0" alt="001_small" align="left" src="http://www.emiliotorrens.com/wp-content/uploads/2012/01/001_small_thumb1.jpg" width="81" height="90" /></a>Hoy he recibido mi nuevo teléfono, un Galaxy S 2 (I9100). </p>
<p>Como siempre el firmware que traía del operador era un autentico truño, así que le he tenido que hacer algunos cambios, firmware, hacerme root y las notificaciones BLN. </p>
<p><font color="#ff0000"><strong>Aunque no tiene porque pasar nada toquetear el teléfono de esta manera tiene sus riesgos, hay 1000 post en foros con </strong></font><a href="http://www.google.es/search?sourceid=chrome&amp;ie=UTF-8&amp;q=galaxy+s2+brickeado" target="_blank"><font color="#ff0000"><strong>“galaxy s2 brickeado”</strong></font></a><font color="#ff0000"><strong>, avisado quedas.</strong></font></p>
<p><strong>Instalar en ultimo firmware disponible</strong> en <a href="http://www.sammobile.com" target="_blank">sammobile</a>, ahora mismo, y quitando el 4.0.3 que no estable, es el I9100XXKL1 (Android 2.3.6), puedes <a href="http://hotfile.com/dl/136946203/f16c1c5/I9100XXKL1_I9100OXAKL1_OXA.rar.html" target="_blank">bajarlo de aquí</a>, para instalarlo, como siempre con el Odin, si no sabes como <a href="http://www.htcmania.com/showthread.php?t=225794" target="_blank">léete este tutorial</a>. </p>
<p><strong>Hacerme root</strong>, para eso tienes que bajarte el <a href="http://www.multiupload.com/YDNSPJYJMT">CF-Root-SGS2_XW_INU_KL1-v5.0-CWM5</a> e instalarlo vía Odin, pones el archivo en PDA y sin marcar repartición, tras la instalación tienes que tener 2 App mas, Superuser y CWM </p>
<p><strong>Cambio de kernel</strong>, yo le he puesto el <a href="http://forum.xda-developers.com/showthread.php?t=1179814" target="_blank">ninphetamine 2.1.3</a>, puedes instalarlo vía Odin, igual que el anterior PDA y sin repartición, también se puede instalar por CWM aunque como ya has usado el Odin para el firmware y para hacerte root ya tienes el Odin controlado. </p>
<p><strong>Activar BLN</strong>, aunque el del kernel dice que lo lleva no es cierto, hay que instalar el <a href="http://www.google.es/url?sa=t&amp;rct=j&amp;q=back_light_notification_gs2_v3&amp;source=web&amp;cd=3&amp;ved=0CDMQFjAC&amp;url=http%3A%2F%2Fwww.multiupload.com%2FHF_23Z9J8DNRA&amp;ei=Dh4DT4y_CtG38gPWi73UAQ&amp;usg=AFQjCNHNTcYBJeibpERkfeYT1qs9qxl2uA" target="_blank">Back_Light_Notification_GS2_v3</a>, este si tienes que instalarlo por CWM, pero es sencillo, busca la App CWM, que se te habrá instalado cuando te has hecho root, la ejecutas, le das a Reboot/Recovery Mode, te reinicia en recovery, le damos a Install Zip from Sdcard, luego Choose Zip from Sdcard, seleccionamos el archivo y los instalamos, volvemos al menú, le damos reiniciar y listo, instalamos el <a href="https://market.android.com/details?id=neldar.bln.control.free" target="_blank">BLN Control desde el market</a>, lo activas y ya esta. </p>
<p>Con estos 3 cambios el teléfono me va fino <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="http://www.emiliotorrens.com/wp-content/uploads/2012/01/wlEmoticon-smile.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.emiliotorrens.com/2012/01/03/tuneando-el-galaxy-s-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changelog de MongoMapper.NET</title>
		<link>http://www.emiliotorrens.com/2011/12/30/changelog-de-mongomapper-net/</link>
		<comments>http://www.emiliotorrens.com/2011/12/30/changelog-de-mongomapper-net/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 10:05:22 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Microsoft.NET]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[MongoMapper]]></category>
		<category><![CDATA[NOSQL]]></category>

		<guid isPermaLink="false">http://www.emiliotorrens.com/?p=6762</guid>
		<description><![CDATA[Creo que la versión ya esta mas o menos para probar así que toca escribir el changelog de las ultimas modificaciones, las hechas desde que lo movimos de codeplex a github. Casi todas las modificaciones vienen de refactoring o de necesidades que me he ido encontrando al hacer pruebas con una CRS cambiando el SQL [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.emiliotorrens.com/wp-content/uploads/2011/11/mongodb-e1262178479348.png"><img style="margin: 0px 5px 0px 0px;" title="mongodb-e1262178479348" src="http://www.emiliotorrens.com/wp-content/uploads/2011/11/mongodb-e1262178479348_thumb.png" alt="mongodb-e1262178479348" width="150" height="64" align="left" border="0" /></a></p>
<p>Creo que la versión ya esta mas o menos para probar así que toca escribir el changelog de las ultimas modificaciones, las hechas desde que lo movimos de codeplex a github.</p>
<p>Casi todas las modificaciones vienen de refactoring o de necesidades que me he ido encontrando al hacer pruebas con una CRS cambiando el SQL por <a href="http://en.wikipedia.org/wiki/MongoDB" target="_blank">MongoDB</a>, pero cualquier sugerencia es bienvenida.</p>
<p>Los cambios:</p>
<ul>
<li>El id pasa a ser Long, era necesario para poderlo definir como autoincremental, además es mas legible.</li>
<li>Añadidos <em>extension methods</em> de búsqueda (MongoFind) para las Listas de objetos (que hereden de MongoMapper), puedes ver el <a href="https://github.com/emiliotorrens/MongoMapper.NET/blob/master/EtoolTech.MongoDB.Mapper/Core/ExtensionMethods.cs" target="_blank">código aquí</a> y <a href="https://github.com/emiliotorrens/MongoMapper.NET/blob/master/EtoolTech.MongoDB.Mapper.Test/ExtensionTest.cs" target="_blank">ejemplos aquí</a></li>
<li>Posibilidad de guardar en un campo de la clase base el Documento Original en el momento de Deserializar, de esta manera podemos <a href="https://github.com/emiliotorrens/MongoMapper.NET/blob/master/EtoolTech.MongoDB.Mapper.Test/OriginalObjectTest.cs" target="_blank">comprobar cambios</a> y, en un futuro, hacer rollback.</li>
<li>Al intentar insertar un documento que ya existe posibilidad de lanzar excepción o de modificar el existente.</li>
<li>Si no se define MongoKey o se le define vacío usa por defecto el id como PK.</li>
<li>Parada la opción de pasar expresiones para los filtros, vi que la gente del Driver estaba trabajando en algo igual, así que esperare que lo terminen <img src='http://www.emiliotorrens.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>Intento tipar un poco los Querys, puedes crear un Query pasándole el campo en una expresión, tipo:<em> MongoQuery.Eq((Country c) =&gt; c.Code, &#8220;ES&#8221;)</em>, <a href="https://github.com/emiliotorrens/MongoMapper.NET/blob/master/EtoolTech.MongoDB.Mapper.Test/FindTest.cs" target="_blank">puedes ver ejemplos aquí</a>.</li>
<li>Añadidos metodos de búsqueda que devuelven un cursor, ahora existen los FindAsList y los FindAsCursor, así se pueden usar los SetFields, SetLimit, SetSkip etc ..</li>
<li>Sección de configuración propia en el config de la aplicación, puedes ver este <a href="https://github.com/emiliotorrens/MongoMapper.NET/blob/master/EtoolTech.MongoDB.Mapper.Test/App.config" target="_blank">ejemplo</a>.</li>
<li>Añadidas mas opciones de configuración:</li>
<ul>
<li>MaxDocumentSize</li>
<li>SafeMode</li>
<li>FSync</li>
<li>ExceptionOnDuplicateKey</li>
<li>EnableOriginalObject</li>
<li>UseIncrementalId</li>
<li>PoolSize</li>
<li>WaitQueueTimeout</li>
</ul>
</ul>
<p>El tema de usar un id Incremental afecta al rendimiento a la hora de insertar documentos ya que lo que hace es crear una colección donde guarda el ultimo id usado para cada colección y tiene que incrementar en cada insert, puedes ver el <a href="https://github.com/emiliotorrens/MongoMapper.NET/blob/master/EtoolTech.MongoDB.Mapper/Core/MongoMapperIdGenerator.cs" target="_blank">código aquí</a>, es configurable el usarlo o no.</p>
<p>Otro tema que afecta al rendimiento es el de guardar el Objeto original, por eso lo puse configurable también, afecta al rendimiento de lectura ya que hace una Serializacion al Deserializar cada documento para guardar una copia en formato JSV, aunque, basándome en las pruebas que he hecho, no afecta demasiado al rendimiento.</p>
<p>Para Serilizar/Deserializar en el tema del Documento Original utilizo <a href="https://github.com/ServiceStack/ServiceStack.Text" target="_blank">ServiceStack.Text</a>, es lo mas rápido que he encontrado, así que ahora tiene esa dependencia.</p>
<p>En el <a href="https://github.com/emiliotorrens/MongoMapper.NET/tree/master/EtoolTech.MongoDB.Mapper.Test" target="_blank">proyecto de Test</a> puedes ver algunos ejemplos de como usar MongoMapper, agradezco cualquier idea/comentario</p>
<p align="center"><a href="https://github.com/emiliotorrens/MongoMapper.NET"><strong><span style="font-size: medium;">https://github.com/emiliotorrens/MongoMapper.NET</span></strong></a></p>
<p align="center">.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emiliotorrens.com/2011/12/30/changelog-de-mongomapper-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extension Methods en .NET</title>
		<link>http://www.emiliotorrens.com/2011/12/23/extensionmethods/</link>
		<comments>http://www.emiliotorrens.com/2011/12/23/extensionmethods/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 10:44:24 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Trucos]]></category>

		<guid isPermaLink="false">http://www.emiliotorrens.com/?p=6758</guid>
		<description><![CDATA[Los ExtensionMethods nos permiten crear metodos que estén disponibles en todos los tipos de objetos que les definamos. Por ejemplo podemos definir que todas nuestras clases tipo A tengan un método ToJson que devuelva una String con el Json creando el siguiente método: public static string ToJson&#40;this A o&#41; &#123;return JsonConvert.SerializeObject&#40;o&#41;;&#125; Lo único que hay [...]]]></description>
			<content:encoded><![CDATA[<p>Los ExtensionMethods nos permiten crear metodos que estén disponibles en todos los tipos de objetos que les definamos.</p>
<p>Por ejemplo podemos definir que todas nuestras clases tipo A tengan un método ToJson que devuelva una String con el Json creando el siguiente método:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">string</span> ToJson<span style="color: #008000;">&#40;</span><span style="color: #0600FF; font-weight: bold;">this</span> A o<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><span style="color: #0600FF; font-weight: bold;">return</span> JsonConvert<span style="color: #008000;">.</span><span style="color: #0000FF;">SerializeObject</span><span style="color: #008000;">&#40;</span>o<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><span style="color: #008000;">&#125;</span></pre></div></div>

<p>Lo único que hay que hacer es using del namespace donde estén definidos los metodos.</p>
<p>En este ejemplo creamos un ExtensionMethod para que todos los objetos tengan el método ToJson, eso lo hacemos creando el método con Object, y después le añadimos un método al object String para que lo transforme en un Objeto Tipado</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">string</span> ToJson<span style="color: #008000;">&#40;</span><span style="color: #0600FF; font-weight: bold;">this</span> <span style="color: #6666cc; font-weight: bold;">Object</span> o<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><span style="color: #0600FF; font-weight: bold;">return</span> JsonConvert<span style="color: #008000;">.</span><span style="color: #0000FF;">SerializeObject</span><span style="color: #008000;">&#40;</span>o<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><span style="color: #008000;">&#125;</span>
<span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">static</span> T FromJson<span style="color: #008000;">&lt;</span>T<span style="color: #008000;">&gt;;</span><span style="color: #008000;">&#40;</span><span style="color: #0600FF; font-weight: bold;">this</span> <span style="color: #6666cc; font-weight: bold;">String</span> str<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><span style="color: #0600FF; font-weight: bold;">return</span> JsonConvert<span style="color: #008000;">.</span><span style="color: #0000FF;">DeserializeObject</span><span style="color: #008000;">&lt;</span>T<span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span>str<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><span style="color: #008000;">&#125;</span></pre></div></div>

<p>Aquí el Test:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> MyClass
<span style="color: #008000;">&#123;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">string</span> value <span style="color: #008000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">int</span> value2 <span style="color: #008000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>        
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #008000;">&#91;</span>TestClass<span style="color: #008000;">&#93;</span>
<span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> ExtensionMethodsTest
<span style="color: #008000;">&#123;</span>
    <span style="color: #008000;">&#91;</span>TestMethod<span style="color: #008000;">&#93;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">void</span> Test<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        MyClass c <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> MyClass <span style="color: #008000;">&#123;</span>value <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;hola&quot;</span>,value2 <span style="color: #008000;">=</span> <span style="color: #FF0000;">50</span><span style="color: #008000;">&#125;</span><span style="color: #008000;">;</span>
        <span style="color: #6666cc; font-weight: bold;">string</span> jsong <span style="color: #008000;">=</span> c<span style="color: #008000;">.</span><span style="color: #0000FF;">ToJson</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        MyClass c2 <span style="color: #008000;">=</span> jsong<span style="color: #008000;">.</span><span style="color: #0000FF;">FromJson</span><span style="color: #008000;">&lt;</span>MyClass<span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.emiliotorrens.com/2011/12/23/extensionmethods/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Personalizando los &#8220;cast&#8221; en .NET</title>
		<link>http://www.emiliotorrens.com/2011/12/20/personalizando-los-casting-en-net/</link>
		<comments>http://www.emiliotorrens.com/2011/12/20/personalizando-los-casting-en-net/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 14:39:39 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Trucos]]></category>

		<guid isPermaLink="false">http://www.emiliotorrens.com/?p=6750</guid>
		<description><![CDATA[Aquí dejo un ejemplo de como personalizar el cast de nuestras clases a otras con implicit/explicit operator, por si nos interesa controlar la conversión. Las clases: public class ClassString &#123; public string value1 &#123; get; set; &#125; public string value2 &#123; get; set; &#125; &#160; public static implicit operator ClassInt&#40;ClassString c2&#41; &#123; ClassInt c = [...]]]></description>
			<content:encoded><![CDATA[<p>Aquí dejo un ejemplo de como personalizar el cast de nuestras clases a otras con implicit/explicit operator, por si nos interesa controlar la conversión.</p>
<p>Las clases:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> ClassString
<span style="color: #008000;">&#123;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">string</span> value1 <span style="color: #008000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">string</span> value2 <span style="color: #008000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #0600FF; font-weight: bold;">implicit</span> <span style="color: #0600FF; font-weight: bold;">operator</span> ClassInt<span style="color: #008000;">&#40;</span>ClassString c2<span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        ClassInt c <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> ClassInt
        <span style="color: #008000;">&#123;</span>
            value1 <span style="color: #008000;">=</span> <span style="color: #6666cc; font-weight: bold;">int</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Parse</span><span style="color: #008000;">&#40;</span>c2<span style="color: #008000;">.</span><span style="color: #0000FF;">value1</span><span style="color: #008000;">&#41;</span>,
            value2 <span style="color: #008000;">=</span> <span style="color: #6666cc; font-weight: bold;">int</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Parse</span><span style="color: #008000;">&#40;</span>c2<span style="color: #008000;">.</span><span style="color: #0000FF;">value2</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#125;</span><span style="color: #008000;">;</span>
        <span style="color: #0600FF; font-weight: bold;">return</span> c<span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> ClassInt
<span style="color: #008000;">&#123;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">int</span> value1 <span style="color: #008000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">int</span> value2 <span style="color: #008000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #0600FF; font-weight: bold;">explicit</span> <span style="color: #0600FF; font-weight: bold;">operator</span> ClassString<span style="color: #008000;">&#40;</span>ClassInt c2<span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        ClassString c <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> ClassString
        <span style="color: #008000;">&#123;</span>
            value1 <span style="color: #008000;">=</span> c2<span style="color: #008000;">.</span><span style="color: #0000FF;">value1</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>, 
            value2 <span style="color: #008000;">=</span> c2<span style="color: #008000;">.</span><span style="color: #0000FF;">value2</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#125;</span><span style="color: #008000;">;</span>
        <span style="color: #0600FF; font-weight: bold;">return</span> c<span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>El test:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&#91;</span>TestMethod<span style="color: #008000;">&#93;</span>
<span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">void</span> TestMethod1<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    ClassInt c1 <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> ClassInt <span style="color: #008000;">&#123;</span>value1 <span style="color: #008000;">=</span> <span style="color: #FF0000;">100</span>,value2 <span style="color: #008000;">=</span> <span style="color: #FF0000;">200</span><span style="color: #008000;">&#125;</span><span style="color: #008000;">;</span>
&nbsp;
    ClassString c2 <span style="color: #008000;">=</span> <span style="color: #008000;">&#40;</span>ClassString<span style="color: #008000;">&#41;</span> c1<span style="color: #008000;">;</span>
    Assert<span style="color: #008000;">.</span><span style="color: #0000FF;">AreEqual</span><span style="color: #008000;">&#40;</span>c2<span style="color: #008000;">.</span><span style="color: #0000FF;">value1</span>, <span style="color: #008000;">&amp;</span>quot<span style="color: #008000;">;</span><span style="color: #FF0000;">100</span><span style="color: #008000;">&amp;</span>quot<span style="color: #008000;">;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
    Assert<span style="color: #008000;">.</span><span style="color: #0000FF;">AreEqual</span><span style="color: #008000;">&#40;</span>c2<span style="color: #008000;">.</span><span style="color: #0000FF;">value2</span>, <span style="color: #008000;">&amp;</span>quot<span style="color: #008000;">;</span><span style="color: #FF0000;">200</span><span style="color: #008000;">&amp;</span>quot<span style="color: #008000;">;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    ClassInt c3 <span style="color: #008000;">=</span> c2<span style="color: #008000;">;</span>
    Assert<span style="color: #008000;">.</span><span style="color: #0000FF;">AreEqual</span><span style="color: #008000;">&#40;</span>c3<span style="color: #008000;">.</span><span style="color: #0000FF;">value1</span>, <span style="color: #FF0000;">100</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
    Assert<span style="color: #008000;">.</span><span style="color: #0000FF;">AreEqual</span><span style="color: #008000;">&#40;</span>c3<span style="color: #008000;">.</span><span style="color: #0000FF;">value2</span>, <span style="color: #FF0000;">200</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.emiliotorrens.com/2011/12/20/personalizando-los-casting-en-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

