﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>ASP.NET según Dúnadan Raptor</title>
    <description>Experiencias con el área de desarrollo de software en ASP.NET</description>
    <link>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/BlogId/5/Default.aspx</link>
    <language>en-US</language>
    <managingEditor>nestorsanchez@nesinteractivos.com</managingEditor>
    <webMaster>nestorsanchez@nesinteractivos.com</webMaster>
    <pubDate>Fri, 21 Nov 2008 07:19:51 GMT</pubDate>
    <lastBuildDate>Fri, 21 Nov 2008 07:19:51 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>Blog RSS Generator Version 3.4.0.39853</generator>
    <item>
      <title>Primeros pasos para usar Visual Studio Team System</title>
      <description>Visual Studio team System es la solución de Microsoft para el manejo del ciclo de vida de aplicaciones. Para manejar un proyecto de creación de un directorio en asp.net para RockAndBol.com decidí usar este sistema y luego documentar mis experiencias en el Blog a modo de referencia para otros.</description>
      <link>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/144/Default.aspx</link>
      <author>nestorsanchez@nesinteractivos.com</author>
      <comments>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/144/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://dunadan.nesinteractivos.com/Default.aspx?tabid=55&amp;EntryID=144</guid>
      <pubDate>Tue, 18 Sep 2007 23:36:05 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://dunadan.nesinteractivos.com/DesktopModules/Blog/Trackback.aspx?id=144</trackback:ping>
    </item>
    <item>
      <title>La confusión y realidad de la Agilidad en desarrollo de software </title>
      <description>&lt;p&gt;Tal como los miembros de la Alianza Agil (Agile Alliance) previnieron, mucha gente piensa que las metodologías de desarrollo ágil equivalen a métodos livianos (en el sentido de light), provocando una falsa visión respecto a su seriedad o utilidad.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.adaptivesd.com/"&gt;Jim Highsmith&lt;/a&gt;, uno de los fundadores &lt;a href="http://www.adaptivesd.com/learn.html"&gt;resume en su sitio&lt;/a&gt; la esencia de la Agilidad, comprendida como aproximación al desarrollo:&lt;/p&gt;
&lt;p&gt;"&lt;em&gt;El futuro de la ecomomía de nuestra Era de la Información le pertenece a los Ágiles, aquellas organizaciones que tienen la capacidad de crear cambio, e incluso un poco de caos, para sus competidores. Si puedes innovar mejor y más rápido--puedes crear cambio para los competidores. Si puedes responder rápidamente a iniciativas competiticas, nueva tecnología, y requerimientos de clientes-- creas cambio para los competidores. Si eres más lento, menos innovador, tu respuesta es menor - entonces estás condenado a estrategias de sobrevivencia en un mar de caos impuesto por otros. Va a ser tu compañía la que imponga el ritmo de cambio, o serán los competidores quienes lo hagan? En un mundo de constante cambio, los rigorosos y tradicionales métodos de administración de proyectos y desarrollo de software son insuficientes para el éxito&lt;/em&gt;." (Jim Highsmith).&lt;/p&gt;
&lt;p&gt;Dos de los preceptos del &lt;a href="http://agilemanifesto.org/"&gt;Manifiesto para el Desarrollo Ágil de Software&lt;/a&gt; afirman que son a) las herramientas y los procesos los que deben adecuarse a la gente y sus interacciones y b)que el principal énfasis está en la producción de software funcional antes que enfocarse en documentación exhaustiva.&lt;/p&gt;
&lt;p&gt;Dentro de las tareas del día a día es fácil olvidar esta perspectiva, pero he encontrado que enfocarme en los dos primeros a toda costa me ha ayudado a cumplir con tiempos de entrega; enfrentando menos errores y logrando mayor satisfacción del cliente.&lt;/p&gt;
&lt;p&gt;De manera obvia el resultado de alinear los objetivos del proveedor con los del cliente es una colaboración permanente que minimiza, como consecuencia, la discusión de términos contraactuales. El uso de metodologías Ágiles contribuye a que esto suceda de manera natural.&lt;/p&gt;
&lt;p&gt;Finalmente la familiarización con un cambio constante, implica adaptarse al cambio y ser muy rápido para reaccionar. La programación que se basa en métodos ágiles implica ser capaces de abandonar planes para poder reaccionar a tiempo.&lt;/p&gt;
&lt;p&gt;En siguientes entradas publicaré anotaciones de mi experiencia con aplicación de la Agilidad en proyectos del mundo real.&lt;/p&gt;
&lt;p&gt;Son bienvenidas preguntas, comentarios y sugerencias, pero via el &lt;a href="http://nes.nesinteractivos.com/Forum/tabid/62/Default.aspx"&gt;foro de discusión&lt;/a&gt;.&lt;/p&gt;</description>
      <link>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/151/Default.aspx</link>
      <author>nestorsanchez@nesinteractivos.com</author>
      <comments>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/151/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://dunadan.nesinteractivos.com/Default.aspx?tabid=55&amp;EntryID=151</guid>
      <pubDate>Tue, 18 Sep 2007 22:04:45 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://dunadan.nesinteractivos.com/DesktopModules/Blog/Trackback.aspx?id=151</trackback:ping>
    </item>
    <item>
      <title>Mantener posición de Scroll para el Panel Extender en Internet Explorer con DNN</title>
      <description>&lt;p&gt;Al usar un Panel Extender el posicionamiento es correcto en Firefox pero en las versiones de Internet Explorer solamente se puede asegurar un lugar fijo incluyendo los items dentro de un panel al que se le asigna un estilo. Por ejemplo al panel:&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;&lt;code&gt;&lt;asp:Panel ID="pnlMyPanel" Height="100px" width="80px" CssClass="pnlPanelExtender" runat="Server"&gt;&lt;/code&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Y en la hoja de estilos o una etiqueta &lt;strong&gt;style&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;.pnlPanelExtender{position:relative;}&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description>
      <link>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/138/Default.aspx</link>
      <author>nestorsanchez@nesinteractivos.com</author>
      <comments>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/138/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://dunadan.nesinteractivos.com/Default.aspx?tabid=55&amp;EntryID=138</guid>
      <pubDate>Thu, 13 Sep 2007 14:13:01 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://dunadan.nesinteractivos.com/DesktopModules/Blog/Trackback.aspx?id=138</trackback:ping>
    </item>
    <item>
      <title>¿Estás microadministrando tu proyecto de software?</title>
      <description>&lt;p&gt;&lt;a href="http://www.ddj.com/dept/architect/187203587;jsessionid=TYVYFP1JXR5VMQSNDLPCKH0CJUNN2JVN"&gt;Este artículo en la revista Dr Dobb's Journal&lt;/a&gt; describe cuatro señales que indican cuando una persona está microadministrando:&lt;/p&gt;
&lt;ul&gt;&lt;span class="Normal"&gt;
    &lt;li&gt;&lt;font face="Tahoma"&gt;Ignorar momentos de reportes acordados y pedir reportes de estado más frecuentemente. &lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;&lt;font face="Tahoma"&gt;Enojarse porque las personas fallan en las entregas. &lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;&lt;font face="Tahoma"&gt;Cambiar constantemente asignaciones/tareas de trabajo. &lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;&lt;font face="Tahoma"&gt;Dictar implementaciones en vez de requerimientos.&lt;/font&gt; &lt;/li&gt;
    &lt;/span&gt;
    &lt;p&gt;Uno de los resultados es que la administración de un proyecto falla en proporcionar "Empoderamiento" al equipo. El empoderamiento es uno de los tres elementos básicos de la administración de software según &lt;a href="http://www.heavenstone.us/"&gt;&lt;font color="#0000ff"&gt;Mark I. Himelstein&lt;/font&gt;&lt;/a&gt;. Los otros dos son &lt;strong&gt;Ejecución&lt;/strong&gt; y &lt;strong&gt;Comunicación&lt;/strong&gt;.&lt;/p&gt;
    &lt;p&gt;Para Himelstein el administrador de software "tiene que dar una oportunidad a la gente para que pueda hacer su trabajo en un ambiente positivo. Los problemas deben ser enfocados como cosas a resolver. Es necesario engendrar confianza para obtener la verdad cuando se pide un [reporte de] estado. Empoderamiento también significa dejar que los empleados ayuden a desarrollar sus propios horarios. Mientras el administardor pone una meta para el lanzamiento, se deben rectificar diferencias entre las metas para el contenido del lanzamiento, las metas para los tiempos del lanzamiento y los recursos a mano"&lt;/p&gt;
    &lt;p&gt;Precisamente en uno de los podcasts de &lt;a href="http://www.themccarthyshow.com"&gt;The McCarthy Show&lt;/a&gt;, &lt;strong&gt;Jim McCarthy&lt;/strong&gt; que trabajó para Microsoft por años, habla de tres elementos que son comunes a todos los proyectos de software: &lt;strong&gt;Funcionalidad&lt;/strong&gt;, &lt;strong&gt;Tiempo&lt;/strong&gt; y &lt;strong&gt;Presupuesto&lt;/strong&gt; y que cuando uno de ellos debe ser cambiado, necesariamente debe alterarse los otros dos. Himelstein, en su artículo, aunque no habla de presupuesto, se refiere a &lt;strong&gt;Recursos&lt;/strong&gt; -es decir desarrolladores-, y &lt;strong&gt;Calidad&lt;/strong&gt;.&lt;/p&gt;
    &lt;p&gt;Ajustar el equilibrio de estos elementos, es uno de los trabajos del administrador del proyecto. En la industria del software es regla general el "se necesita para ayer", que resulta en cronogramas irreales. Una de las comunes es que el administrador termina metiéndose en todos los detalles posibles sin poder hacer su propio trabajo bien.&lt;/p&gt;
    &lt;p&gt;¿Qué piensas? ¿Cuál es tu experiencia? Házmelo saber en el &lt;a href="http://nes.nesinteractivos.com/Forum/tabid/62/Default.aspx"&gt;foro que acabo de abrir para discutir experiencias&lt;/a&gt;.&lt;/p&gt;
&lt;/ul&gt;</description>
      <link>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/136/Default.aspx</link>
      <author>nestorsanchez@nesinteractivos.com</author>
      <comments>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/136/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://dunadan.nesinteractivos.com/Default.aspx?tabid=55&amp;EntryID=136</guid>
      <pubDate>Sat, 04 Aug 2007 00:18:18 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://dunadan.nesinteractivos.com/DesktopModules/Blog/Trackback.aspx?id=136</trackback:ping>
    </item>
    <item>
      <title>Hack: remover Archivos abiertos en la última sesión de Visual Studio 2005</title>
      <description>&lt;p&gt;Una de las funcionalidades que ayuda a recuperar tiempo con Visual Studio es la de poder ver de inmediato cuando se abre un proyecto, los archivos más recientes con los que se estab trabajando. Pero si algún archivo se corrompe, es posible que Visual Studio no pueda iniciarse porque el archivo no se puede abrir. En este caso, es posible removerlo desde el registro. La clave FileMRUList tiene la lista de los archivos que estaban abiertos la última vez que se trabajó con el proyecto:&lt;/p&gt;
&lt;p&gt;HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\FileMRUList&lt;/p&gt;
&lt;p&gt;Removiendo el archivo de la lista VS vuelve a abrirse. No he experimentado si el orden de los archivos altera en algo el comportamiento así que si aplicas este truco, mejor pruebas reordenando los números de archivo.&lt;/p&gt;</description>
      <link>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/134/Default.aspx</link>
      <author>nestorsanchez@nesinteractivos.com</author>
      <comments>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/134/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://dunadan.nesinteractivos.com/Default.aspx?tabid=55&amp;EntryID=134</guid>
      <pubDate>Thu, 31 May 2007 16:50:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://dunadan.nesinteractivos.com/DesktopModules/Blog/Trackback.aspx?id=134</trackback:ping>
    </item>
    <item>
      <title>AJAX + DNN = WOW!</title>
      <description>&lt;p&gt;En la versión 4.5 de Dotnetnuke es increíblemente fácil actualizar un módulo de Dotnetnuke para que funcione con AJAX. En esta entrada se describe las dos maneras de aplicar AJAX en módulos Dotnetnuke.&lt;/p&gt;
&lt;p&gt;&lt;span class="SubSubHead"&gt;Usando Control Definitions&lt;/span&gt;&lt;br /&gt;
Suponiendo que el servidor web en el que corre Dotnetnuke tiene AJAX instalado, al habilitar un control específico de un módulo para usarlo, el módulo completo es envuelto en un UpdatePanel. Esto se logra de dos maneras:&lt;/p&gt;
&lt;p&gt;1) Al instalar el módulo agregar en el nodo Control este valor:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;font color="#0000ff" size="2"&gt;&lt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;supportspartialrendering&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&gt;&lt;/font&gt;&lt;font size="2"&gt;true&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;/&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;supportspartialrendering&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&gt;&lt;/font&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt; 2) Con el módulo instalado ingresar a Host&gt;Module Definitions&gt;, seleccionar el módulo deseado y seleccionar el control para el que se habilitará AJAX y marcar el campo &lt;strong&gt;Supports Partial Rendering&lt;/strong&gt;. &lt;/p&gt;
&lt;p align="center"&gt;&lt;img height="369" alt="" width="346" src="/Portals/17/Screens/AjaxEnableInDNN450.gif" /&gt;&lt;/p&gt;
&lt;p&gt;Cuando Partial Rendering está habilitado, se puede aprovechar la librería de AJAX de Microsoft y el Control Toolkit de Microsoft.&lt;/p&gt;
&lt;p&gt;Para probar con un ejemplo simple, en una página con un par de controles de etiqueta (Label) y un Botón. La segunda etiqueta y el botón dentro de un UpdatePanel, la primera etiqueta fuera.&lt;/p&gt;
&lt;p&gt;&lt;img height="109" alt="" width="178" src="/Portals/17/Screens/Ajax.gif" /&gt;&lt;/p&gt;
&lt;p&gt;Luego, agregar un evento click vacío Click al Button, un timer y una actualización a los datos de las etiquetas.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;System.Threading.Thread.Sleep(3000)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;Label1.Text = DateTime.Now()&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;Label2.Text = DateTime.Now()&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/code&gt; &lt;/p&gt;
&lt;p&gt;Al hacer click, la hora solo se actualizará la etiqueta que está dentro del panel y la otra permancerá sin cambios.&lt;/p&gt;
&lt;p&gt;&lt;img height="125" alt="" width="234" src="/Portals/17/Screens/Ajax2.gif" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="SubSubHead"&gt;El desarrollador al control&lt;/span&gt;&lt;br /&gt;
Hay que recordar que solo puede existir un objeto &lt;font face="Courier New"&gt;ScriptManager&lt;/font&gt; en cada página, como Dotnetnuke es en realidad una página, lógicamente la responsabilidad de agregarlo dinámicamente debe recaer en el framework y no en los módulos. De eso precisamente se encarga la clase &lt;strong&gt;Dotnetnuke.Framework.Ajax&lt;/strong&gt;. La clase presenta ocho métodos:&lt;/p&gt;
&lt;p align="center"&gt;&lt;img height="239" alt="" width="259" src="/Portals/17/Screens/AjaxClass.gif" /&gt;&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;font face="Courier New"&gt;AddScriptManager&lt;/font&gt;: usada internamente por el framework para agregar un control ScriptManager a la página. &lt;/li&gt;
    &lt;li&gt;&lt;font face="Courier New"&gt;ContentTemplateContainerControl&lt;/font&gt;: Devuelve una referencia al control &lt;font face="Courier New"&gt;ContentTemplateContainer&lt;/font&gt; dentro de un UpdatePanel &lt;/li&gt;
    &lt;li&gt;&lt;font face="Courier New"&gt;CreateUpdatePanelControl&lt;/font&gt;: crea una instancia de un control UpdatePanel de manera dinámica en la página &lt;/li&gt;
    &lt;li&gt;&lt;font face="Courier New"&gt;IsInstalled&lt;/font&gt;: Retorna un valor de tipo boolean para determina si AJAX se ha instalado en el servidor. &lt;/li&gt;
    &lt;li&gt;&lt;font face="Courier New"&gt;RegisterScriptManager&lt;/font&gt;: se usa para instruir al framework que AJAX es requerido para la página. &lt;/li&gt;
    &lt;li&gt;&lt;font face="Courier New"&gt;RemoveScriptManager&lt;/font&gt;: Remueve el control &lt;font face="Courier New"&gt;ScriptManager&lt;/font&gt; durante el evento de Page Render si el método &lt;font face="Courier New"&gt;RegisterScriptManager&lt;/font&gt; no fue llamado. &lt;/li&gt;
    &lt;li&gt;&lt;font face="Courier New"&gt;ScriptManagerControl&lt;/font&gt;: devuelve una referencia al control &lt;font face="Courier New"&gt;ScriptManager&lt;/font&gt; de la página. &lt;/li&gt;
    &lt;li&gt;&lt;font face="Courier New"&gt;SetScriptManagerProperty&lt;/font&gt;: asigna valores a las propiedades del control &lt;font face="Courier New"&gt;ScriptManager&lt;/font&gt; usando reflection. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Usando &lt;font face="Courier New"&gt;IsInstalled()&lt;/font&gt; es posible determinar si AJAX se encuentra instalado en el servidor, al combinarlo con &lt;font face="Courier New"&gt;RegisterScriptManager&lt;/font&gt; se podrá instruir a Dotnetnuke que agregué el control &lt;font face="Courier New"&gt;ScriptManager&lt;/font&gt; para que el control del módulo puede acceder a Ajax. De esta manera el resultado del ejemplo anterior es exactamente el mismo sin necesidad de habilitar partial rendering en el control.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff" size="2"&gt;If&lt;/font&gt;&lt;font size="2"&gt; DotNetNuke.Framework.AJAX.IsInstalled() &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Then&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font face="Courier New" color="#000000"&gt;DotNetNuke.Framework.AJAX.RegisterScriptManager()&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font face="Courier New" color="#008000" size="2"&gt;'Do some stuff&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff" size="2"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;If&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;/code&gt; &lt;/p&gt;</description>
      <link>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/62/Default.aspx</link>
      <author>nestorsanchez@nesinteractivos.com</author>
      <comments>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/62/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://dunadan.nesinteractivos.com/Default.aspx?tabid=55&amp;EntryID=62</guid>
      <pubDate>Sat, 14 Apr 2007 08:07:00 GMT</pubDate>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://dunadan.nesinteractivos.com/DesktopModules/Blog/Trackback.aspx?id=62</trackback:ping>
    </item>
    <item>
      <title>Transformando Datagrids en Gridviews: Parte 2 - Manejo de Nulls</title>
      <description>&lt;p&gt;No tomar en cuenta los valores nulos en una aplicación puede causar estragos. En un datagrid, al obtener información que proviene directamente de una base de datos, hay que manejarlos vía código &lt;strong&gt;&lt;u&gt;antes&lt;/u&gt; &lt;/strong&gt;de que sean enlazados al control. Obviamente ayuda tener un par de clases utilitarias que manejen estos casos, pero igualmente es pesado hacerlo cada vez.&lt;/p&gt;
&lt;p&gt;Con la introducción del control Gridview, es posible configurar declarativamente el comportamiento del control en caso de que reciba un dato cuyo valor es DBNullEsto se logra gracias a la propiedad &lt;font face="Courier New"&gt;NullDisplayText&lt;/font&gt; que los campos BoundField e ImageField pueden usar. Adicionalmente ImageField puede usar &lt;font face="Courier New"&gt;NullImageURL&lt;/font&gt;.&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;NullDisplayText&lt;/font&gt;, hace que el campo muestre un texto específico y &lt;font face="Courier New"&gt;NullImageURL&lt;/font&gt; una imagen.&lt;/p&gt;</description>
      <link>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/55/Default.aspx</link>
      <author>nestorsanchez@nesinteractivos.com</author>
      <comments>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/55/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://dunadan.nesinteractivos.com/Default.aspx?tabid=55&amp;EntryID=55</guid>
      <pubDate>Mon, 26 Feb 2007 18:19:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://dunadan.nesinteractivos.com/DesktopModules/Blog/Trackback.aspx?id=55</trackback:ping>
    </item>
    <item>
      <title>Scrum y Team System. Parte 3: Roles - Propietario del Producto</title>
      <description>&lt;p&gt;En Scrum, el &lt;strong&gt;Propietario del Producto&lt;/strong&gt; (PdP), es responsable de controlar que el proyecto retorne más valor que los recursos que se invierten en el. En otras palabras, el retorno sobre la inversión (ROI) del proyecto es su responsabilidad. En la práctica, el PdP resulta ser la persona que encarga el proyecto, ya sa comercial o internamente y luego recibe los entregables.&lt;/p&gt;
&lt;p&gt;El PdP deberá tener un entendimiento a alto nivel y priorizar los requerimientos funcionales, no-funcionales y creativos del proyecto. Si controla adecuadamente que la funcionalidad  sea priorizada, desarrollada e implementada para cumplir con los requerimientos de la organización, el proyecto debe obtener un beneficio directo en términos de ROI. Para lograrlo, el PdP tiene las siguientes responsabilidades relacionadas con el proyecto:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Define las características del producto, la fecha de lanzamiento y contenidos, &lt;/li&gt;
    &lt;li&gt;Reune información de los usuarios, involucrados y otros interesados para obtener una lista de requerimientos priorizados para el desarrollo del producto &lt;/li&gt;
    &lt;li&gt;Retorno sobre la Inversión (ROI), &lt;/li&gt;
    &lt;li&gt;Priorizar las característica de acuerdo al valor de mercado, &lt;/li&gt;
    &lt;li&gt;Ajustar, si es necesario, las características y prioridad cada 30 días, &lt;/li&gt;
    &lt;li&gt;Aceptar/Rechazar resultados. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El PdP es responsable de la ceremonia de la Planificación de Sprint.&lt;/p&gt;
&lt;p&gt;Anterior: &lt;a id="dnn_ctr1391_MainView_ViewBlog_lstBlogView__ctl1_lnkEntry" href="http://nes.nesinteractivos.com/Weblog/tabid/537/EntryID/44/Default.aspx"&gt;Parte 2: Preparación de un Proyecto con Scrum&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Siguiente: Parte 4: Roles - Scrum Master&lt;/p&gt;</description>
      <link>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/45/Default.aspx</link>
      <author>nestorsanchez@nesinteractivos.com</author>
      <comments>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/45/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://dunadan.nesinteractivos.com/Default.aspx?tabid=55&amp;EntryID=45</guid>
      <pubDate>Mon, 19 Feb 2007 16:30:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://dunadan.nesinteractivos.com/DesktopModules/Blog/Trackback.aspx?id=45</trackback:ping>
    </item>
    <item>
      <title>Transformando Datagrids en Gridviews: Parte 1</title>
      <description>La diferente sintaxis de los nuevos controles compuestos (composite controls) de .net 2.0 suele provocar dolores de cabeza a quienes están acostumbrados a los de .net 1.X. Esta serie mostrará diferencias entre la forma de escribir algunas rutinas en un datagrid y el gridview. En esta primera entrada la diferencia entre distintos eventos Command y RowCommand.</description>
      <link>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/48/Default.aspx</link>
      <author>nestorsanchez@nesinteractivos.com</author>
      <comments>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/48/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://dunadan.nesinteractivos.com/Default.aspx?tabid=55&amp;EntryID=48</guid>
      <pubDate>Mon, 05 Feb 2007 21:05:00 GMT</pubDate>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://dunadan.nesinteractivos.com/DesktopModules/Blog/Trackback.aspx?id=48</trackback:ping>
    </item>
    <item>
      <title>Scrum y Team System. Parte 2: Preparación de un Proyecto con Scrum</title>
      <description>&lt;p&gt;Todo proyecto que usa Scrum empieza con la Preparación. El objetivo de la preparación es colocarse en un mínimo tiempo en una posición en la que el ciclo iterativo Scrum pueda empezar. Normalmente esta etapa es conocida como &lt;strong&gt;Sprint 0&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Los elementos de la Preparación:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Todo proyecto requiere un &lt;strong&gt;Caso de negocios y Recursos&lt;/strong&gt;. Esto es independiente del método que se elija para ser realizado. Es importante entender el valor que un proyecto va a proveer a la organización, pero sabiendo que las estimaciones de esta etapa no son exactas por la naturaleza de alto nivel. &lt;/li&gt;
    &lt;li&gt;Expresar la &lt;strong&gt;Visión del Proyecto&lt;/strong&gt; ayuda a que el equipo comprenda la esencia de lo que el proyecto o producto intentan conseguir. La visión debe ser tan corta como sea posible pero debe comunicar la sustancia y caracter del emprendimiento. &lt;/li&gt;
    &lt;li&gt;El primer Sprint provienen de la lista priorizada de la Lista de &lt;strong&gt;Tareas de Producto&lt;/strong&gt;. Esta lista puede ser elaborada usando un documento de requerimientos, del Caso de Negocios o creada por el Propietario de Producto. &lt;/li&gt;
    &lt;li&gt;No siempre todos los items de la Lista de Tareas de Producto pueden ser implementadas en la primera versión entregada. Y aunque fuese así, se pierde el beneficio de retroalimentación temprana de funcionalidad. Por ello en la Preparación se completa un &lt;strong&gt;Plan Inicial de Lanzamientos&lt;/strong&gt;, que lista normalmente características prioritarias para ser incluidas en cada versión. Esta lista por supuesto esta sujeta a cambios. (Nota: cuando se implementa Scrum en medio de un proyecto, he encontrado muy útil el uso de una herramienta de control de cambios llamada &lt;a href="http://www.countersoft.com"&gt;Gemini&lt;/a&gt;). &lt;/li&gt;
    &lt;li&gt;La &lt;strong&gt;Identificación de Involucrados&lt;/strong&gt; potenciales debe realizarse lo antes posible. Es ideal que todo el que vaya a ser impactado por el proyecto debería recibir comunicación sobre él. En general se elabora un plan de comunicaciones sobre como se planea comunicar detalles del proyecto, incluyendo tiempos, contenido, tipo de comunicación. Una vez terminado el plan, se habla con los involucrados. &lt;/li&gt;
    &lt;li&gt;Cuando se ha concluido con la identificación de roles y conformado el equipo, este debe ser convocado a una &lt;strong&gt;Reunión de Equipo&lt;/strong&gt;. En ella se cubre:
    &lt;ul&gt;
        &lt;li&gt;Alcance del proyecto &lt;/li&gt;
        &lt;li&gt;Revisión de alto nivel de la Lista de Tareas. &lt;/li&gt;
        &lt;li&gt;Discusiones técnicas &lt;/li&gt;
        &lt;li&gt;Acuerdo inicial sobre la forma de trabajo. Ej, tiempos Scrum aplicables. &lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;Algunas tareas de &lt;strong&gt;Logística&lt;/strong&gt; al iniciar el proyecto incluyen:
    &lt;ul&gt;
        &lt;li&gt;Cuarto de reuniones para el equipo &lt;/li&gt;
        &lt;li&gt;Reuniones entre Involucrados y Equipo de desarrollo &lt;/li&gt;
        &lt;li&gt;Establecer, planificar y agendar reuniones con usuarios. &lt;/li&gt;
        &lt;li&gt;Verificar disponibilidad de recursos (PC's, conexiones, permisos, software, etc). &lt;/li&gt;
        &lt;li&gt;Comunicaciones. Si los equipos son dispersos, coordinar equipos de de colaboración como teléfonos, video conferencias y otros. &lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Al concluir la fase de Preparación el equipo debería estar listo para iniciar el Sprint 1. En la siguiente parte daremos un vistazo a los Roles que se usa en la metodología Scrum.&lt;/p&gt;</description>
      <link>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/44/Default.aspx</link>
      <author>nestorsanchez@nesinteractivos.com</author>
      <comments>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/44/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://dunadan.nesinteractivos.com/Default.aspx?tabid=55&amp;EntryID=44</guid>
      <pubDate>Sun, 04 Feb 2007 23:00:00 GMT</pubDate>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://dunadan.nesinteractivos.com/DesktopModules/Blog/Trackback.aspx?id=44</trackback:ping>
    </item>
    <item>
      <title>Scrum y Team System. Parte 1: Introducción</title>
      <description>&lt;p&gt;Esta entrada inicia la documentación del proceso de implementación de Team System con uno de mis clientes.&lt;/p&gt;
&lt;p&gt;Para empezar un par de definiciones:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.scrumalliance.org/index.php/scrum_alliance/for_everyone/what_is_scrum"&gt;Scrum&lt;/a&gt;&lt;/strong&gt; es un proceso liviano de desarrollo ágil (Agile Development en inglés). Se usa para la administración y control del desarrollo de productos y software con prácticas iterativas e incrementales. En pocas palabras genera beneficios de manera rápida con implementación sencilla. Usa tres roles, tres ceremonias y tres artefactos:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;u&gt;&lt;strong&gt;Roles&lt;/strong&gt;&lt;/u&gt;: Propietario de Producto, Maestro Scrum, Equipo &lt;/li&gt;
    &lt;li&gt;&lt;u&gt;&lt;strong&gt;Ceremonias&lt;/strong&gt;&lt;/u&gt;: Planificación de Sprint, Revisión de Sprint, y Reunión Diaria Scrum; &lt;/li&gt;
    &lt;li&gt;&lt;u&gt;&lt;strong&gt;Artefactos&lt;/strong&gt;&lt;/u&gt;: Tareas de Producto, Tareas de Sprint, Cartel de Ejecución. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/default.aspx"&gt;Visual Studio Team System&lt;/a&gt;&lt;/strong&gt; es una solución de Microsoft para administrar el ciclo de vida de una aplicación en la empresa. Comprende herramientas para administradores de proyectos, arquitectos, desarrolladores, equipo de pruebas y profesionales de base de datos.&lt;/p&gt;
&lt;p&gt;En toda metodología es crítica la recopilación de datos y repositorio de información administrativa del proyecto. Gracias al uso de VSTS, la aplicación de Scrum se ve facilitada. En esta serie del Blog, iré enlazando los distintos elementos de manera práctica y explícita.&lt;/p&gt;</description>
      <link>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/43/Default.aspx</link>
      <author>nestorsanchez@nesinteractivos.com</author>
      <comments>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/43/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://dunadan.nesinteractivos.com/Default.aspx?tabid=55&amp;EntryID=43</guid>
      <pubDate>Thu, 01 Feb 2007 20:43:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://dunadan.nesinteractivos.com/DesktopModules/Blog/Trackback.aspx?id=43</trackback:ping>
    </item>
    <item>
      <title>Escribir un Blog Técnico</title>
      <description>Después de algunos intentos manteniendo un sitio para la comunidad de desarrolladores, vi que no hay interés ni siquiera de algunos vendors. Por ello y una manera más tradicional, he decidio empezar a escribir en este Blog tanto en inglés como en español mis experiencias, consejos y trucos.</description>
      <link>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/41/Default.aspx</link>
      <author>nestorsanchez@nesinteractivos.com</author>
      <comments>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/41/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://dunadan.nesinteractivos.com/Default.aspx?tabid=55&amp;EntryID=41</guid>
      <pubDate>Thu, 21 Dec 2006 19:19:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://dunadan.nesinteractivos.com/DesktopModules/Blog/Trackback.aspx?id=41</trackback:ping>
    </item>
    <item>
      <title>Lo que se siente ser una estrella</title>
      <description>&lt;p&gt;Acabo de enterarme que en el sitio de &lt;a href="http://www.asp.net"&gt;www.asp.net&lt;/a&gt;, donde soy moderador, me concedieron el rango de estrella (Star) por las contribuciones al sitio. Espero llegar pronto a AllStar. &lt;a href="http://www.asp.net/resources/community-recognition/hall-of-fame.aspx?tabid=41"&gt;Estoy en la posición 25&lt;/a&gt; entre más de 88.000 miembros de la comunidad mundial de desarrolladores.&lt;/p&gt;
&lt;p&gt;Lo bueno es que no tengo que preocuparme por paparazzi ni salir de juerga encubierto.&lt;img alt="" src="/Providers/HtmlEditorProviders/FckHtmlEditorProvider/FCKeditor/editor/images/smiley/msn/regular_smile.gif" /&gt;  La figura muestra mi posición y puedes ver el listado de los 25 primeros haciendo click en ella.&lt;/p&gt;
&lt;p&gt;&lt;a target="_self" href="http://nes.nesinteractivos.com/Weblog/EstrelladeAspnet/tabid/933/Default.aspx"&gt;&lt;img height="148" alt="NES Star Asp.net" width="400" src="/Portals/17/pix/StarASPNETBLog.gif" /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/40/Default.aspx</link>
      <author>nestorsanchez@nesinteractivos.com</author>
      <comments>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/40/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://dunadan.nesinteractivos.com/Default.aspx?tabid=55&amp;EntryID=40</guid>
      <pubDate>Tue, 19 Dec 2006 23:51:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://dunadan.nesinteractivos.com/DesktopModules/Blog/Trackback.aspx?id=40</trackback:ping>
    </item>
    <item>
      <title>Los foros ASPNET y las culturas</title>
      <description>&lt;P&gt;Formo parte de un selecto grupo de desarrolladores que han sido invitados a moderar el &lt;A href="http://forums.asp.net"&gt;Foro Oficial de Microsoft para ASP.NET&lt;/A&gt;. Desde el 2003 que participo como &lt;A href="http://forums.asp.net/user/Profile.aspx?UserID=308072"&gt;hooligannes&lt;/A&gt; y estoy entre los primeros 25 participantes. Es algo especial y me siento orgulloso de estar dentro de ese grupo y más, tomando en cuenta que soy el único de mi país y el único de latinoamérica, incluso de iberoamérica.&lt;/P&gt;
&lt;P&gt;Diariamente dedico algunos minutos a revisar, aprobar y responder mensajes de usuarios de todas partes del mundo. Es una comunidad en la que se distingue los caracteres generales según los orígenes. Por ejemplo, los nórdicos y germanos tienden a ser bruscos, mientras los indios (hindúes) son sumamente insistentes y demandan respuestas al mismo tiempo que agradecen casi besando los pies. Los asiáticos tienden a ser muy educados. Pocos hispanolatinoamericanos participan y la mayoría se disculpa de antemano por su inglés. Notablemente no he reconocido a casi nadie de Africa.&lt;/P&gt;
&lt;P&gt;Es una experiencia enriquecedora porque es verdaderamente como dicen. Una de las mejores formas de aprender es enseñando y me agrada poder ayudar y conocer nuevas cosas. He hecho amigos de todo el mundo: Australia, España, India, Estados Unidos, Irlanda, Italia, Alemania, Argentina, Paraguay, Inglaterra.&lt;/P&gt;
&lt;P&gt;Es curioso que no haya una comunidad latinoamericana oficial de ese nivel. Mis recursos no dan para una iniciativa de ese calibre, pero le dedico unos minutos semanales a la comunidad boliviana manteniendo y actualizando el de &lt;A href="http://boliviadev.nesinteractivos.com"&gt;boliviadev&lt;/A&gt;, un pequeño sitio para desarrolladores bolivianos. Espero que vaya creciendo de a poco. A la fecha hay 60 registrados y las visitas no han pasado de un promedio mensual de 600 desde enero de este año.&lt;/P&gt;</description>
      <link>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/20/Default.aspx</link>
      <author>nestorsanchez@nesinteractivos.com</author>
      <comments>http://dunadan.nesinteractivos.com/Español/BitácoradelDúnadan/tabid/55/EntryID/20/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://dunadan.nesinteractivos.com/Default.aspx?tabid=55&amp;EntryID=20</guid>
      <pubDate>Sat, 10 Jun 2006 15:05:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://dunadan.nesinteractivos.com/DesktopModules/Blog/Trackback.aspx?id=20</trackback:ping>
    </item>
  </channel>
</rss>