WSDL Generated Proxy Classes?

Discussion in 'ASP .Net' started by Arpan, Sep 7, 2006.

  1. Arpan

    Arpan Guest

    Web Services make use of proxy classes whose methods & properties are
    accessed in exactly the same way as how a normal class' methods &
    properties are accessed. So what for does ASP.NET generate proxy
    classes (using WSDL) which consume more hard disk space & resources?

    For e.g. consider the following code which exists in a user-defined
    class file:

    Imports System
    Imports System.Data
    Imports System.Web.Services

    Namespace AddNumbers
    Public Class Calculator : Inherits WebService
    <WebMethod()> Public Function Add(ByVal intA As Integer, ByVal
    intB As Integer) As Integer
    Return (intA + intB)
    End Function
    End Class
    End Namespace

    The above code spans just 11 lines but if the above code (excluding the
    2 Namespace lines) is encapsulated in an ASMX file after which WSDL is
    used to generate a corresponding class file, the class file spans
    almost 100 lines (excluding the commented lines). Moreover, most part
    of the code in the generated class is not comprehensible to newbies
    like me. So why use WSDL to generate a class file? Also there
    definitely must be some additional overheads involved in this approach,
    isn't it?

    Thanks,

    Arpan
    Arpan, Sep 7, 2006
    #1
    1. Advertising

  2. Hi,

    Arpan wrote:
    > Web Services make use of proxy classes whose methods & properties are
    > accessed in exactly the same way as how a normal class' methods &
    > properties are accessed. So what for does ASP.NET generate proxy
    > classes (using WSDL) which consume more hard disk space & resources?


    <code snipped>

    > The above code spans just 11 lines but if the above code (excluding the
    > 2 Namespace lines) is encapsulated in an ASMX file after which WSDL is
    > used to generate a corresponding class file, the class file spans
    > almost 100 lines (excluding the commented lines). Moreover, most part
    > of the code in the generated class is not comprehensible to newbies
    > like me. So why use WSDL to generate a class file? Also there
    > definitely must be some additional overheads involved in this approach,
    > isn't it?
    >
    > Thanks,
    >
    > Arpan


    WSDL is Web Service Description Language. It is a standard which is used
    to describe what the Web Service can do. The advantage of generating a
    WSDL file is that each client can download the WSDL file and generate
    proxy "on the fly". This is what Visual Studio does when you create a
    WebReference to a web service, and it generates proxies. However, there
    are also other consumers of web services (ATLAS in JavaScript), and they
    also create proxies in JavaScript dynamically using the WSDL file. Since
    JavaScript is a very different language than C# and VB.NET, and since
    web services may actually be written in yet other languages, WSDL
    abstracts the language differences and allows different languages to
    communicate through this medium.

    It's very possible to do AJAX without SOAP and without WSDL. The code is
    much thinner then. But SOAP and WSDL offer an additional level of
    comfort for the consumer of web services.

    ..NET creates WSDL files automatically (just use the URL
    myService.asmx?WSDL), but other providers of web services (Google comes
    in mind) also deliver WSDL files with their web services.

    HTH,
    Laurent
    --
    Laurent Bugnion, GalaSoft
    Software engineering: http://www.galasoft-LB.ch
    Private/Malaysia: http://mypage.bluewin.ch/lbugnion
    Support children in Calcutta: http://www.calcutta-espoir.ch
    Laurent Bugnion, Sep 7, 2006
    #2
    1. Advertising

  3. Arpan

    Arpan Guest

    >The advantage of generating a
    > WSDL file is that each client can download the WSDL file and generate
    > proxy "on the fly".


    But what proxy classes do, the same can be done using business objects.
    In other words, the logic that a proxy class encapsulates, the same
    logic can be implemented using a business object i.e. both of them can
    be used to retrieve data dynamically but using WSDL means the client
    has to save the proxy file (along with the disco & results.discomap
    files though not necessarily) in his machine thus consuming disk space
    but with business objects, the client needn't save anything on his hard
    disk.

    Moreover to access the methods & properties in a proxy file, the client
    has to pass commands to the Web Service (which maybe preceded by first
    finding where the Web Service exists using DISCO) but with business
    objects, there isn't any need for clients to use any extra tools like
    WSDL.exe & DISCO.exe to access the business object's methods &
    properties.

    Both Web Services & business objects require compiled objects that are
    implemented in ASP.NET pages. An ASP.NET book for beginners states that
    the ONLY difference between Web Services & business objects is that
    with Web Services, the compiled object (i.e. the proxy class) can
    reside anywhere on the Internet. In other words, the ASP.NET page can
    be located on a client's home computer in New York while the Web
    Service resides on a server which is in Tokyo. But even business
    objects that reside on a server in Tokyo can be accessed by an ASP.NET
    page which is located in a client's machine in New York!

    So what's the difference between Web Services & business objects or
    what are the advantages of using Web Services (using WSDLs & sometimes
    DISCOs) over business objects?

    Thanks,

    Regards,

    Arpan

    Laurent Bugnion wrote:
    > Hi,
    >
    > Arpan wrote:
    > > Web Services make use of proxy classes whose methods & properties are
    > > accessed in exactly the same way as how a normal class' methods &
    > > properties are accessed. So what for does ASP.NET generate proxy
    > > classes (using WSDL) which consume more hard disk space & resources?

    >
    > <code snipped>
    >
    > > The above code spans just 11 lines but if the above code (excluding the
    > > 2 Namespace lines) is encapsulated in an ASMX file after which WSDL is
    > > used to generate a corresponding class file, the class file spans
    > > almost 100 lines (excluding the commented lines). Moreover, most part
    > > of the code in the generated class is not comprehensible to newbies
    > > like me. So why use WSDL to generate a class file? Also there
    > > definitely must be some additional overheads involved in this approach,
    > > isn't it?
    > >
    > > Thanks,
    > >
    > > Arpan

    >
    > WSDL is Web Service Description Language. It is a standard which is used
    > to describe what the Web Service can do. The advantage of generating a
    > WSDL file is that each client can download the WSDL file and generate
    > proxy "on the fly". This is what Visual Studio does when you create a
    > WebReference to a web service, and it generates proxies. However, there
    > are also other consumers of web services (ATLAS in JavaScript), and they
    > also create proxies in JavaScript dynamically using the WSDL file. Since
    > JavaScript is a very different language than C# and VB.NET, and since
    > web services may actually be written in yet other languages, WSDL
    > abstracts the language differences and allows different languages to
    > communicate through this medium.
    >
    > It's very possible to do AJAX without SOAP and without WSDL. The code is
    > much thinner then. But SOAP and WSDL offer an additional level of
    > comfort for the consumer of web services.
    >
    > .NET creates WSDL files automatically (just use the URL
    > myService.asmx?WSDL), but other providers of web services (Google comes
    > in mind) also deliver WSDL files with their web services.
    >
    > HTH,
    > Laurent
    > --
    > Laurent Bugnion, GalaSoft
    > Software engineering: http://www.galasoft-LB.ch
    > Private/Malaysia: http://mypage.bluewin.ch/lbugnion
    > Support children in Calcutta: http://www.calcutta-espoir.ch
    Arpan, Sep 7, 2006
    #3
  4. Hi,

    Arpan wrote:
    >> The advantage of generating a
    >> WSDL file is that each client can download the WSDL file and generate
    >> proxy "on the fly".

    >
    > But what proxy classes do, the same can be done using business objects.
    > In other words, the logic that a proxy class encapsulates, the same
    > logic can be implemented using a business object i.e. both of them can
    > be used to retrieve data dynamically but using WSDL means the client
    > has to save the proxy file (along with the disco & results.discomap
    > files though not necessarily) in his machine thus consuming disk space
    > but with business objects, the client needn't save anything on his hard
    > disk.


    I think that you're missing the point that web services are not tied to
    a technology or an environment, and that the proxy classes can be (and
    often are, for example in ATLAS) generated dynamically during runtime.
    In that scenario, nothing is saved on the client, and a description file
    is needed. The .NET way of using "static" web references to consume web
    services is, IMHO, rather the exception.

    I think that everything which SOAP does can be done in other more
    efficient ways, for example using simpler AJAX. But SOAP offers an
    additional level of comfort for the user, which explains why it's
    "bloated" (which is the most common criticism found against SOAP based
    web services).

    HTH,
    Laurent

    >
    > Moreover to access the methods & properties in a proxy file, the client
    > has to pass commands to the Web Service (which maybe preceded by first
    > finding where the Web Service exists using DISCO) but with business
    > objects, there isn't any need for clients to use any extra tools like
    > WSDL.exe & DISCO.exe to access the business object's methods &
    > properties.
    >
    > Both Web Services & business objects require compiled objects that are
    > implemented in ASP.NET pages. An ASP.NET book for beginners states that
    > the ONLY difference between Web Services & business objects is that
    > with Web Services, the compiled object (i.e. the proxy class) can
    > reside anywhere on the Internet. In other words, the ASP.NET page can
    > be located on a client's home computer in New York while the Web
    > Service resides on a server which is in Tokyo. But even business
    > objects that reside on a server in Tokyo can be accessed by an ASP.NET
    > page which is located in a client's machine in New York!
    >
    > So what's the difference between Web Services & business objects or
    > what are the advantages of using Web Services (using WSDLs & sometimes
    > DISCOs) over business objects?
    >
    > Thanks,
    >
    > Regards,
    >
    > Arpan

    --
    Laurent Bugnion, GalaSoft
    Software engineering: http://www.galasoft-LB.ch
    Private/Malaysia: http://mypage.bluewin.ch/lbugnion
    Support children in Calcutta: http://www.calcutta-espoir.ch
    Laurent Bugnion, Sep 7, 2006
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Dark
    Replies:
    1
    Views:
    4,624
    milfar
    Nov 14, 2008
  2. Andy
    Replies:
    0
    Views:
    270
  3. mrnu

    wsdl.exe fails with WebMethods generated wsdl file

    mrnu, Jun 7, 2004, in forum: ASP .Net Web Services
    Replies:
    0
    Views:
    202
  4. vincent

    I don't want proxy generated classes!

    vincent, Apr 12, 2006, in forum: ASP .Net Web Services
    Replies:
    0
    Views:
    118
    vincent
    Apr 12, 2006
  5. Replies:
    3
    Views:
    478
    John Saunders
    Oct 7, 2008
Loading...

Share This Page