《WCF全面解析》(上冊)- 目錄


第1章  WCF簡介 (WCF Overview)    1
   1.1  SOA的基本概念和設計思想    3
   1.2  WCF是對現有分布式通信技術的整合    4
   1.3  構建一個簡單的WCF應用    6
       步驟一、構建整個解決方案    7
       步驟二、創建服務契約    8
       步驟三  創建服務    8
       步驟四  通過自我寄宿的方式寄宿服務    9
       步驟五  創建客戶端調用服務    12
       步驟六  通過IIS寄宿服務(S104)    15 
第2章  地址(Address)    18
   2.1.    統一資源標識符(URI)    20
       2.1.1.    HTTP/HTTPS    20
       2.1.2.    NET.TCP    21
       2.1.3.    Net.Pipe    21
       2.1.4.    Net.Msmq    21
   2.2.    EndpointAddress    23
       2.2.1.    服務端終結點地址    23
       2.2.2.    客戶端終結點地址    29
       2.2.3.    地址報頭    32
   2.3.    端口共享    42
       2.3.1.    端口共享意義何在?    43
       2.3.2.    HTTP|HTTPS端口共享    43
       2.3.3.    TCP端口共享    43
   2.4.    邏輯地址與物理地址    47
       2.4.1.    服務的角色    47
       2.4.2.    監聽地址與監聽模式    48
       2.4.3.    ClientViaBehavior行為    51
       2.4.4.    實例演示:通過tcpTrace進行消息的路由(S205,S206)    53
   2.5.    請求監聽與消息分發    60
       2.5.1.    連接請求的監聽(S208)    60
       2.5.2.    消息分發    61
第3章  綁定 (Binding)    64
   3.1.    綁定模型    66
       3.1.1.    信道與信道棧    66
       3.1.2.    實例演示:直接通過綁定進行消息通信(S301)    67
       3.1.3.    WCF的綁定模型    70
   3.2.    信道與信道棧    72
       3.2.1.    CommunicationObject    72
       3.2.2.    DefaultCommunicationTimeouts    73
       3.2.3.    IChannel和ChannelBase    74
       3.2.4.    消息交換模式    75
       3.2.5.    信道形狀    76
       3.2.6.    會話信道    80
       3.2.7.    實例演示:自定義信道(S302)    81
   3.3.    信道監聽器    86
       3.3.1.    IChannelListener與ChannelListenerBase    86
       3.3.2.    信道棧的創建/使用模式    87
       3.3.3.    實例演示:自定義信道監聽器(S302)    87
   3.4.    信道工廠    90
       3.4.1.    IChannelFactory與ChannelFactoryBase    90
       3.4.2.    實例演示:自定義信道工廠(S302)    90
   3.5.    綁定元素    93
       3.5.1.    構成綁定的元素    93
       3.5.2.    實例演示:自定義綁定元素(S302)    94
   3.6.    綁定    96
       3.6.1.    綁定是綁定元素的有序集合    96
       3.6.2.    實例演示:創建自定義綁定(S302,S303)    98
       3.6.3.    系統綁定    103
       3.6.4.    自定義綁定    107
       3.6.5.    綁定配置    108 
第4章  契約 (Contracts)    111
   4.1.    多角度認識契約    113
       4.1.1.    抽象、接口與服務契約    113
       4.1.2.    元數據與服務契約    113
       4.1.3.    WSDL、XSD與服務契約    114
       4.1.4.    消息交換與服務契約    114
   4.2.    定義服務契約    115
       4.2.1.    ServiceContractAttribute    115
       4.2.2.    OperationContractAttribute    119
       4.2.3.    服務契約的繼承    125
   4.3.    契約描述    129
       4.3.1.    ContractDescription    129
       4.3.2.    OperationDescription    130
       4.3.3.    MessageDescription    131
   4.4.    消息交換模式與服務操作    136
       4.4.1.    請求-回復模式    136
       4.4.2.    單向模式    139
       4.4.3.    雙工模式    140
       4.4.4.    實例演示:通過雙工通信實現回調    141
   4.5.    多線程與異步操作    149
       4.5.1.    異步服務調用    149
       4.5.2.    異步服務實現    153 
   4.6.    操作的選擇與執行    156
       4.6.1.    DispatchOperation與ClientOperation    156
       4.6.2.    操作的選擇    157
       4.6.3.    操作的執行    158
第5章  序列化 (Serialization)    160
   5.1.    XmlSerializer    162
       5.1.1.    XmlSerializer默認的序列化規則    162
       5.1.2.    通過定制XmlSerializer控制XML結構    165
       5.1.3.    通過定制數據類型控制XML結構    166
   5.2.    數據契約    168
       5.2.1.    數據契約的本質    168
       5.2.2.    DataContractAttribute與DataMemberAttribute    169
   5.3.    DataContractSerializer    171
       5.3.1.    DataContractSerializer的序列化規則    172
       5.3.2.    如何限定序列化對象的數量?    174
       5.3.3.    如何保持對象現有的引用結構?    177
   5.4.    已知類型    181
       5.4.1.    未知類型導致序列化失敗    181
       5.4.2.    DataContractSerializer的已知類型集合    182
       5.4.3.    基於接口的序列化    183
       5.4.4.    KnownTypeAttribute    184
       5.4.5.    ServiceKnownTypeAttribute    186
   5.5.    泛型數據契約與集合數據契約    188
       5.5.1.    泛型數據契約    188
       5.5.2.    數據契約集合    191
       5.5.3.    集合數據契約    195
       5.5.4.    字典數據契約    198
   5.6.    等效數據契約    203
       5.6.1.    數據契約的等效性    203
       5.6.2.    數據成員的添加    203
       5.6.3.    數據成員的刪除    207
       5.6.4.    數據契約代理    210
   5.7.    序列化在WCF框架中的實現    214
       5.7.1.    消息格式化器    214
       5.7.2.    DataContractSerializer還是XmlSerializer?    215
       5.7.3.    實例演示:通過自定義消息格式化器壓縮消息(S521)    217
第6章  消息 (Message)    225
   6.1.    SOAP與WS-Addressing    227
       6.1.1.    SOAP    227
       6.1.2.    WS-Addressing    227
   6.2.    消息    230
       6.2.1.    消息版本    230
       6.2.2.    如何創建消息    232
       6.2.3.    消息的基本操作    238
   6.3.    消息報頭與消息屬性    243
       6.3.1.    MessageHeaderInfo    243
       6.3.2.    MessageHeader    244
       6.3.3.    MessageHeader<T>    245
       6.3.4.    MessageHeaders    245
       6.3.5.    消息屬性    248
       6.3.6.    實例演示:通過消息報頭和消息屬性實現上下文信息的傳播(S612)    251
   6.4.    消息契約    255
       6.4.1.    MessageContractAttribute    255
       6.4.2.    MessageHeaderAttribute    258
       6.4.3.    MessageBodyMemberAttribute    258
       6.4.4.    消息契約與操作    258
   6.5.    XML編碼    262
       6.5.1.    XmlDictionary    262
       6.5.2.    XmlDictionaryWriter    264
       6.5.3.    XmlDictionaryReader    270
   6.6.    消息編碼    272
       6.6.1.    消息編碼器    272
       6.6.2.    消息編碼器工廠    273
       6.6.3.    消息編碼綁定元素    273
       6.6.4.    消息編碼與綁定    274
       6.6.5.    消息編碼的實現    277
       6.6.6.    實例演示:通過自定義消息編碼器實現消息壓縮(S620)    277
第7章  服務寄宿 (Hosting)    285
   7.1.    服務描述    287
       7.1.1.    ServiceDescription    287
       7.1.2.    WCF的四大行為    289 
   7.2.    ServiceHost    293
       7.2.1.    服務描述的創建(S701)    293
       7.2.2.    運行時框架體系的構建    299
       7.2.3.    服務的批量寄宿(S702)    302
       7.2.4.    自定義ServiceHost(S703)    305
   7.3.    IIS與ASP.NET架構設計    308
       7.3.1.    IIS 5.x與ASP.NET    308
       7.3.2.    IIS 6.0與ASP.NET    309
       7.3.3.    IIS 7.0與ASP.NET    310
       7.3.4.    ASP.NET管道    313
   7.4.    IIS寄宿    317
       7.4.1.    .svc文件    318
       7.4.2.    實例演示:如何使用自定義ServiceHost(S704)    319
       7.4.3.    ASP.NET並行模式    320
       7.4.4.    ASP.NET兼容模式    325
       7.4.5.    非HTTP協議寄宿    328
   7.5.    Windows 服務寄宿(S708)    332
第8章  客戶端 (Client)    338
   8.1.    一個精簡版的WCF框架    340
       8.1.1.    從透明代理和真實代理說起    340
       8.1.2.    服務代理的真實代理是什么?    341
       8.1.3.    服務調用的大致流程    342
       8.1.4.    實例演示:創建一個WCF框架模擬程序(S801)    343
   8.2.    ChannelFactory<TChannel>    353
       8.2.1.    終結點是ChannelFactory<TChannel>的核心    353
       8.2.2.    一個特殊的信道工廠    353
       8.2.3.    ChannelFactory<TChannel>的開啟    354
   8.3.    服務代理    357
       8.3.1.    服務代理的創建    357
       8.3.2.    四個重要的接口    358
       8.3.3.    服務調用    360
   8.4.    ClientBase<TChannel>    363
       8.4.1.    ClientBase<TChannel>與ChannelFactory<TChannel>    363
       8.4.2.    ChannelFactory<TChannel>緩存機制    364
   8.5.    服務代理關閉與中止    367
       8.5.1.    沒有關閉服務代理會帶來怎樣的后果?    367
       8.5.2.    數據報信道與會話信道    369
       8.5.3.    服務代理、ChannelFactory<TChannel>和ClientBase<TChannel>的關閉    369
       8.5.4.    服務代理的中止    371
       8.5.5.    通過RealProxy實現服務代理的自動關閉和中止(S810)    374
       8.5.6.    通過委托實現服務代理的自動關閉和中止(S811)    376
第9章  實例管理與會話 (Instancing and Sessions)    380
   9.1.    實例上下文與實例上下文模式    382
       9.1.1.    實例上下文    382
       9.1.2.    實例上下文模式    383
       9.1.3.    實例服務行為    384
       9.1.4.    實例上下文提供者與實例提供者    385
       9.1.5.    實例上下文提供機制    386
   9.2.    單調模式    388
       9.2.1.    實例演示:單調模式下實例的創建與回收(S901)    388
       9.2.2.    單調模式實例上下文提供機制    389
       9.2.3.    實例演示:通過自定義實例上下文提供者實現單調模式(S902)    389
       9.2.4.    單調模式與可伸縮性    391
   9.3.    單例模式    393
       9.3.1.    已知單例和隱式單例    393
       9.3.2.    實例演示:單例模式下實例的創建與回收(S903)    393
       9.3.3.    單例模式實例上下文提供機制    395
       9.3.4.    實例演示:通過自定義實例上下文提供者實現單例模式(S904)    395
       9.3.5.    單例模式下的並發與同步    397
   9.4.    會話    399
       9.4.1.    客戶端識別機制    399
       9.4.2.    會話契約    399
       9.4.3.    會話綁定    404
   9.5.    會話模式    406
       9.5.1.    實例演示:會話模式下實例的創建與回收(S910)    406
       9.5.2.    會話模式實例上下文提供機制    406
       9.5.3.    實例演示:通過自定義提供者會話模式(S911)    408
       9.5.4.    會話實例上下文模式與可伸縮性    410
   9.6.    會話模式、綁定與實例上下文模式    412
       9.6.1.    單調服務決定於單調實例上下文模式    412
       9.6.2.    單例服務決定於單例實例上下文模式    414
       9.6.3.    會話服務決定於會話信道(棧)和會話實例上下文模式    414
第10章 REST 服務(REST Service)    418
   10.1.    Web、REST和WCF REST    420
       10.1.1.    Web如此簡單    420
       10.1.2.    REST是什么?    421
       10.1.3.    WCF REST    423
   10.2.    Web HTTP編程模型模型    431
       10.2.1.    WebHttpBinding    431
       10.2.2.    WebGetAttribute與WebInvokeAttribute    434
       10.2.3.    WebHttpBehavior    439
       10.2.4.    WebServiceHost與WebServiceHostFactory    444
       10.2.5.    WebOperationContext    446
       10.2.6.    WebFaultException與WebFaultException<T>    447
   10.3.    URI模板    449
       10.3.1.    URI模板    449
       10.3.2.    UriTemplate    450
       10.3.3.    UriTemplateTable    451
       10.3.4.    WebHttpDispatchOperationSelector    452 
   10.4.    消息格式化    456
       10.4.1.    客戶端消息格式化    456
       10.4.2.    服務端消息格式化    467
   10.5.    輸出緩存與條件獲取/更新    469
       10.5.1.    輸出緩存    469
       10.5.2.    條件獲取    472
       10.5.3.    條件更新    476
第11章  WCF實例研究 (WCF in Practice)    480
   11.1.    VM簡介    482
       11.1.1.    基本功能    482
       11.1.2.    物理部署    484
       11.1.3.    模塊划分    485
       11.1.4.    層次設計    486
       11.1.5.    IoC的應用    489
       11.1.6.    AOP的應用    493
       11.1.7.    身份認證    494
       11.1.8.    異常處理    499
   11.2.    模塊設計    503
       11.2.1.    數據庫設計    503
       11.2.2.    Products模塊    505
       11.2.3.    Orders模塊    514
       11.2.4.    Infrastructure模塊    518
   11.3.    ASP.NET MVC項目    522
       11.3.1.    IoC集成    522
       11.3.2.    異常處理    523
       11.3.3.    AccountController    524
       11.3.4.    ProductsController    526
       11.3.5.    OrdersController    528


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM