今天繼續《WCF服務編程設計規範》系列,今天推薦一下另一個學習資料,並提供下載。做者是Brian Noyes,Juval Lowy 的同事。PPT資料《WCF Best Practice》,中文翻譯爲《WCF最佳實踐》。今天內容主要包含,做者介紹,資料的目錄結構,而後是翻譯的前三部:服務定義、異常處理和安全。中英文對照。分享給你們。你能夠下載英文版ppt。/Files/frank_xl/WCFBestPractices.pdf
【1】英文目錄 Contents:
WCF Best Practice
About Brian
Agenda
Service Definition
Service Exception Handling
Service Security
Service Hosting
Self Host Code
Client Proxy Classes
Client Proxy Management
Client Exception Management
Data Contracts
SOAP vs. REST
【2】中文目錄:
WCF 最佳實踐
關於Brian
大綱
服務定義
服務異常處理
服務安全
服務託管
自託管代碼
客戶端代理類
客戶端代理管理
客戶端異常管理
數據契約
SOAP和REST
【3】英文名稱:《WCF Best Practice》
中文名稱:《WCF最佳實踐》
【4】About Brian
關於Brian
l Brian Noyes
l Chief Architect, IDesign
IDesign
首席架構師
l brian.noyes@idesign.net
l Microsoft Regional Director
微軟區域總監
l Microsoft MVP Connected Systems
微軟MVP
l
Publishing
出版
Ø
Developing Applications with Windows Workflow Foundation,
Ø
LiveLessons training DVD, June 2007
Ø
Smart Client Deployment with ClickOnce, Addison Wesley,January 2007
Ø
Data Binding in Windows Forms 2.0,
Ø
Addison Wesley, January 2006
Ø
MSDN Magazine, MSDN Online,
Ø
CoDe Magazine, The Server Side .NET,
Ø
asp.netPRO, Visual Studio Magazine
l
Speaking
講座
Ø
Microsoft TechEd US, Europe, Malaysia,
Ø
Visual Studio Connections, DevTeach,
Ø
INETA Speakers Bureau, MSDN Webcasts
Ø E-mail: brian.noyes@idesign.net
Ø Blog: http://briannoyes.net
【5】Agenda
大綱
l Service Best Practices
服務最佳實踐
l Client Best Practices
客戶端最佳實踐
l Data Contracts
數據契約最佳實踐
l SOAP vs. REST
SOAP
與Rest
【6】Service Definition
服務定義
l Separate contract from implementation
契約與實現分離
Ø Contract (interface) first
契約(接口)優先
l Define services in a class library, not directly in a Host project
在類庫裏定義服務,不要在宿主項目裏定義
l Layering
分層
Ø Separate Service Layer?
劃分服務層
l Instance model
實例模型
Ø Change to Per Call as default
設置Per Call
(單調模式)爲默認值
Ø Session / Singleton when?
什麼時候使用會話/
與單例模式?
【7】Service Exception Handling
服務異常處理
l For operation specific exceptions
爲每一個操做指定異常
Ø Try/catch, throw FaultException<T>
Try/catch
,拋出FaultException<T>
l Favor using FaultException<T>
推薦使用FaultException<T>
Ø FaultException can be ambiguous to the client because unhandled exceptions arrive as a FaultException
FaultException
對於客戶端來講過於模糊,由於未處理的異常都會在客戶端表現爲FaultException
。
l Include FaultContract in service contract definition if you throw FaultExceptions
若是你要跑出異常,請在服務契約定義裏包含FaultContract
(錯誤契約)
Ø Part of the API you are exposing
就要暴露的API
的一部分
l For global exception handling from services
對於來此服務全局的異常處理
Ø Use an error handler
使用錯誤處理
l Include exception details in debug builds only
只有在調試的時候纔會包含異常的詳細信息
【8】Service Security
服務安全
l Intranet services
企業局域網(以太網)服務
Ø Default Windows Auth may be all you need
默認使用Windows
驗證
Ø Possibly Hybrid –Windows Creds / Custom Application Roles
或者使用Hybrid –Windows
憑據/
自定義Application
角色
l Extranet / Internet / Custom security needs
企業外部網絡/ Internet/
自定義安全需求
l Use ASP.NET Membership / Role providers
使用ASP.NET Membership / Role providers
l ASP.NET providers
ASP.NET providers
Ø Really a standard .NET framework security infrastructure
一個標準的.NET framework
安全基礎結構
Ø Built in providers for Windows or SQL Server – based credentials / roles
在providers
裏爲Windows
或SQL Server
內建了基於憑據/
角色的安全機制
Ø Easy to implement custom providers
容易實現自定義providers
Ø Establish principal on the thread
線程上創建principal
Ø Re-usable across ASP.NET, WCF, WPF & Windows Forms (via Client Application Services)
Ø
能夠跨越ASP.NET
、WCF
、WPF
與 Windows Forms (
經過客戶端應用程序服務)