¡Bienvenid@ a La bloguera.net! Iniciar sesión | ÚNETE a la web | Ayuda

Code Factory

Proof of Concept

Visualizar por etiquetado

Todas las etiqu... » WPF » Blend   (RSS)
WPF: Desarrolla con MSDN - Cifras y letras y David Carmona

El grán tiburón David Carmona ha publicado en su blog un juego desarrollado en WPF y desplegado por CilckOnce basado en el juego "Cifras y Letras".

 

En este juego tuvimos el honor de colaborar en la parte de desarrollo de la interfaz gráfica y su diseño y la verdad es que verlo ahora en producción es toda una alegría.

Enhorabuena a Lucía y Raúl por las tareas del prototipado, diseño preliminar y de integración con Expression Blend, estáis hechos unos fieras!!!

Podeís ver el post de David Carmona en su blog y jugar desde aquí.

 

Espero que disfrutéis jugando.

WPF: España gana en The Ingenuity Point Contest

Una gran noticia para el desarrollo software en España, ya que una aplicación española gana el primer puesto en la vertical de Sanidad en el concurso de innovación "The Ingenuity Point".

La aplicación ganadora es Lebab Interpreter to Integration, de Lebab Systems y desarrollada por Plain Concepts.

La aplicación es una solución completa que satisface las necesidades de los profesionales de diversas áreas de la sanidad, que permite la utilización de una base de datos de preguntas y respuestas relacionadas de diagnósticos y explicaciones, un sistema rápido y concreto que facilita la comunicación entre el personal sanitario y el inmigrante/extranjero.

Podemos ver una demo aquí.

No podría dejar pasar esta ocasión sin hacer mención a mi gran maestro, compañero y  amigo Octavio Hernández, con el cual he compartido el proceso de diseño y desarrollo de esta aplicación desde sus inicios y del cual he aprendido día a día, sin dejar de agradecer a los grandes profesionales  y amigos de Plain Concepts su colaboración en este proyecto y sin los cuales esto no habría sido posible.

Además agradecer también al personal de Lebab System la confianza depositada en nuestra empresa para llevar a cabo este gran proyecto de innovación.

IMG_0108

Un saludo y mi más sincera enhorabuena a los premiados!!

OFF-TOPIC: Empezar el año como MVP

La verdad es que después de unas navidades febriles (de las que no me encuentro del todo recuperado) es muy agradable encontrarse en la bandeja de entrada del correo un mail que te felicita por haber sido nombrado Microsoft Most Valuable Professional.

Es ciertamente uno de los mejores regalos que se puede recibir estas navidades. Ya que no tenemos salud, por lo menos tenemos MVP :)

Es todo un orgullo para mi haber sido reconocido en la categoría de Visual Developer - Windows Client Developement, y desde aquí quiero agradecer a todos los que han hecho que esto sea posible, gracias a mis compañeros y amigos (incluso a los que están lejos ahora) , que me apoyan continuamente y de los que no paro de aprender, a la gente de Microsoft con la que he crecido y que han creído en mi y por supuesto a Cristina, artífice de esta mención y a todos los que han compartido aunque solo sea un ratito conmigo, porque de todos vosotros he aprendido algo... y espero seguir haciéndolo.

Agradecer por supuesto a esta nuestra comunidad ;) la ilusión por la tecnología de la que hace gala y de la que espero seguir participando durante mucho tiempo, aportando mi granito de arena y enriqueciendome de vuestra sabiduría.

De nuevo muchas gracias...

Un saludo a todos y Feliz Año!!

WPF: Habilitar la depuración de XAML

Uno de los problemas más habituales a la hora de depurar una aplicación WPF, es el de cometer errores dentro del XAML que define nuestra interfaz. Por defecto las excepciones nos muestran un mensaje que de poco ayuda:

Error in markup file 'Namespace;component/WMain.xaml' Line 1 Position 9.

Si nos paramos a pensar unos segundos en la estructura de las ventanas en XAML, rápidamente nos daremos cuenta que en la primera línea, en la posición 9, está parte de la definición de nuestra ventana, y rara vez es la causante del problema.

Por defecto, Visual Studio no muestra los detalles de las excepciones que son provocadas por un error en el XAML, pero esto lo podemos cambiar siguiendo estos sencillos pasos:

  1. Pulsamos sobre el menú Debug (Depuración)
  2. Seleccionamos Exceptions... (Excepciones) Ctrl+Alt+G
  3. En la ventana que se nos muestra pulsamos el botón Add... (Añadir)
  4. Seleccionamos en el campo Type: Common Language Runtime Exceptions
  5. Escribimos en el campo Name: System.Windows.Markup.XamlParseException
  6. Desplegamos el árbol de Common Language Runtime Exceptions y marcamos la casilla de Thrown

excepciones

Acto seguido volveremos a depurar la aplicación, lo que, una vez se dispare la excepción, nos mostrará un mensaje como el que sigue:

Cannot convert the value in attribute 'Background' to object of type 'System.Windows.Media.Brush'. Token is not valid.  Error at object 'System.Windows.Controls.Grid' in markup file 'Namespace;component/WMain.xaml' Line 10 Position 6.

El grupo de producto está trabajando en la mejora de este aspecto en la versión 2008 de Visual Studio (Antes conocida como Orcas).

Espero que este pequeño truco os resulte de utilidad y os  ayude a solucionar algún que otro problema.

WPF: AllowTransparency=True, Performance=False

Siguiendo un poco la línea de artículos osbre rendimiento en WPF, hablaremos de la implicación de rendimiento que implica el uso de la propiedad AllowTransparency de WPF.

Esta propiedad nos permite crear ventanas transparentes, tanto completamente, como habilitar regiones que no se dibujen en la misma para crear ventanas con formas irregulares.

Esta capacidad, no lo voy a negar, es muy llamativa para el diseño de interfaces que enfatizen el diseño de nuestra aplicación. Pero esta práctica no es del todo recomendable por los problemas de rendimento que conlleva.

Mientras la propiedad AllowTransparency esté asignada a False, no obtenemos problemas de rendiemiento derivados de la manera que tiene WPF de renderizar nuestra aplicación, este renderizado se lleva a cabo por el Pipeline de DirectX, por lo que en Windows XP se dibujará directamente en pantalla y en Windows Vista lo hará en una superficie compartida en el Desktop Window Manager.

Este gráfico refleja este proceso:guno

 

En cambio, si asignamos el valor de esta propiedad a True, nos encontraremos con un problema de rendimento en el Renderizado que deberemos tener en cuenta a la hora de llevar a cabo el diseño de nuestra aplicación.

 Para explicar un poco mejor esto, debemos entender el proceso que es llevado a cabo en cada sistema operativo. En Windows XP la superficie de dibujo de Direct3D falla con canales Alpha, ya que la implementación de este proceso en Windows XP difiere con el de Windows Vista y esto fuerza al sistema a usar el renderizado software. En cambio en Windows Vista el motivo difiere, ya que al llamar a IDirect3DSurface::GetDC() sí se lleva a cabo correctamente mediante hardware, pero al hacer uso de GDI, que en Windows Vista está emulado por software, lo que obliga a que todo este proceso se dibuje en la memoria principal del sistema, lo que transforma esto en un proceso extremadamente lento.

Acompaño un gráfico que ilustra lo anterior:

gdos

Como conclusión, el uso de esta característica de WPF debe reservarse a casos muy concretos en el que el rendimento general de la aplicación no se vea gravemente afectado, y por lo tanto afecte a la experiencia de usuario de nuestra aplicación.

WPF: Rendimiento vs BitmapEffects

Si llevais algún tiempo experimentando con Windows Presentation Foundation, habréis descubierto los BitmapEffects, que no son más que efectos prediseñados que podemos aplicar a los elementos de nuestra interfaz para mejorar el aspecto visual de nuestras aplicaciones.

Pero no todo son buenas noticias, como todo en el desarrollo software, los BitmapEffects tienen una implicación en el uso abusibo dentro de la interfaz, y esta implicación es de rendimiento.

Los BitmapEffects producen un decrecimento en el rendimiento general de nuestra aplicación cuando no se controla su uso, ya que estos fuerzan el renderizado software de los controles que hacen uso de ellos y de todos los elemntos que estén contenidos en su jerarquía de objetos.

El procesado de pixeles para los BitmapEffects ha sido llevado a cabo en código no gestionado y para unirlo al resto de características de .NET 3.0 se hace uso de un pequeño Wrapper. Podéis ver algo más de este tema en este enlace así com descubrir cómo realizar nuestros propios BitmapEffects.

sshot-4

Otra de las implicaciones a tener en cuenta en los BitmapEffects es que no pueden usarse en una aplicación que se ejecute sobre confiabilidad parcial (Partial Trust), por lo que no podremos hacer uso de ellos en nuestras aplicaciones XBAP.

El equipo de producto está buscando introducir cambios en la siguiente versión de WPF para que se pueda hacer uso de BitmapEffects y de la aceleración Hardware desde una aplicación ejecutada en confiabilidad parcial. Estas dos opciones han sido de las más demandadas por la comunidad.

WPF: Windows Client VS XBAP

Cuando desarrollemos aplicaciones con WPF deberemos tener en cuenta cual será el despliegue que usará, por lo que deberemos decidir entre un despliegue Web mediante XBAP o crear una aplicación de escritorio, y por lo tanto tener en cuenta cuales son los requisitos que debe cumplir, ya que aunque casi toda la funcionalidad de WPF está presente en las aplicaciones XBAP, no toda ella está descrita.

Estas implicaciones deben tenerse en cuenta en la fase de definición de la aplicación, en la que deberemos decidir dicho despliegue y aquellos elementos de los que podremos hacer uso.

Para poder tener una noción clara de cuales son estas diferencias, aquí os dejo una comparativa entre aplicaciones de escritorio y aplicaciones XBAP:

  • Aplicaciones de escritorio
    • Se instala en la máquina local
    • Aparece en el menú Inicio y en Añadir/Quitar programas
    • Se instala con un MSI o con ClickOnce
    • Code Access Security
      • Se ejecuta en confiabilidad total (Full Trust)
      • Capacidades inherentes:
        • Puede mostrar ventanas hijas
        • Uso de WCF
        • Acceso al registro
        • Acceso a Escitura y lectura en el sistema de ficheros
        • Otras tareas heredadas de Full Trust...
      • Se ejecuta en una ventana independiente
      • Versiones actualizadas de la aplicación a elección del ususario
        • Automatizado por ClickOnce
        • A elecciónd el usuario
    • Uso desconectado de la Aplicación
  • Aplicaciones XBAP
    • No se instala en la máquina local
    • No aparece en el menú Inicio y en Añadir/Quitar programas
    • Se despliega automáticamente con ClickOnce
      • xxxx.xbap es en realidad un manifiesto de ClickOnce
    • Code Access Security
      • Se ejecuta en la Zona Internet
      • Excepciones de seguridad en accesos a recursos no autorizados
      • Capacidades inherentes a la zona de seguridad
        • Almacenamiento protegido
        • No se puede llamar a servicios WCF 
        • Solo se puede hacer uso de tareas disponibles en la Zona Internet
    • Seguridad adicional 
      • WPF elimina los privilegios de los drivers de dispositivo en el proceso del explorador
    • Alojado en el proceso del explorador de internet
    • Solo disponible para Internet Explorer en entornos Windows
    • Restricciones de WPF
      • No se soporta el objeto Window, se hace uso de Page
      • No se admiten ventanas modales
      • No hay soporte para BitmapEffects
      • No hay soporte para aceleración gráfica por Hardware
    • Siempre se ejecuta la última versión
    • Escenario de uso conectado
    • El usuario debe tener acceso al servidor de despliegue
WPF: Performance Tools Avaliable as Standalone MSI

Una gran noticia para todos es que las herramientas de medición y análisis de rendimiento de WPF están disponibles en un instalador independiente, por lo que ya no es necesario instalar el SDK completo para poder tener acceso a estas herramientas tan útiles y en mi opinión imprescindibles.

Además a esta gran noticia se une el hecho de que esta versión es una versión actualizada, correspondiente a la versión incluida en el SDK de .NET 3.5.

Podéis descargarlas desde estos enlaces:

X86
X64

Happy Coding!!!

ReMix 07: Presentando Marca Reader

Ayer daba comienzo en el Circulo de Bellas Artes de Madrid el ReMix 07, el primer evento de este tipo en España, que se propone replicar para el público español el evento celebrado hace pocas semanas en Las Vegas.

La verdad es que debo felicitar a todos los que lo han hecho posible, ya que la propuesta ha sido llevada a cabo con gran aceptación y ha resultado tódo un éxito.

Durante la KeyNote de ayer se daban a conocer los primeros desarrollos en WPF de firma nacional, y nosotros hemos tenido el orgullo de encontrarnos entre uno de los presentados.

Se trata de Marca Reader, una aplicación WPF que busca mejorar la experiencia de los usuarios frente a una publicación electrónica, en este caso, Marca, un periódico de tirada nacional de gran alcance.

Marca ha apostado por buscar una forma de incrementar la satisfacción de sus lectores haciendo uso de lás últimas tecnologías de desarrollo de interfaces de usuario, lo que les permitirá ofrecer un valor añadido e incrementar la satisfacción de los lectores.

Desde aquí quiero darles las gracias por ayudarnos a llevar a cabo esta propuesta y por haber apostado por esta iniciativa que ayer se hizo pública y agradecerselo también a todos aquellos que han hecho posible esto.

Como supongo que aquellos que no habéis podido asistir estaréis deseando verla, aquí os dejo una pequeña captura de pantalla.

Marca Reader 

Desde aquí también quiero hacer un guiño especial a la gente de Indra y de Meta4, que han presentado sus aplicaciones con nosotros.

Felicidades, habéis demostrado que en España también se pueden hacer aplicaciones realmente espectaculares, incluso en aplicaciones de línea de negocio.

Un saludo

WPF: Aplicaciones de linea de negocio con WPF

Hasta ahora han surgido muchas dudas sobre la eficacia de WPF en aplicaciones de línea de negocio o aplicaciones más clásicas, y para ayudar a solventar esas dudas, el equipo de Dynamics de Microsoft ha presentado una aplicación desarrollada en WPF para su familia de herramientas.

Esta aplicación ha sido presentada en Las Vegas, con motivo del MIX 2007.

La verdad es que no tengo palabras para expresar todo lo que han llevado a cabo estos chicos de Redmond, por lo que es mejor que lo veais vosotros mismos en el video donde lo presentan:

http://int1.fp.sandpiper.net/soma/applications/silverlight/v1/videos/XBD05.wmv

En el no solo presentan la aplicación, si no que explican cómo han llevado a cabo el desarrollo de la misma.

Espero que os guste tanto como a mi, o a Marco...

WPF: Expression Blend Disponible para descarga en MSDN

Como parte de la decisión del Equipo de desarrollo de Expression, ya tenemos disponible la descarga de la versión final de Expression Blend en nuetra suscripción a MSDN.

El equipo decidió poner dentro de la categoría de herramientas de desarrollo dos de las herramientas incluidas en Expression Studio, Expression Web y Expression Blend, y están disponibles para los suscriptores de MSDN Premium y MSDN-AA.

La descarga está disponible desde el día 3 de mayo de 2007 y la encontraréis dentro de Developer Tools.

Un saludo.