You are on page 1of 16

Bi 1 GII THIU TNG QUAN V WINDOWS COMMUNICATION FOUNDATION

1. Mc lc
2. 3. 4. Windows Communication Foundation (WCF) l g? ........................................................................................2 Ti sao s dng WCF? ......................................................................................................................................2 Kin trc ca WCF ............................................................................................................................................3 4.1 Cc contracts (Cc hip ngh) ....................................................................................................3 4.2 4.3 4.4 5. Runtime service (Dch v thc thi)...............................................................................................4 Message (Bn tin) .........................................................................................................................5 Host and activation (Cha v kch hot) ......................................................................................5

Cc tnh nng ca WCF .....................................................................................................................................6 5.1 Transaction (Giao dch) ................................................................................................................6 5.2 5.3 Host (Cha) ..................................................................................................................................6 Bo mt .........................................................................................................................................6

6. 7. 8. 9.

Cng c pht trin vi WCF ..............................................................................................................................7 V d u tin vi WCF.....................................................................................................................................7 S dng cng c WCF Test Client debug dch v WCF ............................................................................13 Ti liu tham kho ...........................................................................................................................................15

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 2

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 3

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 trong h thng Metadata behavior: Hnh x vi cc siu d liu quy nh xem lm th Error behavior: Hnh x li quy nh nhng hnh ng khi li xy ra

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 4

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 5

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 6

6.

Cng c pht trin vi WCF

pht trin ng dng vi WCF ta cn cc phn mm sau: Framework .NET Framework 3.5. Hc vin c th ti v b ci ca .NET 3.5 ti trang web ca Microsoft. a ch nh sau:

http://www.microsoft.com/downloads/details.aspx?familyid=ab99342f-5d1a-413d-831981da479ab0d7&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 7

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: <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.web> <compilation debug="true" /> </system.web> <system.serviceModel> <services> </services> <behaviors> </behaviors> </system.serviceModel> </configuration>

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

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 9

{ 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 10

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 11

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 12

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 13

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 14

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.
1.

Ti liu tham kho


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 15

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)

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

You might also like