服務工廠開發哲學
- p&p 團隊採開放迭代開發:定期發布 CTP、社群回饋直接影響下版本
- 參考實作驗證最佳實踐,發現遺漏模式
- ASMX 版已發布,WCF 版開發中 (GotDotNet 社群預覽版)
WCF 指導包快速上手
- 安裝後 VS「新增專案」現 WCF 服務範本
- 初始方案結構四大專案:
DataContracts、FaultContracts、ServiceContracts、ServiceImplementation
- 服務主機置於
Tests 資料夾
- 可解鎖重組結構、重新指派專案職責
指導導航器提供的自動化方案

數據約定
- 從 XSD 生成:
DataContractSerializer 支援子集,超集自動降級 XmlSerializer
- 嚮導建立:指定類別名、XML 名稱/命名空間、成員 Order/IsRequired
- 裝飾現有類別:自動加
[DataContract] 屬性
- 驗證:檢查可序列化性
[DataContract(Namespace="...", Name="WinePreference")]
public class WinePreference {
[DataMember(Name="Country", Order=1)] public string Country { get; set; }
// ...
}
訊息約定
- SOAP 訊息結構完全控制:Header/Body、是否展開
- 可重用型別用 DataContract,單一請求/回應用 MessageContract
- 嚮導生成
[MessageContract]、[MessageHeader]、[MessageBodyMember]
錯誤約定
- 自定義 SOAP Fault 使用 DataContract 定義細節
[FaultContract] 標註操作,產生 WSDL 包含錯誤資訊
- 客戶端可用
FaultException 捕獲強型別異常
- 提供
DefaultFaultContract 基類 (ErrorId, ErrorMessage, CorrelationId)
[DataContract] public class RegistrationError : DefaultFaultContract {
[DataMember] public string RegistrationDetails { get; set; }
}
服務約定與實作
- 從 WSDL 生成:支援 WSDL 驅動開發
- 嚮導建立:介面名、約定名/命名空間、Session 支援
- 操作層級指定 Action、請求/回應型別、錯誤型別、Session 細節
- 實作介面:生成骨架類別,拋
NotImplementedException
- 轉換器:訊息型別 ↔ 業務實體型別轉換代碼生成
發布端點
- 公開服務嚮導:指定實作類別、綁定類型 (basicHttpBinding/WSHttpBinding)
- 自動生成 .svc、web.config
<system.serviceModel>
- 預設啟用 MEX 端點、HTTP GET 元資料
- 客戶端「新增服務參考」自動生成 Proxy
...
WCF 安全性指導包:企業級安全自動化

- 啟用後專案右鍵選單現「服務工廠 - 安全性」
- 涵蓋:Windows 帳戶/SQL Server/ADAM 身分存儲、Kerberos/直接認證、匿名+伺服器憑證
- 嚮導自動化:端點/綁定/行為、伺服器憑證、訊息保護等級、角色提供者
- 生成 web.config 即用
- 客戶端「新增服務參考」自動導入安全設定
安全性選項治理:架構師的管控桿
修改可用安全設定
- 方案右鍵 → 服務工廠 - 安全性 → 修改安全性設定
- 勾選允許的認證類型 (如僅 Kerberos/X.509)
- 限制訊息保護等級 (如僅簽名/加密)
- 生成
SecurityConfiguration.xml 綁定方案
互操作性導向約束
- 修改互操作設定嚮導
- 選擇目標平台:WSE 3.0、BEA WebLogic 9.2 等
- 自動過濾雙方支援的安全規範子集
- 確保生成的服務能被目標客戶端正確調用
高階自訂:打造組織專屬指導包
- GAT (Guidance Automation Toolkit) 開發自訂指導包
- 文件:
How to: Create a New Guidance Package that Includes your Configuration Settings
- 結合 p&p 通用方案 + 領域特有方案 → 生產力/品質/一致性/可預測性提升
未來展望
- 約定設計/版本控制/訊息驗證/部署/大訊息處理指導
- 工作流整合 WCF 服務實作模式
- 安全性配置驗證工具 (類 WSE Policy Advisor)
查詢 GotDotNet 服務工廠社群參與回饋:practices.gotdotnet.com/svcfactory