SERVICIOS WEB, (parametros tipo clase)

18/10/2007 - 17:56 por ZyXpHrEeZ | Informe spam
Hola a todos, tengo una inquietud muy grande al respecto, yo he desarrollado
varios WS en .NET, digamos que todos han sido consumidos por clientes
desarrollados igualmente en .NET, mis metodos web tienen algo parecido a esto:

public ClsOrder xmlOrder;

[WebMethod]
public string wmBeginTransaction(ClsOrder xmlOrderTransaction) {
//para ejemplo pongo algo como sus propiedades, pero hay
propiedades //de tipo de un ENUM
string idFactura = xmlOrderTransaction.Factura;
double valorFactura = xmlOrderTransaction.Total;

}

consumir esto en los clientes es muy facil, simplemente se instancia una
variable del tipo ClsOrder y se envia como parametro al metodo, ok?, despues
de explicarme hago la pregunta, esto funciona perfecto de .net a .net, PERO
ahora tengo un WS que va a consumir clientes de otras empresas, y van a
desarrollar en JAVA, DELPHI , etc, no se si ellos tendran algun tipo de
problema al consumirlo?, ya que yo manejo ese tipo de parametro "complejo",
no se hasta donde llegara el tipo de compatibilidad?, la verdad necesito la
opinion de ustedes un poco rapido ya que tengo que determinar cual es la
mejor forma de desarrollar mi WS y como cosa rara en las empresas siempre
andamos contra el tiempo.

mil y mil gracias por su colaboracion y opiniones.

PDTA: yo se que esto puede ir en la categoria servicios web, igualmente lo
publique tambien alli, solo que esta categoria tiene mas # de visitantes.


Cordial saludo.
 

Leer las respuestas

#1 Alberto Poblacion
18/10/2007 - 18:24 | Informe spam
Los consumidores de tu servicio usan el WSDL para generar la clase "proxy"
que se conecta al servicio, así como las clases que sirven para pasar los
parámetros de tus métodos. Si te fijas en la parte del WSDL que describe
estas clases, verás que solo se describen los campos y propiedades públicas,
con lo que la copia local de la clase es un simple contenedor para estos
datos sin ninguna otra funcionalidad (los métodos de estas clases no pasan
al cliente). Esto de crear una clase que sea un simple contenedor se puede
hacer también en otras plataformas, por lo que el servicio es compatible con
ellas y no solo con .Net.

Para aseguarte la máxima compatibilidad con otras plataformas, es
recomendable meter lo de
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1,...)] para que te
rechace cualquier cosa que no encaje dentro del Perfil Básico 1.1.


"ZyXpHrEeZ" wrote in message
news:
Hola a todos, tengo una inquietud muy grande al respecto, yo he
desarrollado
varios WS en .NET, digamos que todos han sido consumidos por clientes
desarrollados igualmente en .NET, mis metodos web tienen algo parecido a
esto:

public ClsOrder xmlOrder;

[WebMethod]
public string wmBeginTransaction(ClsOrder xmlOrderTransaction) {
//para ejemplo pongo algo como sus propiedades, pero hay
propiedades //de tipo de un ENUM
string idFactura = xmlOrderTransaction.Factura;
double valorFactura = xmlOrderTransaction.Total;

}

consumir esto en los clientes es muy facil, simplemente se instancia una
variable del tipo ClsOrder y se envia como parametro al metodo, ok?,
despues
de explicarme hago la pregunta, esto funciona perfecto de .net a .net,
PERO
ahora tengo un WS que va a consumir clientes de otras empresas, y van a
desarrollar en JAVA, DELPHI , etc, no se si ellos tendran algun tipo de
problema al consumirlo?, ya que yo manejo ese tipo de parametro
"complejo",
no se hasta donde llegara el tipo de compatibilidad?, la verdad necesito
la
opinion de ustedes un poco rapido ya que tengo que determinar cual es la
mejor forma de desarrollar mi WS y como cosa rara en las empresas siempre
andamos contra el tiempo.

Preguntas similares