Bonnes pratiques pour les classes System.Net

Les recommandations suivantes vous aideront à utiliser les classes contenues dans System.Net de la manière la plus adéquate :

  • Pour connaître les bonnes pratiques d’utilisation de TLS, consultez Bonnes pratiques du protocole TLS (Transport Layer Security) avec .NET Framework.

  • Utilisez HttpClient pour envoyer des requêtes HTTP au lieu de WebRequest, qui a été déclaré obsolète dans .NET 6. Dans .NET Framework, créez une instance HttpClient chaque fois que vous devez envoyer une requête. (Les instructions pour .NET 5+/.NET Core sont plus nuancées. Pour plus d’informations, consultez Instructions pour l’utilisation de HttpClient.)

  • Lors de l’écriture d’applications ASP.NET qui s’exécutent sur un serveur en utilisant les classes System.Net, il est souvent préférable, du point de vue des performances, d’utiliser la méthode asynchrone SendAsync à la place de Send.

  • Le nombre de connexions ouvertes sur une ressource Internet peut avoir un impact significatif sur les performances du réseau et le débit. System.Net utilise deux connexions par application et par hôte par défaut. La définition de la propriété ConnectionLimit dans ServicePoint pour votre application peut augmenter ce nombre pour un hôte particulier. La définition de la propriété ServicePointManager.DefaultPersistentConnectionLimit peut augmenter cette valeur par défaut pour tous les hôtes.

  • Quand vous écrivez des protocoles de niveau socket, essayez dans la mesure du possible d’utiliser TcpClient ou UdpClient au lieu d’écrire directement dans un Socket. Ces deux classes clientes encapsulent la création de sockets TCP et UDP sans qu’il vous soit nécessaire de gérer les détails de la connexion.

  • Lors de l’accès à des sites qui nécessitent des informations d’identification, utilisez la classe CredentialCache pour créer un cache d’informations d’identification, plutôt que de les fournir avec chaque requête. La classe CredentialCache recherche dans le cache les informations d’identification appropriées à présenter avec une requête, ce qui vous évite d’avoir à créer et à présenter des informations d’identification basées sur l’URL.

Voir aussi