System.Net 類別的最佳實施方針
以下建議將協助您將包含在 System.Net 中的類別發揮到最大效益:
- 儘可能使用 WebRequest 和 WebResponse,而不是將型別轉換為子代 (Descendant) 類別。使用 WebRequest 和 WebResponse 的應用程式,不需要大規模的程式碼變更,即可利用新的 Internet 通訊協定 (Protocol)。
- 撰寫使用 System.Net 類別在伺服器上執行的 ASP.NET 應用程式時,最好從效能的觀點,針對 GetResponse 和 GetResponseStream 使用非同步的 (Asynchronous) 方法。
- 對網際網路資源所開啟的連接數,對網路效能和輸送量有極大的影響。在預設的情況下,System.Net 對於每台主機的每個應用程式都使用兩條連接。為您的應用程式設定 ServicePoint 中的 ConnectionLimit 屬性,可增加特定主機的這個數量。設定 ServicePointManager.DefaultPersistentConnectionLimit 屬性,可增加所有主機的這個預設值。
- 撰寫通訊端 (Socket) 層級的通訊協定時,儘可能使用 TCPClient 或 UDPClient,而不要直接寫入 Socket。這兩種用戶端類別可封裝 TCP 和 UDP 通訊端的建立,不需要您處理連接的詳細資料。
- 當存取需要憑證的站台時,應使用 CredentialCache 類別來建立憑證快取,而不需要在每次要求時提供。CredentialCache 類別會搜尋快取以找出適當的憑證和要求一起提出,減輕您根據 URL 建立和提出憑證的責任。