16
Bài 1 GII THIU TNG QUAN VWINDOWS COMMUNICATION FOUNDATION 1. Mc lc 2. Windows Communication Foundation (WCF) là gì? ........................................................................................2 3. Tại sao sử dụng WCF? ......................................................................................................................................2 4. Kiến trúc của WCF ............................................................................................................................................3 4.1 Các contracts (Các hiệp nghị) ....................................................................................................3 4.2 Runtime service (Dịch vụ thực thi)...............................................................................................4 4.3 Message (Bản tin) .........................................................................................................................5 4.4 Host and activation (Chứa và kích hoạt) ......................................................................................5 5. Các tính năng của WCF .....................................................................................................................................6 5.1 Transaction (Giao dịch) ................................................................................................................6 5.2 Host (Chứa) ..................................................................................................................................6 5.3 Bảo mật .........................................................................................................................................6 6. Công cụ phát triển với WCF ..............................................................................................................................7 7. Ví dụ đầu tiên với WCF.....................................................................................................................................7 8. Sử dụng công cụ WCF Test Client để debug dịch vụ WCF ............................................................................13 9. Tài liệu tham khảo ...........................................................................................................................................15

WCF Lesson 1

Embed Size (px)

DESCRIPTION

Giao trinh WCF

Citation preview

  • Bi 1

    GII THIU TNG QUAN V

    WINDOWS COMMUNICATION FOUNDATION

    1. Mc lc

    2. Windows Communication Foundation (WCF) l g? ........................................................................................ 2

    3. Ti sao s dng WCF? ...................................................................................................................................... 2

    4. Kin trc ca WCF ............................................................................................................................................ 3 4.1 Cc contracts (Cc hip ngh) ....................................................................................................3

    4.2 Runtime service (Dch v thc thi) ...............................................................................................4

    4.3 Message (Bn tin) .........................................................................................................................5

    4.4 Host and activation (Cha v kch hot) ......................................................................................5

    5. Cc tnh nng ca WCF ..................................................................................................................................... 6 5.1 Transaction (Giao dch) ................................................................................................................6

    5.2 Host (Cha) ..................................................................................................................................6

    5.3 Bo mt .........................................................................................................................................6

    6. Cng c pht trin vi WCF .............................................................................................................................. 7

    7. V d u tin vi WCF ..................................................................................................................................... 7

    8. S dng cng c WCF Test Client debug dch v WCF ............................................................................ 13

    9. Ti liu tham kho ........................................................................................................................................... 15

  • Microsoft Vietnam DPE Team | Bi 1: Gii thiu tng quan v WCF 2

    Bi ny gii thiu tng quan v cng ngh Windows Communication Foundation

    (WCF). Phn u ni v nhng cng ngh c trin khai trn th gii nhm gii quyt vn

    lin lc gia my tnh vi my tinh v nhng kh khn thch thc trong vic trin khai cc

    cng ngh trn. T dn n s ra i ca cng ngh nn tng WCF, l nn tng thng nht

    cho vic xy dng nhanh cc ng dng cn giao tip. Sau s gii thiu c bn v kin trc

    ca WCF, nhng thnh phn hp thnh WCF. Phn cui s gii thiu cc cng c cn thit

    xy dng ng dng vi WCF cng vi mt v d n gin vi WCF hc vin d hnh dung.

    2. Windows Communication Foundation (WCF) l g?

    WCF l cng ngh nn tng nhm thng nht nhiu m hnh lp trnh giao tip c h

    tr trong .NET 2.0 thnh mt m hnh duy nht. Vo thng 11 nm 2005, .NET 2.0 c

    Microsoft pht hnh trong c cung cp cc hm API ring bit cho cc lin lc da trn

    SOAP ti a ho s lm vic gia cc nn tng s dng Web Services, ng thi .NET 2.0

    cn cung cp cc API ti u vic lin lc da trn m nh phn gia cc ng dng chy trn

    h thng Windows gi l .NET Remoting, cc API cho cc giao dch phn tn, v API cho lin

    lc d b. WCF thng nht cc API ny thnh mt m hnh duy nht nhm p ng m hnh lp

    trnh hng dch v.

    WCF c th s dng cc bn tin SOAP gia hai tin trnh, do lm cho cc ng dng

    da trn WCF c th lm vic vi cc tin trnh khc thng qua vic giao tip s dng bn tin

    SOAP. Khi mt tin trnh WCF lin lc vi mt tin trnh khng l WCF, cc bn tin SOAP

    c m ho trn c s XML, nhng khi n lin lc vi mt tin trnh WCF khc, bn tin SOAP

    c th c ti u ho da trn m ho nh phn.

    3. Ti sao s dng WCF?

    Nh phn trn trnh by, .NET 2.0 h tr rt nhiu phng php lin lc gia cc ng

    dng khc nhau nhm vo cc mc tiu khc nhau. Cc phng php lin lc ny kh phc tp

    v phi mt nhiu thi gian lm ch c cng ngh. Tuy nhin kin thc thu c t vic

    trin khai mt phng php t c kh nng dng c khi lm vic vi phng php khc.

    Vi vic ra i ca WCF, mi phng php lin lc trc kia u c th thc hin trn

    WCF. Do vy nh pht trin ch cn lm ch c cng ngh WCF l c th xy dng cc ng

    dng mt cch nhanh chng.

    WCF l mt m hnh lp trnh cho php nh pht trin xy dng cc gii php dch v

    m bo tnh n nh, v bo mt v thm ch l m bo giao dch. N lm n gin ho vic

  • Microsoft Vietnam DPE Team | Bi 1: Gii thiu tng quan v WCF 3

    pht trin cc ng dng ni kt v a ra cho nh pht trin nhng gi tr m c th h cha

    nhn ra ngay, l cch tip cn pht trin h thng phn tn thng nht, n gin, v qun l

    c.

    Do WCF c xy dng trn c s ca .NET Framework 2.0 CLR, n l tp cc lp cho

    php cc nh pht trin xy dng cc ng dng hng dch v bng mi trng lp trnh quen

    thuc ca h nh VB.NET hay C#

    4. Kin trc ca WCF

    Hnh sau m t cc lp ch yu trong kin trc ca Windows Communication

    Foundation (WCF)

    Figure 1 Kin trc ca WCF (hnh nh t www.microsoft.com)

    4.1 Cc contracts (Cc hip ngh)

    Cc contract trong WCF cng ging nh cc hp ng/hip nh m bn k trong i

    sng tht. Mt hp ng bn k c th cha cc thng tin nh kiu cng vic bn s lm, v

    nhng thng tin m bn mun a ra cho cc bn khc. WCF contract cng cha cc thng tin

    tng t nh vy. Contract nh ngha cc c t trong h thng bn tin.Thng thng c cc

    loi contract sau:

  • Microsoft Vietnam DPE Team | Bi 1: Gii thiu tng quan v WCF 4

    Contract d liu m t cc tham s cho cc bn tin m mt dch v c th

    to ra hay s dng. Cc tham s bn tin c nh ngha bng cc ti liu s dng ngn

    ng c t XML Schema (XSD), iu ny cho php cc h thng hiu XML c th x l

    ti liu d dng. Cc dch v khi lin lc vi nhau c th khng cn ng vi nhau v

    cc kiu, nhng cn ng v contract d liu, ngha l ng v cc tham s v cc

    kiu tr v.

    Contract bn tin nh ngha cc phn c trong bn tin s dng cc giao

    thc SOAP, v n cho php iu khin su hn ti cc phn trong bn tin khi c yu cu

    s chnh xc nh vy.

    Contract dch v c t chi tit cc phng thc ca dch v, v c

    phn phi nh l mt giao din trong cc ngn ng lp trnh nh Visual Basic hay Visual

    C#. C th hnh dung v contract dch v mt cch gin tip nh sau: y l cc kiu d

    liu ca cc bn tin ca ti, y l ni ti cung cp, v y l cc giao thc m ti c th

    lin lc

    Cc chnh sch v cc kt ni (bindings) m t cc iu kin cn c

    giao tip vi mt dch v. Cc chnh sch s bao gm c cc yu cu v bo mt v cc

    iu kin khc cn phi c khi kt ni vi mt dch v.

    4.2 Runtime service (Dch v thc thi)

    Lp dch v thc thi cha cc hnh x s xy ra trong qu trnh thc hin ca dch v,

    ngha l cc hnh x thc thi ca dch v. Ta s thy mt s cc hnh x nh sau:

    Throttling behavior: iu khin lung nhm quy nh xem c bao nhiu

    bn tin c x l

    Error behavior: Hnh x li quy nh nhng hnh ng khi li xy ra

    trong h thng

    Metadata behavior: Hnh x vi cc siu d liu quy nh xem lm th

    no v khi no th cc siu d liu c a ra bn ngoi dch v

    Instance behavior: Hnh x thc th quy nh xem c bao nhiu thc th

    ca dch v c chy

    Transaction behavior: Hnh x giao dch cho php vic rollback cc

    giao dch nu xy ra li

  • Microsoft Vietnam DPE Team | Bi 1: Gii thiu tng quan v WCF 5

    Message inspection: Kim tra bn tin em li cho dch v kh nng kim

    tra tt c hay mt s phn ca bn tin

    Dispatch behavior: Khi mt bn tin c x l bi nn tng WCF, dch

    v Dispatch behavior xc nh xem bn tin c x l nh th no.

    Concurrency behavior: Hnh x ng thi xc nh xem vic x l th

    no vi vic a lung ca mi dch v hay mi thc th ca dch v. Hnh x ny gip

    cho vic iu khin s lng lung c th truy nhp ti mt thc th ca dch v.

    Parameter filtering: Khi mt bn tin c a ti mt dch v, s xy ra

    mt s hnh ng da trn ni dung phn u ca bn tin. Phn lc tham s s thc

    hin lc cc u bn tin v thc hin cc hnh ng t sn da trn vic lc u

    bn tin.

    4.3 Message (Bn tin)

    Lp bn tin l tp hp cc knh. Mi knh l mt thnh phn x l bn tin theo mt cch

    no . Mt tp cc knh thng c gi l ngn xp knh. Cc knh lm vic trn bn tin v

    trn u ca bn tin. Lp ny khc vi lp thc thi dch v ch yu bi s khc nhau trong

    vic x l ni dung bn tin.

    C hai knh khc nhau l knh vn chuyn (transport channel) v knh iu khin

    (control channel).

    Knh vn chuyn ph trch vic c v ghi cc bn tin t mng (network)

    hoc t mt s im giao dch bn ngoi)

    Knh iu khin thc hin x l bn tin theo giao thc, thng thng lm

    vic bng cch c v ghi thm cc u cho bn tin.

    4.4 Host and activation (Cha v kch hot)

    Nhn mt cch tng th th mt dch v thc cht l mt chng trnh. Cng ging nh

    cc chng trnh khc, mt dch v cn phi chy trong mt tp thc thi. Dch v ny thng

    c gi l dch v t cha.

    Cc dch v cn c th c cha, hoc chy trong mt tp thc thi c qun l bi

    mt agent bn ngoi nh IIS hay Windows Activation Services (WAS). WAS cho php WCF

    c kch hot mt cch t ng khi phn phi ti mt my tnh c chy WAS.

  • Microsoft Vietnam DPE Team | Bi 1: Gii thiu tng quan v WCF 6

    5. Cc tnh nng ca WCF

    WCF c nhiu tnh nng v s c m t chi tit trong ton b kho hc. Mc ny ch

    nhm mc ch tho lun mt s tnh nng ca WCF. Danh sch cc tnh nng y khng phi

    l danh sch hon chnh, m ch hy vng l danh sch cc tnh nng nh nht.

    5.1 Transaction (Giao dch)

    Mt giao dch l mt n v ca cng vic. Mt giao dch m bo chc chn rng mi

    th din ra trong giao dch thnh cng hay tht bi u l kt qu tng th. V d, nu mt giao

    dch cha ba mc cng vic cn thc hin, trong qu trnh thc hin giao dch, mt trong s cc

    mc b tht bi, khi c ba mc s l tht bi. Giao dch ch thnh cng khi c ba mc cng

    vic u thnh cng. Giao dch thng thy trong cc thao tc vi c s d liu.

    WCF cho php a vo vic x l giao dch nh trn vi cc lin lc. Nh pht trin c

    th nhm cc lin lc vi nhau thnh cc giao dch. mc doanh nghip, tnh nng ny cho

    php bn thc hin cc cng vic giao dch qua cc nn tng khc nhau.

    5.2 Host (Cha)

    WCF cho php cc dch v c cha trong mt s ln cc mi trng khc nhau, nh

    Windows NT Services, Windows Forms, v ng dng console, cng nh trn IIS (Internet

    Information Server) v WAS (Windows Activation Services).

    Cha ng dng trn IIS cn c thm cc li im khc l dch v c th nhn cc u

    im ca rt nhiu tnh nng c sn trn IIS, v d IIS c th iu khin mt cch t ng vic

    bt u hay kt thc mt dch v.

    5.3 Bo mt

    Bo mt l tnh nng khng th thiu trong WCF ni ring v trong lin lc ni chung.

    Trong WCF, tt c mi th t cc bn tin ti cc client hay server u phi xc thc v WCF c

    tnh nng m bo rng cc bn tin khng b ln trong qu trnh vn chuyn. WCF bao gm

    vic m bo tnh ton vn v bo mt ca bn tin.

    WCF cn cho php bn tch hp ng dng ca bn vi c s h tng bo mt sn c, bao

    gm c cc chun bn ngoi mi trng Windows bng cch s dng cc bn tin SOAP bo

    mt.

  • Microsoft Vietnam DPE Team | Bi 1: Gii thiu tng quan v WCF 7

    6. Cng c pht trin vi WCF

    pht trin ng dng vi WCF ta cn cc phn mm sau:

    .NET Framework 3.5. Hc vin c th ti v b ci ca .NET

    Framework 3.5 ti trang web ca Microsoft. a ch nh sau:

    http://www.microsoft.com/downloads/details.aspx?familyid=ab99342f-5d1a-413d-8319-

    81da479ab0d7&displaylang=en

    Microsoft Visual Studio 2008. Bn dng th c th ti v y:

    http://msdn.microsoft.com/en-us/visualc/aa700831.aspx

    Hoc Microsoft Visual Studio Express Editions. a ch ti v:

    http://www.microsoft.com/express/

    7. V d u tin vi WCF

    Xy dng ng dng vit ch Hello World ra mn hnh s dng WCF. Cc bc lm vic

    nh sau:

    1. M Visual Studio 2008, chn Create New Project, trong phn WCF chn

    WCF Service Library nh hnh di. t tn project l HelloService.

  • Microsoft Vietnam DPE Team | Bi 1: Gii thiu tng quan v WCF 8

    Figure 2To WCF project

    2. Sau khi project c to ra, xo 2 tp IService1.cs v Service1.cs. ng

    thi lm sch tp app.config thnh nh sau:

  • Microsoft Vietnam DPE Team | Bi 1: Gii thiu tng quan v WCF 9

    3. Kch chut phi vo project HelloService, chn Add New Item. Sau

    chn thm mt WCF Service, t tn n l HelloWorld nh hnh di. H thng s

    thm vo 2 tp cho bn:

    Figure 3Thm HelloWorld service

    a. Tp IHelloWorld.cs cha mt giao din gi l IHelloWorld, y l

    contract cho dch v ca bn. Thay hm DoWork thnh SayHello nh sau:

    [ServiceContract]

    public interface IHelloWorld

    {

    [OperationContract]

    string SayHello(string inputName);

    }

    b. Tp HelloWorld.cs, cha lp gi l HelloWorld, lp ny s ci t

    contract cho dch v ca bn. Thay hm DoWork thnh SayHello nh sau:

    public class HelloWorld : IHelloWorld

    {

    #region IHelloWorld Members

    public string SayHello(string inputName)

  • Microsoft Vietnam DPE Team | Bi 1: Gii thiu tng quan v WCF 10

    {

    return "Cho bn " + inputName;

    }

    #endregion

    }

    Khi thc hin ci t mt dch v WCF, thng thng bn nh ngha phn giao

    din trc (cc interface) sau mi thc hin thng qua mt lp ci t giao din

    . Bn hon ton c th lm bng tay vit li phn khai bo cc phng thc c

    trong giao din. Tuy vy, c mt cch nhanh hn gip bn khai bo cc phng thc

    cng nh thuc tnh ca giao din bng Visual Studio. Cch lm nh sau:

    Bc 1. M file cha class cn ci t. Di chuyn con tr ti tn giao din nh

    hnh di

    Figure 4 Di chuyn con tr ti tn giao din

    Bc 2. Bm chut vo hnh ch nht nh di ch IHelloWorld (ging smart

    tag trong Microsoft Word), xem hnh di

    Figure 5 Kch hot SmartTag

  • Microsoft Vietnam DPE Team | Bi 1: Gii thiu tng quan v WCF 11

    Bc 3. M menu popup v chn mt trong 2 mc.

    Figure 6 Chn mc menu ci t giao din

    Kt qu. Sau khi chn mt mc menu ta s c kt qu nh hnh di.

    Figure 7 Kt qu

    Nh cc bn thy, s dng tnh nng ny ca Visual Studio cho php chng ta

    thc hin to nhanh cc khai bo cn thit ci t giao din.

    4. Vy l chng ta c mt dch v hon chnh. Bm F5 chy. Visual

    Studio s t ng gi chng trnh WCF Test Client (l chng trnh client test dch

    v ca WCF). Xem hnh di.

  • Microsoft Vietnam DPE Team | Bi 1: Gii thiu tng quan v WCF 12

    Figure 8 WCF Test Client

    5. Chuyn ti phng thc SayHello, a vo tham s, gi s l tn ca bn,

    sau bm nt Invoke. Kt qu xem hnh di.

  • Microsoft Vietnam DPE Team | Bi 1: Gii thiu tng quan v WCF 13

    Figure 9 Kt qu thc thi dch v HelloWorld

    8. S dng cng c WCF Test Client debug dch v WCF

    Cng c WCF Test Client c th c kch hot theo 2 cch.

    Cch th nht nh cc bn thy v d trn. Cng c ny c kch

    hot mt cch t ng khi ta thc hin debug mt WCF Service Library.

    Cch th 2 l chy trc tip v thm vo cc dch v cn debug. Cch ny

    thng thng hay s dng debug dch v khi host dch v bi IIS. Cng c WCF Test

    Client c th tm thy th mc sau:

    C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\WcfTestClient.exe

    Khi kch hot trc tip WCF Test Client, s thy mn hnh khi ng nh sau:

  • Microsoft Vietnam DPE Team | Bi 1: Gii thiu tng quan v WCF 14

    Figure 10 Mn hnh khi ng ca WCT Test Client

    Bm chut phi vo My Service Projects, bn c th thm vo cc dch v WCF thc

    hin debug

  • Microsoft Vietnam DPE Team | Bi 1: Gii thiu tng quan v WCF 15

    Figure 11 Thm mt dch v vo WCF Test Client

    Mn hnh di y l v d thm vo mt dch v c host trn IIS

    Figure 12 Thm vo mt dch v c host trn IIS

    9. Ti liu tham kho

    1. Windows Communication Foundation (http://msdn.microsoft.com/en-

    au/library/ms735119.aspx)

    2. What Is Windows Communication Foundation?

    (http://msdn.microsoft.com/en-us/library/ms731082.aspx)

  • Microsoft Vietnam DPE Team | Bi 1: Gii thiu tng quan v WCF 16

    3. Windows Communication Foundation

    (http://en.wikipedia.org/wiki/Windows_Communication_Foundation)

    4. Writing the WCF Hello World App (http://blah.winsmarts.com/2008-4-

    Writing_the_WCF_Hello_World_App.aspx)