If I upgrade a WCF Web Service from .NET 3.5 to 4.0, making no other changes, is there any risk of a change to the contract exposed to the outside world? ie. Will my consumers need to reconsume the WSDL?
If so, is there anything I can do to stop that happening?
EDIT: An example of the kind of thing I'm talking about.
We have been using something like this for a while http://www.codeproject.com/KB/aspnet/WSSecurityProvider.aspx
I may be reading this wrong but when I upgraded the server and reconsumed from the client, the Reference.cs changed so that
public MyNamespace.MembershipUser RemoteMembershipProvider_CreateUser(out System.Web.Security.MembershipCreateStatus status, string providerName, string applicationName, string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey) {
return base.Channel.RemoteMembershipProvider_CreateUser(out status, providerName, applicationName, username, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey);
}
changed to
public MyNamespace.MembershipUser RemoteMembershipProvider_CreateUser(out MyNamespace.MembershipCreateStatus status, string providerName, string applicationName, string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey) {
return base.Channel.RemoteMembershipProvider_CreateUser(out status, providerName, applicationName, username, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey);
}
Note the change in namespace for MembershipCreateStatus.
(and no, I don't really have a namespace called MyNamespace)
Am I wrong in thinking that if I hadn't reconsumed, it would have stopped working?
And if not, what is the specific thing that has change and how many other cases will it effect? Just framework enums? Or more than that?