March 2009 - Posts

New for Windows Internet Explorer 8

Mucho se ha hablado últimamente de Internet Explorer 8. Realmente no quiero escribir otro post lleno de datos ya hay mucha información en la red pero si quiero compartirles algunas de las nuevas características que tenemos dentro de la versión.

Mi buen amigo y colega Mauricio Angulo (dFate) se ha encargado de escribir algunos posts más detallados a esto, por lo que los invito a que le den una visitada a su blog.

Veamos nuestra tradicional y siguiente tabla:

Descargas Aceleradores ARIA ActiveX AJAX
Soporte a descargas mayores de 4GB (64bit) Extensiones que te permiten enviar contenido a un servicio directamente. Como por ejemplo mapas en Live o búsquedas en Facebook. Es compatible con la iniciativa de Accesibilidad en el Web para aplicaciones Ricas que define como los elementos de UI son accedidos. Instalaciones más granulares sobre los controles ActiveX para tener más control por sitio y de nivel de usuario estándar. Nuevas funcionalidades al objeto XMLHTTPRequest que permite mejores conexiones y soporte nativo a JSON así como peticiones Cross-Domain (XDR)

Compliance Herramientas Compatibilidad Almacenamiento DOM Mejoras al markup
Mejoras al markup a nivel de html y css que son más permisivas para reglas y objetos.
Impresion de páginas mediante tags que permiten definir breaks, ventanas y huérfanos.
Para los desarrolladores herramientas que les permitirán encontrar fallas en su markup o diseño de una manera más consistente. Algo interesante es que te permitirá cambiar de versiones para checar estándares. Te permite añadir un tag al header que le dé compatibilidad a la página con la versión previa de IE.
Tambien tiene un boton en la barra de herramientas que te permite cambiar entre versiones de compatibilidad en caso de que la página que visites esté rota.
La facilidad de guardar en el disco duro del cliente información en caso de que exista una desconexión para después permitir la sincronización de la misma. Tanto para html y dhtml ya se encuentra mucho mas interoperable en la versión 4.01.

Prototipos Mutables Modo Protegido RSS Sugerencias de búsqueda Seguridad
Con JavaScript puedes modificar métodos existentes que inmediatamente se aplican a todas las instancias de los objetos. De esta manera puedes tener acceso a objetos dentro del modelo de objetos (DOM) como si fueran objetos de JavaScript para su programación mucho más rápida. Se puede accesar a procesos de integridad media desde modo protegido en caso de ser necesario.
De esta manera no se requiere ninguna interacción directa del usuario.
Ya se pueden usar combinaciones usuario y contraseña para feeds que las requieran sin necesidad de escribirlas cada vez que se intente accederlas. Así mismo se tiene un nuevo hash que permita identificar efectivamente entre un post leído y no leído. Te muestra en el dropdown las búsquedas que has realizado así como sugerencias del engine directamente.
De esta manera tus búsquedas serán más rápidas y consistentes.
Este es todo un tema pero en general tiene defensa para el ClickJacking, CrossSide Scripting así como en privacidad podrás borrar rápidamente tu historial y usar una vista que se le conoce como InPrivate que evitará guardar información de los sitios que visites.

API de Selectores Web Slices Zoom zoom    
Puedes utilizar los selectores para encontrar rápidamente elementos CSS dentro de una página. Esto les da ventaja de rendimiento a los desarrolladores en términos de velocidad contra otras implementaciones. Permite a los usuarios obtener contenido dinámico de una fragmento de una página. Cuando el contenido cambia el usuario recibirá alguna notificación a este respecto en la barra de Favoritos. Se realizaron mejoras con diferentes estados de zoom así como la eliminación de barras horizontales de scroll. Algunos elementos heredados automáticamente obtienen el mismo zoom de la página que lo creó.    

 

Como cerecita del pastel les comparto un Pocket Webcast que realicé (5 minutitos) con instrucciones de como crear un Webslice en un sitio ya en producción. Muy sencillo y fácil de entender. Espero les agrade.

Espero que este post les de una vista general de lo que puedes hacer con IE8. Actualmente estamos desarrollando un sitio que pronto estará en producción (y anunciaremos por este medio) que hace gran uso de algunas de estas características. Recuerda que ya se encuentra liberado y puedes descargar una versión en este sitio:

Download Internet Explorer 8

Cheers! Beer

Como les había comentado en alguno de mis posts pasados, Silverlight 3 Beta fué liberado la semana pasada en el MIX09.

Muchas nuevas características de este producto que realmente son interesantes que podemos observar fácilmente en la siguiente tabla:

Soporte Fuera de Línea Nuevos Controles DataBinding Estilos Animación
Ahora Silverlight permitirá una experiencia “Out-of-the-browser” que permitirá correr las aplicaciones dentro del escritorio del usuario.

¿Qué ventajas tiene esto?
Pues podrías hacer una aplicación que corra en cualquier plataforma (a-la AIR).
Algunos de los controles existentes en el Silverlight Toolkit ya son parte del producto como tal y se instala dentro del mismo Software Development Kit.

Entre los nuevos controles se encuentran:

FileSaveDialog
Multiselection ListBox
AutocompleteBox
Existen nuevos controles de validación de datos muy parecidos a los de ASP.NET

Dichos controles tendrán validaciones para controles comunes como el Textbox y el Checkbox y van a ser skinables.

Element to Element Binding que te permite realizar binding directo a objetos del CLR vía otros objetos. Checa mi post sobre el workaround a esto.
Te permitirá tener algo parecido a los CSS que se utilizan en el mundo de HTML  de una manera más consistente.

Así mismo existe el concepto de Merged Resource Dictionaries que te permitirá compartir los mismos recursos entre diferentes aplicaciones.
Nuevos algoritmos para animación de textos dentro de Silverlight mejorará el rendimiento cuando los diseñadores se encuentren animando texto.

Tambien se incluyen varios algoritmos de animaciones que permiten tener efectos más realistas como Rebotes, Elasticidad, Rectangulos, Cubos, etc.

3D Deep Zoom Video Caching Networking

En el tema de gráficos existen grandes mejoras, como la inclusión de 3D real y 3D Faux para objetos de 2D.

Así mismo tenemos Pixel Shaders que te permiten crear efectos como blur y drop shadow asi como cambiar o modificar pixeles en base a luz y perspectiva.

Por otro lado al fin ya tenemos mejoras a nivel de hardware (utilizando el GPU para la composición gráfica) que mejora la calidad de video y el rendering de los mapa de bits.

Tiene mejoras que permite ver de una manera más rápida gracias a lo antes mencionado: GPU hardware composition.

Se puede usar el control de varias maneras con DeepZoom que te permita crear aplicaciones más interactivas.

Ya se soporta TRUE FULL HD en alta resolución a full-screen, que permite ver los videos de mejor manera.

Inclusión para los codec de H264 y AAC así como que tambien los desarrolladores podrán utilizar sus propios codecs desarrollados para realizar el streaming.

Ahora se permite guardar localmente algunos de los assemblies local en la máquina de manera que las descargas sean menores.

Con el Cached Composition te permite guardar el árbol visual de los elementos a un bitmap y utiliza ese mismo bitmap para el render, esto mejorará de gran manera el rendimiento ya que el árbol visual de los elementos solo se dibujará de una sola pasada o una sola vez.

Te permite detectar si estas conectado a internet o no mediante el stack de red. De esta manera podemos implementar un escenario de cliente inteligente que nos permita trabajar out-of-the-browser.

Por otro lado se soporta la serialización binaria para la transferencia de archivos transmitidos por la red para mejorar el rendimiento.

Comunicación entre dos plugins de Silverlight local en el caso que tengas más de un control en una página y desees que ellos dos hablen entre si.

En resumen, Silverlight 3 tendrá muchas nuevas características que facilitaran la creación de excelentes interfases de usuario con menos código y permitirá a los diseñadores llevar a cabo muchas cosas que anteriormente se podían solo mediante desarrollo.

Esperemos ver pronto una nueva versión para empezar a trabajar con ellos.

Si quieres más información no olvides visitar este sitio para ir viendo que es lo que puedes hacer con esta nueva versión.

Cheers! Beer

Como les comenté en alguno de mis posts previos, estuve la semana pasada en el MIX09 en Las Vegas.

En sí el evento estuvo muy bien, como siempre buena organización y gente interesante y muy talentosa. Básicamente lo más importante fué durante el evento los siguientes anuncios:

  • La disponibilidad de descarga de Silverlight 3 que tiene más de 50 nuevas características y 20 controles nuevos (además que pesa 40k menos). Esto será tema de otro post ya que realmente tiene cosas muy interesantes.
  • También el anuncio oficial de la liberación de Internet Explorer 8, la última versión del navegador de Microsoft que ahora es mucho más rápido, tiene más seguridad y tiene algunas nuevas características como Aceleradores y Web Slices que permiten a los usuarios y desarrolladores extender el alcance de nuestras páginas.
  • Una vista previa de Expression Web 3 que básicamente contiene la nueva característica de SuperPreview que te permite ver, dentro del producto como se ve tu sitio Web en diferentes navegadores y poder realizar las correcciones pertinentes si es necesario a tiempo.
  • La incorporación de creación de conceptos con SketchFlow en Expression Blend 3 que les permitirá a los creativos hacer un “mockup” directamente dentro de la herramienta para permitir a los usuarios ver las ideas sobre las que se esta trabajando. Adicionalmente te permite crear texto “dummy” de bases de datos, animaciones, vista de nodos y conexiones y base de datos.

Espero poder escribir a más detalle de esto. Recuerden que pueden ver todas las sesiones del MIX09 en línea; así como mantenerse al contacto con la comunidad en el sitio.

Espero poder asistir el próximo año al MIX10 en Las Vegas (Marzo 15 al 17).

Cheers! Beer

Hace unos días estuve desarrollando un pequeño gadget para Windows Vista que consume un XML desde un servidor Web o bien un Endpoint que proviene en REST. Desgraciadamente Silverlight (a diferencia de WPF) no contiene XPath ni te permite hacer Databinding directo – inclusive en Expression Blend 2 viene esa opción deshabilitada y solo te permite hacer binding de objetos de CLR.

Para dicho gadget tenía la necesidad de realizar unas consultas a un combo-box. Leyendo algo de código rápidamente encontré una solución y se las comparto por si en una de esas tienen la necesidad de realizar algo parecido a esto:

Cargando el XML en la memoria

El primer paso para realizar esta acción es que tenemos que obtener el XML de algún lado. Esto lo haces utilizando el objeto WebClient; dicho objeto te permitirá abrir el XML desde un URI para su consumo.

Algo importante es que este proceso lo hacemos asíncronamente. Es decir, primero definimos el manejador de eventos que será disparado una vez que el XML sea abierto, leído y guardado en la memoria (OpenReadCompleted) y posteriormente mandamos a llamar el código dentro de dicho manejador para procesarlo.

Chequen el código:

   1:  namespace Intellekt.Gadget
   2:  {
   3:      public partial class Flyout : UserControl
   4:      {
   5:          public Flyout()
   6:          {
   7:              // Required to initialize variables
   8:              InitializeComponent();
   9:   
  10:              LoadXML();
  11:          }
  12:   
  13:          private void LoadXML()
  14:          {
  15:              WebClient xmlClient = new WebClient();
  16:   
  17:              xmlClient.OpenReadCompleted += new OpenReadCompletedEventHandler(xmlClient_OpenReadCompleted);
  18:              xmlClient.OpenReadAsync(new Uri(“http://intellekt.ws/gadget.svc/countries”, UriKind.RelativeOrAbsolute));
  19:   
  20:          }
  21:      }
  22:  }

Procesando el XML y ligándo los resultados a un control

Una vez que el gadget haya terminado de leer la información mandará a llamar el evento xmlClient_OpenReadCompleted que contendrá el siguiente segmento de código:

   1:          void xmlClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
   2:          {
   3:              if (e.Error != null)
   4:              {
   5:                  HtmlPage.Window.Alert(e.Error.ToString());
   6:              }
   7:              else
   8:              {
   9:                  var s = e.Result;
  10:                  xml = XElement.Load(s);
  11:   
  12:                  var countries = from x in xml.Elements("Country")
  13:                                  select new Country
  14:                                  {
  15:                                      Id = x.Attribute("Id").Value,
  16:                                      _Name = x.Attribute("Name").Value
  17:                                  };
  18:   
  19:                  cboCountry.ItemsSource = countries;
  20:                  foreach (var c in countries)
  21:                  {
  22:                      string d = c._Name;
  23:                  }
  24:   
  25:              }
  26:          }

Este método lo que hará es ver si existe algún error. No existe entonces obtiene todo el Stream en la variable declarada s y lo carga directamente en el xml. Después de eso hacemos una sentencia de LINQ to SQL que obtiene todos los elementos cuyo tag es country y nos regresa un resultado que en la línea 19 estamos ligando a un ComboBox. De la linea 20 en adelante no son necesarias (pero las puse de manera que puedas revisar cada uno de los elementos y que es lo que esta pasando).

Como pueden observar, es muy sencillo procesar XML dentro de Silverlight 2. Si hubieramos intentado realizar esto manualmente utilizando el DOM hubieran sido al menos el doble de líneas de código – LINQ to SQL es una tecnología muy poderosa que en conjunto con Silverlight 2 nos hace la vida más sencilla a los desarrolladores.

Espero que este tip sencillo les sirva.

Cheers! Beer

Posted 03-18-2009 11:57 AM by chris | with no comments
Filed under:

Hace algunos días me postulé como Delegado de INETA para el apoyo de las Comunidades en México.

Afortunadamente mi postulación fué aceptada y ahora funjo a representante de las comunidades en México ante INETA. Me siento muy emocionado de lo que estaremos haciendo próximamente a favor de las comunidades y estaremos apoyando de una manera muy cercana a todas ellas.

Principalmente las actividades que estaremos realizando son las siguientes:

  1. Apoyar a las comunidades para obtener los beneficios de INETA
  2. Asistir en las giras que se realicen en México
  3. Conseguir a oradores para eventos de las comunidades
  4. Creación de nuevas comunidades
  5. Apoyo a las comunidades no participantes a INETA para que se sumen al esfuerzo

Eso entre otras cosas.

Si cuentas con una comunidad en línea sobre tecnologías Microsoft; contáctamente y aprovecha los beneficios que ser socio de INETA te trae.

Cheers! Beer

Posted 03-16-2009 2:07 PM by chris | with no comments
Filed under: ,

Hemos estado super-ocupados por proyectos y entre el cambio de las oficinas de Intellekt algunos pendientes y proyectos personales he tenido muy abandonado este blog.

Sin embargo es tiempo de regresar a mis antiguos hábitos y estaremos retomando con mucho más fuerza el Intellekt Podcast, las reuniones presenciales de GUN y todo el tema de comunidades de INETA (esto es de otro post pendiente).

El día de mañana parto (sin dolor) para #MIX09. Este año será muy complicado para todas las economías mundiales y por lo que veo ya empieza a afectar a los eventos. Durante el año pasado en el MIX08 los registros se terminaron con un mes de antelación (ya nos andabamos quedando sin lugar) y ahorita todavía hay espacio.

Afortunadamente nos invitaron y no tuvimos que pagar un solo peso por el MIX09. Sin embargo las fluctuaciones del dólar y el monto ha hecho que muchas empresas mexicanas tampoco asistan o manden menos gente.

Pero cambiando un poco de tema lo que nos espera este año en el MIX suena muy interesante:

Los keynote speakers de este año será Scott Guthrie (veamos si este año lleva su polo roja) así como Bill Buxton, Dean Hachamovitch y Debora Adler.

Existirán un sinfín de sesiones; donde puedes revisar la agenda por aquí https://content.visitmix.com/2009/Sessions/. Hay tantas sesiones que aún no preparo mi agenda … durante el viaje creo que me tomaré un tiempecín para hacerlo.

Mantenganse al tanto de lo que sucede en el MIX09 mediante el tag de #MIX09 en Twitter. Estaré intentando postear cosas por ahí.

Estamos organizando un Latino Party ya estando por allá – si te interesa asistir con nosotros mandame un mensaje por aqui o en mi twitter.

http://twitter.com/_krees

Welcome to Las Vegas baby!

Cheers! Beer