Najlepsze rozwiązania dotyczące klas System.NetBest Practices for System.Net Classes

Poniższe zalecenia ułatwią korzystanie z klas zawartych w programie w System.Net celu uzyskania najlepszej korzyści:The following recommendations will help you use the classes contained in System.Net to their best advantage:

  • W przypadku najlepszych rozwiązań Transport Layer Security (TLS) zobacz Transport Layer Security (TLS) Best Practices with .NET Framework.For Transport Layer Security (TLS) best practices, see Transport Layer Security (TLS) best practices with .NET Framework.

  • Używaj WebRequest i WebResponse wszędzie tam, gdzie to możliwe, zamiast typu rzutowania na klasy podrzędne.Use WebRequest and WebResponse whenever possible instead of type casting to descendant classes. Aplikacje korzystające z WebRequest i WebResponse mogą korzystać z nowych protokołów internetowych bez konieczności wprowadzania szczegółowych zmian w kodzie.Applications that use WebRequest and WebResponse can take advantage of new Internet protocols without needing extensive code changes.

  • Podczas pisania aplikacji ASP.NET, które działają na serwerze przy użyciu klas System.NET , często są one lepsze od punktu widzenia wydajności, aby użyć metod asynchronicznych dla GetResponse i 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.

  • Liczba połączeń otwartych w ramach zasobu internetowego może mieć znaczny wpływ na wydajność sieci i przepływność.The number of connections opened to an Internet resource can have a significant impact on network performance and throughput. System.NET domyślnie używa dwóch połączeń dla każdej aplikacji na hosta.System.Net uses two connections per application per host by default. Ustawienie ConnectionLimit właściwości w ServicePoint aplikacji może zwiększyć ten numer dla określonego hosta.Setting the ConnectionLimit property in the ServicePoint for your application can increase this number for a particular host. Ustawienie ServicePointManager.DefaultPersistentConnectionLimit właściwości może zwiększyć wartość domyślną dla wszystkich hostów.Setting the ServicePointManager.DefaultPersistentConnectionLimit property can increase this default for all hosts.

  • Podczas pisania protokołów na poziomie gniazda, spróbuj użyć TcpClient lub, UdpClient Jeśli to możliwe, zamiast pisać bezpośrednio do Socket .When writing socket-level protocols, try to use TcpClient or UdpClient whenever possible instead of writing directly to a Socket. Te dwie klasy klienckie hermetyzują tworzenie gniazd TCP i UDP bez konieczności obsługi szczegółów połączenia.These two client classes encapsulate the creation of TCP and UDP sockets without requiring you to handle the details of the connection.

  • Podczas uzyskiwania dostępu do witryn, które wymagają poświadczeń, należy użyć CredentialCache klasy do utworzenia pamięci podręcznej poświadczeń, a nie dostarczenia ich do każdego żądania.When accessing sites that require credentials, use the CredentialCache class to create a cache of credentials rather than supplying them with every request. Klasa CredentialCache przeszukuje pamięć podręczną, aby znaleźć odpowiednie poświadczenia do zaprezentowania z żądaniem, co uwalnia z odpowiedzialności za tworzenie i prezentowanie poświadczeń na podstawie adresu 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.

Zobacz teżSee also