Serializar y Deserializar nuestras clases

Noviembre 30, 2009 :: Posted by - Emilio Torrens :: Category - , ,

Es sencillo obtener una representación XML de nuestras clases con el método ToString, solo hemos de sobrescribirlo por este:

public override string ToString()
{
    XmlSerializer ser = new XmlSerializer(this.GetType());
    StringWriter sw = new StringWriter();

    ser.Serialize(sw, this);

    sw.Flush();
    sw.Close();
    return sw.ToString();
}

También podemos crearlas desde su representación XML:

public static MyClass CreateFromXml(string xml)
{
    XmlSerializer ser = new XmlSerializer(typeof(MyClass));
    StringWriter sw = new StringWriter();

    return (MyClass) ser.Deserialize(new StringReader(xml));
}

Todo el Código de ejemplo:

public class MyClass
{
    public string Data1 { get; set; }
    public string Data2 { get; set; }

    public static MyClass CreateFromXml(string xml)
    {
        XmlSerializer ser = new XmlSerializer(typeof(MyClass));
        StringWriter sw = new StringWriter();

        return (MyClass) ser.Deserialize(new StringReader(xml));
    }

    public override string ToString()
    {
        XmlSerializer ser = new XmlSerializer(this.GetType());
        StringWriter sw = new StringWriter();

        ser.Serialize(sw, this);

        sw.Flush();
        sw.Close();
        return sw.ToString();
    }

    public void Test()
    {
        MyClass c = new MyClass();
        c.Data1 = "Hola";
        c.Data2 = "Como Estas";

        string xMyClass = c.ToString();

        MyClass copy = MyClass.CreateFromXml(xMyClass);
    }
}

Nos puede ser muy útil para temas de log, guardar los datos en las desconexiones, para debugear o para transportar la clases en XML entre aplicaciones.

Cabeceras en mensajes SOAP

Noviembre 27, 2009 :: Posted by - Emilio Torrens :: Category - , ,

Añadir cabeceras personalizadas a los mensajes de nuestros servicios web es realmente sencillo, en esas cabeceras podemos transportar cualquier dato que nos interese tokens, usuario y contraseña, lo que sea..

Hay que hacer lo siguiente:

1- Crear la clase con los datos que herede de SoapHeader

public class SoapHeaderData: SoapHeader
{
    public string Data1;
    public string Data2;
    public string Data3;
}

2- Crear una propiedad en el servicio web con esa clase y la etiqueta SoapHeader con el nombre de la propiedad al método web, en esa propiedad tendremos los datos

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
    public SoapHeaderData HeaderData;

    [WebMethod]
    [SoapHeader("HeaderData")]
    public string HelloWorld() {
        return "Hello World " + HeaderData.Data1 + ", " +
                                HeaderData.Data2 + ", " +
                                HeaderData.Data3;
    }
}

Solo haciendo esto ya tenemos la cabecera en nuestra petición SOAP:

image

Tech-Ed Developers 2009

Noviembre 26, 2009 :: Posted by - Emilio Torrens :: Category -

TEE09_01 Hacia tiempo que tenia pendiente este Post y menos mal que he esperado porque mis sensaciones sobre este ultimo TEE han ido cambiando a medida que he ido viendo el PDC de Los Ãngeles …

Cuando salí del TEE salí mas o menos contento, el nivel fue mas bajo que en los otros TEE en los que he estado pero bien, tampoco era para quejarse, aunque de los otros TEE siempre había salido alucinando con 1000 ideas para aplicar en nuestros proyectos y de este salí contento con 4 o 5 ideas que, encima, no puedo aplicar porque están en Beta :)

La cosa ha cambiado cuando he visto los videos del PDC, Jordi me lo había contado y ayer les pegue un vistazo y me he quedado con la sensación de que se guardaron todo lo bueno para el PDC y que el TEE fue de compromiso …

TEE09_02

Presentan SilverLight 4.0 Beta en el PDC una semana después y en el TEE nada de nada, en el “Key Note†del TEE el producto estrella fue “Exchange Server 2010†que esta muy bien, pero … ¿En el Key Note del TEE Developers? tenemos VS 2010, Framework 4.0, ASP.NET 4.0 y hablan de Exchange?

Después de ver lo del PDC he ido haciendo memoria para comparar y me he dado cuenta que en el TEE había mas sesiones en las que hablaban de SharePoint que sesiones sobre Visual Studio, se hablo mas de la virtalización y de la nube que de Framework 4.0 o ASP.NET 4.0 … lo del portátil para todos los asistentes al PDC ni lo comento ..

Conclusión, el año que viene nos vamos al PDC que haciendo cuentas y con el cambio Euros/Dólares nos saldrá casi igual de precio solo algunas horas mas de avión.

Aquí dejo las fotos que hicimos Jordi y yo

Silverlight 4.0 Beta ya disponible

Noviembre 20, 2009 :: Posted by - Emilio Torrens :: Category -

microsoft_silverlight Ayer se lanzo en el PDC la versión Beta de Silverlight 4.0, ósea que desde ya tenemos todo lo necesario para trabajar con la nueva versión en el sitio de SilverLight.

Para enterarte mas a fondo de las nuevas funcionalidades puedes visitar el sitio del PDC y ver las sesiones sobre el tema :)

Para empezar a probar necesitas tener instalado Visual Studio 2010 Beta o el Visual Web Developer Express 2010 Beta y aquí encontraras la documentación online.

A disfrutarlo :)