lunes, 26 de noviembre de 2007

Desde hacia rato no habia escrito nada para Pwned's pero ahora me doy un tiempo y escribo sobre el tema que me trae lidiado desde hace rato, como bien dice AiVW en el post sobre WPF esta es la nueva tecnologia de desarrollo por la que esta apostando Microsoft, y es realmente impresionante a comparacion a su competencia directa Mono, bien, pero estos dilemas los dejamos para otro dia.

Los WebServices son programas que se encargan de brindar servicios atravez del protocolo HTTP (SOAP), pueden ser programados en casi cualquier lenguaje que soporte lo que es la arquitectura orientada al servicio (SOA), en IIS con el .NET Framework son realmente sencillos de realizar con Microsoft Web Developer, pero si somos amantes de notepad a pelo, pues:

<% WebService Language="C#" Class="HolaMundo"%>
using System.Web.Services;

[WebService(Namespace="http://localhost/",Description="Servicio web Hola")]
public class HolaMundo{

[WebMethod(Description="Devuelve la cadena Hola, Mundo")]
public string Saluda() {
return "Hola, Mundo";
}
}

Esa es la estructura funcional de cualquier WebService creado para el .NET Framework 2.0 notese que los webservices los haremos con la version 2.0 del .NET, ya que WPF trabaja sobre la plataforma 3.0 y 3.5, apartir arracar nuestro webservices es necesario iniciar el servidor IIS y en el directorio wwwroot (varia de acuerdo a gustos) y guardarlo con extension .asmx y obviamente iniciarlo a traves del navegador como si de una pagina se tratase.

Para poder utilizarlo como una clase en cualquiera de nuestros proyectos en VS solo basta hacer una referencia al WebServices en esta liga lo explican como hacerlo, apartir de la version 2008 del VS, se llamo "Agregar referencia" pero el version 2005 se llama "Agregar Referencia Web", por si hay problemas :),

Ahora solo basta crear algun proyecto y agregar las librerias de la referencia (Demo es el nombre del proyecto):

using Demo.ServiceReference; //referencia de nuestro servicio

namespace Demo
{
///
/// Interaction logic for Window1.xaml
///

public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}

private void button1_Click(object sender, RoutedEventArgs e)
{
ServiceReference.HolaMundoSoapClient serv = new ServiceReference.HolaMundoSoapClient();
String var = serv.Saluda();
label1.Content = var;
}
}
}


Como podran apreciar no hay gran diferencia entre la instancia de una clase comun y un WebService, por ahora sera todo, dentro de poco prometo escribir mas sobre esto, sobre todo tratar temas como XAML, SOAP, ADO.NET, WPF, WCF.

Un saludo

2 comentarios :

  1. Unknown dijo...

    ehm... Mono no es la "competencia" sólo una implementación en sistemas No Windows.

  2. Miguel dijo...

    Es verdad pero conosco a mas de uno que diria que mono es todo un gran rival para el .NET, en fin, para todo hay gustos.

    Aunque yo he realizado algunas pruebas en VS y ejecutarlas con mono y viceversa, y debo decir que van bastante bien, aunque en un par de veces me ha quedado mal.

    En fin, saludos :)