T Hc
Microsoft ASP.NET
Bn quyn ca:
www.vovisoft.comRào Trc
Hành trang vào Khóa Hc ASP.NET
Ta nên chun b sn mt s kin thc cn bn v lp trình hay phát trin mng khi bc vào khóa hc này thì tt hn, vì tuy
bn không cn phi bit v ASP c đin (classic ASP) nhng, nh chúng tôi đã trình bày trong phn FAQ trang Chào Mng
đu khóa hc, bn cn:
• tham kho các bài vit trong khóa
Hc Microsoft .NET ca thy Lê Ðc Hng đ làm quen vi .NET framework,
Visual Basic.NET, Visual Studio.NET. VB.NET s đc dùng làm ngôn ng mc đnh (default) trong các thí d, các
bài tp hay các d án ca khoá.
• bit tng quát v HTML (HyperText Markup Language) khi ta cn trình bày các trang web trên browser. Browser
đc dùng trong khoá này là IE6 (Internet Explorer Version 6).
• quen thuc vi các h điu hành mi hin nay (Operating System) nh Windows 2000 (Professional hay Server) hay
Windows XP (Home hay Professional), cng nh quen thuc cách qun lý các ng dng liên h nh Web Server
(Personal Web Server hay Internet Information Server - IIS) và các c s d liu (database) MS SQL Server 2000 -
xin tham kho các bài vit v
MCSE ca thy V Hu Tín, thy Tng Vinh Tài và lp MCSE.
• vài kin thc cn bn v XML liên quan đn vic chuyn thông tin t ch này qua ch khác. V XML, bn nên tham
kho các bài vit XML, K Thut Nng Ct trong Tng Lai ca thy Lê Ðc Hng và các bài t hc XML ca cô
Bch Trí
cng trên mng Vovisoft này).
Tht ra, ta đâu làm khó nhau chi nhng phi rào trc đón sau nh vy là vì con đng ta đi tìm hiu v ASP.NET hi lt lo
gp ghnh. Mt khi ta phát trin mng vi ASP.NET, ta phi vn dng tt c các ng dng liên h và kt hp mi th vào
nhau. Ðó cng là lý do ti sao khoá hc này ch nhm vào các lp trình viên đã có kinh nghim phát trin mng. Tuy vy,
chúng tôi s c gng trình bày mt cách đn s, ngn và gn khi đ cp đn các ng dng k trên trong các bài hc có liên
Developer Productivity
Easy Programming Model:
ASP.NET giúp ta phát trin và trin khai các ng dng v mng trong mt thi gian k lc vì nó cung cp cho ta mt kiu
mu lp trình d dàng và gn gàng nht. Ngoài ra còn bãnh hn na, các trang ASP.NET làm vic vi mi browsers hin nay
nh Internet Explorer (IE), Netscape, Opera, AOL, ... mà không cn phi đi ti đi lui các ngun mã rt vt vã nh trc.
Flexible Language Options:
Không nh ASP kiu c đin ch gii hn vi VBScripts and JScripts, ASP.NET ym tr trên 25 .NET ngôn ng lp trình (d
nhiên ngoài các ngôn ng mi thit lp đã cài sn ym tr .NET framework nh là VB.NET, C# và JScript.NET còn có
MC++.NET, Smalltalk.NET, COBOL.NET, Eiffel.NET, Perl.NET, Component Pascal.NET, Mercury.NET, Oberon.NET,
Python.NET, vân vân và vân vân ... không k xit).
Great Tool Support:
Mc dù ta có th ch cn dùng ti Notepad đ trin khai các trang ASP.NET nhng Visual Studio.NET giúp nng sut trin
khai mng thêm phn hiu qu ví ta có th quan sát các k hoch ca ta d dàng hn khi phát ha (design) các thành phn ca
ASP.NET bng hình nh vi ASP.NET Web Forms hay Services theo phng pháp 'drag-drop-doubleclick' quen thuc ca
nn Windows. Thêm na, li còn ym tr ta trong vic phát hin và loi b nhng li sai mt cách rt thun li trong khi phát
trin các ng dng v mng (support for debugging and deploying ASP.NET Web applications).
Ðây là trang đu tiên khi dùng Visual Studio.NET: Rich Class Framework:
Nh nn tng vng vàng và tài nguyên phong phú ca .NET Framework vi hn 5000 classes bao gm đ th mi chuyn
trên tri di đt nh XML, data access, file upload, regular expressions, transactions, message queuing, SMTP mail, vân vân
và vân vân ... nên vic thit k các đc tính trong mt ng dng tr nên nh nhàng và thoi mái hn xa rt nhiu.
Improved Performance and Scalability
Compile execution:
ASP.NET không nhng chy nhanh hn ASP c đin gp 5 ln mà còn có th duy trì kiu mu cp nht gi là kiu mu 'just
hit save', ngha là ASP.NET t đng dò tìm mi s thay đi và compile files khi cn thit cng nh lu tr kt qu compile
đó đ cung ng dch v cho nhng yêu cu tip theo sau, nh vy ng dng ca bn luôn luôn cp nht hóa và chy nhanh
hn c ... nga Nhâm Ng 2002.
Rich output caching:
XML Web Services:
Dch v tân k v mng vi XML cng cho phép bn truyn đt (communicate) và chia x (share) các d kin (data) xuyên
qua mng Internet d dàng ti các SOAP client mà không h phân bit đi x các h điu hành hay các ngôn ng lp trình
khác nhau (regardless of OS or programming language). Nh đó, ta không cn phi hc thêm hay đào sâu các kin thc v
Networking, XML hay SOAP, ...
Mobile Web Service Support:
Thêm na, ASP.NET Mobile Controls còn giúp ta phát trin và trin khai mng nhm vào th trng nhng cell phone hay
PDA vi gn hn 80 Mobile Web Services đuc cung cp trong .NET framework. Bn ch cn lp trình cho ng dng ca
bn nh thng l ri phó mc cho Mobile Controls đó t đng phát sinh ra nhng ngun mã nh WAP/WML, HTML hay
iMode thích hp vi tng loi thit b (device) riêng bit.
Thôi, đn đây ta tm ngng ... 'đánh bóng' nhng gì đã sáng chói đó mà hít mt hi tht dài, bc mt bc khi đu cho
cuc hành trình tìm hiu và thc hành v ASP.NET. Vy xin mi bn hãy sang sông, à không, sang ... trang vi bài s 1
'Làm Quen vi ASP.NET'
Bài 01
Làm Quen vi ASP.NET
Hãy ngi xung đây, hãy ngi xung đây, xa cn bun phin.
Du bit chia phôi, nhng trong cuc đi, vn có đôi ta.
Hãy ngi xung đây - Lê Uyên Phng
Trong trang này, ta s tham kho mt s vn đ nh sau:
• ASP.NET là gì?
• Phng pháp làm vic trong mng
• S lc v .NET Framework
• B trí và cài đt ASP.NET
• To trang ASP.NET đu tiên
Chc hn ta có dp đc nghe Nguyn Ngc Ngn k vi K Duyên rng ông đã b công gn 2, 3 nm tri đng đng đ ...
nghiên cu rt là cc kh mi khám phá ra mt chân lý nh sau: 'Thà là ly v va tr va đp còn hn là ly v ... va già
va xu'. Ta thì không cn phi tn nhiu nm tháng đn th đ bit đc ASP.NET va tr va đp hn là ASP hoc nhng
phng pháp phát trin mng c đin khác nhng dù có bit rõ ASP.NET va tr va đp (Microsoft chính thc khai trng
ca nó ht sc ri rt và gii hn.
Trong khi đó, ASP.NET là mt c cu trong các c cu ca h điu hành Windows di dng nn hay khung .NET (.NET
framework), nh vy ASP.NET không nhng có th dùng các object ca các ng dng c mà còn có th x dng tt c mi
tài nguyên mà Windows có, d dàng nh ... n cm tm bì sn ch vy.
Ta có th tóm tc đi khái s thay đi nh sau:
• Tp tin ca ASP.NET (ASP.NET file) có extension là .ASPX, còn tp tin ca ASP là .ASP.
• Tp tin ca ASP.NET (ASP.NET file) đc phân tích ng pháp (parsed) bi XSPISAPI.DLL, còn tp tin ca ASP
đc phân tích bi ASP.DLL.
• ASP.NET là kiu mu lp trình phát đng bng s kin (event driven), còn các trang ASP đc thi hành theo th t
tun t t trên xung di.
• ASP.NET x dng trình biên dch (compiled code) nên rt nhanh, còn ASP dùng trình thông dch (interpreted code)
do đó hiu sut và tc đ phát trin cng thua sút hn.
• ASP.NET ym tr gn 25 ngôn ng lp trình mi vi .NET và chy trong môi trng biên dch (compiled
environment), còn ASP ch chp nhn VBScript và JavaScript nên ASP ch là mt scripted language trong môi
trng thông dch(in the interpreter environment). Không nhng vy, ASP.NET còn kt hp nhun nhuyn vi XML
(Extensible Markup Language) đ chuyn vn các thông tin (information) qua mng.
• ASP.NET ym tr tt c các browser và quan trng hn na là ym tr các thit b lu đng (mobile devices). Chính
các thit b lu đng, mà mi ngày càng ph bin, đã khin vic dùng ASP trong vic phát trin mng nhm vn ti
th trng mi đó tr nên vô cùng khó khn.
PHNG PHÁP LÀM VIC TRONG MNG
Internet đã và đang đem li nhiu điu k diu cho đi sng ca ta. Tht vy, nó có kh nng 'ni vòng tay ln' mi ngi trên
th gii tng chng nh cách bit xa xôi ngàn dm bng dng li gn trong gang tt, k thut này đã mang li bit bao nhiêu
điu mi m đn cho ta t nh e-mail, instant messaging hay World Wide Web (hay gi tc là WWW hay Web hay mng)
làm vic thông tin liên lc tr nên d dàng, do đó con ngi cùng đi sng cng thay đi nhanh chóng nh ...'cun theo chiu
gió'.
T khi đu, vic phát trin 1 mng ht sc là đn gin, ch cn mt hay vài trang trong đó ta mun chia s bt c thông tin gì
ta thích là chc chn cng có ngi ghé qua thm ving. Tuy vy, các trang trong thi k khi nguyên ca mng rt th đng,
nó không cho phép khách vãng lai trao đi thông tin mt cách h tng (interact) vi ta, ngha là thm thì có thm nhng
không hi hay chia s đc gì vi nhau.
bit đc là ta đang gõ vài mu t trong mt hp ch hay là đang nhp mi chut (click) vào button trong phn Guestbook
hay Forum ca Vovisoft đ gi đi mt thông đip làm quen vi Vovisoft?'.
À, s d Server có th làm đc 'chuyn ... khó tin nhng có thit đó' là da vào tin trình x lý linh đng Client (gi là
clever client-side processing) đ thc hin kiu mu event-driven này ca mình. Tin trình x lý Client xãy ra khi ta b trí
ngun mã thích hp mà Client có th hiu đc trong các trang ta gi v cho Client. Lu ý là mc dù các 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 cách ta b trí. Tht vy, ASP.NET không th nào bit đc chuyn gì s xãy ra
máy vi tính ca bn (Client PC) nhng nh vào tin trình x lý linh đng Client mà Server có th tin hành kiu mu phát
trin mng mi theo phng pháp event-driven.
Nh là ta có th chy ngun mã 2 ch khác nhau: hoc là chy Server (gi là Server-side) hoc là chy Client (Client-
side) và các ngun mã 2 ch này hoàn toàn khác bit, không có tác đng h tng vi nhau (no interact with each other).
Ðiu đó có ngha là máy Client s chu trách nhim thi hành các ngun mã đc lp trình dành cho mình cng nh máy
Server ch chy các ngun mã dành cho Server. Thông 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ã dành cho Client cng đc chuyn đi di dng
'plain text command' đ thc hin các hiu ng nng đng (dynamic effect) máy Client, t nh thay đi hình nh (image
rollover) hay hin th mt thông đip (message box).
ASP.NET s dùng các ngôn ng mi có trình biên dch (compiled languages) nh C# hay VB.NET đ son các ngun mã
trong các trang Web Server.
S LC V .NET FRAMEWORK
Mi chc nng ASP.NET có đc hoàn toàn da vào .NET framework, do đó có ch .NET trong ASP.NET. Ta cn phi hiu
thu đáo kin trúc h tng ca .NET framework đ dùng ASP.NET mt cách hiu qu, trong đó quan trng nht là
CLR và
.NET Framework Class.
CLR (COMMON LANGUAGE RUNTIME)
CLR là môi trng đc dùng đ qun lý s thi hành các ngun mã (manage the execution of code) mà ta đã son ra và biên
dch (write and compile code) trong các ng dng. Tuy nhiên khi biên dch ngun mã, ta li biên dch chúng ra thành mt
ngôn ng trung gian gi là
Microsoft Intermediate Language (MSIL). Chính MSIL trung gian này là ngôn ng chung cho
tt c các ngôn ng .NET hin có, do đó chc bn cng đoán ra là ASP.NET cng đc biên dch (compile) ra MSIL nh mi
CÀI INTERNET INFORMATION SERVER (IIS)
Internet Information Server (IIS) Version 5.0 là mt sn phm 'cho không ... biu không' ca Microsoft khi ta mua MS Windows
2000 Professional hay MS Windows XP Professional. IIS chuyên tr v Web Server, qua đó ta có th cung cp các dch v nói chung
v mng cho khách vãng lai, mà dch v v mng thì thiên hình vn trng, nh xíu nh t cây kim si ch cho đn v đi nh phi
thuyn, gii Ngân Hà hay v tr, đu có th đc b trí đy đ thông tin hay các ng dng liên h cn thit đ đáp ng nhu cu ca
khách vãng lai.
1. Ð cài IIS Version 5.0 trong MS Windows XP Professional, ta bt đu chn:
• 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 nút <Details>, ta có th t do la chn thêm hay bt các thành phn trong IIS, t nh ta có th b trí thêm File
Transfer Protocol Service (FTP Server) đ qun lý mt cách hiu qu hn vic ti lên (upload) hay ti xung (download) các h s
(documents) hay tp tin (files).
3. Nhp nút <Next>, Windows XP Professional s thu thp các thông tin liên h và bt đu tin trình cài đt IIS. Ch trong vòng vài
phút là ta đã có mt Web Server ngon lành trong máy vi tính. Gi đây, bn đã tr thành mt Web Master ... 'bt đc d'. Xin chúc
mng tân Web Master, ít ra ta cng tr thành Web Master chính máy vi tính ca ta (Web Master ca local host).
4. Ð xác đnh vic cài thành công Web Server, ta có th th nh sau:
• M Browser ca bn, t nh Microsoft Internet Explorer và gõ hàng ch nh sau vào hp đa ch (Uniform Resource
Locator)
http://localhost hay http://cantho
cantho (Cn Th) trong trng hp này chính là tên máy vi tính ca tôi đó (Computer Name). Ta có th gi
localhost hay cantho tu ý.
• Sau khi ta nhp nút <Enter>, trang mc đnh (default page) ca IIS s hin th nh sau: B TRÍ VIRTUAL DIRECTORY DÙNG TRONG KHÓA T HC ASP.NET CA
VOVISOFT
Trc khi ta có th to ra và b trí mt
virtual directory tên là VovisoftASPNET (hoc bt c tên nào bn thích) dùng trong khóa
• Virtual Directory Creation Wizard s bt đu tin trình b trí:
• Nhp vào nút <Next> và gõ
VovisoftASPNET hp Alias:
• Nhp vào nút <Next> và dùng <Browse...> đ chn sub folder 'D:\Net\Vovisoft ASPNET' mà ta đã chun b trc đây cho
các bài tp ca khóa.
• Chp nhn các b trí mc đnh (default settings) cho virtual directory VovisoftASPNET. Nu thích, ta có th thêm vào đó
quyn Browse (mc đích là sau này ta d truy cp và chy các trang ASP.NET phát trin cho ng dng ca mình).
• Nhp <Next> và sau đó <Finish> đ kt thúc tin trình b trí. Th là ta đã có mt virtual directory đ chy các trang ASP.NET sau này.
Bn thy đó! Vic to ra 1 virtual direcotry còn d dàng hn là n ... 'tô tái nm'.
CÀI MS VISUAL STUDIO.NET
Xin tham kho
bài hc s 1 ca thy Lê Ðc Hng khóa Hc Microsoft .NET Framework v vic làm sao đ cài đt MS Visual
Studio.NET thành công.
Lu ý: Khi cài MS Visual Studio.NET là ta cng đã cài .NET Framework SDK, do đó ta không cn phi theo nhng ch dn v vic
cài đt .NET Framework SDK nh trình bày bc k tip.
CÀI .NET FRAMEWORK SOFTWARE DEVELOPMENT KIT (SDK)
Tuy ta có th ti xung min phí .NET Framework SDK mng
www.microsoft.com/NET nhng lu ý là SDK này gm tng cng
gn hn 130 MBytes nên ta s mt rt nhiu thi gian (khoãng 6, 7 gi) đ ti thành công trong trng hp dùng 56 Kbps modem.
Ngoài ra, thay vì ti qua mng, ta cng có th đt mua SDK cha trong CD-ROM hay truy cp SDK trong các CD-ROM biu kèm
vi các tp chí Tin Hc.
Mt khi đã có .NET Framework SDK ri, ta ch cn chy chng trình
setup là xong. Tin trình này cng s rt lâu vì Windows s
DevASPNET.
Bn có th chn Location nào tùy ý theo s t chc lu tr các d án ca bn, nhng nh đng trùng vi tên ca các Virtual
Directory đã có sn. T nh ta đã to trc 1 virtual directory tên là VovisoftASPNET, sau đó dùng MS VS.NET đ to 1 ASP.NET
Web Application Location
http://cantho/VovisoftASPNET/Bai01/vs-welcome, ta s gp li sau đây khi Web Server không cho
phép ta 'overwrite' virtual directory đó:
Lu ý:
Nh đã trình bày, chúng ta s không đào sâu chi tit v cách x dng MS VS.NET đây, xin tham kho các bài Hc .NET
Framework do thy Lê Ðc Hng son.
2. Nhp vào nút <OK> đ MS VS.NET to ra 1 d án mi. Nu đ ý, ta s thy mt trang ASP.NET đc to ra mt cách mc đnh
(default) vi tên là WebForm1.aspx nm trong Solution Explorer Windows v mé tay phi, bên trái ta có 1 hp dng c (Toolbox)
và gia là View Designer.
3. M hp dng c (Toolbox) và nhp đôi vào công c Label, mt cách thông dng khác là ta có th kéo lê (drag) công c Label vào
trong View Designer.
4. B trí các đc tính ca công c Label đó nh sau:
Lu ý đây là ta s dùng ng dng
VPSKEY Version 4.0 (or up) vi bng mã Unicode đ gõ ting Vit cho đc tính Text ca
Label tên lblWelcome nh hình trên. Ta có th dùng bt c ng dng gõ ting Vit nào cho phép encoding vi Unicode, nu dùng
VPSKeys Version 4.0 thì bn cn phi b trí nh sau:
5. Chn File, Save WebForm1.aspx As đ lu tr vào đa cng, nh chn Save with Encoding (hay ta có th dùng Advanced Save
Options) vi Encoding là
Unicode (UTF-8 with signature) - Codepage 65001 đ lu tr (save) ting Vit chính xác.
Trong bài hc này, ta tht s làm quen vi ASP.NET qua vic tìm hiu các phng pháp làm vic ca mng trong phm vi
ASP.NET. Thêm na, ta cng bit s lc v s thay đi c bn trong vic phát trin mng do nh có .NET Framework và bt tay
vào vic cài đt ASP.NET đ thc hin đc trang ASP.NET đu tiên.
Tht vy, qua 2 bài tp, ta đã x dng thành công 2 phng pháp vi 2 ng dng khác nhau đ to ra trang Web 'Chào Mng Bn
Ðn Vi Khóa T Hc ASP.NET ca Vovisoft', và nh ta đã thy, mi cách đu có cái hay riêng, thích dùng cách này hay cách
kia tùy thuc vào thói quen, s thích cng nh môi trng làm vic hay hot đng xung quanh. Còn 1 phng pháp na mà tôi rt
thích vì tính cách cng đng ca nó là MS ASP.NET Web Matrix. Phng pháp này s trình bày bài s 3.
Trong Bài s 2 '
Xây Dng Trang ASP.NET', ta s tham kho chi tit vic xây dng mt trang ASP.NET nh th nào cng nh đào
sâu v vic phân tích cú pháp và các mnh lnh (commands hoc keywords) dùng trong các trang ASP.NET
Download Source Code
Ngun mã bài tp 1
Ngun mã bài tp 2
Bài làm nhà
Câu Hi 1: CLR là gì?
Câu Hi 2: Virtual Directory là gì? Và làm sao đ b trí thành công Virtual Directory?
Bài Làm 1: Phát trin 1 trang ASP.NET dùng MS Visual Studio.NET hay Notepad đ hin th (display) 1 bài th hoc các câu Ca
Dao (bng ting Vit) mà bn su tm.
Bài 02
Xây Dng Trang ASP.NET
V đây nghe em
V đây, mc áo the, đi guc mc - K chuyn tình - bng li ca dao
K chuyn tình - bng ni ngô khoai - K chuyn tình - bng ht lúa 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 Bài 'Làm Quen Vi ASP.NET', ta nhn thc đc ASP.NET gii thiu mt phng pháp mi v lp trình đ phát trin
trang web theo kiu mu event-driven ging nh dùng ngôn ng lp trình Visual Basic. Nhng ai tng làm quen và ch lp
nhng khác mt chút là có kèm theo runat="server" ch th cho ASP.NET bit thi hành trang này Server Side, phn này
cng là đt ta ... 'dng võ', kim soát mi công dng cn thit và mã
đc biên dch (compiled) thành MSIL. Tht ra, ta có
th đt đ phn này bt c ni nào trong trang web nhng nu sp xp phn đu tiên ca trang cng là mt thói quen tt
đ phân bit mã ca ASP.NET vi mã ca HTML.
sub Page_Load(obj as object, e as eventargs)
lblWelcome.Text = "Welcome to Khóa T Hc ASP.NET - Vovisoft"
end sub
Phn mã này to ra mt Procedure có tên là Page_Load mc đnh (default) cho các trang ASP.NET ging nh Form_Load
trong vic lp trình dùng ngôn ng Visual Basic vi s c (event) Load, khi trang đu tiên này đc đa ra trình bày,
ASP.NET s gn hàng ch "Welcome to Khóa T Hc ASP.NET - Vovisoft" vào hp ch có nhãn hiu (label)
lblWelcome.
Phn 3: <html>... <html> : đây là ni ta bt đu phn mã ca HTML. Phn này chính là hình thc trình bày ni dung ca
trang đc ch bin bi mã ASP.NET trc khi gi v và hin th trong browser ca Client. Ngoài ra, ASP.NET cng cho
phép ta kèm theo nhng ch th (instructions) trong
Code Render Block bt đu vi <% và chm dt vi %> t nh:
<% Response.Wite ("My first page <P>") %>
đ đa ra nhng gì ta mun làm vào bên trong lòng ngun mã ca phn HTML. Thí d đây, ta ch đn gin hin th hàng
ch "My First Page" khi gi trang này v browser ca Client.
Phân đnh Mã và Ni Dung
Tin đây, ta s tìm hiu thêm v s phân đnh gia
Mã (Code) và Ni Dung (Content) gi là Code and Content Separation.
Nh ta đã bit, phn đông các K S Tin Hc khi hình thành mt web site đã xây dng mi chuyn t A ti Z cho mng ca mình
k c vic hoch đnh các đ án thit k cng nh trang trí, sp xp và trình bày các thông tin trong các trang web. Tóm li, các K
S Tin Hc đó không nhng phi chun b và vit các ngun mã cn thit cho các trang ca mình mà có th còn 'thu' hoc 'bao'
luôn công vic ca mt Thit K Gia (Designer), mt Trang Trí Viên (Decorator), mt Kin Trúc S (Architect), mt Ha S
(Painter), mt Giáo S (Instructor or Tutor), mt Web Master, mt Thông Tn Viên ... và rt nhiu vai trò khác không th nào k
xit tùy theo mc đích và tôn ch ca web site.
Ðiu này thì ... cng tt thôi, nhng ta thit ngh, không phi K S Tin Hc nào cng đc trang b ... 'thp bát ban võ ngh' nh
vy và thng tình, mt K S Tin Hc chuyên nghip li d (unskillful) v trang trí thit k, lý do đn gin là h đã tp trung kh
ASP.NET ca ta.
Khi có ngi yêu cu tham kho trang web ca ta, trc ht ASP.NET s
biên dch (compile) mã phn Code Decalration
Block trong trang ASP.NET. Nu đ ý mt chút, ta nhn thy có mt s trì hoãn mc du nh nhàng hay không đáng k trc
khi browser hin th trang web đó, nhng nu cng chính trang đó đc ving thm ln th nhì hoc nhng ln sau đó thì s
trì hoãn ta nhn thy trc kia s bin mt, lý do là vì trang đó đã đc biên dch ri, ASP.NET ch có vic dùng mà thôi ch
không cn phi biên dch ln na, do đó hiu sut gia tng ht sc ngon mc. Nh là mã đc ASP.NET biên dch thành
MSIL, CLR qun lý và sau đó biên dch thành
ngôn ng gc ca máy (native machine language) trc khi trang đc gi
v browser ca Client. Ngun mã (code) mà ta lp trình trong trang web đc lu tr mt ni riêng bit, CLR s thm chng
luôn luôn, phòng trng hp ta thay đi ngun mã thì lp tc CLR s biên dch li 1 cách t đng trang web đó mà không cn
ta phi làm gì c.
Sau khi trang web đc biên dch, ASP.NET bt đu tin trình x lý tt c ngun mã k c các s c (events) t nh ta gõ vài
ch trong hp ch (text box) hoc nhp (click) mt nút nào đó thì b máy ASP.NET (ASP.NET engine) s nghiên cu, kho
sát bin c đó đ quyt đnh cách phn ng và thi hành đ đáp ng li bin c theo k hoch lp trình đã quy đnh trc.
Tip theo, ASP.NET bin đi tt c các Server Controls trong trang web ra thành nhng yu t HTML tng đng (HTML
elements) t nh bin đi <asp:Label> control ra thành HTML <span> </span> đ hin th hàng ch "Welcome to Khóa T
Hc ASP.NET - Vovisoft" nh thí d đang phân tích trên (ta s thy HTML element này khi quan sát ngun mã bng cách
chn View, Source lúc trang ASP.NET ca Bài 01 - Bài 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 cùng, 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 tiêu chun ca HTML, trong đó ASP.NET du bin đi các ngun mã hoc các control thuc phm
vi Server (Server Side Code and Controls).
Nh vy, ta có th dùng bt c mt Web Browser nào (không nht thit là MSIE) cng có th hin th các trang ASP.NET,
tht vy đi vi Client Browser thì trang ASP.NET cng ch là mt trang HTML đn gin nhng có phn đuôi ni thêm
(.aspx) hi l mà thôi.
Lu ý, đây là mt khái 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 các yu t HTML mà
thôi. ASP.NET nm vng điu đó, cho nên mi ln ASP.NET mun gi ti Brower nhng gì, nó đu dch ra hay bin đi ra
dng HTML. Không nhng vy, ASP.NET còn khéo léo vn dng đ HTML ngây th (nhng d thng) đó còn thi hành
<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 này vi IE Client Browser và gõ hàng ch di đây vào hp đa ch (Address):
http://cantho/VovisoftASPNET/Bai02/baitap01/simple.aspx ri nhn nút <Enter>. Ta có th gõ tên ca mình vào hp ch k bên
hàng danh hiu (label) "Please enter your name:" và nhp vào nút Submit, ta s có 1 trang ASP.NET chào mng khách vãng lai nh
sau: Phn Chú Thích:
<%@ Page Language="VB" %>
Ðc dùng đ ch th cho ASP.NET ta dùng VB.NET làm ngôn ng lp trình mc đnh.
<script runat="server">
Sub tbMessage_Change (Sender AS Object, E As EventArgs)
lblmessage.Text = "Chào bn " + tbMessage.Text
End Sub
</script>
Khi s c tbMessage_Change khi đng, ta dùng lblmessage.Text đ hin th hàng ch "Chào bn " + tbMessage.Text
trang ASP.NET.
<form runat="server">
Please enter your name:
<asp:textbox id="tbMessage"
OnTextChanged="tbMessage_Change"
runat=server/>
<asp:button id="btSubmit" Text="Submit"
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/>