Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Introduction of System.ServiceModel 6.0 for Calling WCF/CoreWCF

Introduction of System.ServiceModel 6.0 for Calling WCF/CoreWCF

This item in japanese

The release of System.ServiceModel 6.0 provides client support for calling WCF/CoreWCF functions. These NuGet packages, collectively known as the WCF client, enable .NET platform applications to interact seamlessly with WCF or CoreWCF services. Although the .NET Core 3.1 platform and later versions do not include built-in WCF server support, CoreWCF, a separate community project based on ASP.NET Core, fills this gap by providing a WCF-compliant server implementation.

The following packages are included in the 6.0 release:


The latest version introduces support for named pipes, compatible with both WCF and CoreWCF implementations. NetNamedPipeBinding facilitates binary communication between processes on the same Windows machine. However, named pipelines are only available on Windows and are not available on Linux or other non-Windows platforms. In order to fill this gap, CoreWCF is developing Unix domain socket support to offer equivalent functionality for Linux. The WCF client will be updated with the release of CoreWCF to ensure seamless coordination.

Starting with the 6.0 release, the WCF client package no longer supports .NET Standard 2.0 and is exclusively for .NET 6.0 and later. This change enables the use of newer functionality available in .NET 6 that is not present in the .NET Framework. By focusing on the .NET 6 platform, the size and complexity of the package are reduced, simplifying the deployment process. Support for the .NET standard is maintained, and applications or libraries can continue to use the System.ServiceModel.* packages in version 4.x, or make use of references to conditional sets for the .NET Framework using these NuGet packages for .NET 6 and later.

Furthermore, the System.ServiceModel.Duplex and System.ServiceModel.Security packages are no longer required because their types have been merged into the System.ServiceModel.Primitives package. This change eliminates the need for these mentioned packages, as the type forwarders will always reference the version of the Primitives package used by the application.

This release raises different emotions in the community. Antonello Provenzano commented below the Facebook post:

WCF? It is 2023: REST, GraphQL, gRPC, AMQP… which is the legacy system using WCF that has to be updated to .NET Core?
If the goal is updating the WCF service interface, then there’s much more behind that interface that has to be updated, causing a big bang in the software of the system (presumably a monolith).
If instead, it’s a brand new implementation, why choose WCF to expose the API, when the other ones available are mature and well-supported by an entire supply chain?

Another user, Jozef Raschmann, answered: 

Calm down. All our government services are based on WCF and its security extension WS-*. Still, there isn't a standardized alternative in the REST world.

About the Author

Rate this Article