Connecting Tech Pros Worldwide Forums | Help | Site Map

calling a dot net web services from unix

Stu
Guest
 
Posts: n/a
#1: Nov 23 '05
Hi,

I have a web service which returns a record set and works well integrated
with an asp dot net page.
However if I decided to develop a unix app
will i be able to read the dataset as it is
or do i need to write the xml as text from the web service and supply a DTD.
Also any other pitfalls

TIA

Stu

erymuzuan
Guest
 
Posts: n/a
#2: Nov 23 '05

re: calling a dot net web services from unix


Dataset will always pose major problems with interoperablity because
difgramm is unique to .Net framework only. If you cannot do anything to
change the web services, then you'll have to process the dataset as
XmlDocument on other platforms. and this could be tricky if your dataset
contains lot of diffgram information.

The best way is avoid dataset, try to think in schema when designing a
web services. all you have to do is create a schema first then use
xsd.exe to generate .net code that can be used in web services.

regards
erymuzuan

Stu wrote:[color=blue]
> Hi,
>
> I have a web service which returns a record set and works well integrated
> with an asp dot net page.
> However if I decided to develop a unix app
> will i be able to read the dataset as it is
> or do i need to write the xml as text from the web service and supply a DTD.
> Also any other pitfalls
>
> TIA
>
> Stu[/color]
Chris Rolon
Guest
 
Posts: n/a
#3: Nov 23 '05

re: calling a dot net web services from unix


I agree that a DataSet is problematic for interoperability. Instead return an
XmlElement. Just use the DataSet WriteXml method to a write the DataSet out
to a stream and get the root element.

Of course, if the DataSet has changed, be sure to call AcceptChanges first.

Chris Rolon

"erymuzuan" wrote:
[color=blue]
> Dataset will always pose major problems with interoperablity because
> difgramm is unique to .Net framework only. If you cannot do anything to
> change the web services, then you'll have to process the dataset as
> XmlDocument on other platforms. and this could be tricky if your dataset
> contains lot of diffgram information.
>
> The best way is avoid dataset, try to think in schema when designing a
> web services. all you have to do is create a schema first then use
> xsd.exe to generate .net code that can be used in web services.
>
> regards
> erymuzuan
>
> Stu wrote:[color=green]
> > Hi,
> >
> > I have a web service which returns a record set and works well integrated
> > with an asp dot net page.
> > However if I decided to develop a unix app
> > will i be able to read the dataset as it is
> > or do i need to write the xml as text from the web service and supply a DTD.
> > Also any other pitfalls
> >
> > TIA
> >
> > Stu[/color]
>[/color]
Christoph Schittko [MVP]
Guest
 
Posts: n/a
#4: Nov 23 '05

re: calling a dot net web services from unix


Erymuzuan's approach allows much better control over the XML
serialization format of the data. Since the original post was about
interoperating with a different platform, that level of control may be
crucial to getting the web services to talk to each other. A DataSet
expressed in XML is still a DataSet ;)

You also already hint on another issue. The DataSet offers a very
convenient programming model that doesn't jive well with
interoperability. You will have to write to code anyway to make that
programming model work for externally exposed Web services. Programming
against serialized objects will also help gearing the code inside the
service more towards interoperability.

Just my toughts.

HTH,
Christoph Schittko
MVP XML
http://weblogs.asp.net/cschittko


[color=blue]
> -----Original Message-----
> From: Chris Rolon [mailto:ChrisRolon@discussions.microsoft.com]
> Posted At: Sunday, January 23, 2005 9:51 AM
> Posted To: microsoft.public.dotnet.framework.webservices
> Conversation: calling a dot net web services from unix
> Subject: Re: calling a dot net web services from unix
>
> I agree that a DataSet is problematic for interoperability. Instead[/color]
return[color=blue]
> an
> XmlElement. Just use the DataSet WriteXml method to a write the[/color]
DataSet[color=blue]
> out
> to a stream and get the root element.
>
> Of course, if the DataSet has changed, be sure to call AcceptChanges
> first.
>
> Chris Rolon
>
> "erymuzuan" wrote:
>[color=green]
> > Dataset will always pose major problems with interoperablity because
> > difgramm is unique to .Net framework only. If you cannot do anything[/color][/color]
to[color=blue][color=green]
> > change the web services, then you'll have to process the dataset as
> > XmlDocument on other platforms. and this could be tricky if your[/color][/color]
dataset[color=blue][color=green]
> > contains lot of diffgram information.
> >
> > The best way is avoid dataset, try to think in schema when designing[/color][/color]
a[color=blue][color=green]
> > web services. all you have to do is create a schema first then use
> > xsd.exe to generate .net code that can be used in web services.
> >
> > regards
> > erymuzuan
> >
> > Stu wrote:[color=darkred]
> > > Hi,
> > >
> > > I have a web service which returns a record set and works well[/color][/color]
> integrated[color=green][color=darkred]
> > > with an asp dot net page.
> > > However if I decided to develop a unix app
> > > will i be able to read the dataset as it is
> > > or do i need to write the xml as text from the web service and[/color][/color][/color]
supply[color=blue]
> a DTD.[color=green][color=darkred]
> > > Also any other pitfalls
> > >
> > > TIA
> > >
> > > Stu[/color]
> >[/color][/color]

erymuzuan
Guest
 
Posts: n/a
#5: Nov 23 '05

re: calling a dot net web services from unix


This sort of problem posted again and again in this newsgroup simply
because some of us thinks that Web Services is just a method with
WebMethod attribute, rather that a set of messages in a document based
mesaging platform. even a simple web method like this can cause
interoperablity problem

[WebMethod]
public Employee[] GetEmployee()
{
Employee[] emps = new Employee[10];
return emps;
}

I think Microsoft is part to blame for making developers thinking that's
how to write web services. everytime you create a new asmx in VS.Net in
give the HelloWord

// WEB SERVICE EXAMPLE
// The HelloWorld() example service returns the string Hello World
// To build, uncomment the following lines then save and build the project
// To test this web service, press F5

// [WebMethod]
// public string HelloWorld()
// {
// return "Hello World";
// }

Using tools like XmlSpy (my favorite) or CapeClear WSDL editor certainly
helps to make a better interoperable web services. Christian Weyer's
contract-first tool for web services is a great tool to achieve this as
well, thou' i have it installed never really touch it. One of this
should be the first tool every web service developer should have in
their toolbox after the HelloWorld introduction

regards
erymuzuan


Christoph Schittko [MVP] wrote:[color=blue]
> Erymuzuan's approach allows much better control over the XML
> serialization format of the data. Since the original post was about
> interoperating with a different platform, that level of control may be
> crucial to getting the web services to talk to each other. A DataSet
> expressed in XML is still a DataSet ;)
>
> You also already hint on another issue. The DataSet offers a very
> convenient programming model that doesn't jive well with
> interoperability. You will have to write to code anyway to make that
> programming model work for externally exposed Web services. Programming
> against serialized objects will also help gearing the code inside the
> service more towards interoperability.
>
> Just my toughts.
>
> HTH,
> Christoph Schittko
> MVP XML
> http://weblogs.asp.net/cschittko
>
>
>
>[color=green]
>>-----Original Message-----
>>From: Chris Rolon [mailto:ChrisRolon@discussions.microsoft.com]
>>Posted At: Sunday, January 23, 2005 9:51 AM
>>Posted To: microsoft.public.dotnet.framework.webservices
>>Conversation: calling a dot net web services from unix
>>Subject: Re: calling a dot net web services from unix
>>
>>I agree that a DataSet is problematic for interoperability. Instead[/color]
>
> return
>[color=green]
>>an
>>XmlElement. Just use the DataSet WriteXml method to a write the[/color]
>
> DataSet
>[color=green]
>>out
>>to a stream and get the root element.
>>
>>Of course, if the DataSet has changed, be sure to call AcceptChanges
>>first.
>>
>>Chris Rolon
>>
>>"erymuzuan" wrote:
>>
>>[color=darkred]
>>>Dataset will always pose major problems with interoperablity because
>>>difgramm is unique to .Net framework only. If you cannot do anything[/color][/color]
>
> to
>[color=green][color=darkred]
>>>change the web services, then you'll have to process the dataset as
>>>XmlDocument on other platforms. and this could be tricky if your[/color][/color]
>
> dataset
>[color=green][color=darkred]
>>>contains lot of diffgram information.
>>>
>>>The best way is avoid dataset, try to think in schema when designing[/color][/color]
>
> a
>[color=green][color=darkred]
>>>web services. all you have to do is create a schema first then use
>>>xsd.exe to generate .net code that can be used in web services.
>>>
>>>regards
>>>erymuzuan
>>>
>>>Stu wrote:
>>>
>>>>Hi,
>>>>
>>>>I have a web service which returns a record set and works well[/color]
>>
>>integrated
>>[color=darkred]
>>>>with an asp dot net page.
>>>>However if I decided to develop a unix app
>>>>will i be able to read the dataset as it is
>>>>or do i need to write the xml as text from the web service and[/color][/color]
>
> supply
>[color=green]
>>a DTD.
>>[color=darkred]
>>>>Also any other pitfalls
>>>>
>>>>TIA
>>>>
>>>>Stu
>>>[/color][/color]
>[/color]
Stu
Guest
 
Posts: n/a
#6: Nov 23 '05

re: calling a dot net web services from unix


Thanks for all your response on this
I like the dataset model cuase its very quick and convenient.

So ill probably end up putting some method overrides so u can choose dataset
or xml

Stu

"erymuzuan" wrote:
[color=blue]
> This sort of problem posted again and again in this newsgroup simply
> because some of us thinks that Web Services is just a method with
> WebMethod attribute, rather that a set of messages in a document based
> mesaging platform. even a simple web method like this can cause
> interoperablity problem
>
> [WebMethod]
> public Employee[] GetEmployee()
> {
> Employee[] emps = new Employee[10];
> return emps;
> }
>
> I think Microsoft is part to blame for making developers thinking that's
> how to write web services. everytime you create a new asmx in VS.Net in
> give the HelloWord
>
> // WEB SERVICE EXAMPLE
> // The HelloWorld() example service returns the string Hello World
> // To build, uncomment the following lines then save and build the project
> // To test this web service, press F5
>
> // [WebMethod]
> // public string HelloWorld()
> // {
> // return "Hello World";
> // }
>
> Using tools like XmlSpy (my favorite) or CapeClear WSDL editor certainly
> helps to make a better interoperable web services. Christian Weyer's
> contract-first tool for web services is a great tool to achieve this as
> well, thou' i have it installed never really touch it. One of this
> should be the first tool every web service developer should have in
> their toolbox after the HelloWorld introduction
>
> regards
> erymuzuan
>
>
> Christoph Schittko [MVP] wrote:[color=green]
> > Erymuzuan's approach allows much better control over the XML
> > serialization format of the data. Since the original post was about
> > interoperating with a different platform, that level of control may be
> > crucial to getting the web services to talk to each other. A DataSet
> > expressed in XML is still a DataSet ;)
> >
> > You also already hint on another issue. The DataSet offers a very
> > convenient programming model that doesn't jive well with
> > interoperability. You will have to write to code anyway to make that
> > programming model work for externally exposed Web services. Programming
> > against serialized objects will also help gearing the code inside the
> > service more towards interoperability.
> >
> > Just my toughts.
> >
> > HTH,
> > Christoph Schittko
> > MVP XML
> > http://weblogs.asp.net/cschittko
> >
> >
> >
> >[color=darkred]
> >>-----Original Message-----
> >>From: Chris Rolon [mailto:ChrisRolon@discussions.microsoft.com]
> >>Posted At: Sunday, January 23, 2005 9:51 AM
> >>Posted To: microsoft.public.dotnet.framework.webservices
> >>Conversation: calling a dot net web services from unix
> >>Subject: Re: calling a dot net web services from unix
> >>
> >>I agree that a DataSet is problematic for interoperability. Instead[/color]
> >
> > return
> >[color=darkred]
> >>an
> >>XmlElement. Just use the DataSet WriteXml method to a write the[/color]
> >
> > DataSet
> >[color=darkred]
> >>out
> >>to a stream and get the root element.
> >>
> >>Of course, if the DataSet has changed, be sure to call AcceptChanges
> >>first.
> >>
> >>Chris Rolon
> >>
> >>"erymuzuan" wrote:
> >>
> >>
> >>>Dataset will always pose major problems with interoperablity because
> >>>difgramm is unique to .Net framework only. If you cannot do anything[/color]
> >
> > to
> >[color=darkred]
> >>>change the web services, then you'll have to process the dataset as
> >>>XmlDocument on other platforms. and this could be tricky if your[/color]
> >
> > dataset
> >[color=darkred]
> >>>contains lot of diffgram information.
> >>>
> >>>The best way is avoid dataset, try to think in schema when designing[/color]
> >
> > a
> >[color=darkred]
> >>>web services. all you have to do is create a schema first then use
> >>>xsd.exe to generate .net code that can be used in web services.
> >>>
> >>>regards
> >>>erymuzuan
> >>>
> >>>Stu wrote:
> >>>
> >>>>Hi,
> >>>>
> >>>>I have a web service which returns a record set and works well
> >>
> >>integrated
> >>
> >>>>with an asp dot net page.
> >>>>However if I decided to develop a unix app
> >>>>will i be able to read the dataset as it is
> >>>>or do i need to write the xml as text from the web service and[/color]
> >
> > supply
> >[color=darkred]
> >>a DTD.
> >>
> >>>>Also any other pitfalls
> >>>>
> >>>>TIA
> >>>>
> >>>>Stu
> >>>[/color]
> >[/color]
>[/color]
Christoph Schittko [MVP]
Guest
 
Posts: n/a
#7: Nov 23 '05

re: calling a dot net web services from unix


I agree with all of that ;)

Glad to hear you like wscf. Have you taken a look at release 0.4
(released last December) with the new WSDL wizard? We'd love to hear
what you think.

Christoph Schittko
MVP XML
http://weblogs.asp.net/cschittko

[color=blue]
> -----Original Message-----
> From: erymuzuan [mailto:erymuzuan@yahoo.com]
> Posted At: Sunday, January 23, 2005 6:22 PM
> Posted To: microsoft.public.dotnet.framework.webservices
> Conversation: calling a dot net web services from unix
> Subject: Re: calling a dot net web services from unix
>
> This sort of problem posted again and again in this newsgroup simply
> because some of us thinks that Web Services is just a method with
> WebMethod attribute, rather that a set of messages in a document based
> mesaging platform. even a simple web method like this can cause
> interoperablity problem
>
> [WebMethod]
> public Employee[] GetEmployee()
> {
> Employee[] emps = new Employee[10];
> return emps;
> }
>
> I think Microsoft is part to blame for making developers thinking[/color]
that's[color=blue]
> how to write web services. everytime you create a new asmx in VS.Net[/color]
in[color=blue]
> give the HelloWord
>
> // WEB SERVICE EXAMPLE
> // The HelloWorld() example service returns the string Hello World
> // To build, uncomment the following lines then save and build the[/color]
project[color=blue]
> // To test this web service, press F5
>
> // [WebMethod]
> // public string HelloWorld()
> // {
> // return "Hello World";
> // }
>
> Using tools like XmlSpy (my favorite) or CapeClear WSDL editor[/color]
certainly[color=blue]
> helps to make a better interoperable web services. Christian Weyer's
> contract-first tool for web services is a great tool to achieve this[/color]
as[color=blue]
> well, thou' i have it installed never really touch it. One of this
> should be the first tool every web service developer should have in
> their toolbox after the HelloWorld introduction
>
> regards
> erymuzuan
>
>
> Christoph Schittko [MVP] wrote:[color=green]
> > Erymuzuan's approach allows much better control over the XML
> > serialization format of the data. Since the original post was about
> > interoperating with a different platform, that level of control may[/color][/color]
be[color=blue][color=green]
> > crucial to getting the web services to talk to each other. A DataSet
> > expressed in XML is still a DataSet ;)
> >
> > You also already hint on another issue. The DataSet offers a very
> > convenient programming model that doesn't jive well with
> > interoperability. You will have to write to code anyway to make that
> > programming model work for externally exposed Web services.[/color][/color]
Programming[color=blue][color=green]
> > against serialized objects will also help gearing the code inside[/color][/color]
the[color=blue][color=green]
> > service more towards interoperability.
> >
> > Just my toughts.
> >
> > HTH,
> > Christoph Schittko
> > MVP XML
> > http://weblogs.asp.net/cschittko
> >
> >
> >
> >[color=darkred]
> >>-----Original Message-----
> >>From: Chris Rolon [mailto:ChrisRolon@discussions.microsoft.com]
> >>Posted At: Sunday, January 23, 2005 9:51 AM
> >>Posted To: microsoft.public.dotnet.framework.webservices
> >>Conversation: calling a dot net web services from unix
> >>Subject: Re: calling a dot net web services from unix
> >>
> >>I agree that a DataSet is problematic for interoperability. Instead[/color]
> >
> > return
> >[color=darkred]
> >>an
> >>XmlElement. Just use the DataSet WriteXml method to a write the[/color]
> >
> > DataSet
> >[color=darkred]
> >>out
> >>to a stream and get the root element.
> >>
> >>Of course, if the DataSet has changed, be sure to call AcceptChanges
> >>first.
> >>
> >>Chris Rolon
> >>
> >>"erymuzuan" wrote:
> >>
> >>
> >>>Dataset will always pose major problems with interoperablity[/color][/color][/color]
because[color=blue][color=green][color=darkred]
> >>>difgramm is unique to .Net framework only. If you cannot do[/color][/color][/color]
anything[color=blue][color=green]
> >
> > to
> >[color=darkred]
> >>>change the web services, then you'll have to process the dataset as
> >>>XmlDocument on other platforms. and this could be tricky if your[/color]
> >
> > dataset
> >[color=darkred]
> >>>contains lot of diffgram information.
> >>>
> >>>The best way is avoid dataset, try to think in schema when[/color][/color][/color]
designing[color=blue][color=green]
> >
> > a
> >[color=darkred]
> >>>web services. all you have to do is create a schema first then use
> >>>xsd.exe to generate .net code that can be used in web services.
> >>>
> >>>regards
> >>>erymuzuan
> >>>
> >>>Stu wrote:
> >>>
> >>>>Hi,
> >>>>
> >>>>I have a web service which returns a record set and works well
> >>
> >>integrated
> >>
> >>>>with an asp dot net page.
> >>>>However if I decided to develop a unix app
> >>>>will i be able to read the dataset as it is
> >>>>or do i need to write the xml as text from the web service and[/color]
> >
> > supply
> >[color=darkred]
> >>a DTD.
> >>
> >>>>Also any other pitfalls
> >>>>
> >>>>TIA
> >>>>
> >>>>Stu
> >>>[/color]
> >[/color][/color]

Stu
Guest
 
Posts: n/a
#8: Nov 23 '05

re: calling a dot net web services from unix


One final question
Forgive my ignorance on the Unix Side of but if i have an ms web service say
function xyz(a,b,c,d) will they be able to use the proxy and call the web
service or do I need to process xml soap streams ?
Any good resources for dev MS web services for unix


"Christoph Schittko [MVP]" wrote:
[color=blue]
> I agree with all of that ;)
>
> Glad to hear you like wscf. Have you taken a look at release 0.4
> (released last December) with the new WSDL wizard? We'd love to hear
> what you think.
>
> Christoph Schittko
> MVP XML
> http://weblogs.asp.net/cschittko
>
>[color=green]
> > -----Original Message-----
> > From: erymuzuan [mailto:erymuzuan@yahoo.com]
> > Posted At: Sunday, January 23, 2005 6:22 PM
> > Posted To: microsoft.public.dotnet.framework.webservices
> > Conversation: calling a dot net web services from unix
> > Subject: Re: calling a dot net web services from unix
> >
> > This sort of problem posted again and again in this newsgroup simply
> > because some of us thinks that Web Services is just a method with
> > WebMethod attribute, rather that a set of messages in a document based
> > mesaging platform. even a simple web method like this can cause
> > interoperablity problem
> >
> > [WebMethod]
> > public Employee[] GetEmployee()
> > {
> > Employee[] emps = new Employee[10];
> > return emps;
> > }
> >
> > I think Microsoft is part to blame for making developers thinking[/color]
> that's[color=green]
> > how to write web services. everytime you create a new asmx in VS.Net[/color]
> in[color=green]
> > give the HelloWord
> >
> > // WEB SERVICE EXAMPLE
> > // The HelloWorld() example service returns the string Hello World
> > // To build, uncomment the following lines then save and build the[/color]
> project[color=green]
> > // To test this web service, press F5
> >
> > // [WebMethod]
> > // public string HelloWorld()
> > // {
> > // return "Hello World";
> > // }
> >
> > Using tools like XmlSpy (my favorite) or CapeClear WSDL editor[/color]
> certainly[color=green]
> > helps to make a better interoperable web services. Christian Weyer's
> > contract-first tool for web services is a great tool to achieve this[/color]
> as[color=green]
> > well, thou' i have it installed never really touch it. One of this
> > should be the first tool every web service developer should have in
> > their toolbox after the HelloWorld introduction
> >
> > regards
> > erymuzuan
> >
> >
> > Christoph Schittko [MVP] wrote:[color=darkred]
> > > Erymuzuan's approach allows much better control over the XML
> > > serialization format of the data. Since the original post was about
> > > interoperating with a different platform, that level of control may[/color][/color]
> be[color=green][color=darkred]
> > > crucial to getting the web services to talk to each other. A DataSet
> > > expressed in XML is still a DataSet ;)
> > >
> > > You also already hint on another issue. The DataSet offers a very
> > > convenient programming model that doesn't jive well with
> > > interoperability. You will have to write to code anyway to make that
> > > programming model work for externally exposed Web services.[/color][/color]
> Programming[color=green][color=darkred]
> > > against serialized objects will also help gearing the code inside[/color][/color]
> the[color=green][color=darkred]
> > > service more towards interoperability.
> > >
> > > Just my toughts.
> > >
> > > HTH,
> > > Christoph Schittko
> > > MVP XML
> > > http://weblogs.asp.net/cschittko
> > >
> > >
> > >
> > >
> > >>-----Original Message-----
> > >>From: Chris Rolon [mailto:ChrisRolon@discussions.microsoft.com]
> > >>Posted At: Sunday, January 23, 2005 9:51 AM
> > >>Posted To: microsoft.public.dotnet.framework.webservices
> > >>Conversation: calling a dot net web services from unix
> > >>Subject: Re: calling a dot net web services from unix
> > >>
> > >>I agree that a DataSet is problematic for interoperability. Instead
> > >
> > > return
> > >
> > >>an
> > >>XmlElement. Just use the DataSet WriteXml method to a write the
> > >
> > > DataSet
> > >
> > >>out
> > >>to a stream and get the root element.
> > >>
> > >>Of course, if the DataSet has changed, be sure to call AcceptChanges
> > >>first.
> > >>
> > >>Chris Rolon
> > >>
> > >>"erymuzuan" wrote:
> > >>
> > >>
> > >>>Dataset will always pose major problems with interoperablity[/color][/color]
> because[color=green][color=darkred]
> > >>>difgramm is unique to .Net framework only. If you cannot do[/color][/color]
> anything[color=green][color=darkred]
> > >
> > > to
> > >
> > >>>change the web services, then you'll have to process the dataset as
> > >>>XmlDocument on other platforms. and this could be tricky if your
> > >
> > > dataset
> > >
> > >>>contains lot of diffgram information.
> > >>>
> > >>>The best way is avoid dataset, try to think in schema when[/color][/color]
> designing[color=green][color=darkred]
> > >
> > > a
> > >
> > >>>web services. all you have to do is create a schema first then use
> > >>>xsd.exe to generate .net code that can be used in web services.
> > >>>
> > >>>regards
> > >>>erymuzuan
> > >>>
> > >>>Stu wrote:
> > >>>
> > >>>>Hi,
> > >>>>
> > >>>>I have a web service which returns a record set and works well
> > >>
> > >>integrated
> > >>
> > >>>>with an asp dot net page.
> > >>>>However if I decided to develop a unix app
> > >>>>will i be able to read the dataset as it is
> > >>>>or do i need to write the xml as text from the web service and
> > >
> > > supply
> > >
> > >>a DTD.
> > >>
> > >>>>Also any other pitfalls
> > >>>>
> > >>>>TIA
> > >>>>
> > >>>>Stu
> > >>>
> > >[/color][/color]
>
>[/color]
Closed Thread