Professional Documents
Culture Documents
Tu Hoc ASP - Net Bang Tieng Viet
Tu Hoc ASP - Net Bang Tieng Viet
Microsoft ASP.NET
Bn quyn ca:
www.vovisoft.com
Ro Trc
Hnh trang vo Kha Hc ASP.NET
Ta nn chun b sn mt s kin thc cn bn v lp trnh hay pht trin mng khi bc vo kha hc ny th tt hn, v tuy
bn khng cn phi bit v ASP c in (classic ASP) nhng, nh chng ti trnh by trong phn FAQ trang Cho Mng
u kha hc, bn cn:
tham kho cc bi vit trong kha Hc Microsoft .NET ca thy L c Hng lm quen vi .NET framework,
Visual Basic.NET, Visual Studio.NET. VB.NET s c dng lm ngn ng mc nh (default) trong cc th d, cc
bi tp hay cc d n ca kho.
bit tng qut v HTML (HyperText Markup Language) khi ta cn trnh by cc trang web trn browser. Browser
c dng trong kho ny l IE6 (Internet Explorer Version 6).
quen thuc vi cc h iu hnh mi hin nay (Operating System) nh Windows 2000 (Professional hay Server) hay
Windows XP (Home hay Professional), cng nh quen thuc cch qun l cc ng dng lin h nh Web Server
(Personal Web Server hay Internet Information Server - IIS) v cc c s d liu (database) MS SQL Server 2000 xin tham kho cc bi vit v MCSE ca thy V Hu Tn, thy Tng Vinh Ti v lp MCSE.
vi kin thc cn bn v XML lin quan n vic chuyn thng tin t ch ny qua ch khc. V XML, bn nn tham
kho cc bi vit XML, K Thut Nng Ct trong Tng Lai ca thy L c Hng v cc bi t hc XML ca c
Bch Tr cng trn mng Vovisoft ny).
Tht ra, ta u lm kh nhau chi nhng phi ro trc n sau nh vy l v con ng ta i tm hiu v ASP.NET hi lt lo
gp ghnh. Mt khi ta pht trin mng vi ASP.NET, ta phi vn dng tt c cc ng dng lin h v kt hp mi th vo
nhau. cng l l do ti sao kho hc ny ch nhm vo cc lp trnh vin c kinh nghim pht trin mng. Tuy vy,
chng ti s c gng trnh by mt cch n s, ngn v gn khi cp n cc ng dng k trn trong cc bi hc c lin
quan n bn (nht l bn no thch th trong vic pht trin mng v mi lm quen vi ASP.NET) d dng theo di v
tm hiu v ASP.NET.
V h iu hnh (Operating System): ta nn dng Windows 2000 (Professional hay Server) hay Windows XP
(Home hay Professional). L do chnh l cc versions ca Windows ny h tr Unicode v c th ci t do Internet
Information Server (IIS Version 5) h tr ASPX ta dng cho ASP.NET v IIS c cung cp min ph trong cc
h iu hnh k trn.
Ngoi ra, bn cn phi c .NET framework SDK (Software Development Kit) ti xung t mng Microsoft. Chng
ti s trnh by vic at3i xung u v cng cuc b tr nh th no bi hc s 1. Nu nh bn c v ci t
Microsoft Visual Studio.Net (VS.NET) theo s hng dn cc bi hc ca kha Hc Microsoft .NET th cng tt
na. V ri rc trong cc bi hc v ASP.NET, chng ti cng trnh by mt s th d dng VS.NET cho ASP.NET
mc d tht ra ch cn c Notepad thi cng ... d xi sut nm.
Cui cng, bn cn phi c v ci t thnh cng mt c s d liu (Database) vng mnh tng ng vi OLE DBcompliant database system nh SQL Server 2000 dng lu tr nhng thng tin cn thit. Tuy nhin, ta cng c
th dng MS Access 2000 tm thi thay th SQL Server 2000 cho cc th d trong kho phn nhiu trnh by cc
ni v cc kiu thu thp d liu hay thng tin xuyn qua SQL Server 2000.
Developer Productivity
Easy Programming Model:
ASP.NET gip ta pht trin v trin khai cc ng dng v mng trong mt thi gian k lc v n cung cp cho ta mt kiu
mu lp trnh d dng v gn gng nht. Ngoi ra cn bnh hn na, cc trang ASP.NET lm vic vi mi browsers hin nay
nh Internet Explorer (IE), Netscape, Opera, AOL, ... m khng cn phi i ti i lui cc ngun m rt vt v nh trc.
Flexible Language Options:
Khng nh ASP kiu c in ch gii hn vi VBScripts and JScripts, ASP.NET ym tr trn 25 .NET ngn ng lp trnh (d
nhin ngoi cc ngn ng mi thit lp ci sn ym tr .NET framework nh l VB.NET, C# v JScript.NET cn c
MC++.NET, Smalltalk.NET, COBOL.NET, Eiffel.NET, Perl.NET, Component Pascal.NET, Mercury.NET, Oberon.NET,
Python.NET, vn vn v vn vn ... khng k xit).
Great Tool Support:
Mc d ta c th ch cn dng ti Notepad trin khai cc trang ASP.NET nhng Visual Studio.NET gip nng sut trin
khai mng thm phn hiu qu v ta c th quan st cc k hoch ca ta d dng hn khi pht ha (design) cc thnh phn ca
ASP.NET bng hnh nh vi ASP.NET Web Forms hay Services theo phng php 'drag-drop-doubleclick' quen thuc ca
nn Windows. Thm na, li cn ym tr ta trong vic pht hin v loi b nhng li sai mt cch rt thun li trong khi pht
trin cc ng dng v mng (support for debugging and deploying ASP.NET Web applications).
y l trang u tin khi dng Visual Studio.NET:
Enhanced Reliability
Memory Leak, DeadLock v Crash protection:
ASP.NET cng c kh nng t ng d tm v phc hi (detects and recovers) nhng tr ngi nghim trng nh deadlocks
hay b nh (memory) b r bo m ng dng ca bn lun lun sn sng khi dng m khng lm cn tr vic cung ng
dch v cn thit thng l.
Easy Deployment
Simple application deployment:
ASP.NET n gin ha vic trin khai ng dng mng, do bin vic trin khai ton b ng dng tr nn d dng v thun
li hn hn trc kia v by gi ta ch cn sao (vi XCOPY) v lu tr Server ch khng cn phi chy chng trnh
'regsrv32' ng k bt c thnh phn no c, v thm na, khi cn lu tr nhng yu t ph cn thit cho vic thit lp hay
b tr cc ng dng, ta ch cn lu gi n vo trong mt h s di dng XML l .
Dynamic update of running application:
ASP.NET cho php ta t ng cp nht ha (update) cc thnh phn compiled (compiled components) m khng cn phi
khi ng li (re-start) cc Web Server.
Easy Migration Path:
Ta khng cn phi du nhp nhng ng dng c pht trin v trin khai bng ASP c in hin c ca bn vo ASP.NET v
ASP.NET c th chy song song vi ... cu chin binh ASP cng mt Internet Information Server (IIS) trong nn Windows
2000 hay nn Windows XP. Cc ng dng c vn tip tc chy ht sc thoi mi vi ASP.DLL trong khi ASP.NET engine s
x l cc ng dng mi. Ngoi ra, ASP.NET cn cho php bn dng li nhng thnh phn thng mi hin nay kiu COM c
in trong cc ng dng ca n.
Thi, n y ta tm ngng ... 'nh bng' nhng g sng chi m ht mt hi tht di, bc mt bc khi u cho
cuc hnh trnh tm hiu v thc hnh v ASP.NET. Vy xin mi bn hy sang sng, khng, sang ... trang vi bi s 1
'Lm Quen vi ASP.NET'
Bi 01
Lm Quen vi ASP.NET
Hy ngi xung y, hy ngi xung y, xa cn bun phin.
Du bit chia phi, nhng trong cuc i, vn c i ta.
Hy ngi xung y - L Uyn Phng
ASP.NET l g?
Phng php lm vic trong mng
S lc v .NET Framework
B tr v ci t ASP.NET
To trang ASP.NET u tin
Chc hn ta c dp c nghe Nguyn Ngc Ngn k vi K Duyn rng ng b cng gn 2, 3 nm tri ng ng ...
nghin cu rt l cc kh mi khm ph ra mt chn l nh sau: 'Th l ly v va tr va p cn hn l ly v ... va gi
va xu'. Ta th khng cn phi tn nhiu nm thng n th bit c ASP.NET va tr va p hn l ASP hoc nhng
phng php pht trin mng c in khc nhng d c bit r ASP.NET va tr va p (Microsoft chnh thc khai trng
sn phm .NET Framework v MS Visual studio.NET vo ngy 13 thng Hai nm 2002, tuy nhin rt nhiu phin bn Beta2
c ph bin khp th gii gia nm 2001) nhng my ai bit c ASP.NET l g v dung nhan ... ma h ra lm sao?
Vy ta 'hy ngi xung y' bt u lm quen vi ASP.NET.
ASP.NET - EM L AI?
Trc ht, h tn ca ASP.NET l Active Server Pages .NET (.NET y l .NET framework). Ni n gin, ngn v gn th
ASP.NET l mt cng ngh c tnh cch mng dng pht trin cc ng dng v mng hin nay cng nh trong tng lai
(ASP.NET is a revolutionary technology for developing web applications). Bn lu ch ASP.NET l mt phng php t
chc hay khung t chc (framework) thit lp cc ng dng ht sc hng mnh cho mng da trn CLR (Common
Language Runtime) ch khng phi l mt ngn ng lp trnh. Ngn ng lp trnh c dng din t ASP.NET trong
kha ny l VB.NET (Visual Basic .NET) v VB.NET ch l mt trong 25 ngn ng .NET hin nay c dng pht trin
cc trang ASP.NET m thi.
Tuy mang h tn gn ging nh ASP c in nhng ASP.NET khng phi l ASP. Ta s lc y vi khc bit gia
ASP.NET v ASP bn c khi nim tng qut v s trnh by thm chi tit khi o su vo tng im c trng (features)
ca ASP.NET tng bi hc mt.
S THAY I C BN
ASP v ang thi hnh s mng c giao cho n pht trin mng mt cch tt p nh vy th ti sao ta cn phi i mi hon
ton? L do n gin l ASP khng cn p ng nhu cu hin nay trong lnh vc pht trin mng ca cng ngh Tin Hc. ASP
c thit k ring bit v nm tng phi trn h iu hnh Windows v Internet Information Server, do cc cng dng
ca n ht sc ri rt v gii hn.
Trong khi , ASP.NET l mt c cu trong cc c cu ca h iu hnh Windows di dng nn hay khung .NET (.NET
framework), nh vy ASP.NET khng nhng c th dng cc object ca cc ng dng c m cn c th x dng tt c mi
ti nguyn m Windows c, d dng nh ... n cm tm b sn ch vy.
Ta c th tm tc i khi s thay i nh sau:
KIU MU RESQUEST/RESPONSE
Kiu mu ny chnh l ton b phng php lm vic theo kiu Client /Server hin dng vi ASP.
Client/Server - Mt trng hp n gin nht l s trao i thng tin gia 2 my vi tnh hon thnh 1 cng vic c nh
trc, trong my Server cung cp dch v theo yu cu ca 1 my khch hnh (Client PC).
Thng thng, Server l my vi tnh lu tr thng tin v mng trong c hnh nh, video, nhng trang HTML hay ASP. Client l
my vi tnh c dng lt mng. Mt cch tng qut phng php ny gm c 4 bc c bn sau:
1.
2.
Client (thng qua Internet Browser) xc nh v tr ca Web Server qua 1 ni URL (Universal Resource Locator) t nh
www.vovisoft.com
Client s yu cu c tham kho 1 trang trong mng v thng l trang ch (home page) t nh index.htm hay
default.htm
3.
4.
Lu , mt khi Client nhn c h s ri, qu trnh trao i qua li kt thc ngay tc khc. Sau , Server v Client tr thnh
... 'ngi xa l', coi nh l cha tng bao gi gp nhau (stateless model), ta gi l kiu ... 'lm ng'.
KIU MU EVENT-DRIVEN
Kiu mu event-driven ny dng vi ASP.NET cng tng t nh l kiu mu event-driven m ta vn thng dng trong khi
lp trnh cc ng dng vi Visual Basic 6.
Trong kiu mu ny, Server s khng 'ngi ... chi xi nc' ch Client yu cu tham kho 1 trang no trong mng m
Server b tr v k hoch sn trc tt c mi tnh hung c th hnh ng kp thi mi khi Client quyt nh lm 1 iu
g . Ta gi l 'response to your action', cn trong kiu mu trc l 'response to your request', nh vy ASP.NET c th
pht hin ra cc hnh ng ca Client phn ng cho thch hp.
c ti y chc bn s hi li ngay rng: 'a, nhng m lm sao mt Server no , c th tn u u bn kia a cu, li
bit c l ta ang g vi mu t trong mt hp ch hay l ang nhp mi chut (click) vo button trong phn Guestbook
hay Forum ca Vovisoft gi i mt thng ip lm quen vi Vovisoft?'.
, s d Server c th lm c 'chuyn ... kh tin nhng c thit ' l da vo tin trnh x l linh ng Client (gi l
clever client-side processing) thc hin kiu mu event-driven ny ca mnh. Tin trnh x l Client xy ra khi ta b tr
ngun m thch hp m Client c th hiu c trong cc trang ta gi v cho Client. Lu l mc d cc trang mng (web
page) ta u cha Server nhng ngun m li c th c thc hin v x l, hoc Server hoc Client (Server-Side
processing v Client-Side processing) tu theo cch ta b tr. Tht vy, ASP.NET khng th no bit c chuyn g s xy ra
my vi tnh ca bn (Client PC) nhng nh vo tin trnh x l linh ng Client m Server c th tin hnh kiu mu pht
trin mng mi theo phng php event-driven.
Nh l ta c th chy ngun m 2 ch khc nhau: hoc l chy Server (gi l Server-side) hoc l chy Client (Clientside) v cc ngun m 2 ch ny hon ton khc bit, khng c tc ng h tng vi nhau (no interact with each other).
iu c ngha l my Client s chu trch nhim thi hnh cc ngun m c lp trnh dnh cho mnh cng nh my
Server ch chy cc ngun m dnh cho Server. Thng tin hay ni dung cn thit Server s c chuyn sang dng HTML
n gin (plain HTML) trc khi gi n cho Client, thng th ngun m dnh cho Client cng c chuyn i di dng
'plain text command' thc hin cc hiu ng nng ng (dynamic effect) my Client, t nh thay i hnh nh (image
rollover) hay hin th mt thng ip (message box).
ASP.NET s dng cc ngn ng mi c trnh bin dch (compiled languages) nh C# hay VB.NET son cc ngun m
trong cc trang Web Server.
S LC V .NET FRAMEWORK
Mi chc nng ASP.NET c c hon ton da vo .NET framework, do c ch .NET trong ASP.NET. Ta cn phi hiu
thu o kin trc h tng ca .NET framework dng ASP.NET mt cch hiu qu, trong quan trng nht l CLR v
.NET Framework Class.
iu quan trng nht m ta cn phi nh l mi th trong .NET u l object, t nh cc trang ASP.NET, cc hp thng ip
(message box) hay l nt bm (button), tt c u l object c. Cc object c t chc li thnh tng nhm ring bit nh
trong mt th vin ta d dng x dng. Ta gi cc nhm nh vy l namespaces, v ta s dng nhng namespace ny
gi hay nhp (import) cc class cn thit cho ng dng ca mnh.
y, ta ch s lc mt cht v .NET framework m thi, bn c th tham kho y chi tit v .NET framework cc
bi vit ca thy L c Hng trong kha Hc .NET Framework v VB.NET
CI T ASP.NET
chy trang ASP.NET, trc ht ta cn phi ci t thnh cng:
Internet Information Server (IIS) v b tr Virtual Directory dng trong kha T Hc ASP.NET ca Vovisoft.
MS Visual Studio.NET - trong trng hp ny th MS Visual Studio.NET ci sn .NET Framework SDK cho ta dng
vi ASP.NET hoc l Microsoft ASP.NET Web Matrix (chi tit c trnh by bi Gii Thiu V Web Matrix).
.NET Framework Software Development Kit (SDK) - nu ta khng c MS Visual Studio.NET, ta c th ti .NET
Framework Software Development Kit (SDK) xung t do t mng www.microsoft.com/NET , vi SDK, ta ch c th
dng Notepad hoc mt Text Editor no ta thch pht trin trang ASP.NET m thi.
Nh l ASP.NET l k thut pht trin mng phi Server, do ta phi cn c Internet Information Server (hay thng c gi
n gin hn l Web Server) son (pht trin hay lp trnh) cc trang v mng cho khch vng lai gh thm cng nh tham kho
cc thng tin lin h. Nhng khc vi cc trang ASP c in, Web Server s khng hiu cc trang ASP.NET nu nh ta qun hay b
st khng ci .NET Framework SDK hoc khng ci MS Visual Studio.NET, chnh nh .NET Framework SDK m ta c y
cc cng dng v cc object hay classes cn thit cho cc trang ASP.NET ca ta.
Start, Settings, Control Panel, Add/Remove Programs v nhp n (click) Add/Remove Windows Components, xong chn
Internet Information Server nh sau:
2. Nu ta nhp n nt <Details>, ta c th t do la chn thm hay bt cc thnh phn trong IIS, t nh ta c th b tr thm File
Transfer Protocol Service (FTP Server) qun l mt cch hiu qu hn vic ti ln (upload) hay ti xung (download) cc h s
(documents) hay tp tin (files).
3. Nhp nt <Next>, Windows XP Professional s thu thp cc thng tin lin h v bt u tin trnh ci t IIS. Ch trong vng vi
pht l ta c mt Web Server ngon lnh trong my vi tnh. Gi y, bn tr thnh mt Web Master ... 'bt c d'. Xin chc
mng tn Web Master, t ra ta cng tr thnh Web Master chnh my vi tnh ca ta (Web Master ca local host).
4. xc nh vic ci thnh cng Web Server, ta c th th nh sau:
Sau khi ta nhp nt <Enter>, trang mc nh (default page) ca IIS s hin th nh sau:
2. C nhiu phng php vo (access) bn trong Web Server trc khi b tr virtual directory, ta c th dng MMC (Microsoft
Management Console) cng thm IIS snap-in vo console hoc ta c th chy IIS bng cch chn: Start, Programs,
Administartive Tools, Internet Information Service.
Phng php dng MMC l phng php c cc MCP (Microsoft Certified Professional) hay MCSE (Microsoft Certified
System Engineer) a thch hn v tnh cch linh ng mm do thch hp cho vic qun l cc ngun ti nguyn khc nhau trong
mng.
Di y l hnh c trng cho vic dng MMC:
Tuy nhin, ta s khng o su vo chi tit vic x dng MMC b tr virtual directory cho kha hc y m ta s dng kiu vo
IIS trc tip qua vic chn: Start, Programs, Administrative Tools, Internet Information Service nh trnh by trn. IIS s
hin th nh sau:
Nhp phi (right click) vo Default Web Site, chn New, Virtual Directory:
Nhp vo nt <Next> v dng <Browse...> chn sub folder 'D:\Net\Vovisoft ASPNET' m ta chun b trc y cho
cc bi tp ca kha.
Chp nhn cc b tr mc nh (default settings) cho virtual directory VovisoftASPNET. Nu thch, ta c th thm vo
quyn Browse (mc ch l sau ny ta d truy cp v chy cc trang ASP.NET pht trin cho ng dng ca mnh).
Nhp <Next> v sau <Finish> kt thc tin trnh b tr.
CI MS VISUAL STUDIO.NET
Xin tham kho bi hc s 1 ca thy L c Hng kha Hc Microsoft .NET Framework v vic lm sao ci t MS Visual
Studio.NET thnh cng.
Lu : Khi ci MS Visual Studio.NET l ta cng ci .NET Framework SDK, do ta khng cn phi theo nhng ch dn v vic
ci t .NET Framework SDK nh trnh by bc k tip.
l ta ... t t t pha cho mnh mt ly c ph ... ri va nhm nhi va thng thc bi hc s 1 ca thy L c Hng nh nu
trong phn 'Ci MS Vusial Studio.NET' tm hiu thm v .NET Framework.
Ta nn nh kim tra hng ch pha di hp Location coi li xem d n c to ra ng ch m ta mun cha hay l khng?
Chnh hng ny cng l URL (Uniform Resource Locator) ta cn phi in vo hp a ch (Address) trong Internet Explorer
hin th trang ASP.NET vi phn ni thm (extension) l .aspx
MS VS.NET s to cc sub-folders nh sau: DevASPNET\Bai01\vs-welcome bn di Default Web Sit, trong trng hp ny Default Web Site chnh l C:\Inetpub\wwwroot. Nu dng IIS kim tra c tnh ca DevASPNET, ta thy Local Path l
DevASPNET.
Lu :
Nh trnh by, chng ta s khng o su chi tit v cch x dng MS VS.NET y, xin tham kho cc bi Hc .NET
Framework do thy L c Hng son.
2. Nhp vo nt <OK> MS VS.NET to ra 1 d n mi. Nu , ta s thy mt trang ASP.NET c to ra mt cch mc nh
(default) vi tn l WebForm1.aspx nm trong Solution Explorer Windows v m tay phi, bn tri ta c 1 hp dng c (Toolbox)
v gia l View Designer.
3. M hp dng c (Toolbox) v nhp i vo cng c Label, mt cch thng dng khc l ta c th ko l (drag) cng c Label vo
trong View Designer.
Lu y l ta s dng ng dng VPSKEY Version 4.0 (or up) vi bng m Unicode g ting Vit cho c tnh Text ca
Label tn lblWelcome nh hnh trn. Ta c th dng bt c ng dng g ting Vit no cho php encoding vi Unicode, nu dng
VPSKeys Version 4.0 th bn cn phi b tr nh sau:
5. Chn File, Save WebForm1.aspx As lu tr vo a cng, nh chn Save with Encoding (hay ta c th dng Advanced Save
Options) vi Encoding l Unicode (UTF-8 with signature) - Codepage 65001 lu tr (save) ting Vit chnh xc.
6. Cui cng ta s dng IE Client Browser hin th trang WebForm1.aspx (nu ta khng i tn, trang mc nh l trang
WebForm1.aspx khi dng MS VS.NET to 1 ASP.NET Web Application).
Trong hp a ch (Address), lu l:
1. Chy ng dng Notepad v g nhng hng ch lp trnh y chang nh trong hnh di y. Trong bi hc 1, ta tm thi chp nhn
cc mnh lnh v c php trong trang ASP.NET u tin ny v s tham kho chi tit cng nh phn tch v gii thch v phng
php xy dng trang ASP.NET bi hc k tip. Nh khi g ting Vit ta s dng VPSKeys Version 4.0 nh trong bi tp 1.
2. t tn tp tin (file) ny l np-welcome.aspx v lu tr (save as) vi encoding UTF-8 (UTF-8 l ch vit tc ca Universal
Transform Format-8) di subdirectory D:\Net\Vovisoft ASPNET\Bai01\np-welcome\
Khi lu tr np-welcome.apsx di 1 subdirectory nh trn, ta c tnh mun dng virtual directory VovisoftASPNET to ra
trong IIS hin th trang web ny.
Tm tt
Trong bi hc ny, ta tht s lm quen vi ASP.NET qua vic tm hiu cc phng php lm vic ca mng trong phm vi
ASP.NET. Thm na, ta cng bit s lc v s thay i c bn trong vic pht trin mng do nh c .NET Framework v bt tay
vo vic ci t ASP.NET thc hin c trang ASP.NET u tin.
Tht vy, qua 2 bi tp, ta x dng thnh cng 2 phng php vi 2 ng dng khc nhau to ra trang Web 'Cho Mng Bn
n Vi Kha T Hc ASP.NET ca Vovisoft', v nh ta thy, mi cch u c ci hay ring, thch dng cch ny hay cch
kia ty thuc vo thi quen, s thch cng nh mi trng lm vic hay hot ng xung quanh. Cn 1 phng php na m ti rt
thch v tnh cch cng ng ca n l MS ASP.NET Web Matrix. Phng php ny s trnh by bi s 3.
Trong Bi s 2 'Xy Dng Trang ASP.NET', ta s tham kho chi tit vic xy dng mt trang ASP.NET nh th no cng nh o
su v vic phn tch c php v cc mnh lnh (commands hoc keywords) dng trong cc trang ASP.NET
Bi lm nh
Cu Hi 1: CLR l g?
Cu Hi 2: Virtual Directory l g? V lm sao b tr thnh cng Virtual Directory?
Bi Lm 1: Pht trin 1 trang ASP.NET dng MS Visual Studio.NET hay Notepad hin th (display) 1 bi th hoc cc cu Ca
Dao (bng ting Vit) m bn su tm.
Bi 02
Xy Dng Trang ASP.NET
V y nghe em
V y, mc o the, i guc mc - K chuyn tnh - bng li ca dao
K chuyn tnh - bng ni ng khoai - K chuyn tnh - bng ht la mi
V v y, nghe gi ting xa - nh trong ting v b.
(V y Nghe Em - Th A Khu - Nhc Trn Quang Lc)
Trong Bi 'Lm Quen Vi ASP.NET', ta nhn thc c ASP.NET gii thiu mt phng php mi v lp trnh pht trin
trang web theo kiu mu event-driven ging nh dng ngn ng lp trnh Visual Basic. Nhng ai tng lm quen v ch lp
trnh vi ngn ng script (script language) t nh VBScript hay JavaScript s b ng i cht v m trong cc trang ASP.NET
khng cn trn ln vi HTML na, nhm mc ch cung cp kiu pht trin mi n gin hn, cp tin hn v cu trc cht
ch hn (more advantages and more structure code).
Hm nay, ta li 'v y' trong bi tham kho v phng php xy dng trang ASP.NET (hay gi l Web Form) v mt s vn
lin h nh sau:
Phn nh M v Ni Dung
Tin y, ta s tm hiu thm v s phn nh gia M (Code) v Ni Dung (Content) gi l Code and Content Separation.
Nh ta bit, phn ng cc K S Tin Hc khi hnh thnh mt web site xy dng mi chuyn t A ti Z cho mng ca mnh
k c vic hoch nh cc n thit k cng nh trang tr, sp xp v trnh by cc thng tin trong cc trang web. Tm li, cc K
S Tin Hc khng nhng phi chun b v vit cc ngun m cn thit cho cc trang ca mnh m c th cn 'thu' hoc 'bao'
lun cng vic ca mt Thit K Gia (Designer), mt Trang Tr Vin (Decorator), mt Kin Trc S (Architect), mt Ha S
(Painter), mt Gio S (Instructor or Tutor), mt Web Master, mt Thng Tn Vin ... v rt nhiu vai tr khc khng th no k
xit ty theo mc ch v tn ch ca web site.
iu ny th ... cng tt thi, nhng ta thit ngh, khng phi K S Tin Hc no cng c trang b ... 'thp bt ban v ngh' nh
vy v thng tnh, mt K S Tin Hc chuyn nghip li d (unskillful) v trang tr thit k, l do n gin l h tp trung kh
nng, thi gian c c vo vic lp trnh v xem nh vic trang tr thit k cho web site ca mnh. Nht l trong phm vi cc i
cng ty hay cc b s chnh ph, vic xy dng web site cha nhiu thng tin l vic ca mt nhm ch khng phi ca mt c
nhn, mi ngi ph trch mt vic, t nh ngi lo v m (code), ngi lo v cch thc trnh by (with HTML, ...) do vic phn
nh r rng gia m (code) v ni dung (content) tr nn rt cn thit trong vic pht trin cc trang web.
ASP.NET gii quyt vn bng 2 hng nh sau:
Tin Trnh X L
By gi, ta s tm hiu v tin trnh x l trang web nh th no khi c khch vng lai ving thm (hoc lt mng) trang
ASP.NET ca ta.
Khi c ngi yu cu tham kho trang web ca ta, trc ht ASP.NET s bin dch (compile) m phn Code Decalration
Block trong trang ASP.NET. Nu mt cht, ta nhn thy c mt s tr hon mc du nh nhng hay khng ng k trc
khi browser hin th trang web , nhng nu cng chnh trang c ving thm ln th nh hoc nhng ln sau th s
tr hon ta nhn thy trc kia s bin mt, l do l v trang c bin dch ri, ASP.NET ch c vic dng m thi ch
khng cn phi bin dch ln na, do hiu sut gia tng ht sc ngon mc. Nh l m c ASP.NET bin dch thnh
MSIL, CLR qun l v sau bin dch thnh ngn ng gc ca my (native machine language) trc khi trang c gi
v browser ca Client. Ngun m (code) m ta lp trnh trong trang web c lu tr mt ni ring bit, CLR s thm chng
lun lun, phng trng hp ta thay i ngun m th lp tc CLR s bin dch li 1 cch t ng trang web m khng cn
ta phi lm g c.
Sau khi trang web c bin dch, ASP.NET bt u tin trnh x l tt c ngun m k c cc s c (events) t nh ta g vi
ch trong hp ch (text box) hoc nhp (click) mt nt no th b my ASP.NET (ASP.NET engine) s nghin cu, kho
st bin c quyt nh cch phn ng v thi hnh p ng li bin c theo k hoch lp trnh quy nh trc.
Tip theo, ASP.NET bin i tt c cc Server Controls trong trang web ra thnh nhng yu t HTML tng ng (HTML
elements) t nh bin i <asp:Label> control ra thnh HTML <span> </span> hin th hng ch "Welcome to Kha T
Hc ASP.NET - Vovisoft" nh th d ang phn tch trn (ta s thy HTML element ny khi quan st ngun m bng cch
chn View, Source lc trang ASP.NET ca Bi 01 - Bi Tp 2) hin th trong Client Browser. ASP.NET cng nh gi nhng
ngun m ca Code Render Block (nu c) v cng sn xut ra nhng yu t HTML tng ng.
Cui cng, ASP.NET s gi kt qu chung cuc di dng HTML ti Client Browser, Client Browser ch nhn c trang
web di dng ph hp vi tiu chun ca HTML, trong ASP.NET du bin i cc ngun m hoc cc control thuc phm
vi Server (Server Side Code and Controls).
Nh vy, ta c th dng bt c mt Web Browser no (khng nht thit l MSIE) cng c th hin th cc trang ASP.NET,
tht vy i vi Client Browser th trang ASP.NET cng ch l mt trang HTML n gin nhng c phn ui ni thm
(.aspx) hi l m thi.
Lu , y l mt khi nim ht sc quan trng, ta cn hiu cho thu o, b qua c th s ... 'n nn hi hn sut i'.
Browser chng qua ch l mt ng dng ht sc th ng (dump application) vi nhim v din dch cc yu t HTML m
thi. ASP.NET nm vng iu , cho nn mi ln ASP.NET mun gi ti Brower nhng g, n u dch ra hay bin i ra
dng HTML. Khng nhng vy, ASP.NET cn kho lo vn dng HTML ngy th (nhng d thng) cn thi hnh
nhng tin trnh x l c bit (m ta s tham kho nhng bi hc k) cho ASP.NET pha Server m hon ton khng hay,
khng bit g ht.
End Sub
</script>
<html>
<body>
<font size="5">Simple Application</font><hr><p>
<form runat="server">
Please enter your name:
<asp:textbox id="tbMessage"
OnTextChanged="tbMessage_Change"
runat=server/>
<asp:button id="btSubmit" Text="Submit"
runat=server/><p>
<asp:label id="lblMessage" font-size="20pt"
runat=server/>
</form>
</body>
</html>
2. Hin th trang ASP.NET ny vi IE Client Browser v g hng ch di y vo hp a ch (Address):
http://cantho/VovisoftASPNET/Bai02/baitap01/simple.aspx ri nhn nt <Enter>. Ta c th g tn ca mnh vo hp ch k bn
hng danh hiu (label) "Please enter your name:" v nhp vo nt Submit, ta s c 1 trang ASP.NET cho mng khch vng lai nh
sau:
Phn Ch Thch:
<form runat="server">
Please enter your name:
<asp:textbox id="tbMessage"
OnTextChanged="tbMessage_Change"
runat=server/>
<asp:button id="btSubmit" Text="Submit"
runat=server/><p>
<asp:label id="lblMessage" font-size="20pt"
runat=server/>
</form>
Phn HTML ny dng trnh by cc Server Controls trong trang ASP.NET theo th t t trn xung di, cc thay i
khc (t nh thay i do vic khi ng 1 s c no ) s do phn Script chm nom v thi hnh.
Mi Server Control u mang 1 ID quy c v duy nht, th d:
<asp:textbox c ID duy nht l tbMessage trong quy c tb c ph bin v chp nhn ring bit cho cng c textbox,
s c OnTextChanged c tn gi l 'tbMessage_Change' v Server Control ny <asp:textbox c thi hnh Server Side.
Cc Server Control k gm c <asp:button (ID btSubmit) v <asp:label (ID lblMessage) dng cho nt bm (ta cng c th
dng quy c btn hay bt cho nt bm) v nhn hiu vi quy c lbl.
Bi Tp 2:
Mc ch:
Trong bi tp ny, ta s xy dng mt trang kim tra vi php ton n gin t nh php cng, php tr, php nhn v php
chia vi 2 con s nguyn. Ngi dng s g vo 2 con s nguyn v sau chn php tnh bng cch nhn nt bm c du +,
-, * hay / hin th kt qu.
1. Chy ng dng Notepad v g nhng hng ch lp trnh y chang nh di y v lu tr (Save As) trong folder D:\Net\Vovisoft
ASPNET\Bai02\baitap02\math.aspx vi encoding UTF-8:
<HTML>
<HEAD>
<script language="VB" runat="server">
Sub btAdd_Click(Sender As Object, E As EventArgs)
lblMessage.Text = "Addition Result: " & Cint(tbNumber1.Text) + Cint(tbNumber2.Text)
End Sub
Sub btSubtract_Click(Sender As Object, E As EventArgs)
lblMessage.Text = "Substraction Result: " & Cint(tbNumber1.Text) - Cint(tbNumber2.Text)
End Sub
Sub btMultiply_Click(Sender As Object, E As EventArgs)
lblMessage.Text = "Multiplication Result: " & Cint(tbNumber1.Text) * Cint(tbNumber2.Text)
End Sub
Sub btDivide_Click(Sender As Object, E As EventArgs)
lblMessage.Text = "Division Result: " & Cint(tbNumber1.Text) / Cint(tbNumber2.Text)
End Sub
</script>
</HEAD>
<BODY>
<font size="5">Simple Mathematics</font><hr><p>
<form runat="server">
Number 1: <asp:textbox id="tbNumber1" runat=server/><br>
Number 2: <asp:textbox id="tbNumber2" runat=server/><p>
<asp:button id="btAdd" Text=" + " OnClick="btAdd_Click" runat=server/>
<asp:button id="btSubtract" Text=" - " OnClick="btSubtract_Click" runat=server/>
Phn Ch Thch:
<script language="VB" runat="server">
Sub btAdd_Click(Sender As Object, E As EventArgs)
lblMessage.Text = "Addition Result: " & Cint(tbNumber1.Text) + Cint(tbNumber2.Text)
End Sub
...
...
</script>
Phn script ny dng thi hnh cc php ton cng, tr, nhn v chia cc s nguyn ty theo s chn la ca user, trong nt c
du (+) s khi ng s c btAdd_Click v subroutine btAdd_Click p ng bng cch cng 2 s nguyn c a vo 2 hp
ch Number 1 v Number 2 vi nhau, sau lu tr kt qu lblMessage.
Lu y, ta dng nhm t 'lu tr kt qu' ch khng 'hin th kt qu' phn script ny. Lu tr bng cch n nh
lblMessage.Text bng "Addition Result: " v kt qu php cng, cn phn trnh by, ta ph mc cho m HTML.
<BODY>
<font size="5">Simple Mathematics</font><hr><p>
<form runat="server">
Number 1: <asp:textbox id="tbNumber1" runat=server/><br>
Number 2: <asp:textbox id="tbNumber2" runat=server/><p>
<asp:button id="btAdd" Text=" + " OnClick="btAdd_Click" runat=server/>
<asp:button id="btSubtract" Text=" - " OnClick="btSubtract_Click" runat=server/>
<asp:button id="btMultiply" Text=" * " OnClick="btMultiply_Click" runat=server/>
<asp:button id="btDivide" Text=" / " OnClick="btDivide_Click" runat=server/><p>
<asp:label id="lblMessage" font-size="15pt" runat=server/>
</form>
</BODY>
Phn m HTML ny ch dng trnh by cc controls trong trang web m thi, y di hnh thc 1 form, ta b tr 2 textbox cho
Number 1 v Number 2, 4 nt bm Cng, Tr, Nhn, Chia v 1 nhn hiu lblMessage hin th kt qu php ton n gin. Tt c
u c thi hnh Server Side.
Tm tc
Nh vy, ta tm hiu thm v cu trc v s lc qua c php cng nh vi mnh lnh, cng c (controls) c bn dng trong cc
trang ASP.NET, iu ny s gip ta xy dng nn tng cho vic son tho cc trang ASP.NET phc tp hn trong tng lai. Ta s
tip tc o su thm v ring bit v cch x dng cc server controls, user controls, kiu mu Event-Driven cng nh tc ng h
tng (interact) gia ASP.NET v .NET framework.
C 1 iu ta cn nhc nh, nu bn khng c cc nhu liu cn thit nh lit k trang Ro Trc ca kho T Hc ASP.NET
t nh Visual Studio.NET, MS SQL2000 Server, ... th lm sao c th theo hc thnh cng kho ny, nht l ta li mun x dng cc
giao din c bin son sn gip vic lp trnh thm thoi mi v ho hng. Do khng phi ai cng c phng tin hay ngn
sch trang b cho mnh cc nhu liu nu trn nn vic t hc cng thm ... kh khn trm b. 'Ci kh ... n b ci khn' l vy.
Nhng ... cc bn hy qung gch lo i, v 'may m c em, i cn ... d thng'. Em y l Web Matrix. Web Matrix c ci tn
chnh thc l Microsoft ASP.NET Web Matrix Project. l 1 d n c xy dng v do nhiu K S Tin Hc thin nguyn
(chuyn tr v .NET) ng gp. Ci ... nht l Web Matrix c cung cp min ph (free), do ta xi 1 cch thoi mi v hn
na, Web Matrix rt nh (ch khong 1.2 MBytes - so vi MS Visual Studio.NET th ging nh con chut Mickey so vi con ...
khng long) nhng rt p li uyn chuyn d dng nh MS Visual Studio.NET vy.
Do , bi s 3 s 'Gii thiu v Web Matrix' , v s khc bit i vi MS Visual Studio.NET, v vic ci t v b tr cng nh
cch x dng ca Web Matrix cho vic lp trnh cc trang ASP.NET
Bi lm nh
Cu hi 1: Lm sao phn bit c gia Code Declaration Block v Code Render Block?
Cu hi 2: Nh th no l Code Behind Model?
Bi lm 1: Pht trin 1 trang ASP.NET dng hin th cun lch (Calendar).
(Lu : phn gii p s c trnh by bi hc k).
Bi 03
Gii thiu v WEB MATRIX
Th tay m ngt cng ng
Thng em t rut, gi ... ng l
Ca Dao Vit Nam
S lc v Web Matrix
Khc bit gia Visual Studio.NET v Web Matrix
Cc c im ca Web Matrix
Ci t Web Matrix
i do mt vng vi Web Matrix
To trang ASP.NET vi Web Matrix
S LC V WEB MATRIX
Trc khi mang tn cng cm nh hin nay, Microsoft ASP.NET Web Matrix Project (gi tt l Web Matrix) khi u vi tn Web
Studio, chuyn sang tn Mongoose, Project Saturn, Tahiti Project v cui cng l Microsoft ASP.NET Web Matrix.
Tn Web Matrix c chn mang tnh cht sng to v thit lp c mi lin h trong cng ng cc Chuyn Gia hay K S Tin
Hc v ASP.NET. D n c hnh thnh do s ng gp ca nhiu K S Tin Hc thin nguyn b rt nhiu thi gi ring t
him hoi (thng l cc bui ti trong ngy v cui tun) mong to s hp tc chung cho cng ng ASP.NET ch khng chnh
thc khi xng hay to nn t Microsoft. Bn c th tham kho chi tit v tin trnh hnh thnh Web Matrix cng nh danh tnh
cc K S Tin Hc ng gp vo d n ny trong ni Web Matrix and Project Team.
Web Matrix c phc tho cho cng ng ASP.NET nn ta dng min ph, Web Matrix li d xi v rt p. Tng cng cn ni
qua, mt trong cc mc tiu c bn ca d n Web Matrix l to iu kin ng gp chung trong cng ng pht trin mng nn
nhng ngi khi xng d n lun khuyn khch ta ti xung, ci t, x dng v gii thiu Web Matrix cng nh ng gp kin
trn din n ca Web Matrix Web Matrix c hon chnh hn.
Cc K S Tin Hc dng ngn ng lp trnh C# v .NET framework cu to ra Web Matrix. Khong chng 800 Classes v hn
150,000 m (lines of code) c dng trong d n ny vi bit bao cng sc v thi gi c u t vo khng th no k xit.
Do , mc d Web Matrix rt nh ( dng ti xung ch c 1.2MB) nhng khng nhng Web Matrix l mi trng pht trin cc
trang ASP.NET v mng mt cch n gin v hu hiu, m cn c dng to cc user controls, cc classes ( bin dch thnh
assemblies), cc dch v v mng (Web Services) v ngay c HTML Handlers na. Ngoi ra, Web Matrix cn ym tr cu to cc
trang HTML thun ty, cc style sheets, cc lc v ti liu XML (XML schemas and documents), cc SQL scripts cng nh
vic nh hnh cc tp tin v .NET (.NET configuration files such web.config and global.asax).
Mc d Web Matrix v MS Visual Studio.NET u l nhng cng c pht trin mng rt tuyt vi v hon chnh nhng c vi im
khc bit cn lu nh sau:
Tuy nhin, mc d Web Matrix vt tri Visual Studio.NET trong nhiu phng din, Web Matrix cng thiu st vi tin nghi m ta
thch, t nh khng ym tr IntelliSense, khng ym tr Debugging cc trang ASP.NET
Tht s, Web Matrix thch hp cho nhng ai 'p trai (hay p gi), hc gii, con nh ... ngho' v 100% 'free' rt tn. Ta th ngh
li xem, Web Matrix em li nhiu hng th v khung IDE kh hn nhiu so vi Visual Studio.NET v Web Matrix chuyn tr
cc trang ASP.NET. Cn Visual Studio.NET c th dng to ra cc thnh phn (components), cc cng c c ch (custom
controls) hay cc ng dng v .NET (.NET applications). Tuy Web Matrix thiu ym tr IntelliSense nhng khng buc ta phi
dng code-behind development.
Ta s tip tc tm hiu thm v Web Matrix trong cc phn mc k tip v chc chn Web Matrix s li n tng su m cng
nh nh hng ln lao n cng ng pht trin ASP.NET hin ti v tng lai. y ta cng ng nn cho khm phc v xin gi
mt li cm n chn thnh n nhng ngi gp phn to nn mt sn phm tuyt vi nh Web Matrix.
CC C IM CA WEB MATRIX
ASP.NET Page Designer
Web Matrix l mt cng c WYSIWYG (What You See Is What You Get) rt d xi, c to ra nhm chuyn tr pht trin cc
trang ASP.NET. Ta c th ko l (drag and drop) cc ASP.NET Server Controls t hp cng c (Tlbox) vo trong trang Web vi
y tt c cc c tnh (porperties) cn thit c th sa i thch hp mc tiu ca trang Web, nhp i 1 Server Control trong
trang Web s t ng m ra phn m (Code View) ta son ngun m cho cc s c (events) lin kt tng ng vi cc Server
Event Handler.
CI T WEB MATRIX
Trc khi ci t Web Matrix, ta cn kim tra xem cc nhu liu sau y c ci t thnh cng cha:
.NET Framework.
IE Version 5.5 tr ln.
Windows Installer Version 2.0 tr ln.
MS Office 2000 nu ta mun dng MS Access vi MSDE (MS Data Engine) lm c s d liu.
MS SQL 2000 Server nu ta mun dng SQL Server lm c s d liu.
2. Nhp Next v chn Install. Nu ta ci Web Matrix, chn Modify ci li hoc chn Repair sa cha Web Matrix. Sau
theo hng dn chn ch cha ng dng v hon tt vic ci t.
5. Di , ta thy Toolbar tiu chun ca Web Matrix. Standard Toolbar ny gm 1 bng cha mi cng c dng cho vic pht
trin cc ng dng ASP.NET
6. Hp cng c (Toolbox) nm phi tri ca Windows chnh, cho php ta chn v ko l (drag) cc controls vo trong trang Web,
Form hay cha cc cng c do ta c ch hoc do nhp t bn ngoi. Toolbox gm c 4 ngn: HTML Elements (cho cc HTML
tags), Web Controls, Custom Controls v My Snippet.
7. Windows chnh ca Web Matrix gi l Document Window, ni y hin th trang Web ta phc ho. Window ny t ng to ra
khi ta m hay to 1 ng dng ca Web Matrix.
Pha bn di Document Window gm 4 ngn (tabs) cho 4 dng (mode) ring bit ca cng 1 trang Web: Design, HTML, Code and
ALL (kt hp gia dng HTML v Code).
8. Workspace Window nm pha trn bn phi gm c 3 ngn: Workspace, Data v Open Items.
Workspace Window l ni ta t chc hay quan st File System (H Thng Tp Tin), cc Directories, cc tp tin da cng
cc b (local hard drives) hay mng (network drives), ...
Data Window dng ni cc c s d liu (Database), m cc tables hay lu tr cc stored procedures. Nu ta khng ci
MS SQL Server 2000, Web Matrix cung cp ni ti v ci MSDE (MS Data Engine) dng vi MS Access thay v SQL
2000.
9. Properties Window nm pha di bn phi gm c 3 ngn: Properties, Classes v Community. Properties Window dng nh
r tnh cht v cch biu hin trang Web, document v cc controls ca Web Matrix. Ni y cng l ni ta quan st v truy tm cc
.NET Assemblies hay 'ni ... vng tay ln' ti cng ng ASP.NET tm kim cc tr gip cn thit.
Mc ch:
Trong bi tp ny, ta s xy dng mt trang ASP.NET vi Web Matrix dng hin th 1 cun lch ch r ngy, thng, nm nh
sau:
Cc bc th t nh sau:
1. Chy ng dng Web Matrix. Trong Add New File window, chn General Templates pane v chn mu ASP.NET Page. G vo
hp ch Location hay dng nt Browse chn D:\Net\Vovisoft ASPNET\Bai03\Calendar v tn ca trang Web l calendar.aspx
v nhp nt OK.
Templates (General)
Location
Filename
Language
ASP.NET Page
D:\Net\Vovisoft ASPNET\Bai03\Calendar
calendar.aspx
Visual Basic.NET
2. Trang Web calendar.apsx s m ra di dng Design v sn sng cho ta x dng. T hp cng c (Toolbox), ta ko l (drap) mt
cng c Nhn Hiu (Label) vo Document Window v nhn nt Enter m u 1 on vn (paragraph) mi. Sau , ta ko l cng
c Calendar vo v t di nhn hiu trn.
Ta nh tnh cht ca cng c nhn hiu nh sau:
Label ID
Fonts
ForeColor
Text
lblTitle
Medium
Blue
Create Calendar with Web Matrix
3. Chn cng c Calendar trong Document window. Nhp Auto Format ... (nm bn di Properties Window) v chn kiu mu
Colorful2 nh sau:
4. Nhp nt Run chy ng dng. Nt Run ny nm trn Toolbar, gia 1 hp ch v nt Toggle Toolbox:
Cch 1: Dng Web Matrix Server chy trang Web trong mi trng ca Web Matrix vi port mc nh l 8080.
Cch 2: Dng IIS (Internet Information Server) to Application (ta c th dng virtual directory VovisoftASPNET
m ta b tr trc y) chy trang Web trong MS Internet Explorer (IE).
Khi dng cch 1 chy i chy li trang Web iu chnh hay sa li, ta phi ngng (stop) Web Matrix Server
chy li, nu khng ta s to ra qu nhiu instances ca Web Matrix Server c th lm r memory (memory leaking).
y l kt qu hin th trang Web cch th nht vi localhost v port 8080 c vit di dng localhost:8080
v hin th dng IE nh sau (trong trng hp ny, ta phi g ng i ch (URL) ca trang Web calendar.aspx mi c th hin th
nh :
Tm tc
Nh ta c dp lm quen v so snh gia cc phng php x dng cc cng c cho vic pht trin cc trang Web khc nhau, t
Notepad, Visual Studio.NET v by gi Web Matrix. C nhiu ngi ngi dng Web Matrix v tnh cch cng ng ca n v nht
l khng c ym tr trc tip ca Microsoft. Nh l Web Matrix c phc tho (design) chuyn tr cc trang ASP.NET, cn
nu mun dng cho cc ng dng khc, u ai ngn cm ta dng Visual Studio.NET. Trong mi trng pht trin ng dng ca cc
c s chnh ph, cc cng ty thng mi hay cc ngn hng, ta nn dng Visual Studio.NET thay v Web Matrix v c ym tr
ca Microsoft nhng t hc (trong s hay ti nh) hay chun b mu cc trang ASP.NET, Web Matrix l nhn tuyn thch hp
nht, cng x dng Web Matrix cng lu, tnh ngha cng thm ... m thm tha. Ring ti th ti ... 'ghin' Web Matrix ri
nn 'cn ... cht g nh, qun' na m ni, m bn.
Ngun m bi tp 1
References
Ti Web Matrix y.
Bn c tham kho thm v Web Matrix cng nh cc Tutorials dng Web Matrix c son tho do nhm ch trng v
thit k Web Matrix. y, cng c Din n gii p cc thc mc hay tr ngi ca bn khi dng Web Matrix t nh
vic ci t Web Matrix, vic ci t MSDE, ...
Bi lm nh
Cu hi 1: Web Matrix c g u vit so vi Notepad, Visual Studio.NET?
Cu hi 2: K vi c trng ca Web Matrix?
Bi lm 1: Dng Web Matrix pht trin 1 trang ASP.NET trong bn tp khai ph v x dng tt c cc cng c c sn trong
hp cng c (Toolbox) t HTML, Serever Controls cng nh lm quen cch xc nh tnh cht c trng cho tng control mt vi
Properties Windows.
Bi lm 2: Ti MSDE (sau khi ci Web Matrix, vo trong Workspace Windows ngn Database truy tm ni ti MSDE), ci t
MSDE vo my vi tnh ca bn cng nh tham kho cc gii p lin h n s tr ngi khi ci t MSDE.
Bi 04
Dng ASP.NET Objects vi VB.NET
(Part I)
ai bit la my cy
Bit sng my khc, bit my my tng
ai qut sch l rng
ta khuyn gi, gi ng rung cy
Rung cy, rung ci, rung cnh
Rung sao cho chuyn lng anh thng nng
Ca Dao Vit Nam
ai c th tham kho cc i tng dng trong ASP.NET m khng c khi nim v phng php lp
trnh theo khuynh hng i tng (Object Oriented Programming). Cc bi vit v OOP v Visual
Basic.NET do thy L c Hng son c trnh by trang nh, ta nn tm hiu trc lm hnh
trang cho vic dng ASP.NET Objects.
Tht ra, nu ASP.NET ch dng ngn ng lp trnh VB.NET cng vi nhng c trng ca ngn ng
ny thay v VBScript hay JavaScript pht trin (develop) trang Web th ta s khng ly g hng th
cho lm. iu quan trng y l .NET Framework bao gm c ASP.NET trong cu trc nn, do
ASP.NET khai thc c mi ti nguyn m .NET Framework cung ng gm c hng trm classes
(built-in classes) cng nh hng nghn i tng (object) xy dng sn, gip ta nng cao (enhance) v
m rng cc chc nng (functionality) cc trang Web 1 cch d dng hn.
Trong bi 'Dng ASP.NET i tng (object) vi VB.NET', ta s ln lt tm hiu:
OBJECTS C BN
i tng (Object)
Nh ta bit (hay bit nhng qun ?), Objects biu hin cho mt cm (hay nhm, b phn) ngun
m c th ti s dng (reusable code) trong nh ngha r rng v y cc loi (classes - lp hay
hng) i tng (object) l g cng nh phng php dng cc i tng (object) cng vi cc d liu
(data) ca n.
.NET Framework, ta c th tm thy loi (classes) nh ngha r rng cc i tng (object) dng
cho ASP.NET nhng trong thc t, c nhiu loi (classes) khng dng hay lin quan g n ASP.NET
m nu mun, ta vn c th dng c nh thng v nh trnh by, ASP.NET l 1 b phn trong cu
trc ca .NET Framework .
c tnh (Properties)
Properties l cc bin s dng miu t i tng (object), t nh cy kim gi, kim pht v kim giy dng
miu t ci ng h chng hn.
Methods
Methods l cc phng php dng i tng (object), t nh b tr gi, ln giy thiu hay thay pin
cho ng h nu trn.
Object Instances
Trc khi ta c th s dng mt i tng (object), ta cn to ra mt instance ging nh ta c khun
(class, object) to ra mt bc tng c bit no (instance). Nh vy, khi lp trnh, ta nh b tr mt
bin s (variable) nm gi mt instance trong b nh (memory) ca my vi tnh. Lu l ta phi phn
bit c s khc nhau gia 1 i tng tht s (actual object) v 1 i tng nh hnh (instance), bng
khng chc chn ta s vo 'm hn trn' khng li thot.
Tr li th d v ci ng h, ng h ni chung l ... 'ci ng h', hay gi l 'generic object'. ng h
ca ta l 1 instance ca ci ng h (d nhin ta s khng cho php ai ... cm nhm). ng h ca bn
ta cng l 1 instance. C hai tuy u l ng h nhng c c tnh khc nhau, t nh ng h ta bng
vng, ng h bn ta bng bc, ...
Nu dng VB.NET:
Clock objClock as New Clock()
trong :
Static Member
Thnh vin c nh (static member) c dng trc tip b tr c tnh (properties) hay gi methods
trong 1 object. Tr li th d v ci ng h, t nh ta b tr 1 my m (counter) trong khun (class)
ng h kim tra xem ngi dng c bao nhiu ci ng h (clock instances) chng hn. iu
ng l counter khng thuc v 1 instance no ht - n c gn dnh lin trong ci khun ng
h. cng b (declare) c tnh trc tip, ta dng keywork static.
ASP.NET OBJECTS
Trong hng nghn ASP.NET Objects, ta ch c th xem xt 1 s nh tiu biu nh sau:
Response Object
Request Object
Page Object
Session Object
HttpCookie Object
HttpApplication
HttpServerUtility Object
Response Object
Response object cho php Server p ng, tr li hay thng tin vi Client.
Ch thch:
Mi khi user yu cu hin th 1 trang Web, ASP.NET to ra 1 i tng nh hnh (instance) t i
tng (Object) HttpResponse c cha y c tnh v phng php (method) cn thit thng tin
vi Client browser. Tn c nh ca instance l Response trong c phng php (method) Write
dng vit v hin th 1 hng ch browser.
k hiu \> cui m sau y. Nu ta khng dng k hiu \ phn bit 100%\> v 100%>,
ASP.NET s tng ta dng %> chm dt phn script block v s to li.
Response.Write("<HR width=100%\>")
K hiu \ l 1 character sequence c bit vi tn thng dng escape character dng phn bit cc k
hiu c bit c th trng vi cc k hiu ca ASP.NET hay ca VB.NET nhng nu mun hin th
double quotes, ta dng double quotes double quotes.
Response.Write("<HR width=" "100%" ">")
Buffering Pages
ASP.NET dng buffer kim sot (control) khi no gi sn phm (output) ti browser. y cng l
kiu mu chnh (default method) ASP.NET dng, khi output c buffered, ASP.NET ch cho ti khi
no tt c ngun m c thi hnh mi gi ti browser ... 'mt ln ri thi'. Trong kiu unbuffered
output, m s gi ti browser tng cm hay tng phn mt - y mun ni ti 'output of each method'.
Nu ta mun tt buffer (turn buffering off), b tr m Buffer = false trc khi gi i browser:
<% Response.Buffer = False %>
<html>
<body>
...
...
</body>
</html>
Clear
Flush
End
Phng php (method) Clear dng xa (clear) buffer, Flush dng gi tc khc ni dung buffer,
cn End dng chn (stop) khng cho buffer gi sn phm mi i m ch cho php gi nhng g ang
cha trong buffer m thi nh th d sau:
<%@ Page Language="VB" %>
<script runat="server">
</html>
Trang ny s chuyn user ti trang nh ca Vovisoft trc khi user thy c ch 'Hello'. y cng l
cch thc ta dng chuyn user qua 1 trang Web khc sau khi xc nh tn v mt m (username and
password) ca user trong 1 form chng hn.
Request Object
Request object dng thng tin gia Server v Client browser. Browser dng Request object gi
thng tin cn thit ti Server. Ging nh Response, Request object l instance ca HttpRequest. Nh
vy, Request object i din cho Client khi yu cu trang Web, cn Server s dng va Response va
Request p ng yu cu hay i hi thng tin t Client.
Tuy vy, object ny khng cn thit v ASP.NET lo lng, m ng hu ht trch nhim thng tin
gia Server v Client browser dm ta. Nu cn th ta c vic dng, khng sao c, cng vui (the object is
still there for your use).
Mt ng dng quan trng ca Request object l thu thp thng tin ca Client browser. Thng, thng tin
ca Client browser c gi i di dng form hay querystring (querystring: thng tin gi km vo
phn ui ca request URL).
Ta n c 1 th d dng querystring nh sau:
http://www.vovisoft.com?username=NangVu&password=forget
trong , username=NangVu v passwors=forget l 2 d kin (data) di dng cp key/value (key/value
pairs). username v NangVu l kho v gi tr th nht, password v forget l kho v gi tr th nh,
... Cn ? ch th cho bit c thng tin nh km v & dng phn bit cc cp key/value vi nhau. Nh
vy, ta bit c tng cng 2 d kin (data) c chuyn i t Client browser.
Lu :
Thng th Querystring ch dng ti a 255 characters.
Server c th tm li d kin t querystring nh sau:
'Tm li ton b thng tin "username=NangVu&password=forget"
Request.Querystring
Cng cn nhc y, ta c th dng Request thu thp thng tin v ServerVariables v Cookies.
ServerVariables cha thng tin ca Server t nh IP address hay HTTP protocol, ... Cookies (di
hnh thc 1 tp tin) cha thng tin cn thit chnh my vi tnh ca user (Client's computer).
Di y vi bin s (variables) thng dng trong b ServerVariables Collection:
Variable
URL
PATH_INFO
PATH_TRANSLATED
SERVER_NAME
Cng dng
cha thng tin v URL ca trang Web
tng t nh URL
physical path ca ASP.NET Server site
tn Web Server, t nh cantho
tn nhu liu s dng cho Web Server, t nh MicrosftSERVER_SOFTWARE
IIS/5.0
Page Object
Page object gm tt c c tnh (properties), phng php (method) dng cho cc trang ASP.NET v
xut x t Page class .NET framework.
Trong khi nim v OOP (Object Oriented Progamming), 1 khun mu (class) nh ngha mi c
tnh v phng php (method) cn thit cho class cng nh k tha mi c tnh v phng php
(method) ca cha m hay t tin hoc c th to ra thnh vin con, chu , ... (inherit its member and also
create your own members for the child class).
p dng li suy ngh nh vy vo cc trang ASP.NET. Ta thy, cc trang ASP.NET l child objects ca
Page object. Mi c tnh (properties) v phng php (method) ta nh ngha trong trang ASP.NET tr
thnh thnh vin trang Web, nh vy khi ta to ra 1 trang Web khc t trang Web th nht, n s tha k
mi c tnh (properties) v phng php (method) theo kiu ... 'cha truyn con ni'.
Page object gm vi thnh vin c bn, t nh:
Load
IsPostBack
Databind
Load dng khi ng (fire, start or activate) khi trang Web bt u hin th browser. IsPostBack
cho ta bit form trang Web c gi i ti cng trang Web hay khng? Cn Databind ni kt mi
d kin (data) t c s d liu (database) vi cng c (controls) trang Web. Ta s tham kho Databind
bi ni v Database.
Bi tp 1:
Mc ch:
Trong bi tp ny, ta tp cch s dng Load event trang ASP.NET. Tht ra, ta c th thi hnh c
nhiu vic vi s c ny t nh xc minh l lch user, chuyn data t c s d liu (database) hay chuyn
user qua 1 trang Web khc, ... y, ta mun hin th cu cho x giao ty theo gi gic mi khi user
lt trang Web ca ta nh sau:
Cc bc th t nh sau:
1. Chy ng dng Notepad v g ngun m sau:
<%@Page Language="VB" %>
<script runat="server">
3. Kim tra cu cho c thch hp hay khng bng cch thay i gi ca my vi tnh trc 12 gi tra, t
12 gi tra n 6 gi chiu v sau 6 gi chiu khi chy trang Web.
Phn Ch Thch:
dim Now as DateTime = DateTime.Now
dim intHour as integer = Now.Hour
ToString("T") l phng php (method) chuyn dng 'Th Gi' thnh hng ch (string) hin th.
y, ta nhn thy c 1 argument "T" biu hin cho 'gi' di dng 3:07:30 PM chng hn.
Di y l bng lit k cc arguments dng cho i tng (objects) DateTime:
String as argument
Example
"d"
1/26/2002
"D"
"f"
"F"
"g"
1/26/2002 5:30 PM
"G"
1/26/2002 5:30:45 PM
"m"
January 26
"r"
"s"
2002-01-26T17:30:45
"t"
5:30 PM
"T"
5:30:45 PM
"u"
2002-01-26 17:30:45Z
"U"
"y"
Januray, 2002
Thursday, January 26
"M/yy"
1/02
"dd-MM-yy"
26-01-02
Session Object
Trong bi 01 'Lm Quen vi ASP.NET', ta bit mt khi Client nhn c thng tin (information)
t Server ri, qu trnh trao i qua li kt thc ngay tc khc. Sau , Server v Client tr thnh ...
'ngi xa l', coi nh l cha tng bao gi gp nhau (stateless model), ta gi l kiu ... 'lm ng' v nh
vy, khi gp li, ta bit l c ... 'duyn n' g vi nhau hay khng l nh i tng (objects) Session.
Session object cho php ta lu gi thng tin v ... 'ngi y' di cc dng nh bin s (variables),
objects, strings hay ... bt c loi thng tin no c dnh dng ti h ti mt ch no Server trong lc
h 'rong chi' trong site ca ta. Ch khi no ngi lt mng b ta 'sang ... ngang' hay nhy qua 1 site
khc, by gi Session mi kt thc, mi thng tin v ... 'ngi y' u c xo sch v ngi y tr
thnh ... 'c nhn', hay ng hn, l ... 'ngi dng'.
Bi tp 2:
Mc ch:
Dng Session object lu tr thng tin ngi lt mng v dng thng tin i thoi h tng vi
nhau.
Cc bc th t nh sau:
1. Chy ng dng Notepad v g ngun m sau:
<%@Page Language="VB" %>
<script runat="server">
Phn Ch Thch:
if tbName.Value <>""
Session("Name ")=tbName.Value
Response.Write("Hi " & Session("Name ")&"!")
else
Response.Write("You forgot to enter a name.")
end if
phn Script, ta kim tra 1 cch n gin xem user c tht s g ch no vo trong hp ch 'tbName'
hay khng? y, ta tm b qua vic validation (ph chun hiu lc) v s tm hiu thm cc bi sau.
Khi user g tn vo hp ch, ta to 1 bin s (variable) thuc Session object gi gi tr (hay ni dung,
value) ca hp ch v s vn dng cc bin s (variables) trong bi tp k.
Bi tp 3:
Mc ch:
To 1 trang Web khc dng Session object truy tm v s dng bin s ca Session bi tp 2. Nh
ng ng (close) browser ta va dng hin th trang Session.aspx trn.
Cc bc th t nh sau:
1. Chy ng dng Notepad v g ngun m sau:
<%@Page Language="VB" %>
<script runat="server">
sub Page_Load(obj as object,e as eventArgs)
lblWelcome.Text ="Welcome back " & Session("Name ")
end sub
</script>
<html>
<body>
<form runat="server">
<asp:Label id="lblWelcome" runat="server"/>
</form>
</body>
</html>
2. Lu tr tp tin vi tn SessionVariables.aspx folder 'D:\Net\Vovisoft ASPNET\Bai04\Session' v
hin th trang Web vi URL sau: http://cantho/VovisoftASPNET/Bai04/Session/Session.aspx
Ta thy Session truy tm c thng tin trang Web khc qua bin s (variables) Name m ta cung
cp:
Phn Ch Thch:
Ta th tm hiu xem lm th no ASP.NET c th qun l i tng (objects) Session? Thng thng,
mi khi c ngi lt mng, Session s c to ra cho ngi 1 instance, n nh 1 l lch (Session
ID) ring bit, duy nht v lu tr my vi tnh ca user di dng cookie. Nh vy, khi user lt t
trang ny qua trang n, ASP.NET s truy tm v c li gi tr ca cookie xc nhn user thuc v
session no vi mnh lnh sau:
Response.Write(Session.SessionID)
Session ID ny di 120-bit string, bo m tnh cht duy nht cho tng user. Khi session ti hn k,
cookie s c xa sch (trn thc t, tnh trng ny c th c thay i v kim sot - tuy vy ta khng
bn chi tit y).
Kim sot (control) Session Object
C nhiu cch kim sot i tng (Object) Session trong trang ASP.NET, c bn gm c:
Timeout
Abandon
Timeout dng b tr khong thi gian bao lu 1 Session c th ... 'ngi chi si nc' hay 'tht nghip'
trc khi ASP.NET 't' b session , t nh c ngi lt mng thm trang Web ca ta ri ... 'b i n
tra' hay ... 'ngi cht trn' khng nhp mi chut bt c g, session v cc thng tin lin h s ... 'tan
bin' trong vng 20 pht. 20 pht ny l gi tr timeout mc nh (default) nu dng IIS Version 5.0, nu
mun, ta c th thay i gi tr timeout thnh 60 pht chng hn:
Session.Timeout = 60
Mt cch tng qut, timeout 20 pht l l tng. Tuy nhin, ta c th thay i gi tr ty theo tnh cht
ca mng, i vi ngn hng (secure banking web site), timeout c th rt ngn nhng vi cc mng
thng nghip, timeout s lu hn. i lc, ta phi phc tho hay tnh ton trc kh nng ca Server
cho ph hp vi tnh hnh mng, ng ... 'nc n chn mi nhy'.
Abandon dng kt thc 1 session ngay tc khc. Th d, sau khi user kim tra email (Web Email)
xong v logout ngi khc khng th dng ... 'k' lc h vng mt, ta c th kt thc session bng
cch:
Session.Abandon
Mnh lnh ny s xo sch cc cookie tm thi (temporary cookie) cng nh cc thng tin lin h.
Lm vic vi Session
Session c vn dng nh Array. Ta c th xuyn sut (loop through) v vn dng (manipulate) cc
bin s (variables) ca Session.
Bi tp 4:
Mc ch:
Dng i tng (Object) Session b tr vi bin s (variables) v dng For ... Next xuyn sut
(loop through) v vn dng (manipulate) cc bin s (variables) ca Session.
Cc bc th t nh sau:
1. Chy ng dng Notepad v g ngun m sau:
<%@Page Language="VB" %>
<script runat="server">
Phn Ch Thch:
Khi n nh gi tr cho cc cp bin s (variables) ca Session, ta dng kiu key/value vi key l
argument ring bit v duy nht truy tm gi tr tng ng. Nh vy, ta ch cn gi Session vi key
lin h trong For ... Next loop , t nh : key Name vi gi tr Vovisoft, key Course vi gi tr ASP.NET
For Beginner Course, ... v gi tt c trong c tnh (properties) Text ca nhn hiu lblSession.
Sessions khng Cookies
Thng thng, ASP.NET dng Cookies lu tr Session ID v thng tin v user. Nhng, iu g xy ra
nu browser ca user khng ym tr cookies hoc trong nhiu trng hp, user khng mun (hay chp
nhn) ym tr cookies ?
ASP.NET dng 1 phng php (method) khc gi l Cookie Munging tin hnh vic bo qun session
khng cookies. Phng php (method) ny t khi ng nu ASP.NET pht hin ra user khng ym tr
cookies. Gi phi tr l vic thng tin s chm tr i cht v ASP.NET phi m ho v gii m (encode
and decode) Session ID cng vi cc thng tin lin h v t vo cc trang Web trc khi gi i. Tin
trnh th t nh sau:
Lu :
Ta dng i tng (Object) Session khi ta cn bo tr mt vi thng tin t nh username hay password.
Trong trng hp qu nhiu thng tin cn phi gi, phng php (method) dng cookies hay c s d
liu (database) thch hp v hiu qu hn cng nh trnh vic r memory ca Server.
Tm tc
Trong bi hc hm nay, ta tm hiu 1 s i tng (Object) c bn ca ASP.NET. Bi k s bn thm v
cc i tng (Object) khc nh HttpCookies, HttpAppliation v HttpServerUtility qua ta thu
lm kin thc v vi hot ng c bn ca ASP.NET
Cc i tng (Object) Request, Response v Session xem chng ging nh cc i tng (Object)
ASP c in nhng tht s cung cp nhiu cng dng, khi nim v phng php lm vic
(methodologies) khc hn, vng vng v hng mnh hn sau hu trng. Chng hn, i tng
(Object) Session c th lu tr cc bin s (variables) xuyn qua Server Farms cng nh kh nng lu
tr cc bin s (variables) ny ngay c khi Server ... 't' (crashes) hay ... 'sm' m ta s bn sau. V ngn
ng lp trnh VB.NET trong cc bi tp, ta s bn 1 cch i khi nhng g lin h n ASP.NET bi
hc s 6.
Bi lm nh
Cu hi 1: Static member l g?
Cu hi 2: ASP.NET c ym tr caching hay khng?
Bi lm 1: Dng Web Matrix pht trin 1 trang ASP.NET vi s c Load (Load event) v nhn hiu
(Label) hin th v thng bo cho user gi gic (current time) h ang lt mng v Session ID. Nh
kim tra c tnh (properties) IsPostback ca Page object kim sot v hin th thng tin ln u user
ving trang Web m thi, bn cng c th vn dng thm cng c Button v 1 thng bo (confirmation
message) cho user khi h logout.
Bi 05
Dng ASP.NET Objects vi VB.NET
(Part II)
Take it easy with me, please
Touch me gently like a summer evening breeze
Take your time, make it slow
Andante, Andante - Just let the feeling grow
Make your finger soft and light
Let your body be the velvet of the night
Touch my soul, you know how
Andante, Andante - Go slowly with me now
Andante - ABBA
HttpCookie Object
HttpApplication Object
HttpServerUtility Object
HttpCookie Object
Nh trnh by Cookie ch l 1 tp tin nh my vi tnh ca user trong cha mi thng tin c
trng cho 1 mng no , t nh tn ngi s dng v mt m (username and password) nhm lu tr
thng tin c bit lin quan n tng user mt khi user lt mng (customize a user's visit to a site).
Nh l Cookie ch cha cc kiu d kin n gin (simple data type), t nh strings, integers, floats,
booleans, ... Mt th d ph thng l nhiu mng hin th cc tiu (headlines) cho php user chn
nhng g h thch v cha thng tin c bit trong cookies, khi user ti ving thm, mng ch hin th
nhng g m h la chn trc y ging nh mng ca chnh h phc tho v pht trin.
HttpCookie object cung cp cc phng php (method) to ra v vn dng nhng cookies . Ta c
th dng HttpCookie Object kim tra cc c tnh (properties) ca tng cookie.
Tuy nhin, phng php (method) dng Request v Response Objects l cc phng php (method)
thng dng nht vn dng cookie, c hai u c c tnh (properties) Cookies m gi tr ca n lin
quan (it returns a reference to) n HttpCookie Object.
To ra Cookies
Ta dng Response Object to ra Cookies vi 2 cch sau:
Th d:
'Kiu Cookies a dng,n gi tr
Response.Cookies("MyCookie1").Value = "Single Cookie Value 1"
Response.Cookies("MyCookie2").Value = "Single Cookie Value 2"
o hn (Expires) Cookies
Gi nh c ngi lt mng v ta to ra 1 cookie lu tr thng tin v ngi y, nhng nu ngi y ...
'ra i khng hn ngy tr li' th khng c l do g m ta 'vn gi mi trong ... tim', khng, ... trong my
vi tnh ca h. Tuy h c th d dng t xa b cookie, nhng hay hn na, ta c th dng c tnh
(properties) Expires ... 'ng gieo gnh nng, na ng ti em' nh sau:
'Kiu ngy gi o hn
Response.Cookies("MyASPNETPage").Expires = DateTime.FromString("30/02/2003")
'hoc l
'Kiu khong thi gian o hn
Response.Cookies("MyASPNETPage").Expires = DateTime.Now.AddMonths(1)
Kiu u ra lnh cho Cookie o hn vo ngy 30 thng Hai nm 2003 (a, chng bit x Congo c
ngy 30 thng Hai khng nh ?), cn kiu th nh o hn mt thng k t khi ngun m c thi hnh.
, gi tr o hn mc nh ca cookies l 1000 pht (1,000 minutes). iu ny cng gip ta bo tr
v vn dng cc thng tin to ra bi cc session hin hnh (current sessions). Nhng gi tr ny thng
c thay i v thng thng, cookies dng lu tr cc thng tin trong khong thi gian lu di hn,
t nh vi tun, vi thng hay c nm khng chng.
xa sch (delete) cookie my Client, ta n gin b tr gi tr ca Expires thnh 0 hay gi tr thi
gian thuc v qu kh, Cookie s bin mt khi user ng (close) broswer ca h.
HttpCookie Object cn vi c tnh (properties) cn lu nh sau:
Domain
Path
HasKeys
Secure
HasKeys bo cho ta bit Cookie dng kiu 'a dng, n gi tr' vi cc cp key/value.
Secure bo cho ASP.NET bit nn chuyn cookie 1 cch an ton hay khng v thng ch xy ra trn
HTTPS protocol. Gi tr mc nh (default) ca Secure l False.
<form runat="server">
<asp:Label id="lblCookies" runat="server"/>
</form>
</body>
</html>
2. Lu tr tp tin vi tn Cookies.aspx folder 'D:\Net\Vovisoft ASPNET\Bai05\Cookies' v chy IE
vi URL nh sau: http://cantho/VovisoftASPNET/Bai05/Cookies/Cookies.aspx
Phn ch thch:
'set up some cookie variables
Response.Cookies("MyASPNETPage")("Username") = "Nang Vu"
Response.Cookies("MyASPNETPage")("Password") = "TakeMeHome"
Response.Cookies("MyASPNETPage")("Preference") = "800x640"
Response.Cookies("MyASPNETPage")("UserAgent") = _
Request.ServerVariables("HTTP_USER_AGENT")
trn, ta bn qua v vic b tr 'key/value' cho Cookies 'MyASPNETPage' t nh key tn
"Username" cho gi tr "Nang Vu". hng m cui, ta dng b su tp (collection)
Request.ServerVariables thu lm gi tr ca mt trong cc thnh vin ca n l
HTTP_USER_AGENT.
Thnh vin HTTP_USER_AGENT ny cho ta bit phin bn browser cu my Client.
for each strVariable in Response.Cookies("MyASPNETPage").Values
lblCookies.Text += "<b>" & strVariable & "</b>: " & _
Request.Cookies("MyASPNETPage")(strVariable) & "<br>"
next
y, ta dng For Each ... Next loop tm li gi tr ca tng 'key' trong cookie 'MyASPNETPage' v
hin th cc cp key/value thnh tng hng mt nh HTML tag '<br>'.
V vic dng For Each ... Next loop, ta s tham kho ring bi 6 '.NET Framework v VB.NET'.
HttpApplication Object
HttpApplication Object biu hin cho ng dng (application) ASP.NET . phn mc ny, ta ch s
lt v HttpApplication Object v s o su thm chi tit cc bi sau.
Xin nhc li y, ASP.NET nh ngha ng dng (application) bao gm tt c mi tp tin k c cc
sub folder v cc tp tin trong 1 virtual directory t nh VovisoftASPNET m ta vn thng s
dng.
Cng tng t nh i tng (Object) Response, ASP.NET to ra 1 HttpApplication Object gi l
Application ch khi no ng dng (application) ca ta khi ng - ngha l khi c user yu cu tham kho
trang Web trong site ca ta ln u tin. Lu ch c duy nht mt Application object uc to ra cho
ton b ng dng (application) m thi, khng nh Session object c to ra ring bit cho tng user
mt. Tuy vy, HttpApplication Object ging Session Object ch: HttpApplication Object cng c
dng lu tr cc bin s v cc i tng (Object) lin h. Cc bin s v cc i tng ny c hiu
lc (available) cho ton b ng dng (application) ch khng c bit cho mt ai.
Th d, ta mun hin th (display) 1 'footer' hay 'disclaim' cui mi trang Web, ta lu tr bin s
(variable) t nh 'Disclaimer' ca ng dng (application) nh sau:
Application("Disclaimer") = "Copyright 2002"
v sau , mi trang Web ta thu lm li:
Response.Write(Application("Disclaimer"))
Vic dng HttpApplication Object c th gip ta trnh r memory v ch lu tr 1 ln nhng dng mi
trang Web. Ngc li, nu ta lu tr cng cng mt thng tin vi Session object, ASP.NET s lu tr
ring bit cho tng user v ta c th hiu c vic g s xy ra nu hng trm hoc hng nghn (hay
hng triu) user ... 'n hn li ln' cng mt lc.
HttpServerUtility Object
HttpServerUtility Object c dng cung cp nhiu 'helper methods' gip gii quyt tin trnh yu
cu (used in processing requests) ca user. Ta c th dng object ny di tn gi l Server lin h
cc thnh vin ca HttpServerUtility Object. Cc 'helper methods' c th k ra nh sau:
Redirecting Users
Formatting Strings
Controlling Scripts
Creating Objects
Redirecting Users
Ta lm quen vi cch chuyn user qua 1 trang Web khc vi phng php (method)
Response.Redirect, phng php (method) ny gi km vi 1 dng thng tin HTTP ti browser ch th
cho bit vic chuyn nh th no. Vic chuyn ny i hi 1 ng vng (round trip) khng cn thit v
user phi thm trang Web ca ta trc c chuyn i.
ASP.NET c th chuyn user trc trip qua trang Web khc vi phng php (method) Execute v
Transfer thuc HttpServerUtility Object. Tht vy, Server.Transfer thi hnh vic chuyn qua trang Web
khc 1 cch n gin m khng i hi bt c thng tin phi gi ti browser, cng vic ny tin hnh sau
hu trng v user khng h hay bit.
Th d sau y cho thy ngun m kim tra mt m ca user v chuyn user qua 1 trang Web khc 1
cch trc tip (v ngay tc khc):
if (strPassword == "TakeMeHome")
Server.Transfer("products.aspx")
end if
Formatting Strings
C 4 phng php (method) c bn cn cu to hay hnh thnh 1 hng ch (format a string):
Server.HTMLEncode
Server.URLEncode
Server.HTMLDecode
Server.HTMLDecode
Server.MapPath
HTMLEncode
Mi khi ta gi kt qu (output) ti browser, ASP.NET t ng thng dch ngun m thnh dng HTML
tng ng, t nh thm vo 1 'line break' sau:
Response.Write("<br>")
Tuy nhin, mt i khi ta mun hin th (display) chnh hng ch <br> thay v 1 'line break' trn my
Client, ta c th dng phng php (method) HTMLEncode ca i tng (Object) HttpServerUtility
Object.
Th d sau hin th (display) kt qu ca cc k hiu <br> trn my Client v user s thy hng
ch <br> tht s:
Response.Write(Server.HTMLEncode("<br>"))
Lu : < l ngun m ca HTML cho k hiu <, > cho k hiu >.
URLEncode
URLEncode dng nh HTMLEncode nhng hnh thnh (format) hng ch vi cc iu l (rules) dnh
cho URL, t nh du ampersand (&) v du chm hi (?) mang mt ngha c trng trong cc URL, do
Server.URLEncode cn chuyn cc k hiu nh vy qua dng dng cho phin bn URL (URLencoded version). Ta s thy s quan trng nh th no khi xp t 1 hng ch dng cc k hiu nh
km trong 1 querystring.
HTMLDecode, URLDecode
Cc phng php (method) HTMLDecode v URLDecode c dng nh cc HTMLEncode v
URLEncode tng ng nhng thc hin 1 tin trnh o ngc li, ngha l chuyn (dch, translate) cc
chui k hiu m ha (encoded character sequences) tr li dng nguyn thy, t nh chuyn < tr li
k hiu < chng hn.
MapPath
Phng php (method) MapPath khng dng hnh thnh 1 hng ch nhng gip ta xc nh r rng
cc string ta cn, nht l trong vic dch (hay chuyn) 1 virtual directory path tr li dng nguyn thu
dng da cng trong Server (translate a vritual path to a physical path on a server) t nh chuyn:
Server.MapPath("/VovisoftASPNET/Bai05")
Controlling Scripts
Vic kim sot s thi hnh cc ASP.NET script, HttpServerUtility object c phng php (method)
ScriptTimeout. ScriptTimeout b tr khong thi gian Sever phi ch i trc kt thc 1 script. Ta c
th dng mnh lnh sau b tr khong thi gian ch i l 90 giy nh sau:
Server.ScriptTimeout = 90
Vic kim sot s thi hnh cc ASP.NET script cng cn thit khi ngun m ta c li (bug) t nh
infinity loop c th lm t (crash) Sever ca ta, ScriptTimeout c th c b tr kt thc cc script
chy qu lu hoc khng c x ng php tc hoc khng ng yu cu nh hoch nh trc.
Tuy vy, ta cng , khi b tr ScriptTimeout qu ngn, c th gy tr ngi khng cn thit cho cc
ngun m cn thi hnh trong 1 khong thi gian di, lu hn gi tr hin hnh ca ScriptTimeout.
Creating Objects
CreateObject c dng to ra 1 i tng (Object) nh hnh (instantiates a COM object) 1 i tng
(Object) COM xc minh vi progid. Ta s tham kho chi tit cc dng phng php (method) Creating
Object ny cc bi sau.
Tm tc
Trong OOP, i tng (Object) dng c tnh (properties) v phng php (method) t din t hoc
cho bit mnh l g. Thng thng i tng (Object) cn nh hnh (instances) trc khi dng cc c
tnh (properties) v phng php (method) , ngoi tr static members.
Ta cng s lc qua v HttpCookies dng cung cp 1 c ch c v vit thng tin vo cookies, v
HttpApplication i din cho ng dng v v HttpServerUtility vi cc phng php (method) gip x
l cc yu cu ca Client. Ta nhn thy ngn ng lp trnh VB.NET c s dng vit cc ngun m
trong phn Script cho cc trang ASP.NET, do vic tm hiu ngn ng lp trnh VB.NET l vic cn
thit v quan trng i vi nhng ai mun pht trin mngvi ASP.NET . Trong bi ti, ta s bn s lc
v .NET Framework, cc classes v ngn ng lp trnh VB.NET cng c php c bn c lin h t nhiu
n cc trang ASP.NET
Bi lm nh
Cu hi 1: K vi c tnh (properties) v ng dng dng HttpCookies?
Bi lm 1: Pht trin vi trang Web dng HttpApplication object hin th (display) cng 1 hng ch
chng hn nh 'Vovisoft @ 1998 - 2002 All rights reserved'.
Bi lm 2: Pht trin 1 trang Web dng HttpServerUtility object cu to (hay hnh thnh) cc hng
ch theo bn vi mc ch lm quen cc phng php (method) sau y:
Server.HTMLEncode
Server.URLEncode
Server.HTMLDecode
Server.HTMLDecode
Bi 06
ASP.NET v VB.NET
Cng gp bn tay thng yu nhau ri
Ng khoai hai ma ngt mt nim vui chung vui
Cho thm hng i la vng tnh
Ngy mai hnh phc ni ni reo ci
Qu hng thi au su ngn sng ni cch chia
Ta em yu thng v cho phng Bc
Khc Ht n Tnh - Xun Tin
Ta bit ASP.NET nm trong cu trc nn ca .NET framework v dng .NET programming language
t nh VB.NET (mt trong 25 ngn ng lp trnh .NET hin nay) pht trin trang Web, do ta cng
cn bit s lt v .NET framework cng ngn ng lp trnh VB.NET dng cho cc trang ASP.NET.
Chi tit phng php lp trnh theo khuynh hng i tng (Object Oriented Programming) v
VB.NET, xin tham kho cc bi vit v OOP v Visual Basic.NET do thy L c Hng son v trnh
by.
Trong bi 'ASP.NET v VB.NET', ta s ln lt tm hiu:
.NET Framework
Mt cch tng qut, .NET Framework l kiu mu lp trnh cch mng cho tt c nhng g lin quan n
nn Windows.
Nhn li hn 10 nm, Microsoft tng bc mt ci tin nn Windows (Windows platform) ht sc
nghim tc, t nhiu thnh cng rc r vi nhng API (Application Programming Interface) cho mi
ng dng, vi hng lot cng c pht trin v lp trnh (developer tools) ht sc thun li cho cc K S
Tin Hc cng nh cho nhng ai yu thch cc sn phm ca Microsoft. Ngoi ra, ta cn chng kin s
xut hin ca COM, ri DCOM, COM+ vi mc tiu ti s dng cc ngun m hay nhu liu tng ng.
Thm na, no l ODBC (Open Database Connection), DAO, OLEDB ti ADO (Active Data Object)
vi rt nhiu phin bn (versions) cho vic ni kt cc c s d liu (Database) gm loi c. V
phng din mng nng ng (dynamic web sites), ta c nhiu phin bn ASP c in hay v ngn ng
lp trnh vi C++, J++, Visual Basic cng cc ngn ng lp trnh scripting nh VBScript, ...
Nhng ...
Mc d, cc cng c cng nh cc ngn ng lp trnh vi nhiu phin bn khc nhau nh va nu trn,
ym tr nhng g cng ngh thng tin ang i hi - chng cng lc cng tr nn phc tp v rc ri cho
cc Chuyn Gia hay K S Tin Hc, khng nhng khng theo kp tin trin hin nay m cn khng
to c mt nn tng hng mnh cho vic pht trin hay p ng s thay i nhanh chng cu cng
ngh thng tin cho k ngh, thng mi, i sng trong tng lai.
Chng hn mt K S Tin Hc giu kinh nghim mun hc v COM - 1 phng php ht sc hng
mnh gi ghm cc ngun m cho vic ti s dng - cn ti thiu 6 thng hay c nm lm quen hay
nm vng. Cn nu mun hc v DCOM hay COM+, ta phi bit COM trc. cng l l do ti sao
nhiu K S Tin Hc chn nn v qu nhiu v vu hoc nhiu thm tht cho cc ng dng m ngay t
tha ... 'hng hoang' phc tho mt cch ngho nn nh hng t hon cnh x hi v cng ngh lc
by gi.
Microsoft bit iu nn xo ... 'c lm li t u'. Vic u t vo .NET Framework vi mi ti
nguyn m Microsoft (hay ... trn tri t ny) c c, cho thy s xut hin ca .NET Framework
khng phi l chuyn tm ... 'c' u, a qun, ... 'tm thng' u.
.NET Framework phc tho bt u t con s 0 vi tham vng bao trm mi th v cng khng qun
... nng 'bn xa' nn cc ngun m ... 'c k' ca ta vn c ym tr. Khng nhng th m
Microsoft v cn lng nghe mi nguyn vng ca .. cc K S Tin Hc hay ca ta trong vic k hoch
v phc tho cu trc nn .NET qua em li nhiu li ch thit thc cho ngi lp trnh hay pht trin
v to vn hi mi pht trin nn Cng Ngh Tin Hc.
Vic tng trnh v .NET Framework lm ta nh li s xut hin ca Linux trc y. Nhn li 10 nm
va qua, Linus Torvalds (cha Linux) cng qu chn nn vi s gii hn v khuyt im ca Unix
m vit li Operating System ny t con s 0 thay v c gng sa i hay v vu. Vic lm li t y
ch vi mc ch l theo kp cc i hi, nu khng mun ni l vch hng i cho tng lai Tin Hc.
Nu ta v s ph thng v ni ting ca nn Windows vi Microsoft (Bill Gates) nh l phi Thiu Lm
th Linux s l 'Thi Cc Quyn' ca phi V ang vi Trng Tam Phong (Linus Torvalds) v mc d
ch chim 0.25% th trng desktop trn th gii (trch Next Handbooks - Operating in Linux by Paul
Robinson and Dan Corkery - 2002) nhng cng gp phn lm cho Cng Ngh Thng Tin thm phn
c sc v mun mu mun v. Mi system u c ci hay v d khc nhau kh lng so snh t nh tuy
Linux 'free OS' (v Open Source) rng buc bi GPL (GNU Public Licence by Richard Stallman) nhng
gn y li chia thnh nhiu phe nhm - Nam Tng (United Linux) gm c SuSe, Caldera, Connectiva
and Turbo Linux, ... v Bc Tng (Unbreakable Linux) vi Red Hat, Oracle, ... nn th phin bn
Linux khc nhau c th lm ta ... 'ngt ng' chng bit theo ai, cn Windows (Close Source) vi .NET
Framework rt hng mnh nhng ... li 'tn tin', nu c nhiu ng dng 'free' t nh Web Matrix ... 'cho
khng biu khng' th tt cho cng ng .NET bit bao nhiu.
Tuy nhin, y khng phi din n ... 'Hoa Sn Lun Kim' gia Windows, Linux hoc MAC OS
nn ta gc li ch bn v .NET Framework v cc li ch ca n. Tht s, mi nn u c ci hay ca
n v l nhng bng hoa p, him qu trong vn Tin Hc m ta lun lun trn trng - tt c u l sn
phm tr c tuyt vi ca con ngi, nu bn c kh nng v thi gi th ... hc cng nhiu cng tt.
Li ch ca .NET Framework
y, ta khng k xit hay o su chi tit li ch ca .NET Framework m ch tm lc vi im chnh
yu sau:
Mi chuyn ... 'trn tri di t' m ta mun thc hin trn nn Windows, t nh data access,
windowing, ni mng hay ngay c mi cng dng a dng ca Win32 API (Application
Programming Interface) u c th vn dng d dng qua kiu mu i tng (objects) rt n
gin (simple object model).
Ngn ng lp trnh VB.NET c hin i ha, bao gm nhiu classes v mi c trng
(features) ca 1 ngn ng lp trnh kiu OOP, khng thua km g C++, J++ hay C#, ...
Vic qun l memory c nng cp v tinh vi hn nhm bo m cc ng dng b t hay c x
t bt (badly behaved component or application) khng nh hng g n cc ng dng khc.
ASP.NET c dng thay th ASP, ng thi cung cp cc trang Web c bin dch gip
tin trnh x l cc yu cu t Client browser hiu qu hn. Hn na, cn bao gm nhiu thnh
phn son sn (pre-written components) gi l Server Control dng trong cc HTML Form v
giao din (user interface) lm vic pht trin mng thm d dng v y hng th.
Cc ngn ng lp trnh c phc tho lm vic gn nhau hn, do ngun m ca VB.NET,
C++, C#, ... c th s dng trn ln vi nhau rt thoi mi, t nh ta c th vit m cho 1 class
vi VB.NET ri k tha 1 class khc m m l C# hay C++, ... sau vn 'debug' ngon lnh gia
cc ngn ng lp trnh khc nhau .
Thnh phn (components) c gi k trong 1 n v gi l assembly c th t xc minh l lch
v cng dng lm vic b tr hay trin khai rt d dng.
S Lc v VB.NET
VB.NET c dng to ra cc trang Web y nng ng vi tt c kh nng ca ASP.NET (hay ca
.NET Framework). y, ta tm hiu tng qut v c php, cu trc v phng php lp trnh vi
VB.NET c lin h t nhiu n cc trang ASP.NET v hy vng gt hi c vi khi nim c bn
vic lp trnh xung s hn.
Phn ny, ta s s lc qua cc vn sau:
i khi v VB.NET
Variables v Arrays
Operators
Cc iu kin (conditional), looping v branching logic
Functions v Subroutines
Event Handler
Classes
Vi ng dng ch li thng dng
i khi v VB.NET
VB.NET l mt trong 25 ngn ng lp trnh ca .NET c ym tr bi .NET Framework v CLR.
VB.NET khc hn VB6 v tht s chuyn mnh thnh 1 ngn ng lp trnh OOL chnh yu khng khc
g vi mi ngn ng lp trnh khc t nh C#, C++, J++, ... trong mi trng xy dng mi ng dng
cho nn Windows v quan trng hn c l vic hc VB.NET d dng hn nhiu (its learning curve is not
very steep). Do , VB.NET c chn l ngn ng lp trnh cho cc trang ASP.NET ca kha t hc
ny. Nu bn thch, bn c th dng C# hay C++ thay v VB.NET cho mi bi tp trong kha, chuyn
i qua i li gia cc ngn ng lp trnh ch l chuyn ... nh, v s khc bit phn ln l v c php
(syntax) ch nguyn tc v cu trc lp trnh th ging y chang. Nh l d ta dng bt c ngn ng lp
trnh no, khi bin dch vn phi qua ngn ng trung gian Intermediate Language (IL) v qun l bi
CLR.
Variables v Arrays
Variables
Category
Integers
Integers
Integers
Integers
Floating-ppints
Floating-ppints
Floating-ppints
String
Dates
Boolean
Description
1 byte (c bit nh System.Int)
2 bytes (System.Int16)
4 bytes (System.Int32)
8 bytes (System.Int64)
4 bytes vi decimal point (System.Single)
8 bytes (System.Doublel)
12 bytes (System.Decimal)
single Unicode character (System.Char)
ngy gi (Ssytem.DateTime)
C/Khng hay ng/Sai , True/False (System.Boolean)
Arrays
Arrays l 1 tp hp cc bin s c lin h ring bit qua ch s (index) ca Arrays.
Nh l Arrays dng trong VB.NET bt u vi index bng s 0 - ngha l mn hng (item) u tin c
lu tr index 0, t , suy ra ch s (index) mn hng sau cng s l tng s cc mn hng tr i mt.
Mi bin s trong Array phi cng loi d kin (same data type), khng th trn ln nhiu loi khc
nhau.
Array c tuyn b (declare) nh th d sau y:
'Tuyn b array gm 9 phn t (hay thnh phn - elements) thuc loi Integer
Dim myArray(9) As Integer
Conditional Logic
Looping Logic
Branching Logic
Conditional Logic
Conditional Logic cho php ta ch nh ngun m no c thi hnh ty theo iu kin t ra c ph hp
hay khng. C nhiu phng php (method) qun l conditional logic nh sau:
If statements
Tng cng 3 kiu c php nh sau:
If (condition) Then
(your code)
...
...
End If
Nh vy, nu iu kin c tho mn (condition = True), ngun m gia If v End If s c thi hnh
hoc:
If (condition) Then
(your code for condition = True)
...
...
Else
(your code for condition = False)
...
...
End If
thi hnh ngun m khi condition 1 = True hoc condition 2 = True hoc khi c hai condition 1 v
condition 2 = False.
Case statements
Case statement thng gi l Select statement ging nh trng hp If vi nhiu ElseIf nhng Case ch
kim tra mt bin s v ty theo gi tr ca bin s m p ng sao cho thch hp. C php nh sau:
Select Case variable
Case option 1
Code for option 1
Case option 2
Code for option 2
Case Else
Code
End Select
Looping Logic
Looping logic cho php ta ti thi hnh (hay lp i lp li) 1 cng vic no cho ti khi tho mn iu
kin nh trc. Kiu ny gm c 3 loi:
While
Do
For
While Loops
Rt tin li trong trng hp ta khng bit trc phi lp i lp li cng vic bao nhiu ln. Nh vy,
kiu loop ny c bn da trn biu thc c iu kin (conditional expressions) v loop ti thi hnh cho
n khi iu kin nh trc tr thnh False. C php ca 1 While loop nh sau:
While condition
Your Code
End While
Do Loops
Do loop cng tng t nh while loop, ch khc ch Do loop thi hnh cng vic trc ri mi kim tra
iu kin xem c ph hp khng? Kiu ny c th gi l kiu ... 'tin trm hu tu' khc vi While loop
l ... 'tin tu hu trm' (?). C php nh sau:
'B tr counter loi Integer vi gi tr 1
Dim intCounter As Integer = 1
For Loops
Ta dng For loop khi bit trc s lp i lp li vic thi hnh ngun m bao nhiu ln. My m trong
trng hp ny (t ng tng hay gim ty theo cch b tr) s thng bo chnh loop ca n khi no
chm dt. C php nh sau:
For intCounter = 1 to 10
Response.Write(intCounter & "<br>")
Next
hoc l:
For intCounter = 10 to 1 Step -1
Response.Write(intCounter & "<br>")
Next
For loop cn c 1 dng khc l For each ... loop, thng dng vn dng cc thnh phn (hay yu t elements) trong 1 b su tp (collection) t nh Array chng hn:
'B tr 1 Array gm cc ngy trong tun
Dim arrayWeekDays( ) As String = {"Mon", "Tue", "Wed", "Thu", "Fri"}
Infinite Loop
coi chng trong khi dng cc loop m ta phi t qun l vic tng hay gim my m cho loop, nu
khng kho, ta s ri vo ... 'm hn trn' khng c li thot gi l infinite loop. y cng l 1 trng
hp ngu nhin m ln u tin b con khm ph ra virus v infinite loop nhanh chng tiu hao hay lm
kit qu cc ti nguyn trong mng v i khi c th ko c mng t bt ng (cause the site to crash).
Nu ta mun nhy ra khi loop trc loop chm dt, ta c th dng keyword Exit Do (trong Do loop)
hay Exit For (trong For loop), t nh:
'B tr counter loi Integer vi gi tr 1
Dim intCounter As Integer = 1
End If
Loop While intCounter < 10
hay
For intCounter = 1 to 10
Response.Write(intCounter & "<br>")
If intCounter = 8 then
Exit For
End If
Next
Branching Logic
Branching logic cho php ngun m thi hnh nhng hng khc nhau, t nh ta mun ngun m ti
thi hnh mt v th khc v c th c dng i dng li nhiu ln trong cc tnh hung khc nhau.
Tng qut c 2 loi barnching logic:
Functions
Subroutines
phn bit, ta Functions tnh ton cc gi tr cn Subroutines thi hnh cc cng vic (Functions
compute values and Subroutines perform actions), nh vy Functions s tr li thng tin tnh ton v
ni gi Functions, ngc li Subroutines thi hnh cng tc no nhng khng tr li g ht (return
nothing).
Functions
C php nh sau:
Function FunctionName (Parameter1 As Type, ... , ParameterN As Type) As ReturnType
'you code here
Return ReturnValue
End Function
Cc Functions v Ton Hc
Function
abs(value)
atan(value)
cos(value)
exp(value)
fix(value)
hex(value)
int(value)
log(value)
oct(value)
rnd
round(value [, dec])
sin(vlaue)
sqrt(value)
tan(value)
Tr li s arctangent ca value.
Tr li s cosin ca value.
Tr li s exponent ca value.
Tr li phn integer ca value, rounding up cho cc s m (negative numbers).
Tr li s hexadecimal ca value (base 10 to base 16).
Tr li phn integer ca value, rounding down cho cc s m (negative numbers).
Tr li s nature logarithm ca value.
Tr li s octal ca value (base 10 to base 8).
Tr li s ngu nhin.
Tr li s rounds to integer or with dec (decimal places) vi ca value.
Tr li s sin ca value.
Tr li s cn 2 (squareroot) ca value.
Tr li s tangent ca value.
Subroutines
C php nh sau:
Sub SubroutineName (Parameter1 As Type, ... , ParameterN As Type)
'you code here
End Sub
end sub
</script>
<html>
<body>
Testing subroutines 'MultiplyNumber' completed.
</body>
</html>
Phn ChThch:
Ta nhn thy khi gi (call) 1 subroutine, ta ch cn dng tn ca subroutine km vi cc thng s
(parameters) ta mun gi vo v vn dng trong subroutine. Trong m trn, ta gi subroutine
'MultiplyNUmber' 3 ln, trong ta s vn dng cc thng s vo bi ton nhn v hin th (display) kt
qu trong browsers vi i tng (Object) Response v phng php (method) Write.
Lu :
Trong VB.NET v ASP.NET , ta bt buc dng parentheses ( ) khi gi cc subroutines, khc vi
VBSCript hay VB6 khng cn dng parentheses. Nu ta gi subroutine MultiplyNumber theo c php
sau, s to li:
MultiplyNumber 2, 2
Event Handler
Ny , ta thy 1 trong nhng thng s (parameters) s dng bi tp trn l thng s v s c
(EventArgs). Trong cc trang Web ca ASP.NET , s c c th xy ra bt c lc no, t nh user nhp
mi chut vo 1 nt no trn Form hoc nhp vo 1 hnh nh, do ta cn chun b v to ra ci gi
l event handler c th p ng li cc s c . C php ca event handler ging y chang nh c
php ca subroutine, s khc bit l nm parameters list vi thng s ch ring cho loi EventArgs.
Khi 1 s c khi ng, s c s to ra cc bin s nhm din t vic g xy ra v event handler s
da trn cc bin s phn ng sao cho thch hp.
Bi tp 2:
Mc ch:
Phn Ch Thch:
1. Thng s u tin subroutine Button_Click l loi Object data type, obj As Object i din cho i
tng (Object) gy ra s c, y chnh l nt bm (button) mang tn 'btSubmit'.
2. Thng s th 2 l s c 'e' loi EventArgs, thng s ny cha mi thng tin c trng cho bin c
ang, s hay xy ra.
3. Trc khi user nhp mi chut vo nt bm ny (l lch ca nt bm - ID l 'btSubmit') th thng s 'e'
trng rng, sau khi user nhp vo nt bm, 'e' cha th trong c s c 'Click'. Trong Form, ta
xp xp ngun m bo cho nt bm 'btSubmit' hay rng bt c khi no s c Click khi ng, lp tc
thi hnh subroutine 'Button_Click', v nh vy, ta nh ngha v xy dng 1 event handler thnh cng.
Classes
String
Collections v Arrays: t nh Arrays, Lists, Maps, Linked Lists, ...
WinForms: dng hin th (display) Windows v cc Controls t nh Text Boxes, Combo Boxes,
List Boxes, File Dialogs, ...
Web Forms: phc tho dng cho mng, ta s o su chi tit bi k.
File Handling: dng lt qua li (navigate) cc file system trong my hay trong mng, kim tra
c tnh (properties) ca files, read, modify hay write cng nh chuyn (move) v sao chp
(copy) cc tp tin hay folders.
Registrry Access: lt qua li, c hay vit ni dung ca registry.
Internet: ni vo mng, ti ln hay ti xung cc tp tin.
ADO.NET: ni vo cc c s d liu (database) v vn dng cc records vi 1 khi nim mi v
disconnected data cng nh s dng XML chuyn data i khp mi ni mi ch.
Inheritance
Inheritance nm vai tr quan trng trong classes v OOP (Object-Oriented Programming) v tnh cht k
tha ca n. Ta khng cn phi to ra 1 class mi hon ton khi c 1 class tng t nh ci ta mun
(who wants to re-invent the wheel?) m ch cn to ra nhnh (ging nh nhnh cy) da vo gc (base
class). Tr li trng hp ci ng h, t nh ta to ra 1 class gi l Clock, ri sau mi sc nh ra
c 2 loi ng h: analog v digital. Thay v qung ci Clock class i v to ra 2 ci mi Analog class v
Digital class, ta c th xy dng class mi ly Clock class lm c bn (base class) v thm vo nhng
g c trng n hay lin h n loi ca Clock l Analog hay Digital. Tnh cht k tha ny em li vn
hi mi cho cc K S Tin Hc khi xy dng cc ng dng v lm cho vic pht trin, trin khai v bo
tr tr nn d dng hn, b ... nht 'u' hay bc ... 'ru'.
C php nh sau vi th d v AnalogClock:
Class AnalogClock: Inherit Clock
private ClockWound ASP.NET Boolean = False
Sub WindClock( )
ClockWound = True
End Sub
End Class
Ngoi vic nm vng k thut v c php lp trnh, thit tng, ta cng nn bn 1 cch tng qut v
phng php (method) xy dng tiu chun cho vic lp trnh cc ng dng (ni chung) v ASP.NET
(ni ring). Nh y ch l mt s khi nim c bn khi ta mun pht trin cc d n ng dng lp trnh
VB.NET cho cc trang ASP.NET trong kho hc ny. Cc tin trnh c nhc n y nhm mc
ch hiu r cc bc cn thit trong vic lp trnh khi p dng cho mt d n thc t trong cng ty ca
mnh.
2. Design (Thit k)
T Requirement Specifications bc qua giai on Thit k. Lc ny ta s thy c nhiu im khng
c nu r trong Requirement Specifications v cn lm cho sng t (clarification) hn. Cng vic ny
do Systems Analyst thc hin. Nu d n ln th c Software Architect thit k tng qut trc khi chia
ra cc Team Leaders ( thng thng l Systems Analysts). Trong giai on ny c khi phi lm
Prototype (th m hnh mu) bit chc k thut mnh dng c kh nng v thch hp vi nhu cu
d n khng. Thit k l giai on quan trng nht trong chu k pht trin mt nhu liu. Chng nhng ta
ngh cch xy dng nhu liu, m cn k hoch chi tit cch th lc no, u trong code. Ta phi tng
tng mi hon cnh bt thng (unusual scenarios) nhng c th xy ra tm gii php i ph. Trong
cc cng ty nh hoc trung (small business), Web Master s lm mi chuyn t ... 'cy kim' cho ti ...
'phi thuyn' khi thit k cc trang ASP.NET.
Tm tc
bi ny, ta bn s lc v .NET Framework v tham kho vi chi tit v c php ca ngn ng lp
trnh VB.NET cng phng php (method) lp trnh gip ta xy dng v pht trin cc trang Web 1
cc hiu qu.
Mt cch tng qut, ta c 5 loi bin s (variables) v 3 loi logic. Cc logic Conditional, Looping v
Branching ny rt cn thit trong vic gip ta ti thi hnh cc ngun m mt khi tho mn iu kin
nh trc. Ta cng phn bit c s khc nhau gia Functions v Subroutines v lt s qua khi nim
cng cch vn dng cc event cng nh classes v khi nim Inheritance trong OOP.
Trong bi k 'Web Form - Part I', ta s tham kho v Web Form v vai tr ca n trong ASP.NET . Web
Form l 1 khi nim mi v hp dn trong mi trng mng v Web Form cho php ta kim sot ... 'ng
tnh' ca user qua cc objects hin th (display) trong User Interface nhng li nm phi Server. Wow!
Bi lm nh
Cu hi 1: Is VB.NET case sensitive?
Cu hi 2: Trong VB6 ta c bin s variant, chuyn g xy ra cho variant VB.NET?
Cy Hi 3: Khi no ta dng For loop v khi no dng While loop?
Bi lm 1: To 1 trang ASP.NET dng class PERSON biu th v ngi v object di din cho chnh
bn vi c tnh (properties) gii tnh (Nam/N), mu tc (xanh, en, mui tiu, bc, ...), mu mt (en,
, ...), mu da (ngm, bnh mt, en, ...) v ngy thng nm sinh. Dng c tnh (properties) dayofweek
ca datetime xc nh ngy bn sinh l ngy no trong tun v dng 1 nt bm Submit gi phng
php (method) ny cn gnh hin th (display) kt qu browser.