System.Net クラスのベスト プラクティス

次の推奨事項は、System.Net に含まれるクラスを最大限に活用するのに役立ちます。

  • トランスポート層セキュリティ (TLS) のベスト プラクティスについては、「.NET Framework でのトランスポート層セキュリティ (TLS) のベスト プラクティス」をご覧ください。

  • .NET 6 で廃止された WebRequest の代わりに HttpClient を使用して HTTP 要求を送信します。 .NET Framework では、要求を送信する必要があるたびに新しい HttpClient ファイルを作成します。 (.NET 5+/.NET Core 向けのガイダンスで違いが細かに説明されています。詳細については、HttpClient の使用に関するガイドラインを参照してください)

  • System.Net クラスを使用するサーバー上で実行する ASP.NET アプリケーションを作成する場合、一般に、パフォーマンスを考慮して、非同期メソッドを SendAsyncSend の代わりに使用することをお勧めします。

  • インターネット リソースに対して開いている接続の数が、ネットワークのパフォーマンスやスループットに大きく影響する場合があります。 既定では、System.Net は、各ホストのアプリケーションごとに 2 つの接続を使用します。 アプリケーションの ServicePointConnectionLimit プロパティを設定すると、特定のホストでこの数を増やすことができます。 ServicePointManager.DefaultPersistentConnectionLimit プロパティを設定すると、すべてのホストでこの既定値を増やすことができます。

  • ソケット レベルのプロトコルを作成する場合は、Socketに直接書き込むのではなく、可能な限り、TcpClient または UdpClient を使用するようにしてください。 これら 2 つのクライアント クラスは TCP ソケットおよび UDP ソケットの作成をカプセル化するため、接続の詳細を処理する必要がなくなります。

  • 資格情報を必要とするサイトにアクセスする場合、要求ごとに資格情報を入力するのではなく、CredentialCache クラスを使用して資格情報のキャッシュを作成します。 CredentialCache クラスがキャッシュを検索して要求で表示する適切な資格情報を検索するため、ユーザーは URL に基づいて資格情報を作成したり、表示したりする必要がなくなります。

関連項目