You are building a WCF Service. There are several methods that you do not want to expose to clients but need to use internally. Several complex types, including enumerations, will be transferred between the client and server. Although the majority of your clients are using .NET, you want to make sure that any decision errs on the side of interoperability.