I have completed my first litmus test for my planned approach for our .NET 2.0 port: that it is possible for a .NET 1.1 WSE 2.0 Web services client to interact with a ASP.NET 2.0 WSE 2.0 Web service. I am happy to report that this has worked with no trouble; however, there is a gotcha here for those intending to support VS2003’s “Add Web Reference” feature:
By default, ASP.NET 2.0 generates WSDL based on the SOAP 1.2 specification. VS2003 can only interpret the WSDL based on the SOAP 1.1 specification. I say “by default” because I assume this can be overridden; however, I may be wrong.
In terms of my overall progress, I have converted libraries, WSE clients and services, ASP.NET projects, ADO.NET clients, and Windows Services. There have been no real stumbling blocks, though I expect that the greater work will be integrating all of these new tools into our release processes.
One issue is that ASP.NET 2.0 assemblies are all compiled into an App_Code.dll. Anywhere that static references to ASP.NET assemblies exist (e.g., in the web.config file) need to be changed. This was the case for us in two sections: custom configSections and a WSE securityTokenManager. In both cases, I simply needed to change the 2nd argument in the standard full assembly name from the old simple assembly name (e.g., MyWebServices) to App_Code.
The other issue was that I had to #if out references to the PreEmptive.Dotfuscator.ObfuscationAttributes namespace as these attributes are built-in to .NET 2.0.
Other than that, everything is AOK.
BTW: I’m sticking with VSS 6 and not getting into Team System for now. I consider this a completely separate porting issue that I’ll get into later this year.