System.Net クラスのベスト プラクティスBest Practices for System.Net Classes

次の推奨事項は、System.Net に含まれるクラスを最大限に活用するのに役立ちます。The following recommendations will help you use the classes contained in System.Net to their best advantage:

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

  • 派生クラスに型キャストするのではなく、可能な限り、WebRequest および WebResponse を使用します。Use WebRequest and WebResponse whenever possible instead of type casting to descendant classes. WebRequestWebResponse を使用するアプリケーションでは、コードを大幅に変更せずに新しいインターネット プロトコルを利用できます。Applications that use WebRequest and WebResponse can take advantage of new Internet protocols without needing extensive code changes.

  • System.Net クラスを使用するサーバー上で実行する ASP.NET アプリケーションを作成する場合、一般に、パフォーマンスを考慮して、非同期メソッドを GetResponse および GetResponseStream に対して使用することをお勧めします。When writing ASP.NET applications that run on a server using the System.Net classes, it is often better, from a performance standpoint, to use the asynchronous methods for GetResponse and GetResponseStream.

  • インターネット リソースに対して開いている接続の数が、ネットワークのパフォーマンスやスループットに大きく影響する場合があります。The number of connections opened to an Internet resource can have a significant impact on network performance and throughput. 既定では、System.Net は、各ホストのアプリケーションごとに 2 つの接続を使用します。System.Net uses two connections per application per host by default. アプリケーションの ServicePointConnectionLimit プロパティを設定すると、特定のホストでこの数を増やすことができます。Setting the ConnectionLimit property in the ServicePoint for your application can increase this number for a particular host. ServicePointManager.DefaultPersistentConnectionLimit プロパティを設定すると、すべてのホストでこの既定値を増やすことができます。Setting the ServicePointManager.DefaultPersistentConnectionLimit property can increase this default for all hosts.

  • ソケット レベルのプロトコルを作成する場合は、Socketに直接書き込むのではなく、可能な限り、TcpClient または UdpClient を使用するようにしてください。When writing socket-level protocols, try to use TcpClient or UdpClient whenever possible instead of writing directly to a Socket. これら 2 つのクライアント クラスは TCP ソケットおよび UDP ソケットの作成をカプセル化するため、接続の詳細を処理する必要がなくなります。These two client classes encapsulate the creation of TCP and UDP sockets without requiring you to handle the details of the connection.

  • 資格情報を必要とするサイトにアクセスする場合、要求ごとに資格情報を入力するのではなく、CredentialCache クラスを使用して資格情報のキャッシュを作成します。When accessing sites that require credentials, use the CredentialCache class to create a cache of credentials rather than supplying them with every request. CredentialCache クラスがキャッシュを検索して要求で表示する適切な資格情報を検索するため、ユーザーは URL に基づいて資格情報を作成したり、表示したりする必要がなくなります。The CredentialCache class searches the cache to find the appropriate credential to present with a request, relieving you of the responsibility of creating and presenting credentials based on the URL.

関連項目See also