BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース WCF/CoreWCFを呼び出すためのSystem.ServiceModel 6.0の導入について

WCF/CoreWCFを呼び出すためのSystem.ServiceModel 6.0の導入について

 

原文リンク(2023-06-16)
System.ServiceModel 6.0のリリースでは、WCF/CoreWCFの関数を呼び出すためのクライアントサポートが提供される。これらのNuGetパッケージはWCFクライアントとして総称され、.NETプラットフォーム・アプリケーションがWCFまたはCoreWCFサービスとシームレスに対話できる。.NET Core 3.1プラットフォームとそれ以降のバージョンには、組み込みのWCFサーバーサポートが含まれていないが、ASP.NET Coreに基づく別のコミュニティプロジェクトであるCoreWCFは、WCF準拠のサーバー実装を提供することでこのギャップを埋めている。

6.0リリースには、以下のパッケージが含まれている。

画像

Source: https://devblogs.microsoft.com/dotnet/wcf-client-60-has-been-released/

最新バージョンでは、WCFとCoreWCFの両方の実装と互換性のある、名前付きパイプのサポートが導入されている。NetNamedPipeBindingは、同じWindowsマシン上のプロセス間のバイナリ通信を容易にする。しかし、名前付きパイプラインはWindowsでのみ利用可能であり、Linuxやその他の非Windowsプラットフォームでは利用できない。このギャップを埋めるため、CoreWCFはLinuxでも同等の機能を提供できるよう、Unixドメインソケットのサポートを開発している。WCFクライアントはCoreWCFのリリースに合わせてアップデートされ、シームレスな連携を実現する予定である。

6.0リリースから、WCFクライアントパッケージは.NET Standard 2.0をサポートしなくなり、.NET 6.0以降専用となった。この変更により、.NET Frameworkにはない、.NET 6で利用できる新しい機能を利用できるようになった。.NET 6プラットフォームに集中することで、パッケージのサイズと複雑さが軽減され、展開プロセスが簡素化される。.NET標準のサポートは維持され、アプリケーションやライブラリは、バージョン4.xのSystem.ServiceModel.*パッケージを引き続き使用したり、.NET 6以降用のこれらのNuGetパッケージを使って.NET Framework用の条件セットへの参照を使用できる。

さらに、System.ServiceModel.DuplexおよびSystem.ServiceModel.Securityパッケージは、それらのタイプがSystem.ServiceModel.Primitivesパッケージにマージされたため不要となった。この変更により、タイプフォワーダーは常にアプリケーションで使用されるPrimitivesパッケージのバージョンを参照するため、これらの言及されたパッケージは不要になる。

このリリースは、コミュニティでさまざまな反応を引き起こした。Antonello Provenzano氏は、Facebook で以下のコメントを寄せている。

WCF?今は2023年だ。 REST、GraphQL、gRPC、AMQP... .NET CoreにアップデートしなければならないWCFを使ったレガシーシステムはどれだろうか? もしWCFサービスインターフェースの更新が目的なら、そのインターフェースの背後には更新しなければならない多くのものがあり、システム(おそらくモノリス)のソフトウェアにビッグバンを引き起こす。 その代わりに、全く新しい実装をするのであれば、なぜAPIを公開するのにWCFを選んだのだろうか?

別のユーザー、 Jozef Raschmann氏は次のように答えている。

落ち着いて。政府のサービスはすべてWCFとそのセキュリティ拡張WS-*に基づいている。それでも、RESTの世界には標準化された代替手段はない。

作者について

この記事に星をつける

おすすめ度
スタイル

BT