<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://ecuador.latindevelopers.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang=""><title type="html">.NET a 2.860 metros de altura</title><subtitle type="html" /><id>http://ecuador.latindevelopers.net/blogs/edgarsanchez/atom.aspx</id><link rel="alternate" type="text/html" href="http://ecuador.latindevelopers.net/blogs/edgarsanchez/default.aspx" /><link rel="self" type="application/atom+xml" href="http://ecuador.latindevelopers.net/blogs/edgarsanchez/atom.aspx" /><generator uri="http://communityserver.org" version="4.0.30619.63">Community Server</generator><updated>2008-10-16T18:33:00Z</updated><entry><title>Nuevo look de live.com, 25 GB en Skydrive</title><link rel="alternate" type="text/html" href="/blogs/edgarsanchez/archive/2008/12/03/nuevo-look-de-live-com-25-gb-en-skydrive.aspx" /><id>/blogs/edgarsanchez/archive/2008/12/03/nuevo-look-de-live-com-25-gb-en-skydrive.aspx</id><published>2008-12-03T15:58:40Z</published><updated>2008-12-03T15:58:40Z</updated><content type="html">&lt;p&gt;Microsoft ha ido mejorando paulatinamente el aspecto y, mucho más importante, la funcionalidad de &lt;a href="http://home.live.com"&gt;http://home.live.com&lt;/a&gt;, justo ayer fue liberada una nueva versión, algunas de las novedades:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Un look más limpiecito en la página principal&lt;/li&gt;    &lt;li&gt;Espacio quintuplicado en &lt;a href="http://skydrive.live.com"&gt;http://skydrive.live.com&lt;/a&gt;, antes 5 GB, ahora 25 GB!&lt;/li&gt;    &lt;li&gt;Espacio para fotos (también con 25 GB) en &lt;a href="http://photos.live.com"&gt;http://photos.live.com&lt;/a&gt; , bueno este no estoy seguro que sea nuevo, pero yo al menos me acabo de enterar. Además por supuesto hay varios otros sitios para almacenar fotos, pero es bueno que live.com ofrezca una buena alternativa&lt;/li&gt;    &lt;li&gt;Agenda en la red &lt;a href="http://calendar.live.com"&gt;http://calendar.live.com&lt;/a&gt; (está en beta aún, pero se ve bien)&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Y por supuesto, todas estas apliciones están hechas en ASP.NET, buena prueba de su escalabilidad y estabilidad (aunque yo sigo prefiriendo los clientes inteligentes, nada como una aplicación hecha con Windows Forms o, mejor, Windows Presentation Foundation).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://ecuador.latindevelopers.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/edgarsanchez/image_5F00_2A7DBE17.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://ecuador.latindevelopers.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/edgarsanchez/image_5F00_thumb_5F00_693F8EF2.png" width="644" height="214" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://ecuador.latindevelopers.net/aggbug.aspx?PostID=100" width="1" height="1"&gt;</content><author><name>EdgarSanchez</name><uri>http://ecuador.latindevelopers.net/members/EdgarSanchez/default.aspx</uri></author><category term="ASP.NET" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/ASP.NET/default.aspx" /><category term="Live" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/Live/default.aspx" /></entry><entry><title>Turbo Pascal cumplió 25 años</title><link rel="alternate" type="text/html" href="/blogs/edgarsanchez/archive/2008/11/21/turbo-pascal-cumpli-243-25-a-241-os.aspx" /><id>/blogs/edgarsanchez/archive/2008/11/21/turbo-pascal-cumpli-243-25-a-241-os.aspx</id><published>2008-11-21T23:51:56Z</published><updated>2008-11-21T23:51:56Z</updated><content type="html">&lt;p&gt;&lt;img style="margin:0px 10px 0px 0px;display:inline;" align="left" src="http://dn.codegear.com/article/images/20693/tp1sm.gif" alt="" /&gt; Esta sí que es una nota nostálgica. Aunque aprendí a programar en &lt;a target="_blank" href="http://es.wikipedia.org/wiki/ALGOL"&gt;ALGOL&lt;/a&gt; (previamente había escrito diez o veinte líneas en una calculadora Texas y en FORTRAN, pero no llegué a entender ni un &lt;em&gt;sort&lt;/em&gt; de números en un vector así que no cuenta), aunque aprendí a programar en ALGOL decía, la materia Estructuras de Datos la tomé en &lt;a target="_blank" href="http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Pascal"&gt;Pascal&lt;/a&gt;, específicamente usando &lt;a target="_blank" href="http://es.wikipedia.org/wiki/Turbo_Pascal"&gt;Turbo Pascal&lt;/a&gt;, y fue Estructura de Datos la que me demostró que podía entender y, sobretodo, disfrutar de este oficio. Con Estructuras de Datos se aprende que el mundo va mucho más allá de los vectores (y su sucesor, la tabla relacional), con Turbo Pascal navegué entre colas, pilas, listas doblemente ligadas, diccionarios y árboles. Sufrí y luego disfruté la recursividad y la navegación en estructuras multidimensionales. Así que era inevitable que me &lt;a title="Turbo Pascal 1.0" target="_blank" href="http://dn.codegear.com/article/20693"&gt;descargue&lt;/a&gt; el viejo IDE (menos de 200k!) y recuerde un poco como eran las cosas hace un cuarto de siglo:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://ecuador.latindevelopers.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/edgarsanchez/image_5F00_20E31CC8.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://ecuador.latindevelopers.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/edgarsanchez/image_5F00_thumb_5F00_7AF97E3F.png" width="644" height="352" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Nada más que un editor apenas superior al Notepad, un compilador que cabía en un diskette de cinco un cuarto (incluido el deber trimestral) y, maravilla de maravillas, ¡un depurador con puntos de parada! Y cuál es la gracia dirán los programadores del siglo XXI (o qué es un diskette de cinco un cuarto), para entenderlo deberían preguntarles a los programadores RPG, COBOL o FORTRAN anteriores a Turbo Pascal. De varias maneras Turbo Pascal definió la evolución de los IDE’s de desarrollo actuales como Visual Studio o Eclipse, y enseñó los placeres de la programación a generaciones de estudiantes.&lt;/p&gt;  &lt;p&gt;En la década de los ochenta no me detenía a pensar en los ingeniosos ingenieros detrás de joyitas como Turbo Pascal, simplemente disfrutaba de sus creaciones (aunque sí admiraba a los escritores de libros como &lt;a target="_blank" href="http://es.wikipedia.org/wiki/Donald_Knuth"&gt;Donald Knuth&lt;/a&gt;), así que era imposible que supiera de la existencia de un tal &lt;a target="_blank" href="http://es.wikipedia.org/wiki/Anders_Hejlsberg"&gt;Anders Hejlsberg&lt;/a&gt;, mucho menos que escribía código en un lugar tan improbable (para mi, en ese entonces) como Dinamarca. Y es allá donde Anders escribió el Turbo Pascal (¡en ensamblador!). Si ni siquiera sabía de su existencia, menos se me podía pasar por la cabeza que veinticinco años después:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://ecuador.latindevelopers.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/edgarsanchez/image_5F00_406D96F7.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://ecuador.latindevelopers.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/edgarsanchez/image_5F00_thumb_5F00_0FCE9EE9.png" width="631" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Moraleja: si dejas pasar suficiente tiempo todo termina por ocurrir, inclusive pegarte unos vinos y cervecitas con el creador de Turbo Pascal, Borland C++, Delphi y C#. ¡Feliz cumpleaños Turbo Pascal y salud Anders!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://ecuador.latindevelopers.net/aggbug.aspx?PostID=99" width="1" height="1"&gt;</content><author><name>EdgarSanchez</name><uri>http://ecuador.latindevelopers.net/members/EdgarSanchez/default.aspx</uri></author><category term="Educación" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/Educaci_F300_n/default.aspx" /><category term="C#" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/C_2300_/default.aspx" /><category term="Estudiantes" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/Estudiantes/default.aspx" /><category term="Pascal" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/Pascal/default.aspx" /></entry><entry><title>Robotics Studio 2008 liberado</title><link rel="alternate" type="text/html" href="/blogs/edgarsanchez/archive/2008/11/19/robotics-studio-2008-liberado.aspx" /><id>/blogs/edgarsanchez/archive/2008/11/19/robotics-studio-2008-liberado.aspx</id><published>2008-11-20T04:05:27Z</published><updated>2008-11-20T04:05:27Z</updated><content type="html">&lt;p&gt;La ultimísima versión de este ambiente extendido de Visual Studio para crear aplicaciones robóticas acaba de ser liberada. Entre otras, ahora podemos programar robots con C# 3.0 (o F#!) Si alguien está pensando “esto sería chévere &lt;em&gt;si tuviera un robot&lt;/em&gt;”, recuerden que &lt;a href="http://msdn.microsoft.com/en-us/library/bb648760.aspx" target="_blank"&gt;Robotics Studio&lt;/a&gt; incluye un ambiente de simulación, que permite ver a nuestro robot actuar en un mundo virtual:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://i.msdn.microsoft.com/Bb648760.4x4(en-us,MSDN.10).png" alt="" /&gt; &lt;/p&gt;  &lt;p&gt;La &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=84c5b49f-0f9c-4182-a267-a951328d3fbd&amp;amp;displaylang=en" target="_blank"&gt;versión Express es gratuita&lt;/a&gt; y completamente funcional, así que ¿qué esperamos para bajarla y probarla?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://ecuador.latindevelopers.net/aggbug.aspx?PostID=97" width="1" height="1"&gt;</content><author><name>EdgarSanchez</name><uri>http://ecuador.latindevelopers.net/members/EdgarSanchez/default.aspx</uri></author><category term="Robotics" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/Robotics/default.aspx" /></entry><entry><title>Info multimedia para programadores: Channel9 en español</title><link rel="alternate" type="text/html" href="/blogs/edgarsanchez/archive/2008/11/18/info-multimedia-para-programadores-channel9-en-espa-241-ol.aspx" /><id>/blogs/edgarsanchez/archive/2008/11/18/info-multimedia-para-programadores-channel9-en-espa-241-ol.aspx</id><published>2008-11-19T05:21:56Z</published><updated>2008-11-19T05:21:56Z</updated><content type="html">&lt;p&gt;&lt;a href="http://ecuador.latindevelopers.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/edgarsanchez/image_5F00_277ADBE9.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://ecuador.latindevelopers.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/edgarsanchez/image_5F00_thumb_5F00_6E03DDBF.png" width="896" height="143" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;He mencionado varias veces a &lt;a target="_blank" href="http://channel9.msdn.com"&gt;Channel9&lt;/a&gt; como una fuente chévere de información multimedia para programadores (webcasts, podcasts, screencasts, videos, etc.) La maluca es que la gran mayoría del contenido está en inglés (claro que yo siempre digo que es una oportunidad para practicar ese idioma), bueno pues me acabo de enterar que ahora hay una &lt;a target="_blank" href="http://channel9.msdn.com/mexico/"&gt;sección en español en Channel9&lt;/a&gt;, para empezar hay una serie de screencasts de &lt;a target="_blank" href="http://blogs.msdn.com/jaimesb/"&gt;Jaime Sánchez&lt;/a&gt; sobre LINQ. Un sitio que convendrá visitar con frecuencia.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://ecuador.latindevelopers.net/aggbug.aspx?PostID=96" width="1" height="1"&gt;</content><author><name>EdgarSanchez</name><uri>http://ecuador.latindevelopers.net/members/EdgarSanchez/default.aspx</uri></author><category term="Educación" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/Educaci_F300_n/default.aspx" /></entry><entry><title>Entity Framework, LINQ to SQL y Oracle</title><link rel="alternate" type="text/html" href="/blogs/edgarsanchez/archive/2008/11/17/entity-framework-linq-to-sql-y-oracle.aspx" /><id>/blogs/edgarsanchez/archive/2008/11/17/entity-framework-linq-to-sql-y-oracle.aspx</id><published>2008-11-18T04:58:18Z</published><updated>2008-11-18T04:58:18Z</updated><content type="html">&lt;p&gt;LINQ, que es sobretodo y más que nada un lenguaje de consulta de objetos, tiene varias implementaciones:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;LINQ to Objects, que permite el filtrado, proyección, join, totalización de colecciones, etc. específicamente con objetos en memoria&lt;/li&gt;    &lt;li&gt;LINQ to XML, que permite ese mismo tipo de operaciones sobre árboles XML, y además operaciones de creación/actualización/eliminación de nodos en dichos árboles&lt;/li&gt;    &lt;li&gt;LINQ to SQL, que permite básicamente las mismas operaciones que el anterior pero teniendo como repositorio permanente a una base de datos relacional&lt;/li&gt;    &lt;li&gt;LINQ to Entities / Entity Framework, parecido al punto anterior pero con un esquema de mapeo entre tablas relacionales y clases O-O bastante más flexible&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Es interesante que LINQ to SQL y Entity Framework son muy similares, principales diferencias (desde mi corta experiencia):&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;LINQ to SQL está “más cerca” de la base de datos como consecuencia de lo cual:&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;Hay una relación más clara y menos flexible entre cada tabla y cada clase en C# (o VB.NET o cualquier lenguaje .NET)&lt;/li&gt;      &lt;li&gt;Genera código de interacción con la base de datos que aprovecha mejor las facilidades del motor, lo que lo hace potencialmente más eficiente&lt;/li&gt;      &lt;li&gt;Este mismo hecho hace más difícil crear proveedores para LINQ to SQL (hasta hace poco el único adecuadamente robusto era el de SQL Server, provisto por Microsoft por supuesto)&lt;/li&gt;   &lt;/ol&gt;    &lt;li&gt;Entity Framework está “más cerca” del modelo de objetos del negocio como consecuencia de lo cual:&amp;#160; &lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;Se pueden hacer mapeos más sofisticados entre múltiples tablas hacia un solo objeto (y viceversa). Como consecuencia, el conjunto de objetos que manipula la lógica de negocio se “sienten” más naturales&lt;/li&gt;      &lt;li&gt;Un modelo de proveedores más sencillo y genérico, lo que no permite aprovechar facilidades específicas de los motores, pero hace que sea más probable contar con aplicaciones que cambien fácilmente de motor de base de datos&lt;/li&gt;      &lt;li&gt;Este mismo hecho, ha hecho que aparezcan más proveedores de Entity Framework (SQL Server, DB2, MySql, Firebird, PostgreSql, entre los que me acuerdo ahora)&lt;/li&gt;   &lt;/ol&gt; &lt;/ol&gt;  &lt;p&gt;Lo extraño es que Oracle se ha mantenido alejado de estas nuevas tecnologías y se ha puesto en modo “sin comentarios” en lo que a proveedores para LINQ to SQL o Entity Framework se refiere. Para mi, esto es cederle espacio a SQL Server, dado que Visual Studio (y por ende .NET Framework) es una plataforma de desarrollo extremadamente popular, así que pienso que si no hay una buena alternativa para usar tecnologías modernas como Entity Framework con Oracle, la gente puede decantarse hacia SQL Server.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://ecuador.latindevelopers.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/edgarsanchez/image_5F00_44A1A168.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="68" alt="image" src="http://ecuador.latindevelopers.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/edgarsanchez/image_5F00_thumb_5F00_7BEF190F.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Ahora bien, una cosa buena de .NET es que tiene un gran ecosistema de desarrolladores y casas de software, y aquí es donde entra en la historia &lt;a href="http://www.devart.com/" target="_blank"&gt;Devart&lt;/a&gt;, una casa de software (de Rusia o Ucrania, no estoy seguro). Ellos han estado trabajando desde hace algún tiempo en un &lt;strong&gt;proveedor de Entity Framework para Oracle&lt;/strong&gt;, que de hecho he usado con Oracle 10g con buenos resultados. La buena noticia es que hace poquito liberaron &lt;a href="http://www.devart.com/news/2008/dotconnects500.html" target="_blank"&gt;nuevas versiones de sus proveedores&lt;/a&gt;, lo que incluye &lt;a href="http://www.devart.com/dotconnect/oracle/" target="_blank"&gt;dotConnect for Oracle 5.00&lt;/a&gt;. Más interesante todavía, &lt;strong&gt;esta nueva versión incluye un proveedor para LINQ to SQL&lt;/strong&gt; (lo que se supone que era tan complicado que iba a tomar un buen tiempo antes de que existiera una versión para algo distinto a SQL Server).&lt;/p&gt;  &lt;p&gt;Para quienes usan Visual Studio 2008 con Oracle, el proveedor de Entity Framework y LINQ to SQL de Devart es algo que vale la pena probar.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://ecuador.latindevelopers.net/aggbug.aspx?PostID=95" width="1" height="1"&gt;</content><author><name>EdgarSanchez</name><uri>http://ecuador.latindevelopers.net/members/EdgarSanchez/default.aspx</uri></author><category term="Visual Studio" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/Visual+Studio/default.aspx" /><category term="Entity Framework" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/Entity+Framework/default.aspx" /><category term="LINQ" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/LINQ/default.aspx" /></entry><entry><title>Modelamiento y optimización matemática con .NET</title><link rel="alternate" type="text/html" href="/blogs/edgarsanchez/archive/2008/11/16/modelamiento-y-optimizaci-243-n-matem-225-tica-con-net.aspx" /><id>/blogs/edgarsanchez/archive/2008/11/16/modelamiento-y-optimizaci-243-n-matem-225-tica-con-net.aspx</id><published>2008-11-17T03:04:08Z</published><updated>2008-11-17T03:04:08Z</updated><content type="html">&lt;p&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=solverfoundation&amp;amp;DownloadId=3108" alt="" /&gt; &lt;/p&gt;  &lt;p&gt;Uno de los cursos más intrigantes cuando estuve en la universidad (hace fuuuu) fue el de Investigación Operativa: hallar soluciones óptimas a requerimientos bajo un conjunto de limitaciones. Por ejemplo: definir las rutas de camiones para minimizar los tiempos de entrega, establecer la combinación adecuada de cajeros para atender con un mínimo de personas a las agencias de un banco, definir la combinación más barata de ingredientes que cumpla con los requerimientos y regulaciones. Resolver este tipo de problemas puede ahorrar millones pero enfrenta dos barreras:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;La comprensión de las técnicas matemáticas y el modelamiento del problema. Normalmente esto se puede resolver incluyendo a un matemático en el equipo&lt;/li&gt;    &lt;li&gt;La implementación de la solución en algún lenguaje (o Excel [;-)], esto requiere un largo y cuidadoso trabajo entre el matemático del punto anterior y uno o más programadores&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Lo triste es que para el punto 2 hay varias soluciones disponibles (de todo precio y calidad), pero la mayoría implementadas en cosas incómodas como Fortran (digo, porque cómo integras esto en una aplicación .NET o en Office 2007). Pues ahora tenemos una solución disponible: &lt;a target="_blank" href="http://code.msdn.microsoft.com/solverfoundation"&gt;Microsoft Solver Foundation&lt;/a&gt;, que en definitiva es un conjunto de librerías que implementan “resolvedores” de modelos de optimización (por ejemplo, programación lineal, programación cuadrática, modelos no lineales, etc.), estos están implementados completamente en C#, y su arquitectura está intencionalmente diseñada para facilitar su incorporación en nuestras aplicaciones. Ah, y &lt;a target="_blank" href="http://code.msdn.microsoft.com/solverfoundation/Release/ProjectReleases.aspx?ReleaseId=1799"&gt;la versión Express es gratis y se puede bajar de acá&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Es interesante notar que la descar incluye ejemplos en C#, F#, Excel, IronPython, Excel y Visual Basic .NET. En F# incluso se tiene implementado un DSL (un mini-lenguaje especializado) llamado ODSL (Optimization Domain Specific Language).&lt;/p&gt;  &lt;p&gt;Mucho menos ambicioso que ahorrarle unas decenas de miles de dólares a una empresa (o al Estado), es impresionar al profesor de Investigación Operativa, y sospecho que si hubiera tenido algo como Solver Foundation hace veinte años, me hubiera ido mejor…&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://ecuador.latindevelopers.net/aggbug.aspx?PostID=94" width="1" height="1"&gt;</content><author><name>EdgarSanchez</name><uri>http://ecuador.latindevelopers.net/members/EdgarSanchez/default.aspx</uri></author><category term="F#" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/F_2300_/default.aspx" /><category term="C#" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/C_2300_/default.aspx" /><category term="Utilidades" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/Utilidades/default.aspx" /></entry><entry><title>Libro de C# para curso de Programación 1</title><link rel="alternate" type="text/html" href="/blogs/edgarsanchez/archive/2008/11/14/libro-de-c-para-curso-de-programaci-243-n-1.aspx" /><id>/blogs/edgarsanchez/archive/2008/11/14/libro-de-c-para-curso-de-programaci-243-n-1.aspx</id><published>2008-11-14T16:33:38Z</published><updated>2008-11-14T16:33:38Z</updated><content type="html">&lt;p&gt;&lt;a href="http://ecuador.latindevelopers.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/edgarsanchez/image_5F00_096822FA.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 10px 0px 0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" align="left" src="http://ecuador.latindevelopers.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/edgarsanchez/image_5F00_thumb_5F00_67F85790.png" width="344" height="484" /&gt;&lt;/a&gt; Vía &lt;a target="_blank" href="http://blogs.msdn.com/ayyash/archive/2008/11/14/c-book-from-hull-university.aspx"&gt;este blog&lt;/a&gt; me encuentro con este libro de la &lt;a target="_blank" href="http://www.hull.ac.uk/"&gt;Universidad de Hull&lt;/a&gt; (en Inglaterra si no me equivoco) que está específicamente diseñado para un curso de Introducción a la Programación. Apenas ojeé el contenido pero parece interesante y, salvo que está en inglés, podría usarse en nuestras universidades. &lt;a target="_blank" href="http://cid-f64d9be7eb5dd817.skydrive.live.com/self.aspx/Public/Development%20Books/Rob%7C_Miles%7C_CSharp%7C_Yellow%7C_Book%7C_2008.pdf"&gt;El libro en PDF se puede bajar de acá&lt;/a&gt; (en &lt;a target="_blank" href="http://skydrive.live.com"&gt;Skydrive&lt;/a&gt;, claro está). Por cierto ¿cuál es el primer lenguaje de programación que se enseña por estos días en nuestras universidades?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://ecuador.latindevelopers.net/aggbug.aspx?PostID=90" width="1" height="1"&gt;</content><author><name>EdgarSanchez</name><uri>http://ecuador.latindevelopers.net/members/EdgarSanchez/default.aspx</uri></author><category term="Educación" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/Educaci_F300_n/default.aspx" /><category term="C#" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/C_2300_/default.aspx" /></entry><entry><title>Composite WPF: el sucesor de SCSF</title><link rel="alternate" type="text/html" href="/blogs/edgarsanchez/archive/2008/11/13/composite-wpf-el-sucesor-de-scsf.aspx" /><id>/blogs/edgarsanchez/archive/2008/11/13/composite-wpf-el-sucesor-de-scsf.aspx</id><published>2008-11-13T13:12:59Z</published><updated>2008-11-13T13:12:59Z</updated><content type="html">&lt;p&gt;En esta &lt;a title="Enterprise Library 4.1 liberada" target="_blank" href="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/2008/11/05/enterprise-library-4-1-liberada.aspx"&gt;otra entrada&lt;/a&gt;, Harley pregunta si hay alguna novedad en el frente del &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/aa480482.aspx"&gt;Smart Client Software Factory&lt;/a&gt;, aquí la larga respuesta.&lt;/p&gt;  &lt;p&gt;&lt;img style="margin:0px 10px 0px 0px;display:inline;" align="left" src="http://i.msdn.microsoft.com/Aa480482.pponline(en-us,MSDN.10).gif" alt="" /&gt; Para los que somos un poco nuevos, el SCSF es una seríe de guías y asistentes (wizards) para la creación de aplicaciones Windows compuestas (ok, ok, composite smart client applications). La historia es que Microsoft sacó en el 2005 el &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/aa480450.aspx"&gt;Composite UI Application Block&lt;/a&gt;, en esas épocas se estaba poniendo muy de moda el Enterprise Library (una serie de clases útiles en el back-end), y aprovechando la ola se creó también una librería para la interfaz de usuario que permite crear interfaces compartamentalizadas (cada caso de uso es un conjunto independiente de presentación y lógica) que se integran en un marco común (una ventana principal) de manera parametrizada. La idea es muy buena, pero la implementación compleja, tanto, que se tuvieron que inventar el SCSF como un facilitador de la adopción y uso de Composite UI. &lt;/p&gt;  &lt;p&gt;Después de tres años, la conclusión es que las masas prefieren (¡preferimos!) algo que sea sencillo, aún cuando no sea tan completo. Agreguémosle al escenario la creciente popularidad de WPF y eso nos lleva al &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/cc707819.aspx"&gt;Composite Application Guidance for WPF&lt;/a&gt;, conocido internamente como Prism (siempre son mejores los nombres internos de los proyectos). Prism no es tan completo como Composite UI (pero ojo que tiene su misma propuesta arquitectónica) y está específicamente creado para Windows Presentation Foundation. La reacción inicial de la gente ha sido: así sí, esto está más facilito de entender y usar.&lt;/p&gt;  &lt;p&gt;En conclusión: por lo menos hasta donde yo sé, el grupo de Patterns &amp;amp; Practices no planea crear nuevas versiones de SCSF o Composite UI (aunque las actuales siguen siendo soportadas) y el trabajo futuro se centrará en Prism (ok, el CAG/WPF), de hecho actualmente están trabajando ya en una versión que incluye soporte para Silverlight.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=CompositeWPF&amp;amp;DownloadId=37985" alt="" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://ecuador.latindevelopers.net/aggbug.aspx?PostID=88" width="1" height="1"&gt;</content><author><name>EdgarSanchez</name><uri>http://ecuador.latindevelopers.net/members/EdgarSanchez/default.aspx</uri></author><category term="WPF" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/WPF/default.aspx" /><category term="Patterns &amp; Practices" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/Patterns+_2600_+Practices/default.aspx" /></entry><entry><title>Librerías gratis para F#</title><link rel="alternate" type="text/html" href="/blogs/edgarsanchez/archive/2008/11/10/librer-237-as-gratis-para-f.aspx" /><id>/blogs/edgarsanchez/archive/2008/11/10/librer-237-as-gratis-para-f.aspx</id><published>2008-11-11T04:57:00Z</published><updated>2008-11-11T04:57:00Z</updated><content type="html">&lt;p&gt;En la que fue pr&amp;aacute;cticamente la &amp;uacute;ltima sesi&amp;oacute;n del &lt;a href="http://microsoftpdc.com/" target="_blank"&gt;PDC2008&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/lucabol/" target="_blank"&gt;Luca Bolognese&lt;/a&gt; se luci&amp;oacute; con una introducci&amp;oacute;n a F#, en lugar de describirles de que se trat&amp;oacute; los invito m&amp;aacute;s bien a &lt;a href="http://channel9.msdn.com/pdc2008/TL11/" target="_blank" title="Introduction to F#"&gt;ver el video&lt;/a&gt; (Luca es muy divertido, m&amp;aacute;s a&amp;uacute;n con su fuerte acento italiano). Yo m&amp;aacute;s bien lo que quiero comentarles es que Luca us&amp;oacute; en una parte de sus demos unas interesantes librer&amp;iacute;as espec&amp;iacute;ficas de F#:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.ffconsultancy.com/products/images/ffn.gif" align="right" style="margin:0px 0px 0px 10px;display:inline;" alt="" /&gt; &lt;a href="http://www.ffconsultancy.com/products/fsharp_for_numerics/index.html" target="_blank"&gt;F# for Numerics&lt;/a&gt; ofrece una serie de funciones para an&amp;aacute;lisis num&amp;eacute;rico, ya saben, cosas como operaciones con matrices, integraci&amp;oacute;n y diferenciaci&amp;oacute;n, funciones estad&amp;iacute;sticas, maximizaci&amp;oacute;n y minimizaci&amp;oacute;n, transformadas de Fourier, en fin, todas esas cosas que tanto nos gustan de las matem&amp;aacute;ticas &lt;img src="http://ecuador.latindevelopers.net/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.ffconsultancy.com/products/images/ffv.gif" align="left" style="margin:0px 10px 0px 0px;display:inline;" alt="" /&gt; &lt;a href="http://www.ffconsultancy.com/products/fsharp_for_visualization/index.html" target="_blank"&gt;F# for Visualization&lt;/a&gt; permite visualizar funciones tanto en 2D como en 3D, incluyendo animaciones y exportaci&amp;oacute;n a PNG (realmente los resultados se ven muy ch&amp;eacute;veres)&lt;/p&gt;
&lt;p&gt;M&amp;aacute;s interesante, &lt;a href="http://www.ffconsultancy.com/products/fsharp_for_scientists/index.html" target="_blank" title="Jon Harrop&amp;#39;s F# news blog"&gt;Jon Harrop&lt;/a&gt;, el hombre detr&amp;aacute;s de las librer&amp;iacute;as ofrece ahora versiones gratis, lo que nos permite jugar con ellas (y de todas maneras no son muy caras (menos de US$ 100 si se compran juntas). Para mi, es un gran s&amp;iacute;ntoma que estas librer&amp;iacute;as existan pues normalmente cuando un lenguaje o tecnolog&amp;iacute;a tienen algo de interesante es que empiezan a aparecer librer&amp;iacute;as (un ejemplo perfecto de esto es WPF para el que en los &amp;uacute;ltimos meses han empezado a aparecer *muchas* librer&amp;iacute;as de controles, pero eso es tema de otro blog&amp;hellip;)&lt;/p&gt;
&lt;p&gt;Mientras estamos en el tema, y para quienes realmente les apasionan las aplicaciones cient&amp;iacute;ficas, les sugiero le echen un ojo a &lt;a href="http://www.ffconsultancy.com/products/fsharp_for_scientists/index.html" target="_blank"&gt;F# for Scientists&lt;/a&gt;, el libro de Jon que muestra como usar F# en este campo.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.ffconsultancy.com/products/images/ffs.gif" style="display:block;float:none;margin-left:auto;margin-right:auto;" alt="" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://ecuador.latindevelopers.net/aggbug.aspx?PostID=86" width="1" height="1"&gt;</content><author><name>EdgarSanchez</name><uri>http://ecuador.latindevelopers.net/members/EdgarSanchez/default.aspx</uri></author><category term="F#" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/F_2300_/default.aspx" /><category term="Programaci&amp;#243;n funcional" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/Programaci_26002300_243_3B00_n+funcional/default.aspx" /></entry><entry><title>Migrar a Windows Vista: cómo y para qué</title><link rel="alternate" type="text/html" href="/blogs/edgarsanchez/archive/2008/11/06/migrar-a-windows-vista-c-243-mo-y-para-qu-233.aspx" /><id>/blogs/edgarsanchez/archive/2008/11/06/migrar-a-windows-vista-c-243-mo-y-para-qu-233.aspx</id><published>2008-11-07T03:28:37Z</published><updated>2008-11-07T03:28:37Z</updated><content type="html">&lt;p&gt;Si te estás preguntado que ganarías *ahora* migrando de Windows XP (o 2000 –siempre habemos rezagaditos) a Windows Vista (SP1 por supuesto) y cuál es el proceso a seguir, creo que este evento va a ser muy informativo (además de que es gratuito):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://ecuador.latindevelopers.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/edgarsanchez/INVITACION_5F00_final_5F00_Muestra_5F00_Final_5F00_5BBDC48B.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="INVITACION_final_Muestra_Final" border="0" alt="INVITACION_final_Muestra_Final" src="http://ecuador.latindevelopers.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/edgarsanchez/INVITACION_5F00_final_5F00_Muestra_5F00_Final_5F00_thumb_5F00_4DDB58C3.jpg" width="511" height="722" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Daniel y Elías han estado haciendo este evento en varias ciudades de Latinoamérica, así que me parece que es una buena manera de usar la mañana del sábado.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://ecuador.latindevelopers.net/aggbug.aspx?PostID=85" width="1" height="1"&gt;</content><author><name>EdgarSanchez</name><uri>http://ecuador.latindevelopers.net/members/EdgarSanchez/default.aspx</uri></author><category term="Vista" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/Vista/default.aspx" /></entry><entry><title>Hospedaje con streaming gratuito con Silverlight</title><link rel="alternate" type="text/html" href="/blogs/edgarsanchez/archive/2008/11/06/hospedaje-con-streaming-gratuito-con-silverlight.aspx" /><id>/blogs/edgarsanchez/archive/2008/11/06/hospedaje-con-streaming-gratuito-con-silverlight.aspx</id><published>2008-11-06T19:34:49Z</published><updated>2008-11-06T19:34:49Z</updated><content type="html">&lt;p&gt;&lt;img style="display:inline;margin:0px;" src="http://www.microsoft.com/silverlight/images/logo.png" align="left" alt="" /&gt; Los archivos de audio y, sobretodo, de video son muy grandes y si esperamos a que el archivo baje a nuestra máquina antes de empezar a oirlo/verlo puede pasar mucho tiempo ¿la solución? Servidores que hacen &lt;a href="http://www.microsoft.com/silverlight/resources/streaming.aspx" target="_blank"&gt;transmisión por secuencias&lt;/a&gt;, claro que &lt;em&gt;streaming&lt;/em&gt; suena más bonito, o sea conforme van bajando partes del archivo este ya se muestra en el visor (o suena en el &lt;em&gt;player&lt;/em&gt;), por supuesto que este es el truco que usa Youtube y muchos otros sitios. Ojo que es necesario que tanto el servidor como el cliente soporten streaming, si no, el truco no sirve. Lo interesante es que Silverlight permite crear clientes que hacen streaming, nada más falta tener un servidor de streaming donde almacenar nuestros videos. Para que nos quedemos sin pretextos, he aquí una solución gratis: en &lt;a title="http://silverlight.live.com/" href="http://silverlight.live.com/"&gt;http://silverlight.live.com/&lt;/a&gt; nos podemos inscribir con nuestro Live ID (o sea el usuario de Messenger o Hotmail) y tenemos diez gigabytes gratis (sin propagandas ni nada) para hacer streaming, chévere ¿no? Como seguramente vamos a querer integrar esos videos en nuestras páginas Web o en nuestras pantallas Windows para eso tenemos el &lt;a href="http://msdn.microsoft.com/en-us/library/bb851621.aspx" target="_blank"&gt;Silverlight Streaming SDK&lt;/a&gt; ¡así que manos a la obra!&lt;/p&gt;  &lt;p&gt;La computación en la nube es un conjunto de servicios que permiten usar como backend al Internet, como esto cubre muchos frentes es natural que unos avancen más rápido que otros. El servicio de streaming es parte de &lt;a href="http://www.microsoft.com/azure/default.mspx" target="_blank"&gt;Microsoft Azure&lt;/a&gt;, la plataforma de computación en la nube que fue presentada en el &lt;a href="http://www.microsoftpdc.com" target="_blank"&gt;PDC 2008&lt;/a&gt; la semana pasada, aunque Azure como un todo está en alfa queda claro que tiene partes que ya están bastante maduritas.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://ecuador.latindevelopers.net/aggbug.aspx?PostID=84" width="1" height="1"&gt;</content><author><name>EdgarSanchez</name><uri>http://ecuador.latindevelopers.net/members/EdgarSanchez/default.aspx</uri></author><category term="Cloud computing" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/Cloud+computing/default.aspx" /><category term="Silverlight" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/Silverlight/default.aspx" /><category term="Azure" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/Azure/default.aspx" /></entry><entry><title>Enterprise Library 4.1 liberada</title><link rel="alternate" type="text/html" href="/blogs/edgarsanchez/archive/2008/11/05/enterprise-library-4-1-liberada.aspx" /><id>/blogs/edgarsanchez/archive/2008/11/05/enterprise-library-4-1-liberada.aspx</id><published>2008-11-05T12:12:51Z</published><updated>2008-11-05T12:12:51Z</updated><content type="html">&lt;p&gt;Ahora ya por años, &lt;a title="Enterprise Library" href="http://msdn.microsoft.com/en-us/library/cc467894.aspx" target="_blank"&gt;EL&lt;/a&gt; ha sido un componente importante en la infraestructura base de muchas aplicaciones empresariales. Pero el tiempo pasa, tanto así que la versión 2.0, de enero del 2006, ha sido declarada “deprecated” o sea obsoleta. Claro que EL ha ido evolucionando, por ejemplo, hace unos meses fue liberada la versión 4.0, y apenas la semana pasada, casi escondida por el gran ruido del PDC 2008 (que por cierto estuvo espectacular), &lt;a title="Enterprise Library 4.1" href="http://msdn.microsoft.com/en-us/library/dd203099.aspx" target="_blank"&gt;salió la versión 4.1&lt;/a&gt;. Algunos de los componentes de EL que he usado:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Data Access Application Block, una delgada capa que simplifica el uso de las clases y métodos de ADO.NET. Este es de largo el bloque más popular de EL pero, en mi humilde opinión, el &lt;strong&gt;DAAB debería ser reemplazado en nuevos proyectos por LINQ to SQL o Entity Framework&lt;/strong&gt;.&lt;/li&gt;    &lt;li&gt;Logging Application Block, un mecanismo poderoso y flexible para mantener bitácoras de operación. En esto días yo tiendo a usar la clase System.Diagnostics.EventLog que es facílisima de usar pero solo trabaja con la bitácora de eventos de Windows, si se requiere un mecanismo más flexible entonces el LAB es una muy buena opción.&lt;/li&gt;    &lt;li&gt;Exception Handling Application Block, basado en parte en el LAB, el EHAB provee un mecanismo muy flexible y configurable de manejo de errores (en el archivo de configuración se define como se debe tratar cada tipo de excepción), un poquito complicado de entender al principio, pero sin duda muy poderoso.&lt;/li&gt;    &lt;li&gt;Caching Application Block, el secreto para tener buen rendimiento en aplicaciones distribuidas es un buen manejo de caché. En interfaces de usuario Web se puede usar las clases de caché de ASP.NET, pero en otras circunstancias (interfaz Windows, WPF, la capa de negocios) el CAB es muy útil en aplicaciones empresariales que requieren buen rendimiento (y cuál no).&lt;/li&gt;    &lt;li&gt;Cryptography Application Block, una manera facilita de manejar hashing y cifrado simétrico (supongo que ustedes guardan las claves de los usuarios por lo menos encriptadas, mejor solo su hash, en la base de datos ¿correcto?)&lt;/li&gt;    &lt;li&gt;Unity Application Block, este juguetito apareció con la versión 4 de EL, es excelente para tener DI (inyección de dependencia) en las aplicaciones. DI es una manera probada de separar las clases consumidores de las clases proveedores de algún servicio (por ejemplo, acceso a base de datos, autenticación, etc.) En mi opinión, el UAB se empezará a usar cada vez más en aplicaciones empresariales.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Y ustedes ¿qué elementos de EL usan?&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;PD. Pista, por omisión EL 4.1 funciona con .NET 3.5 y Visual Studio 2008, aunque parece que se puede recompilar con VS 2005, el mensaje está clarísimo: todo nuevo proyecto debería realizarse con VS 2008 (después de todo el VS 2010 ya esta en alfa…)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://ecuador.latindevelopers.net/aggbug.aspx?PostID=82" width="1" height="1"&gt;</content><author><name>EdgarSanchez</name><uri>http://ecuador.latindevelopers.net/members/EdgarSanchez/default.aspx</uri></author><category term="Enterprise Library" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/Enterprise+Library/default.aspx" /><category term=".NET" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/.NET/default.aspx" /></entry><entry><title>Como manejas tus proyectos: work-down o value-up</title><link rel="alternate" type="text/html" href="/blogs/edgarsanchez/archive/2008/10/21/como-manejas-tus-proyectos-work-down-o-value-up.aspx" /><id>/blogs/edgarsanchez/archive/2008/10/21/como-manejas-tus-proyectos-work-down-o-value-up.aspx</id><published>2008-10-22T02:58:00Z</published><updated>2008-10-22T02:58:00Z</updated><content type="html">&lt;p&gt;Esta semana estoy dando una serie de webcasts sobre &lt;a title="Visual Studio Team System 2008" href="http://msdn.microsoft.com/es-ec/vsts2008/products/default.aspx" target="_blank"&gt;Team System&lt;/a&gt;. En lugar de concentrarse en los detalles de uso y características de Team System, la serie busca dar buenas razones a los gerentes técnicos para adoptar el estilo Team System de administración de proyectos. Debo empezar diciendo que Team System no propone, peor impone, alguna metodología de desarrollo &lt;em&gt;per se&lt;/em&gt;, en efecto, Team System se puede usar con MSF, RUP, CMMi, Scrum, etc. Lo que sí hay es una aproximación a como planificar y controlar proyectos. Aquí hay dos visiones de la vida:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Work-down: hay que tener un plan detallado al inicio (lo que incluye tener especificaciones mayormente congeladas) y luego seguir ese plan. Las desviaciones del plan son problemas a corregir. El avance se mide por el porcentaje de tareas cumplidas.&lt;/li&gt;    &lt;li&gt;Value-up: se tiene una buena idea del valor para el negocio del nuevo sistema, pero no un detalle del alcance. Se procede por iteraciones, en cada iteración se entrega (probada y en producción) funcionalidad del sistema. Las desviaciones son efecto natural de la retroalimentación y hay que incorporarlas en las siguientes iteraciones. El avance se mide en el mayor valor que el negocio recibe del sistema creciente (o sea en el retorno de la inversión).&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;El método work-down es el clásico, y se ha heredado de disciplinas como la ingeniería civil. La mayoría de proyectos de software tratan de arrancar con un alcance bien definido y un cronograma pre-establecido. Suena bien saber &lt;em&gt;a priori&lt;/em&gt; cuánto me va costar y cuándo me lo van entregar. Pero quizás nuestro oficio simplemente no funciona así:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://ecuador.latindevelopers.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/edgarsanchez/StandishGroupChaos2004_5F00_036B602C.png"&gt;&lt;img title="StandishGroupChaos2004" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="484" alt="StandishGroupChaos2004" src="http://ecuador.latindevelopers.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/edgarsanchez/StandishGroupChaos2004_5F00_thumb_5F00_5CA43A57.png" width="612" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Este es el famoso estudio de Standish Group sobre cómo les va a los proyectos de software. La respuesta es mal: para el 2004 el 20% fracasaban, el 30% terminaban a tiempo, en costo y con la funcionalidad planeada, y el 50% terminaban pero fuera de tiempo o fuera de costo o con menos funcionalidad (promedio de sobreprecio: 50%). O sea de cada 10 proyectos, 2 son cancelados, 5 terminan valiendo 1,5 de lo que se planeaba, y solo 3 terminan sin novedad. La cosa es que muchos de estos proyectos se tratan de hacer con planificación a priori (o sea work-down), y los resultados han sido pobres. Por eso necesitamos algo diferente, por eso value-up puede ser una buena alternativa. Y Team System es especialmente amigable a esta última opción. En los proyectos en los que ustedes participan la cosa es work-down o value-up?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://ecuador.latindevelopers.net/aggbug.aspx?PostID=80" width="1" height="1"&gt;</content><author><name>EdgarSanchez</name><uri>http://ecuador.latindevelopers.net/members/EdgarSanchez/default.aspx</uri></author><category term="Administración de proyectos" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/Administraci_F300_n+de+proyectos/default.aspx" /><category term="Team System" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/Team+System/default.aspx" /></entry><entry><title>WPF, Xceed y U2 (de IBM, no la banda irlandesa)</title><link rel="alternate" type="text/html" href="/blogs/edgarsanchez/archive/2008/10/20/wpf-xceed-y-u2-de-ibm-no-la-banda-irlandesa.aspx" /><id>/blogs/edgarsanchez/archive/2008/10/20/wpf-xceed-y-u2-de-ibm-no-la-banda-irlandesa.aspx</id><published>2008-10-21T04:28:50Z</published><updated>2008-10-21T04:28:50Z</updated><content type="html">&lt;p&gt;Si les muestras una demo de Windows Presentation Foundation a un grupo de programadores, en general la reacción es “Guau”, y es que las interfaces de usuario que se pueden crear con WPF son realmente atractivas. Pero si se la muestras a un gerente de sistemas, aparecen preguntas duras, por ejemplo:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Quién más está usando esto?&lt;/li&gt;    &lt;li&gt;Y hay librerías para esto?&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Esta última pregunta es relevante porque para las interfaces de usuario sofisticadas que los usuarios admiran (y casi que hasta esperan), tomaría mucho tiempo empezar con las clases y editores que vienen de cajón. Una librería de controles para Web, Windows o WPF pueden realmente marcar la diferencia (y a la vez ahorrar tiempo). Siendo WPF una tecnología relativamente nueva (bueno, la verdad ya tiene más de dos años al aire), apenas este año han empezado a aparecer ofertas interesantes en este campo: Developer Express, Telerik, Actipro ofrecen interesantes librerías, pero mi favorita por el momento es &lt;a href="http://xceed.com/Grid_WPF_Intro.html" target="_blank"&gt;Xceed DataGrid&lt;/a&gt;, una grilla 100% WPF que se ve muy bien.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://ecuador.latindevelopers.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/edgarsanchez/XceedDataGrid_5F00_6E22D552.png"&gt;&lt;img title="Sí, esto es una grilla" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="559" alt="Sí, esto es una grilla" src="http://ecuador.latindevelopers.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/edgarsanchez/XceedDataGrid_5F00_thumb_5F00_6AC5277A.png" width="788" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;¿Y quién está usando esto? Justo hoy recibí un correo donde me cuentan que IBM (ni más ni menos) ha decidido usar Xceed DataGrid para la siguiente versión de &lt;a href="http://www-01.ibm.com/software/data/u2/sb/" target="_blank"&gt;SystemBuilder&lt;/a&gt;, un ambiente de desarrollo 4GL (hace mucho que no oía el término). Originalmente creado como un ambiente de desarrollo para Pick Systems (una base de datos bastante popular el siglo pasado), SystemBuilder ahora funciona en la base de datos multi-valorada &lt;a href="http://en.wikipedia.org/wiki/IBM_U2" target="_blank"&gt;U2&lt;/a&gt;. Decididamente son productos colaterales en el portafolio de IBM, pero el solo hecho de que IBM esté usando WPF para uno de sus productos muestra que esta empresa definitivamente ve viable la tecnología. No me extrañaría que poco a poco la empiecen a usar en otros productos.&lt;/p&gt;  &lt;p&gt;Les sugiero que se bajen el &lt;em&gt;trial&lt;/em&gt; de Xceed DataGrid y jueguen con él, realmente abre los ojos.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://ecuador.latindevelopers.net/aggbug.aspx?PostID=78" width="1" height="1"&gt;</content><author><name>EdgarSanchez</name><uri>http://ecuador.latindevelopers.net/members/EdgarSanchez/default.aspx</uri></author><category term="WPF" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/WPF/default.aspx" /></entry><entry><title>Ojo con la serialización de objetos LINQ to SQL vía WCF</title><link rel="alternate" type="text/html" href="/blogs/edgarsanchez/archive/2008/10/16/ojo-con-la-serializaci-243-n-de-objetos-linq-to-sql-v-237-a-wcf.aspx" /><id>/blogs/edgarsanchez/archive/2008/10/16/ojo-con-la-serializaci-243-n-de-objetos-linq-to-sql-v-237-a-wcf.aspx</id><published>2008-10-17T01:33:00Z</published><updated>2008-10-17T01:33:00Z</updated><content type="html">&lt;p&gt;Escribo este art&amp;iacute;culo m&amp;aacute;s bien para no olvidarme de este &amp;quot;detallito&amp;quot;. Digo esto porque hoy lo olvid&amp;eacute; durante un curso y adem&amp;aacute;s de pasar una inc&amp;oacute;moda media hora gast&amp;eacute; el tiempo de mis alumnos (por suerte personas adem&amp;aacute;s de pilas, pacientes). Bueno, el escenario es este:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Mi capa de datos es un mapa de LINQ to SQL. O sea que mis objetos de negocios son clases C# generadas por el Visual Studio&lt;/li&gt;
&lt;li&gt;Tengo una serie de m&amp;eacute;todos en la capa de negocios que hace cosas como TraerCategorias(), TraerProductos(int codigoCategoria), etc.&lt;/li&gt;
&lt;li&gt;Expongo estos m&amp;eacute;todos como servicios v&amp;iacute;a Windows Communication Foundation&lt;/li&gt;
&lt;li&gt;El cliente para estos servicios WCF revienta con un misterioso error &amp;quot;La conexi&amp;oacute;n fue cerrada inesperadamente&amp;quot; (o algo as&amp;iacute;)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;iquest;Por qu&amp;eacute;? (y por qu&amp;eacute; tienen que devolver un mensaje tan... &amp;quot;&amp;uacute;til&amp;quot;). Al final, la soluci&amp;oacute;n es sencilla:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Como bien se sabe al usar WCF (en realidad cualquier facilidad que mueva objetos de un proceso a otro) se debe serializar los objetos (o sea las categor&amp;iacute;as, productos, etc.). Y ojo: &lt;b&gt;los objetos generados por LINQ to SQL por omisi&amp;oacute;n *no* son serializables&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Por suerte, es f&amp;aacute;cil cambiar ese comportamiento, basta con &lt;b&gt;cambiar la opci&amp;oacute;n SerializationMode&lt;/b&gt; de cada clase (Categoria, Producto) &lt;b&gt;a Unidirectional&lt;/b&gt; y listo&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Un gr&amp;aacute;fico vale m&amp;aacute;s que varios p&amp;aacute;rrafos de blog:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.codeexperiment.com/image.axd?picture=2008%2f10%2ffigure2.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Como empec&amp;eacute; diciendo, esto ya lo sab&amp;iacute;a, nom&amp;aacute;s que lo olvid&amp;eacute; &lt;img src="http://ecuador.latindevelopers.net/emoticons/emotion-7.gif" alt="Tongue Tied" /&gt;. Espero que despu&amp;eacute;s de escribirlo no me vuelva a olvidar (y de pasito ojal&amp;aacute; ayude a alg&amp;uacute;n colega). Una explicaci&amp;oacute;n m&amp;aacute;s detallada y completa la pueden encontrar en esta &lt;a href="http://www.codeexperiment.com/post/Returning-LINQ-to-SQL-Entities-From-WCF.aspx"&gt;entrada del blog de Scott Lanford&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://ecuador.latindevelopers.net/aggbug.aspx?PostID=77" width="1" height="1"&gt;</content><author><name>EdgarSanchez</name><uri>http://ecuador.latindevelopers.net/members/EdgarSanchez/default.aspx</uri></author><category term="LINQ" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/LINQ/default.aspx" /><category term="WCF" scheme="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/tags/WCF/default.aspx" /></entry></feed>