<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.ms/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>.NET o no .NET, esa es la cuestión : bugs, Windows CE</title><link>http://geeks.ms/blogs/rfog/archive/tags/bugs/Windows+CE/default.aspx</link><description>Etiquetas: bugs, Windows CE</description><dc:language /><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>Algunos bugs del Compact Framework</title><link>http://geeks.ms/blogs/rfog/archive/2010/04/21/algunos-bugs-del-compact-framework.aspx</link><pubDate>Wed, 21 Apr 2010 09:51:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:171010</guid><dc:creator>Rafael Ontivero</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/rfog/rsscomments.aspx?PostID=171010</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/rfog/commentapi.aspx?PostID=171010</wfw:comment><comments>http://geeks.ms/blogs/rfog/archive/2010/04/21/algunos-bugs-del-compact-framework.aspx#comments</comments><description>&lt;p&gt;No llevo ni mil l&amp;iacute;neas de c&amp;oacute;digo de un nuevo proyecto embebido en C# y ya me he encontrado con al menos cinco bugs. En su momento abandon&amp;eacute; C# para escritorio porque era un juguetito que apenas daba de s&amp;iacute; para realizar aplicaciones de sistemas medianamente complejas. El mayor problema estribaba en que como te salieras de lo que los &lt;i&gt;sabios&lt;/i&gt; hab&amp;iacute;an determinado, aquello no funcionaba ni para atr&amp;aacute;s. Cosas que fallaban, muchas. Las m&amp;aacute;s flagrantes eran serios problemas con los constructores est&amp;aacute;ticos, agravados en el caso de que se produjera una excepci&amp;oacute;n dentro de ellos, excepciones que no se lanzaban cuando deb&amp;iacute;an, y un largo etc&amp;eacute;tera en relaci&amp;oacute;n a elementos de Windows Forms.&lt;/p&gt;
&lt;p&gt;Tengo constancia de que muchos de esos problemas han sido solucionados con los distintos Service Packs que le han ido saliendo a la versi&amp;oacute;n 2.0 del .NET Framework, y pensaba que ya que el Compact tambi&amp;eacute;n lleva unos cuantos, no tendr&amp;iacute;a problemas con &amp;eacute;l.&lt;/p&gt;
&lt;p&gt;Pero no es as&amp;iacute; en relaci&amp;oacute;n al Compact. Fijaros que no estoy hablando del 3, ni del 3.5, sino del 2.0, que lleva una buena porrada de a&amp;ntilde;os en la calle y que ya deber&amp;iacute;a funcionar medianamente bien. No quiero yo ver la porquer&amp;iacute;a que ser&amp;aacute;n el 3 y 3.5 (recuerdo haber encontrado y reportado 5 bugs en una &amp;uacute;nica sesi&amp;oacute;n de media hora de jugar con ellos, de los cuales la mayor&amp;iacute;a ser&amp;iacute;an resueltos en &lt;i&gt;next version&lt;/i&gt;, que es la forma pol&amp;iacute;ticamente correcta que tiene Microsoft de quitarse a los pesados de encima y decirte con buenas palabras que no lo van a solucionar).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Los m&amp;aacute;s triviales del Compact 2.0&lt;/strong&gt; se encadenan en torno al componente Tab Control, y b&amp;aacute;sicamente tienen que ver con el tama&amp;ntilde;o del mismo y la posici&amp;oacute;n de las p&amp;aacute;ginas. Hablamos del .NET Compact Framework 2.0 con todos sus parches en compilaci&amp;oacute;n &lt;i&gt;AnyCPU&lt;/i&gt;, no de la versi&amp;oacute;n de escritorio.&lt;/p&gt;
&lt;p&gt;Cuando el componente es m&amp;aacute;s grande que la ficha y sale por debajo porque est&amp;aacute; anclado por arriba a la misma, .NET dibuja una barra de desplazamiento vertical que permite contener el componente completo. Sin embargo, si la anclamos por debajo, la barra de desplazamiento no aparece, y entonces los controles que haya en la parte superior ocultos a la vista no ser&amp;aacute;n visibles.&lt;/p&gt;
&lt;p&gt;El siguiente tambi&amp;eacute;n tiene relaci&amp;oacute;n con este, y se presenta de forma aleatoria (o al menos yo no he sido capaz de poder reproducirlo siempre). El control no se redimensiona. Ya puedes ponerle el Width o el Heigth al valor que quieras, que &amp;eacute;l seguir&amp;aacute; con el que tenga en tiempo de dise&amp;ntilde;o. Parece estar relacionado tambi&amp;eacute;n con el tipo de anclaje y de &lt;i&gt;dock&lt;/i&gt;, pero no estoy seguro.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;El gordo&lt;/span&gt;&lt;/strong&gt;. Este problema clama al cielo, es para llorar, ya ver&amp;eacute;is. Crea un proyecto embebido en C# para Windows CE con el asistente y para el Compact 2.0. A&amp;ntilde;ade un PictureBox al Form. Clica en la propiedad Image y carga un fichero JPG. Una vez hecho esto deberemos estar viendo la imagen en tiempo de dise&amp;ntilde;o. Ejecutemos sobre un emulador o sobre un dispositivo real.&lt;/p&gt;
&lt;p&gt;&amp;iexcl;Tach&amp;aacute;n! Excepci&amp;oacute;n al canto, la imagen no aparece por ning&amp;uacute;n lado. Os adjunto una imagen, para que ve&amp;aacute;is que no hay trampa ni cart&amp;oacute;n:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/rfog/image_5F00_793C0956.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/rfog/image_5F00_thumb_5F00_4F686896.png" width="244" height="154" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;A la izquierda est&amp;aacute; el editor abierto por la excepci&amp;oacute;n y mostrando esta, del tipo &amp;ldquo;Exception&amp;rdquo;. A la derecha est&amp;aacute; el Form mostrando la imagen, y m&amp;aacute;s a la derecha el emulador.&lt;/p&gt;
&lt;p&gt;Para m&amp;aacute;s inri y jocosidad (aunque es para llorar), el tipo de excepci&amp;oacute;n es &amp;ldquo;Exception&amp;rdquo;, as&amp;iacute;, a pelo. No del tipo recurso no encontrado, ni fichero no encontrado, ni nada de eso. Simplemente una &amp;ldquo;excepci&amp;oacute;n&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Pero todav&amp;iacute;a hay m&amp;aacute;s, porque al menos en Windows CE te salta la excepci&amp;oacute;n, en Windows Mobile, por ejemplo, simplemente falla, sin disparar ning&amp;uacute;n tipo de excepci&amp;oacute;n ni nada.&lt;/p&gt;
&lt;p&gt;No os vay&amp;aacute;is, porque &amp;iexcl;s&amp;iacute;, hay m&amp;aacute;s!: incluso poni&amp;eacute;ndola a mano como un recurso normal, luego en el ejecutable &amp;iexcl;no hay imagen! Es decir, que lo que quiera que haga de linker en el C# pasa ol&amp;iacute;mpicamente de este tipo de recurso.&lt;/p&gt;
&lt;p&gt;&amp;iquest;Es para llorar o no? Pues eso, que se le quitan a uno las ganas.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;V2.0&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Bueno, lo de arriba fue escrito y programado para que se publicara el 21 de abril, ya que tengo entradas preparadas hasta esa fecha, pero resulta que mientras llega el citado d&amp;iacute;a, segu&amp;iacute; con el tema a ratos, porque no es un proyecto del curro, sino personal. Si lo contado hasta ahora clama al cielo, no os digo ya lo que viene a continuaci&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;Unos d&amp;iacute;as despu&amp;eacute;s de desistir con el tema, vi el dispostivo con Windows CE por encima de la mesa y me dije que iba a reintentarlo, y as&amp;iacute; lo hice. Conect&amp;eacute; el aparato (un JE200 vuelto a convertir en un cacharro CE puro para los curiosos) y para escarnio y befa personal, &amp;iexcl;funcion&amp;oacute; a la primera! Bueno, no realmente, porque para evitarme la descarga de todo el Compact sobre el dispositivo, y sabiendo que &amp;eacute;l tra&amp;iacute;a ya una versi&amp;oacute;n 2.0, desconect&amp;eacute; la opci&amp;oacute;n de cargar siempre la &amp;uacute;ltima versi&amp;oacute;n en el aparato/emulador.&lt;/p&gt;
&lt;p&gt;Y entonces funcion&amp;oacute;. O en otras palabras, la imagen se embebi&amp;oacute; en el ejecutable y este funcion&amp;oacute; perfectamente. No obstante, hab&amp;iacute;a ahora un nuevo problema: el color de fondo de los botones no se cambiaba por el que yo hab&amp;iacute;a decidido (suma bug y sigue).&lt;/p&gt;
&lt;p&gt;Me da por probar en un emulador de Windows Mobile 2003 y funciona todo perfecto, incluso lo de los botones. De vuelta al emulador del CE, me dice que el .NET instalado es muy viejo. &amp;iquest;C&amp;oacute;mo que muy viejo? Si lo que pasa es que no hay .NET (Si lo sabr&amp;eacute; yo que . Otro m&amp;aacute;s al cesto.&lt;/p&gt;
&lt;p&gt;Para resolver lo anterior, reactivo lo de bajar la &amp;uacute;ltima versi&amp;oacute;n del Compact, lo hizo, carg&amp;oacute; y funcion&amp;oacute;, aunque el tema de los botones sigui&amp;oacute; sin funcionar&amp;hellip; Lo cierto es que funcion&amp;oacute; s&amp;oacute;lo la primera carga. En la dem&amp;aacute;s ya dej&amp;oacute; de hacerlo. Suma y sigue.&lt;/p&gt;
&lt;p&gt;Bueno, al final, resumiendo: tras al menos dos Service Packs y varias &amp;ldquo;actualizaciones de seguridad&amp;rdquo;, el Compact no s&amp;oacute;lo es la misma mierd@ que antes, si no incluso peor, con regresiones que ni siquiera estaban presentes en la RTM.&lt;/p&gt;
&lt;p&gt;Personalmente se me cae la cara de verg&amp;uuml;enza ajena con esto, lo que reafirma y confirma algo que he dicho por aqu&amp;iacute; no hace poco: los test no valen para nada. Y me da para otra entrada sobre este tema que ya estoy empezando a barruntar. Permaneced atentos.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=171010" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/rfog/archive/tags/Windows+CE/default.aspx">Windows CE</category><category domain="http://geeks.ms/blogs/rfog/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://geeks.ms/blogs/rfog/archive/tags/chapuzas/default.aspx">chapuzas</category><category domain="http://geeks.ms/blogs/rfog/archive/tags/bugs/default.aspx">bugs</category><category domain="http://geeks.ms/blogs/rfog/archive/tags/C_2300_/default.aspx">C#</category></item></channel></rss>