You are on page 1of 4

Xy dng mt ng dng

Bng cch to tng thnh phn ca ng dng, bn c th kim tra chc nng ca mi thnh phn khi to
n. Sau khi to tt c cc thnh phn chc nng trong project, bn c th xy dng mt ng dng v
hp cc thnh phn thc hin c trong project, nh cc forms, reports, menus v cc chng trnh
vo mt file n m bn c th phn phi n vi cc file d liu ng dng cho cc ngi dng.

I. a cc file cho php sa i ra khi gi ng dng (Builds)


Cc project ng dng thng c cha cc file nh cc tables m ngi dng c th sa i. Khi build
mt ng dng t mt project, cc file trong project c hp vo mt file ng dng n, cc file trong
project c ch nh l included s tr thnh ch c.
i vi cc files m ngi dng cn sa i, bn cn a vo project nhng exclude chng khi tin
trnh build. Cc file c excluded vn cn l b phn ca ng dng, Visual FoxPro tip tc xem n
nh b phn ca project. Cc file excluded khng c bin dch vo file ng dng nn ngi dng c
th sa i chng.
Ni chung, bn nn include cc file thi hnh nh cc forms, reports, queries, menus, programs v tt c
cc file m ngi dng khng cn cp nht. Bn cn exclude cc file d liu, ActiveX control (.ocx)
libraries, Visual FoxPro dynamic-link libraries (.fll), Windows dynamic-link libraries (.dll). Mc nhin, cc
table c excluded bi v n gi nh rng ngi dng c th cn thay i cc table trong mt ng
dng.
Bn khng th include cc file ng dng .app trong mt project. Bn khng th exclude cc file c ch
nh l file chnh (Set Main)
Tuy nhin, bn include hay exclude cc file ty theo yu cu ca ng dng. V d, bn c th include mt
table cha thng tin h thng nhy cm hay ch c ngn khng cho thay i chng. Ngc li, nu
ng dng cho php thay i mt report, bn c th exclude report.
Cch exclude cc file sa i c
Trong Project Manager, chn file sa i c.
T menu Project, chn Exclude.
Nu file c excluded, lnh Exclude khng c sn; hin lnh Include v tr .
Cc file Excluded c biu tng bn tri cc tn.
Ch : Mun xem tt c cc files ca project cng lc, chn Project Info t menu Project v chn th
Files.

II. nh file chnh (Set Main)


Tt c cc ng dng phi c mt file chnh (main), l file c ch nh l im bt u ca ng dng,
thc hin cc vic ch yu trong ng dng, lin kt cc thnh phn trong ng dng vi nhau. Ch c mt
file c ch nh l file chnh.
Khi dng Application Wizard to project cho ng dng, wizard s t ng to mt chng trnh chnh.
Bn c th sa i file chnh hay ch nh mt file khc trong project lm file chnh.
Cch ch nh file chnh cho mt ng dng
M project, trong Project Manager, bung chi tit nt cha file mun dng.
Nhp chn file.
Trn menu Project, nhp Set Main.
Tn ca file chnh xut hin ch m trong Project Manager. (File chnh c t ng include v c
thuc tnh Read-Only

III. Xy dng cc ng dng


Khi project ng dng cha cc file cn thit, bn sn sng xy dng mt file phn phi c.
Bn c th xy dng project thnh mt ng dng chun ch chy khi c ci Visual FoxPro, hay mt ng
dng thi hnh c c th chy khng cn ci Visual FoxPro. Bn cng c th build ng dng thnh mt
Automation server.
1. Xy dng mt ng dng Visual FoxPro chun
Bn c th dng Project Manager hay vi lnh BUILD APP. Tuy nhin, c sn nhiu mc chn hn khi
dng Project Manager.
Cch build mt ng dng chun
Trong Project Manager, chn Build, hin hp thoi Build Options, chn Build Application.
-hoc-

Dng lnh BUILD APP: BUILD APP APPFileName FROM ProjectName [RECOMPILE]
Build mt file thi hnh c (.exe)
Trong Project Manager, chn Build, trong hp thoi Build Options, chn Build Executable.
-hocDng lnh BUILD EXE: BUILD EXE EXEFileName FROM ProjectName [RECOMPILE]
Bn cng c th to mt Automation server, n to ra mt DLL c th c gi t cc chng trnh
windows khc.
Cch bin dch mt Automation server
Trong Project Manager, chn Build, trong hp thoi Build Options, chn Build OLE DLL.
-hayDng lnh BUILD DLL: BUILD DLL DLLFileName FROM ProjectName [RECOMPILE]

To cc Automation Servers
Mt Automation server l mt ng dng thnh phn COM (Component Object Model) a ra chc nng
c th c dng v dng li bi cc ng dng khc qua Automation. V d, dng VFP, bn c th to
mt Automation server hin th cc form c th dng li (ngoi trin trnh file .exe), hay ng gi mt
chng trnh phc tp thnh mt thnh phn n gin m cc ngi lp trnh khc c th dng. Ngoi
ra, bn c th to mt hay nhiu lp qun l cc qui tc tc nghip. Mt ng dng client dng i
tng business rule s truyn cc tham s trong li gi method, v Automation server c th thi hnh kh
nhiu vic, ly hay lu d liu t nhiu ngun v thc hin cc tnh ton phc tp, trc khi tr v cu
tr li.
V d ca Automation servers c ci t trong Visual FoxPro lu th mc: \Samples\Servers.
1. To Automation Server
Tt c cc th m bn cn to mt Automation server in Visual FoxPro l mt project cha cc class
c nh ngha l OLEPUBLIC. Bn c th c nhiu lp OLEPUBLIC trong project v chng c th
c nh ngha trong cc file chng trnh hay cc th vin lp (.vcx).
V d, nh ngha lp sau y trong mt file chng trnh to mt lp cng cng OLE:
DEFINE CLASS person AS CUSTOM OLEPUBLIC
FirstName = SPACE(30)
LastName = SPACE(45)
PROCEDURE GetName
RETURN THIS.FirstName + " " + THIS.LastName
ENDPROC
ENDDEFINE
Khi ang nh ngha mt class trong Class Designer, chn OLE Public trong hp thoi Class Info ch
nh lp l OLEPUBLIC.
2. Bin dch Automation Server
Trong Visual FoxPro, bn c th to mt out-of-process hay mt in-process Automation server. Mt thnh
phn out-of-process l mt file .exe chy trong tin trnh ca ring n. S lin lc gia mt ng dng
client v mt out-of-process server gi l lin lc tin trnh cho (cross-process). Mt thnh phn inprocess l mt th vin lin kt ng (dynamic-link library -DLL) n chy trong cng khng gian a ch
ca tin trnh nh l client gi n.
C cc tin li ng vi mi loi. Mt in-process server th nhanh hn bi v khng c s lin lc tin trnh
no bn trong vt qua. Mt khc, mt out-of-process server c th c pht trin t xa m mt inprocess server th khng th. Ngoi ra, bi v in-process server v client dng chung mt khng gian a
ch tin trnh, cc li nghim trng trong .dll s kt thc khi c li out-of-process .exe s kt thc server.
Ch : Bi v in-process .dll v out-of-process .exe Automation servers c invoked qua s khi to
lp, project ca bn khng cn ch nh mt file chnh. Trong Visual FoxPro bn hin c th xy dng mt
in-process .dll hay mt out-of-process .exe Automation server khng ch nh file chnh u tin trong
Project Manager.
Khi bn to mt ng dng thi hnh c vicc lp OLE Public, bn khng mt cc kh nng .exe . You
Bn c th chy file thi hnh c, cung cp cho ngi dng mt giao din, v tt c chc nng binh
thng bn s vo trong mt ng dng application. Bn tng tnh m rng cho ng dng.
Ch : Nu c nhiu ngi dng ang truy cp Automation server, c th gy ra ng . Nu bn
cung cp truy cp Automation cng nh chc nng giao din ngi dng vo mt giao din ng vi
chc nng, cung cp thm mt extra layer of consistency

Cch bin dch mt Automation server


T Project Manager, chn Build.
Trong Build Options, chn Build Win32 executable / COM server (exe), hoc Build Single-threaded
COM server (dll), hay Build Multi-threaded COM server (dll).
Chn OK.
Hoc
Dng cc lnh BUILD DLL, BUILD EXE, or BUILD MTDLL
Khi build project, bn c th thy hin th nhiu lp server trong hp thoi Project Information. y
bn c th ch nh mt file help v mt Help context ID cho mi lp. File help ny c th c m t cc
trnh duyt i tng tng qut nht.
Bn c th chn cc gi tr th hin lp no trong hp Project Information. Cc ty chn th hin l:
Not Creatable: Ngay c lp c nh du OLE public, n s khng c sn cho cc ng dng khc. V
d, bn c th c mt th vin chun ca cc lp cng cng OLE c dng trong nhiu ng dng v v
hiu automation ca mt hay nhiu lp cho mt ng dng n.
Single Use: Mi ng dng client dng server bn to mt th hin ring ca lp server. Mi th hin c
mt lung thi hnh n. Mc d cc th hin ring cn nhiu b nh hn, chn Single Use cho php h
iu hnh p dng a nhim u tin.
Multi Use: Mt khi server c to, cc ng dng khc c th dng cng th hin.
Ch : Nu bn thc hin cc thay i trong th Servers ca hp thoi Project Information, bn cn xy
dng li (rebuild) .dll hay .exe cho cc thit t p dng cc thay i.
Khi bn xy dng mt project vi cc lp chung OLE, ba file c to:
+ File .dll hay .exe
+ Mt file th vin kiu (type library .tlb)
+ Mt file registry (.vbr)
File th vin kiu (type library) l mt file nh phn lit k tt c cc lp c xut bn trong Automation
server, theo cc thuc tnh ca chng, cc method v cc events. Cc trnh duyt i tng OLE c
thng tin ny v trnh by n trong giao din c th c.
File registry lit k cc global unique IDs (GUID) cho cc lp trong server ca bn.
Ch : Mt file registry .vbr ging vi mt file .reg ngoi tr file .vbr khng a vo cc ng dn hardcoded.
ng k mt Automation Server
Cc Automation servers ca bn c sn cho cc ng dng khc mt khi cc servers c add vo
Windows Registry. Khi bn build mt Automation server, n ng ng k trn my build. Bn cng c
th ng k cc server ca mnh trn cc my khc.
Khi dng Visual FoxPro Setup to cc a setup, chng trnh setup ng k server bn trn cc my
ca khch hng. Bn cng c th ng k cc server bng tay.
Cch ng k mt thnh phn .exe
Chy file .exe vi kha chuyn /regserver.
V d, ng k Myserver.exe, chy lnh sau: myserver /regserver
Cch xa mt mc registry thnh phn .exe
Chy file .exe vi kha chuyn /unregserver.
V d, thi ng k Myserver.exe, chy lnh sau y: myserver /unregserver
Cch ng k mt thnh phn .dll
Chy REGSVR32 vi tn ca server.
V d, ng k Myserver.dll thc hin lnh sau:
REGSVR32 myserver.dll
Cch g b mt mc registry thnh phn .dll
Chy REGSVR32 vi tn ca server v kha chuyn /u.
V d, g b Myserver.dll chy lnh sau:
REGSVR32 /u myserver.dll
Ch : Registry cha tn ng dn y n file, v th nu di chuyn file, bn s cn ng k n li.
S dng Automation Server
ng dng no c th to cc i tng Automation u c th to cc i tng da trn Automation
server, ch nh cc thuc tnh khng HIDDEN hay PROTECTED v gi cc methods. V d, gi s
server ca bn tn foxole v cha mt lp tn person vi method GetName, on m sau c th chy
trong Visual FoxPro:

oTest = CREATEOBJECT("foxole.person")
cName = oTest.GetName()
Tng t, code c th chy trong Microsoft Excel hay Visual Basic:
Set oTest = CreateObject("foxole.person")
cName$ = oTest.GetName()
Nm gi cc ngoi l (Exceptions)
Khi mt Automation server Visual FoxPro sinh ra mt ngoi l, Automation server nh i tng COM
ErrorInfo (qua IErrorInfo) v hy b method hin hnh. Automation client c th gii phng Visual FoxPro
Automation server hay nu client c truy cp vo i tng COM ErrorInfo, nm gi ngoi l da trn
thng tin .
Hm COMRETURNERROR( ) nm gi cc li xut hin trn mt Automation server. Bn c th dng
COMRETURNERROR( ) trong method Error, ph bin cu trc ngoi l COM vi thng tin m
Automation clients c th dng quyt nh ngun ca cc li Automation server.
Hin v tr v cc li t Automation Servers
Ch tng tc vi cc i tng c cung cp bi mt Automation server (thnh phn COM) l qua cc
method v cc thuc tnh ca cc lp c trnh by. Khi mt ng dng client gi mt method ca mt
i tng v mt li xut hin trong Automation server, method hoc tr v mt gi tr li hay a ra mt
li trong ng dng client.
ng dng client quyt nh rng cnh bo ngi dng hay theo ui vi mt ng dn thc hin khc.
Automation server t n khng bao gi tng tc vi ngi dng. iu ny cho php v tr ca
Automation server tr nn trong sut vi ng dng client. Automation server c th l cc b, chy trn
my tnh ca ngi dng, hay bn c th dng tin ch Remote Automation ca Visual FoxPro chy
n trn server mng.

You might also like