T Hc
Microsoft ASP.NET
Bn quyn ca:
www.vovisoft.com
Rà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
quan đn đ bn (nht là bn nào thích thú trong vic phát trin mng và mi làm quen vi ASP.NET) d dàng theo di và
tìm hiu v ASP.NET.
Nhu Liu (Software)
Nhu liu (phn mn hay software) ti thiu phi có đ hc khoá ASP.NET thành công:
• V h điu hành (Operating System): ta nên dùng Windows 2000 (Professional hay Server) hay Windows XP
(Home hay Professional). Lý do chính là các versions ca Windows này h tr Unicode và có th cài t do Internet
Information Server (IIS Version 5) h tr ASPX đ ta dùng cho ASP.NET vì IIS đc cung cp min phí trong các
h điu hành k trên.
• Ngoài ra, bn cn phi có .NET framework SDK (Software Development Kit) ti xung t mng Microsoft. Chúng
tôi s trình bày vic at3i xung đâu và công cuc b trí nh th nào bài hc s 1. Nu nh bn đã có và cài đt
Microsoft Visual Studio.Net (VS.NET) theo s hng dn các bài hc ca khóa Hc Microsoft .NET thì càng tt
na. Vì rãi rác trong các bài hc v ASP.NET, chúng tôi cng trình bày mt s thí d dùng VS.NET cho ASP.NET
mc dù tht ra ch cn có Notepad thôi đã cng ... d xài sut nm.
• Cui cùng, bn cn phi có và cài đt thành công mt c s d liu (Database) vng mnh tng ng vi OLE DB-
compliant database system nh SQL Server 2000 đ dùng lu tr nhng thông tin cn thit. Tuy nhiên, ta cng có
th dùng MS Access 2000 đ tm thi thay th SQL Server 2000 cho các thí d trong khoá phn nhiu trình bày các
ni và các kiu thu thp d liu hay thông tin xuyên qua SQL Server 2000.
Ti sao ta li quan tâm và phát trin mng vi ASP.NET
Ta phi công nhn mt điu là .NET Framework và các ng dng ca nó đã và đang to mt cuc cách mng k thut trong
công ngh Tin Hc (Information Technology), thay đi tn gc r các kiu mu lp trình hay phát trin và trin khai mng
trên th gii và do đó to mt vn hi mi đáp ng mi yêu cu khn thit cho các ngành ngh k thut và thng mi hin
nay cng nh vch mt hng đi vng chc và dài lâu cho tng lai Tin Hc. ASP.NET chính là mt trong nhng ng dng
quan trng nht đ phát trin và trin khai mng mt cách d dàng cha tng ... thy t xa đn nay. Tht vy, không phi là
chúng tôi khoái ... n đâu, hãy lng nghe th chính Microsoft đã nói v ASP.NET nh th nào:
'ASP.NET is a revolutionary programming frramework that enables the rapid development of powerful web
applications and services. Part of the Microsoft .NET Platform, it provides the easiest and most scalable way to
develop, deploy and run distributed web applications that can target any browser or any application.'
Có y chang nh vy hay không? hay là ch qung cáo theo kiu ... 'cao đn hn tán' mà thôi? Chúng ta hãy ... 'ngi xung
đây, hãy ngi xung đây' và ngi gn li vi nhau đ nhìn cho rõ nhng đc tính không ... tm thng ca ASP.NET nh sau:
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:
ASP.NET có kh nng lu tr mt kt qu chung trong phân b memory ca trang đ gi gii đáp cho cùng mt yêu cu t
nhiu khách hàng khác nhau và nh đó không nhng tit kim đc s lp đi lp li công tác thi hành ca mt trang web mà
còn gia tng hiu xut mt cách ngon mc do gii hn ti đa vic cht vn các c s d liu (eliminating the need to query
the database on every request) rt tn nhiu thi gian.
.NET Outperforms J2EE:
Trong vic đi đu vi nhau v hiu xut (performance) và scalability vi cùng mt ng dng phát trin gia Sun's Java Pet
Store J2EE và ASP.NET thì ASP.NET không nhng nhanh vt tri hn J2EE đn 28 ln (khoãng 2700%), ngun mã li ít
hn nhiu (khoãng 1/4 ngun mã ca J2EE) mà còn dùng b x lý (processor) ch khoãng 1/6 ln so vi vic s dng
processor ca J2EE. Nu mun tìm hiu thêm, bn có th truy tìm d dàng nhng trang so sánh nh vy khi ni vào Internet
đ 'search' v hiu xut ca c hai sn phm.
Enhanced Reliability
Memory Leak, DeadLock và Crash protection:
ASP.NET cng có kh nng t đng dò tìm và phc hi (detects and recovers) nhng tr ngi nghiêm trng nh deadlocks
hay b nh (memory) b r đ bo đm ng dng ca bn luôn luôn sn sàng khi dùng mà không làm cn tr vic cung ng
dch v cn thit thng l.
Easy Deployment
Simple application deployment:
ASP.NET đn gin hóa vic trin khai ng dng mng, do đó bin vic trin khai toàn b ng dng tr nên d dàng và thun
li hn hn trc kia vì bây gi ta ch cn sao (vi XCOPY) và lu tr Server ch không cn phi chy chng trình
'regsrv32' đ đng ký bt c thành phn nào c, và thêm na, khi cn lu tr nhng yu t ph cn thit cho vic thit lp hay
b trí các ng dng, ta ch cn lu gi nó vào trong mt h s di dng XML là đ.
Dynamic update of running application:
ASP.NET cho phép ta t đng cp nht hóa (update) các thành phn đã compiled (compiled components) mà không cn phi
khi đng li (re-start) các Web Server.
Easy Migration Path:
Ta không cn phi du nhp nhng ng dng đc phát trin và trin khai bng ASP c đin hin có ca bn vào ASP.NET vì
ASP.NET có th chy song song vi ... cu chin binh ASP cùng mt Internet Information Server (IIS) trong nn Windows
2000 hay nn Windows XP. Các ng dng c vn tip tc chy ht sc thoi mái vi ASP.DLL trong khi ASP.NET engine s
x lý các ng dng mi. Ngoài ra, ASP.NET còn cho phép bn dùng li nhng thành phn thng mi hin nay kiu COM c
đin trong các ng dng ca nó.
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
sn phm .NET Framework và MS Visual studio.NET vào ngày 13 tháng Hai nm 2002, tuy nhiên rt nhiu phiên bn Beta2
đã đc ph bin khp th gii gia nm 2001) nhng my ai bit đc ASP.NET là gì và dung nhan ... mùa h ra làm sao?
Vy ta 'hãy ngi xung đây' đ bt đu làm quen vi ASP.NET.
ASP.NET - EM LÀ AI?
Trc ht, h tên ca ASP.NET là Active Server Pages .NET (.NET đây là .NET framework). Nói đn gin, ngn và gn thì
ASP.NET là mt công ngh có tính cách mng dùng đ phát trin các 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 pháp t
chc hay khung t chc (framework) đ thit lp các ng dng ht sc hùng mnh cho mng da trên CLR (Common
Language Runtime) ch không phi là mt ngôn ng lp trình. Ngôn ng lp trình đc dùng đ din đt ASP.NET trong
khóa này là VB.NET (Visual Basic .NET) và VB.NET ch là mt trong 25 ngôn ng .NET hin nay đc dùng đ phát trin
các trang ASP.NET mà thôi.
Tuy mang h tên gn ging nh ASP c đin nhng ASP.NET không phi là ASP. Ta s lc đây vài khác bit gia
ASP.NET và ASP đ bn có khái nim tng quát và s trình bày thêm chi tit khi đào sâu vào tng đim đc trng (features)
ca ASP.NET tng bài hc mt.
KHÁC BIT GIA ASP.NET VÀ ASP
ASP.NET đc phác tho (re-design) li t s không, nó đc thay đi tn gc r và phát trin (develop) phù hp vi yêu cu
hin nay cng nh vch mt hng đi vng chc cho tng lai Tin Hc. Lý do chính là Microsoft đã quá chán nãn trong vic
thêm tht và kt hp các công dng mi vào các kiu mu lp trình hay thit k mng theo kiu c đin nên Microsoft ngh
rng tt nht là làm li mt kiu mu hoàn toàn mi thay vì vá víu ch này ch n vào ASP. Ðó là cha k đn nhiu phát
minh mi ra đi sau này da trên các khái nim mi m theo xu hng phát trin hin nay ca công ngh Tin Hc
(Information Technology) cn đc đa vào kiu mu phát trin mi đó. Nh vy, ta mi có th nói ... khi khi ASP.NET
không phi là ASP. Tht vy , ASP.NET cung cp mt phng pháp hoàn toàn khác bit vi phng pháp ca ASP.
Lu ý, mc dù ASP.NET và ASP khác bit nhau nhng chúng có th hot đng vui v hài hoà vi nhau trong Web Server ca
bn (operate side-by-side). Do đó, khi bn cài ASP.NET engine, bn không cn lp trình li các ng dng hin có di dng
ASP ca bn tuy rng, nu mun, bn có th làm điu đó rt d dàng.
S THAY ÐI C BN
ASP đã và đang thi hành s mng đc giao cho nó đ phát trin mng mt cách tt đp nh vy thì ti sao ta cn phi đi mi hoàn
toàn? Lý do đn gin là ASP không còn đáp ng đ nhu cu hin nay trong lãnh vc phát trin mng ca công ngh Tin Hc. ASP
đc thit k riêng bit và nm tng phiá trên h điu hành Windows và Internet Information Server, do đó các công dng
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.
Dn dà, mng phát trin thêm nhiu công dng khác nhau gn thêm vào nào là hình nh, nào là tables, forms và cui cùng có
th trao đi thông tin hay tâm tình vi khách vãng lai qua các ng dng nh guestbook, thm dò ý kin (user, customer hoc
là client poll) hay các din đàn vi mi tit mc trên tri di đt. Sau đó, các chuyên gia phát trin mng li thêm tht và
trang đim cho mng ca mình càng lúc càng đc sc hn, cùng muôn mu muôn v.
Tt c nhng c gng đó đã đem tác đng h tng đn gia Web Master (hay nhóm qun lý mng) và khách vãng lai nh ta
đc chng kin hin nay, tuy vy vn còn thiu hn 1 phn quan trng nht là phn ni dung c đng tu bin (dynamic
content). Do đó vai trò ca phng pháp dch v (server processing) đc phát trin đ có th trình bày ni dung đc lu tr
trong các c s d liu (database) tu theo yêu cu riêng bit cho tng cá nhân.
KIU MU RESQUEST/RESPONSE
Kiu mu này chính là toàn b phng pháp làm vic theo kiu Client /Server hin dùng vi ASP.
Client/Server - Mt trng hp đn gin nht là s trao đi thông tin gia 2 máy vi tính đ hoàn thành 1 công vic đc đnh
trc, trong đó máy Server cung cp dch v theo yêu cu ca 1 máy khách hành (Client PC).
Thng thng, Server là máy vi tính lu tr thông tin v mng trong đó có hình nh, video, nhng trang HTML hay ASP. Client là
máy vi tính đc dùng đ lt mng. Mt cách tng quát phng pháp này gm có 4 bc c bn sau:
1. Client (thông qua Internet Browser) xác đnh v trí ca Web Server qua 1 ni URL (Universal Resource Locator) t nh
www.vovisoft.com
2. Client s yêu cu đc tham kho 1 trang trong mng đó và thng là trang ch (home page) t nh index.htm hay
default.htm
3. Server đáp ng bng cách hoàn tr h s mà Client đã yêu cu.
4. Client nhn đc h s gi v và hin th (display) trong browser ca mình.
Lu ý, mt khi Client đã nhn đc h s ri, quá trình trao đi qua li đó kt thúc ngay tc khc. Sau đó, Server và Client tr thành
... 'ngòi xa l', coi nh là cha tng bao gi gp nhau (stateless model), ta gi là kiu ... 'làm ng'.
KIU MU EVENT-DRIVEN
Kiu mu event-driven này dùng vi ASP.NET cng tng t nh là kiu mu event-driven mà ta vn thng dùng trong khi
lp trình các ng dng vi Visual Basic 6.
Trong kiu mu này, Server s không 'ngi ... chi xi nc' ch Client yêu cu tham kho 1 trang nào đó trong mng mà
Server đã b trí và k hoch sn trc tt c mi tình hung đ có th hành đng kp thi mi khi Client quyt đnh làm 1 điu
gì đó. Ta gi đó là 'response to your action', còn trong kiu mu trc là 'response to your request', nh vy ASP.NET có th
phát hin ra các hành đng ca Client đ phn ng cho thích hp.
Ðc ti đây chc bn s hi li ngay rng: 'a, nhng mà làm sao mt Server nào đó, có th tn đâu đâu bên kia đa cu, li
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
ai khác. Trong khi biên dch nh vy, các ng dng cng sn xut ra nhng thông tin cn thit đ t ... qung cáo chính mình,
ta gi nhng thông tin này là metadata. Ðn khi ta chy mt ng dng, CLR s tip qun (take-over) và li biên dch
(compile) ngun mã mt ln na ra thành ngôn ng gc (native language) ca máy vi tính trc khi thi hành nhng công tác
đã đc b trí trong ngun mã đó. Ta có th cm thy nhng vic bn rn sau hu trng đó khi phi ch đi 1 khoãng thi
gian cn thit đ CLR chm dt nhim v ca nó khi ln đu phi biên dch (compile) và hin th 1 trang Web, nhng ri mi
chuyn s xuôi chèo mát mái, cui cùng là ta có mt trình biên dch (compiled code) đ x dng rt hiu qu.
.NET FRAMEWORK CLASSES
Ðiu quan trng nht mà ta cn phi nh là mi th trong .NET đu là object, t nh các trang ASP.NET, các hp thông đip
(message box) hay là nút bm (button), tt c đu là object c. Các object đó đc t chc li thành tng nhóm riêng bit nh
trong mt th vin đ ta d dàng x dng. Ta gi các nhóm nh vy là
namespaces, và ta s dùng nhng namespace này đ
gi hay nhp (import) các class cn thit cho ng dng ca mình.
đây, ta ch s lc mt chút v .NET framework mà thôi, bn có th tham kho đy đ chi tit v .NET framework các
bài vit ca
thy Lê Ðc Hng trong khóa Hc .NET Framework và VB.NET
CÀI ÐT ASP.NET
Ð chy trang ASP.NET, trc ht ta cn phi cài đt thành công:
• Internet Information Server (IIS) và b trí Virtual Directory dùng trong khóa T Hc ASP.NET ca Vovisoft.
• MS Visual Studio.NET - trong trng hp này thì MS Visual Studio.NET đã cài sn .NET Framework SDK cho ta dùng
vi ASP.NET hoc là Microsoft ASP.NET Web Matrix (chi tit đc trình bày bài Gii Thiu V Web Matrix).
• .NET Framework Software Development Kit (SDK) - nu ta không 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
dùng Notepad hoc mt Text Editor nào ta thích đ phát trin trang ASP.NET mà thôi.
Nh là ASP.NET là k thut phát trin mng phiá Server, do đó ta phi cn có Internet Information Server (hay thng đc gi
đn gin hn là Web Server) đ son (phát trin hay lp trình) các trang v mng cho khách vãng lai ghé thm cng nh tham kho
các thông tin liên h. Nhng khác vi các trang ASP c đin, Web Server s không hiu các trang ASP.NET nu nh ta quên hay b
sót không cài .NET Framework SDK hoc không cài MS Visual Studio.NET, chính nh .NET Framework SDK mà ta có đy đ
các công dng và các object hay classes cn thit cho các trang ASP.NET ca ta.
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
T Hc ASP.NET này, ta phi làm mt s vic nh sau:
• To ra 1 sub folder Vovisoft ASPNET cho các bài tp (Exercises).
• Vào (access) bên trong Web Server đ kim tra hay qun lý các tài nguyên trong mng.
• B trí virtual directory VovisoftASPNET.
Chi tit các bc theo th t nh sau:
1. To ra mt sub directory có tên là Vovisoft ASPNET cu trúc drive D nh sau: D:\Net\Vovisoft ASPNET, đ ý là có mt ch
trng gia 2 ch Vovisoft và ASPNET. Tuy vy, nu bn nhuyn v IIS, bn có th đt tên tùy thích và không nht thit phi theo y
chang kiu mu này, nhng bn phi hiu vic bn làm đ b trí mt virtual directory thích hp dùng thc hành các bài tp trong
khóa sao cho thành công.
2. Có nhiu phng pháp vào (access) bên trong Web Server trc khi b trí virtual directory, ta có th dùng
MMC (Microsoft
Management Console)
đ cng thêm IIS snap-in vào console hoc ta có th chy IIS bng cách chn: Start, Programs,
Administartive Tools, Internet Information Service
.
Phng pháp dùng MMC là phng pháp đc các
MCP (Microsoft Certified Professional) hay MCSE (Microsoft Certified
System Engineer)
a thích hn vì tính cách linh đng mm do thích hp cho vic qun lý các ngun tài nguyên khác nhau trong
mng.
Di đây là hình đc trng cho vic dùng MMC:
Tuy nhiên, ta s không đào sâu vào chi tit vic x dng MMC đ b trí virtual directory cho khóa hc đây mà ta s dùng kiu vào
IIS trc tip qua vic chn:
Start, Programs, Administrative Tools, Internet Information Service nh đã trình bày trên. IIS s
hin th nh sau:
3. B trí mt virtual directory VovisoftASPNET:
• Nhp phi (right click) vào Default Web Site, chn New, Virtual Directory:
• 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
khai m tng tp tin mt cng nh thu thp các thông tin cn thit cho vic b trí .NET Framework máy ca ta, do đó tt hn ht
là ta ... tà tà t pha cho mình mt ly cà phê ... ri va nhâm nhi va thng thc bài hc s 1 ca thy Lê Ðc Hng nh đã nêu
trong phn 'Cài MS Vusial Studio.NET' đ tìm hiu thêm v .NET Framework.
TO TRANG ASP.NET ÐU TIÊN
Mc du trang ASP.NET thun túy ch cha đng ch và ... ch (pure text) nh trang v HTML nhng đâu ai cm ta dùng MS
Visual Studio.NET đ son các trang ASP.NET và qua đó x dng giao din bng hình (
Graphic User Interface - GUI) đ vic b
trí hay phát trin thêm phn d dàng và linh đng.
Lu ý là phn ni thêm (extension) trang ASP.NET s mang tên
.aspx đ phân bit vi .asp trong ASP c đin. Ta s to trang
ASP.NET đu tiên bng 2 phng pháp nh sau:
• Dùng MS Visual Studio.NET đ to trang ASP.NET đu tiên.
• Dùng Notepad đ to trang ASP.NET đu tiên.
Bài tp 1: Dùng MS Visual Studio.NET đ to trang ASP.NET đu tiên.
Mc đích:
Hin th hàng ch "Welcome to Khóa T Hc ASP.NET" trong trang ASP.NET đu tiên đ chào mng các bn đn vi khóa hc
này ca Vovisoft.
Các bc th t nh sau:
1. Chy MS Visual Studio.NET và chn d án mi (New Project) nh sau:
Project Types: Visual Basic Projects
Templates: ASP.NET Web Application
Name: vs-welcome
Location: http://cantho/DevASPNET/Bai01/
Ta nên nh kim tra hàng ch phía di hp Location đ coi li xem d án đc to ra đúng ch mà ta mun cha hay là không?
Chính hàng này cng là URL (Uniform Resource Locator) ta cn phi đin vào hp đa ch (Address) trong Internet Explorer đ
hin th trang ASP.NET vi phn ni thêm (extension) là .aspx
MS VS.NET s to các sub-folders nh sau: DevASPNET\Bai01\vs-welcome bên di Default Web Sit, trong trng hp này -
Default Web Site chính là
C:\Inetpub\wwwroot. Nu dùng IIS đ kim tra đc tính ca DevASPNET, ta thy Local Path là
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.
6. Cui cùng ta s dùng IE Client Browser đ hin th trang WebForm1.aspx (nu ta không đi tên, trang mc đnh là trang
WebForm1.aspx khi dùng MS VS.NET đ to 1 ASP.NET Web Application).
Trong hp đa ch (Address), lu ý là:
•
http://cantho/DevASPNET/Bai01/vs-welcome đc MS VS.NET to ra trong Server cantho (hay co th dùng localhost)
•
webform1.aspx là trang web mà ta va phát trin
Bài tp 2: Dùng Notepad đ to trang ASP.NET đu tiên.
Mc đích:
bài tp 2, ta cng hin th hàng ch "Welcome to Khóa T Hc ASP.NET" trong trang ASP.NET đ chào mng các bn đn vi
khóa hc này ca Vovisoft. Tuy nhiên, bài tp này, ta ch dùng Notepad đ to ra 1 trang ASP.NET y chang nh trang trên.
1. Chy ng dng Notepad và gõ nhng hàng ch lp trình y chang nh trong hình di đây. Trong bài hc 1, ta tm thi chp nhn
các mnh lnh và cú pháp trong trang ASP.NET đu tiên này và s tham kho chi tit cng nh phân tích và gii thích v phng
pháp xây dng trang ASP.NET bài hc k tip. Nh khi gõ ting Vit ta s dùng VPSKeys Version 4.0 nh trong bài tp 1.
2. Ðt tên tp tin (file) này 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 trên, ta c tình mun dùng virtual directory
VovisoftASPNET đã to ra
trong IIS đ hin th trang web này.
3. Hin th trang ASP.NET đu tiên này vi IE Client Browser và gõ hàng ch di đây vào hp đa ch (Address):
http://cantho/
VovisoftASPNET/Bai01/np-welcome/np-welcome.aspx ri nhp vào nút <Enter>. Ta s có 1 trang ASP.NET vi
hàng ch Welcome to Khóa T Hc ASP.NET - Vovisoft nh sau:
Tóm tt
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
trình vi ngôn ng script (script language) t nh VBScript hay JavaScript s b ng đôi chút vì mã trong các trang ASP.NET
không còn trn ln vi HTML na, nhm mc đích cung cp kiu phát trin mi đn gin hn, cp tin hn và cu trúc cht
ch hn (more advantages and more structure code).
Hôm nay, ta li 'v đây' trong bài tham kho v phng pháp xây dng trang ASP.NET (hay gi là Web Form) và mt s vn
đ liên h nh sau:
• Phân tích mã trang ASP.NET đu tiên
• Xây dng mt trang ASP.NET đn gin
• Vài nhn xét khi dùng ASP.NET và HTML
PHÂN TÍCH MÃ TRANG ASP.NET ÐU TIÊN
Ta th xem li ngun mã Bài tp 2 ca trang ASP.NET đu tiên trong Bài 01 'Làm Quen Vi ASP.NET':
<%@ Page Language="VB" %>
<script runat="server">
sub Page_Load(obj as object, e as eventargs)
lblWelcome.Text = "Welcome to Khóa T Hc ASP.NET - Vovisoft"
end sub
</script>
<html>
<body>
<asp:Label id="lblWelcome" runat="server"/>
</body>
</html>
Ta nhn thy mã ca trang này đc chia ra làm 3 phn riênng bit:
Phn 1: <%@ Page Language="VB" %> đc gi là Page Directives: phn này cung cp cho ASP.NET nhng thông tin
đc bit đ ASP.NET bit cách mà đi x cng nh nhng thông tin dùng trong tin trình biên dch (during the compiling
process), trong đó, ta mun ASP.NET dùng VB.NET làm ngôn ng lp trình mc đnh (default programming language) cho
trang web, các đ tài sau, ta s tham kho thêm v import directive.
Phn 2: <script runat="server"> ... </script> : phn này còn gi là
Code Declaration Block ging nh mã Client Side
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
nng, thi gian có đc vào vic lp trình và xem nh vic trang trí thit k cho web site ca mình. Nht là trong phm vi các đi
công ty hay các b s chính ph, vic xây dng web site cha nhiu thông tin là vic ca mt nhóm ch không phi ca mt cá
nhân, mi ngi ph trách mt vic, t nh ngi lo v mã (code), ngi lo v cách thc trình bày (with HTML, ...) do đó vic phân
đnh rõ ràng gia mã (code) và ni dung (content) tr nên rt cn thit trong vic phát trin các trang web.
ASP.NET gii quyt vn đ bng 2 hng nh sau:
• Kiu mu Code Inline (Code Inline Model)
• Kiu mu Code Behind (Code Behind Model)
Code Inline Model:
Trong kiu mu này, mã vn đc vit và gi (code section) trong các trang ASP.NET nhng không trn ln vi HTML dành cho
phn ni dung (content section) nh mã ta đc thy trong bài tp 2 trong Bài 01 'Làm Quen Vi ASP.NET' vi 2 phn mã và ni
dung nm riêng bit nhau:
<%-- This is the code section (ASP.NET Code) --%>
<script runat="server">
sub Page_Load(obj as object, e as eventargs)
lblWelcome.Text = "Welcome to Khóa T Hc ASP.NET - Vovisoft"
end sub
</script>
<%-- This is the content section (HTML Code) --%>
<html>
<body>
<asp:Label id="lblWelcome" runat="server"/>
</body>
</html>
Code Behind Model:
Mt kiu mu khác đc áp dng đ phân đnh mã và ni dung là phn mã đc sp xp trong mt tp tin khác riêng bit mt ch
lu tr khác hn ch cha các trang ASP.NET, d nhiên khi ta phân chia nh vy, ta phi sp xp li đ 2 tp tin riêng bit đó có th
làm vic vi nhau và đc biên dch cng ging nh kiu mu Code Inline. Ta s đi sâu vào chi tit kiu mu này nhng bài k khi
bàn v cách 'Import' các mã t ngun tài nguyên bên ngoài.
Tin Trình X Lý
Bây gi, ta s tìm hiu v tin trình x lý trang web nh th nào khi có khách vãng lai ving thm (hoc lt mng) trang
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
nhng tin trình x lý đc bit (mà ta s tham kho nhng bài hc k) cho ASP.NET phía Server mà hoàn toàn không hay,
không bit gì ht.
XÂY DNG MT TRANG ASP.NET ÐN GIN
Bài Tp 1:
Mc đích:
Trong bài tp này, ta s xây dng mt trang ASP.NET dùng mt hp ch đ tip nhn tên ca khách vãng lai và in ra (hay
hin th) li chào ngi khách đó.
Các bc th t nh sau:
1. Chy ng dng Notepad và gõ nhng hàng ch lp trình y chang nh mã di đây và lu tr (Save As) trong folder
D:\Net\Vovisoft ASPNET\Bai02\baitap01\simple.aspx vi encoding UTF-8 (hay bt c đâu tùy theo cách xp đt Virual Directory
mà ta b trí vi IIS). Nu mun gõ ting Vit, ta dùng VPSKeys Version 4.0 nh đã trình bày Bài Hc 01. Trong bài hc này, ta
tm thi chp nhn các mnh lnh và cú pháp trong trang ASP.NET và s tham kho chi tit các Server Controls bài hc k.
<%@ Page Language="VB" %>
<script runat="server">
Sub tbMessage_Change (Sender AS Object, E As EventArgs)
lblmessage.Text = "Chào bn " + tbMessage.Text
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 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"
runat=server/><p>
<asp:label id="lblMessage" font-size="20pt"
runat=server/>
</form>
Phn HTML này dùng đ trình bày các Server Controls trong trang ASP.NET theo th t t trên xung di, các thay đi
khác (t nh thay đi do vic khi đng 1 s c nào đó) s do phn Script chm nom và thi hành.
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 riêng bit cho công c textbox,
s c OnTextChanged có tên gi là 'tbMessage_Change' và Server Control này <asp:textbox đc thi hành Server Side.
Các Server Control k gm có <asp:button (ID btSubmit) và <asp:label (ID lblMessage) dùng cho nút bm (ta cng có th
dùng quy c btn hay bt cho nút bm) và nhãn hiu vi quy c lbl.
Bài Tp 2:
Mc đích:
Trong bài tp này, ta s xây dng mt trang kim tra vài phép toán đn gin t nh phép cng, phép tr, phép nhân và phép
chia vi 2 con s nguyên. Ngòi dùng s gõ vào 2 con s nguyên và sau đó chn phép tính bng cách nhn nút bm có du +,
-, * hay / đ hin th kt qu.
1. Chy ng dng Notepad và gõ nhng hàng ch lp trình 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/>