Silverlight (1.0 Beta y 1.1 Alpha), ASP.NET Futures y Blend 2: Las novedades de Mayo…

Hay muchas cosas que contar y no se por donde empezar…


Creo que empezaré por Silverlight, Microsoft acaba de publicar tres cosas sobre Silverlight:



Aquí quiero hacer una pequeña aclaración, como véis tenemos el Silverlight manejado para Mac, esto no significa que necesitemos .NET en Mac (no lo hay…) sino que los objetos de Silverlight se crearán en el servidor (ASP.NET) y estos objetos tendrán características especiales y por ello un Runtime diferente (y tan diferente el 1.0 ocupa 1,38 MB y el 1.1 ocupa 4,24 MB, jeje)


Ahora toca ASP.NET Futures May 2007 Preview: Es la preview de lo que será ASP.NET, entre otras cosas incluye ASP.NET Ajax Extensions January CTP, los controles de servidor de Silverlight y otras novedades de ASP.NET. Lo podéis descargar en: http://go.microsoft.com/fwlink/?LinkID=89147&clcid=0x409.


También tenemos Microsoft Expression Blend 2 Preview: Es la primera preview de la segunda versión de Blend, entre otras cosas permite totalmente el soporte para desarrollar las llamadas «silverlight-based application». Lo podéis descargar en: http://www.microsoft.com/downloads/details.aspx?FamilyId=88925FC5-B395-4911-9A02-9FDD80CEA564&displaylang=en.


Por ultimo Microsoft Expression Media Enconder Preview: Es una futura característica de Microsoft Expression Media que permite la creación de videos (parece algo así a Windows Media Encoder 9, jeje). Lo podéis descargar en: http://go.microsoft.com/fwlink/?LinkID=89148&clcid=0x409.


Parece que esto se pone interesante [:D].

Ahora que hablamos sobre Ajax… excelente artículo sobre JavaScript

En la edición del mes de mayo de MSDN Magazine podemos encontrar un artículo sobre JavaScript.


Me ha parecido muy interesante ya que nos muestra como JavaScript cumple todas las características de la POO, lo podéis leer en la siguiente dirección:


 http://msdn.microsoft.com/msdnmag/issues/07/05/JavaScript/default.aspx


 El artículo se mostrará en el idioma que tenga configurado el navegador (está disponible el español [:)]).


Mientras leía el artículo iba probando los ejemplos en Visual Web Developer «Orcas» Beta 1 y pude comprobar todo lo que tiene que madurar el Intellisense para JavaScript, ya que hay muchas cosas que todavía no soporta.


Además me parece muy interesante la comparación que hace durante el artículo con C#/C++ e incluso en algunos casos con Visual Basic, este artículo demuestra que el conocimiento de la sintaxis de C no es suficiente para conocer JavaScript…


En definitiva… recomiendo su lectura [;)]

Integración de Windows Forms 2.0 en WPF

Esto a más de uno le puede parecer curioso a más de uno. ¿Para qué vamos a usar Windows Forms dentro de WPF si ya tenemos WPF? Eso, yo creo, que lo pensamos todos cuando empezamos con WPF, pero a medida que nos metemos en un proyecto nos damos cuenta que necesitamos más de que creemos Windows Forms, y para ser concretos las librerías de GDI+ (System.Drawing).


En mi caso tenía que integrar la captura de una WebCam en una ventana de WPF y grabarlo en el disco. En este artículo solo me centraré en lo primero, el tema de la grabación no es necesario para este ejemplo.


Para ello usé las librerías que se encuentran en este artículo de CodeProject.


Antes de empezar con el tema de integración voy a comentar una cosa. Para poder mostrar un control en Windows Forms éste se debe heredar de la clase Control (Sytem.Windows.Forms.Control, de la librería System.Windows.Forms.dll) mientras que para poder mostrar un elemento en WPF (declarándolo en XAML) éste se debe de heredar de la clase UIElement (System.Windows.UIElement, de la librería WindowsBase.dll). Y esa es la razón por la que no podemos añadir controles de Windows Forms en WPF y no podemos añadir controles de WPF en Windows Forms.


Pero todo tiene una solución, y esa se llama WindowsFormsIntegration.dll, que nos permite tanto la integración de controles de Windows Forms en WPF como la de elementos de WPF en Windows Forms.


Ya sé que esto es un poco lioso. Pero ahora vamos a ver un ejemplo. En este post solo trataremos de la integración de Windows Forms en WPF. Esto es lo que pretendemos obtener:









Para poder hacer ese ejemplo, debemos crear un proyecto tipo Windows Application (WPF), en mi caso C#. Y a él añadir las tres referencias que necesitamos:


·         System.Windows.Forms


·         DirectX.Capture


·         WindowsIntegration


La última referencia es la importante en este caso, ya que debemos usar el objeto WindowsFormsHost.


El XAML de nuestro ejemplo es:


<Window


      xmlns=«http://schemas.microsoft.com/winfx/2006/xaml/presentation«


      xmlns:x=«http://schemas.microsoft.com/winfx/2006/xaml«


      x:Class=«WebCamCapture.Window1«


      x:Name=«Window«


      Title=«Window1«


      Width=«350«


      Height=«400«


      Loaded=«WindowLoaded«>


 


      <Grid x:Name=«LayoutRoot«>


    <WindowsFormsHost x:Name=«wfh«


                               Height=«300«


                               Width=«300«  


                               Margin=«8,50,0,55«


                               HorizontalAlignment=«Left« />  


           


            <ComboBox x:Name=«VideoList«


                          SelectionChanged=«VideoSelected«


                          HorizontalAlignment=«Left«


                          Margin=«64,12,0,0«


                          Width=«232«


                          IsSynchronizedWithCurrentItem=«True«


                          Height=«24«


                          VerticalAlignment=«Top« />


    <Label Content=«Video«


               HorizontalAlignment=«Left«


               Margin=«8,10.04,0,0«


               Width=«52« 


               VerticalAlignment=«Top« />


  </Grid>


</Window>


Y el C#:


DirectX.Capture.Capture capt = null;


DirectX.Capture.Filters filters = new DirectX.Capture.Filters();


 


DirectX.Capture.Filter _video = null;


 


private void WindowLoaded(object sender, RoutedEventArgs e)


{


    VideoList.Items.Clear();


    ListBoxItem m = new ListBoxItem();


    m.Content = «(None)»;


    VideoList.Items.Add(m);


    foreach (DirectX.Capture.Filter var in filters.VideoInputDevices)


    {


        ListBoxItem lbi = new ListBoxItem();


        lbi.Content = var.Name;


        VideoList.Items.Add(lbi);


    }


    VideoList.SelectedIndex = 0;


    }


 


private void VideoSelected(object sender, SelectionChangedEventArgs e)


{


    string codec = (string)(VideoList.SelectedValue as ListBoxItem).Content;


    if (codec != «(None)»)


    {


        foreach (DirectX.Capture.Filter var in filters.VideoInputDevices)


        {


            if (var.Name == codec)


            {


                _video = var;


                break;


            }


        }


        Start();


    }


}


private void Start()


{


    if (capt == null)


    {


        capt = new DirectX.Capture.Capture(_video, null);


        //Usamos la propiedad Child del WindowsFormsHost


        //para poner controles de Windows Forms


        wfh.Child = new System.Windows.Forms.Panel();


        capt.PreviewWindow = wfh.Child;


    }


    else


    {


        System.Windows.Forms.Control oldPreview = capt.PreviewWindow;


 


        capt.PreviewWindow = null;


 


        capt = new DirectX.Capture.Capture(_video, null);


 


        capt.PreviewWindow = oldPreview;


        wfh.Child = capt.PreviewWindow;


    }


}


Como podeis ver usando la propiedad Child del WindowsFormsHost podemos incluir controles de Windows.Forms [:)].

Después de probar Web y C# "Orcas"

Ahora que ya he comprobado que las instalaciones están bien al igual que mis sistema y probado Web Developer y C# «Orcas» Beta 1 puedo hacer algún comentario [:)].


Lo que iba a comentar sobre Web Developer «Orcas» ya lo ha hecho Sergio Tarillo en su blog:



  • Soporte a .NET 3.0: WCF

  • Herramientas de manejos de estilo: Los mismos que Microsoft Web Expression

  • Soporte a ASP.NET Ajax Extensions

  • Dos controles nuevos: ListView y DataPager

  • Mejora del JSBuilder (el compilador de JavaScript); La versión de marzo tenía unos cuantos errores que han solucinado con esta nueva versión

Y sobre C# «Orcas», principialmente, el soporte para SQL Compact Edition: Muy parecido al soporte de SQL Server.


Y además para ambos IDEs:



  • Ha aumentado mucho la velocidad del IDE, mi amigo Bruno diría que eso es porque no se han tocado las settings del IDE, pero ni una nueva instalación de Visual C# o Web Developer 2005 se inicia tan rápido

  • Retoques en el diseño del IDE, un poco más coloridos, más de acuerdo con Vista.

Hay que reconocer que, sin contar las odiosas instalaciones, ha sido muy buena la experiencia [:D].

"Orcas" Express… Y tanto para valientes…

Bruno decía en su blog, VS ORCAS BETA 1 (SOLO PARA VALIENTES…), y no sabe que razón tenía con ese pequeño comentario…


 Ayer a las 10:00 empecé a instalar Visual C# «Orcas» Beta 1 y Visual Web Developer «Orcas» Beta 1 y hasta las 18:00 no lo tuve instalado.


Por el medio pasaron muchas cosas… se me colgó mi Vista 5 veces y ví 4 pantallas azules.


Mi recomendación para la gente que se aventure a instalarlo:



  • Visual C# «Orcas» Express: Instalar primer solo el IDE y luego el SQL Compact.

  • Visual Web Developer «Orcas» Express: Instalar solo el IDE

Además no debéis estar haciendo NADA mientras se instala.


Por otra parte yo aún no instalé la MSDN Library «Orcas» de C# ni Web Developer ya que no me dió tiempo…. en cuanto la instalé os cuento [:D].

MSDN Library April 2007 Edition publicada

Microsoft ha liberado para descarga libre la versión de abril de 2007 de MSDN Library:


http://www.microsoft.com/downloads/details.aspx?FamilyID=B8704100-0127-4D88-9B5D-896B9B388313&displaylang=en


Ocupa aproximadamente 2,5 GB e incluyen el soporte para los siguientes productos:


  • Visual Studio 2005 Service Pack 1
  • Visual Studio 2005 general updates
  • Windows Vista Developer
  • Windows® Driver Kit (WDK)
  • SQL Server 2005 Compact Edition Books Online
  • Y más…

  • Ya sabéis a descargarla [:)]

    VS "Orcas" Beta 1 y Express Editions CTP

    Ya se ha liberado la Beta 1 de Visual Studio «Orcas» para las versiones Professional, Team System y Team Fundation Server. Lo puedes descargar desde:


    http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx


    Además ya están disponibles las primeras CTPs de las versiones Express de Visual Studio «Orcas».


    Entre sus nuevas características cabe destacar el soporte para WPF, WCF, SQL 2005 Compact.


    Están son las veriones disponibles actualmente:




    • Microsoft Visual C# «Orcas» Express Edition:

    http://msdn.microsoft.com/vstudio/express/future/visualcsharp/default.aspx




    • Microsoft Visual VB «Orcas» Express Edition:

     http://msdn.microsoft.com/vstudio/express/future/vb/default.aspx




    • Microsoft Visual Web Developer «Orcas» Express Edition:
    http://msdn.microsoft.com/vstudio/express/future/vwd/default.aspx


    • Microsoft Visual C++ «Orcas» Express Edition:

    http://msdn.microsoft.com/vstudio/express/future/visualc/default.aspx


    Yo ya tengo ganas de probarlos [:)]

    Silverlight soportará Windows Mobile

    Actualmente Silverlight (aka WPF/E) soporta los siguientes navegadores:


    Microsoft Windows XP SP2/Windows Vista



    • Internet Explorer 6

    • Internet Explorer 7

    • Firefox 1.5 y 2.0

    Apple Mac OS X



    • Firefox 1.5 y 2.0

    • Apple Safari 2.0

    De momento la compatibilidad con Linux no estará soportada.


    En el MIX07 anunciarán el soporte de Windows Mobile, por lo que podemos esperar que tras el MIX07 tengamos una nueva CTP en nuestras manos.


    Fuente: http://weblogs.asp.net/mschwarz/archive/2007/04/18/silverlight-support-on-windows-mobile.aspx