DataSet en contra de la interoperabilidad de los Servicios Web XML

30/07/2005 - 08:53 por Marcos | Informe spam
Hola Muchachos, tengo una consulta, me acabo de enterar que en un servicio
Web que necesito que se interoperable con cualquier otra tecnología, los
datos generados deben estar basados en tipos que estan definidos por un
Esquema XML y no en el .NET framework.

Para mala suerte mia, el DataSet es un tipo de parametro basado en el .NEt
framework, por lo que el documento WSDL o XML generado, no es compatible con
otra tecnología, debe ser por eso que cuando trataba de utilizar el generador
de proxy de power builder 10, al darle el WSDL de un servicio Web que
devolvia un Dataset, no reconocia el metodo, en cambio cuando le daba WSDL
que devolvian un string, los reconocia a la perfección.

alguien me puede entonces a ayudar a como generar un simple servicio web que
devuelva de alguna forma lo que antes hacia a través de un DataSet, como algo
que sea valido. Ya que la idea de los Servicios Web es que sean
interoperables, pero al ocupar DataSet, estoy limitando considerablemente el
consumo de estos sol o a clientes relacionados con .Net.

El link donde explican lo que les planteo es:

http://www.theserverside.net/articl...1_05-click


e buscado información y me e encontrado con esto
http://msdn.microsoft.com/library/d...112003.asp

esta explicado para C#, y yo ocupo VB.NET, ademas los codigos estan
incompletos y no pude seguir la idea.

Podrian explicarme como implementarlo porfavor, a todo esto, yo ocupo
webmatrix para crear servicios web, por lo que muchas veces me hablaban de
generar xsd, que en webmatrix, no los genera automaticamente como en visual
studio creo.

Gracias por su atención.

Preguntas similare

Leer las respuestas

#6 Marcos
02/08/2005 - 21:35 | Informe spam
Gracias nuevamente ronald, la verdad estoy un poco frustrado con esto, ya que
pense sería mas sencillo consumir un servicio web d euna pataforma no .NET,
con todo esto de la interoperabilidad, pero con tus consejos, veo una luz
jeje.

Oye te puedo hacer otra consulta?.

Los servicios Web XML, estan asociados a una Dirección IP, que sucede en el
caso de tener IP's Dinamicas ?
Mi proveedor de servicio Web, me tiene que avisar a mi como cliente que
actualice las referencias o las clases proxy ?
o hay otra forma de mantener la conectividad independiente que el proveedor
acmbie su IP?

MUCHAS GRACIAS RONAAAAAALDDD ¡¡¡¡¡¡¡


"Ronald Ricardo Ramirez Moran" escribió:

Hola nuevamente,

En tu pregunta dices que es el SOAP ToolKit, y para que sirve, o como
utilizarlo en PowerBuilder.

Bueno, el SOAP Toolkit es un conjunto de herramientas que te sirven para
publicar y consumir servicios web utilizando aplicaciones no .NET, es decir,
que tu puedes crear un Servicio Web y/o consumirlo a traves de una aplicacion
que no este dentro de la familia .NET y que no sea controlado por el CLR del
.NET Framework.

¿Como lo haces?
El SOAP Toolkit viene con un paquete de componentes COM/Activex y
herramientas que te permiten acceder asi como publicar un componente COM como
Servicio Web.

Por ejemplo, si deseas acceder a un servicio web desde VBA (Visual Basic for
Applications), incluido en las aplicaciones Office (Word, Excel, Access,
etc.) a traves de macros, puedes utilizar un codigo parecido a este para
consumir un servicio web:

Dim SoapClient3
set Soapclient3 = CreateObject("MSSOAP.SoapClient30")
Call SoapClient3.mssoapinit ("http://localhost/myservice.asmx?wsdl",
"DocSample1", "Sample1SoapPort")
Dim cXml As String
cXml = SoapClient3.GetDataXml()

Hay que tener en cuenta que "DocSample1.wsdl", puede ser un archivo proxy o
una direccion URL. Y bueno ya hemos obtenido nuestro Xml string.

El SOAP Toolkit lo puedes descargar desde el sitio de Microsoft, es
absolutamente gratuito y hasta el momento tengo entendido que se encuentra
disponible la version 3.0 del mismo.

Ronald Ricardo Ramirez Moran
Microsoft Certified Programmer C#

INETA Latam Volunteer
FoxEcuador Regional Coordinator

Blog:
http://dlanorok.blogspot.com
http://weblogs.foxite.com/DlanorOk


"Marcos" escribió:

> Gracias ronald, la información que me proporcionas es de valiosisima
> utilidad. Por otra parte, con el soap Toolkit, no entiendo como se usa, tu
> dices que debo acceder al dll que genera el servicio web xml ?, lo que pasa
> es que yo los creo en Webmatrix, el cual trae un generador de proxys, el cual
> crea una dll, ahora estos servicios web son facilmente consumidos de una
> aplicación desarrollada en web matrix, per ono entiendo como utilizo soap
> toolkit para un cliente en powerbuilder.
>
> Gracias nuevamente por tu ayuda, me sirvio demasiado.
>
> "Ronald Ricardo Ramirez Moran" escribió:
>
> > Hola Marcos!
> > > O.k busque sobre el Metodo GetXml, pero que devuelvo en el webmethod? un
> > > dataset o un XmlDataDocument ?
> > >
> >
> > Bueno dejame explicarte un poco sobre esto, el Metodo GetXml(), no se si te
> > habras dado cuenta, devuelve la estructura Xml junto con esquema y todo lo
> > que compone a un DataSet, en un String, que es el que utilizaras para
> > distribuir. Un ejemplo de ello:
> >
> >
> > [WebMethod()]
> > public string GetDataXml()
> > {
> > ...
> > // Implementacion
> > ...
> >
> > // Devolvemos el string con el Xml del DataSet
> > return ds.GetXml();
> > }
> >
> > ¿Bien y ahora como lo cargas a tu aplicacion?
> > Simple, lo que puedes hacer es primero leerlo asi Por ejemplo:
> >
> > // Primero accedemos al servicio, obtenemos los datos... etc.
> > MyService.MyClass mc = new MyService.MyClass();
> > string MyXml = mc.GetDataXml();
> >
> > // Leemos el Xml en forma de string y lo cargamos a un
> > // StringReader ubicado en el namespace System.IO
> > System.IO.StringReader reader = new System.IO.StringReader(MyXml);
> >
> > // Ahora vamos a cargarlo en el dataset del cliente:
> > DataSet ds = new DataSet();
> > ds.ReadXml(reader);
> >
> > MyGrid.DataSource = ds.Tables[0];
> >
> > Listo! ya se encuentra cargado nuestro Xml en el DataSet del Cliente.
> >
> >
> > NOTA: Puedes utilizar el SOAP ToolKit para acceder a un Servicio Web desde
> > una aplicacion no .net, y si en verdad devuelves un dataset este lo
> > convertira en un documento XmlDom.
> >
> >
> > Si quieres saber mas sobre el tratamiento de informacion con DataSets y Xml,
> > encontraras muy buena informacion en:
> >
> > http://msdn.microsoft.com/library/e...ataset.asp
> > http://msdn.microsoft.com/library/e...romxml.asp
> >
> >
> > Espero te sirva mi ayuda,
> >
> > Saludos Cordiales,
> >
> > Ronald Ricardo Ramirez Moran
> > Microsoft Certified Programmer C#
> >
> > INETA Latam Volunteer
> > FoxEcuador Regional Coordinator
> >
> > Blog:
> > http://dlanorok.blogspot.com
> > http://weblogs.foxite.com/DlanorOk
> >
> >
> > "Marcos" wrote:
> >
> > > O.k busque sobre el Metodo GetXml, pero que devuelvo en el webmethod? un
> > > dataset o un XmlDataDocument ?
> > >
> > > La idea es que el wsdl, reconozca una estructura validad y no un type <Any>.
> > >
> > > Tienes algun ejemplo de un web service que utilize GetXMl para devolver xml
> > > y algun cliente que consuma ese xml, por ejemplo para llenar un dataset y con
> > > eso cargar un datagrid.
> > >
> > > Gracias por todo.
> > >
> > > "Ronald Ricardo Ramirez Moran" escribió:
> > >
> > > > Hola,
> > > >
> > > > Si es muy cierto lo que tu nos comentas en tu post, pero tambien es cierto
> > > > que si utilizas las herramientas adecuadas para acceder a un objeto .NET lo
> > > > puedes hacer. De todas maneras, hay que dejar en claro que si, es cierto si
> > > > tratas el dataset directamente no podras acceder a los datos facilmente desde
> > > > cualquier aplicacion.
> > > >
> > > > Lo otro es que el DataSet, puede ser transformado en Xml facilmente con el
> > > > Metodo GetXml().
> > > >
> > > > Espero que te sirva mi ayuda.
> > > >
> > > > Ronald Ricardo Ramirez Moran
> > > > Microsoft Certified Programmer C#
> > > >
> > > > INETA Latam Volunteer
> > > > FoxEcuador Regional Coordinator
> > > >
> > > > Blog:
> > > > http://dlanorok.blogspot.com
> > > > http://weblogs.foxite.com/DlanorOk
> > > >
> > > >
> > > > "Marcos" escribió:
> > > >
> > > > > Hola Muchachos, tengo una consulta, me acabo de enterar que en un servicio
> > > > > Web que necesito que se interoperable con cualquier otra tecnología, los
> > > > > datos generados deben estar basados en tipos que estan definidos por un
> > > > > Esquema XML y no en el .NET framework.
> > > > >
> > > > > Para mala suerte mia, el DataSet es un tipo de parametro basado en el .NEt
> > > > > framework, por lo que el documento WSDL o XML generado, no es compatible con
> > > > > otra tecnología, debe ser por eso que cuando trataba de utilizar el generador
> > > > > de proxy de power builder 10, al darle el WSDL de un servicio Web que
> > > > > devolvia un Dataset, no reconocia el metodo, en cambio cuando le daba WSDL
> > > > > que devolvian un string, los reconocia a la perfección.
> > > > >
> > > > > alguien me puede entonces a ayudar a como generar un simple servicio web que
> > > > > devuelva de alguna forma lo que antes hacia a través de un DataSet, como algo
> > > > > que sea valido. Ya que la idea de los Servicios Web es que sean
> > > > > interoperables, pero al ocupar DataSet, estoy limitando considerablemente el
> > > > > consumo de estos sol o a clientes relacionados con .Net.
> > > > >
> > > > > El link donde explican lo que les planteo es:
> > > > >
> > > > > http://www.theserverside.net/articl...1_05-click
> > > > >
> > > > >
> > > > > e buscado información y me e encontrado con esto.
> > > > > http://msdn.microsoft.com/library/d...112003.asp
> > > > >
> > > > > esta explicado para C#, y yo ocupo VB.NET, ademas los codigos estan
> > > > > incompletos y no pude seguir la idea.
> > > > >
> > > > > Podrian explicarme como implementarlo porfavor, a todo esto, yo ocupo
> > > > > webmatrix para crear servicios web, por lo que muchas veces me hablaban de
> > > > > generar xsd, que en webmatrix, no los genera automaticamente como en visual
> > > > > studio creo.
> > > > >
> > > > > Gracias por su atención.
> > > > >
Respuesta Responder a este mensaje
#7 Ronald Ricardo Ramirez Moran
03/08/2005 - 20:51 | Informe spam
Marcos!, hola de nuevo

Veo que aun tienes algunas dudas, entonces veamos:

Los servicios Web XML, estan asociados a una Dirección IP, que sucede en el
caso de tener IP's Dinamicas ?



En si un Servicio web no esta ligado exclusivamente a una direccion de IP,
por el contrario si esta ligado a un identificador URI (Uniform Resource
Identifier) que se utilizara para acceder al servicio web, lo que se podria
hacer es que el servicio web apunte directamente a la direccion del servidor
y no acceder a el directamente con la IP. Por ejemplo:

http://210.58.60.25/myquery.asmx

En este caso este URI devuelve un WSDL que utiliza directamente la IP del
servidor en el esquema del WSDL devuelve en la designacion de puerto del
servicio:

<wsdl:port name="QuerySoap" binding="tns:QuerySoap">
<soap:address location="http://210.58.60.25/myquery.asmx" />
</wsdl:port>

Lo mas recomendable en ese caso es utilizar el nombre fisico del servidor,
aunque haria que demore un poco en la busqueda del equipo te ayudaria en
esto, utilizando una referencia parecida a esta:

http://myserver.mydomain.net/myquery.asmx


Ronald Ricardo Ramirez Moran
Microsoft Certified Professional C#

INETA Latam Volunteer
FoxEcuador Regional Coordinator

Blog:
http://dlanorok.blogspot.com
http://weblogs.foxite.com/DlanorOk


"Marcos" escribió:

Gracias nuevamente ronald, la verdad estoy un poco frustrado con esto, ya que
pense sería mas sencillo consumir un servicio web d euna pataforma no .NET,
con todo esto de la interoperabilidad, pero con tus consejos, veo una luz
jeje.

Oye te puedo hacer otra consulta?.

Los servicios Web XML, estan asociados a una Dirección IP, que sucede en el
caso de tener IP's Dinamicas ?
Mi proveedor de servicio Web, me tiene que avisar a mi como cliente que
actualice las referencias o las clases proxy ?
o hay otra forma de mantener la conectividad independiente que el proveedor
acmbie su IP?

MUCHAS GRACIAS RONAAAAAALDDD ¡¡¡¡¡¡¡


"Ronald Ricardo Ramirez Moran" escribió:

> Hola nuevamente,
>
> En tu pregunta dices que es el SOAP ToolKit, y para que sirve, o como
> utilizarlo en PowerBuilder.
>
> Bueno, el SOAP Toolkit es un conjunto de herramientas que te sirven para
> publicar y consumir servicios web utilizando aplicaciones no .NET, es decir,
> que tu puedes crear un Servicio Web y/o consumirlo a traves de una aplicacion
> que no este dentro de la familia .NET y que no sea controlado por el CLR del
> .NET Framework.
>
> ¿Como lo haces?
> El SOAP Toolkit viene con un paquete de componentes COM/Activex y
> herramientas que te permiten acceder asi como publicar un componente COM como
> Servicio Web.
>
> Por ejemplo, si deseas acceder a un servicio web desde VBA (Visual Basic for
> Applications), incluido en las aplicaciones Office (Word, Excel, Access,
> etc.) a traves de macros, puedes utilizar un codigo parecido a este para
> consumir un servicio web:
>
> Dim SoapClient3
> set Soapclient3 = CreateObject("MSSOAP.SoapClient30")
> Call SoapClient3.mssoapinit ("http://localhost/myservice.asmx?wsdl",
> "DocSample1", "Sample1SoapPort")
> Dim cXml As String
> cXml = SoapClient3.GetDataXml()
>
> Hay que tener en cuenta que "DocSample1.wsdl", puede ser un archivo proxy o
> una direccion URL. Y bueno ya hemos obtenido nuestro Xml string.
>
> El SOAP Toolkit lo puedes descargar desde el sitio de Microsoft, es
> absolutamente gratuito y hasta el momento tengo entendido que se encuentra
> disponible la version 3.0 del mismo.
>
> Ronald Ricardo Ramirez Moran
> Microsoft Certified Programmer C#
>
> INETA Latam Volunteer
> FoxEcuador Regional Coordinator
>
> Blog:
> http://dlanorok.blogspot.com
> http://weblogs.foxite.com/DlanorOk
>
>
> "Marcos" escribió:
>
> > Gracias ronald, la información que me proporcionas es de valiosisima
> > utilidad. Por otra parte, con el soap Toolkit, no entiendo como se usa, tu
> > dices que debo acceder al dll que genera el servicio web xml ?, lo que pasa
> > es que yo los creo en Webmatrix, el cual trae un generador de proxys, el cual
> > crea una dll, ahora estos servicios web son facilmente consumidos de una
> > aplicación desarrollada en web matrix, per ono entiendo como utilizo soap
> > toolkit para un cliente en powerbuilder.
> >
> > Gracias nuevamente por tu ayuda, me sirvio demasiado.
> >
> > "Ronald Ricardo Ramirez Moran" escribió:
> >
> > > Hola Marcos!
> > > > O.k busque sobre el Metodo GetXml, pero que devuelvo en el webmethod? un
> > > > dataset o un XmlDataDocument ?
> > > >
> > >
> > > Bueno dejame explicarte un poco sobre esto, el Metodo GetXml(), no se si te
> > > habras dado cuenta, devuelve la estructura Xml junto con esquema y todo lo
> > > que compone a un DataSet, en un String, que es el que utilizaras para
> > > distribuir. Un ejemplo de ello:
> > >
> > >
> > > [WebMethod()]
> > > public string GetDataXml()
> > > {
> > > ...
> > > // Implementacion
> > > ...
> > >
> > > // Devolvemos el string con el Xml del DataSet
> > > return ds.GetXml();
> > > }
> > >
> > > ¿Bien y ahora como lo cargas a tu aplicacion?
> > > Simple, lo que puedes hacer es primero leerlo asi Por ejemplo:
> > >
> > > // Primero accedemos al servicio, obtenemos los datos... etc.
> > > MyService.MyClass mc = new MyService.MyClass();
> > > string MyXml = mc.GetDataXml();
> > >
> > > // Leemos el Xml en forma de string y lo cargamos a un
> > > // StringReader ubicado en el namespace System.IO
> > > System.IO.StringReader reader = new System.IO.StringReader(MyXml);
> > >
> > > // Ahora vamos a cargarlo en el dataset del cliente:
> > > DataSet ds = new DataSet();
> > > ds.ReadXml(reader);
> > >
> > > MyGrid.DataSource = ds.Tables[0];
> > >
> > > Listo! ya se encuentra cargado nuestro Xml en el DataSet del Cliente.
> > >
> > >
> > > NOTA: Puedes utilizar el SOAP ToolKit para acceder a un Servicio Web desde
> > > una aplicacion no .net, y si en verdad devuelves un dataset este lo
> > > convertira en un documento XmlDom.
> > >
> > >
> > > Si quieres saber mas sobre el tratamiento de informacion con DataSets y Xml,
> > > encontraras muy buena informacion en:
> > >
> > > http://msdn.microsoft.com/library/e...ataset.asp
> > > http://msdn.microsoft.com/library/e...romxml.asp
> > >
> > >
> > > Espero te sirva mi ayuda,
> > >
> > > Saludos Cordiales,
> > >
> > > Ronald Ricardo Ramirez Moran
> > > Microsoft Certified Programmer C#
> > >
> > > INETA Latam Volunteer
> > > FoxEcuador Regional Coordinator
> > >
> > > Blog:
> > > http://dlanorok.blogspot.com
> > > http://weblogs.foxite.com/DlanorOk
> > >
> > >
> > > "Marcos" wrote:
> > >
> > > > O.k busque sobre el Metodo GetXml, pero que devuelvo en el webmethod? un
> > > > dataset o un XmlDataDocument ?
> > > >
> > > > La idea es que el wsdl, reconozca una estructura validad y no un type <Any>.
> > > >
> > > > Tienes algun ejemplo de un web service que utilize GetXMl para devolver xml
> > > > y algun cliente que consuma ese xml, por ejemplo para llenar un dataset y con
> > > > eso cargar un datagrid.
> > > >
> > > > Gracias por todo.
> > > >
> > > > "Ronald Ricardo Ramirez Moran" escribió:
> > > >
> > > > > Hola,
> > > > >
> > > > > Si es muy cierto lo que tu nos comentas en tu post, pero tambien es cierto
> > > > > que si utilizas las herramientas adecuadas para acceder a un objeto .NET lo
> > > > > puedes hacer. De todas maneras, hay que dejar en claro que si, es cierto si
> > > > > tratas el dataset directamente no podras acceder a los datos facilmente desde
> > > > > cualquier aplicacion.
> > > > >
> > > > > Lo otro es que el DataSet, puede ser transformado en Xml facilmente con el
> > > > > Metodo GetXml().
> > > > >
> > > > > Espero que te sirva mi ayuda.
> > > > >
> > > > > Ronald Ricardo Ramirez Moran
> > > > > Microsoft Certified Programmer C#
> > > > >
> > > > > INETA Latam Volunteer
> > > > > FoxEcuador Regional Coordinator
> > > > >
> > > > > Blog:
> > > > > http://dlanorok.blogspot.com
> > > > > http://weblogs.foxite.com/DlanorOk
> > > > >
> > > > >
> > > > > "Marcos" escribió:
> > > > >
> > > > > > Hola Muchachos, tengo una consulta, me acabo de enterar que en un servicio
> > > > > > Web que necesito que se interoperable con cualquier otra tecnología, los
> > > > > > datos generados deben estar basados en tipos que estan definidos por un
> > > > > > Esquema XML y no en el .NET framework.
> > > > > >
> > > > > > Para mala suerte mia, el DataSet es un tipo de parametro basado en el .NEt
> > > > > > framework, por lo que el documento WSDL o XML generado, no es compatible con
> > > > > > otra tecnología, debe ser por eso que cuando trataba de utilizar el generador
> > > > > > de proxy de power builder 10, al darle el WSDL de un servicio Web que
> > > > > > devolvia un Dataset, no reconocia el metodo, en cambio cuando le daba WSDL
> > > > > > que devolvian un string, los reconocia a la perfección.
> > > > > >
> > > > > > alguien me puede entonces a ayudar a como generar un simple servicio web que
> > > > > > devuelva de alguna forma lo que antes hacia a través de un DataSet, como algo
> > > > > > que sea valido. Ya que la idea de los Servicios Web es que sean
> > > > > > interoperables, pero al ocupar DataSet, estoy limitando considerablemente el
> > > > > > consumo de estos sol o a clientes relacionados con .Net.
> > > > > >
> > > > > > El link donde explican lo que les planteo es:
> > > > > >
> > > > > > http://www.theserverside.net/articl...1_05-click
> > > > > >
> > > > > >
> > > > > > e buscado información y me e encontrado con esto.
> > > > > > http://msdn.microsoft.com/library/d...112003.asp
> > > > > >
> > > > > > esta explicado para C#, y yo ocupo VB.NET, ademas los codigos estan
> > > > > > incompletos y no pude seguir la idea.
> > > > > >
> > > > > > Podrian explicarme como implementarlo porfavor, a todo esto, yo ocupo
> > > > > > webmatrix para crear servicios web, por lo que muchas veces me hablaban de
> > > > > > generar xsd, que en webmatrix, no los genera automaticamente como en visual
> > > > > > studio creo.
> > > > > >
> > > > > > Gracias por su atención.
> > > > > >
Respuesta Responder a este mensaje
#8 Marcos
03/08/2005 - 23:15 | Informe spam
Gracias ronald nuevamente, al fín me resulto lo del servicio web consumido
por powerbuilder.

Gracias tambien por toda la ayuda y la rapidez en contestar, tus respuestas
han ido directamente al grano y han solucionado los dolores de cabeza que
tenia, por el momento no tengo mas preguntas.

Muchisimas gracias Sensei.

Hasta pronto.

"Ronald Ricardo Ramirez Moran" escribió:

Marcos!, hola de nuevo

Veo que aun tienes algunas dudas, entonces veamos:

> Los servicios Web XML, estan asociados a una Dirección IP, que sucede en el
> caso de tener IP's Dinamicas ?

En si un Servicio web no esta ligado exclusivamente a una direccion de IP,
por el contrario si esta ligado a un identificador URI (Uniform Resource
Identifier) que se utilizara para acceder al servicio web, lo que se podria
hacer es que el servicio web apunte directamente a la direccion del servidor
y no acceder a el directamente con la IP. Por ejemplo:

http://210.58.60.25/myquery.asmx

En este caso este URI devuelve un WSDL que utiliza directamente la IP del
servidor en el esquema del WSDL devuelve en la designacion de puerto del
servicio:

<wsdl:port name="QuerySoap" binding="tns:QuerySoap">
<soap:address location="http://210.58.60.25/myquery.asmx" />
</wsdl:port>

Lo mas recomendable en ese caso es utilizar el nombre fisico del servidor,
aunque haria que demore un poco en la busqueda del equipo te ayudaria en
esto, utilizando una referencia parecida a esta:

http://myserver.mydomain.net/myquery.asmx


Ronald Ricardo Ramirez Moran
Microsoft Certified Professional C#

INETA Latam Volunteer
FoxEcuador Regional Coordinator

Blog:
http://dlanorok.blogspot.com
http://weblogs.foxite.com/DlanorOk


"Marcos" escribió:

> Gracias nuevamente ronald, la verdad estoy un poco frustrado con esto, ya que
> pense sería mas sencillo consumir un servicio web d euna pataforma no .NET,
> con todo esto de la interoperabilidad, pero con tus consejos, veo una luz
> jeje.
>
> Oye te puedo hacer otra consulta?.
>
> Los servicios Web XML, estan asociados a una Dirección IP, que sucede en el
> caso de tener IP's Dinamicas ?
> Mi proveedor de servicio Web, me tiene que avisar a mi como cliente que
> actualice las referencias o las clases proxy ?
> o hay otra forma de mantener la conectividad independiente que el proveedor
> acmbie su IP?
>
> MUCHAS GRACIAS RONAAAAAALDDD ¡¡¡¡¡¡¡
>
>
> "Ronald Ricardo Ramirez Moran" escribió:
>
> > Hola nuevamente,
> >
> > En tu pregunta dices que es el SOAP ToolKit, y para que sirve, o como
> > utilizarlo en PowerBuilder.
> >
> > Bueno, el SOAP Toolkit es un conjunto de herramientas que te sirven para
> > publicar y consumir servicios web utilizando aplicaciones no .NET, es decir,
> > que tu puedes crear un Servicio Web y/o consumirlo a traves de una aplicacion
> > que no este dentro de la familia .NET y que no sea controlado por el CLR del
> > .NET Framework.
> >
> > ¿Como lo haces?
> > El SOAP Toolkit viene con un paquete de componentes COM/Activex y
> > herramientas que te permiten acceder asi como publicar un componente COM como
> > Servicio Web.
> >
> > Por ejemplo, si deseas acceder a un servicio web desde VBA (Visual Basic for
> > Applications), incluido en las aplicaciones Office (Word, Excel, Access,
> > etc.) a traves de macros, puedes utilizar un codigo parecido a este para
> > consumir un servicio web:
> >
> > Dim SoapClient3
> > set Soapclient3 = CreateObject("MSSOAP.SoapClient30")
> > Call SoapClient3.mssoapinit ("http://localhost/myservice.asmx?wsdl",
> > "DocSample1", "Sample1SoapPort")
> > Dim cXml As String
> > cXml = SoapClient3.GetDataXml()
> >
> > Hay que tener en cuenta que "DocSample1.wsdl", puede ser un archivo proxy o
> > una direccion URL. Y bueno ya hemos obtenido nuestro Xml string.
> >
> > El SOAP Toolkit lo puedes descargar desde el sitio de Microsoft, es
> > absolutamente gratuito y hasta el momento tengo entendido que se encuentra
> > disponible la version 3.0 del mismo.
> >
> > Ronald Ricardo Ramirez Moran
> > Microsoft Certified Programmer C#
> >
> > INETA Latam Volunteer
> > FoxEcuador Regional Coordinator
> >
> > Blog:
> > http://dlanorok.blogspot.com
> > http://weblogs.foxite.com/DlanorOk
> >
> >
> > "Marcos" escribió:
> >
> > > Gracias ronald, la información que me proporcionas es de valiosisima
> > > utilidad. Por otra parte, con el soap Toolkit, no entiendo como se usa, tu
> > > dices que debo acceder al dll que genera el servicio web xml ?, lo que pasa
> > > es que yo los creo en Webmatrix, el cual trae un generador de proxys, el cual
> > > crea una dll, ahora estos servicios web son facilmente consumidos de una
> > > aplicación desarrollada en web matrix, per ono entiendo como utilizo soap
> > > toolkit para un cliente en powerbuilder.
> > >
> > > Gracias nuevamente por tu ayuda, me sirvio demasiado.
> > >
> > > "Ronald Ricardo Ramirez Moran" escribió:
> > >
> > > > Hola Marcos!
> > > > > O.k busque sobre el Metodo GetXml, pero que devuelvo en el webmethod? un
> > > > > dataset o un XmlDataDocument ?
> > > > >
> > > >
> > > > Bueno dejame explicarte un poco sobre esto, el Metodo GetXml(), no se si te
> > > > habras dado cuenta, devuelve la estructura Xml junto con esquema y todo lo
> > > > que compone a un DataSet, en un String, que es el que utilizaras para
> > > > distribuir. Un ejemplo de ello:
> > > >
> > > >
> > > > [WebMethod()]
> > > > public string GetDataXml()
> > > > {
> > > > ...
> > > > // Implementacion
> > > > ...
> > > >
> > > > // Devolvemos el string con el Xml del DataSet
> > > > return ds.GetXml();
> > > > }
> > > >
> > > > ¿Bien y ahora como lo cargas a tu aplicacion?
> > > > Simple, lo que puedes hacer es primero leerlo asi Por ejemplo:
> > > >
> > > > // Primero accedemos al servicio, obtenemos los datos... etc.
> > > > MyService.MyClass mc = new MyService.MyClass();
> > > > string MyXml = mc.GetDataXml();
> > > >
> > > > // Leemos el Xml en forma de string y lo cargamos a un
> > > > // StringReader ubicado en el namespace System.IO
> > > > System.IO.StringReader reader = new System.IO.StringReader(MyXml);
> > > >
> > > > // Ahora vamos a cargarlo en el dataset del cliente:
> > > > DataSet ds = new DataSet();
> > > > ds.ReadXml(reader);
> > > >
> > > > MyGrid.DataSource = ds.Tables[0];
> > > >
> > > > Listo! ya se encuentra cargado nuestro Xml en el DataSet del Cliente.
> > > >
> > > >
> > > > NOTA: Puedes utilizar el SOAP ToolKit para acceder a un Servicio Web desde
> > > > una aplicacion no .net, y si en verdad devuelves un dataset este lo
> > > > convertira en un documento XmlDom.
> > > >
> > > >
> > > > Si quieres saber mas sobre el tratamiento de informacion con DataSets y Xml,
> > > > encontraras muy buena informacion en:
> > > >
> > > > http://msdn.microsoft.com/library/e...ataset.asp
> > > > http://msdn.microsoft.com/library/e...romxml.asp
> > > >
> > > >
> > > > Espero te sirva mi ayuda,
> > > >
> > > > Saludos Cordiales,
> > > >
> > > > Ronald Ricardo Ramirez Moran
> > > > Microsoft Certified Programmer C#
> > > >
> > > > INETA Latam Volunteer
> > > > FoxEcuador Regional Coordinator
> > > >
> > > > Blog:
> > > > http://dlanorok.blogspot.com
> > > > http://weblogs.foxite.com/DlanorOk
> > > >
> > > >
> > > > "Marcos" wrote:
> > > >
> > > > > O.k busque sobre el Metodo GetXml, pero que devuelvo en el webmethod? un
> > > > > dataset o un XmlDataDocument ?
> > > > >
> > > > > La idea es que el wsdl, reconozca una estructura validad y no un type <Any>.
> > > > >
> > > > > Tienes algun ejemplo de un web service que utilize GetXMl para devolver xml
> > > > > y algun cliente que consuma ese xml, por ejemplo para llenar un dataset y con
> > > > > eso cargar un datagrid.
> > > > >
> > > > > Gracias por todo.
> > > > >
> > > > > "Ronald Ricardo Ramirez Moran" escribió:
> > > > >
> > > > > > Hola,
> > > > > >
> > > > > > Si es muy cierto lo que tu nos comentas en tu post, pero tambien es cierto
> > > > > > que si utilizas las herramientas adecuadas para acceder a un objeto .NET lo
> > > > > > puedes hacer. De todas maneras, hay que dejar en claro que si, es cierto si
> > > > > > tratas el dataset directamente no podras acceder a los datos facilmente desde
> > > > > > cualquier aplicacion.
> > > > > >
> > > > > > Lo otro es que el DataSet, puede ser transformado en Xml facilmente con el
> > > > > > Metodo GetXml().
> > > > > >
> > > > > > Espero que te sirva mi ayuda.
> > > > > >
> > > > > > Ronald Ricardo Ramirez Moran
> > > > > > Microsoft Certified Programmer C#
> > > > > >
> > > > > > INETA Latam Volunteer
> > > > > > FoxEcuador Regional Coordinator
> > > > > >
> > > > > > Blog:
> > > > > > http://dlanorok.blogspot.com
> > > > > > http://weblogs.foxite.com/DlanorOk
> > > > > >
> > > > > >
> > > > > > "Marcos" escribió:
> > > > > >
> > > > > > > Hola Muchachos, tengo una consulta, me acabo de enterar que en un servicio
> > > > > > > Web que necesito que se interoperable con cualquier otra tecnología, los
> > > > > > > datos generados deben estar basados en tipos que estan definidos por un
> > > > > > > Esquema XML y no en el .NET framework.
> > > > > > >
> > > > > > > Para mala suerte mia, el DataSet es un tipo de parametro basado en el .NEt
> > > > > > > framework, por lo que el documento WSDL o XML generado, no es compatible con
> > > > > > > otra tecnología, debe ser por eso que cuando trataba de utilizar el generador
> > > > > > > de proxy de power builder 10, al darle el WSDL de un servicio Web que
> > > > > > > devolvia un Dataset, no reconocia el metodo, en cambio cuando le daba WSDL
> > > > > > > que devolvian un string, los reconocia a la perfección.
> > > > > > >
> > > > > > > alguien me puede entonces a ayudar a como generar un simple servicio web que
> > > > > > > devuelva de alguna forma lo que antes hacia a través de un DataSet, como algo
> > > > > > > que sea valido. Ya que la idea de los Servicios Web es que sean
> > > > > > > interoperables, pero al ocupar DataSet, estoy limitando considerablemente el
> > > > > > > consumo de estos sol o a clientes relacionados con .Net.
> > > > > > >
> > > > > > > El link donde explican lo que les planteo es:
> > > > > > >
> > > > > > > http://www.theserverside.net/articl...1_05-click
> > > > > > >
> > > > > > >
> > > > > > > e buscado información y me e encontrado con esto.
> > > > > > > http://msdn.microsoft.com/library/d...112003.asp
> > > > > > >
> > > > > > > esta explicado para C#, y yo ocupo VB.NET, ademas los codigos estan
> > > > > > > incompletos y no pude seguir la idea.
> > > > > > >
> > > > > > > Podrian explicarme como implementarlo porfavor, a todo esto, yo ocupo
> > > > > > > webmatrix para crear servicios web, por lo que muchas veces me hablaban de
> > > > > > > generar xsd, que en webmatrix, no los genera automaticamente como en visual
> > > > > > > studio creo.
> > > > > > >
> > > > > > > Gracias por su atención.
> > > > > > >
Respuesta Responder a este mensaje
#9 Ronald Ricardo Ramirez Moran
04/08/2005 - 01:38 | Informe spam
Que bueno que te haya ayudado Marcos,

Siempre es un gusto ayudar en lo que mas se pueda,

Saludos Cordiales
Ronald Ricardo Ramirez Moran
Microsoft Certified Professional C#

INETA Latam Volunteer
FoxEcuador Regional Coordinator

Blog:
http://dlanorok.blogspot.com
http://weblogs.foxite.com/DlanorOk


"Marcos" escribió:

Gracias ronald nuevamente, al fín me resulto lo del servicio web consumido
por powerbuilder.

Gracias tambien por toda la ayuda y la rapidez en contestar, tus respuestas
han ido directamente al grano y han solucionado los dolores de cabeza que
tenia, por el momento no tengo mas preguntas.

Muchisimas gracias Sensei.

Hasta pronto.

"Ronald Ricardo Ramirez Moran" escribió:

> Marcos!, hola de nuevo
>
> Veo que aun tienes algunas dudas, entonces veamos:
>
> > Los servicios Web XML, estan asociados a una Dirección IP, que sucede en el
> > caso de tener IP's Dinamicas ?
>
> En si un Servicio web no esta ligado exclusivamente a una direccion de IP,
> por el contrario si esta ligado a un identificador URI (Uniform Resource
> Identifier) que se utilizara para acceder al servicio web, lo que se podria
> hacer es que el servicio web apunte directamente a la direccion del servidor
> y no acceder a el directamente con la IP. Por ejemplo:
>
> http://210.58.60.25/myquery.asmx
>
> En este caso este URI devuelve un WSDL que utiliza directamente la IP del
> servidor en el esquema del WSDL devuelve en la designacion de puerto del
> servicio:
>
> <wsdl:port name="QuerySoap" binding="tns:QuerySoap">
> <soap:address location="http://210.58.60.25/myquery.asmx" />
> </wsdl:port>
>
> Lo mas recomendable en ese caso es utilizar el nombre fisico del servidor,
> aunque haria que demore un poco en la busqueda del equipo te ayudaria en
> esto, utilizando una referencia parecida a esta:
>
> http://myserver.mydomain.net/myquery.asmx
>
>
> Ronald Ricardo Ramirez Moran
> Microsoft Certified Professional C#
>
> INETA Latam Volunteer
> FoxEcuador Regional Coordinator
>
> Blog:
> http://dlanorok.blogspot.com
> http://weblogs.foxite.com/DlanorOk
>
>
> "Marcos" escribió:
>
> > Gracias nuevamente ronald, la verdad estoy un poco frustrado con esto, ya que
> > pense sería mas sencillo consumir un servicio web d euna pataforma no .NET,
> > con todo esto de la interoperabilidad, pero con tus consejos, veo una luz
> > jeje.
> >
> > Oye te puedo hacer otra consulta?.
> >
> > Los servicios Web XML, estan asociados a una Dirección IP, que sucede en el
> > caso de tener IP's Dinamicas ?
> > Mi proveedor de servicio Web, me tiene que avisar a mi como cliente que
> > actualice las referencias o las clases proxy ?
> > o hay otra forma de mantener la conectividad independiente que el proveedor
> > acmbie su IP?
> >
> > MUCHAS GRACIAS RONAAAAAALDDD ¡¡¡¡¡¡¡
> >
> >
> > "Ronald Ricardo Ramirez Moran" escribió:
> >
> > > Hola nuevamente,
> > >
> > > En tu pregunta dices que es el SOAP ToolKit, y para que sirve, o como
> > > utilizarlo en PowerBuilder.
> > >
> > > Bueno, el SOAP Toolkit es un conjunto de herramientas que te sirven para
> > > publicar y consumir servicios web utilizando aplicaciones no .NET, es decir,
> > > que tu puedes crear un Servicio Web y/o consumirlo a traves de una aplicacion
> > > que no este dentro de la familia .NET y que no sea controlado por el CLR del
> > > .NET Framework.
> > >
> > > ¿Como lo haces?
> > > El SOAP Toolkit viene con un paquete de componentes COM/Activex y
> > > herramientas que te permiten acceder asi como publicar un componente COM como
> > > Servicio Web.
> > >
> > > Por ejemplo, si deseas acceder a un servicio web desde VBA (Visual Basic for
> > > Applications), incluido en las aplicaciones Office (Word, Excel, Access,
> > > etc.) a traves de macros, puedes utilizar un codigo parecido a este para
> > > consumir un servicio web:
> > >
> > > Dim SoapClient3
> > > set Soapclient3 = CreateObject("MSSOAP.SoapClient30")
> > > Call SoapClient3.mssoapinit ("http://localhost/myservice.asmx?wsdl",
> > > "DocSample1", "Sample1SoapPort")
> > > Dim cXml As String
> > > cXml = SoapClient3.GetDataXml()
> > >
> > > Hay que tener en cuenta que "DocSample1.wsdl", puede ser un archivo proxy o
> > > una direccion URL. Y bueno ya hemos obtenido nuestro Xml string.
> > >
> > > El SOAP Toolkit lo puedes descargar desde el sitio de Microsoft, es
> > > absolutamente gratuito y hasta el momento tengo entendido que se encuentra
> > > disponible la version 3.0 del mismo.
> > >
> > > Ronald Ricardo Ramirez Moran
> > > Microsoft Certified Programmer C#
> > >
> > > INETA Latam Volunteer
> > > FoxEcuador Regional Coordinator
> > >
> > > Blog:
> > > http://dlanorok.blogspot.com
> > > http://weblogs.foxite.com/DlanorOk
> > >
> > >
> > > "Marcos" escribió:
> > >
> > > > Gracias ronald, la información que me proporcionas es de valiosisima
> > > > utilidad. Por otra parte, con el soap Toolkit, no entiendo como se usa, tu
> > > > dices que debo acceder al dll que genera el servicio web xml ?, lo que pasa
> > > > es que yo los creo en Webmatrix, el cual trae un generador de proxys, el cual
> > > > crea una dll, ahora estos servicios web son facilmente consumidos de una
> > > > aplicación desarrollada en web matrix, per ono entiendo como utilizo soap
> > > > toolkit para un cliente en powerbuilder.
> > > >
> > > > Gracias nuevamente por tu ayuda, me sirvio demasiado.
> > > >
> > > > "Ronald Ricardo Ramirez Moran" escribió:
> > > >
> > > > > Hola Marcos!
> > > > > > O.k busque sobre el Metodo GetXml, pero que devuelvo en el webmethod? un
> > > > > > dataset o un XmlDataDocument ?
> > > > > >
> > > > >
> > > > > Bueno dejame explicarte un poco sobre esto, el Metodo GetXml(), no se si te
> > > > > habras dado cuenta, devuelve la estructura Xml junto con esquema y todo lo
> > > > > que compone a un DataSet, en un String, que es el que utilizaras para
> > > > > distribuir. Un ejemplo de ello:
> > > > >
> > > > >
> > > > > [WebMethod()]
> > > > > public string GetDataXml()
> > > > > {
> > > > > ...
> > > > > // Implementacion
> > > > > ...
> > > > >
> > > > > // Devolvemos el string con el Xml del DataSet
> > > > > return ds.GetXml();
> > > > > }
> > > > >
> > > > > ¿Bien y ahora como lo cargas a tu aplicacion?
> > > > > Simple, lo que puedes hacer es primero leerlo asi Por ejemplo:
> > > > >
> > > > > // Primero accedemos al servicio, obtenemos los datos... etc.
> > > > > MyService.MyClass mc = new MyService.MyClass();
> > > > > string MyXml = mc.GetDataXml();
> > > > >
> > > > > // Leemos el Xml en forma de string y lo cargamos a un
> > > > > // StringReader ubicado en el namespace System.IO
> > > > > System.IO.StringReader reader = new System.IO.StringReader(MyXml);
> > > > >
> > > > > // Ahora vamos a cargarlo en el dataset del cliente:
> > > > > DataSet ds = new DataSet();
> > > > > ds.ReadXml(reader);
> > > > >
> > > > > MyGrid.DataSource = ds.Tables[0];
> > > > >
> > > > > Listo! ya se encuentra cargado nuestro Xml en el DataSet del Cliente.
> > > > >
> > > > >
> > > > > NOTA: Puedes utilizar el SOAP ToolKit para acceder a un Servicio Web desde
> > > > > una aplicacion no .net, y si en verdad devuelves un dataset este lo
> > > > > convertira en un documento XmlDom.
> > > > >
> > > > >
> > > > > Si quieres saber mas sobre el tratamiento de informacion con DataSets y Xml,
> > > > > encontraras muy buena informacion en:
> > > > >
> > > > > http://msdn.microsoft.com/library/e...ataset.asp
> > > > > http://msdn.microsoft.com/library/e...romxml.asp
> > > > >
> > > > >
> > > > > Espero te sirva mi ayuda,
> > > > >
> > > > > Saludos Cordiales,
> > > > >
> > > > > Ronald Ricardo Ramirez Moran
> > > > > Microsoft Certified Programmer C#
> > > > >
> > > > > INETA Latam Volunteer
> > > > > FoxEcuador Regional Coordinator
> > > > >
> > > > > Blog:
> > > > > http://dlanorok.blogspot.com
> > > > > http://weblogs.foxite.com/DlanorOk
> > > > >
> > > > >
> > > > > "Marcos" wrote:
> > > > >
> > > > > > O.k busque sobre el Metodo GetXml, pero que devuelvo en el webmethod? un
> > > > > > dataset o un XmlDataDocument ?
> > > > > >
> > > > > > La idea es que el wsdl, reconozca una estructura validad y no un type <Any>.
> > > > > >
> > > > > > Tienes algun ejemplo de un web service que utilize GetXMl para devolver xml
> > > > > > y algun cliente que consuma ese xml, por ejemplo para llenar un dataset y con
> > > > > > eso cargar un datagrid.
> > > > > >
> > > > > > Gracias por todo.
> > > > > >
> > > > > > "Ronald Ricardo Ramirez Moran" escribió:
> > > > > >
> > > > > > > Hola,
> > > > > > >
> > > > > > > Si es muy cierto lo que tu nos comentas en tu post, pero tambien es cierto
> > > > > > > que si utilizas las herramientas adecuadas para acceder a un objeto .NET lo
> > > > > > > puedes hacer. De todas maneras, hay que dejar en claro que si, es cierto si
> > > > > > > tratas el dataset directamente no podras acceder a los datos facilmente desde
> > > > > > > cualquier aplicacion.
> > > > > > >
> > > > > > > Lo otro es que el DataSet, puede ser transformado en Xml facilmente con el
> > > > > > > Metodo GetXml().
> > > > > > >
> > > > > > > Espero que te sirva mi ayuda.
> > > > > > >
> > > > > > > Ronald Ricardo Ramirez Moran
> > > > > > > Microsoft Certified Programmer C#
> > > > > > >
> > > > > > > INETA Latam Volunteer
> > > > > > > FoxEcuador Regional Coordinator
> > > > > > >
> > > > > > > Blog:
> > > > > > > http://dlanorok.blogspot.com
> > > > > > > http://weblogs.foxite.com/DlanorOk
> > > > > > >
> > > > > > >
> > > > > > > "Marcos" escribió:
> > > > > > >
> > > > > > > > Hola Muchachos, tengo una consulta, me acabo de enterar que en un servicio
> > > > > > > > Web que necesito que se interoperable con cualquier otra tecnología, los
> > > > > > > > datos generados deben estar basados en tipos que estan definidos por un
> > > > > > > > Esquema XML y no en el .NET framework.
> > > > > > > >
> > > > > > > > Para mala suerte mia, el DataSet es un tipo de parametro basado en el .NEt
> > > > > > > > framework, por lo que el documento WSDL o XML generado, no es compatible con
> > > > > > > > otra tecnología, debe ser por eso que cuando trataba de utilizar el generador
> > > > > > > > de proxy de power builder 10, al darle el WSDL de un servicio Web que
> > > > > > > > devolvia un Dataset, no reconocia el metodo, en cambio cuando le daba WSDL
> > > > > > > > que devolvian un string, los reconocia a la perfección.
> > > > > > > >
> > > > > > > > alguien me puede entonces a ayudar a como generar un simple servicio web que
> > > > > > > > devuelva de alguna forma lo que antes hacia a través de un DataSet, como algo
> > > > > > > > que sea valido. Ya que la idea de los Servicios Web es que sean
> > > > > > > > interoperables, pero al ocupar DataSet, estoy limitando considerablemente el
> > > > > > > > consumo de estos sol o a clientes relacionados con .Net.
> > > > > > > >
> > > > > > > > El link donde explican lo que les planteo es:
> > > > > > > >
> > > > > > > > http://www.theserverside.net/articl...1_05-click
> > > > > > > >
> > > > > > > >
> > > > > > > > e buscado información y me e encontrado con esto.
> > > > > > > > http://msdn.microsoft.com/library/d...112003.asp
> > > > > > > >
> > > > > > > > esta explicado para C#, y yo ocupo VB.NET, ademas los codigos estan
> > > > > > > > incompletos y no pude seguir la idea.
> > > > > > > >
> > > > > > > > Podrian explicarme como implementarlo porfavor, a todo esto, yo ocupo
> > > > > > > > webmatrix para crear servicios web, por lo que muchas veces me hablaban de
> > > > > > > > generar xsd, que en webmatrix, no los genera automaticamente como en visual
> > > > > > > > studio creo.
> > > > > > > >
> > > > > > > > Gracias por su atención.
> > > > > > > >
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida