I was recently talking to a colleague, and he mentioned he had an Enterprise customer with clients running Windows 2000 Professional, knew WCF wasn't supported on that platform, and asked what he could recommend they use until they upgrade their clients to XP or Windows Vista. Variations of this question came up a couple of times while on the road these past couple of weeks, and I wanted to share my response in hopes it could help others with the same query.
WCF and WF do require .NET framework 2.0 be installed on the machine, and the official systems supported for *installation* are Windows XP, Windows Vista, Windows Server 2003 and eventually Longhorn Server. That being said, it is totally reasonable for you to install/use WF and WCF on a server using Windows Server 2003 and then expose services (either through WCF or a Workflow exposed as a WCF Service), which can be consumed by non-WCF clients on downlevel OS'.
The first question to ask yourself is this - do you have the ability to deploy .NET Framework 2.0 to the systems where your client will be installed? The next question is - do your services need to be secured at the message level or will security at the transport level suffice?
If you can deploy .NET framework 2.0, look at creating clients using Visual Studio 2005 and the .NET framework. If transport level security will suffice, encrypt the channel using SSL. If message level security is required, utilize WSE 3 which will be wire compatible with WCF.
Now, if your target audience will have framework 1.1 installed and you are not empowered to install .NET framework 2.0, you're not left out.
Remember that WCF and WF can be exposed as Basic Profile 1.0 compliant web services, which can be consumed by any software on any platform that can understand Basic Profile 1.0. On Windows Server 2000 / Windows 2000, there are a number of options here.
We’ve had SOAP/web service support on Win2K for some time, so this is reasonable. The great thing is, because you can expose multiple endpoints, you build a service today that exposed BP 1.0 services, and add additional endpoints (all external to the application) in the config file. This allows you to simultaneously provide support for older clients, as well as the opportunity to service employees and partners with newer/different clients with WS-* secured services, TCP, etc.
In addition, remember that WCF (and Workflows exposed as a WCF service) can also be utilize MSMQ. This provides another opportunity to utilize an application on a Windows 2000 system. Here you could write messages to MSMQ through System.Messaging (or via other means – even VB6!), again with the service on Windows Server 2003, supporting downlevel (win2k) clients.
Also, if you have existing COM+ applications, you can expose these as well. (again using WCF/WF exposed on Windows Server 2003, with clients consuming them downlevel).
Finally, remember that you can compile WCF/WF code down to an assembly and make those assemblies visible to COM (via interop). If you have a legacy app and it’s residing on any of the supported applications, you can consume WCF services using something as simple as com based scripting (works great for customers running things like Lotus Notes, early versions of Offices, even VB6 apps!).
Naturally, these items mentioned for 1.1 framework are also compat on 2.0 version of the framework.
You can start to see the power of this unified model combined with the framework opens a number of possibilities.