<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Angel Hernández</title><subtitle type="html">Microsoft MVP ASP/ASP.NET</subtitle><id>http://msmvps.com/blogs/angelhernandez/atom.aspx</id><link rel="alternate" type="text/html" href="http://msmvps.com/blogs/angelhernandez/default.aspx" /><link rel="self" type="application/atom+xml" href="http://msmvps.com/blogs/angelhernandez/atom.aspx" /><generator uri="http://communityserver.org" version="4.0.30619.63">Community Server</generator><updated>2008-01-14T21:57:00Z</updated><entry><title>Accessing a managed object from unmanaged memory (Native)</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/10/04/accessing-a-managed-object-from-unmanaged-memory-native.aspx" /><id>/blogs/angelhernandez/archive/2008/10/04/accessing-a-managed-object-from-unmanaged-memory-native.aspx</id><published>2008-10-04T16:49:00Z</published><updated>2008-10-04T16:49:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;I&amp;#39;m currently writing an article that&amp;#39;s related to WPF, Win32&amp;nbsp;and &lt;a href="http://msdn.microsoft.com/en-us/library/ms632589(VS.85).aspx"&gt;Hooks&lt;/a&gt;&amp;nbsp;which use &lt;a href="http://en.wikipedia.org/wiki/Callback_(computer_science)"&gt;callbacks&lt;/a&gt;&amp;nbsp; to notify about the changes performed on a given object, well I received a couple of exceptions due to garbage collection and the callbacks my application had that moment. The solution was to implement&amp;nbsp;the &lt;a href="http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.gchandle.aspx"&gt;GCHandle&lt;/a&gt;&amp;nbsp;structure and problem sorted. Below you can see the implementation &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;img width="1045" src="http://hgzzwq.bay.livefilestore.com/y1pUv3seMC75nd5-gTBnWQO3JmE5kstOyvPMDs2mW3vmQ7arhDYRm87P-TTIt02ULwH75uDIDK-JF8/GCHandle.jpg" height="662" alt="" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Regards,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Angel&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1649719" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry><entry><title>Accediendo un objeto gestionado desde memoria no gestionada (Nativa)</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/10/04/accediendo-un-objeto-gestionado-desde-memoria-no-gestionada-nativa.aspx" /><id>/blogs/angelhernandez/archive/2008/10/04/accediendo-un-objeto-gestionado-desde-memoria-no-gestionada-nativa.aspx</id><published>2008-10-04T16:22:00Z</published><updated>2008-10-04T16:22:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Actualmente el art&amp;iacute;culo que escribo tiene que ver con WPF, Win32 y manejo de ganchos (&lt;a href="http://msdn.microsoft.com/en-us/library/ms632589(VS.85).aspx"&gt;Hooks&lt;/a&gt;) los cuales hacen uso de &lt;a href="http://en.wikipedia.org/wiki/Callback_(computer_science)"&gt;callbacks&lt;/a&gt; para notificar sobre los cambios realizados sobre de un objeto, pues bien recib&amp;iacute; un par de excepciones porque el colector de basura estaba manipulando los callback que ten&amp;iacute;a en un momento dado. La soluci&amp;oacute;n fue implementar la estructura &lt;a href="http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.gchandle.aspx"&gt;GCHandle&lt;/a&gt; y problema resuelto. Anexo muestro su implementaci&amp;oacute;n&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;img width="1045" src="http://hgzzwq.bay.livefilestore.com/y1pUv3seMC75nd5-gTBnWQO3JmE5kstOyvPMDs2mW3vmQ7arhDYRm87P-TTIt02ULwH75uDIDK-JF8/GCHandle.jpg" height="662" alt="" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Saludos,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Angel&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1649716" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry><entry><title>Retrieving file path from IsolatedStorage</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/10/04/retrieving-file-path-from-isolatedstorage.aspx" /><id>/blogs/angelhernandez/archive/2008/10/04/retrieving-file-path-from-isolatedstorage.aspx</id><published>2008-10-04T15:57:00Z</published><updated>2008-10-04T15:57:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Some days ago I was working on a new article and I needed to retrieve a file embedded in my assembly, I usually extract it&amp;nbsp;into the TEMP folder but&amp;nbsp;before publishing anything (code)&amp;nbsp;I test it&amp;nbsp;on virtual machines and it failed on Windows Server 2008&amp;nbsp; &lt;img src="http://msmvps.com/emoticons/emotion-6.gif" alt="Sad" /&gt;&amp;nbsp; but after investigating the cause I finally found the problem... Permissions.&amp;nbsp; Anyways, I wrote a method which returns the path of a file in the IsolatedStorage so we can reference it anywhere in our application. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;img width="1017" src="http://hgzzwq.bay.livefilestore.com/y1pYyQgdurX_BFz0-aBHhBSogMP2x0fZyJl0Fck8__vc3zmk7rwJIPWMKs_JUzrwLa3ddZF-joeFnw/IsolatedStorage.jpg" height="505" alt="" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Regards,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Angel&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1649711" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry><entry><title>Recuperando ruta de archivo en el IsolatedStorage</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/10/04/recuperando-ruta-de-archivo-en-el-isolatedstorage.aspx" /><id>/blogs/angelhernandez/archive/2008/10/04/recuperando-ruta-de-archivo-en-el-isolatedstorage.aspx</id><published>2008-10-04T15:44:00Z</published><updated>2008-10-04T15:44:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;En d&amp;iacute;as pasados trabajando en un art&amp;iacute;culo nuevo tuve la necesidad de recuperar un archivo incrustado como recurso en mi ensamblaje, por lo general siempre lo extraigo en el directorio TEMP pero antes de publicar algo siempre lo&amp;nbsp;pruebo en m&amp;aacute;quinas virtuales y en una con Windows Server 2008 fall&amp;oacute; &lt;img src="http://msmvps.com/emoticons/emotion-6.gif" alt="Sad" /&gt; por lo que despu&amp;eacute;s de&amp;nbsp;investigar el problema llegu&amp;eacute; al problema... Permisos. En fin, para evitar eso escrib&amp;iacute; una funci&amp;oacute;n que permite&amp;nbsp;recuperar la ruta del archivo en el IsolatedStorage de manera que lo podemos referenciar desde&amp;nbsp;nuestra aplicaci&amp;oacute;n.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;img width="1017" src="http://hgzzwq.bay.livefilestore.com/y1pYyQgdurX_BFz0-aBHhBSogMP2x0fZyJl0Fck8__vc3zmk7rwJIPWMKs_JUzrwLa3ddZF-joeFnw/IsolatedStorage.jpg" height="505" alt="" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Saludos,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Angel&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1649708" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry><entry><title>Implementing LINQ on SharePoint</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/10/04/implementing-linq-on-sharepoint.aspx" /><id>/blogs/angelhernandez/archive/2008/10/04/implementing-linq-on-sharepoint.aspx</id><published>2008-10-04T14:07:00Z</published><updated>2008-10-04T14:07:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;a href="http://es.wikipedia.org/wiki/LINQ"&gt;LINQ&lt;/a&gt;&amp;nbsp;&amp;nbsp;has been with us since .NET Framework 3.0 and has given us a&amp;nbsp;variety of options in terms&amp;nbsp;of performing queries, the simple fact of having a query engine built into the language is really interesting,&amp;nbsp; during this time I&amp;#39;ve used LINQ to query objects collections, XML&amp;nbsp;and SQL server data sources but I haven&amp;#39;t ever tried it on SharePoint. I&amp;#39;m currently developing a framework for SharePoint based projects for&amp;nbsp;the company I work for &lt;a href="http://www.customware.net"&gt;CustomWare&lt;/a&gt;, which has given me freedom to create and innovate with new technology on the projects I&amp;#39;m engaged on and this is really cool, well until now we&amp;#39;ve been used to retrieve/manipulate a given object member of a collection by implementing for... foreach&amp;nbsp;&amp;nbsp;recursive loops however it&amp;#39;s not an elegant or stylized way but it works, we&amp;#39;ve always heard that &amp;quot;Necessity is the mother of all invention&amp;quot; and it&amp;#39;s true because a couple of days ago I needed to &amp;quot;query&amp;quot; about the existence of a specific object in a SharePoint Site so I tried to accomplish it with LINQ and yea... It works perfectly &lt;img src="http://msmvps.com/emoticons/emotion-2.gif" alt="Big Smile" /&gt; The following method&amp;nbsp;returns a &amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998329.aspx"&gt;SPListItem&lt;/a&gt; through a LINQ based query &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;font-family:Calibri;"&gt;&lt;img width="606" src="http://g5cxhw.bay.livefilestore.com/y1pIGTtyiwkmUXDyh0Z9v4kzFA41HSpYvfNog-GlogdcW3BKDwgwknm2BSlxp5v-AACjL5KtGLqro8/LINQ_WSS.jpg" height="464" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;font-family:Calibri;"&gt;However... We must comment about a couple of things here: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;font-family:Calibri;"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb397696.aspx"&gt;Anonymous&amp;nbsp;Type&lt;/a&gt; ,&amp;nbsp; once a LINQ query is built the developer can then select a subset (properties) of the collection doing so obtains an &amp;quot;anonymous type&amp;quot; which is an object without a class definition, because the compiler infers the properties&amp;#39; type at runtime (feature present in &lt;a href="http://es.wikipedia.org/wiki/F_Sharp"&gt;F#&lt;/a&gt; as well).&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb397687.aspx"&gt;Lambda Expressions&lt;/a&gt;,&amp;nbsp; is&amp;nbsp;an anonymous function that may contain expressions and statements,&amp;nbsp; and can be used to create delegates or expression tree types.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anonymous types can&amp;#39;t be passed within methods because they don&amp;#39;t have a &amp;quot;defined class&amp;quot; and they&amp;#39;re inferred by the compiler, leaving us three ways to retrieve their value which are:&amp;nbsp; &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Iterating through the resultset returned by the query &lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Use Reflection (but we need to be careful about performance impact)&amp;nbsp; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img width="606" src="http://g5cxhw.bay.livefilestore.com/y1pZju32puG_6RV9Onun1HoFsI-FXY8bEqm04xSB35VhWca-CVHvAgBp-cnhSKjT5MEQ_P4DvdMizg/Reflection.jpg" height="162" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use a method to perform a cast but the only catch is... We can&amp;#39;t call it outside the same assembly&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img width="507" src="http://g5cxhw.bay.livefilestore.com/y1pnxXwHymfjnPyFyjpptNORCUV674lHKnwY2awISYI8DvXgOH7p-N_3wTi4BrV0ToexG41VcXCCnM/Cast_Anonymous.jpg" height="176" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;I hope this may be of some usefulness&lt;/p&gt;
&lt;p&gt;A hug&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;font-family:Calibri;"&gt;&lt;font color="#0000ff" face="Calibri" style="FONT-SIZE:12pt;"&gt;&lt;font color="#0000ff" face="Calibri" style="FONT-SIZE:12pt;"&gt;
&lt;p&gt;Angel&lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;font color="#0000ff" face="Calibri" style="FONT-SIZE:12pt;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1649707" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry><entry><title>Implementando LINQ con SharePoint</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/10/04/implementando-linq-con-sharepoint.aspx" /><id>/blogs/angelhernandez/archive/2008/10/04/implementando-linq-con-sharepoint.aspx</id><published>2008-10-04T11:24:00Z</published><updated>2008-10-04T11:24:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;a href="http://es.wikipedia.org/wiki/LINQ"&gt;LINQ&lt;/a&gt;&amp;nbsp; ha estado con nosotros desde la versi&amp;oacute;n 3.0 del .NET Framework&amp;nbsp; y consigo nos ha dado una variedad de opciones en t&amp;eacute;rminos de realizar consultas, el hecho de tener un motor de consulta que forma parte del lenguaje es realmente interesante, durante este tiempo he utilizado LINQ para consultar colecciones de objetos, XML y or&amp;iacute;genes de datos basados en SQL pero nunca lo hab&amp;iacute;a implementado para SharePoint. Actualmente desarrollo un marco de trabajo para proyectos&amp;nbsp; basados en SharePoint para mi empresa actual &lt;a href="http://www.customware.net"&gt;CustomWare&lt;/a&gt;, la cual me ha dado libertad de crear e innovar con nueva tecnolog&amp;iacute;a en los proyectos, lo cual me emociona mucho, pues bien hasta ahora la manera que ten&amp;iacute;amos de recuperar/manipular un objeto espec&amp;iacute;fico de una colecci&amp;oacute;n era mediante la implementaci&amp;oacute;n de for&amp;hellip; y foreach&amp;hellip; recursivos sin embargo es algo no muy elegante &amp;oacute; estilizado pero hace el trabajo y funciona, se dice que la necesidad es la madre de toda creaci&amp;oacute;n y es verdad porque hace un par de d&amp;iacute;as atr&amp;aacute;s necesitaba &amp;ldquo;consultar&amp;rdquo; sobre la existencia de un objeto espec&amp;iacute;fico en un Site de SharePoint y me puse a probar como se podr&amp;iacute;a conseguir eso con LINQ y si&amp;hellip; Funciona de maravilla &lt;img src="http://msmvps.com/emoticons/emotion-2.gif" alt="Big Smile" /&gt; El siguiente m&amp;eacute;todo retorna un &lt;a href="http://msdn.microsoft.com/en-us/library/ms998329.aspx"&gt;SPListItem&lt;/a&gt; a trav&amp;eacute;s de una consulta basada en LINQ&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;font-family:Calibri;"&gt;&lt;img width="606" src="http://g5cxhw.bay.livefilestore.com/y1pIGTtyiwkmUXDyh0Z9v4kzFA41HSpYvfNog-GlogdcW3BKDwgwknm2BSlxp5v-AACjL5KtGLqro8/LINQ_WSS.jpg" height="464" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;font-family:Calibri;"&gt;Sin embargo&amp;hellip; vale la pena acotar unas cosas ac&amp;aacute;:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;font-family:Calibri;"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb397696.aspx"&gt;Tipos an&amp;oacute;nimos&lt;/a&gt;, cuando se crea una consulta en LINQ se puede seleccionar un subconjunto (propiedades)&amp;nbsp; de la colecci&amp;oacute;n creando as&amp;iacute; un &amp;ldquo;tipo an&amp;oacute;nimo&amp;rdquo; que es un objeto sin definici&amp;oacute;n previa de una&amp;nbsp;clase, ya que el compilador infiere el tipo de las propiedades en tiempo de ejecuci&amp;oacute;n (caracter&amp;iacute;stica presente en &lt;a href="http://es.wikipedia.org/wiki/F_Sharp"&gt;F#&lt;/a&gt; tambi&amp;eacute;n).&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb397687.aspx"&gt;Expresiones Lambda&lt;/a&gt;, es una funci&amp;oacute;n an&amp;oacute;nima que puede contener expresiones y declaraciones que pueden ser utilizadas para crear delegados &amp;oacute; &amp;aacute;rboles de expresiones de tipo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los tipos an&amp;oacute;nimos no pueden ser pasados entre funciones ya que estos no tienen &amp;ldquo;clase definida&amp;rdquo; y ellos son inferidos por el compilador, por lo que tenemos tres maneras de recuperar su valor, las cuales menciono a continuaci&amp;oacute;n:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Iterando a trav&amp;eacute;s de los resultados retornados por la consulta &lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Utilizar Reflection (la cual debe usarse con cautela considerando el impacto sobre el rendimiento)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img width="606" src="http://g5cxhw.bay.livefilestore.com/y1pZju32puG_6RV9Onun1HoFsI-FXY8bEqm04xSB35VhWca-CVHvAgBp-cnhSKjT5MEQ_P4DvdMizg/Reflection.jpg" height="162" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Utilizar una funci&amp;oacute;n que realice la conversi&amp;oacute;n de tipo por nosotros, el &amp;uacute;nico detalle es que no puede ser utilizada desde fuera del ensamblaje&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img width="507" src="http://g5cxhw.bay.livefilestore.com/y1pnxXwHymfjnPyFyjpptNORCUV674lHKnwY2awISYI8DvXgOH7p-N_3wTi4BrV0ToexG41VcXCCnM/Cast_Anonymous.jpg" height="176" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Espero les sea &amp;uacute;til&lt;/p&gt;
&lt;p&gt;Un abrazo&lt;/p&gt;
&lt;span style="font-size:12pt;color:#0000ff;font-family:Calibri;"&gt;
&lt;p&gt;Angel&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1649703" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry><entry><title>C++ for creating webparts</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/09/07/c-for-creating-webparts.aspx" /><id>/blogs/angelhernandez/archive/2008/09/07/c-for-creating-webparts.aspx</id><published>2008-09-07T09:55:00Z</published><updated>2008-09-07T09:55:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Hi Community,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Attached you can find the slides and code for the session &amp;quot;&lt;a href="http://g5cwhw.bay.livefilestore.com/y1psi-s0MZfsuJL58h9eFl6rYnfNbY8MK-YbsYYaSOtbDid4AzX6Hp_kOC7xO21nZjGIhIb8Rmrw_BvTNvuwfjyBA/CppWebPart.zip?download"&gt;&lt;span style="color:#0065e2;"&gt;C++ for creating webparts&lt;/span&gt;&lt;/a&gt;&amp;quot; I presented at Tech-Ed. Please, feel free to download the material.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Cheers,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Angel&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Hola&amp;nbsp;Comunidad,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Anexo pueden encontrar la presentaci&amp;oacute;n y c&amp;oacute;digo de la sesi&amp;oacute;n&amp;nbsp;&amp;quot;&lt;a href="http://g5cwhw.bay.livefilestore.com/y1psi-s0MZfsuJL58h9eFl6rYnfNbY8MK-YbsYYaSOtbDid4AzX6Hp_kOC7xO21nZjGIhIb8Rmrw_BvTNvuwfjyBA/CppWebPart.zip?download"&gt;&lt;span style="color:#0065e2;"&gt;C++ for creating webparts&lt;/span&gt;&lt;/a&gt;&amp;quot; que acabo de presentar en&amp;nbsp;Tech-Ed. Por favor, si&amp;eacute;ntanse libres de descargar el material.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Saludos,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1647061" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry><entry><title>ADO.NET Data Services</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/09/04/ado-net-data-services.aspx" /><id>/blogs/angelhernandez/archive/2008/09/04/ado-net-data-services.aspx</id><published>2008-09-04T07:52:00Z</published><updated>2008-09-04T07:52:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Hi Community,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Attached you can find the slides and code for the session &amp;quot;&lt;a href="http://g5cwhw.bay.livefilestore.com/y1pwm4HXcBuhW8wAuKVa6YH187Q1vWO8zqoKBOOmNWZrRJmg9Uc0BDXRLGN8OxvN6Lrb1OaRQLHGpKOBLF3J4lQdA/Astoria.zip?download"&gt;ADO.NET Data Services&lt;/a&gt;&amp;quot; I just presented at Tech-Ed. Please, feel free to download the material.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Cheers,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Angel&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
&lt;hr /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Hola&amp;nbsp;Comunidad,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Anexo pueden encontrar la presentaci&amp;oacute;n y c&amp;oacute;digo de la sesi&amp;oacute;n&amp;nbsp;&amp;quot;&lt;a href="http://g5cwhw.bay.livefilestore.com/y1pwm4HXcBuhW8wAuKVa6YH187Q1vWO8zqoKBOOmNWZrRJmg9Uc0BDXRLGN8OxvN6Lrb1OaRQLHGpKOBLF3J4lQdA/Astoria.zip?download"&gt;ADO.NET Data Services&lt;/a&gt;&amp;quot; que acabo de presentar en&amp;nbsp;Tech-Ed. Por favor, si&amp;eacute;ntanse libres de descargar el material.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Saludos,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#0000ff;"&gt;&lt;span style="font-family:Calibri;"&gt;Angel&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1646717" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry><entry><title>Teatro MVP en Tech Ed Australia 2008</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/08/19/teatro-mvp-en-tech-ed-australia-2008.aspx" /><id>/blogs/angelhernandez/archive/2008/08/19/teatro-mvp-en-tech-ed-australia-2008.aspx</id><published>2008-08-19T11:22:00Z</published><updated>2008-08-19T11:22:00Z</updated><content type="html">&lt;p&gt;&lt;img src="https://aunz.msteched.com/resources/template_files/aunz_hero.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;Hola Comunidad,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;S&amp;iacute; est&amp;aacute;s registrad@ para Tech Ed Australia este a&amp;ntilde;o, ac&amp;eacute;rcate al Teatro MVP para que puedas asistir a sesiones impartidas por MVPs que var&amp;iacute;an de 20 a 75 minutos. Hay s&amp;oacute;lo 20 asientos en el Teatro MVP, por lo que debes llegar r&amp;aacute;pido al Sal&amp;oacute;n de Exposiciones s&amp;iacute; est&amp;aacute;s interesado en entrar a una de estas sesiones. La agenda para el Teatro MVP la puedes ver ac&amp;aacute; The Agenda for MVP Theater is &lt;a href="https://aunz.msteched.com/au/public/mvptheatre.aspx"&gt;ac&amp;aacute;&lt;/a&gt; (por favor cheque&amp;aacute;la por actualizaciones de &amp;uacute;ltimo momento).&amp;nbsp; Para asistir, debes ser un delegado registrado, en caso que no hayas comprado a&amp;uacute;n tu entrada para Tech Ed, puedes registrarte &lt;a href="http://www.microsoft.com.au/teched/default.aspx"&gt;aqu&amp;iacute;&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;Estar&amp;eacute; presentando&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt; MVP301 - C++ para la creaci&amp;oacute;n de webparts el Viernes 5 September a las&amp;nbsp; 14:00 - 15:15. &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt; MVP302 - ADO.NET Data Services (alias Astoria) el Jueves 4 Septiembre a las 14:00 - 15:15.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;Los asistentes al Teatro MVP recibir&amp;aacute;n un llavero luminoso con el logo de MVP (pilas no inclu&amp;iacute;das), por lo que debes llegar temprano! &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;No puedes pre-registrarte para las sesiones del Teatro MVP; el primero que llega reserva su asiento &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;Espero verlos en Tech Ed Australia en unas semanas!&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;Saludos,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt; Angel&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1645054" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry><entry><title>MVP Theater @ Tech-Ed Australia 2008</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/08/19/mvp-theater-tech-ed-australia-2008.aspx" /><id>/blogs/angelhernandez/archive/2008/08/19/mvp-theater-tech-ed-australia-2008.aspx</id><published>2008-08-19T06:45:00Z</published><updated>2008-08-19T06:45:00Z</updated><content type="html">&lt;p&gt;&lt;img src="https://aunz.msteched.com/resources/template_files/aunz_hero.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;Hi community,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;If you are registered for Tech Ed Australia this year, come along to MVP Theater to watch MVPs delivering sessions ranging from 20 minutes to the full 75 minutes. There are only 20 seats in MVP Theater, so you need to be quick getting to the Expo Hall if you&amp;#39;re serious about catching an MVP Session. The Agenda for MVP Theater is &lt;a href="https://aunz.msteched.com/au/public/mvptheatre.aspx"&gt;here&lt;/a&gt; (please watch it for last minute updates). To attend, you must be a registered delegate, so if you haven&amp;#39;t bought you Tech Ed ticket yet, you can &lt;a href="http://www.microsoft.com.au/teched/default.aspx"&gt;register&lt;/a&gt; here.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt; I&amp;#39;m presenting&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt; MVP301 - C++ for creating webparts on Friday 5 September at 14:00 - 15:15. &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt; MVP302 - ADO.NET Data Services (a.k.a. Astoria) on Thursday 4 September at 14:00 - 15:15.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;Seated attendees to MVP Theater each receive an MVP Logo wind-up torch keyring (no battery!), so you need to be quick! &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;You can&amp;#39;t pre-register for MVP theater sessions; it&amp;#39;s first in first seated.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;We look forward to see you at Tech Ed Australia in a few weeks!&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;Cheers,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt; Angel&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1645052" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry><entry><title>HeapWalker</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/07/21/heapwalker.aspx" /><id>/blogs/angelhernandez/archive/2008/07/21/heapwalker.aspx</id><published>2008-07-21T12:21:00Z</published><updated>2008-07-21T12:21:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;Hola comunidad,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;Anexo pueden encontrar el c&amp;oacute;digo de &lt;a href="http://g5cwhw.bay.livefilestore.com/y1pF2UdiqehZTmCdWD6yxzkqeUvOVzZcJ_9iWpWoA1HeL9uonMcZUB-I8FjLzFngPoRVW517jK7n8cfDhA4sApYQQ/HeapWalker.rar?download"&gt;HeapWalker&lt;/a&gt;, un utilitario que permite recorrer los montones (heaps) de los procesos en ejecuci&amp;oacute;n. Lo acabo de terminar tras haber comenzado la semana pasada. Pr&amp;oacute;ximamente estar&amp;eacute; publicando el art&amp;iacute;culo sobre la tecnolog&amp;iacute;a utilizada en el proyecto, sin embargo pueden ir probando la herramienta.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;Un abrazo, &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;Angel&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;Hi community,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;Attached you can find the &lt;a href="http://g5cwhw.bay.livefilestore.com/y1pF2UdiqehZTmCdWD6yxzkqeUvOVzZcJ_9iWpWoA1HeL9uonMcZUB-I8FjLzFngPoRVW517jK7n8cfDhA4sApYQQ/HeapWalker.rar?download"&gt;HeapWalker&lt;/a&gt;&amp;#39;s code, an utility that allows to walk through running processes heaps. I just finished it after starting a week ago. I&amp;#39;ll be publishing the related article pretty soon, however feel free to download it and test it.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;A hug,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:blue;"&gt;&lt;span style="font-family:Calibri;"&gt;Angel&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1641603" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry><entry><title>Some pictures from MVP Global Summit 2008 / Algunas fotos del Summit Mundial de MVP 2008</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/05/26/some-pictures-from-mvp-global-summit-2008-algunas-fotos-del-summit-mundial-de-mvp-2008.aspx" /><id>/blogs/angelhernandez/archive/2008/05/26/some-pictures-from-mvp-global-summit-2008-algunas-fotos-del-summit-mundial-de-mvp-2008.aspx</id><published>2008-05-26T09:50:00Z</published><updated>2008-05-26T09:50:00Z</updated><content type="html">&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Hi community,&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Attached you can find some pictures from the MVP Global Summit 2008.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Kind regards,&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Angel&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Hola comunidad,&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Anexo podrán encontrar unas fotos del Summit Mundial de MVP 2008. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Saludos cordiales,&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Angel&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table class=""&gt;

&lt;tr&gt;
&lt;td class=""&gt;&lt;a href="http://msmvps.com/photos/angelhernandez/images/1627451/original.aspx"&gt;&lt;img height="150" src="http://msmvps.com/photos/angelhernandez/images/1627451/original.aspx" width="150" alt="" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td class=""&gt;&lt;a href="http://msmvps.com/photos/angelhernandez/images/1627453/original.aspx"&gt;&lt;img height="150" src="http://msmvps.com/photos/angelhernandez/images/1627453/original.aspx" width="150" alt="" /&gt; &lt;/a&gt;&lt;/td&gt;
&lt;td class=""&gt;&lt;a href="http://msmvps.com/photos/angelhernandez/images/1627454/original.aspx"&gt;&lt;img height="150" src="http://msmvps.com/photos/angelhernandez/images/1627454/original.aspx" width="150" alt="" /&gt; &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;&lt;a href="http://msmvps.com/photos/angelhernandez/images/1627458/original.aspx"&gt;&lt;img height="150" src="http://msmvps.com/photos/angelhernandez/images/1627458/original.aspx" width="150" alt="" /&gt; &lt;/a&gt;&lt;/td&gt;
&lt;td class=""&gt;&lt;a href="http://msmvps.com/photos/angelhernandez/images/1627462/original.aspx"&gt;&lt;img height="150" src="http://msmvps.com/photos/angelhernandez/images/1627462/original.aspx" width="150" alt="" /&gt; &lt;/a&gt;&lt;/td&gt;
&lt;td class=""&gt;&lt;a href="http://msmvps.com/photos/angelhernandez/images/1627463/original.aspx"&gt;&lt;img height="150" src="http://msmvps.com/photos/angelhernandez/images/1627463/original.aspx" width="150" alt="" /&gt; &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1627438" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry><entry><title>Virtualization Tools</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/05/23/virtualization-tools.aspx" /><id>/blogs/angelhernandez/archive/2008/05/23/virtualization-tools.aspx</id><published>2008-05-23T15:17:00Z</published><updated>2008-05-23T15:17:00Z</updated><content type="html">&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Hi community,&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;This post is intented to inform about some free tools to virtualize which are available right now. &amp;nbsp;We first&amp;nbsp;have &lt;a class="" href="http://www.microsoft.com/downloads/details.aspx?familyid=28c97d22-6eb8-4a09-a7f7-f6c7a1f000b5&amp;amp;displaylang=en"&gt;&lt;font color="#006ff7"&gt;Microsoft Virtual PC 2007 SP1&lt;/font&gt;&lt;/a&gt; which it was released a few days ago, we also have&amp;nbsp;&lt;a class="" href="http://www.microsoft.com/technet/virtualserver/software/default.mspx"&gt;&lt;font color="#006ff7"&gt;Microsoft Virtual PC 2005 R2 SP1&lt;/font&gt;&lt;/a&gt; which allows us even to create clusters and last but not least we have&amp;nbsp;&lt;a class="" href="http://www.virtualbox.org/"&gt;&lt;font color="#006ff7"&gt;VirtualBox&lt;/font&gt;&lt;/a&gt; that was recently acquired by&amp;nbsp;&lt;a class="" href="http://www.sun.com/"&gt;&lt;font color="#006ff7"&gt;Sun Microsystems&lt;/font&gt;&lt;/a&gt;.&amp;nbsp; However if you want to try&amp;nbsp; &lt;a class="" href="http://www.microsoft.com/windowsserver2008/en/us/hyperv-faq.aspx"&gt;&lt;font color="#006ff7"&gt;Hyper-V&lt;/font&gt;&lt;/a&gt; you&amp;#39;ll need to deploy&amp;nbsp;Windows Server 2008.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;A hug,&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Angel&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1626481" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry><entry><title>Herramientas de virtualización</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/05/23/herramientas-de-virtualizaci-243-n.aspx" /><id>/blogs/angelhernandez/archive/2008/05/23/herramientas-de-virtualizaci-243-n.aspx</id><published>2008-05-23T14:58:00Z</published><updated>2008-05-23T14:58:00Z</updated><content type="html">&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Hola comunidad,&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Este post tiene próposito informar de unas herramientas para virtualizar gratuitas que están disponibles actualmente. La primera es &lt;a class="" href="http://www.microsoft.com/downloads/details.aspx?familyid=28c97d22-6eb8-4a09-a7f7-f6c7a1f000b5&amp;amp;displaylang=en"&gt;Microsoft Virtual PC 2007 SP1&lt;/a&gt; que fue liberado hace pocos días, también tenemos &lt;a class="" href="http://www.microsoft.com/technet/virtualserver/software/default.mspx"&gt;Microsoft Virtual PC 2005 R2 SP1&lt;/a&gt; con el cual podemos crear inclusive clústeres y por último &lt;a class="" href="http://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt; que fue adquirido hace poco por &lt;a class="" href="http://www.sun.com/"&gt;Sun Microsystems&lt;/a&gt;. Sin embargo si desean probar &lt;a class="" href="http://www.microsoft.com/windowsserver2008/en/us/hyperv-faq.aspx"&gt;Hyper-V&lt;/a&gt; es necesario utilizar Windows Server 2008.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Un abrazo,&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Angel&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1626467" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry><entry><title>Evitando Llamadas Ilegales entre Hilos en WPF</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/03/22/evitando-llamadas-ilegales-entre-hilos-en-wpf.aspx" /><id>/blogs/angelhernandez/archive/2008/03/22/evitando-llamadas-ilegales-entre-hilos-en-wpf.aspx</id><published>2008-03-22T14:06:00Z</published><updated>2008-03-22T14:06:00Z</updated><content type="html">&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Hola comunidad,&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Este post trata de cómo evitar la temida excepción de &amp;quot;Llamada Ilegal entre Hilos&amp;quot; en &lt;a class="" href="http://en.wikipedia.org/wiki/Windows_Presentation_Foundation"&gt;WPF&lt;/a&gt;,&amp;nbsp;aún cuando las aplicaciones basadas en múltiples hilos son más díficiles de depurar y mantener en algunas ocasiones necesitamos implementar algún mecanismo basado en hilos para refrescar y actualizar elementos de la interfaz de usuario. WPF no puede escapar a este hecho como tampoco lo puede hacer &lt;a class="" href="http://en.wikipedia.org/wiki/Graphics_Device_Interface"&gt;GDI&lt;/a&gt;. Antes de adentrarnos en los detalles de como podemos lograr esto este es un buen momento para hablar un poco de WPF básico. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Lo Básico&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;WPF es un componente fundamental&amp;nbsp;en &lt;a class="" href="http://en.wikipedia.org/wiki/.NET_Framework#.NET_Framework_3.0"&gt;.NET Framework 3.0&lt;/a&gt;,&amp;nbsp;junto con&amp;nbsp;&lt;a class="" href="http://en.wikipedia.org/wiki/Windows_Communication_Foundation"&gt;WCF&lt;/a&gt;, &lt;a class="" href="http://en.wikipedia.org/wiki/Windows_Workflow_Foundation"&gt;WF&lt;/a&gt;&amp;nbsp;y &lt;a class="" href="http://en.wikipedia.org/wiki/Windows_CardSpace"&gt;CardSpace&lt;/a&gt;. WPF está llamado a ser el sucesor de tecnologías como&amp;nbsp;GDI&amp;nbsp;y GDI+. GDI ha estado ofreciendo servicios de interfaz de usuario desde Windows 1.0 y con el paso de los años ha crecido en tamaño y complejidad. GDI+ su sucesor fue presentado con&amp;nbsp;el lanzamiento de&amp;nbsp;Windows XP,&amp;nbsp; la diferencia entre&amp;nbsp;GDI&amp;nbsp;y GDI+ es que el segundo está escrito enteramente en&amp;nbsp;C++ y ofrece más capacidades. Microsoft&amp;nbsp;ha estado trabajando para ofrecer a los desarrolladores una platafora que facilite y mejore el desarrollo mientras que al mismo tiempo la sintaxis y manera de codificar sea la misma, ese es el próposito principal del .NET Framework. Desde&amp;nbsp;el .NET Framework 1.0 hemos podido crear aplicaciones para Windows&amp;nbsp;basadas en&amp;nbsp;Windows Forms, que es una rica infraestructura&amp;nbsp;que encapsula&amp;nbsp;GDI&amp;nbsp;y GDI+,&amp;nbsp;sin embargo aún utilizamos elementos de la interfaz de usuario que teníamos hace 10 años atrás, así que Microsoft presentó un motor gráfico más nuevo y moderno que está basado&amp;nbsp;en DirectX. WPF (nombre código&amp;nbsp;Avalon) había nacido.&amp;nbsp;La imagen mostrada a continuación muestra los componentes principales de&amp;nbsp; WPF (Las secciones en rojo son las porciones de mayor código de WPF). Está casi escrito totalmente en código gestionado excepto por el&amp;nbsp;Milcore que es código nativo lo cual permite una fuerte integración con &lt;a class="" href="http://en.wikipedia.org/wiki/Directx"&gt;DirectX&lt;/a&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;img height="471" alt="" src="http://wzxuna.bay.livefilestore.com/y1pAVTBZWDRiK31AsoUOEPUpnnepXDzr2nKl-T9Ck_cZtD-x2_2LxrYOPg5gXdJqXInBbu0p4gWQ0rzs-McJnFGTg/WPF_Arch.jpg" width="381" border="0" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;En User32&amp;nbsp;y GDI el sistema trabaja en un modo de recorte inmediato&amp;nbsp;(áreas inválidas) que deben redibujarse, en la otra mano WPF utiliza un modelo de dibujo basado en &amp;quot;algoritmo de pintor&amp;quot;, esto quiere decir que en vez de recortar cada componente, cada componente es dibujado de atrás hacia adelante. Esto permite a cada componente pintar sobre la representación previa del componente. La ventaja de este modelo es que podemos tener formas complejas, parcialmente transparentes y ya que se ejecuta sobre le motor de DirectX podemos incrustar elementos de multimedia en objetos de la interfaz de usuario también. Otra ventaja encontrada en WPF es la utilización de un lenguaje declarativo para crear elementos de la interfaz de usuario, &lt;a class="" href="http://en.wikipedia.org/wiki/XAML"&gt;XAML&lt;/a&gt;. Esto permite la creación de sorprendentes interfaces de usuario por diseñadores gráficos y la lógica tras estas por parte de los desarrolladores. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Evitando Llamadas Ilegales entre Hilos en&amp;nbsp;WPF&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Qué es una llamada ilegal entre hilos después de todo? Ésta situación se presenta sí uno trata de actualizar algún elemento de la interfaz de usuario, como un cuadro de lista al manipular su colección de elementos desde un hilo distinto al que ejecuta el elemento de interfaz de usuario. Esto no es permitido porque el sistema operativo no puede garantizar la integridad de la colección de elementos de manera que le corresponde al desarrollador hácerlo. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;En WPF podemos encontrar una nueva propiedad en los elementos de interfaz de usuario llamada &amp;quot;&lt;a class="" href="http://msdn2.microsoft.com/en-us/library/system.windows.threading.dispatcher.aspx"&gt;Dispatcher&lt;/a&gt;&amp;quot; que permite a través de punteros a funciones gestionados ó delegados realizar acciones en elementos de la interfaz de usuario sin incurrir en &amp;quot;Llamadas Ilegales entre Hilos&amp;quot;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;img height="98" alt="" src="http://wzxuna.bay.livefilestore.com/y1pAVTBZWDRiK2ihmddDi0L6g9H0ynr-vdpyeC_C3NZ-NbS5O2LvVp6l9iN_p9R3xoefNb0Tpl16nq3EXYZpO3U1A/Dispatcher.jpg" width="658" border="0" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;Saludos cordiales,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;Angel&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1550191" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry><entry><title>Avoiding Illegal Thread Calls in WPF</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/03/22/avoiding-illegal-thread-calls-in-wpf.aspx" /><id>/blogs/angelhernandez/archive/2008/03/22/avoiding-illegal-thread-calls-in-wpf.aspx</id><published>2008-03-22T12:41:00Z</published><updated>2008-03-22T12:41:00Z</updated><content type="html">&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Hi Community,&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;This post is about avoiding the dreaded &amp;quot;Illegal Thread Call&amp;quot; exception in &lt;a class="" href="http://en.wikipedia.org/wiki/Windows_Presentation_Foundation"&gt;WPF&lt;/a&gt;,&amp;nbsp;even when multi-threaded applications are harder to debug and maintain sometimes we&amp;nbsp;need to implement some mechanism based on threads to refresh and update UI elements. WPF can&amp;#39;t escape this fact as &lt;a class="" href="http://en.wikipedia.org/wiki/Graphics_Device_Interface"&gt;GDI&lt;/a&gt; can&amp;#39;t either. Before delving into the details of how accomplish this it&amp;#39;s a good time to talk a bit about WPF basics.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;The Basics&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;WPF is a fundamental component in &lt;a class="" href="http://en.wikipedia.org/wiki/.NET_Framework#.NET_Framework_3.0"&gt;.NET Framework 3.0&lt;/a&gt;, along with &lt;a class="" href="http://en.wikipedia.org/wiki/Windows_Communication_Foundation"&gt;WCF&lt;/a&gt;, &lt;a class="" href="http://en.wikipedia.org/wiki/Windows_Workflow_Foundation"&gt;WF&lt;/a&gt; and &lt;a class="" href="http://en.wikipedia.org/wiki/Windows_CardSpace"&gt;CardSpace&lt;/a&gt;. WPF is called to be the sucessor of techologies such as GDI&amp;nbsp;and GDI+. GDI has been offering UI services since Windows 1.0 and throughout the years has grown in size and complexity. GDI+ its sucessor was introduced with Windows XP release, the difference between GDI&amp;nbsp;and GDI+ is that the second one is entirely written in C++ and offers more capabilities. Microsoft&amp;nbsp;has been working to offer developers&amp;nbsp;a platform to ease and improve development while at the same time the syntax and way of coding&amp;nbsp;to be&amp;nbsp;the same, that&amp;#39;s .NET Framework main purpose. Since .NET Framework 1.0 we&amp;#39;ve been able to create applications for Windows based on Windows Forms, a rich infraestructure that encapsulates GDI&amp;nbsp;and GDI+, however we&amp;#39;re still using UI elements we had 10 years ago, so Microsoft came up with a fresher and modern graphic engine based on DirectX. WPF (codename Avalon) was born.&amp;nbsp; The image depicted below shows WPF main components (The&amp;nbsp;sections in red are the major code portions of WPF). It&amp;#39;s almost entirely written in managed code except for Milcore that&amp;#39;s native so it enables a tight integration with &lt;a class="" href="http://en.wikipedia.org/wiki/Directx"&gt;DirectX&lt;/a&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;img height="471" alt="" src="http://wzxuna.bay.livefilestore.com/y1pAVTBZWDRiK31AsoUOEPUpnnepXDzr2nKl-T9Ck_cZtD-x2_2LxrYOPg5gXdJqXInBbu0p4gWQ0rzs-McJnFGTg/WPF_Arch.jpg" width="381" border="0" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;In User32 and GDI the system works&amp;nbsp;on an inmediate clipping mode (invalid areas) that need to be rendered, in the other hand WPF uses a &amp;quot;painter&amp;#39;s algorithm&amp;quot; painting model, this means that instead of clipping each component, each component is rendered from the back to the front of the display. This allows each component to paint over the previous component&amp;#39;s display. The advantage of this model is that we can have complex, partially transparent shapes and since it&amp;#39;s executing on top of DirectX engine we can embed multimedia elements into UI objects as well. Another advantage found in WPF is the use of a declarative language to create UI elements, &lt;a class="" href="http://en.wikipedia.org/wiki/XAML"&gt;XAML&lt;/a&gt;. This allows the creation of astonishing UI by graphic designers and the logic behind it by developers.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Avoiding Illegal Thread Calls in WPF&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;What is an illegal thread call after all? This situation presents&amp;nbsp;whether one tries to update any UI element, such a ListBox by manipulating its items collection&amp;nbsp;from a thread different than the thread that owns the UI element. This is not permitted because the operating system can&amp;#39;t guarantee the items collection integrity so it&amp;#39;s up to the developer to do that.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;In WPF we can find a new property in UI elements called &amp;quot;&lt;a class="" href="http://msdn2.microsoft.com/en-us/library/system.windows.threading.dispatcher.aspx"&gt;Dispatcher&lt;/a&gt;&amp;quot; that allows through the use of managed callbacks&amp;nbsp;or delegates perform actions on UI elements without incurring in &amp;quot;Illegal Thread Calls&amp;quot;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;img height="98" alt="" src="http://wzxuna.bay.livefilestore.com/y1pAVTBZWDRiK2ihmddDi0L6g9H0ynr-vdpyeC_C3NZ-NbS5O2LvVp6l9iN_p9R3xoefNb0Tpl16nq3EXYZpO3U1A/Dispatcher.jpg" width="658" border="0" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;Kind regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;Angel&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1550143" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry><entry><title>Actualmente estoy trabajando en...</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/03/22/actualmente-estoy-trabajando-en.aspx" /><id>/blogs/angelhernandez/archive/2008/03/22/actualmente-estoy-trabajando-en.aspx</id><published>2008-03-22T08:42:00Z</published><updated>2008-03-22T08:42:00Z</updated><content type="html">&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Hola Comunidad, han pasado dos meses desde que posteé aquí pero he estado realmente ocupado con un montón de cosas que van desde superar la diferencia de horas entre Venezuela y Australia,&amp;nbsp;encajar dentro de mi nuevo equipo de trabajo, ejecutar las tareas asignadas de la compañía, leer bastante de WPF, Silverlight, AJAX y algunas cosas de bajo nivel (código nativo) con&amp;nbsp;C++&amp;nbsp;y mucho más &lt;img src="http://msmvps.com/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt; ... Sin embargo, actualmente me encuentro trabajando en dos proyectos bien interesantes que espero terminar pronto. Uno de ellos&amp;nbsp;implementa WPF, WCF, Hilos, Generics y algo de C++ (Creo que ya he desarrollado un poco más del 30% de la aplicación hasta ahora), el otro trata de un webpart muy útil para administrar tres plataformas distintas al mismo tiempo (Equipos basados en Windows, SQL Server y Directorio Activo) también creo que está un poco más del 30% listo. Los publicaré tan pronto estén listo. Por&amp;nbsp;favor, ténganme paciencia &lt;img src="http://msmvps.com/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Saludos cordiales,&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Angel&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1549951" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry><entry><title>I'm currently working on...</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/03/22/i-m-currently-working-on.aspx" /><id>/blogs/angelhernandez/archive/2008/03/22/i-m-currently-working-on.aspx</id><published>2008-03-22T08:22:00Z</published><updated>2008-03-22T08:22:00Z</updated><content type="html">&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Hi community,&amp;nbsp; it&amp;#39;s been two months since I posted here but I&amp;#39;ve been pretty busy with a bunch of stuff that goes from overcoming the jet lag between Venezuela and Australia, to fit into my new working team, execute my assigned tasks at the office, reading a lot about WPF, Silverlight, AJAX and some low level (Native) stuff with C++ and a lot more &lt;img src="http://msmvps.com/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt; ... However I&amp;#39;m currently working in parallel on two cool projects I hope to finish soon. One of them is about implementing WPF, WCF, Threads, Generics and some C++ (I think I have developed over the 30% of this application so far), the other is about... a very useful and handy webpart for managing three different platforms at the same time (Windows based PCs, SQL Server and Active Directory) I think it&amp;#39;s over 30% developed as well. I&amp;#39;ll publish them as soon as they are ready. Please bear with me &lt;img src="http://msmvps.com/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Kind regards,&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Angel&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1549946" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry><entry><title>SQL Discovery 1.0 (English)</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/01/14/sql-discovery-1-0-english.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="1811606" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.01.46.37.43/SQLDisco.zip" /><id>/blogs/angelhernandez/archive/2008/01/14/sql-discovery-1-0-english.aspx</id><published>2008-01-15T02:01:00Z</published><updated>2008-01-15T02:01:00Z</updated><content type="html">&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Hi community, attached you can find an utility that I recently developed, it allows you to perform a discovery of computers in a LAN running SQL Server. The collected information is product version, databases, transformation packages (DTS) and tables structure. The project was developed in C# and C++. The pictures below show the utility running&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;&lt;a href="http://ajhsis.com/community/img/sqldiscovery.jpg"&gt;&lt;img height="180" alt="" src="http://ajhsis.com/community/img/sqldiscovery.jpg" width="180" border="0" /&gt;&lt;/a&gt; &amp;nbsp; &lt;a href="http://ajhsis.com/community/img/sqldiscovery2.jpg"&gt;&lt;img height="180" alt="" src="http://ajhsis.com/community/img/sqldiscovery2.jpg" width="180" border="0" /&gt;&lt;/a&gt; &amp;nbsp; &lt;a href="http://ajhsis.com/community/img/sqldiscovery3.jpg"&gt;&lt;img height="180" alt="" src="http://ajhsis.com/community/img/sqldiscovery3.jpg" width="180" border="0" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Kind regards,&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Angel&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1463743" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry><entry><title>SQL Discovery 1.0</title><link rel="alternate" type="text/html" href="/blogs/angelhernandez/archive/2008/01/14/sql-discovery-1-0.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="1811606" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.01.46.37.37/SQLDisco.zip" /><id>/blogs/angelhernandez/archive/2008/01/14/sql-discovery-1-0.aspx</id><published>2008-01-15T01:57:00Z</published><updated>2008-01-15T01:57:00Z</updated><content type="html">&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Hola comunidad,&amp;nbsp;anexo podrán encontrar un utilitario que desarrollé hace poco que permite descubrir los equipos en una LAN que ejecutan SQL Server, permitiendo recuperar información de versión del producto, bases de datos, paquetes de transformación y estructura de las tablas. El proyecto fue desarrollado en C# y C++. A continuación algunas imagenes del utilitario en ejecución&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;&lt;a href="http://ajhsis.com/community/img/sqldiscovery.jpg"&gt;&lt;img height="180" alt="" src="http://ajhsis.com/community/img/sqldiscovery.jpg" width="180" border="0" /&gt;&lt;/a&gt; &amp;nbsp; &lt;a href="http://ajhsis.com/community/img/sqldiscovery2.jpg"&gt;&lt;img height="180" alt="" src="http://ajhsis.com/community/img/sqldiscovery2.jpg" width="180" border="0" /&gt;&lt;/a&gt; &amp;nbsp; &lt;a href="http://ajhsis.com/community/img/sqldiscovery3.jpg"&gt;&lt;img height="180" alt="" src="http://ajhsis.com/community/img/sqldiscovery3.jpg" width="180" border="0" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Saludos,&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;Angel&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;COLOR:blue;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES-VE;"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1463737" width="1" height="1"&gt;</content><author><name>AngelHernandez</name><uri>http://msmvps.com/members/AngelHernandez/default.aspx</uri></author></entry></feed>