<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-23594298</id><updated>2012-01-14T12:47:28.358-03:00</updated><category term='Personal'/><category term='Enterprise Library Application Block'/><category term='Virtualización'/><category term='Visual Studio 2003'/><category term='Notebooks'/><category term='Código fuente'/><category term='ASP.NET AJAX'/><category term='Visual Studio 2008'/><category term='Windows Vista'/><category term='Project Management'/><category term='Internet'/><category term='SQL'/><category term='Visual Studio 2005'/><category term='Servicios'/><category term='COM+'/><category term='Liderazgo'/><category term='Internet Information Service 7'/><category term='ASP'/><category term='Utilidades'/><category term='Iconos'/><category term='.NET'/><category term='ASP.NET'/><category term='Desing Patterns'/><title type='text'>Ezequiel M. Buttiero ··· http://www.ezequielbuttiero.com.ar</title><subtitle type='html'>La auténtica diferencia entre el hardware y el software es que el hardware se vuelve mas rápido, pequeño y barato con el tiempo, mientras que el software se hace mas grande, lento y caro.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ezequiel M. Buttiero</name><uri>http://www.blogger.com/profile/02790040231941921885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://1.bp.blogspot.com/__25T5JCWCIo/SkBPwsqwHhI/AAAAAAAAAAM/64OzxG-nzX8/S220/YO_2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>39</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-23594298.post-5610689772296760431</id><published>2008-06-05T23:35:00.005-03:00</published><updated>2008-06-06T00:11:24.640-03:00</updated><title type='text'>El buscador ecológico</title><content type='html'>&lt;a href="http://www.ecoogler.com" target="blank"&gt;Ecoogler&lt;/a&gt; es la nueva iniciativa que utiliza tecnología de Yahoo para ayudar a la fundación &lt;a href="http://www.aquaverde.com/" target="blank"&gt;Aquaverde&lt;/a&gt; en reunir fondos para la preservación de los recursos naturales del Amazonas.&lt;br /&gt;&lt;br /&gt;Para colaborar, simplemente tenemos que realizar nuestras búsquedas en &lt;a href="http://www.ecoogler.com" target="blank"&gt;http://www.ecoogler.com&lt;/a&gt;. Por cada 10.000 búsquedas, Google dona el dinero necesario para plantar un árbol en el Amazonas.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;a href='http://www.ecoogler.com' target='_top'&gt;&lt;img src='http://www.ecoogler.com/images/oriz1_es.gif' alt='Apoya Ecoogler.com el buscador ecológico'  border='0'&gt;&lt;/a&gt;&lt;br /&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-5610689772296760431?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/5610689772296760431/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=5610689772296760431' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/5610689772296760431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/5610689772296760431'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2008/06/el-buscador-ecolgico.html' title='El buscador ecológico'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-6506761220630143120</id><published>2008-06-03T23:07:00.003-03:00</published><updated>2008-06-03T23:18:55.609-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><title type='text'>Problema instalando Visual Studio 2008 en Windows Vista</title><content type='html'>Por un “pequeño” detalle la instalación de Visual Studio 2008 en un equipo con Windows Vista se torno un poco complicada, después de buscar por un rato por la Web me tope con este &lt;a target="blank" href="http://netcodigo.webinfo.es/2008/02/11/problema-al-instalar-visual-studio-2008/"&gt;post&lt;/a&gt; con la solución.&lt;br /&gt;&lt;br /&gt;En resumen: &lt;br /&gt;&lt;br /&gt;Un componente de Office 2007 es el problema… y su desinstalación con el siguiente comando la solución: &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;msiexec /x {30120000-0044-0C0A-0000-0000000FF1CE}&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-6506761220630143120?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/6506761220630143120/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=6506761220630143120' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/6506761220630143120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/6506761220630143120'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2008/06/problema-instalando-visual-studio-2008.html' title='Problema instalando Visual Studio 2008 en Windows Vista'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-5688908480700731412</id><published>2008-03-29T02:59:00.011-03:00</published><updated>2008-03-29T03:28:59.051-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Cargando Assemblys en un nuevo AppDomain</title><content type='html'>Me surgió la necesidad de poder cargar un Assembly en un AppDomain que no sea sobre el que se está ejecutando mi aplicación ya que al cargar en forma masiva una gran cantidad el consumo de memoria crecía “hasta el infinito y más allá”. El objetivo de cargar este Assembly en un AppDomain distinto al que corre mi aplicación es aprovechar la posibilidad de poder descargar el AppDomain ni bien se termina la ejecución del código del assembly liberando los recursos casi en forma instantánea.&lt;br /&gt;&lt;br /&gt;De mas esta decir que no se disponen de estos assembly físicamente sino que llegan a mi componente como un array de bytes…&lt;br /&gt;&lt;br /&gt;Este assembly se genera a partir de un código similar a este:&lt;br /&gt;&lt;pre style="font-size:8pt"&gt;&lt;br /&gt;namespace OtherDomain&lt;br /&gt;{&lt;br /&gt;    public class Messenger&lt;br /&gt;    {&lt;br /&gt;        public string GetMessage(string Name)&lt;br /&gt;        {&lt;br /&gt;            return string.Format("Hello {0} from {1}!)", &lt;br /&gt;                Name, &lt;br /&gt;                AppDomain.CurrentDomain.FriendlyName);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Primer Intento&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-size:8pt"&gt;&lt;br /&gt;AppDomain appDomain = AppDomain.CreateDomain("MyDomain");&lt;br /&gt;&lt;br /&gt;Assembly assembly = appDomain.Load(rawAssembly);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Resulta que al ejecutar &lt;i&gt;appDomain.Load(rawAssembly)&lt;/i&gt;se dispara una excepción indicando que el archivo del assembly no pudo ser encontrado… Estimo que es por la regla del CLR que no permite que los objetos de un AppDomain sean accedidos en forma directa desde otro AppDomain.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Segundo Intento&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;La solución llego de la mano del método “DoCallBack” de la clase AppDomain. Este método permite la comunicación entre dominios de aplicación diferentes a través de un delegado de tipo “CrossAppDomainDelegate”. La firma del método que se debe utilizar como delegado es muy sencilla: “void NombreMetodo()”.&lt;br /&gt;&lt;br /&gt;En primer lugar se crea el AppDomain:&lt;br /&gt;&lt;pre style="font-size:8pt"&gt;&lt;br /&gt;NewAppDomain = AppDomain.CreateDomain("NewDomain");&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;A continuación se establecen los valores que deben enviarse desde el contexto actual de ejecución al nuevo contexto:&lt;br /&gt;&lt;pre style="font-size:8pt"&gt;&lt;br /&gt;NewAppDomain.SetData("RawAssembly", rawAssembly);&lt;br /&gt;NewAppDomain.SetData("YourName", YourName);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Por último se llama al método DoCallBack:&lt;br /&gt;&lt;pre style="font-size:8pt"&gt;&lt;br /&gt;NewAppDomain.DoCallBack(new CrossAppDomainDelegate(Loader));&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;El método “Loader”, en términos generales recupera los datos establecidos anteriormente, carga el assembly, crea una instancia la clase “Messenger” y ejecuta el método “GetMessage”:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size:8pt"&gt;&lt;br /&gt;private static void Loader()&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;    byte[] rawAssembly = null;&lt;br /&gt;    Assembly assembly = null;&lt;br /&gt;    object Messenger = null;&lt;br /&gt;    Type type = null;&lt;br /&gt;    MethodInfo method = null;&lt;br /&gt;    object result = null;&lt;br /&gt;    string YourName = null;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    try&lt;br /&gt;    {&lt;br /&gt;        //Get Data&lt;br /&gt;        rawAssembly = (byte[])AppDomain.CurrentDomain.GetData("RawAssembly");&lt;br /&gt;        YourName = (string)AppDomain.CurrentDomain.GetData("YourName");&lt;br /&gt;&lt;br /&gt;        //Load Assembly&lt;br /&gt;        assembly = AppDomain.CurrentDomain.Load(rawAssembly);&lt;br /&gt;&lt;br /&gt;        Messenger = assembly.CreateInstance(”OtherDomain.Messenger”);&lt;br /&gt;&lt;br /&gt;        type = assembly.GetType(”OtherDomain.Messenger”);&lt;br /&gt;&lt;br /&gt;        method = type.GetMethod(”GetMessage”);&lt;br /&gt;&lt;br /&gt;        result = method.Invoke(Messenger, new string[]{ YourName });&lt;br /&gt;&lt;br /&gt;    AppDomain.CurrentDomain.SetData("Result", result);&lt;br /&gt;    }&lt;br /&gt;    finally&lt;br /&gt;    {&lt;br /&gt;        rawAssembly = null;&lt;br /&gt;        assembly = null;&lt;br /&gt;        Messenger = null;&lt;br /&gt;        type = null;&lt;br /&gt;        method = null;&lt;br /&gt;        result = null;&lt;br /&gt;        YourName = null;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Una vez ejecutado el método “Loader”, se obtienen los resultados:&lt;br /&gt;&lt;pre style="font-size:8pt"&gt;&lt;br /&gt;if (NewAppDomain.GetData("Result") != null &amp;&amp;&lt;br /&gt;NewAppDomain.GetData("Result").GetType() == typeof(string))&lt;br /&gt;{&lt;br /&gt;    return (string)NewAppDomain.GetData("Result");&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;    return string.Empty;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;El código fuente completo se puede descargar desde &lt;a target="_blank" href="http://ebuttiero.googlepages.com/AppDomainTest.zip"&gt;aquí&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-5688908480700731412?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/5688908480700731412/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=5688908480700731412' title='5 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/5688908480700731412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/5688908480700731412'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2008/03/cargando-assemblys-en-un-nuevo.html' title='Cargando Assemblys en un nuevo AppDomain'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-2064562461579024708</id><published>2008-03-27T13:30:00.002-03:00</published><updated>2008-03-27T13:33:30.805-03:00</updated><title type='text'>Cualquier semejanza es pura coincidencia... (parte 2)</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_L44cgdBrrsI/R-vMR3iAXUI/AAAAAAAAACk/8W_TDb5ZSEs/s1600-h/Realidad.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5182460403556310338" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_L44cgdBrrsI/R-vMR3iAXUI/AAAAAAAAACk/8W_TDb5ZSEs/s400/Realidad.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_L44cgdBrrsI/R-vL2niAXRI/AAAAAAAAACM/ZorWvZVvB74/s1600-h/Realidad.png"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-2064562461579024708?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/2064562461579024708/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=2064562461579024708' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/2064562461579024708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/2064562461579024708'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2008/03/cualquier-semejanza-es-pura_27.html' title='Cualquier semejanza es pura coincidencia... (parte 2)'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_L44cgdBrrsI/R-vMR3iAXUI/AAAAAAAAACk/8W_TDb5ZSEs/s72-c/Realidad.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-5007551947132674281</id><published>2008-03-25T22:15:00.001-03:00</published><updated>2008-03-25T22:25:26.100-03:00</updated><title type='text'>Este blog apoya al Campo!</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_L44cgdBrrsI/R-mj9niAXPI/AAAAAAAAAB8/SH5iMSw1OGE/s1600-h/Vaquita.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5181853125245426930" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_L44cgdBrrsI/R-mj9niAXPI/AAAAAAAAAB8/SH5iMSw1OGE/s400/Vaquita.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Algunas notas para leer:&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://www2.lavoz.com.ar/08/03/19/secciones/opinion/nota.asp?nota_id=172773"&gt;Prohibido ser "rico" en Laboulaye&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://www2.lavoz.com.ar/08/03/09/secciones/economia/nota.asp?nota_id=169542"&gt;Río Seco y Tulumba no son Puerto Madero&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-5007551947132674281?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/5007551947132674281/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=5007551947132674281' title='7 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/5007551947132674281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/5007551947132674281'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2008/03/este-blog-apoya-al-campo.html' title='Este blog apoya al Campo!'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_L44cgdBrrsI/R-mj9niAXPI/AAAAAAAAAB8/SH5iMSw1OGE/s72-c/Vaquita.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-1328760560676628917</id><published>2008-03-14T21:37:00.006-02:00</published><updated>2008-03-14T21:59:03.338-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Notebooks'/><category scheme='http://www.blogger.com/atom/ns#' term='Servicios'/><title type='text'>Computrace LoJack for Laptops</title><content type='html'>LoJack, la empresa líder en recupero vehicular ha presentando un nuevo software en Argentina destinado a ubicar notebooks y desktops robadas: “&lt;strong&gt;&lt;em&gt;Computrace LoJack for Laptops&lt;/em&gt;&lt;/strong&gt;”. Este software, además de divulgar la ubicación del equipo cuando este se conecte a internet, permite borrar aquella información sensible si el usuario así lo desea.&lt;br /&gt;&lt;br /&gt;El costo del servicio rondará en los $250 anuales.&lt;br /&gt;&lt;br /&gt;Más información en &lt;a href="http://www.lojack.com.ar/lojack/site/lojack/LoJack%20Laptops/index.html" target="_blank"&gt;LoJack&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://4.bp.blogspot.com/_L44cgdBrrsI/R9sPw5C3FiI/AAAAAAAAAB0/tfllRoJJFMs/s1600-h/logo.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5177749529213474338" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_L44cgdBrrsI/R9sPw5C3FiI/AAAAAAAAAB0/tfllRoJJFMs/s320/logo.png" border="0" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-1328760560676628917?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/1328760560676628917/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=1328760560676628917' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/1328760560676628917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/1328760560676628917'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2008/03/computrace-lojack-for-laptops.html' title='Computrace LoJack for Laptops'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_L44cgdBrrsI/R9sPw5C3FiI/AAAAAAAAAB0/tfllRoJJFMs/s72-c/logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-7336348149065501528</id><published>2008-03-13T19:27:00.005-02:00</published><updated>2008-03-13T19:32:39.576-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>Cualquier semejanza es pura coincidencia...</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_L44cgdBrrsI/R9mdBJC3FhI/AAAAAAAAABs/vbUCLAf4F7A/s1600-h/Salario.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5177341889572443666" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 396px; CURSOR: hand; HEIGHT: 334px; TEXT-ALIGN: center" height="383" alt="" src="http://3.bp.blogspot.com/_L44cgdBrrsI/R9mdBJC3FhI/AAAAAAAAABs/vbUCLAf4F7A/s400/Salario.jpg" width="464" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_L44cgdBrrsI/R9mcyZC3FgI/AAAAAAAAABk/69BLJ-dxlq8/s1600-h/Salario.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-7336348149065501528?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/7336348149065501528/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=7336348149065501528' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/7336348149065501528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/7336348149065501528'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2008/03/cualquier-semejanza-es-pura.html' title='Cualquier semejanza es pura coincidencia...'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_L44cgdBrrsI/R9mdBJC3FhI/AAAAAAAAABs/vbUCLAf4F7A/s72-c/Salario.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-4339518105771933902</id><published>2008-03-01T15:53:00.007-02:00</published><updated>2008-03-01T16:31:44.229-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Information Service 7'/><title type='text'>Depurar aplicaciones ASP.NET 2.0 sobre IIS 7 con VS2005 (Windows Vista)</title><content type='html'>Después de unos cuantos intentos fallidos al tratar de crear un Web Site sobre IIS 7 utilizando Visual Studio 2005 (corriendo sobre Vista Home Premium) me puse a investigar un poco en la Web y me encontré con que mi entorno no estaba totalmente preparado para esto.&lt;br /&gt;&lt;br /&gt;Me estaban faltando estas actualizaciones:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/?kbid=928957" target="_blank"&gt;Visual Studio 2005 Service Pack 1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/Default.aspx?kbid=929470" target="_blank"&gt;Actualización de Visual Studio 2005 Service Pack 1 para Vista&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Después de instalar estas actualizaciones ya me fue posible crear el sitio... pero no todo terminó ahí, cuando trate de ejecutar y depurar la aplicación me lleve otra sorpresa. Resulta que Visual Studio requiere que el sitio que corre sobre IIS tenga habilitada la autenticación integrada de Windows pero la versión Home de Vista no tiene soporte para este módulo.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Este problema se soluciona aplicando este &lt;a href="http://support.microsoft.com/kb/937523" target="_blank"&gt;hot-fix&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Ya con estas 3 actualizaciones instaladas se pueden crear sitios sobre IIS 7 y depurarlos.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-4339518105771933902?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/4339518105771933902/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=4339518105771933902' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/4339518105771933902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/4339518105771933902'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2008/03/depurar-aplicaciones-aspnet-20-sobre.html' title='Depurar aplicaciones ASP.NET 2.0 sobre IIS 7 con VS2005 (Windows Vista)'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-2947724492339805691</id><published>2008-02-21T00:26:00.009-02:00</published><updated>2008-02-21T00:53:43.779-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Vista'/><title type='text'>Prerequisitos del Service Pack 1 de Windows Vista causan problemas</title><content type='html'>&lt;div style="background:white;padding:5px"&gt;&lt;br /&gt;&lt;a href="http://ebuttiero.googlepages.com/vistalogo1.jpg"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 200px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://ebuttiero.googlepages.com/vistalogo1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Microsoft decidió suspender la distribución automática del fix &lt;a target="blank" href="http://support.microsoft.com/kb/937287"&gt;KB937287&lt;/a&gt;(requerido parar poder instalar el Service Pack 1 de Windows Vista) ya que algunos usuarios han experimentado problemas luego de su instalación.&lt;br /&gt;&lt;br /&gt;Mas info en el &lt;a target="blank"  href="http://windowsvistablog.com/blogs/windowsvista/archive/2008/02/19/update-on-windows-vista-sp1-prerequisite-kb937287.aspx"&gt;blog oficial de Windows Vista&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-2947724492339805691?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/2947724492339805691/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=2947724492339805691' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/2947724492339805691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/2947724492339805691'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2008/02/prerequisitos-del-service-pack-1-de.html' title='Prerequisitos del Service Pack 1 de Windows Vista causan problemas'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-3639679515987278224</id><published>2008-01-16T18:48:00.001-02:00</published><updated>2008-01-16T18:50:13.878-02:00</updated><title type='text'>Mas vale tarde que nunca...</title><content type='html'>Microsoft llamo a un cliente para atender una solicitud.... realizada 10 años atras. La noticia &lt;a href="http://www.diarioti.com/gate/n.php?id=16363" target="_blank"&gt;aqui&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-3639679515987278224?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/3639679515987278224/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=3639679515987278224' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/3639679515987278224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/3639679515987278224'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2008/01/mas-vale-tarde-que-nunca.html' title='Mas vale tarde que nunca...'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-8963373193402926011</id><published>2008-01-14T20:37:00.000-02:00</published><updated>2008-02-03T00:58:58.458-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Virtualización'/><title type='text'>VMWare: Crear máquina virtual sin VMWare.</title><content type='html'>Para aquellos fanáticos de la virtualización y de los productos VMWare que solo cuentan con el “VMWare Player”, la página &lt;a href="http://www.easyvmx.com/" target="blank"&gt;http://www.easyvmx.com/&lt;/a&gt; ofrece un servicio gratuito para la creación de máquinas virtuales a partir del cual podremos generar el archivo de configuración y los discos virtuales necesarios. Para crear la maquina virtual, simplemente seleccionamos algunas opciones mínimas y ya tendremos disponible un archivo ZIP (de unos 5kb) que contendrá todos los archivos necesarios. Una vez descargado y extraído el contenido del ZIP ya podremos iniciar nuestra nueva máquina virtual e instalar alguno de los sistemas operativos compatible sobre los que se ofrecen soporte.&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-8963373193402926011?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/8963373193402926011/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=8963373193402926011' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/8963373193402926011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/8963373193402926011'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2008/01/vmware-crear-mquina-virtual-sin-vmware.html' title='VMWare: Crear máquina virtual sin VMWare.'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-2481666812026482879</id><published>2007-12-13T10:28:00.000-03:00</published><updated>2007-12-13T10:30:06.377-03:00</updated><title type='text'>¿Por qué programar está desprestigiado?</title><content type='html'>Me pasaron este &lt;a target="_blank" href="http://www.versioncero.com/articulo/535/porque-programar-esta-desprestigiado"&gt;interesante post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Cualquier coincidencia con la realidad...&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-2481666812026482879?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/2481666812026482879/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=2481666812026482879' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/2481666812026482879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/2481666812026482879'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2007/12/por-qu-programar-est-desprestigiado.html' title='¿Por qué programar está desprestigiado?'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-1089248810201150399</id><published>2007-09-16T00:21:00.000-03:00</published><updated>2007-09-16T01:01:52.109-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Microsoft ASP.NET Session Sate Management</title><content type='html'>Siguiendo con el &lt;a href="http://ebuttiero.blogspot.com/2007/09/reportviewer-aspnet-session-expired.html" target="_blank"&gt;post anterior&lt;/a&gt;, aquí van algunos links de referencia:&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/Aa479041.aspx" target="_blank"&gt;Underpinnings of the Session State Implementation in ASP.NET&lt;/a&gt;&lt;br /&gt;Este artículo habla de como se implementan los distintos mecanismos que provee ASP.NET para la administración del estado de sesión.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/Aa720391(VS.71).aspx" target="_blank"&gt;Performance Application Pool Settings&lt;/a&gt;&lt;br /&gt;Aquí podremos encontrar algunos tips a tener en cuenta al momento de configurar el Application Pool bajo el cual correrá nuestra aplicación ASP.NET. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://msdn2.microsoft.com/es-es/library/h6bb9cz9(VS.80).aspx" target="_blank"&gt;Configurar opciones del estado de sesión&lt;/a&gt;&lt;br /&gt;Ete artículo se explica como configurar las opciones del estado de sesión para una aplicación ASP.NET.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-1089248810201150399?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/1089248810201150399/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=1089248810201150399' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/1089248810201150399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/1089248810201150399'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2007/09/microsoft-aspnet-session-sate.html' title='Microsoft ASP.NET Session Sate Management'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-1426133939067651635</id><published>2007-09-14T19:57:00.000-03:00</published><updated>2007-09-14T20:11:17.193-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>ReportViewer: ASP.NET session expired</title><content type='html'>&lt;p&gt;Al realizar la puesta en productivo de aplicaciones ASP.NET donde se utiliza el control ReportViewer puede dispararse el error "ASP.NET Session expired" cuando se intenta generar el reporte. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Dentro de las posibles soluciones que se puede hallar en la web, una de ellas consistía en cambiar el valor de la propiedad AsyncRendering del control a “false”. Esta acción no soluciono el problema pero además hizo que se disparé otro error: “oReportDiv no esta definido”. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Otras soluciones que se hallaron sugieren modificar la configuración del Application Pool o grupos de aplicaciones. Los Application Pools son creados a nivel del IIS para definir algunos aspectos de seguridad y performance de un conjunto de aplicaciones. Los Application Pools y las aplicaciones web se relacionan de esta forma: cada directorio virtual tiene asociado un único grupo de aplicaciones y un grupo de aplicaciones puede ser asociado a varios directorios virtuales. A su vez, cada aplicaction pool tiene bajo su potestad a uno o mas procesos de trabajo o worker process que son los procesos del sistema operativo bajo los cuales corre el código de nuestra aplicación. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Los cambios de configuración que se realizaron fueron los siguientes: &lt;/p&gt;&lt;br /&gt;&lt;p&gt;- Desde las propiedades del grupo de aplicaciones se deshabilitan las opciones “Reciclar procesos de trabajo (en minutos)” y “Reciclar procesos de trabajo (número de solicitudes)”. Por otro lado se habilita la opción “Reciclar los proceso de trabajo a las siguientes horas del día” y se indica los horarios en los que los procesos serán reciclados. De esta forma garantizamos que los procesos de trabajo se mantengan activos durante los periodos de tiempo en que los usuarios están utilizando la aplicación web.&lt;br /&gt;&lt;br /&gt;Esta nueva configuración no corrigió el error que se presentaba al tratar de generar los reportes por lo que fue desechada.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;- Nuevamente desde las propiedades del grupo de aplicaciones se modifica el valor de la propiedad “Número máximo de procesos de trabajo” a “1”. Con esta nueva configuración el error “ASP.NET session expired” deja de producirse. Esto se debe a que la aplicación web esta configurada por defecto para mantener el estado de la sessión del usuario en el mismo proceso (InProc), por lo que cuando una petición es atendida por cualquier otro proceso de trabajo que no fue el que atendió la primer petición, este no contará con la información de estado de la sessión y disparan el&lt;br /&gt;error.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href="http://ebuttiero.googlepages.com/AppPoolProperties.JPG" target="_blank"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 300px; CURSOR: hand; TEXT-ALIGN: center" alt="Propiedades del Grupo de Aplicaciones" src="http://ebuttiero.googlepages.com/AppPoolProperties.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A pesar de que el error deja de producirse con este sencillo cambio de configuración, es necesario evaluar el impacto de esta nueva configuración en términos de performance y escalabilidad.&lt;br /&gt;&lt;br /&gt;Para salvar esta situación se puede optar por cambiar la forma en que ASP.NET almacena el estado de sesión del usuario, utilizando por ejemplo el modo StateServer o SQLServer.&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-1426133939067651635?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/1426133939067651635/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=1426133939067651635' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/1426133939067651635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/1426133939067651635'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2007/09/reportviewer-aspnet-session-expired.html' title='ReportViewer: ASP.NET session expired'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-5398700275417841231</id><published>2007-07-14T12:51:00.000-03:00</published><updated>2007-07-14T12:59:10.592-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><title type='text'>Project Management: ¿Por qué los planes fracasan?</title><content type='html'>Leído en un newsletter del IAAP:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;A veces los planes fallan. Asi es la vida y así deberías enfocar tu proyecto. Un plan debería ser solamente la base para futuros cambios, pero si no tenés esa base, la situación será aún peor.&lt;br /&gt;&lt;br /&gt;Lo que buscás para tus proyectos es la legitimación del tiempo asignado para planificar.&lt;br /&gt;A veces "el proyecto comenzó ayer" y ya estás con atraso, y en tu organización no hay una cultura de valoración por la planificación. Entonces hay que ponerse a trabajar inmediatamente en los entregables.&lt;br /&gt;&lt;br /&gt;A veces estás en el buen caso y podés planificar, en tu organización es algo reconocido&lt;br /&gt;y hasta requerido de un gerente de proyecto. Pero eso no garantiza nada: es muy frecuente&lt;br /&gt;que en el medio de la ejecución de tu proyecto te des cuenta que tu plan no tiene nada que&lt;br /&gt;ver con la realidad.&lt;br /&gt;&lt;br /&gt;¿Por qué muchas veces nuestro plan no tiene nada que ver con el proyecto? Pueden existir&lt;br /&gt;muchísimas razones, las siguientes son algunas de las más frecuentes:&lt;br /&gt;&lt;br /&gt;* Porque quizás no teníamos la suficiente información al momento de planificar.&lt;br /&gt;&lt;br /&gt;* Porque la planificación fue realizada por un grupo diferente al equipo del proyecto.&lt;br /&gt;&lt;br /&gt;* Porque no se analizaron las habilidades requeridas de los miembros del equipo.&lt;br /&gt;&lt;br /&gt;* Porque los planes corporativos no fueron comprendidos por las áreas operativas.&lt;br /&gt;&lt;br /&gt;* Porque no se analizaron riesgos.&lt;br /&gt;&lt;br /&gt;* Porque nadie en el equipo sabe los objetivos de negocios que persigue el proyecto.&lt;br /&gt;&lt;br /&gt;* Porque se esconden los issues y se ocultó la necesidad de replanificación.&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;Fuente: &lt;strong&gt;&lt;a target="_blank" href="http://www.iaap.com.ar/home.asp"&gt;IAAP (Instituto Argentino de Administración de Proyectos)&lt;/a&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-5398700275417841231?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/5398700275417841231/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=5398700275417841231' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/5398700275417841231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/5398700275417841231'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2007/07/project-management-por-qu-los-planes.html' title='Project Management: ¿Por qué los planes fracasan?'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-6073542213934966129</id><published>2007-06-21T21:21:00.000-03:00</published><updated>2007-06-21T21:43:17.560-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2005'/><title type='text'>Refactor! for Visual Basic 2005</title><content type='html'>Ante la ausencia de la funcionalidades de "Refactoring" cuando trabajamos sobre VB.NET (en Visual Studio 2005), Developers Express Inc. puso manos a la obra y desarrollo un Plug-ins que distribuye en forma gratuita. Entre las funcionalidades, podemos nombrar: reordenamiento de parámetros, extracción de métodos desde bloques de código, encapsular atributos, etc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Más info: &lt;a target="_blank" href="http://msdn2.microsoft.com/en-us/vbasic/ms789083.aspx"&gt;http://msdn2.microsoft.com/en-us/vbasic/ms789083.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-6073542213934966129?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/6073542213934966129/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=6073542213934966129' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/6073542213934966129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/6073542213934966129'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2007/06/refactor-for-visual-basic-2005.html' title='Refactor! for Visual Basic 2005'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-1610979080102424546</id><published>2007-06-18T21:44:00.000-03:00</published><updated>2007-06-18T21:54:53.316-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET AJAX'/><title type='text'>Microsoft AJAX .NET - Problemas con UpdatePanel y validadores</title><content type='html'>Para aquellos que han esta teniendo problemas con la utilización de los controles de validación provistos por ASP.NET dentro de los UpdatePanel de Ajax .NET, Microsoft ha liberado un fix para solucionar estos inconvenientes.&lt;br /&gt;&lt;br /&gt;El problema en sí se daba cuando se refrescaba un panel que contenía controles de validación: después del refresco estos controles "desaparecían" y a partir de entonces se daban distintos errores al momento de dispararse las rutinas de validación en el browser del usuario.&lt;br /&gt;&lt;br /&gt;Link: &lt;a href="http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=6106"&gt;http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=6106&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-1610979080102424546?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/1610979080102424546/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=1610979080102424546' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/1610979080102424546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/1610979080102424546'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2007/06/microsoft-ajax-net-problemas-con.html' title='Microsoft AJAX .NET - Problemas con UpdatePanel y validadores'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-5997404401616435815</id><published>2007-05-14T20:29:00.000-03:00</published><updated>2007-05-14T20:31:19.683-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='Iconos'/><title type='text'>PNG 2 Icon on-line</title><content type='html'>Un conversor de archivos PNG a ICO en línea: &lt;a href="http://www.converticon.com/"&gt;http://www.converticon.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Es relativamente sencillo... pero nos saca del paso!&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-5997404401616435815?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/5997404401616435815/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=5997404401616435815' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/5997404401616435815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/5997404401616435815'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2007/05/png-2-icon-on-line.html' title='PNG 2 Icon on-line'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-2060431791371139671</id><published>2007-04-19T20:46:00.001-03:00</published><updated>2007-04-19T20:50:42.146-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>¿Alguna coincidencia con la vida real?</title><content type='html'>&lt;div align="center"&gt;"Un sistema complejo que funciona, invariablemente ha evolucionado desde un sistema simple, que funcionaba. Un sistema complejo diseñado desde 0 no suele funcionar y en dicho caso, no puede ser emparchado para que funcione. Hay que comenzar nuevamente de 0, pero con un sistema que funcione, y sea simple"&lt;/div&gt;&lt;br /&gt;&lt;div align="right"&gt;&lt;em&gt;John Gall, “How systems really work and how they fail”&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-2060431791371139671?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/2060431791371139671/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=2060431791371139671' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/2060431791371139671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/2060431791371139671'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2007/04/alguna-coincidencia-con-la-vida-real_19.html' title='¿Alguna coincidencia con la vida real?'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-4524665491652930170</id><published>2007-04-02T03:50:00.000-03:00</published><updated>2007-04-05T11:31:02.644-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Implementando IHttpHandler</title><content type='html'>Muchas veces necesitamos realizar ciertas tareas en nuestra aplicación web, como por ejemplo, entregar archivos a un cliente pero bajo algún contexto donde necesitamos cierto control o aplicar cierta lógica de negocio antes de realizar la entrega. Esta situación la podemos manejar de diferente manera y he aquí una de ellas: Mediante nuestro propios HTTPHandlers.&lt;br /&gt;&lt;br /&gt;Ahora bien, vamos a situarnos un poco más en tema, partiendo de la base sobre como trabaja IIS (Internet Information Server) al procesar distintas solicitudes HTTP. Cuando el IIS recibe una petición, por ejemplo de una página "login.aspx", lo primero que hace es verificar quien maneja esa extensión (aspx) para luego pasar el control al ISAPI correspondiente, en este caso, la de ASP.NET (aspnet_filter.dll). Es a partir de este momento donde se delega el procesamiento de la petición al proceso aspnet_wp.exe o w3wp.exe dependiendo de la versión del IIS, encargándose estos del resto de las tareas.&lt;br /&gt;&lt;br /&gt;Como lo hizo el IIS con este archivo aspx, lo puede hacer con alguna otra extensión de archivo que nosotros definamos indicándole que ISAPI debe procesar ese archivo, para lo cual deberemos primero programar esa extensión ISAPI.... O implementar un HTTPHandler en .NET y reducir drásticamente nuestros problemas. Este comentario viene dado ya que si implementamos nuestra propia ISAPI deberemos tocar la configuración del IIS, algo que no siempre esta permitido (más si no es nuestro servidor, como cuando contratamos hosting) además de lo complejo que puede resultar desarrollarla.&lt;br /&gt;&lt;br /&gt;¿Porque es sencillo implementar un HTTPHandler en .NET?&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;No es necesario reconfigurar el IIS para atender de forma especial una petición (siempre y cuando esta petición referencia a una extensión &lt;strong&gt;ashx&lt;/strong&gt;)&lt;/li&gt;&lt;li&gt;A nivel de código, basta con desarrollar una clase en .NET que implemente la interfaz &lt;em&gt;IHttpHandler&lt;/em&gt; y registrar el nuevo handler mediante el archivo web.config.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;En el siguiente ejemplo, voy a construir una pequeña aplicación ASP.NET donde implementare un HTTPHandler para manejar las peticiones que lleguen a un archivo "download.ahsx". Este handler validará si el usuario tiene o no permiso para descargar el archivo solicitado. Los archivos se hallaran en una carpeta "Repository" donde ningún usuario tendrá acceso. Dentro de esta carpeta también se hallara un XML donde se indica que usuarios pueden descargar que archivos. (&lt;a href="http://ebuttiero.googlepages.com/EjemploHTTPHandler.zip" target="_blank"&gt;Adjunto el código completo del ejemplo - Solución en VS2005&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Implementando la interfaz &lt;em&gt;IHttpHandler&lt;/em&gt; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;Creo un proyecto de librería de clases llamado "MyHandler" donde definiré la clase "FileProviderHandler". Esta clase va a implementar la interfaz &lt;em&gt;IHttpHandler&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Al implementar la interfaz, hay 2 métodos para los cuales deberemos escribir código:&lt;br /&gt;&lt;br /&gt;* &lt;em&gt;IsReusable&lt;/em&gt; : Indica si la instancia creada del handler se puede utilizar en las solicitudes siguiente. (Siempre devolver true).&lt;br /&gt;&lt;br /&gt;* &lt;em&gt;ProcessRequest&lt;/em&gt;: Es el método a través del cual vamos a implementar la lógica necesaria para procesar la solicitud, en este ejemplo, se verificará si un usuario tiene permiso para descargar un archivo, caso en el cual entregará el archivo solicitado mientras que si el usuario no tiene permiso, lo redireccionará a una página de error. Este método recibe como parámetro un objeto "context" que representa el contexto bajo el cual se ejecuta la petición. Mediante este objeto podremos a acceder a información de la aplicación ASP.NET que lo este ejecutando, como variables de sesión, de aplicación, autenticación, etc.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;El código de &lt;em&gt;FileProviderHandler&lt;/em&gt;:&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#0000ff;"&gt;public class &lt;/span&gt;&lt;span style="color:#008080;"&gt;FileProviderHandler &lt;/span&gt;&lt;span style="color:#000000;"&gt;: &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;color:#008080;"&gt;IHttpHandler&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#000000;"&gt;{&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;public &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#000000;"&gt;FileProviderHandler()&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;public bool &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;color:#000000;"&gt;IsReusable&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;color:#0000ff;"&gt;get&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#000000;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;return true&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#000000;"&gt;;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;public void &lt;/span&gt;&lt;span style="color:#000000;"&gt;ProcessRequest(&lt;/span&gt;&lt;span style="color:#008080;"&gt;HttpContext &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#000000;"&gt;context)&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;string &lt;/span&gt;&lt;span style="color:#000000;"&gt;wFileToDownload = &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;color:#000000;"&gt;.Empty;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#008000;"&gt;//Obtengo nombre del archivo&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;wFileToDownload = context.Request.QueryString[&lt;/span&gt;&lt;span style="color:#800000;"&gt;"Name"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;color:#000000;"&gt;];&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#008000;"&gt;//Verifico si el usuario tiene permiso.&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;if &lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#008080;"&gt;Users&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;color:#000000;"&gt;.CanDownload(context.User.Identity.Name, wFileToDownload))&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#008000;"&gt;//Obtengo path al archivo, luego escribo en stream del response&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;string &lt;/span&gt;&lt;span style="color:#000000;"&gt;fullPath = &lt;/span&gt;&lt;span style="color:#008080;"&gt;HttpContext&lt;/span&gt;&lt;span style="color:#000000;"&gt;.Current.Server.MapPath(&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&lt;span style="color:#000000;"&gt;.Format(&lt;/span&gt;&lt;span style="color:#800000;"&gt;@"~/Repository/{0}"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;color:#000000;"&gt;, wFileToDownload));&lt;br /&gt;&lt;br /&gt;context.Response.WriteFile(fullPath);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;color:#0000ff;"&gt;else&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;color:#000000;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#008000;"&gt;//Redirecciono a página de error.&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;context.Response.Redirect(&lt;/span&gt;&lt;span style="color:#800000;"&gt;"~/noautorizado.htm"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#000000;"&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;El sitio web&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Para no ahondar en detalles que no se relevantes en este momento, solo comentaré que el sitio de ejemplo contiene una página sencilla con links a los distintos archivos para que los usuarios descarguen. Además, utiliza autenticación Forms por lo que cuenta tambien con una página de login. Los usuarios esta definidos en el web.config (un usuario es ezequiel, con contraseña ezequiel)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;El archivo web.config&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Dentro del archivo web.config, en system.web debemos agregar la configuración para el handler recientemente creado:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;httphandlers&amp;gt;&lt;br /&gt;&amp;lt;add verb="*" path="download.ashx" type="MyHandler.FileProviderHandler, MyHandler"&amp;gt;&lt;br /&gt;&amp;lt;/httphandlers&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;En la propiedad "verbs" indicamos para que verbos se utilizara el handler, representando con * a todos los verbos, pero también podemos especificar para un verbo en particular, por ejemplo POST. La siguiente propiedad es "file", en ella se indica que nombre del archivo que queremos que el handler procese, además de indicar un nombre específico, podemos usar comodines indicando que se procesen todos los archivos de cierta extensión, por ejemplo *.ashx. Por último, en la propiedad "Type" indicamos el nombre de la clase que implementa IHTTPHandler y el ensamblado que la contiene.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Una pequeña aclaración&lt;/em&gt;: Si queremos utilizar otra extención de archivo que no sea &lt;strong&gt;ashx&lt;/strong&gt;, deberemos retocar la configuración del IIS. Para el caso de los archivos ashx, esta configuración ya queda registrada en el IIS desde la instalación de .NET.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-4524665491652930170?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/4524665491652930170/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=4524665491652930170' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/4524665491652930170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/4524665491652930170'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2007/04/implementando-ihttphandler.html' title='Implementando IHttpHandler'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-626647807227643623</id><published>2007-03-28T21:04:00.000-03:00</published><updated>2007-03-29T22:09:07.565-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='COM+'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP'/><title type='text'>Accediento a objetos de contexto de ASP desde componentes COM</title><content type='html'>&lt;p&gt;Muchas veces necesitamos en nuestras aplicaciones ASP (Active Server Page) acceder a objetos de contexto desde componentes COM, tanto para cosas simples como obtener datos de la sesión de usuario hasta acceder a los objetos Request o Response.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Objetos de contexto de ASP a los que podemos acceder:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Session &lt;/li&gt;&lt;li&gt;Application &lt;/li&gt;&lt;li&gt;Request &lt;/li&gt;&lt;li&gt;Response&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Siguiendo una serie de pasos, podemos acceder a estos objetos de forma rápida y sencilla:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;En el proyecto de tipo ActiveX DLL, agregamos una referencia a:&lt;br /&gt;a) COM+ Services Type Library (Comsvcs.dll)&lt;br /&gt;b) Microsoft Active Server Pages Object Library (Asp.dll)&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;En las propiedades del proyecto, seleccionar las opciones "Retained in memory" y "Unattended execution"&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Obtener referencias a los objetos de contexto que necesitamos (y utilizarlos): &lt;pre style="FONT-SIZE: 10px"&gt;Public Sub HacerAlgo()&lt;br /&gt;&lt;br /&gt;   Dim oContext As ObjectContext&lt;br /&gt;   Dim oResponse As Response&lt;br /&gt;   Dim oRequest  As Request&lt;br /&gt;   Dim oApplication As Application&lt;br /&gt;   Dim oSession As Session&lt;br /&gt;   Dim sReferer As String&lt;br /&gt;   Dim sAppVar as String&lt;br /&gt;   Dim sSessionVar as String&lt;br /&gt;&lt;br /&gt;   Set oContext = GetObjectContext()&lt;br /&gt;&lt;br /&gt;   'Obtener referencia al objeto Application de ASP.&lt;br /&gt;   Set oApplication = oContext("Application")&lt;br /&gt;   'Obtener referencia al objeto Session de ASP.&lt;br /&gt;   Set oSession = oContext("Session")&lt;br /&gt;   'Obtener referencia al objeto Response de ASP.&lt;br /&gt;   Set oResponse = oContext("Response")&lt;br /&gt;   'Obtener referencia al objeto Request de ASP.&lt;br /&gt;   Set oRequest = oContext("Request")&lt;br /&gt;&lt;br /&gt;   'Obtener el valor de la variable&lt;br /&gt;   'de servidor HTTP_REFERER&lt;br /&gt;   sReferer = oRequest.ServerVariables("HTTP_REFERER")&lt;br /&gt;&lt;br /&gt;   'Obtener el valor de la variable&lt;br /&gt;   'de aplicaicon MiAppVariable&lt;br /&gt;    sAppVar = oApplication("MiAppVariable")&lt;br /&gt;&lt;br /&gt;   'Obtener el valor de la variable&lt;br /&gt;   'de sesión MiSessionVar&lt;br /&gt;   sSessionVar = oSession("MiSessionVar")&lt;br /&gt;&lt;br /&gt;   'Escribo resultados...&lt;br /&gt;   oResponse.Write "Valor de 'Referer': " &amp; sReferer&lt;br /&gt;   oResponse.Write "Valor de 'MiAppVariable': " &amp;amp; MiAppVariable&lt;br /&gt;   oResponse.Write "Valor de 'MiSessionVar': " &amp;amp; sSessionVar&lt;br /&gt;&lt;br /&gt;End Sub&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Compilar el proyecto.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Instalar la DLL sobre COM+.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Instanciarla desde páginas ASP e invocar al método "HacerAlgo()" utilizando el siguiente código:&lt;pre style="FONT-SIZE: 10px"&gt;&lt;br /&gt;Application("MiAppVariable") = "Un valor a nivel Aplicación"&lt;br /&gt;Session("MiSessionVar) = "Un valor a nivel de sesión del usuario"&lt;br /&gt;&lt;br /&gt;Dim oTest&lt;br /&gt;Set oTest = CreateObject("MiComponente.MiClase")&lt;br /&gt;oTest.HacerAlgo&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-626647807227643623?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/626647807227643623/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=626647807227643623' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/626647807227643623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/626647807227643623'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2007/03/accediento-objetos-de-contexto-de-asp.html' title='Accediento a objetos de contexto de ASP desde componentes COM'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-532336407012101107</id><published>2007-03-12T23:19:00.000-03:00</published><updated>2007-03-12T23:27:08.749-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Library Application Block'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Desing Patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>.NET Tutorials and Technical Articles</title><content type='html'>David Hyden a realizado un recopilación de artículos que ha publicado sobre diferentes temas (.NET, SQL, Patrones, etc, etc, etc) en esta &lt;a href="http://www.davidhayden.com/davidhayden/articles.aspx" target="_blank"&gt;página&lt;/a&gt; (100% recomendada)&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-532336407012101107?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/532336407012101107/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=532336407012101107' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/532336407012101107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/532336407012101107'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2007/03/net-tutorials-and-technical-articles.html' title='.NET Tutorials and Technical Articles'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-3429427921503344051</id><published>2007-03-08T20:02:00.000-03:00</published><updated>2007-03-08T20:10:10.640-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>"Que he hecho de mi vida"</title><content type='html'>Marcelo me ha enviado este &lt;a href="http://geeks.ms/blogs/rcorral/archive/2007/02/22/que-he-hecho-de-mi-vida.aspx" target="_blank"&gt;link&lt;/a&gt; a un blog donde alguien hace unos comentarios relacionado al mundo laboral del desarollo de software...&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-3429427921503344051?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/3429427921503344051/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=3429427921503344051' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/3429427921503344051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/3429427921503344051'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2007/03/ss.html' title='&quot;Que he hecho de mi vida&quot;'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-8731879096397742708</id><published>2007-03-07T22:46:00.000-03:00</published><updated>2007-03-07T23:32:48.737-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Archivos de Configuración: Compartir la sección AppSettings entre aplicaciones.</title><content type='html'>La idea de este post es mostrar como podemos compartir la sección del archivo app.config o web.config entre diferentes aplicaciones y de esta manera tener aquellos parámetros que son compartidos entre estas en único lugar y de manera de hacer más sencilla su administración.&lt;br /&gt;&lt;br /&gt;Por un lado, debemos preparar el archivo xml que contendrá la sección appSettings. Es importante destacar que el elemento principal de este archivo es el nodo &lt;strong&gt;appSettings &lt;/strong&gt;y no otro elemento. Esta condición es evaluada por el mismo Framework al cargar la aplicación y disparara un error si no se cumple.&lt;br /&gt;&lt;br /&gt;El archivo xml que contendrá la sección queda conformado de la siguiente manera:&lt;br /&gt;&lt;span style="font-family:courier;"&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br /&gt;&amp;lt;appSettings&amp;gt;&lt;br /&gt;&amp;lt;add key="DefaultMessage" value="Hello world!"/&amp;gt;&lt;br /&gt;&amp;lt;/appSettings&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Por último, resta modificar los archivos web.config/app.config para que la sección appSettings apunte al archivo que hemos creado anteriormente:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;"&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;&amp;lt;connectionstrings&amp;gt;&lt;br /&gt;&amp;lt;appsettings file="c:\ConfigurationFiles\MyAppSettings.config"&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Cabe aclarar que esta separación de la sección appSettings a un archivo externo es completamente transparente para las aplicaciones, por lo que no tendremos que escribir código adicional para la lectura de cada una de las entradas que contenga.&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-8731879096397742708?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/8731879096397742708/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=8731879096397742708' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/8731879096397742708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/8731879096397742708'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2007/03/archivos-de-configuracin-compartir-la.html' title='Archivos de Configuración: Compartir la sección AppSettings entre aplicaciones.'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-6435608603014924400</id><published>2007-02-09T22:36:00.000-03:00</published><updated>2007-02-10T00:21:51.437-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='COM+'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>App.config para componentes en COM+ 1.5</title><content type='html'>Hace unos días se me planteo la necesidad de montar un componente desarrollado en .NET sobre COM+ que debía leer ciertos parámetros desde algún repositorio de configuración... nada nuevo hasta ahora... solo que necesitaba cambiar de cierta manera como lo estaba haciendo en un principio... guardando estos valores configurables en el registro de Windows... definitivamente estaba necesitaba algo más sencillo y que no me de trabajo adicional.&lt;br /&gt;&lt;br /&gt;Analizando la situación, lo primero en considerar fue que estos componentes son hosteados por el proceso &lt;em&gt;dllhost.exe&lt;/em&gt; y por lo tanto toman como directorio de trabajo el &lt;em&gt;%windir%\system32. &lt;/em&gt;Lo siguiente fue determinar a que archivo de configuración "apuntaba" el componente -en teoría, debería ser "dllhost.exe.config"-, por lo que cree un pequeño componente que expone un objeto con un método que devuelve el valor de la propiedad "&lt;em&gt;ConfigurationFile&lt;/em&gt;" del objeto "&lt;em&gt;CurrentDomain.SetupInformation&lt;/em&gt;"; el resultado: "&lt;em&gt;C:\WINDOWS\system32\dllhost.exe.config&lt;/em&gt;".&lt;br /&gt;&lt;br /&gt;Teniendo en cuenta lo anterior, debería tener&lt;em&gt; un &lt;/em&gt;archivo "dllhost.exe.config" en un directorio poco accesible... y además compartido por todos los &lt;em&gt;.NET Serviced Components &lt;/em&gt;montados en COM+.&lt;br /&gt;&lt;br /&gt;Por suerte, despúes de investigar un poco me tope con la posibilidad de tener cada aplicación de COM+ con su propio archivo de configuración y de una forma muy sencilla:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Renombrar el archivo "&lt;strong&gt;app.config&lt;/strong&gt;" a "&lt;strong&gt;application.config&lt;/strong&gt;"&lt;/li&gt;&lt;li&gt;Crear un nuevo archivo de texto llamado "&lt;strong&gt;application.manifest&lt;/strong&gt;", con el siguiente contenido:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;?xml version="1.0"&lt;br /&gt;encoding="UTF-8"&lt;br /&gt;standalone="yes"?&amp;gt;&lt;br /&gt;&amp;lt;assembly&amp;gt;&lt;br /&gt;xmlns="urn:schemas-microsoft-com:asm.v1"&lt;br /&gt;manifestVersion="1.0"&lt;br /&gt;&amp;lt;/aseembly&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Por último, desde la consola de &lt;strong&gt;Servicio de Componentes&lt;/strong&gt;, ingresar a las propiedades de la aplicación y en la pestaña "Activación" completar el cuadro de texto "Directorio raíz de la aplicación" con la ruta donde se hallan los archivos &lt;strong&gt;.config.&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Y así de facil, en 3 pasos tengo mis aplicaciones en COM+ con sus respectivos archivos de configuración de manera sencilla y sin mayores complicaciones.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-6435608603014924400?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/6435608603014924400/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=6435608603014924400' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/6435608603014924400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/6435608603014924400'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2007/02/appconfig-para-componentes-en-com-15.html' title='App.config para componentes en COM+ 1.5'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-6195479918505654004</id><published>2007-02-07T22:05:00.000-03:00</published><updated>2007-02-07T23:03:20.187-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2003'/><title type='text'>Wix - Windows Installer XML</title><content type='html'>&lt;a href="http://wix.sourceforge.net/" target="_blank"&gt;Wix&lt;/a&gt; es una herramienta Open Source para la generación de paquetes de instalación para nuestros proyectos .NET, integrable tanto a Visual Studio 2005 como a su antecesor 2003.&lt;br /&gt;&lt;br /&gt;Esta herramienta presenta un gran numero de opciones... lo único negativo es que no hay una interfaz gráfica para disponer en gusto y placer de cada una ellas, si no que se debe generar un XML (en VS2005 se dispone de IntelliSense) a partir del cual se configura cada una de las acciones que debe realizar el instalador.&lt;br /&gt;&lt;br /&gt;Como comentaba anteriormente, Wix se integra a nuestro IDE de desarrollo, por lo que una vez instalado tendremos la posibilidad de crear un nuevo tipo de proyecto: "WIX Project". El resultado de la compilación de este proyecto será un archivo MSI, MSM o Wixlib.&lt;br /&gt;&lt;br /&gt;La última versión estable es la 2.0, pero ya esta disponible una versión beta 3.0 (que tambien nos permite crear "Merge Modules").&lt;br /&gt;&lt;br /&gt;Apenas tenga algún ejemplo armado, lo estaré posteando... mientras tanto, los invito a que Uds también realicen sus pruebas.&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-6195479918505654004?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/6195479918505654004/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=6195479918505654004' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/6195479918505654004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/6195479918505654004'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2007/02/wix-windows-installer-xml.html' title='Wix - Windows Installer XML'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-652892117436323752</id><published>2007-01-30T23:44:00.000-03:00</published><updated>2007-01-31T00:24:00.984-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Vista'/><title type='text'>Windows Vista Capable</title><content type='html'>Como ya estarán enterados, la compañía de Bill Gates (el mismo que anuncio el ocaso de la televisión en 5 años...) realizó hoy el lanzamiento oficial de su nuevo “&lt;strong&gt;Windows Vista&lt;/strong&gt;”… (Larga la espera… pero al fin esta entre nosotros).&lt;br /&gt;&lt;br /&gt;En fin, lo mas interesante de todo para aquellos que quieran adquirir el nuevo producto es si la PC con la que cuentan puede alojar la última maravilla de Microsoft. Para esto la compañía puso a disposición una utilidad (&lt;em&gt;Windows Vista Upgrade Advisor 1.0&lt;/em&gt;) que se puede descargar desde &lt;a href="http://www.microsoft.com/latam/windowsvista/getready/upgradeadvisor/default.mspx" target="_blank"&gt;aquí&lt;/a&gt; y permite ver que si podremos instalar el SO y que funciones estarán disponibles. (&lt;a href="http://microsoft.amd.com/us-en/Home-Page/Are-You-Ready-/Evaluate-Your-PC.aspx" target="_blank"&gt;Aquí&lt;/a&gt; otra utilidad de la mano de AMD)&lt;br /&gt;&lt;br /&gt;Según se anuncio ya hace tiempo, uno de los puntos fuertes de Vista es la seguridad... por eso &lt;em&gt;iDefense Labs&lt;/em&gt; organizó un &lt;a href="http://labs.idefense.com/vcp/challenge.php" target="_blank"&gt;concurso&lt;/a&gt; y ofrece hasta US$ 12000 a quien encuentre vulnerabilidades en el propio Vista o en la reciente liberada versión 7.0 del Internet Explorer.&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-652892117436323752?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/652892117436323752/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=652892117436323752' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/652892117436323752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/652892117436323752'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2007/01/windows-vista-capable.html' title='Windows Vista Capable'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-2175523257010017471</id><published>2007-01-19T11:05:00.000-03:00</published><updated>2007-01-19T11:33:04.037-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>Taggeado</title><content type='html'>&lt;p&gt;Y bue... me toco a mi también.. continuando lo que continuaba &lt;a href="http://acisterna.blogspot.com/2007/01/taggeado-por-el-bruno.html" target="_blank"&gt;Alfredo&lt;/a&gt;... acá van 5 cosas que tal vez no sepan de mí:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Me gustan mucho los autos.. (así paso casi desapercibida Illiana Calabro ante un impresionante Mini Cooper), más disfruto conducirlos a alta velocidad... Me habría gustado ser piloto por lo menos en un TC2000 o en Rally.&lt;/li&gt;&lt;li&gt;Tengo fobia a las arañas... por mas chicas que sean me pone piel de gallina cuando las veo.&lt;/li&gt;&lt;li&gt;Mi médico me indicó que tengo que bajar de peso... así que me derivo a una Nutricionista, por ende voy a pasar hambre por un buen tiempo... (por estos días "aprovecho" las vacaciones y no dejo pasar ningún asadito...)&lt;/li&gt;&lt;li&gt;Disfruto mucho de los viajes, estar hoy aquí y mañana allá... &lt;/li&gt;&lt;li&gt;Me molesta que por haber hecho una carrera de sistemas la mayoría (familiares, amigos y demás conocidos) crean que eres el tipo ideal para arreglar el mouse que no funciona... instalar aquella actualización del antivirus que hace meses que mantiene el mismo firmware... y además creen que mi fin de semana es para arreglar sus PCs!!!&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-2175523257010017471?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/2175523257010017471/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=2175523257010017471' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/2175523257010017471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/2175523257010017471'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2007/01/taggeado.html' title='Taggeado'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-6348613041692141848</id><published>2007-01-18T12:19:00.000-03:00</published><updated>2007-01-18T15:03:55.792-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2005'/><title type='text'>Microsoft Visual Studio 2005 IDE Enhancements</title><content type='html'>Después de tanto tiempo sin hacer un post... aquí estoy de vuelta. Esta vez para contarles sobre un pack de complementos para extender la funcionalidad del Visual Studio 2005.&lt;br /&gt;&lt;br /&gt;Las herramientas de las que dispondremos una vez instalado el pack son las siguientes:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Source Code Outliner&lt;/em&gt;, que nos permite explorar el código fuente mediante una representación del mismo en forma de árbol.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_L44cgdBrrsI/Ra-irRltg-I/AAAAAAAAAA8/NTL09Pphro8/s1600-h/sourceoutliner.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5021410973881041890" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_L44cgdBrrsI/Ra-irRltg-I/AAAAAAAAAA8/NTL09Pphro8/s400/sourceoutliner.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;Super Diff Utility&lt;/em&gt;, para realizar comparaciones de archivos de texto.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_L44cgdBrrsI/Ra-irhlthAI/AAAAAAAAABM/VI78VLt0wjk/s1600-h/diffutility.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5021410978176009218" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_L44cgdBrrsI/Ra-irhlthAI/AAAAAAAAABM/VI78VLt0wjk/s400/diffutility.gif" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;Indexed Find&lt;/em&gt;, que utiliza los servicios de Microsoft Indexing Service brindando capacidades de búsqueda de forma integrada al IDE, mostrando los resultados en la ventana "Outputs".&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;Event Toaster Utility&lt;/em&gt;, que captura ciertos eventos que se producen en el IDE y permite configurar para ellos la reproducción de un sonido, un aviso en la barra de tareas, la ejecución de un comando y/o una macro.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_L44cgdBrrsI/Ra-irhltg_I/AAAAAAAAABE/r5yMad7UHB4/s1600-h/events.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5021410978176009202" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_L44cgdBrrsI/Ra-irhltg_I/AAAAAAAAABE/r5yMad7UHB4/s400/events.gif" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;Visual C++ Code Snippets&lt;/em&gt;, para inserción de snippets en su código C++. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;Para ir a la página de descarga, haz clic &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=CD7C6E48-E41B-48E3-881E-A0E6E97F9534&amp;amp;displaylang=en" target="_blank"&gt;aquí&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-6348613041692141848?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/6348613041692141848/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=6348613041692141848' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/6348613041692141848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/6348613041692141848'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2007/01/microsoft-visual-studio-2005-ide.html' title='Microsoft Visual Studio 2005 IDE Enhancements'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_L44cgdBrrsI/Ra-irRltg-I/AAAAAAAAAA8/NTL09Pphro8/s72-c/sourceoutliner.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-116285850004381906</id><published>2006-11-06T20:48:00.000-03:00</published><updated>2006-11-06T21:15:00.156-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Código fuente'/><title type='text'>Buscador de código fuente: Krugle</title><content type='html'>&lt;a href="http://www.krugle.com/" target="_blank"&gt;Krugle&lt;/a&gt; es un nuevo buscador de código fuente de software libre. Entre sus funcionalidades podemos mencionar la posibilidad de explorar repositorios de código y la búsqueda de documentación técnica, notas, etc. relacionadas al mismo.&lt;br /&gt;&lt;br /&gt;Por otro lado, mientras se examina un archivo de código, este se muestra dentro de una pestaña donde se dispone de otras opciones, como guardar el archivo en nuestra pc, agregarle notas, o seleccionar algún texto del mismo y realizar una búsqueda utilizando dicha selección como criterio.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://www.krugle.com/" target="_blank"&gt;&lt;img src="http://www.krugle.com/media/img/logo_krugle_bl.gif" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-116285850004381906?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/116285850004381906/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=116285850004381906' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/116285850004381906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/116285850004381906'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2006/11/buscador-de-cdigo-fuente-krugle.html' title='Buscador de código fuente: Krugle'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-116234573564018690</id><published>2006-10-31T22:23:00.000-03:00</published><updated>2007-01-19T11:41:19.130-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2003'/><title type='text'>Add-In para Visual Studio: DevAge CodeReady</title><content type='html'>En este post quería comentarles sobre un interesante add-in para Visual Studio llamado "DevAge CodeReady", es un poco viejo (de Octubre '05) pero para aquellos que seguimos con Visual Studio 2003 nos resulta muy útil.&lt;br /&gt;&lt;br /&gt;Este add-in por un lado cuenta con un generador de código -algo similar a los snippets de VS2005- extensible mediante templates. Por otro lado y la verdad lo que me resultó interesante es que amplía la posibilidades de debug de VS2003 mediante un "Object Visualizer" con lo que podemos por ejemplo explorar un DataSet viendo su contenido en una grilla, o ver las propiedades de un objeto en una grilla de propiedades como la del diseñador de formularios o en su defecto utilizar la vista "Long Text Watch" y examinar largas cadenas de caracteres. Otra opción adicional nos permite ver información de la aplicación en tiempo de ejecución, como el nombre y el id del proceso e información relativa a la memoria utilizada.&lt;br /&gt;&lt;br /&gt;Mas info. y download en el &lt;a href="http://www.devage.com/CodeReady/CodeReady_EN.html"&gt;link del sitio&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-116234573564018690?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/116234573564018690/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=116234573564018690' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/116234573564018690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/116234573564018690'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2006/10/add-in-para-visual-studio-devage.html' title='Add-In para Visual Studio: DevAge CodeReady'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-116053391915123455</id><published>2006-10-10T23:31:00.000-03:00</published><updated>2007-01-19T11:38:35.953-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Virtualización'/><title type='text'>Virtualización: VMWare Converter 3</title><content type='html'>VMWare esta ofreciendo en forma gratuita una herramienta (beta) que permite transformar entornos físicos a virtuales y viceversa de forma fiable y sencilla . El nombre de la herramienta es "VMware Converter 3" y puede ser descargada desde su sitio web,-para lo que será necesario registrarse- (&lt;a href="http://www.vmware.com/products/beta/converter/"&gt;http://www.vmware.com/products/beta/converter/&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;El proceso P2V (Physical-to-virtual):&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://www.vmware.com/img/p2v_arch.gif" target="blank"&gt;&lt;img style="WIDTH: 387px; HEIGHT: 165px" height="142" alt="Ampliar" src="http://www.vmware.com/img/p2v_arch.gif" width="339" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-116053391915123455?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/116053391915123455/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=116053391915123455' title='4 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/116053391915123455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/116053391915123455'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2006/10/virtualizacin-vmware-converter-3.html' title='Virtualización: VMWare Converter 3'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-116023670826697163</id><published>2006-10-07T12:58:00.000-03:00</published><updated>2006-10-11T10:19:07.970-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Código fuente'/><title type='text'>Google Code Search</title><content type='html'>Google ha presentado un buscador especialmente diseñado para la búsqueda código fuente (una gran ayuda para todos los que programamos!). Lo más interesante es que podemos restringir la búsqueda por lenguaje, tipo de licencia, nombre de archivo y hasta utilizar expresiones regulares. En la página principal se presentan ejemplos sobre como armar los criterios y así hacer nuestras búsquedas más exitosas.&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://www.google.com/codesearch"&gt;&lt;img alt="http://www.google.com/codesearch" src="http://www.google.com/intl/en/images/codesearch_logo_sm.gif" align="center" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-116023670826697163?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/116023670826697163/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=116023670826697163' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/116023670826697163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/116023670826697163'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2006/10/google-code-search.html' title='Google Code Search'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-116001378238823649</id><published>2006-10-04T23:03:00.000-03:00</published><updated>2007-01-19T11:40:30.272-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>Google y su nuevo sitio de búsqueda</title><content type='html'>Google ha inaugurado un sitio donde se han implementando nuevas tecnologías de búsqueda, la particularidad esta en que este sitio no presenta ni una sola referencia al gran buscador... la idea es que los usuarios prueben nuevos productos sin que la imagen de Google interfiera en la experiencia.&lt;br /&gt;&lt;br /&gt;La interfaz es muy sencilla (creo yo al mejor estilo Google), una vez ingresado el criterio de búsqueda se presenta un conjunto de resultados y 3 imágenes relacionadas con el. Visualmente lo mas agradable se ve cuando se hace click sobre "more web page", cargándose mas resultados (sin recargar la página) y haciendo "scroll down" hasta ellos. Otro "chiche" interesante es que podemos reordenar el resultado de la búsqueda arrastrando cada ítem a la posición deseada. Por último, cada página referenciada en el resultado puede ser accedida directamente haciendo click sobre el link de color azul, o también o se puede hacer click sobre el link de color verde donde se despliega un conjunto de opciones como abrir en esta ventana, en ventana nueva, abrir la copia del cache, etc.&lt;br /&gt;&lt;br /&gt;La dirección del sitio es &lt;a href="http://www.searchmash.com/"&gt;http://www.searchmash.com/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Buena búsqueda!&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-116001378238823649?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/116001378238823649/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=116001378238823649' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/116001378238823649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/116001378238823649'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2006/10/google-y-su-nuevo-sitio-de-bsqueda.html' title='Google y su nuevo sitio de búsqueda'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-115959333897421397</id><published>2006-09-30T02:11:00.000-03:00</published><updated>2007-01-19T11:42:11.063-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Liderazgo'/><title type='text'>Las 10 Causas del fracaso de un liderazgo</title><content type='html'>Continuando con lo que &lt;a href="http://acisterna.blogspot.com/2006/09/liderar-proyectos.html" target="blank"&gt;Alfredo&lt;/a&gt; se planteo en su blog sobre lo que tiene que tener un líder para ser considerado como tal, hago otro aporte sobre aquellas cuestiones que pueden hacer que un lider fracase:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. INCAPACIDAD PARA ORGANIZAR DETALLES.&lt;/strong&gt; Un liderazgo eficiente requiere capacidad para organizar y controlar los detalles. Ningún líder genuino está jamás ‘demasiado ocupado’ para hacer cualquier cosa que se le pueda pedir en su condición de líder. Cuando un hombre, ya sea en calidad de líder o de asistente, admite que está ‘demasiado ocupado’ para cambiar de planes, o para prestar atención a una emergencia, está admitiendo su incompetencia. El líder de éxito debe ser quien controle todos los detalles relacionados con su posición. Esto significa, por supuesto, que ha de adquirir el hábito de relegar los detalles a asistentes capaces.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. MALA DISPOSICIÓN PARA PRESTAR SERVICIOS MODESTOS.&lt;/strong&gt; Los líderes realmente grandes están siempre dispuestos, cuando la ocasión lo exige, a llevar a cabo cualquier tipo de labor que se les pida que hagan. Que ‘el mejor de entre vosotros será el sirviente de todos’ es una verdad que todos los líderes capaces observan y respetan.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. EXPECTATIVAS DE GRATIFICACIÓN POR LO QUE ‘SABEN’ Y NO POR LO QUE HACEN CON AQUELLO QUE SABEN.&lt;/strong&gt; El mundo no paga a los hombres por lo que ‘saben’. Les pagan por lo que hacen, o impulsan a hacer a otros.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4. TEMOR ANTE LA COMPETENCIA DE LOS SEGUIDORES.&lt;/strong&gt; El líder que teme que uno de sus seguidores pueda ocupar su puesto está prácticamente condenado a ver cumplidos sus temores tarde o temprano. El líder capaz entrena a suplente en quienes pueda delegar, a voluntad, cualquiera de los detalles de su posición. Sólo de ese modo un líder puede multiplicarse y prepararse para estar en muchos lugares, y prestar atención a muchas cosas al mismo tiempo. Es una verdad eterna que los hombres reciben más paga POR SU HABILIDAD PARA HACER QUE LOS DEMÁS TRABAJEN, que lo que ganarían por su propio esfuerzo. Un líder eficiente puede, a través del conocimiento de su trabajo y del magnetismo de su personalidad, aumentar en gran medida la eficacia de los demás, e inducirlos a rendir más y mejores servicios que los que rendirían sin su ayuda.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5. FALTA DE IMAGINACIÓN.&lt;/strong&gt; Sin imaginación, el líder es incapaz de superar las emergencias, y de crear planes que le permitan guiar con eficacia a sus seguidores.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;6. EGOÍSMO.&lt;/strong&gt; El líder que reclama todo el honor por el trabajo de sus seguidores está condenado a generar resentimientos. El verdadero líder no exige honor alguno. Le alegra ver que los honores, cuando los hay, son para sus seguidores, porque sabe que la mayoría de los hombres trabajarán con más entusiasmo por recomendaciones y reconocimientos, que sólo por dinero.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;7. INTEMPERANCIA.&lt;/strong&gt; Los seguidores no respetan a los líderes intemperantes. Además, la intemperancia en cualquiera de sus diversas formas destruye la resistencia y la vitalidad de cualquiera que se deje llevar por ella.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;8. DESLEALTAD. &lt;/strong&gt;Quizá esta causa debería encabezar la lista. El líder que no sea leal con su organización y con su equipo, con quienes está por encima de él y con quienes están por debajo, no podrá mantener mucho tiempo su liderazgo. La deslealtad le señala a uno como alguien que está en el nivel del polvo que pisamos, y atrae sobre su cabeza el desprecio que se merece. La falta de lealtad es una de las principales causas de fracaso en todos los terrenos de la vida.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;9. ACENTUAR LA ‘AUTORIDAD’ DEL LIDERAZGO.&lt;/strong&gt; El líder eficiente enseña mediante el estímulo y no intenta atemorizar a sus seguidores. El líder que trata de impresionar a sus seguidores con su ‘autoridad’ entra en la categoría del liderazgo por la fuerza. Si un líder lo es de verdad, no necesitará anunciarlo, a no ser mediante su conducta, es decir, con su simpatía, comprensión y sentido de la justicia, y demostrando, además, que conoce su trabajo.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;10. INSISTIR EN EL TÍTULO.&lt;/strong&gt; El líder competente no necesita ‘títulos’ para obtener el respeto de sus seguidores. El hombre que insiste demasiado en su título, generalmente no tiene mucho más en qué apoyarse. Las puertas de la oficina de un verdadero líder permanecen abiertas para todos aquellos que deseen entrar, y su lugar de trabajo está tan libre de formalidad como de ostentación.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Fuente: www.inteligencia-emocional.org&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-115959333897421397?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/115959333897421397/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=115959333897421397' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/115959333897421397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/115959333897421397'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2006/09/las-10-causas-del-fracaso-de-un.html' title='Las 10 Causas del fracaso de un liderazgo'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-115958510143788849</id><published>2006-09-29T23:58:00.000-03:00</published><updated>2007-01-19T11:39:42.192-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Código fuente'/><title type='text'>Personalizando el Datagrid (.NET 1.1)</title><content type='html'>Este es un artículo que escribí y publique en el sitio de &lt;a href="http://www.elguille.info/colabora/NET2006/ebuttiero_PersonalizarDatagrid.htm" target="blank"&gt;El Guille&lt;/a&gt; cuando estaba tratando de obtener mi cuarta estrella del programa &lt;a href="http://www.mslatam.com/latam/msdn/comunidad/dce2005/" target="blank"&gt;Desarrollador Cinco Estrellas&lt;/a&gt; de &lt;a href="http://www.microsoft.com" target="blank"&gt;Microsoft&lt;/a&gt;... pero se cerro para darle lugar a la edición 2005 y no llegue a publicar mi segundo artículo.. y mucho menos a obtener la 4ª estrella!!!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.elguille.info/colabora/NET2006/ebuttiero_PersonalizarDatagrid.htm" target="blank"&gt;Ir al artículo&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.mslatam.com/latam/msdn/comunidad/dce2005/" target="blank"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/3956/2426/320/dce.0.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-115958510143788849?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/115958510143788849/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=115958510143788849' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/115958510143788849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/115958510143788849'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2006/09/personalizando-el-datagrid-net-11.html' title='Personalizando el Datagrid (.NET 1.1)'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-115957374718736579</id><published>2006-09-29T20:42:00.000-03:00</published><updated>2006-09-29T20:49:07.196-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>Speed test</title><content type='html'>Aquí van un par de páginas interesante desde donde podemos medir la velocidad de nuestra conexión... (y de paso ver si el servicio por el que pagamos es el que nos estan brindando)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="http://www.abeltronica.com/velocimetro/pt/" href="http://www.abeltronica.com/velocimetro/pt/"&gt;http://www.abeltronica.com/velocimetro/pt/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="http://www.speakeasy.net/speedtest/" href="http://www.speakeasy.net/speedtest/"&gt;http://www.speakeasy.net/speedtest/&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.dslreports.com/speedtest"&gt;http://www.dslreports.com/speedtest&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-115957374718736579?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/115957374718736579/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=115957374718736579' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/115957374718736579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/115957374718736579'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2006/09/speed-test.html' title='Speed test'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-115951106716948969</id><published>2006-09-29T03:18:00.001-03:00</published><updated>2006-09-29T20:51:49.893-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>Mi primer post</title><content type='html'>Este sería mi primer post oficial... y considerando la hora que ya es la verdad que no da para escribir más de dos líneas.... así que para empezar voy con esta imagen que cada ves que veo me produce mucha gracia... ¿Uds.. creen que será así?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/3956/2426/1600/Proyecto.jpg"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/3956/2426/320/Proyecto.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-115951106716948969?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/115951106716948969/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=115951106716948969' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/115951106716948969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/115951106716948969'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2006/09/mi-primer-post.html' title='Mi primer post'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23594298.post-115951031899740449</id><published>2006-09-29T03:09:00.000-03:00</published><updated>2006-09-30T20:04:01.876-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>Yo</title><content type='html'>&lt;div align="center"&gt;&lt;a href="http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/3956/2426/320/DSC00512.0.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Y bue... ahora tengo blog!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;(2006) Ezequiel Buttiero&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23594298-115951031899740449?l=ebuttiero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebuttiero.blogspot.com/feeds/115951031899740449/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23594298&amp;postID=115951031899740449' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/115951031899740449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23594298/posts/default/115951031899740449'/><link rel='alternate' type='text/html' href='http://ebuttiero.blogspot.com/2006/09/yo.html' title='Yo'/><author><name>Ezequiel Buttiero</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://photos1.blogger.com/blogger/3956/2426/1600/DSC00512.0.jpg'/></author><thr:total>1</thr:total></entry></feed>
