Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Breaking change]: WCF Client 6.0 release will no longer support net standard 2.0 #33515

Closed
1 of 3 tasks
HongGit opened this issue Jan 12, 2023 · 0 comments · Fixed by #33562
Closed
1 of 3 tasks

[Breaking change]: WCF Client 6.0 release will no longer support net standard 2.0 #33515

HongGit opened this issue Jan 12, 2023 · 0 comments · Fixed by #33562
Assignees
Labels
binary incompatible Existing binaries may encounter a breaking change in behavior. breaking-change Indicates a .NET Core breaking change doc-idea Indicates issues that are suggestions for new topics [org][type][category] Pri1 High priority, do before Pri2 and Pri3 📌 seQUESTered Identifies that an issue has been imported into Quest.

Comments

@HongGit
Copy link
Contributor

HongGit commented Jan 12, 2023

Description

WCF Client 6.0 release will no longer support net standard 2.0. WCF Client 6.0 will move to target .NET 6.0.

WCF Client releases used to support net standard 2.0, in order to support both .NET core and .NET Framework. This helps developers to modernize their existing WCF applications from .NET Framework to .NET Core. It's time for WCF Client to take a step further in order to catch up with other .NET Core frameworks, so WCF Client and WCF Client applications could take advantage of new features and APIs available on .NET 6.0.

Version

Other (please put exact version in description textbox)

We will release preview next week, RTM date is not decided yet.

Previous behavior

Developer could add a package reference to WCF Client Nuget packages regardless of its target framework. When targeting or running .NET Framework, it is always used System.ServiceModel.dll implementation in the .NET Framework.

New behavior

WCF Client Nuget packages targets only .NET 6.0. Library project targeting net standard 2.0 which referenced WCF Client packages will now need to multi-target .NET Framework and .NET with conditional assembly reference to System.ServiceModel for .NET Framework and conditionally add package references to WCF Client packages for .NET.

In addition, System.ServiceModel.Duplex and System.ServiceModel.Security packages are deprecated, and this is the last release for these two Nuget packages. The types have been moved to System.ServiceModel.Primitives, these final packages will type forward the types to System.ServiceModel.Primitives for binary compatibility.

Type of breaking change

  • Binary incompatible: Existing binaries may encounter a breaking change in behavior, such as failure to load or execute, and if so, require recompilation.
  • Source incompatible: When recompiled using the new SDK or component or to target the new runtime, existing source code may require source changes to compile successfully.
  • Behavioral change: Existing binaries may behave differently at run time.

Reason for change

WCF Client releases used to support net standard 2.0, in order to support both .NET core and .NET Framework. This helps developers to modernize their existing WCF applications from .NET Framework to .NET Core. It's time for WCF Client to take a step further in order to catch up with other .NET Core frameworks, so WCF Client and WCF Client applications could take advantage of new features and APIs available on .NET 6.0.

With this change, WCF Client Nuget packages are smaller, so the footprint is smaller during deployment.

Recommended action

If WCF projects targets 6.0 or later, no change is needed. If targeting net standard 2.0, then you will need to multi-targeting your WCF libraries. If you are referencing System.ServiceModel.Duplex and System.ServiceModel.Security, remove these package references, they are no longer needed.

Feature area

WCF Client

Affected APIs

NA


Associated WorkItem - 59714

@HongGit HongGit added doc-idea Indicates issues that are suggestions for new topics [org][type][category] breaking-change Indicates a .NET Core breaking change Pri1 High priority, do before Pri2 and Pri3 labels Jan 12, 2023
@dotnet-bot dotnet-bot added ⌚ Not Triaged Not triaged binary incompatible Existing binaries may encounter a breaking change in behavior. labels Jan 12, 2023
@gewarren gewarren added 🏁 Release: .NET 8 Work items for the .NET 8 release and removed ⌚ Not Triaged Not triaged labels Jan 17, 2023
@ghost ghost added the in-pr This issue will be closed (fixed) by an active pull request. label Jan 17, 2023
@gewarren gewarren added the 🗺️ reQUEST Triggers an issue to be imported into Quest. label Jan 17, 2023
@github-actions github-actions bot added 📌 seQUESTered Identifies that an issue has been imported into Quest. and removed 🗺️ reQUEST Triggers an issue to be imported into Quest. labels Jan 17, 2023
@ghost ghost removed the in-pr This issue will be closed (fixed) by an active pull request. label Jan 18, 2023
@gewarren gewarren removed the 🏁 Release: .NET 8 Work items for the .NET 8 release label Jan 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
binary incompatible Existing binaries may encounter a breaking change in behavior. breaking-change Indicates a .NET Core breaking change doc-idea Indicates issues that are suggestions for new topics [org][type][category] Pri1 High priority, do before Pri2 and Pri3 📌 seQUESTered Identifies that an issue has been imported into Quest.
Projects
No open projects
Status: Done
Development

Successfully merging a pull request may close this issue.

3 participants