Professional Documents
Culture Documents
HCM
227 Nguyn Vn C - Qun 5- Tp.H Ch Minh
Tel: 8351056 Fax 8324466 Email: ttth@hcmuns.edu.vn
M ti liu: DT_NCM_LT_TLGD_ASP.NET
Phin bn 1.0 Thng 06/05
kI lIE0 h0000 0k0 0Ik00 0kI
0h0000 0h kI h0k IE0
h0c pkz0 8
lkP 0h 000 0000 wE8
0I k8P.0E
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 1/174
MC LC
GII THIU .......................................................................................................... 5
GIO TRNH L THUYT....................................................................................... 6
TI LIU THAM KHO........................................................................................... 6
Bi 1...................................................................................................................... 7
TNG QUAN V ASP.NET ...................................................................................... 7
I. Tng quan v lp trnh ng dng Web............................................................ 8
I.1. HTTP v HTML - Nn mng ca K thut lp trnh web ..................................... 8
I.2. Tm hiu cc m hnh ng dng.....................................................................10
II. Gii thiu v ASP.Net.................................................................................... 12
II.1. Tm hiu v .Net Phatform.............................................................................12
II.2. Tm hiu v .Net Framework..........................................................................12
II.3. Tm hiu v ASP.Net .....................................................................................16
II.4. Nhng u im ca ASP.Net..........................................................................16
II.5. Qu trnh x l tp tin ASPX...........................................................................17
III. Web Server ................................................................................................... 18
III.1. Internet Information Services.........................................................................18
III.2. Ci t Web Server .......................................................................................19
III.3. Cu hnh Internet Information Services...........................................................22
III.4. To cc ng dng web trn IIS......................................................................23
IV. To ng dng Web u tin.......................................................................... 24
IV.1. Khi ng MS Visual Studio .Net ....................................................................24
IV.2. To mi ng dng Web.................................................................................25
IV.3. Phn loi tp tin trong ASP.Net ......................................................................27
IV.4. Lm quen vi cc thnh phn giao din trn VS .Net .......................................28
Bi 2.................................................................................................................... 32
WEB SERVER CONTROL...................................................................................... 32
I. HTML Control ................................................................................................ 33
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 2/174
II. ASP.Net Web Control .................................................................................... 35
II.1. Asp.Net Page................................................................................................35
II.2. iu khin c bn.........................................................................................36
II.3. iu khin kim tra d liu............................................................................46
II.4. Mt s iu khin khc..................................................................................53
II.5. i tng ViewState .....................................................................................59
Bi 3.................................................................................................................... 61
CC IU KHIN LIN KT D LIU.................................................................. 61
I. iu khin DataGrid...................................................................................... 62
I.1. Cc thao tc nh dng li ...........................................................................62
I.2. X l sp xp................................................................................................67
I.3. X l phn trang...........................................................................................69
I.4. Ty bin cc ct ...........................................................................................70
I.5. Cp nht d liu trc tip trn li .................................................................74
II. iu khin DataList ...................................................................................... 79
II.1. S dng DataList hin th d liu...............................................................79
II.2. Cp nht d liu vi DataList .........................................................................83
III. iu khin Repeater ..................................................................................... 87
IV. Cc v d m rng ......................................................................................... 90
IV.1. X l o hng sp xp trong DataGrid ........................................................90
IV.2. To biu tng sp xp trong ct cho DataGrid...............................................91
IV.3. nh dng hnh thc hin th cho dng d liu tha iu kin trn DataGrid ......92
IV.4. To hiu ng chn khi r chut qua cc dng d liu ......................................93
Bi 4.................................................................................................................... 94
XY DNG LP X L D LIU.......................................................................... 94
I. Thit k tng quan........................................................................................ 96
I.1. Cu trc chi tit lp XL_BANG........................................................................98
I.2. Xy dng lp x l nghip v....................................................................... 102
I.3. S dng lp x l nghip v ........................................................................ 104
Bi 5.................................................................................................................. 108
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 3/174
XY DNG I TNG TH HIN.................................................................... 108
I. To mi i tng th hin......................................................................... 109
II. S dng i tng th hin........................................................................ 111
III. To phng thc cho i tng th hin.................................................... 112
IV. To s kin cho i tng th hin ............................................................ 113
IV.1. Thit k ..................................................................................................... 114
IV.2. X l.......................................................................................................... 114
Bi 6.................................................................................................................. 117
XY DNG V QUN L NG DNG................................................................. 117
I. i tng Request, Response..................................................................... 118
I.1. i tng Response.................................................................................... 118
I.2. i tng Request ...................................................................................... 120
II. i tng Session, Application................................................................... 122
II.1. i tng Application.................................................................................. 123
II.2. i tng Session....................................................................................... 124
III. i tng Server......................................................................................... 125
IV. i tng Cookies ...................................................................................... 125
IV.1. Gii thiu ................................................................................................... 125
IV.2. Lm vic vi Cookies................................................................................... 126
V. Tp tin qun l v cu hnh ng dng......................................................... 127
V.1. Global.asax................................................................................................. 127
V.2. Web.config................................................................................................. 128
VI. T chc & xy dng ng dng.................................................................... 133
VI.1. T chc lu tr ng dng............................................................................ 133
VI.2. Xy dng ng dng .................................................................................... 134
Bi 7.................................................................................................................. 136
WEB SERVICE ................................................................................................... 136
I. Tm hiu v Web Services ........................................................................... 137
II. Xy dng Web Services .............................................................................. 140
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 4/174
II.1. To Web Services trong VS .Net................................................................... 140
II.2. Kim tra Web Service.................................................................................. 141
III. S dng Web Service.................................................................................. 143
III.1. S dng Web Service do ngi dng xy dng ............................................. 144
III.2. S dng Web Services c cung cp min ph trn mng............................. 144
IV. Xy dng Web Services truy xut d liu................................................... 148
IV.1. Web Service: WS_KHACH_HANG.................................................................. 148
IV.2. S dng WS_KHACH_HANG......................................................................... 150
Bi 8.................................................................................................................. 152
PH LC ........................................................................................................... 152
I. C s d liu dng trong ng dng ............................................................ 153
I.1. Thit k c s d liu.................................................................................. 153
I.2. D liu th................................................................................................. 156
II. Gii thiu v cc tag HTML ......................................................................... 157
II.1. C bn v tag HTML.................................................................................... 157
II.2. Cc tag nhp liu........................................................................................ 163
III. Cascading Style Sheets - CSS...................................................................... 166
III.1. Gii thiu CSS............................................................................................. 166
III.2. C php CSS .............................................................................................. 167
III.3. S dng CSS trong trang HTML.................................................................... 169
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 5/174
GII THIU
Sau khi hon thnh kha hc ny, hc vin s c cc kh nng:
Ci t v cu hnh Web Server.
Thit k, xy dng, pht trin ng dng web vi Asp.Net
Vi thi lng l 36 tit LT v 60 tit TH c phn b nh sau:
STT Bi hc S tit LT S tit TH
1 Tng quan v Asp.Net 3 5
2 Asp Server Control 6 10
3 Cc iu khin lin kt d liu 6 10
4 Xy dng lp x l d liu 3 5
5 Xy dng cc i tng th hin 6 10
6 Xy dng v qun l ng dng web 9 15
7 Web Services 3 5
Tng s tit: 36 60
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 6/174
GIO TRNH L THUYT
TI LIU THAM KHO
Trong qu trnh bin son ti liu hng dn ging dy v gio trnh, chng ti c tham kho mt
s ti liu sau:
1. MSDN Library - April 2003 & MSDN Library - July 2005
2. MSDN Traning: Developing Microsoft ASP.NET Web Applications Using Visual Studio.NET
3. MSDN Traning: Programming with Microsoft ADO.NET
4. ASP.NET Web Developers Guide
5. ASP.NET By Example [Steven A. Smith]
6. Developing Web Applications with Visual Basic .NET and ASP.NET [John Alexander, Billy Hollis]
7. Programming ASP.NET, 2nd Edition [Dan Hurwitz, Jesse Liberty]
8. Inside ASP.NET [Scott Worley]
9. ASP NET Bible [Mridula Parihar]
10. ASP.NET for Web Designers [Peter Ladka]
11. Professional ADO.NET Programming [Wrox]
12. Cascading Style Sheets - The Designer's Edge [Molly E. Holzschlag ]
13. JavaScript Bible - Gold Edition [Danny Goodman]
14. Real World Web Services [Yasser Shohoud]
15. Trang ch ASP.Net: http://www.asp.net
16. Trng hc trc tuyn ca W3C: http://www.w3schools.com
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 7/174
HNG DN PHN L THUYT
Bi 1
TNG QUAN V ASP.NET
Tm tt
L thuyt 3 tit - Thc hnh 5 tit
Mc tiu Cc mc chnh Bi tp
Tm hiu cc k thut lp trnh ng
dng web v cc m hnh ng dng.
Ci t v cu hnh Web Server.
Tm hiu mi trng pht trin ng
dng web vi Visual Studio.Net.
1. Tng quan v lp trnh ng dng
web
2. Gii thiu v Asp.Net
3. Web Server
4. To ng dng web u tin
1.1, 1.2, 1.3, 1.4,
1.6, 1.7
Bi lm thm:
1.5
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 8/174
I. Tng quan v lp trnh ng dng Web
ng dng Web l mt h thng phc tp, da trn nhiu yu t: phn cng, phn mm, giao thc,
ngn ng v thnh phn giao din. Trong phn ny, chng ti s gii thiu s lc cho bn v cc
thnh phn c bn ca ng dng Web: HTTP (giao thc trao i ti nguyn) v HTML (ngn ng
xy dng trang web).
I.1. HTTP v HTML - Nn mng ca K thut lp trnh web
I.1.1. HTTP (Hypertext Transfer Protocol)
K thut c bn ca lp trnh ng dng web khi u l HyperText Transfer Protocol (HTTP), l
mt giao thc cho php cc my tnh trao i thng tin vi nhau qua mng my tnh.
HTTP c xc nh qua URLs (Uniform Resource Locators), vi cu trc chui c nh dng nh
sau:
http: // <host> [: <port>] [ <path> [? <query>]]
Sau tin t http://, chui URL s cha tn host hay a ch IP ca my server (c th c s cng i
km), tip theo l ng dn dn n tp tin server c yu cu. Ty chn sau cng l tham s,
cn c gi l query string (chui tham s/chui truy vn).
V d:
Phn tch a ch http://www.comersus.com/comersus6/store/index.asp
Trang web index.asp c lu tr trong th mc /comersus6/store ti Web Server vi host l
www.comersus.com
Mt s thut ng:
Internet: l mt h thng gm nhiu my tnh khp ni trn th gii ni li vi nhau.
WWW: World Wide Web (mng ton cu), thng c dng khi ni v Internet
Web Server: My tnh lu tr cc trang web
Web Client: My tnh dng truy cp cc trang web
Web Browser: Phn mm dng truy cp web
Mt s web browser ph bin: Internet Explorer, Netscape Navigator, Avant Browser, Opera,
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 9/174
I.1.2. HTML (Hypertext Markup Language)
Trang web HTML l mt tp tin vn bn c vit bng ngn ng HTML, ngn ng ny cn c
bit n vi tn gi: ngn ng nh du vn bn.
Ngn ng nh du HTML s dng cc k hiu quy nh sn (c gi l tag) trnh by ni
dung vn bn.
V d: Ni dung trang web AspDotNet.htm
<Html>
<Head>
<Title>ASP.Net</Title>
</Head>
<Body>
<P align="center">
<FONT size="6">
Cho cc bn n vi ASP.Net!!!
</FONT>
</P>
</Body>
</Html>
Ghi ch: Cc bn c th c thm cc tag HTML phn Ph lc B
Ni dung
nh dng Kt qu hin th
Trang ch
Windows
Server
System
Microsoft
<Html>
<Head>
</Head>
<Body>
</Body>
</Html>
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 10/174
I.2. Tm hiu cc m hnh ng dng
I.2.1. M hnh ng dng 2 lp
Client Database Server
y l mt dng m hnh n gin, kh ph bin ca mt ng dng phn tn. Trong m hnh ny,
vic x l d liu c thc hin trn Database Server, vic nhn v hin th d liu c thc hin
Client.
a. u im
D liu tp trung m bo d liu c nht qun.
D liu c chia s cho nhiu ngi dng.
b. Khuyt im
Cc x l tra cu v cp nht d liu c thc hin Database Server, vic nhn kt qu
v hin th phi c thc hin Client Kh khn trong vn bo tr v nng cp.
Khi lng d liu truyn trn mng ln chim dng ng truyn, thm gnh nng cho
Database Server.
Yu cu
Tr li
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 11/174
I.2.2. M hnh ng dng 3 lp
M hnh 2 lp phn no p ng c cc yu cu khc khe ca mt ng dng phn tn, tuy
nhin, khi khi lng d liu ln, ng dng i hi nhiu x l phc tp, s ngi dng tng, m
hnh 2 lp khng th p ng c.
M hnh 3 lp s dng thm Application Server gi nhim v tng tc gia Client v Database
server, gim bt cc x l trn Database server, tp trung cc x l nhn v hin th d liu ti
Application server.
Client Appication Server Database Server
a. u im
H tr nhiu ngi dng
Gim bt x l cho Client Khng yu cu my tnh Client c cu hnh mnh.
X l nhn v hin th d liu tp trung ti Application Server d qun l, bo tr v
nng cp.
X l truy cp d liu tp trung ti Database Server.
b. Khuyt im
Phi s dng thm mt Application Server Tng chi ph.
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 12/174
II. Gii thiu v ASP.Net
II.1. Tm hiu v .Net Phatform
.Net Phatform bao gm .Net Framework v nhng cng c c dng xy dng, pht trin
ng dng v dch v. ASP.Net.
.Net Phatform
Nhng sn phm cng ngh .Net ca Microsoft bao gm: MSN.Net, Office.Net, Visual Studio.Net v
Windows Server 2003 c bit n vi tn gi Windows .Net Server.
Visual Studio .Net l b phn mm c dng xy dng v pht trin cc ng dng bao gm
cc ngn ng lp trnh: C++.Net, Visual Basic.Net, ASP.Net, C# v J#. Tt c cc ngn ng ny
c xy dng da trn nn .Net Framework, v th, bn s nhn thy c php c bn ca nhng
ngn ng ny tng t nhau.
II.2. Tm hiu v .Net Framework
Kin trc .Net Framework
Operating System
Common Language Runtime
Base Class Library
ADO .NET and XML
ASP .NET
Web Forms - Web Services
Mobile Internet Toolkit
Windows
Forms
CCommon Language Specification
VB C++ C# J#
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 13/174
II.2.1. H iu hnh
Cung cp cc chc nng xy dng ng dng
Vi vai tr qun l vic xy dng v thi hnh ng dng, .NET Framework cung cp cc lp i
tng (Class) bn c th gi thi hnh cc chc nng m i tng cung cp. Tuy nhin, li
ku gi ca bn c c "hng ng" hay khng cn ty thuc vo kh nng ca h iu hnh
ang chy ng dng ca bn.
Cc chc nng n gin nh hin th mt hp thng bo (Messagebox) s c .NET Framework
s dng cc hm API ca Windows. Chc nng phc tp hn nh s dng cc COMponent s yu
cu Windows phi ci t Microsoft Transaction Server (MTS) hay cc chc nng trn Web cn
Windows phi ci t Internet Information Server (IIS).
Nh vy, bn cn bit rng la chn mt h iu hnh ci t v s dng .NET Framework cng
khng km phn quan trng. Ci t .NET Framework trn cc h iu hnh Windows 2000, 2000
Server, XP, XP.NET, 2003 Server s n gin v tin dng hn trong khi lp trnh.
II.2.2. Common Language Runtime
L thnh phn "kt ni" gia cc phn khc trong .NET Framework vi h iu hnh. Common
Language Runtime (CLR) gi vai tr qun l vic thi hnh cc ng dng vit bng .NET trn
Windows. CLR s thng dch cc li gi t chng trnh cho Windows thi hnh, m bo ng dng
khng chim dng v s dng trn lan ti nguyn ca h thng. N cng khng cho php cc lnh
"nguy him" c thi hnh. Cc chc nng ny c thc thi bi cc thnh phn bn trong CLR
nh Class loader, Just In Time compiler, Garbage collector, Exception handler, COM marshaller,
Security engine,
Trong cc phin bn h iu hnh Windows mi nh XP.NET v Windows 2003, CLR c gn km
vi h iu hnh. iu ny m bo ng dng vit ra trn my tnh ca chng ta s chy trn my
tnh khc m khng cn ci t, cc bc thc hin ch n gin l mt lnh xcopy ca DOS!
II.2.3. B th vin cc lp i tng
Nu phi gii ngha t "Framework" trong thut ng .NET Framework th y l lc thch hp nht.
Framework chnh l mt tp hp hay th vin cc lp i tng h tr ngi lp trnh khi xy dng
ng dng. C th mt s ngi trong chng ta nghe qua v MFC v JFC. Microsoft Foundation
Class l b th vin m lp trnh vin Visual C++ s dng trong khi Java Foundation Class l b th
vin dnh cho cc lp trnh vin Java. Gi y, c th coi .NET Framework l b th vin dnh cho
cc lp trnh vin .NET.
Vi hn 5000 lp i tng gi thc hin cc loi dch v t h iu hnh, chng ta c th
bt u xy dng ng dng bng Notepad.exe!!! Nhiu ngi lm tng rng cc mi trng
pht trin phn mm nh Visual Studio 98 hay Visual Studio.NET l tt c nhng g cn vit
chng trnh. Thc ra, chng l nhng phn mm dng lm "v bc" bn ngoi. Vi chng, chng
ta s vit c cc on lnh cc mu xanh, ; li c php bo ngay khi ang g lnh; thuc
tnh ca cc i tng c t ngay trn ca s properties, giao din c thit k theo phong
cch trc quan Nh vy, chng ta c th hnh dung c tm quan trng ca .NET Framework.
Nu khng c ci ct li .NET Framework, Visual Studio.NET cng ch l ci v bc! Nhng nu
khng c Visual Studio.NET, cng vic ca lp trnh vin .NET cng lm bc gian nan!
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 14/174
a. Base class library th vin cc lp c s
y l th vin cc lp c bn nht, c dng trong khi lp trnh hay bn thn nhng ngi xy
dng .NET Framework cng phi dng n xy dng cc lp cao hn. V d cc lp trong th
vin ny l String, Integer, Exception,
b. ADO.NET v XML
B th vin ny gm cc lp dng x l d liu. ADO.NET thay th ADO trong vic thao tc
vi cc d liu thng thng. Cc lp i tng XML c cung cp bn x l cc d liu theo
nh dng mi: XML. Cc v d cho b th vin ny l SqlDataAdapter, SqlCommand, DataSet,
XMLReader, XMLWriter,
c. ASP.NET
B th vin cc lp i tng dng trong vic xy dng cc ng dng Web. ASP.NET khng phi l
phin bn mi ca ASP 3.0. ng dng web xy dng bng ASP.NET tn dng c ton b kh
nng ca .NET Framework. Bn cnh l mt "phong cch" lp trnh mi m Microsoft t cho n
mt tn gi rt ku: code behind. y l cch m lp trnh vin xy dng cc ng dng Windows
based thng s dng giao din v lnh c tch ring. Tuy nhin, nu bn tng quen vi
vic lp trnh ng dng web, y ng l mt s "i i" v bn c gii phng khi m lnh
HTML ln xn ti hoa c mt.
S xut hin ca ASP.NET lm cn xng gia qu trnh xy dng ng dng trn Windows v Web.
ASP.NET cung cp mt b cc Server Control lp trnh vin bt s kin v x l d liu ca ng
dng nh ang lm vic vi ng dng Windows. N cng cho php chng ta chuyn mt ng dng
trc y vit ch chy trn Windows thnh mt ng dng Web kh d dng. V d cho cc lp
trong th vin ny l WebControl, HTMLControl,
d. Web services
Web services c th hiu kh st ngha l cc dch v c cung cp qua Web (hay Internet). Dch
v c coi l Web service khng nhm vo ngi dng m nhm vo ngi xy dng phn mm.
Web service c th dng cung cp cc d liu hay mt chc nng tnh ton.
V d, cng ty du lch ca bn ang s dng mt h thng phn mm ghi nhn thng tin v
khch du lch ng k i cc tour. thc hin vic t phng khch sn ti a im du lch, cng
ty cn bit thng tin v phng trng ti cc khch sn. Khch sn c th cung cp mt Web service
cho bit thng tin v cc phng trng ti mt thi im. Da vo , phn mm ca bn s bit
rng liu c ch t phng cho khch du lch khng? Nu , phn mm li c th dng mt
Web service khc cung cp chc nng t phng thu khch sn. im li ca Web service
y l bn khng cn mt ngi lm vic lin lc vi khch sn hi thng tin phng, sau , vi
cc thng tin v nhiu loi phng ngi s xc nh loi phng no cn t, s lng t bao
nhiu, hay khng ri li lin lc li vi khch sn t phng. ng qun l khch sn lc
ny cng cn c ngi lm vic vi nhn vin ca bn v cha chc h c th lin lc thnh
cng.
Web service c cung cp da vo ASP.NET v s h tr t pha h iu hnh ca Internet
Information Server.
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 15/174
e. Window form
B th vin v Window form gm cc lp i tng dnh cho vic xy dng cc ng dng Windows
based. Vic xy dng ng dng loi ny vn c h tr tt t trc ti nay bi cc cng c v
ngn ng lp trnh ca Microsoft. Gi y, ng dng ch chy trn Windows s c th lm vic vi
ng dng Web da vo Web service. V d v cc lp trong th vin ny l: Form, UserControl,
II.2.4. Phn nhm cc lp i tng theo loi
Mt khi nim khng c th hin trong hnh v trn nhng cn cp n l Namespace. y l
tn gi mt nhm cc lp i tng phc v cho mt mc ch no . Chng hn, cc lp i
tng x l d liu s t trong mt namespace tn l Data. Cc lp i tng dnh cho vic v
hay hin th ch t trong namespace tn l Drawing.
Mt namespace c th l con ca mt namespace ln hn. Namespace ln nht trong .NET
Framework l System.
H thng tn min (Namespace)
Li im ca namespace l phn nhm cc lp i tng, gip ngi dng d nhn bit v s
dng. Ngoi ra, namespace trnh vic cc lp i tng c tn trng vi nhau khng s dng
c. .NET Framework cho php chng ta to ra cc lp i tng v cc namespace ca ring
mnh. Vi hn 5000 tn c sn, vic t trng tn lp ca mnh vi mt lp i tng c l iu
kh trnh khi. Namespace cho php vic ny xy ra bng cch s dng mt tn y ni n
mt lp i tng. V d, nu mun dng lp WebControls, chng ta c th dng tn tt ca n l
WebControls hay tn y l System.Web.UI.WebControls.
c im ca b th vin cc i tng .NET Framework l s tri rng h tr tt c cc ngn
ng lp trnh .NET nh chng ta thy hnh v trn. iu ny s gip nhng ngi mi bt u t
bn tm hn trong vic la chn ngn ng lp trnh cho mnh v tt c cc ngn ng u mnh
ngang nhau. Cng bng cch s dng cc lp i tng xy dng ng dng, .NET Framework
buc ngi lp trnh phi s dng k thut lp trnh hng i tng (s c ni ti trong cc
chng sau).
S Sy ys st te em m
S Sy ys st te em m. .D Da at ta a S Sy ys st te em m. .X Xm ml l
S Sy ys st te em m. .W We eb b
G Gl lo ob ba al li iz za at ti io on n
D Di ia ag gn no os st ti ic cs s
C Co on nf fi ig gu ur ra at ti io on n
C Co ol ll le ec ct ti io on ns s
R Re es so ou ur rc ce es s
R Re ef fl le ec ct ti io on n
N Ne et t
I IO O
T Th hr re ea ad di in ng g
T Te ex xt t
S Se er rv vi ic ce eP Pr ro oc ce es ss s
S Se ec cu ur ri it ty y
C Co om mm mo on n
O Ol le eD Db b
S SQ QL LT Ty yp pe es s
S Sq ql lC Cl li ie en nt t
X XP Pa at th h
X XS SL LT T
R Ru un nt ti im me e
I In nt te er ro op pS Se er rv vi ic ce es s
R Re em mo ot ti in ng g
S Se er ri ia al li iz za at ti io on n
S Se er ri ia al li iz za at ti io on n
C Co on nf fi ig gu ur ra at ti io on n S Se es ss si io on nS St ta at te e
C Ca ac ch hi in ng g S Se ec cu ur ri it ty y
S Se er rv vi ic ce es s
D De es sc cr ri ip pt ti io on n
D Di is sc co ov ve er ry y
P Pr ro ot to oc co ol ls s
U UI I
H Ht tm ml lC Co on nt tr ro ol ls s
W We eb bC Co on nt tr ro ol ls s
S Sy ys st te em m. .D Dr ra aw wi in ng g
D DI Im ma ag gi in ng g
D Dr ra aw wi in ng g2 2D D
P PT Te ex xt t
P Pr ri in nt ti in ng g
S Sy ys st te em m. .W Wi in nd do ow ws s. .F Fo or rm ms s
D De es si ig gn n
C Co om mp po on ne en nt tM Mo od de el l
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 16/174
II.3. Tm hiu v ASP.Net
T khong cui thp nin 90, ASP (Active Server Page) c nhiu lp trnh vin la chn
xy dng v pht trin ng dng web ng trn my ch s dng h iu hnh Windows. ASP
th hin c nhng u im ca mnh vi m hnh lp trnh th tc n gin, s dng hiu qu
cc i tng COM: ADO (ActiveX Data Object) - x l d liu, FSO (File System Object) - lm vic
vi h thng tp tin, ng thi, ASP cng h tr nhiu ngn ng: VBScript, JavaScript. Chnh
nhng u im , ASP c yu thch trong mt thi gian di.
Tuy nhin, ASP vn cn tn ng mt s kh khn nh Code ASP v HTML ln ln, iu ny lm
cho qu trnh vit code kh khn, th hin v trnh by code khng trong sng, hn ch kh nng
s dng li code. Bn cnh , khi trin khai ci t, do khng c bin dch trc nn d b mt
source code. Thm vo , ASP khng c h tr cache, khng c bin dch trc nn phn no
hn ch v mt tc thc hin. Qu trnh x l Postback kh khn,
u nm 2002, Microsoft gii thiu mt k thut lp trnh Web kh mi m vi tn gi ban u l
ASP+, tn chnh thc sau ny l ASP.Net. Vi ASP.Net, khng nhng khng cn i hi bn phi
bit cc tag HTML, thit k web, m n cn h tr mnh lp trnh hng i tng trong qu trnh
xy dng v pht trin ng dng Web.
ASP.Net l k thut lp trnh v pht trin ng dng web pha Server (Server-side) da trn nn
tng ca Microsoft .Net Framework.
Hu ht, nhng ngi mi n vi lp trnh web u bt u tm hiu nhng k thut pha Client
(Client-side) nh: HTML, Java Script, CSS (Cascading Style Sheets). Khi Web browser yu cu mt
trang web (trang web s dng k thut client-side), Web server tm trang web m Client yu cu,
sau gi v cho Client. Client nhn kt qu tr v t Server v hin th ln mn hnh.
ASP.Net s dng k thut lp trnh pha server th hon ton khc, m lnh pha server (v d:
m lnh trong trang ASP) s c bin dch v thi hnh ti Web Server. Sau khi c Server c,
bin dch v thi hnh, kt qu t ng c chuyn sang HTML/JavaScript/CSS v tr v cho Client.
Tt c cc x l lnh ASP.Net u c thc hin ti Server v do , gi l k thut lp trnh
pha server.
II.4. Nhng u im ca ASP.Net
= ASP.Net cho php bn la chn mt trong cc ngn ng lp trnh m bn yu thch: Visual
Basic.Net, J#, C#,
= Trang ASP.Net c bin dch trc. Thay v phi c v thng dch mi khi trang web c
yu cu, ASP.Net bin dch nhng trang web ng thnh nhng tp tin DLL m Server c th
thi hnh nhanh chng v hiu qu. Yu t ny l mt bc nhy vt ng k so vi k thut
thng dch ca ASP.
Response
ASP.NET
ASPX
Engine
Page
DLL
Html
Page
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 17/174
= ASP.Net h tr mnh m b th vin phong ph v a dng ca .Net Framework, lm vic vi
XML, Web Service, truy cp c s d liu qua ADO.Net,
= ASPX v ASP c th cng hot ng trong 1 ng dng.
= ASP.Net s dng phong cch lp trnh mi: Code behide. Tch code ring, giao din ring D
c, d qun l v bo tr.
= Kin trc lp trnh ging ng dng trn Windows.
= H tr qun l trng thi ca cc control
= T ng pht sinh m HTML cho cc Server control tng ng vi tng loi Browser
= H tr nhiu c ch cache.
= Trin khai ci t
Khng cn lock, khng cn ng k DLL
Cho php nhiu hnh thc cu hnh ng dng
= H tr qun l ng dng mc ton cc
Global.aspx c nhiu s kin hn
Qun l session trn nhiu Server, khng cn Cookies
II.5. Qu trnh x l tp tin ASPX
Khi Web server nhn c yu cu t pha client, n s tm kim tp tin c yu cu thng qua
chui URL c gi v, sau , tin hnh x l theo s sau:
Qu trnh x l tp tin ASPX
Server tm
kim tp
tin
X l tp
tin ASPX
Thay i?
Thi hnh
trang ASPX
Khng
Hi p
Yu cu
Bin dch
Lu tr li
di dng
DLL
C
Bin dch li
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 18/174
III. Web Server
Trong phn ny chng ti gii thiu cho bn v IIS (phn mm Web Server ca Microsot dnh cho
Windows), ng thi hng dn bn ci t, cu hnh v kim tra Web Server trn cc h thng s
dng Windows XP, Windows 2000, Windows Server 2003.
III.1. Internet Information Services
IIS c th c s dng nh mt Web server, kt hp vi ASP xy dng cc ng dng Web tn
dng cc im mnh ca Server-side Script, COM component, theo m hnh Client/Server.
IIS c rt nhiu phin bn, u tin c pht hnh ri trong bn Service pack ca WinNT.
= Cc phin bn Windows 2000 c tch hp IIS 5.0.
= Windows XP tch hp IIS 5.5
= Windows XP .NET Server tch hp IIS 6 h tr cc tnh nng dnh cho .NET ca ASP.NET v
Web Service.
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 19/174
III.2. Ci t Web Server
III.2.1. Ci t Web Server trn Windows 2000/Windows XP Professional
Windows 2000 tch hp sn IIS nhng khng t ng ci t do , bn phi t ci IIS nu h
thng c ci ri.
Bc 1. Chn Control Panel | Add/Remove programs.
Bc 2. Add/Remove Windows Components.
Bc 3. nh du vo mc Internet Information Services (IIS).
Bc 4. Chn nt Details chn cc mc chi tit.
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 20/174
Bc 5. Chn cc mc cn ci t trong bn nh chn:
FrontPage 2000 Server Extensions
Internet Information Services Snap-In
Internet Services Manager (HTML)
Bc 6. Click OK h thng t ci t.
III.2.2. Ci t Web Server trn Windows Server 2003
Ci t Web Server trn Windows Server 2003 cng tng t nh ci t Web Server trn Windows
2000.
Bc 1. Chn Control Panel | Add/Remove programs.
Bc 2. Add/Remove Windows Components.
Bc 3. nh du vo Application Server.
Bc 4. Chn nt Details chn cc mc chi tit.
Cc bc cn li thc hin nh trn Windows 2000 (t bc 3 n bc 6)
Ci t IIS trn Windows Server 2003
III.2.3. Kim tra kt qu ci t Web Server
Sau khi ci t IIS, bn c th kim tra xem Web Server lm vic hay cha. M web browser
(Internet Explorer) v g: //localhost trong phn a ch. Mt khi Web server c ci t, mt
trang web mu s c hin th.
= Localhost l a ch ca my cc b m bn ang lm vic. Nu my ca bn ang kt ni vo
mng LAN v c mt a ch IP, bn c th dng a ch ny thay cho localhost.
xc nh a ch IP ca my mnh:
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 21/174
Vo menu Start|Run v g lnh: command hoc cmd
Trn mn hnh DOS, g lnh: ipconfig v xem phn IP Address
= Khi g //localhost, bn s thy trong thanh a ch t ng i thnh: http://localhost. HTTP l
giao thc mc nh c dng trn Internet. V HTTP l mt giao thc thuc b TCP/IP, bn
cn c a ch IP cc my tnh khc trong mng c th truy cp c n trang web ca
bn.
= Sau khi ci t Web Server, mc nh trn a C:\ s c sn th mc C:\inetpub\wwwroot.
y l th mc m Web Server mc nh nh x vo //localhost, do , cc trang web t
trong wwwroot c th c truy cp bi cc my tnh khc.
kim tra, hy to mt trang web v t vo c:\inetpub\wwwroot. Trn IE, g a ch:
/localhost/<tn file html>
Kim tra thnh cng Web Server trn Windows Server 2003
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 22/174
III.3. Cu hnh Internet Information Services
cu hnh IIS, vo Control Panel| Administrative Tools|Internet Services Manager.
Trn cc h iu hnh Windows 2000/XP, Microsoft s dng cng c Microsoft Management
Console (MMC) lm cng c qun l, do tt c cc thao tc u s dng menu ng cnh
bng cch nhp chut phi trn mc mun chn. Chn Properties ca mc Default Web Site, bn
c th xem v cu hnh li cc thng tin dnh cho trang web mc nh ca mnh.
= Trn tab Home Directory, bn c th thay i ng dn n mt th mc khc trn cng
nu mun
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 23/174
= Trn tab Documents, bn c th t trang web mc nh s hin th khi Web Browser khng ch
nh trang web c th. Bn s thy index.htm v default.htm c lit k trong phn ny. y
l l do ti sao khi bn g //localhost th Web browser li hin th c trang hompage. Thc
ra, //localhost tng ng vi //localhost/index.htm hay //localhost/default.htm.
= Trong tab Directory Security, bn c th nh li cc ch kim tra ngi dng truy cp vo
web site.
III.4. To cc ng dng web trn IIS
Mt Web Server c th qun l nhiu ng dng Web ng thi. Thng thng, bn s t chc mt
th mc con trong wwwroot cho mi ng dng nhng bn cng c th to nh x t mt th mc
khc.
= Nu bn t th mc trong wwwroot, IIS s t ng lit k n trong mc Default Web Site.
= Nu mun to mt th mc nm ngoi th mc wwwroot thnh mt web site, chng ta cn
to Virtual Directory lin kt n th mc .
to mt virtual directory:
= Chn mc New | Virtual Directory trn menu ng cnh.
To Virtual Directory
= Nhp vo tn alias cho th mc o.
= Chn nt Browse chn th mc mun nh x. Tip , bn s phi t mt s cu hnh khi
u cho web site, nhng thng tin ny c th cu hnh li tng t nh vi Default Web Site
trn
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 24/174
Kinh nghim ging dy:
Trong phn ny, gio vin cn hng dn cho hc vin ci t IIS v kim tra kt qu
ci t. Phn thc hnh ny tuy d nhng nu hc vin khng hon thnh tt phn
ny s khng th lm tip cc bi thc hnh sau.
IV. To ng dng Web u tin
IV.1. Khi ng MS Visual Studio .Net
Chng ta s bt u bng vic lm quen vi mi trng pht trin ng dng (IDE) ca Visual
Studio.NET. VS.NET c nhiu thay i so vi VS 98.
Hnh di l mn hnh khi u ca VS.NET 2003. Vng lm vic chnh gia ang hin th trang
"Start page" vi 3 mc chnh: Projects, Online Resource v My Profile.
My Profile ghi nh thng tin v ngi s dng VS.NET. Cc thng tin ch yu lin quan n cch
chng ta s s dng VS.NET nh th no. Chng hn nh cch hin th cc ca s, cc phm tt,
cch VS.NET hin th mn hnh gip ,
Online Resource cn mt kt ni vi Internet download cc thng tin t website ca Microsoft v
my tnh ca chng ta.
Projects lit k cc project m chng ta lm vic trong thi gian gn y. Trn mc ny, chng
ta cng c th to mi mt project bng cch nhn vo nt New Project.
Mn hnh Microsoft Visual Studio .Net
LinkButton
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 108/174
Bi 5
XY DNG I TNG TH HIN
Tm tt
L thuyt 6 tit - Thc hnh 10 tit
Mc tiu Cc mc chnh Bi tp
Thit k v xy dng iu khin ngi
dng (Web user control)
1. To mi i tng th hin
2. S dng i tng th hin
3. To phng thc cho i tng
th hin
4. To s kin cho i tng th hin
5. Phi hp hot ng cc i tng
th hin
5.1, 5.2, 5.3, 5.4,
5.5, 5.6, 5.10, 5.11
5.12
Bi lm thm:
5.7, 5.8, 5.9, 5.13,
5.14, 5.15
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 109/174
Xy dng iu khin ngi dng - user control rt cn thit cho vic ti s dng cc on m lnh
m ta xy dng chng, y l mt trong nhng tiu ch quan trng trong lnh vc xy dng phn
mm ni chung v xy dng ng dng web ni ring.
Xy dng iu khin ngi dng cng tng t nh vic xy dng cc trang web m chng ta
lm trc y. Ch c iu khc bit chnh l trong trang web, chng ta c nhiu thnh phn giao
din v x l tng ng cn trong iu khin ngi dng, chng ta ch thit k v xy dng cho
mt chc nng hay yu cu c th.
iu khin ngi dng cng c cc thuc tnh, phng thc v s kin nh cc Web Server control,
l ng nhin l cc thuc tnh, phng thc v s kin u do chng ta thit k v xy dng.
I. To mi i tng th hin
to mi i tng th hin, chn Add | Add Web User Control t thc n ng cnh ca ng
dng.
Chc nng to mi i tng th hin Web User Control
To mi i tng th hin: TH_SACH
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 110/174
Vic thit k v xy dng cc i tng th hin hon ton tng t nh cc bn tng lm vi
trang web. Chng ta cng xy dng i tng th hin thng tin sch.
Thit k th hin thng tin sch s dng DataList
Khi hon tt thit k i tng th hin, cng vic tip theo l vit cc x l cn thit cho cc iu
khin c trn i tng th hin theo yu cu s dng.
Vit cc x l cho i tng th hin:
Private Sub Page_Load(, e ) Handles MyBase.Load
If Not IsPostBack Then
'Khi to chui kt ni
Dim lSach As New XL_SACH
dtlSach.DataSource = lSach
dtlSach.DataKeyField = "Ms"
dtlSach.DataBind()
End If
End Sub
Private Sub dtlSach_ItemDataBound(, e )
'X l hin th Tn sch
'X l hin th hnh nh minh ha
'X l hin th thng tin tm tt ni dung
'X l hin th thng tin ch
'X l hin th thng tin nh xut bn
'X l hin th gi tin ca sch
End Sub
LinkButton
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 111/174
II. S dng i tng th hin
Sau khi thit k v vit cc x l, chng ta tin hnh a i tng th hin c xy dng vo
trang Web. Cc bc thc hin:
Bc 1. M trang web ch thit k - design.
Bc 2. T ca s Solution Explorer, chn i tng th hin cn s dng, nhn v ko r vo
trang web c m.
Ko i tng th hin vo trang Web
Bc 3. Thit lp cc thuc tnh cho iu khin va c ko vo
Khi thi hnh, kt qu hin th ca i tng th hin trn trang Web:
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 112/174
III. To phng thc cho i tng th hin
Trong v d trn, chng ta xy dng i tng th hin Sch. Khi to mi mt th hin Sch vo
trang web, thng tin sch s c hin th. Tuy nhin, chc hn cc bn s hi lng hn khi chng
ta thit k i tng th hin sch: TH_SACH, ch vi 1 i tng, nhng chng ta c th hin th
thng tin sch theo yu cu nh: Hin th sch mi va nhp, hin th sch bn chy nht, hin th
sch c nhiu c gi xem v bnh chn nht, hin th sch ca mt nh xut bn hay hin th
thng tin sch ca mt tc gi no . Th v qu phi khng cc bn?
lm c iu , rt n gin. Chng ta ch vic to cho i tng th hin cc phng thc -
hnh vi tng ng vi nhng yu cu c th.
Chng ta s tin hnh b sung cc phng thc sau vo i tng th hin va c xy dng.
Lu : Khi b sung cc phng thc hin th d liu cho i tng th hin, chng ta khng x l
hin th d liu trong s kin PageLoad.
Private Sub Page_Load(, e ) Handles MyBase.Load
'Khi to gi tr cho chui kt ni
End Sub
Public Sub Hien_thi_sach_co_ma(ByVal pMS As Long)
Dim lSach As New XL_SACH(pMS)
dtlSach.DataSource = lSach
dtlSach.DataBind()
End Sub
Public Sub Hien_thi_sach_ban_chay()
Dim lSach As New XL_SACH()
dtlSach.DataSource = lSach.Doc_sach_ban_chay()
dtlSach.DataBind()
End Sub
Public Sub Hien_thi_sach_moi()
Dim lSach As New XL_SACH()
dtlSach.DataSource = lSach.Doc_sach_moi()
dtlSach.DataBind()
End Sub
Public Sub Hien_thi_sach_theo_nxb(ByVal pMNxb As Long)
Dim lSach As New XL_SACH()
dtlSach.DataSource = lSach.Doc_sach_theo_nxb(pMNxb)
dtlSach.DataBind()
End Sub
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 113/174
Public Sub Hien_thi_sach_theo_chu_de(ByVal pMcd As Long)
Dim lSach As New XL_SACH()
dtlSach.DataSource = lSach.Doc_sach_theo_chu_de(pMaCD)
dtlSach.DataBind()
End Sub
IV. To s kin cho i tng th hin
Chc cc bn khng qun s kin Click ca cc iu khin Button (Button, LinkButton,
ImageButton). S kin Click xy ra khi Button c nhn vo. V mi y thi, vi iu khin
DataGrid, DataList, chng ta lm vic vi cc s kin: ItemCommand, EditCommand,
UpdateCommand, Mi s kin xy ra bi mt hnh ng tng ng trc ca ngi dng.
Cc i tng th hin m chng ta va xy dng cng vy, c kh nng pht ra cc s kin nu
c chng ta xy dng.
Chng ta cng to s kin cho th hin Sch. Trong th hin sch c cc thng tin m t lin quan:
Tn sch, Ch , Nh xut bn. Khi ngi dng chn chc nng no th iu khin s pht ra s
kin tng ng:
Tn sch iu khin s pht ra s kin Chon_sach(pMs)
Trong : pMs l M sch c ngi dng chn.
Ch iu khin s pht ra s kin Chon_chu_de(pMcd)
Trong : pMcd l M ch c ngi dng chn.
Nh xut bn iu khin s pht ra s kin
Chon_nha_xuat_ban(pMnxb)
Trong : pMnxb l M nh xut bn c ngi dng chn.
iu khin pht ra cc s kin tng ng
Pht ra s kin
Chon_sach
Pht ra s kin
Chon_chu_de
Pht ra s kin
Chon_nha_xuat_ban
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 114/174
IV.1. Thit k
Thit lp thuc tnh CommandName cho cc LinkButton: Tn sch, Ch v Nh xut bn.
Thit k thng tin sch vi DataList
Bng m t thuc tnh ca cc iu khin
iu khin Loi Thuc tnh Gi tr
lnkTen_sach LinkButton Text Tn sch
CommandName Ten_sach
lnkChu_de LinkButton Text Ch
CommandName Chu_de
lnkNha_xb LinkButton Text Nh xut bn
CommandName Nha_xuat_ban
IV.2. X l
Bc 1. Khai bo cc s kin:
Imports System.Web.UI.WebControls
Public Class TH_SACH
Inherits System.Web.UI.UserControl
Public Event Chon_sach(ByVal pMs As Long)
Public Event Chon_chu_de(ByVal pMcd As Long)
Public Event Chon_nha_xuat_ban(ByVal pMnxb As Long)
End Class
Bc 2. X l s kin ItemDataBound
Trong x l sau, chng ta gn gi tr cho thuc tnh CommandArgument ca cc LinkButton lu
tr cc m tng ng cho tng iu khin.
'X l cho Tn sch
Dim lnkTen_sach As LinkButton
lnkTen_sach = e.Item.FindControl("lnkTen_sach")
lnkTen_sach.Text = e.Item.DataItem("Ten_sach")
LinkButton
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 115/174
lnkTen_sach.CommandArgument = e.Item.DataItem("Ms")
'X l cho ch
Dim lChu_de As New XL_CHU_DE
Dim lnkChu_de As LinkButton
lnkChu_de = e.Item.FindControl("lnkChu_de")
Dim Mcd As Integer = e.Item.DataItem("Mcd")
lnkChu_de.Text = lChu_de.Thuoc_tinh(Mcd, "Ten_chu_de")
lnkChu_de.CommandArgument = Mcd
'X l cho nh xut bn
Dim lNXB As New XL_NHA_XB
Dim lnkNha_xb As LinkButton
lnkNha_xb = e.Item.FindControl("lnkNha_xb")
Dim Mnxb As Integer = e.Item.DataItem("Mnxb")
lnkNha_xb.Text = lNXB.Thuoc_tinh(Mnxb, "Ten_nha_xuat_ban")
lnkNha_xb.CommandArgument = MNXB
Bc 3. By bin c ItemCommand pht s kin tng ng
Private Sub dtlSach_ItemCommand(, e )
If e.CommandName = "Ten_sach" Then
Dim Ms As Long = e.CommandArgument
RaiseEvent Chon_sach(Ms)
ElseIf e.CommandName = "Chu_de" Then
Dim Mcd As Long = e.CommandArgument
RaiseEvent Chon_chu_de(Mcd)
ElseIf e.CommandName = "Nha_xuat_ban" Then
Dim Mnxb As Long = e.CommandArgument
RaiseEvent Chon_nha_xuat_ban(Mnxb)
End If
End Sub
Chng ta c th ng thi va x l bin c v pht ra s kin:
Private Sub dtlSach_ItemCommand(, e )
If e.CommandName = "Ten_sach" Then
Dim Ms As Long = e.CommandArgument
RaiseEvent Chon_sach(Ms)
ElseIf e.CommandName = "Chu_de" Then
Dim Mcd As Long = e.CommandArgument
Hien_thi_sach_theo_chu_de(Mcd)
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 116/174
RaiseEvent Chon_chu_de(Mcd)
ElseIf e.CommandName = "Nha_xuat_ban" Then
Dim Mnxb As Long = e.CommandArgument
Hien_thi_sach_theo_nxb(Mnxb)
RaiseEvent Chon_nha_xuat_ban(Mnxb)
End If
End Sub
Hin th sch theo ch Cng ngh thng tin
Cc sch ca ch Cng ngh thng tin
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 117/174
Bi 6
XY DNG V QUN L NG DNG
Tm tt
L thuyt 9 tit - Thc hnh 15 tit
Mc tiu Cc mc chnh Bi tp
S dng cc i tng qun l ng
dng thc hin cc chc nng iu
khin lung chng trnh, qun l
ngi dng hay chia s d liu gia
cc trang web.
Tm hiu cc tp tin qun l v cu
hnh ng dng.
T chc v xy dng ng dng.
1. i tng Response
2. i tng Request
3. i tng Application
4. i tng Session
5. i tng Server
6. i tng Cookies
7. Tp tin qun l v cu hnh ng
dng
8. T chc & xy dng ng dng
6.1, 6.2, 6.3, 6.4
Bi lm thm:
6.5, 6.6
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 118/174
Trong cc chng trc, chng ta tm hiu v lm vic vi cc iu khin, x l d liu vi
ADO.Net, to cc lp x l v xy dng cc i tng th hin, . l nhng k nng cn thit
xy dng ng dng.
Trong chng ny, chng ta s tm hiu cc i tng c dng xy dng, pht trin v qun
l ng dng web. Thng qua nhng i tng ny, chng ta c th ghi nhn nhng yu cu t
Client, qun l thng tin ngi dng, cu hnh v bo mt cho ng dng.
I. i tng Request, Response
Qu trnh Request - Response ca HTTP
I.1. i tng Response
i tng Response c s dng giao tip vi Client, n qun l v iu phi thng tin t Web
Server n cc trnh duyt ca ngi dng.
I.1.1. Phng thc Write
Phng thc Write ca i tng Response c dng in ra mt chui trn trang Web. Phng
thc ny l mt trong nhng phng thc ch lc trong cc ng dng web s dng ASP 3.0 khi cn
gi kt qu t Server v cho Client.
Response.Write("Cho bn. Bn ang tm hiu v i tng Response.")
Web Client
(Browser)
Resource
Web Server
Http Response
Http Request
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 119/174
Trong ASP.Net, chng ta c th thc hin nh sau:
lblChao.Text = "Cho bn. Bn ang tm hiu v i tng Response."
Qua v d trn, chc c l bn cng nhn ra rng, khi s dng phng thc Response.Write, chng
ta khng th qui nh v tr hin th ca chui trn trong trang Web. Thay vo , vi ASP.Net,
thng qua cc Server control, chng ta c th thc hin chc nng tng t nhng linh hot hn
bng cch t iu khin ti v tr cn hin th.
I.1.2. Phng thc Redirect
Phng thc Redirect gi thng ip yu cu Web Browser truy cp n mt a ch khc.
V d
'Nu ng nhp thnh cng
If <Kim tra ng nhp> Then
Response.Redirect("Chao.aspx")
Else
Response.Redirect("Dang_nhap.aspx")
End If
I.1.3. V d x l cho php ngi dng download file
V d: X dng i tng Response thc hin vic download tp tin.
Thit k
Thi hnh
Vit lnh x l:
Private Sub lnkDownload_Click(sender , e ) _
Handles lnkDownload.Click
Dim sTap_tin As String = "MinhHoa.zip"
Dim sDuong_dan As String
sDuong_dan = Server.MapPath("../Download/") & sTap_tin
Response.AddHeader("Content-Disposition", _
"attachment; filename=" + sTap_tin)
Response.WriteFile(sDuong_dan)
Response.End()
End Sub
LinkButton
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 120/174
Hin th hp thoi download tp tin
I.2. i tng Request
i tng Request c dng nhn thng tin t trnh duyt ca ngi dng gi v cho Web
Server.
I.2.1. Thuc tnh QueryString
Nh chng ti trnh by phn u ca cun sch ny, HTTP c xc nh qua URLs (Uniform
Resource Locators), vi cu trc chui c nh dng nh sau:
http: // <host> [: <port>] [ <path> [? <QueryString>]]
Phn cui ca chui URL l QueryString - cn c gi l chui tham s, c cu trc nh sau:
[?Tham_so_1=gia_tri_1[&Tham_so_2=gia_tri_2[&]]]
Trong trng hp c nhiu tham s, cc cp [<Tham_so> = <Gia_tri>] phn cch nhau bng du
&.
V d:
http://www.tuoitre.com.vn/Tianyon/Index.aspx?PID=16
http://www.tuoitre.com.vn/Tianyon/Index.aspx?ArticleID=89211&PID=16
Thuc tnh QueryString ca i tng Request cho php chng ta nhn cc gi tr truyn qua chui
tham s ny.
Request.QueryString("Tn_tham_s")
V d: Gi s mt ngi dng gi thng ip n Web Server yu cu trang:
"Request.aspx?Chuc_nang=Hieu_chinh&ID=123". ly gi tr 2 tham s trong chui
QueryString, chng ta thc hin nh sau:
Dim sChuc_nang As String
sChuc_nang = Request.QueryString("Chuc_nang")
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 121/174
lblChuc_nang.Text = sChuc_nang
Dim Id As Integer
Id = Request.QueryString("ID")
lblId.Text = Id
Trong trng hp tn tham s khng tn ti trong chui QueryString, thuc tnh
Request.QueryString() s tr v gi tr nothing.
Nu bn trong on lnh x l trn, chng ta c thc hin khai bo cc bin vi kiu d
liu tng ng cc tham s, nhn kt qu tr v t thuc tnh Request.QueryString(). Trong
trng hp tham s khng c truyn trong chui URL hoc c truyn m sai kiu d liu,
cc bin c to s c gi tr mc nh tng ng vi kiu d liu ca n, trnh c cc li v
kiu d liu khng ng c.
I.2.2. Cc v d minh ha
V d: Ly thng tin cc trnh duyt ca ngi dng.
Dim sThong_tin As String
With Request.Browser
sThong_tin &= "Browser: " & .Browser & "<br>"
sThong_tin &= "Version: " & .Version & "<br>"
sThong_tin &= "Platform: " & .Platform & "<br>"
sThong_tin &= "JavaScript: " & .JavaScript & "<br>"
lblThong_tin.Text = sThong_tin
End With
Thng tin ca trnh duyt ti Client
V d: Lit k danh sch cc bin Server
Dim sServer As String, i As Integer
With Request.ServerVariables
For i = 0 To .Count - 1
sServer &= .Keys(i) & ": " & .Item(i) & "<br>"
Next i
lblServer.Text = sServer
End With
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 122/174
Danh sch cc bin Server
II. i tng Session, Application
Application v Session l 2 i tng kh quan trng trong ng dng web, gip cc trang aspx c
th lin kt v trao i d liu cho nhau. Trong phn ny, chng ta s tm hiu v s dng 2 i
tng ny trong ng dng.
Quan h gia Session v Application
Web Server
Web Site
Application
Session Session
Session
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 123/174
II.1. i tng Application
i tng Application c s dng qun l tt c cc thng tin ca mt ng dng web. Thng
tin c lu tr trong i tng Application c th c x l trong bt k trang aspx no trong
sut chu k sng ca ng dng.
II.1.1. S dng bin Application
To bin Application
Application("Tn bin") = <gi tr>
Ly gi tr t bin Application
<bin> = Application("Tn bin")
V d:
Application.Lock()
Application("So_lan_truy_cap") = 0
Application("So_nguoi_online") = 0
Application.UnLock()
Ch :
Do ti mt thi im c th c nhiu ngi cng lc truy cp v thay i gi tr ca cc thng tin
c lu trong i tng Application, chng ta nn s dng b lnh Lock v UnLock ngay trc v
sau khi cp nht gi tr ca bin Application.
Bin Application c th c s dng bt k trang no v c duy tr trong sut chu k sng ca
ng dng.
II.1.2. Duyt qua tp hp bin cha trong Application
Dim i As Integer
Response.Write("<b><u>Danh sch cc bin trong i _
tng Application</u></b><br>")
For i = 0 To Application.Count() - 1
Response.Write(Application.Keys(i) & " : ")
Response.Write(Application(i) & "<br />")
Next i
Kt qu hin th
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 124/174
II.2. i tng Session
i tng Session c dng lu tr thng tin ca ngi dng trong ng dng. Thng tin c
lu tr trong Session l ca mt ngi dng trong mt phin lm vic c th. Web Server s t
ng to mt i tng Session cho mi ngi dng mi kt ni vo ng dng v t ng hy
chng nu ngi dng cn khng lm vic vi ng dng na.
Tuy nhin, khng ging nh i tng Application, i tng Session khng th chia s thng tin
gia nhng ln lm vic ca ngi dng, n ch c th cung cp, trao i thng tin cho cc trang
trong ln lm vic tng ng.
Trong ng dng web, i tng Session gi vai tr kh quan trng. Do s dng giao thc HTTP,
mt giao thc phi trng thi, Web Server hon ton khng ghi nh nhng g gia nhng ln yu
cu ca Client. i tng Session t ra kh hu hiu trong vic thc hin "lu vt v qun l thng
tin ca ngi dng".
II.2.1. Thuc tnh & Phng thc
a. Thuc tnh Timeout
Qui nh khong thi gian (tnh bng pht) m Web Server duy tr i tng Session nu ngi
dng khng gi yu cu no v li Server. Gi tr mc nh ca thuc tnh ny l 20.
Nu khng c yu cu no k t ln yu cu sau cng mt khong thi gian l <Timeout> pht, i
tng Session m Web server cp cho ln lm vic s t ng c gii phng. Nhng yu cu
sau c Web server coi nh l mt ngi dng mi, v ng nhin s c cp mt i
tng Session mi.
b. Phng thc Abandon
Nh cc bn bit, trong khong thi gian <Timeout> pht k t ln yu cu sau cng ca Client,
i tng Session vn c duy tr d cho khng c s tng tc no ca Client. iu ny ng
ngha vi vic Web server phi s dng mt vng nh duy tr i tng Session trong mt
khong thi gian tng ng.
Phng thc Abandon ca i tng Session s gii phng vng nh c dng duy tr i
tng Session trn Web Server ngay khi c gi thc hin. Nhng yu cu sau c Web
server coi nh l mt ngi dng mi.
II.2.2. S dng bin ton cc vi Session
To bin Session
Session("Tn bin") = <gi tr>
Ly gi tr t bin Session
<bin> = Session("Tn bin")
V d:
Lu tr thng tin khi ngi dng cha ng nhp h thng:
Session("Mkh") = 0
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 125/174
Session("Ten_dang_nhap") = ""
Khi ngi dng ng nhp h thng thnh cng, cp nht li thng tin ng nhp ca ngi dng
c lu trn Session.
Session("Mkh") = 1
Session("Ten_dang_nhap") = "dlthien"
Duyt qua tp hp bin cha trong Session
Dim i%
For i = 0 To Session.Count() - 1
Response.Write(Session.Keys(i) & " : ")
Response.Write(Session(i) & "<br/>")
Next
III. i tng Server
i tng Server c s dng cung cp thng tin ca Server cho ng dng.
= Thuc tnh MachineName
Thuc tnh ny c dng ly tn ca Web Server.
= Phng thc Mappath
Phng thc Mappath c dng ly ng dn vt l hoc ng dn o n mt th mc
trn Server.
= Phng thc Transfer(<ng dn n trang cn yu cu>)
Ngng thi hnh trang hin hnh, gi yu cu mi n trang c gi thc hin.
IV. i tng Cookies
IV.1. Gii thiu
C l bn cng tng ng k l mt thnh vin ca mt trang web hay mt forum no , v
chc cng khng t ln ngc nhin khi bn va yu cu n mt trang web hay forum m bn
ng k trc , trang web nhn ngay ra, bn chnh l thnh vin ca h v gi ngay li cho n
bn, chng hn: Cho Nguyn Anh Ti.
Lm sao m Web Server nhn ra c mnh nh? Mnh ng k t ngy hm qua kia m? Khng
u xa c, nhng thng tin c lu ngay chnh ti my ca bn. Nhng thng tin c Web
Server lu ti my Client c gi l Cookies.
Khng ging nh i tng Session, i tng Cookies cng c dng lu tr thng tin ca
ngi dng, tuy nhin, thng tin ny c lu ngay ti my gi yu cu n Web Server.
C th xem mt Cookie nh mt tp tin (vi kch thc kh nh) c Web Server lu ti my ca
ngi dng. Mi ln c yu cu n Web Server, nhng thng tin ca Cookies cng s c gi
theo v Server.
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 126/174
IV.2. Lm vic vi Cookies
IV.2.1. Thm Cookies
Response.Cookies.Add(<HttpCookie>)
V d:
Dim cookTen_dn As New HttpCookie("Ten_dang_nhap")
cookTen_dn.Value = txtTen_dang_nhap.Text
cookTen_dn.Expires = Date.Today.AddDays(1)
Response.Cookies.Add(cookTen_dn)
Trong v d trn, chng ta to ra Cookies c tn l Ten_dang_nhap lu tr tn ng nhp ca
ngi dng. Thng tin ny s c lu tr trn Cookies 1 ngy k t ngy hin hnh trn Web
Server.
IV.2.2. Ly gi tr t Cookies
Dim <bin Cookie> As HttpCookie
<bin Cookie> = Request.Cookies(<Tn Cookies>)
<bin Cookie>.Value ' Gi tr ca Cookies
Trong trng hp Cookies cha c lu hoc ht thi hn duy tr ti Client, gi tr nhn c l
Nothing.
Client Web Server
Cookies
Request
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 127/174
V. Tp tin qun l v cu hnh ng dng
V.1. Global.asax
Tp tin Global.asax c dng :
Khai bo v khi to gi tr cho cc bin Application, Session.
Vit x l cho cc s kin ca 2 i tng Application v Session.
V.1.1. Cu trc tp tin Global.asax
Public Class Global
Inherits System.Web.HttpApplication
Sub Application_Start(ByVal sender , ByVal e )
End Sub
Sub Session_Start(ByVal sender , ByVal e )
End Sub
Sub Application_BeginRequest(sender , e )
End Sub
Sub Application_Error(ByVal sender , ByVal e )
End Sub
Sub Session_End(ByVal sender , ByVal e )
End Sub
Sub Application_End(ByVal sender , ByVal e )
End Sub
End Class
V.1.2. Cc s kin trong tp tin Global.asax
= Application_Start: Ch xy ra mt ln u tin khi bt k trang no trong ng dng c gi.
Sub Application_Start(sender , ByVal e As EventArgs)
Application("So_luot_truy_cap") = 0
Application("So_nguoi_online") = 0
End Sub
= Session_Start: Xy ra khi c mt ngi dng mi yu cu n bt k trang aspx ca ng dng.
Khi Session_Start xy ra, mt gi tr duy nht (SessionID) s c to cho ngi dng, v gi tr
ny c s dng qun l ngi dng trong qu trnh lm vic vi ng dng.
Sub Session_Start(sender As Object, e As EventArgs)
Application("So_luot_truy_cap") += 1
Application("So_nguoi_online") += 1
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 128/174
Session("Mkh") = 0
Session("Ten_dang_nhap") = ""
End Sub
= Application_BeginRequest: Xy ra khi mi khi c Postback v Server.
= Sub Application_Error: Xy ra khi c li pht sinh trong qu trnh thi hnh.
= Session_End: Xy ra khi phin lm vic khng c gi yu cu hoc lm ti trang aspx ca ng
dng web trong mt khong thi gian (mc nh l 20 pht).
Sub Session_End(sender As Object, e As EventArgs)
Application("So_nguoi_online") -= 1
End Sub
= Application_End: Xy ra khi dng hot ng ca WebServer.
V d x l ghi nhn thng tin S lt truy cp vo c s d liu (nu cn).
V.2. Web.config
V.2.1. Cu trc tp tin web.config
Web.config l mt tp tin vn bn c s dng lu tr thng tin cu hnh ca mt ng dng,
c t ng to ra khi chng ta to mi ng dng web. Tp tin web.config c vit theo nh
dng XML.
Web.config c to k tha cc gi tr t tp tin Windows\Microsoft. NET\Framework\[Framework
Version]\CONFIG\machine.config
Tp tin cu hnh ng dng Web.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Ole_Con" value="Provider=SQLOLEDB;
Data Source=dlthien;
Initial Catalog=QlBanSach;
User ID=Qlbs_app;
Password=Qlbs_app"/>
</appSettings>
<system.web>
<compilation defaultLanguage="vb" debug="true"/>
<customErrors mode="RemoteOnly" />
<authentication mode="Windows" />
<authorization>
<allow users="*" /> <!-- Allow all users -->
</authorization>
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 129/174
</system.web>
</configuration>
V.2.2. Cc cu hnh mc nh
a. <compilation defaultLanguage="vb" debug="true"/>
defaultLanguage: qui nh ngn ng mc nh ca ng dng.
debug: Bt/tt ch debug ca ng dng
b. <customErrors mode="RemoteOnly"/>
y l mt cu hnh kh cn thit cho ng dng Web. Hiu chnh cu hnh ny cho php chng ta
qun l vic x l li khi c li pht sinh trong ng dng.
Thuc tnh mode c cc gi tr: RemoteOnly, On v Off.
= RemoteOnly: Cho php ngi dng thy thng bo li ca h thng hoc trang thng bo li
c ch nh qua defaultRedirect (nu c).
Thng bo li gm: M li v m t li tng ng
<customErrors mode="RemoteOnly"
defaultRedirect="Error/Err.aspx"/>
= On: Ty theo gi tr ca defaultRedirect m c cc trng hp tng ng:
C qui nh trang thng bo li qua defaultRedirect: Hin th trang thng bo li.
Khng c thuc tnh defaultRedirect: Hin th trang bo li nhng khng c hin th m li
v m t li.
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 130/174
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 131/174
= Off: Hin th thng bo li ca trang aspx (nu xy ra li).
c. <sessionState>
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;
Trusted_Connection=yes"
cookieless="false"
timeout="20" />
= mode: Thuc tnh ny c 3 gi tr: InProc, sqlserver (lu trong database), v stateserver
(lu trong b nh)
= stateConnectionString: Cu hnh a ch v cng (port) ca my lu tr thng tin ca Session
trong vng nh (nu chc nng ny c chn).
= sqlConnectionString: Cu hnh kt ni n SQL Server c dng lu thng tin Session (nu
chc nng ny c chn).
= cookieless: Nu gi tr ca thuc tnh ny = True, thng tin cookie s c lu tr trong URL,
ngc li, nu = False, thng tin cookies s c lu tr ti client (nu client c h tr)
= timeout: Khong thi gian (tnh bng pht) m i tng Session c duy tr. Sau khong thi
gian ny, i tng Session s b hu. Gi tr mc nh ca thuc tnh ny l 20.
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 132/174
V.2.3. Lm vic vi tp tin web.config
Tp tin web.config c h tr tag <appSettings> vi 2 thuc tnh l key v value cho php chng
ta thm vo cc bin dng cu hnh ng dng.
Lu : Cc tn tag trong tp tin cu hnh web.config c phn bit ch hoa, ch thng.
<appSettings>
<add key="Tn bin" value="Gi tr" />
</appSettings>
V d:
To bin cu hnh Ole_Con dng lu tr thng tin ca chui kt ni n c s d liu SQL
Server:
<configuration>
<appSettings>
<add key="Ole_Con" value="Provider=SQLOLEDB;
Data Source=dlthien;
Initial Catalog=QlBanSach;
User ID=Qlbs_app;
Password=Qlbs_app"/>
</appSettings>
</configuration>
Ly gi tr thit lp trong tp tin web.config
gChuoi_ket_noi = ConfigurationSettings.AppSettings("Ole_Con")
Ti liu hng dn ging dy
Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 133/174
VI. T chc & xy dng ng dng
VI.1. T chc lu tr ng dng
VI.1.1. Mn hnh giao din
Giao din ng dng qun l bn hng qua mng
Kinh nghim ging dy:
Trong phn ny, gio vin hng dn hc vin truy cp vo cc trang web vi nhiu
th loi khc nhau: Tin tc, bn hng trc tuyn, hc tp trc tuyn,
Da trn nhng trang web , gio vin gip hc vin xc nh cc thnh phn c
trn trang web cng nh trnh by cho hc vin thy c b cc (hnh thc trnh
by) ca cc trang web.