System.ServiceModel 6.0 发布总结
主要观点
System.ServiceModel 6.0 的发布为调用 WCF/CoreWCF 功能提供了客户端支持。这些 NuGet 包(统称为 WCF 客户端)使 .NET 平台应用程序能够无缝与 WCF 或 CoreWCF 服务交互。尽管 .NET Core 3.1 及更高版本不包含内置的 WCF 服务器支持,但基于 ASP.NET Core 的社区项目 CoreWCF 填补了这一空白,提供了符合 WCF 标准的服务器实现。
关键信息
- 命名管道支持:最新版本引入了对命名管道的支持,适用于 WCF 和 CoreWCF 实现。
NetNamedPipeBinding促进了同一 Windows 机器上进程之间的二进制通信。然而,命名管道仅在 Windows 上可用,Linux 或其他非 Windows 平台不支持。为了填补这一空白,CoreWCF 正在开发 Unix 域套接字支持,以在 Linux 上提供等效功能。 - .NET 6.0 及更高版本支持:从 6.0 版本开始,WCF 客户端包不再支持 .NET Standard 2.0,而是专为 .NET 6.0 及更高版本设计。这一变化使得可以使用 .NET 6 中的新功能,从而减少了包的体积和复杂性,简化了部署过程。
- 包合并:
System.ServiceModel.Duplex和System.ServiceModel.Security包不再需要,因为它们的功能已合并到System.ServiceModel.Primitives包中。这一变化消除了对这些包的依赖,因为类型转发器将始终引用应用程序使用的 Primitives 包版本。
重要细节
- 社区反应:此次发布在社区中引发了不同的情感。Antonello Provenzano 在 Facebook 帖子中评论称,WCF 在当今技术环境下(如 REST、GraphQL、gRPC、AMQP 等)显得过时,并质疑为什么在选择新技术时仍然使用 WCF。另一位用户 Jozef Raschmann 则回应称,许多政府服务仍然基于 WCF 及其安全扩展 WS-*,而且 REST 世界中没有标准化的替代方案。
- 未来计划:WCF 客户端将随着 CoreWCF 的发布进行更新,以确保无缝协调。CoreWCF 正在开发 Unix 域套接字支持,以在 Linux 上提供与命名管道等效的功能。
总结
System.ServiceModel 6.0 的发布标志着 WCF 客户端在 .NET 6.0 及更高版本中的重要更新。尽管 WCF 在现代技术环境中可能显得过时,但在某些场景(如政府服务)中仍然具有不可替代的作用。此次更新通过引入命名管道支持、简化包结构以及专注于 .NET 6.0 平台,进一步提升了 WCF 客户端的性能和易用性。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。