WPF: Como hacer una ventana con bordes redondeados

Esta es una cosa con la que ayudé a un amigo en su momento. Ahora que me toca meterme a WPF me he acordado de ella y os al enseño.


Para hacer esto con WPF tenemos un pequeño problema… El objeto Window no tiene la propiedad CornerRadious como otros objetos, así que lo que voy a hacer es “borrar” el objeto Window, para ello cambio estás tres propiedades de Windows:


·         AllowsTransparency=»True»


·         WindowStyle=»None»


·         Background=»#00FFFFFF»


Ahora que ya tenemos “borrado” nuestro Window añadimos un objeto Border y la propiedad CornerRadious pasa a ser 10.


Aquí tenemos el resultado:




Para concluir quiero advertir que si tenéis la última CTP de las extensiones de WPF para VS 2005 (no sé si tendré yo una versión antigua) si la propiedad AllowsTransparency está establecida no podemos diseñar ya que se propude un “Whoops!”, pero en cambio con Blend podemos tenerla puesta sin problemas.

¿No te llegan las características que vienen con ASP.NET Ajax?

Pues si no te llegan tenéis el siguiente proyecto en CodePlex reune una serie de funcionalidades que el núcleo de ASP.NET Ajax y ASP.NET Ajax Futures CTP incluyen:


http://www.codeplex.com/AjaxEnhancements


Estas son:


  • Sys.Fx.Collections – Collection classes including:

    • IEnumerable
    • IEnumerator
    • List
    • Dictionary
    • DictionaryEntry
    • $foreach() to create a for..each enumeration
    • $break() to simulate break in for..each and iterators
    • $continue() to simulate continue in for..each
    • $yield() to simulate yield return in iterators
    • $iterator() to simulate iterators
    • Array and String enhancements to support $foreach() enumeration over Array values and String characters

  • Sys.Fx.Query – LINQ to Javascript implementation including:

    • Sequence
    • OrderedSequence
    • Grouping
    • Lookup
    • $from() to simulate extensions

  • Sys.Fx.QualityTools – Unit Testing framework including:

    • Test Classes
    • Test Methods
    • Assertions (areEqual, isTrue, inconclusive, fail, etc.)
    • Exception testing (with Sys.Fx.QualityTools.ExpectedExceptionAttribute)
    • Test Lists
    • Debug and DOM element test writers for results

  • Y adicionalmente provee al Visual Studio Team System las siguientes características para hcer testeos unitarios:


  • AjaxEnhancements.QualityTools

    • AjaxTestClass class to provide unit testing integration
    • Test lists

  • AjaxEnhancements.QualityTools.VisualStudio

    • VSIP Package containing integrated test tools
  • .NUGG: Presentación del primer evento

    Tenemos problemas técnicos con la web y no podemos subir archivos a ella, por lo que os adjunto al post la presentación que Miguel Jiménez impartió el pasado 18 de enero y en cuanto podamos subimos la presentación a la web (http://www.nugg.es)


    Aprovecho otra vez para invitaros a ir a nuestro próximo evento en el que Chema Alosno impartirá su charla «Algunas técnicas de Hacking en aplicaciones Web». Para más información:


    http://geeks.ms/blogs/eecsaky/archive/2007/02/12/segundo-evento-de-nugg.aspx

    Segundo evento de .NUGG



    El próximo 2 de marzo haremos nuestro segundo evetno. En el tendremos de invitado a Chema Alonso que nos dará una charla titulada «Algunas técnicas de Hacking en aplicaciones Web» y aquí tenéis un pequeño resumen:


    Durante 2 años he ido realizando conferencias sobre técnicas hacker para atacar aplicaciones Web. Estas técnicas son las que yo utilizo para realizar los test de Intrusión en las empresas. En esta sesión voy a realizar, con alguna pizca de humor, un análisis de algunas de ellas, viendo algunos aspectos en detalle de como especilizar ataques de SQL Injection, XSS, RFI o Webtrojan. Anímatet a venir y sabrás más de la sesión.


    El lugar será el mismo que el anterior:


    Edificio Xoana Capdevielle, Aula 2

    Campus de Elviña de la Universidad de la Coruña

    La Coruña

     

    Si quieres registrarte puedes hacerlo en linea en la siguiente dirección o llamando al número de teléfono 902197198.

    http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032330220&Culture=es-ES

    I’ve installed Windows Vista!!!

    Desde el viernes pasado tengo el Windows Vista instalado y ahora toca compartir «THE EXPERIENCE». Para empezar voy a contaros la evaluación de hardware que hace el Vista:



    • Procesador: Athlon XP 2400+ (según Vista 2.01 Ghz) ……….. 3,4

    • Memoria RAM: 1,5 GB (96 MB compartidas con la gráfica) …. 2,8

    • Gráficos: No soporta DirectX 9c (Necesario para Aero) ……… 1,9

    • Gráficos de juego …………………………………………………….. 1,0

    • Disco duro principal: 160 GB (ATA) ………………………………. 5,6

    En total un 1,0 pero al parecer está condicionado por el puntaje más bajo. Además pasé el Windows Vista Upgrade Advisor y solo me informa que cambie de gráfica y añada un DVD-RW.


    Aquí está un pequeño resumen de mi opinión:



    • Arranque: Aproximadamente igual a XP, quizás en Vista un poco menos.

    • Inicio de sesión: Mucho más rapido en Vista.

    • Windows Media Player 11: Tiene más errores el de Vista que el de XP. Pero consume menos recursos.

    • Visual Studio 2005: Arranque mucho más rápido en Vista, pero tiene un mensaje muy molesto al iniciar, se peude desactivar pero prefiero solucionarlo y que me recuerdo que lo tengo que hacer.

    • Drivers: No tenía drivers para Vista, instalé los de XP y me funcionó todo perfectamente, en cuanto conecté el PC a Internet ya me descargo unos para Vista.

    • Office 2007: Mucho más rápido 🙂

    • Reconocimiento de voz: ¡Simplemente impresionante!

    • Apagado: Mucho más rápido.

    La verda pensé que en cuanto estuviese con el Visual Studio, documentación, PowerPoint y escuchando música al msimo tiempo iba empeorar el rendimiento y no ha sido así.


    Estoy muy impresionado, los únicos problemas que le veo es la compatibilidad con Visual Studio y algún otro programar (como el SQL Management Studio que no he podido instalar), los errores del Windows Media Player 11, que la SideBar consume el 11% de la CPU y que si pongo el Gadget de monitorización de la CPU entonces sube un 14% más, no tener Aero y lo pesada que se hace la administración.


    Espero que le sirva alguien de referencia.

    La solución al uso de Google Analytics en Geeks.ms y un poco de historia de Ajax…

    Bueno Rodrigo Corral ya sabe cual es la solución… así que ya es hora de desvelar el secreto.


    Para empezar voy a copiar la historia predecesora de AJAX obtenida de la Wikipedia:


    A pesar de que el término «Ajax» fuese creado en 2005, la historia de las tecnologías que permiten Ajax se remonta a una década antes con la iniciativa de Microsoft en el desarrollo de Scripting Remoto. Sin embargo, las técnicas para la carga asíncrona de contenidos en una página existente sin requerir recarga completa remontan al tiempo del elemento iframe (introducido en Internet Explorer 3 en 1996) y el tipo de elemento layer (introducido en Netscape 4 en 1997, abandonado durante las primeras etapas de desarrollo de Mozilla). Ambos tipos de elemento tenían el atributo src que podía tomar cualquier dirección URL externa, y cargando una página que contenga javascript que manipule la página paterna, pueden lograrse efectos parecidos al Ajax.


    El Microsoft’s Remote Scripting (o MSRS, introducido en 1998) resultó un sustituto más elegante para estas técnicas, con envío de datos a través de un applet Java el cual se puede comunicar con el cliente usando JavaScript. Esta técnica funcionó en ambos navegadores, Internet Explorer versión 4 y Netscape Navigator versión 4. Microsoft la utilizó en el Outlook Web Access provisto con la versión 2000 de Microsoft Exchange Server.


    La comunidad de desarrolladores web, primero colaborando por medio del grupo de noticias microsoft.public.scripting.remote y después usando blogs, desarrollaron una gama de técnicas de scripting remoto para conseguir los mismos resultados en diferentes navegadores. Los primeros ejemplos incluyen la librería JSRS en el año 2000, la introducción a la técnica imagen/cookie[1] en el mismo año y la técnica JavaScript bajo demanda (JavaScript on Demand)[2] en 2002. En ese año, se realizó una modificación por parte de la comunidad de usuarios[3] al Microsoft’s Remote Scripting para reemplazar el applet Java por XMLHttpRequest.


    Frameworks de Scripting Remoto como el ARSCIF[4] aparecieron en 2003 poco antes de que Microsoft introdujera Callbacks en ASP. NET[5].


    Desde que XMLHttpRequest está implementado en la mayoría de los navegadores, raramente se usan técnicas alternativas. Sin embargo, todavía se utilizan donde se requiere una mayor compatibilidad, una reducida implementación, o acceso cruzado entre sitios web. Una alternativa, el Terminal SVG[6] (basado en SVG), emplea una conexión persistente para el intercambio continuo entre el navegador y el servidor.



    Quizás me pasé un poco con la historia, ya que el primer párrafo nos llega para nuestro objetivo… Cómo poder usar Google Analytics desde una página que ya tiene Google Analytics. Ahora mi razanamiento es el siguiente… Si no podemos cargar el script de Google Analytics en esa página. ¿Porqué no hacemos que se cargue otra página que si lo tenga? Para ello leemos le segundo párrafo… y no escontramos con los IFRAMES, con ellos podíamos cargar una página dentro de otra.


    Ahora ya tenemos una página con el script y en la otra página el IFRAME:


    <IFRAME src=»Script.html» />


    Ahora nos encontrabamos con el siguiente problema, con eso se carga una página en blanco… necesitamos ocultarlo. Para ello usamos CSS:


    <IFRAME style=»display: none» src=»Script.html» />


    Y el siguiente problema nos lo ponía Geeks.ms, no podemos modificar la página del blog… Lo único que nos deja modificar es una cabezera de la página donde podemos incluír JavaScript. Y nos ponemos manos a la obra:


    <script type=»text/javascript»>
        var Stats = «<iframe style=’display: none’ src=’Script.htm’ />«;
        document.write (Stats);
    </script>


    Ya lo tenemos… ya tenemos las estadísticas de Google Analytics.


    Ahora toca poner las pegas… Hasta aquí todo parece muy bonito pero no lo es, esto tiene sus limitaciones. Las mayores limitaciones es que no sabemos el tema de buscadores y procedencia de las páginas. Pero si podemos saber cual es el número de visitas y cuales son las más vistas, mirando las procedencias de las visitas.


    Como dijo Rodrigo en un comentario esto requiere un hosting externo, pero podemos usar algún hosting gratuito como puede ser geocities.


    Un saludo y que os sea útil. [:)].

    Tengo Google Analytics en mi blog de geeks.ms :)

    Este es un post especial para la gente que tiene blog en Geeks.ms, aunque a modo de curiosidad os invito a leerlo.


    Hace unos meses nuestro amigo Rodrigo Corral nos anunciaba que los bloggers podíamos configurar google Analytics en su blog. Después de que varios bloggers intetasemos la configuración de Google Analytics sin obtener ningún resultado positivo (podéis verlo en los comentarios) Rodrigo posteaba una rectificación, no se podía tener 2 Google Analytics configurados en un mismo sitio.


    Esto pasó a mediados de agosto… y ya he encontrado la solución!!!!


    En los próximos días postearé cual es la solución… pero pronto solo os daré una pista:


    «Pensar en como se hacían las cosas antes de la aparición de Ajax…»


    Espero vuestros comentarios 🙂