HUTECH
B GIÁO DC VÀ ÀO TO
TRNG I HC DÂN LP K THUT CÔNG NGH
KHOA CÔNG NGH THÔNG TIN
B MÔN: CÔNG NGH PHN MM
oOo
LUN VN TT NGHIP
SINH SOURCE CODE THEO GIAO DIN
T NG
GVHD: ThS Lê Trung Hiu
H Nguyn Lê Hoàng Duy
SVTH:
Võ Nh Phng – 10102127
Nguyn Hoàng Quang – 10102137
Nguyn Ngc Phng Tho – 10102172
TP HCM, Tháng 1/2006
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Lp Công Ngh Phn Mm
TÓM TT NI DUNG
Nhim v ca lun vn này là cung cp nhng gii pháp khác nhau và chn mt
gii pháp đ hin thc ng dng cho phép ngi dùng thit k giao din web bng
ngôn ng ASP.NET, Laszlo và sinh mã ngun t đng cho trang Code-behind.
Trong lun vn này, chúng tôi s trình bày nhng phn chính sau:
Chng 1 Yêu cu thc tin ca vic xây dng mt ng dng sinh mã ngun t
đng theo giao din.
Chng 2 Các kin thc c s phc v cho ng dng. Nhng hiu bit v ngôn
ng lp trình ASP.NET rt cn thit trong vic xây dng ng dng. Ngoài ra,
chúng tôi còn trình bày mt ngôn ng lp trình web mi là Laszlo, d kin s làm
hng phát trin tng lai cho ng dng.
Chng 3 Trình bày chi tit các gii pháp kh thi đc dùng đ xây dng ng
dng, bao gm s dng mu qui đnh sn và k thut CodeDOM.
Chng 4 Trình bày chi tit thit k và cài đt chng trình sinh mã ngun t
đng theo giao din, các kt qu đt đc.
Chng 5 ánh giá kt qu đt đc ca chng trình so vi mc tiêu ban đu và
hng phát trin ca đ tài này.
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Lp Công Ngh Phn Mm
LI CM N
có th hoàn thành tt lun vn này, chúng tôi đã đc s hng dn, ch bo
ca quý thy cô khoa Công Ngh Thông Tin trng i Hc Dân lp K Thut
Công Ngh, đc bit là thy Lê Trung Hiu. Chúng tôi cng rt cm n công ty
Tân Thiên Niên K đã to mi điu kin tt nht giúp đ chúng tôi trong quá trình
thc hin lun vn. Chúng tôi cng gi li cm n chân thành đn anh H Nguyn
Lê Hoàng Duy, nhân viên công ty Tân Thiên Niên K, vì s quan tâm hng dn
ca anh trong thi gian chúng tôi thc hin đ tài này.
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Lp Công Ngh Phn Mm
MC LC
Chng 1 Error! Bookmark not defined.
PHÁT BIU VN Error! Bookmark not defined.
1.1 Tip cn đ tài Error! Bookmark not defined.
1.2 Ni dung đ tài Error! Bookmark not defined.
Chng 2 Error! Bookmark not defined.
C S KIN THC Error! Bookmark not defined.
2.1 Áp dng lp trình hng đi tng trên môi trng .NET
Error! Bookmark not
defined.
2.2 Ngôn ng lp trình web ASP.NET Error! Bookmark not defined.
2.1.1 Gii thiu Error! Bookmark not defined.
2.1.1.1 Cu trúc ASP.NET
Error! Bookmark not defined.
2.1.1.2. Các thành phn c bn ca ASP.NET
Error! Bookmark not defined.
2.1.1.3. Chu kì sng ca trang
Error! Bookmark not defined.
2.1.2 Hot đng
Error! Bookmark not defined.
2.2.3 Các chun trong ASP.NET
Error! Bookmark not defined.
2.3 Ngôn ng lp trình web laszlo Error! Bookmark not defined.
Cu trúc ca OpenLaszlo: Error! Bookmark not defined.
2.3.1 OpenLaszlo Compiler
Error! Bookmark not defined.
2.3.2 OpenLaszlo Servlet
Error! Bookmark not defined.
2.3.3 OpenLaszlo Runtime Framework Library
Error! Bookmark not defined.
Chng 3 Error! Bookmark not defined.
CÁC GII PHÁP HIN THC NG DNG Error! Bookmark not defined.
3.1 S dng các mu qui đnh sn đ sinh mã ngun (template)
Error! Bookmark
not defined.
3.1.1 Gii thiu Error! Bookmark not defined.
3.1.2 S dng gii pháp cho ng dng
Error! Bookmark not defined.
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Lp Công Ngh Phn Mm
3.1.3 ánh giá gii pháp Error! Bookmark not defined.
3.2 Dùng k thut CodeDOM đ sinh mã ngun Error! Bookmark not defined.
3.2.1 Gii thiu Error! Bookmark not defined.
3.2.2 S dng CodeDOM
Error! Bookmark not defined.
3.2.3 ánh giá gii pháp
Error! Bookmark not defined.
3.3 Chn gii pháp sinh mã ngun t đng Error! Bookmark not defined.
3.4 K thut phi màu các controls dùng Cascading Style Sheets (CSS)
Error!
Bookmark not defined.
3.5. Trình duyt Web trong ng dng Error! Bookmark not defined.
3.5.1 Gii thiu Error! Bookmark not defined.
3.5.2 ng dng ActiveX Control vào ng dng VS.NET
Error! Bookmark not defined.
3.5.3 Hin thc trong ng dng
Error! Bookmark not defined.
Chng 4 Error! Bookmark not defined.
THIT K VÀ CÀI T CHNG TRÌNH Error! Bookmark not defined.
4.1 Mô hình use case Error! Bookmark not defined.
4.2 c t Use case: Error! Bookmark not defined.
4.2.1 Use case Start up: Error! Bookmark not defined.
4.2.2 Use case Add Diagram
Error! Bookmark not defined.
4.2.3 Use case Add Connection
Error! Bookmark not defined.
4.2.4 Use case Edit Connection
Error! Bookmark not defined.
4.2.5 Use case Rename Connection
Error! Bookmark not defined.
4.2.6 Use case Publish
Error! Bookmark not defined.
4.2.7 Use case Browse Page (Publish page)
Error! Bookmark not defined.
4.2.8 Use case Add Form Control
Error! Bookmark not defined.
4.2.9 Use case Add Builder Control
Error! Bookmark not defined.
4.2.10 Use case Add File
Error! Bookmark not defined.
4.2.11 Use case Generate Code
Error! Bookmark not defined.
4.3 S đ lp Error! Bookmark not defined.
4.3.1 Package Project Error! Bookmark not defined.
4.3.2 Package MainTab
Error! Bookmark not defined.
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Lp Công Ngh Phn Mm
4.3.3 Package Controls Error! Bookmark not defined.
4.3.4 Package CCGWizardClasses
Error! Bookmark not defined.
4.4 S đ thành phn Error! Bookmark not defined.
4.5 Thit k màn hình giao din Error! Bookmark not defined.
4.5.1 Màn hình chính: Error! Bookmark not defined.
4.5.1.1 Command Area
Error! Bookmark not defined.
4.5.1.2 ProjectExplorer
Error! Bookmark not defined.
4.5.1 3 PropertyGrid
Error! Bookmark not defined.
4.5.1.4 ToolBox
Error! Bookmark not defined.
4.5.1.5 Design Area
Error! Bookmark not defined.
4.5.1.6 Message explorer
Error! Bookmark not defined.
4.5.1.7 Language editor
Error! Bookmark not defined.
4.5.2 Phn giao din wizard databinding:
Error! Bookmark not defined.
Chng 5 Error! Bookmark not defined.
ÁNH GIÁ VÀ HNG PHÁT TRIN Error! Bookmark not defined.
5.1 ánh giá kt qu đt đc Error! Bookmark not defined.
5.2 i chiu vi mc tiêu đ ra Error! Bookmark not defined.
5.3 Hng phát trin Error! Bookmark not defined.
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Khoa Công Ngh Phn Mm Page 1 of 80
Chng 1
PHÁT BIU VN
1.1 Tip cn đ tài
Lnh vc công nghip phn mm nc ta đang phát trin nhanh chóng. iu này
đt ra mt nhu cu to ln trong vic xây dng nhng ng dng có cht lng cao,
cung cp nhng sn phm phn mm nhm đáp ng kp thi nhu cu thc tin.
Nhng ng dng có qui mô ln, đc phát trin trong thi gian dài s đòi hi rt
nhiu thi gian và công sc ca các lp trình viên khi hin thc. iu này d dn
đn nhng sai sót trong quá trình xây dng và phát trin ng dng. Ngoài ra,
lng mã ngun quá ln gây nên tình trng khó qun lý, rt khó khn khi cn xem
li mã ngun đ kim tra, sa li…
Nh vy, vn đ đt ra là bng cách nào gim bt s vt v cho các lp trình viên
khi vit mã ngun bng tay, đng thi mã ngun phi rõ ràng, tuân theo mt chun
nht đnh đ d đc, d hiu, thun tin cho vic kim tra, chnh sa.
Ý tng xây dng mt phn mm cho phép ngi dùng ch cn thit k giao din
và mã ngun đc phát sinh t đng xut phát t nhng yêu cu thit thc nói
trên.
1.2 Ni dung đ tài
Hin nay đã có mt s phn mm h tr ngi dùng thit k giao din trc quan
và t đng sinh mã ngun nh: Microsoft Visual Studio .NET, CodeCharge
Studio, và phn mm mã ngun m nh SharpDevelop.
Trong lun vn này chúng tôi đ cp đn các phng pháp xây dng ng dng cho
phép ngi dùng thit k giao din web và phát sinh mã ngun t đng.
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Khoa Công Ngh Phn Mm Page 2 of 80
Ni dung đc trình bày trong đ tài này bao gm các kin thc v ngôn ng lp
trình web ASP.NET, Laszlo. Nhng kin thc này là nn tng đ xây dng ng
dng. Ngoài ra cng trình bày chi tit các gii pháp k thut sinh mã ngun t
đng cùng mt s k thut b tr, phân tích nhng thun li và hn ch ca tng
k thut khi áp dng vào chng trình. Trong lun vn này chúng tôi s dng k
thut dùng mu (Template) và dùng CodeDOM đ sinh mã ngun cho trang
ASP.NET. Chúng tôi s xây dng mt chng trình cho phép ngi s dng thit
k web trc quan bng cách kéo th control vào màn hình thit k, mã HTML và
Code-behind s do chng trình t đng phát sinh. Chng trình h tr tng tác
vi c s d liu. Bt kì thi đim nào ngi dùng cng có th to kt ni đn c
s d liu và thao tác trên d liu.
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Khoa Công Ngh Phn Mm Page 3 of 80
Chng 2
C S KIN THC
2.1 Áp dng lp trình hng đi tng trên môi trng .NET
Lp trình hng đi tng là khái nim rt quen thuc đi vi ngi lp trình và
đc s dng rng rãi do nhng u đim ca nó. tìm hiu k hn v khái nim
này, chúng tôi đã đính kèm tài liu có trình bày chi tit vn đ này. Trong phm vi
lun vn chúng tôi ch đ cp mt s đim khác bit ca lp trình hng đi tng
trên môi trng .NET.
c đim 1:
Trong .NET không có hàm hu nhng khi khai báo mt phng thc
ging nh hàm hu ví d ~Employee() thì vn hp l. Tht ra v bn cht thì cách
khai báo nh vy có ý ngha hoàn toàn khác nhau trong 2 ngôn ng:
+ trong C++, đó là hàm hu.
+ trong C#, đó là mt cách đ dùng phng thc System.Object.Finalize() mà s
đc gi khi b phn nht rác t đng sp hu đi tng.
c đim 2
. Mt lp cha trong .NET là lp s đc các lp khác tha k, lp này
đc nhn bit bi t khóa virtual hoc abstract:
+ t khóa virtual đ ch mt lp mà bn đc phép tao mt đi tng ca nó.
+ t khóa abstract là mt lp tru tng mà không th đc khI to.
VD: lp cha Employee() va hai lp k tha là FullTimeEmp() và PartTimeEmp().
Nu dung virtual thì bn vn có th to đi tng ca Employee() nhng trên thc
t bt k nhân viên nào cng thuc FullTimeEmp() hoc PartTimeEmp(). Do đó
d ngn vic khi to này, bn dùng t khoá abstract.
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Khoa Công Ngh Phn Mm Page 4 of 80
c đim 3: Không còn dùng t khoá friend, và thay vào đó là internal đ cp
quyn truy xut cho các lp trong cùng chng trình hin hành.
c đim 4:
T khoá base đ gi hàm dng ca lp cha:
Ví d:
class Employee
{
String Name;
public Employee(string sName)
{
Name=sName;
}
}
class PartTimeEmp
{
private int m_HoursOfWork=0;
public PartTimeEmp(String sName,int h) : base(sName)
{
m_HoursOfWork=h;
}
}
2.2 Ngôn ng lp trình web ASP.NET
2.1.1 Gii thiu
ASP.NET không ch là phiên bn k tip ca ASP (Active Server Page), nó đa ra
mô hình phát trin web thng nht bao gm nhiu dch v h tr đ ngi lp
trình xây dng nhng ng dng web mnh. ASP.NET cung cp b th vin gm
nhiu lp đc thit k đ x lý các yêu cu HTTP (HTTP request). Ngoài b th
vin này, ASP.NET còn bao gm nhiu thành phn IIS dùng đ qun lý các yêu
cu đó.
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Khoa Công Ngh Phn Mm Page 5 of 80
Nhng u đim ca ASP.NET
S tách bit mã ngun và HTML Vi ASP.NET, ta có th hoàn toàn tách bit
gia vic thit k và x lý các s kin. iu này giúp mt nhóm phát trin web
gm các nhà lp trình và nhng nhà thit k d dàng kt hp vi nhau tht hiu
qu.
ASP.NET là ngôn ng hng đi tng Mi yêu cu (request) gi ti ng dng
ASP.NET đu đc mt lp (hin thc interface IHttpHandler) x lý. iu này
giúp d dàng m rng khi mun phát trin thêm.
Tn dng đc các dch v h tr bi môi trng .NET Môi trng .NET
Framework cung cp sn nhng th vin đ s dng cho ng dng web.
Qun lý trng thái Cung cp gii pháp qun lý trng thái ca session và ng dng.
Chng hn nh thông tin trng thái có th đc gi trong b nh hoc lu tr
trong c s d liu. Nó cng có th đc chia s qua các web-form. Nhng thông
tin này có th đc phc hi, thm chí ngay c khi máy ch b hn g hay b ngt
kt ni.
Cp nht các tp tin trong khi máy ch vn đang chy Nhng thành phn trong
ng dng vn có th đc cp nht trong khi máy ch đang trc tuyn và các máy
khách đang kt ni đn. Framework s s dng nhng tp tin mi ngay khi chúng
đc sao chép vào ng dng. Nhng tp tin c vn còn đc lu gi trong b nh
cho đn khi nhng máy khách kt thúc.
Nhng tp tin cu hình dng XML Các thit lp cu hình trong ASP.NET đu
đc lu dng các tp tin XML rt d đc và sa cho phù hp. Ngoài ra ta có th
chép nhng tp tin này cùng vi các tp tin khác ca ng dng vào máy ch khác.
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Khoa Công Ngh Phn Mm Page 6 of 80
2.1.1.1 Cu trúc ASP.NET
Cu trúc ASP.NET da trên nn tng cu trúc ca .NET Framework. Visual studio
đa ra mt cách thc thng nht nhm kt hp nhiu tính nng khác nhau.
Hình 1 Cu trúc Visual Studio .NET
Gii thích cu trúc Visual Studio .NET
Tng Common Language Runtime (CLR) CLR có nhim v ti và thc thi mã
ngun. CLR có nhim v qun lý mã ngun ti thi đim thc thi, đng thi đm
bo s bo mt. Tóm ti, qun lý mã ngun là mt yu t c bn ca CLR. Mã
ngun đn CLR gi là mã ngun đc qun lý, ngc li mã ngun không đn
CLR gi là mã ngun không đc qun lý.
Tng Base Classes .NET Framework cung cp rt nhiu b th vin, bao gm các
lp c s (Base Classes) , nh nhng lp thao tác v mng, nhng lp làm vic
vi d liu, … Tt c nhng b th vin này đc Services Framework cung cp,
và nó nm v trí ngay trên CLR (Xem hình v).
Tng ADO.NET ADO.NET là mô hình Microsoft’s ActiveX Data Object (ADO).
ADO.NET không đn gin là vic chuyn t mô hình ADO qua môi trng .NET,
mà nó hoàn toàn là mt mô hình mi dùng đ truy cp và x lý d liu.
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Khoa Công Ngh Phn Mm Page 7 of 80
ADO.NET đc bit dùng đ phát trin nhng ng dng web. Có th nhn thy
điu này qua hai yu t sau:
• Disconnected Datasets Trong ADO.NET, hu ht vic x lý d liu đc thc
hin bên ngoài kt ni đang m (open connection)
• Trao đi d liu d dàng dng XML Datasets có th đc chuyn thành đnh
dng ph bin trên Web là XML.
Tng Windows application và Web application ASP.NET bao gm Web Forms
và Web Services. ASP.NET đc xây dng t nhiu Web Forms vi các control
ca nó to nên giao din cho trang web. Nhng control này đc khai báo trong
trang aspx di dng th HTML. Web Services cung cp gii pháp kt ni nhiu
ng dng khác nhau thông qua internet.
Tng Common Language Specification Nhng đc tính ca môi trng .NET là
s hp nht ca nhng ngôn ng lp trình khác nhau. đt đc điu đó, có mt
s lut đc áp dng và mi ngôn ng phi tuân theo các lut trên. Common
Language Specification là mt tp hp bao gm các qui lut và nhng ràng buc
mà mi ngôn ng phi tuân theo
Nhng ngôn ng tng thích vi .NET: VB.NET, C#, Managed C++ và
JScript.NET.
2.1.1.2. Các thành phn c bn ca ASP.NET
XML Web Services
Mt XML Web service là mt component mà có th đc gi thông qua giao thc
mng TCP/IP bi nhng ng dng khác. Nó thc thi mt phng thc xác đnh –
mi th t nhng tính toán t đn gin đn phc tp – và tr v nhng giá tr gi
ng dng.
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Khoa Công Ngh Phn Mm Page 8 of 80
Nhng gì XML Web Services có th làm duy nht là chúng có th gi qua Web.
XML Web Service đc thc thi s dng yêu cu HTML và SOAP và thay đi d
liu vi nhng components khác dùng XML.
Mt XML Web service h tr truy xut phng thc server t xa. Dùng XML
Web services, cho phép thay đi d liu gia các mng client -server hay server-
server, s dng các chun ging HTTP và XML chuyn tin nhn đa d liu qua
firewalls. Vi nhng ng dng XML Web services, ngi lp trình có th vit vi
bt k ngôn ng nào, dùng bt k component model nào, và chy trên mi h điu
hành đu có th truy cp XML Web services.
Các đ án ng dng Web ASP.NET và s trin khai (ASP.Net Web
Application Projects and Deloyment):
Khi bn to mt đ án ng dng Web, nó có to mt file Web.config cha các
đnh dng và nhng chuyn đi ca các file cu hình .NET. Trong ASP.NET, file
cu hình cho phép bn thit lp các thip lp xác đnh ca đ án cho vic bo mt,
nhng tùy chn biên dch, x lý li, …
Web Forms và ASP.NET Page Framework
Web Forms cho phép ngi lp trình xây dng mt cách mnh m nhng trang
Web trên nn Forms. Khi to nhng trang này, bo có th dùng ASP.NET server
controls nhng thành phn UI chung, và lp trình chúng bng nhng tasks ph
bin.
Bn có th to các trang HTML và các trang Web Forms nh giao din ngi
dùng cho ng dng ca mình. Các trang HTML đc phát sinh s dng ni dung
tnh. Trong khi đó, các trang Web Forms cho bn mt giao din lp trình làm vic
ging nh mt dng Visual Basic, và giao din đc hin th bi mt trình duyt
Web hay thit b Web khác.
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Khoa Công Ngh Phn Mm Page 9 of 80
Các trang Web Forms đc to trên nn ASP.NET Framework. Mi trang Web
Form là mt đi tng mà chit xut t lp ASP.NET Page, mà hot đng nh
mt container cho controls. Mi trang có hai file: mt file .aspx cha các thành
phn giao din và mt file lp cha mã chy trang, đc gi là code-behind.
ng dng Web truy xut d liu:
Hu ht các ng dng Web ASP.NET thc hin ít nht mt s mc truy cp d
liu. ASP.NET không truy xut trc tip d liu. Thay vào đó, nhng ng dng
Web dùng b truy xut d liu ADO.NET.
ADO.NET h tr mt nn hoàn chnh cho truy xut và qun lý d liu t nhiu
ngun, gm c các c s d liu và các file XML hay các stream. ADO.NET có
b Providers – các lp cho phép bn kt ni ngun d liu, thc thi câu lnh, và
đc kt qu. Bn có th đ d liu vào dataset, mà khi không còn kt ni, nó vn
nm trong memory cache.
C s h tng ng dng Web: S Bo mt (Security), S Thc Thi
(Performance), Theo Vt (Tracing)
Bo mt
Bo mt làm mt phn không th thiu trong ng dng ca bn. Nhng ng dng
Web bng đnh ngha cho phép ngi dùng truy cp đn tài nguyên trung tâm –
the Web Server – và thông qua nó, đn nhiu database servers. Làm vic vi
nhng yêu cu bo mt, có hai khái nim:
Authentication: xác nhn nhng ngi dùng, nhng ngi có quyn truy cp.
Authorization: là tin trình ca vic chp thun hay t chi truy cp đn tài nguyên
đi vi nhng ngi dùng xác đnh.
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Khoa Công Ngh Phn Mm Page 10 of 80
Hn na Windows cng h tr mt h thng bo mt khá chc chn cho phép
ngi qun tr to nhng tài khon ngi dùng và cp quuyn cho nhng ngi
này truy cp d liu.
S thc thi
Bn có th thit lp s thc thi ng dng ca bn bng vic cache các trang và d
liu. ASP.NET cha mt cache xut mà lu nhng trang đc yêu cu trc đó.
Bng vic xác đnh các thit lp cache, bn có th kim soát đ dài ca các trang
đc cache và đc làm ti.
Theo vt
Bi vì nhng ng dng Web chy trên Server – thng là mt server t xa. Do đó,
ASP.NET cho phép bn gp thông tin theo vt mt cách trc tip trong mt trang
Web Forms.
2.1.1.3. Chu kì sng ca trang
Khi có mt yêu cu (request) gi đn máy ch (gi s trang đc yêu cu ln đu
tiên), máy ch s x lý mt lot các bc sau:
Giai đon Mô t Phng thc hay
s kin cn
override
Khi to đi tng
Các control nm trong web-form
và đi tng Page đc khi to
thông qua phng thc OnInit().
Nhng đi tng này s đc
dùng trong sut thi gian sng
(lifetime) ca yêu cu (request).
Init (OnInit)
Ti viewstate
(LoadViewState)
Sau khi hàm OnInit() đc gi,
các control có th đc gi thông
qua ID ca nó. Trong s kin
LoadViewState, property
Phng thc
LoadViewState
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Khoa Công Ngh Phn Mm Page 11 of 80
ViewState ca mi control t đng
đc gán giá tr. Ngi dùng có
th hin thc phng thc
LoadViewState đ tùy chnh s
phc hi trng thái.
X lý d liu tr v
(postback data)
X lý nhng d liu đc tr v t
webform và cp nht các giá tr
property phù hp.
Chú ý: Ch nhng control có x lý
d liu tr v mi tham gia giai
đon này.
Phng thc
LoadPostData
Load
Thc thi các tác v ph bin trong
hu ht các yêu cu (requests),
chng hn nh thit lp câu truy
vn c s d liu. Ti thi đim
này, nhng server control đc
khi to, trng thái đc phc hi,
và nhng form control hin th d
liu bên phía client.
Load (OnLoad)
Gi thông báo thay
đi postback
Bt nhng s kin thay đi đ đáp
ng s thay đi trng thái gia
postback hin ti và postback
trc.
Chú ý: Ch có nhng control nào
bt s kin thay đi postback mi
tham gia giai đon này.
Phng thc
RaisePostData_
ChangedEvent
X lý postback.
X lý s kin phía client to
postback và bt nhng s kin
tng ng trên server.
Chú ý: Ch có nhng control nào
bt s kin thay đi postback mi
tham gia giai đon này.
Phng thc
RaisePostBackEvent
Prerender
Cp nht trc khi kt qu đc
tr cho client. Bt kì s thay đi
nào v trng thái ca control trong
PreRender
(OnPreRender)
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Khoa Công Ngh Phn Mm Page 12 of 80
giai đon này s đc lu li,
trong khi đó nhng thay đi trong
giai đon render s b mt.
Save state
Lu trng thái
Property ViewState ca mt
control s t đng đc lu thành
mt đi tng kiu chui sau giai
đon này. i tng chui này s
đc gi đn cho client và đóng
vai trò nh mt bin n. tng
hiu qu, mt control có th
override phng thc
SaveViewState đ chnh sa
property ViewState.
Phng thc
SaveViewState
Render
Sinh ra kt qu đ tr v cho
server.
Phng thc
Render
Dispose
Gii phóng đi tng. Nhng
tham chiu đn các ngun tài
nguyên chim dng nhiu b nh
s đc gii phóng. (chng hn
nh kt ni c s d liu).
Phng thc
Dispose
Unload
Gii phóng ngun tài nguyên.
Nhng control nói chung đu đc
dn dp trong Dispose và s ko x
lý s kin này.
UnLoad
(OnUnLoad)
Bng 1 Chu kì sng ca trangASP.NET
2.1.2 Hot đng
Nhn request và x lý request
Chu kì sng ca mt ASP.NET request
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Khoa Công Ngh Phn Mm Page 13 of 80
Hình 2 Chu kì sng ca mt ASP.NET request
Trong hình minh ha trên, ta thy ASP.NET bao gm nhiu thành phn IIS dùng
đ qun lý các request. Trong đó có ISAPI DLL tên ASPNET_ISAPI.DLL và
worker process tên ASPNET_WP.EXE. ASP.NET cài đt các s đ trong IIS, đ
chuyn các yêu cu trang ASPX, ASCX, ASHX, và ASMX cho
ASPNET_ISAPI.DLL. T đây, ASPNET_ISAPI.DLL chuyn request đn
ASPNET_WP.EXE, ti đây ASP.NET s ti các lp (class) cn thit đ đáp ng
request.
Nguyên lý hot đng ca các trang ASP.NET Web Form
Hình 3 Cu trúc Web Forms Page và lp c s Page
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Khoa Công Ngh Phn Mm Page 14 of 80
Các file lp code -behind ca tt c các trang Web Forms trong mt đ án đc
phiên dch vào trong đ án bng file th vin liên kt đng .dll (dynamic -link
library). Trang .aspx cng đc biên dch, nhng có mt s đim khác.
Hình 4 Hai tp tin ca Web Form Page
Ln đu tiên mt ngi dùng duyt đn trang .aspx, ASP.NET t đng sinh ra mt
file lp .NET yêu cu trang, và biên dch nó đn mt file .dll th hai. Lp đc
sinh ra cho trang .aspx tha k t lp code-behind mà đã đc biên dch vào trong
file .dll ca đ án. Khi mt ngi dùng yêu c u trang Web theo giao thc URL,
nhng file .dll chy trên server và x lý đng xut ra trang HTML.
2.2.3 Các chun trong ASP.NET
Bt kì ngôn ng nào cng đu phi đa ra mt chun chung cho phn code ca
mình, và ASP.NET cng không ngoi l, cn phi có mt chun riêng nhm thun
tin trong vic thông nht code, đa code trong ASP.NET tr nên trong sáng, d
hiu hn, thun tin trong vic sa cha, bo trì sau này. ng thi đa ngi lp
trình Web lên bt chuyên nghip hn, vì vy mt chun ASP.NET là cn thit đa
ra. Chng hn v chun đt tên, cách t chc n i dung file, cách ghi chú thích
trang nh th nào, cách đt danh h iu cho các hng, các bin, các đi tng ra
sao….Các chun này s đc trình bày chi tit trong phn tài liu đính kèm.
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Khoa Công Ngh Phn Mm Page 15 of 80
2.3 Ngôn ng lp trình web laszlo
Laszlo là mt nn ngôn ng lp trình Web đc
phát trin bi h thng Laszlo. Nó là mt k thut
mi, mc dù đã trin khai t nm 2001, nhng mãi
đn nm 2004 mi thc s tr thành ngôn ng ph
bin.
Hin ti, Laszlo vn đang đc phát trin và ci thin ngày này qua ngày khác bi
Laszlo System.
Laszlo là ngôn ng da trên nn XML, cho phép bn trin khai nhng ng dng
dùng các ngôn ng chun XML, JavaScript, và Xpath.
Laszlo module có th đc tích hp vi dng trang Web mt cách d dàng. Trang
Web có th tng tác vi file Laszlo bng vic truyn nhng tham s đn file .lzx.
File .lzx cng có th làm đc điu này bng cách s dng JavaScript.
Laszlo đc xây dng cho phát trin ng dng web. ng dng laszlo đc to nên
da trên vn bn ta text XML kèm JavaScript, h tr phát trin các chun hng
đi tng, biu din d liu, giao din thông minh và sinh đng.
Phát trin ng dng tiên tin: có kh nng tích hp cao trong lp trình XML.
Mô hình lp trình mnh m : vi nhng th m rng và tha k đy đ các đc
tính u vit ca ngôn ng hng đi tng
Mc đ chun hóa cao vi tính nng này tuy công ngh laszlo phát tr in mi cho
th h web hin đi nhng đi vi ngi lp trình s làm quen nhanh chóng da
trên các k nng sn có vi HTML và JavaScript.
Phn này ch gii thiu tng quan v cu trúc ca Laszlo, phn chi tit s đc
trình bày trong tài liu đính kèm.
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Khoa Công Ngh Phn Mm Page 16 of 80
Cu trúc ca OpenLaszlo:
2.3.1 OpenLaszlo Compiler
The OpenLaszlo Compiler biên dch nhng file ngun LZX vào tro ng th vin
thc thi cho mc tiêu môi trng thi gian chy.
Compiler h tr hai đc tính sau:
XML UI Compilation.
S din t giao din ngi dùng LZX là mt din t khai báo XML ca mt giao
din ng dng. Trình biên dch chuyn đi nhng din gii XML này sang
bytecode mà to mt giao diên úng dng khi ng dng đc thc thi.
ECMAScript: Compilation
Các lp và các th hin giao din ngi dùng LZX đc chú thích vi nhng
phng thc và các s lý s kin ECMAScript, tng t DHTML. Trình biên dch
chuyn đi sang dng bytecode.
Media, data, và Font Compilation
Chuyn code PNG, JPG, GIF, SWF, MP3, và các file ch, sang các file đi tng
ng dng.
2.3.2 OpenLaszlo Servlet
Servlet h tr cho các thuc tính sau:
Media trancoding Chuyn mã mt dng media vào trong mt tp mà trình chy
Flash 6 và Flash 7 có th hin th.
Data transcoding Chuyn mã các response d liu XML sang mt đnh dng nhi
phân.
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Khoa Công Ngh Phn Mm Page 17 of 80
Caching a vào cache nhng kt qu ca các yêu cu đn media và d liu
servers.
Proxying Các yêu cu prox y đn media và server d liu t xa, dùng mt
whiteList hay BlackList server-side.
XML Services H tr phn hi (back-end) cho các yêu cu SOAP, XML -RPC, và
JavaRPC.
Logging and Administration Mt s qun lý nhm kim soát và khai báo giao din
ngi dùng cho phép s kim tra giao din và vn bn ca trng thái server.
2.3.3 OpenLaszlo Runtime Framework Library
The OpenLaszlo Runtime Framework Library bao gm các components ca giao
din ngi dùng, data binding, và các dch v mng.
Nó h tr các đc đim sau:
Components Mt th vin đy tin ích ca nhng thành phn giao din ngi
dùng, gm c nhng thành phn Web form và cu hình grid và cây, cho phép bn
ly prototype mt cách nhanh chóng.
Layout Mt dng ca hin th qun lý v trí các thành phn giao din ngi dùng
mt cách t đng khi chúng thay đi kích thc.
Animation Mt h thng hình nh đng h tr khai báo hay x lý hình nh đng
cho tt c các yu t giao din ngi dùng.
Constraints (ép kiu) Mt khai báo ép kiu h thng t đng cp nht các thuc
tính giao din ngi dùng t nhng giá tr ca các tp d liu.
Data binding T đng đ vào các thành giao din ngi dùng nhng d liu t tp
d liu XML, và có th to nhiu phiên bn ca các thành phn mà ni kt vi
nhiu d liu.
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Khoa Công Ngh Phn Mm Page 18 of 80
XML Services Nhng yêu cu HTTP cho các dch v XML, SOAP, XML-RPC, và
JavaRPC.
Debugging Mt trình debugger dòng lnh đc đính vào hin th nhng cnh báo
lúc thc thi chng trình và làm sáng t các biu thc ECMAScript trong ng
cnh ca ng dng.
HUTECH
Lun vn tt nghip Th.S Lê Trung Hiu – H Nguyn Lê Hoàng Duy
SV Khóa 2001 – Khoa Công Ngh Phn Mm Page 19 of 80
Chng 3
CÁC GII PHÁP HIN THC NG DNG
3.1 S dng các mu qui đnh sn đ sinh mã ngun (template)
3.1.1 Gii thiu
Mu qui đnh sn là các tp tin vi ni dung là mã ngun chun ca mt trang
window form, trang web, user control… Mã ngun này dng mt ngôn ng nh t
đnh (C#, VB.NET…) và gn nh là mt mã ngun hoàn chnh.
Trong mt mu cn phân bit ni dung tnh và ni dung đng.
Ni dung tnh là ni dung bt bin. Ngha là bt kì mt đi tng nào cùng loi
(chng hn mt window form) cng đu phi có ni dung này, vì vy nó đc s
dng cho tt c nhng đi tng cùng loi.
Ni dung đng là ni dung s thay đi tùy thuc vào các giá tr mà ngi dùng
nhp vào. Ni dung này đc đánh du bng mt chui, gi là chui đánh du.
Các chui đánh du đc thay th bng ni dung đc mô t bi ngi dùng trong
thi gian thc thi.
hiu rõ cách s dng mu đ sinh mã ngun t đng, ta xét mt ví d c th.
ây là mt mu window form (có lc b mt s dòng mã không có tác dng
minh ha), đc Microsoft Visual Studio s dng khi thêm mt window form mi
vào C# project Các chui đánh du trong mu đc in đm. Thông tin chính xác
s thay th các chui này và to ra mt mã ngun hoàn chnh cho window form.
using System;
using System.Windows.Forms;
namespace [!output SAFE_NAMESPACE_NAME]
{
/// <summary>