首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WCF 服務設計規範(二):序言、通用設計準則與設計要點詳解

     編輯:關於.NET

序言

完整編碼規範對專案成功至關重要。它強化最佳實踐、避免錯誤、利於團隊知識傳承。傳統規範動輒百頁、理論冗長,開發人員難以內化。Juval Lowy 的《WCF 編碼標準》僅十餘頁,直指「是什麼」與「為什麼」。深刻理解每條規則需大量閱讀與多年經驗,新人入職前可先遵守規範,再逐步領會精髓。本文件涵蓋常用規則、缺陷避坑、指南與建議,並引用《WCF Master Class》與《Programming WCF Services》中的最佳實踐與輔助類別。

通用設計準則

所有服務必須遵守

  • 服務安全
  • 操作讓系統保持一致狀態
  • 執行緒安全、支援並發用戶端
  • 服務可靠
  • 服務健壯

服務可選擇遵守

  • 跨平台互通
  • 規模不變性(可伸縮)
  • 高可用性
  • 快速回應
  • 規律運作、不長時間阻塞用戶端

設計要點

  1. 服務代碼置於類別庫,而非宿主 EXE:利於重用與測試。
  2. 服務類別不提供參數化建構函數,除非為明確宿主的單例。
  3. 相關繫結啟用可靠傳輸。
  4. 契約賦予有意義命名空間:對外服務用公司 URL + 年月(如 https://www.idesign.net/2009/06);內網用唯一名稱(如 MyApplication)。
  5. 內網應用 WAS 不可用時,優先自宿主而非 IIS。
  6. 不可混用具名繫結與預設繫結:要麼全顯式引用,要麼全用預設。
  7. 同理不可混用具名行為與預設行為。
  8. 用戶端組態檔中所有端點必須命名。
  9. 勿用 SvcUtil 或 VS2010 產生組態檔:工具預設值(逾時、訊息大小等)藏藏部署風險,應手動調整。
  10. 工具產生 Proxy 後務必清理:實作 IDisposable 釋放非託管資源。
  11. 勿重複 Proxy 代碼:多用戶端共用契約時,將 Proxy 提煉至獨立類別庫(DLL)供引用。
  12. 永遠關閉或銷毀 Proxy:Close() 或 using 區塊,釋放網路連線等寶貴資源。
  13. 使用服務發現時優先動態位址:發揮動態定位優勢。
  14. 服務發現需暴露 TCP 中繼資料交換端點:適用內網 Ad-Hoc 模式,提速。
  15. 服務發現避免不確定基數:明確指定 FindCriteria.MaxResults = 1。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved