Windows Client using Generated WS Proxy
Messages   Related Types
This message was discovered on microsoft.public.dotnet.framework.aspnet.webservices.
Responses highlighted in red are from those people who are likely to be able to contribute good, authoratitive information to this discussion. They include Microsoft employees, MVP's and others who IMHO contribute well to these kinds of discussions.
Post a new message to this list...

Gravy (VIP)
Hi,

How many people are using a windows client to talk to their web service? I'm
interested on peoples view on using the classes that are generated
automatically when a web reference is added. More specifically the class
that represent the data that goes to and from the web service.

In a very simple solution I can see the ease of using the generated classes
but in a more complex solution does the case for using them still stand.

I have an application that has a windows client talking to a set of services
hosted in ASP.NET. Now whilst writing the service layer I created quite a
few classes that represent the data to method calls, i.e. entity type
classes. the typical sort of thing is a Customer or an Account.

Now, if I expose a web method that takes a Customer or Account the client
proxy that is generated automatically creates another definition for
Customer and Account. If MY entities contain the data plus a little
validation, i.e. Name cannot be empty or greater than 10 then I would want
my client to use them as well as the server. But this means I now have a
conflict. the WS Proxy thinks it knows what a Customer is and the client
code also thinks it knows what a Customer is.

Does anyone else suffer from these conflicts, or do people just use the
proxy generated class.

I can think of a couple of solutions to the problem.

1) Change the reference.cs file to use my namespace for my Customer and
Account class. Then remove the auto generated versions from this class.

2) Manually convert from my definition of a Customer to the proxy's
definition before a call the web service!!

One aspect of this that I'm worried about is versioning!!

Does anyone have any comments on this?

Regards

Graham Allwood

Reply to this message...
 
    
Tomas (VIP)
Hi Gravy,

I have just completed a contract where I ran into the situation I just
described.

I was using several class that were to be shared across the presentation and
business tiers of my application. I have placed these data class e.g.
AddressData, UserData in an assembly I was planning to share across tiers.
The WSDL tool did indeed create "duplicates" of these classes which, to be
honest, really annoyed me.

The solution I used was to generate one proxy using the tool and then I
simply went through it and modified it. Since I am using VSS, versioning has
not been a real problem. Since the initial design of these data classes I've
added some methods for presentation e.g. a toString() that puts the users
name together in a nice format.

Overall it's been quite successful, but that partly stems from the fact that
we had very good designs on our webservices before we started client side
development. Signatures have changed slightly, but you can modify the custom
proxy without too much difficulty. Major headaches arise when you add new
webmethods, fortunately for me, that happened only one over the life of the
project so it was only a minor task. This would be a big problem if methods
were being added quite frequently.

I hope this has been of some benefit to you. Let me know what you decided to
do.

Tom

"Gravy" wrote:

[Original message clipped]

Reply to this message...
 
    
Gravy (VIP)
Thanks Tomas,

It nice to know that I'm doing something that not totally alien.

I think that without any compelling reason to change things I'm going to
stick with the way we have things now, that is share data assembly between
tiers, very similar to the way you did it.

Has anyone else come accross this?

Gravy

"Tomas" <Click here to reveal e-mail address> wrote in message
news:Click here to reveal e-mail address...
[Original message clipped]

Reply to this message...
 
 




Ad
MBR BootFX
Best-of-breed application framework for .NET projects, developed by Matthew Baxter-Reynolds and MBR IT
 
 Copyright © Matthew Baxter-Reynolds 2001-2008. '.NET 247 Software Development Services' is a trading style of MBR IT Solutions Ltd.
Contact Us - Terms of Use - Privacy Policy - www.dotnet247.com