3.29.2007
Evento ProNet Code Camp de la Comunidad. NET del D.F.
Registrate aquí para el evento del 24 de Abril en el ITAM.
Entretanto, a solicitud de algunos de los asistentes que amablemente me contactaron, pueden bajar los ejemplos de código de aquí. Estos ejemplos fueron desarrollados en la Comunidad .NET del D.F. por Raúl Guerrero y un servidor. Espero que les sean de utilidad.
3.25.2007
¿Qué es Aero en Windows Vista?
Windows Vista ofrece dos niveles de interfaz gráfica. La más simple se llama “Aero Basic“ y ofrece mejoras relativamente menores con respecto a Windows XP. La principal es el nuevo explorador de archivos y diálogos como los que vimos en la sección anterior. La versión más completa de la interfaz se llama “Aero Glass” e incluye una reingeniería completa del motor de despliegue gráfico de Windows. Esta versión está disponible en todas las versiones de Windows Vista excepto la “Home Basic”, siempre y cuando el hardware de video sea suficientemente poderoso[1]. Las principales ventajas que ofrece “Aero Glass” son:
· Ventanas con bordes translúcidos
· Animaciones de ventanas completas al minimizar y maximizar
· Vistas preliminares “en vivo” de todas las ventanas desde la barra de herramientas de Windows
· Windows Flip y Windows Flip3D sustituyen al Alt+Tab tradicional ofreciendo una vista preliminar del contenido de cada ventana, en 3 dimensiones en el caso de Flip3D (Tecla Windows + Tab)
Para soportar estos efectos nuevos en Windows Vista, fue necesaria una reingeniería completa de la arquitectura de dibujo del sistema operativo. Vista introduce el WDDM (Windows Display Driver Model). Por esta razón, para soportar los efectos de Aero Glass necesitamos estar utilizando un controlador de video específicamente diseñado para Windows Vista. Los controladores WDDM soportan la virtualización de los recursos de hardware de video. Es decir, los recursos pueden ser compartidos y negociados entre las diferentes aplicaciones que se están ejecutando.
Además del nuevo modelo de controladores de video, Windows Vista introduce al mercado DirectX10, una interfaz de programación para controlar las funciones más recientes del hardware de video que permitirá construir juegos de video aún más realistas. DirectX10 no es compatible con DirectX9. Sin embargo, las versiones 9 y 10 pueden coexistir en un solo equipo. DirectX10 no es necesario para ejecutar “Aero Glass”.
El componente de Windows Vista que se encarga de soportar la funcionalidad de Aero es el Desktop Windows Manager (DWM). DWM es un motor de composición muy poderoso que se encarga de dibujar el contenido de cada ventana del sistema operativo en un mapa de bits distinto en su propia sección de la memoria de video que después “compone” en la pantalla final que ven los usuarios. DWM está implementado en el ejecutable dwm.exe de Windows Vista. Funciona con una arquitectura cliente/servidor que permite incluso que el procesamiento o rendering de una escena en 3D sea realizado en un equipo, mientras que la presentación final se hace en otro. Así Vista ofrece soporte de primer nivel a funciones como el escritorio remoto[2]. A diferencia de versiones anteriores de Windows, con “Aero Glass” cuando movemos una ventana las ventanas que estaban detrás de esta no se invalidan ni se tienen que redibujar. El DWM puede entonces mezclar el contenido de una ventana con el de las ventanas que se encuentran detrás, permitiendo así el efecto translúcido de la interfaz “Aero Glass”. Lo más interesante es que es posible solicitarle al DWM que una parte del área cliente de nuestra ventana queremos que se dibuje con este efecto translúcido. El DWM controla todos los efectos “Glass” y restringe el acceso a ellos. Dado que el efecto translúcido se presenta en el área no cliente de todas las ventanas en Vista, en el momento en el que una aplicación no compatible intenta dibujar dentro de esta área, Vista regresa temporalmente al modo “Aero Basic” para todas las aplicaciones.
[1] Con un hardware insuficientemente poderoso, Windows Vista siempre funciona con la interfaz “Aero Basic”.
[2] Los programadores familiarizados con OpenGL podrán reconocer este tipo de arquitectura cliente/servidor.
3.13.2007
El MVP Summit
2.22.2007
Bill Gates va a dar personalmente el premio al mejor gadget mexicano para Windows Vista
2.19.2007
Propiedades Dependientes en WPF
1. Soporte a Recursos
En WPF podemos establecer directamente el valor de una propiedad directamente ligada a un recurso utilizando XAML así:
<dockpanel.resources>
<solidcolorbrush color="Red" key="MiBrocha">
<dockpanel.resources/>
<button content="Soy rojo" background="{DynamicResource MyBrush}">
En este caso la propiedad Background toma su valor del recurso llamado MiBrocha. Para poder fijar una propiedad con el valor de un recurso es necesario que esta sea una propiedad dependiente.
2. Ligado a Datos (Data Binding)
El ligado a datos de WPF se establece igualmente utilizando propiedades dependientes.
<button content="{Binding XPath=Team/@TeamName}"/>
En este ejemplo el contenido del botón está ligado a una ruta específica definida con XPath dentro de una fuente de datos XML. Sin embargo, para el ligado de datos, aunque es necesario utilizar propiedades dependientes, hace falta además que estas implementen la interface INotifyPropertyChanged.
3. Estilos
El manejo de estilos de WPF depende también de las propiedades dependientes. Los estilos están relacionados con el sistema de propiedades porque típicamente contienen setters o triggers que afectan el valor de las propiedades como vimos con anterioridad.
4. Animación
La animación en WPF consiste en cambiar el valor de una propiedad a través del tiempo. Para esto WPF también utiliza las propiedades dependientes.
5. Herencia de Valores
La herencia de valores de propiedades no tiene nada que ver con la herencia tradicional de la programación orientada a objetos. La herencia de valores se trata de propagar el valor de una propiedad desde un objeto hacia sus hijos en un árbol. Por ejemplo, podemos definir una propiedad dependiente a nivel de un Grid. Los elementos que existen dentro del Grid
pueden heredar el valor de la propiedad dependiente del que se ha fijado. Esto simplifica, por ejemplo, que todos los elementos gráficos dentro de un contenedor compartan el color del fondo u alguna otra propiedad similar.
Gracias a la herencia de valores habilitada por las propiedades dependientes, los siguientes dos fragmentos de código producen exactamente el mismo resultado gráfico en WPF:
<window class="EjemplosSimples.PropiedadesDependientesDos" title="EjemplosSimples" width="414" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x="http://schemas.microsoft.com/winfx/2006/xaml" height="123">
<stackpanel margin="20">
<textblock fontsize="20">Mi Blog es http://msdnfan.blogspot.com </textblock>
</stackpanel>
</window>
<window class="EjemplosSimples.PropiedadesDependientesUno" title="EjemplosSimples" width="414" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" fontsize="20" x="http://schemas.microsoft.com/winfx/2006/xaml" height="123">
<stackpanel margin="20">
<textblock>Mi Blog es http://msdnfan.blogspot.com </textblock>
</stackpanel>
</window>
¿Encuentras la diferencia? El tamaño de la fuente en el segundo caso se establece a nivel de la ventana mientras que en el primero se establece en el bloque de texto.
2.15.2007
Sáquale Provecho a la Búsqueda Integrada de Windows Vista
Windows Vista incorpora un poderoso motor de búsqueda que indexa todos los documentos existentes en la PC de manera automática. Ofrece la misma funcionalidad que Windows Desktop Search 3.0 pero viene ahora incluido con el sistema operativo. La búsqueda está presente en múltiples puntos del sistema operativo incluyendo:
· El Explorador de Archivos
· El Explorador de Internet
· Los Diálogos de Selección de Archivos
· El Panel de Control
· El Menú de Inicio
Adicionalmente, aplicaciones como Microsoft Outlook 2007 aprovechan el motor de búsqueda y se integran con él.
Como desarrolladores, podemos extender la búsqueda de Windows Vista de dos maneras:
· Podemos desarrollar aplicaciones que consuman el motor de búsqueda de Windows para presentarle resultados al usuario.
· Podemos desarrollar aplicaciones que extiendan el sistema de búsqueda de Windows para permitirle, por ejemplo, buscar nuevos tipos de documentos o con propiedades distintas.
Para desarrollar un consumidor de búsqueda la manera más simple es utilizar el proveedor OLE DB de búsqueda que viene incorporado a Windows. Es muy sencillo buscar utilizando este proveedor. Para establecer una conexión, basta con utilizar la siguiente cadena de conexión:
string connectionString = @"Provider=Search.CollatorDSO;Extended Properties='Application=Windows'";
Necesitamos saber además cual es la sintaxis que acepta este proveedor OLE DB para procesar nuestras consultas. En general, todas las consultas son de la siguiente forma:
SELECT [propiedades]
Para nuestra fortuna, el SDK de Windows incluye un excelente ejemplo de desarrollo sobre la búsqueda que contiene una implementación básica. Este ejemplo lo podemos encontrar normalmente en C:\Archivos de Programa\Microsoft SDKs\Windows\v6.0\Samples\CrossTechnologySamples.zip\WindowsIndexSearchApp
En este ejemplo podremos encontrar las piezas más importantes que necesitamos. ¿Que columnas (propiedades) están soportadas? ¿Como especifico los predicados (filtros) de mis búsquedas?
1.17.2007
¿Cual es la relación de .NET 3.0 con .NET 2.0?

Los elementos verdes son los que se introducen en esta nueva versión, mientras que los azules se mantienen igual que en la versión 2.0. Es importante considerar que al instalar la versión 3.0 del .NET Framework, siempre se instala también la versión 2.0 de este. Es decir, el instalador de la versión 2.0 está incluido en el de la versión 3.0. Por esta razón, la versión 3.0 es 100% compatible con la versión 2.0.
1.09.2007
Hay que apurarse - Desafío Gadget de Microsoft
http://www.microsoft.com/spanish/msdn/latam/desafiogadget/terminos.aspx
1.04.2007
Service Pack 1 para Visual Studio 2005 Liberado
10.15.2006
¿De que se trata Windows Communication Foundation (WCF)?

Windows Communication Foundation (WCF) permite el reuso de funcionalidad y la integración de sistemas distribuidos con una facilidad de desarrollo, operación y mantenimiento antes imposible.
El esquema WCF combina un lenguaje de dominio específico (LDE) con una librería de clases para permitir el desarrollo ágil de software orientado a servicios. El LDE es el modelo de servicio y la librería de clases es la capa de canal.
Un lenguaje de dominio específico permite definir software de una manera más específica y precisa que un lenguaje de modelado general, pero únicamente dentro de un dominio específico. Por ejemplo, UML es un lenguaje de modelado general y el diseñador de Windows Forms es un lenguaje de dominio específico dirigido a la librería de clases System.Windows.Forms .
El modelo de servicio de WCF consiste de clases dentro del namespace ServiceModel y de un lenguaje de configuración basado en XML. La capa de canal se compone de clases dentro del namespace System.ServiceModel.Channel
Como desarrolladores diseñamos la comunicación de nuestros programas utilizando el modelo de servicio y los componentes de comunicación que usaremos son generados a partir de la capa de canal. Si el mecanismo de comunicación que requerimos no existe ya en la capa de canal, es posible extenderla con nuestros propios componentes de comunicación.