
Hola Comunidad,
Sí estás registrad@ para Tech Ed Australia este año, acércate al Teatro MVP para que puedas asistir a sesiones impartidas por MVPs que varían de 20 a 75 minutos. Hay sólo 20 asientos en el Teatro MVP, por lo que debes llegar rápido al Salón de Exposiciones sí estás interesado en entrar a una de estas sesiones. La agenda para el Teatro MVP la puedes ver acá The Agenda for MVP Theater is acá (por favor chequeála por actualizaciones de último momento). Para asistir, debes ser un delegado registrado, en caso que no hayas comprado aún tu entrada para Tech Ed, puedes registrarte aquí.
Estaré presentando
- MVP301 - C++ para la creación de webparts el Viernes 5 September a las 14:00 - 15:15.
- MVP302 - ADO.NET Data Services (alias Astoria) el Jueves 4 Septiembre a las 14:00 - 15:15.
Los asistentes al Teatro MVP recibirán un llavero luminoso con el logo de MVP (pilas no incluídas), por lo que debes llegar temprano!
No puedes pre-registrarte para las sesiones del Teatro MVP; el primero que llega reserva su asiento
Espero verlos en Tech Ed Australia en unas semanas!
Saludos,
Angel

Hi community,
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're serious about catching an MVP Session. The Agenda for MVP Theater is here (please watch it for last minute updates). To attend, you must be a registered delegate, so if you haven't bought you Tech Ed ticket yet, you can register here.
I'm presenting
- MVP301 - C++ for creating webparts on Friday 5 September at 14:00 - 15:15.
- MVP302 - ADO.NET Data Services (a.k.a. Astoria) on Thursday 4 September at 14:00 - 15:15.
Seated attendees to MVP Theater each receive an MVP Logo wind-up torch keyring (no battery!), so you need to be quick!
You can't pre-register for MVP theater sessions; it's first in first seated.
We look forward to see you at Tech Ed Australia in a few weeks!
Cheers,
Angel
Hola comunidad,
Anexo pueden encontrar el código de HeapWalker, un utilitario que permite recorrer los montones (heaps) de los procesos en ejecución. Lo acabo de terminar tras haber comenzado la semana pasada. Próximamente estaré publicando el artículo sobre la tecnología utilizada en el proyecto, sin embargo pueden ir probando la herramienta.
Un abrazo,
Angel
Hi community,
Attached you can find the HeapWalker's code, an utility that allows to walk through running processes heaps. I just finished it after starting a week ago. I'll be publishing the related article pretty soon, however feel free to download it and test it.
A hug,
Angel
Hi community,
Attached you can find some pictures from the MVP Global Summit 2008.
Kind regards,
Angel
Hola comunidad,
Anexo podrán encontrar unas fotos del Summit Mundial de MVP 2008.
Saludos cordiales,
Angel
Hi community,
This post is intented to inform about some free tools to virtualize which are available right now. We first have Microsoft Virtual PC 2007 SP1 which it was released a few days ago, we also have Microsoft Virtual PC 2005 R2 SP1 which allows us even to create clusters and last but not least we have VirtualBox that was recently acquired by Sun Microsystems. However if you want to try Hyper-V you'll need to deploy Windows Server 2008.
A hug,
Angel
Hola comunidad,
Este post tiene próposito informar de unas herramientas para virtualizar gratuitas que están disponibles actualmente. La primera es Microsoft Virtual PC 2007 SP1 que fue liberado hace pocos días, también tenemos Microsoft Virtual PC 2005 R2 SP1 con el cual podemos crear inclusive clústeres y por último VirtualBox que fue adquirido hace poco por Sun Microsystems. Sin embargo si desean probar Hyper-V es necesario utilizar Windows Server 2008.
Un abrazo,
Angel
Hola comunidad,
Este post trata de cómo evitar la temida excepción de "Llamada Ilegal entre Hilos" en WPF, 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 GDI. Antes de adentrarnos en los detalles de como podemos lograr esto este es un buen momento para hablar un poco de WPF básico.
Lo Básico
WPF es un componente fundamental en .NET Framework 3.0, junto con WCF, WF y CardSpace. WPF está llamado a ser el sucesor de tecnologías como GDI 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 el lanzamiento de Windows XP, la diferencia entre GDI y GDI+ es que el segundo está escrito enteramente en C++ y ofrece más capacidades. Microsoft 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 el .NET Framework 1.0 hemos podido crear aplicaciones para Windows basadas en Windows Forms, que es una rica infraestructura que encapsula GDI y GDI+, 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 en DirectX. WPF (nombre código Avalon) había nacido. La imagen mostrada a continuación muestra los componentes principales de 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 Milcore que es código nativo lo cual permite una fuerte integración con DirectX.

En User32 y GDI el sistema trabaja en un modo de recorte inmediato (áreas inválidas) que deben redibujarse, en la otra mano WPF utiliza un modelo de dibujo basado en "algoritmo de pintor", 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, XAML. 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.
Evitando Llamadas Ilegales entre Hilos en WPF
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.
En WPF podemos encontrar una nueva propiedad en los elementos de interfaz de usuario llamada "Dispatcher" que permite a través de punteros a funciones gestionados ó delegados realizar acciones en elementos de la interfaz de usuario sin incurrir en "Llamadas Ilegales entre Hilos".

Saludos cordiales,
Angel
Hi Community,
This post is about avoiding the dreaded "Illegal Thread Call" exception in WPF, even when multi-threaded applications are harder to debug and maintain sometimes we need to implement some mechanism based on threads to refresh and update UI elements. WPF can't escape this fact as GDI can't either. Before delving into the details of how accomplish this it's a good time to talk a bit about WPF basics.
The Basics
WPF is a fundamental component in .NET Framework 3.0, along with WCF, WF and CardSpace. WPF is called to be the sucessor of techologies such as GDI 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 and GDI+ is that the second one is entirely written in C++ and offers more capabilities. Microsoft has been working to offer developers a platform to ease and improve development while at the same time the syntax and way of coding to be the same, that's .NET Framework main purpose. Since .NET Framework 1.0 we've been able to create applications for Windows based on Windows Forms, a rich infraestructure that encapsulates GDI and GDI+, however we'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. The image depicted below shows WPF main components (The sections in red are the major code portions of WPF). It's almost entirely written in managed code except for Milcore that's native so it enables a tight integration with DirectX.

In User32 and GDI the system works on an inmediate clipping mode (invalid areas) that need to be rendered, in the other hand WPF uses a "painter's algorithm" 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's display. The advantage of this model is that we can have complex, partially transparent shapes and since it'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, XAML. This allows the creation of astonishing UI by graphic designers and the logic behind it by developers.
Avoiding Illegal Thread Calls in WPF
What is an illegal thread call after all? This situation presents whether one tries to update any UI element, such a ListBox by manipulating its items collection from a thread different than the thread that owns the UI element. This is not permitted because the operating system can't guarantee the items collection integrity so it's up to the developer to do that.
In WPF we can find a new property in UI elements called "Dispatcher" that allows through the use of managed callbacks or delegates perform actions on UI elements without incurring in "Illegal Thread Calls".

Kind regards,
Angel
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, 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 C++ y mucho más
... Sin embargo, actualmente me encuentro trabajando en dos proyectos bien interesantes que espero terminar pronto. Uno de ellos 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 favor, ténganme paciencia 
Saludos cordiales,
Angel
Hi community, it's been two months since I posted here but I'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
... However I'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's over 30% developed as well. I'll publish them as soon as they are ready. Please bear with me 
Kind regards,
Angel
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

Kind regards,
Angel
Hola comunidad, 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

Saludos,
Angel
Hi Community, first of all I'd like to greet you all and wish a prosperous 2008, then I'd like to take this opportunity to inform you that Microsoft has granted me the MVP award once again and for that reason I must thank God, my MVP Lead Fernando García, Microsoft and very important and the meaning for this program... All of you. I hope to continue and improve the job so far accomplished in benefit of the community.
A hug,
Angel
Hola comunidad, primero que nada me gustaría saludarlos y desearles un próspero año 2008, así mismo me gustaría aprovechar la oportunidad para informarles que Microsoft me ha reconocido como MVP nuevamente. Por ello debo agradecer a Dios, a mi MVP Lead Fernando García, Microsoft y muy importante y la razón de este programa... a Ustedes. Mi deseo es continuar y mejorar el trabajo hasta ahora realizado en beneficio de la comunidad.
Un abrazo,
Angel
Hola comunidad, anexo podrán encontrar el artículo "Implementando KTM desde .NET". Ya fue enviado a la gente de MSDN Latinoamérica para su publicación, sin embargo acá lo tienen en formato Word y el código también. Espero les sea de utilidad.
Un abrazo,
Angel
Hola comunidad, el día de ayer descargué la imagen ISO de VS .NET 2008 RTM desde el site de MSDN. Hoy me propusé a instalar el producto no sin antes encontrar una serie de contratiempos técnicos con el instalador, lo cuál no tiene sentido porque el RC se instaló sin problemas. A continuación enumero los pasos para poder instalar sin problemas:
1-. Desinstalar toda versión previa de VS .NET 2008 (Betas y/o RC) al igual que todo software que se instala junto con este.
2-. Reiniciar la máquina
3-. El instalador del .NET Framework 3.5 falla sí no se ha instalado previamente los siguientes hotfixes:
- NetFX2.0-KB110806-v6000-x86
- NetFX3.0-KB929300-v6000-x86
Estos se encuentran en la siguiente ruta, en donde X es la unidad de DVD. Dependiendo la arquitectura del equipo x86 y/o x64 seleccionar la carpeta según sea el caso
X:\WCU\dotNetFramework\dotNetMSP\x86
4-. Si uds. tienen Windows Vista como yo, entonces es muy probable que al intentar ejecutar los hotfixes reciban el siguiente error
Windows Update Standalone Installer
Installer encountered an error: 0x8007177f
This machine is disabled for file encryption.
Lo que confunde aún más 
Pues bien buscando en la red llegué a esta dirección
http://support.microsoft.com/kb/933595/en-us
En donde describen el problema cuya solución es ejecutar un hotfix para que no ocurra el error antes mencionado.
Se reinicia el equipo y siguen los pasos del artículo del Knowledge Base para extraer los archivos CAB de los hotfixes.
Se instalan los hotfixes y pide reiniciar. Una vez que se hayan instalado ambos hotfixes se puede proceder con la instalación del VS .NET 2008. Vale acotar que por el instalador no poder ejecutar dichos hotfixes esté se detiene y no continua la ejecución normal.
Espero les sea de utilidad,
Saludos,
Angel
Hola comunidad, anexo podrán encontrar la presentación y demos del Webcast "Características avanzadas de C#". Espero les sean de utilidad. La grabación del Webcast la pueden encontrar aquí
Un abrazo,
Angel
Recientemente Fernando García Loera me envío una serie de preguntas para realizar una entrevista y publicarla en una nueva sección de MSDN Latinoamérica para los MVPs de la región. En la página principal de esta nueva sección correspondiente al mes de Octubre aparece mi entrevista. Para verla completa hacer click aquí
Saludos,
Angel
Hola comunidad, actualmente me encuentro redactando dos artículos que llevan como nombre:
Espero poder terminarlos antes de navidad... Estoy consciente que no he publicado ningún artículo últimamente pero he estado algo complicado de tiempo, sin embargo las "cosas buenas se hacen esperar" 
Saludos,
Angel
Hola comunidad, anexo podrán encontrar una herramienta bien útil para cuando se desean hacer consultas basadas en CAML (Collaborative Application Markup Language) contra listas de SharePoint. Si desean obtener más información sobre la misma hacer click aquí
Un abrazo,
Angel
More Posts
Next page »