Vnamese Aspnet

Embed Size (px)

Citation preview

1 Yu c u h th ng c a ASP.NET. Windows 2000 Server or Advanced Server with Service Pack 2 . Windows XP Professional or 64-Bit Edition MDAC 2.7 for Data Internet Information Services

Ghi ch: Khi t o XML Web Sevices yu c u h th ng gi ng nh ASP.NET. Yu c u h th ng cho client s d ng XML Web Services l ph i c Microsoft .NET Framework.

2 Gi i thi u v ASP.NET2.1 ASP.NET l phin b n k ti p c a Active Server Page (ASP); n l m t n n pht tri n ng d ng Web h p nh t, cung c p nhi u d ch v c n thi t cho l p trnh vin xy d ng cc l p ng d ng chuyn nghi p. C php ASP.NET t ng thch v i c php ASP, ngoi ra ASP.NET cn cung c p m t m hnh l p trnh m i, n n t ng an ton (secure), linh ho t (scalable),v n nh (stable). S c m th y d ch u khi nng c p ng d ng ASP hi n c, b ng cch a vo cc hm ASP.NET cho chng (l i c a MS). ASP.NET l bin d ch, d a trn mi tr ng .NET v c th xy d ng b ng b t c ngn ng no tng thch .NET, bao g m Visual Basic .NET, C#, and JScript .NET. Ngoi ra, ton b th vi n .NET Framework c th s d ng v i ng d ng ASP.NET, l p trnh vin t n d ng d dng nh ng l i ch c a cc k thu t c cung c p, bao g m qu n l mi tr ng th c thi ngn ng cung (common language runtime), ki u an ton (type safety), k th a (inheritance), .v.v. ASP.NET c thi t k lm vi c v i cc trnh so n th o WYSIWYG HTML i km v cc cng c l p trnh khc c a vo trong Microsoft Visual .NET. T t c cc cng c ny khng phi ch dng pht tri n ng d ng Web c d dng, tuy nhin c th s d ng m t vi ch c nng thng th ng cho ng d ng Web, bao g m m t GUI cho php l p trnh vin c th d dng t cc server control vo trang web (web page), v m t trnh debug r t m nh m . Khi t o m t ng d ng Web l p trnh vin c th ch n Web Forms ho c Web Services, ngoi ra cng c th k t h p hai lo i ny v i nhau theo b t k cch no. C hai lo i ny c m t n n c b n, cho php s d ng authentication schemes, cache frequently used data, ho c ch nh s a c u hnh ng d ng (customize applications configuration). Tuy nhin m i lo i c m t vi kh nng ring:Web Forms cho php xy d ng cc form c n i dung phong ph (powerful forms) trn trang Web (Web Page). Khi xy d ng cc form c th s d ng cc server control

2.2

2.3

2.4

2.4.1

Created by THI NG C DUY MSDN based-written.

1 4/12/2007

t o cc thnh ph n UI thng d ng v l p trnh cho chng m t vi ch c nng thng d ng, nh ng control ny cho php xy d ng nhanh chng cc form ch dng m t l n (out of reusable built-in), ho c cc custom component, lm n gi n m c a trang web (simplifying the code of a page).

2.5

M t XML Web Service cung c p i u ki n (mean) truy c p cc hm server t xa. Khi s d ng Web Service, trong kinh doanh ng i ta c th a ra cc giao di n l p trnh c cng v i d li u, ho c k t qu kinh doanh, nh ng ci ny c th c nh n, hi u ch nh b i cc ng d ng client v server. Web Server cho php trao i d li u theo hai k ch b n (scenarios) client-server v server-client, s d ng chu n HTTP v thng di p XML (XML messaging) di chuy n d li u qua t ng l a (firewall). XML Web Service c th c vi t b ng m i ngn ng l p trnh, s d ng m i m hnh thnh ph n (component model), v c th ch y trn b t k h i u hnh no c th truy c p XML Web Services. M hnh (model) Web Forms v Web Services u c t t c cc t tnh c a ASP.NET, l s c m nh c a .NET Framework v .NET Framework Common Lanuage Runtime. Cc tnh ch t v cch s d ng c th c pht th o nh sau:V i ng i c k nng l p trnh ASP th m hnh l p trnh m i ASP.NET s r t g n gi. Tuy l nh v y nhng ASP.NET c nh ng thay i r t c bi t so v i ASP, ASP.NET c c u trc hn v h ng i t ng. Th t ng ti t, i u ny c ngha l t t c cc trang ASP t n t i u ph i c ch nh s a m t vi ni c th ch y d i ASP.NET. Ngoi ra, Visual Basic v Visual Basic.NET c m t s khc bi t r t l n, i u ny c ngha l cc trang c vi t b ng Visual Basic Scripting Edition s khng th chuy n tr c ti p sang ASP.NET, c n thi t ph i c m t s thay i nh t nh c th chuy n sang ASP.NET. c thm thng tin v v n ny hy xem m c Migrating from ASP to ASP.NET trong MSDN. Truy c p database l k thu t th ng c s d ng hi n th d li u trn trang Web c a khch (visitor). V i ASP.NET, vi c qu n l (manage) database s kh d dng thng qua code. c nhi u thng tin hn v v n ny xin xem m c Accessing Data with ASP.NET. ASP.NET cung c p m t m hnh n gi n l p trnh vin Web c th lm vi c nh trn m t ng d ng thng th ng. L p trnh vin c th vi t m ngay trong file vn b n global.asax, ho c l trong m t class c bin d ch, c tri n khai nh l m t assembly, v c th a vo cc s ki n m c ng d ng. Ngoi ra ng i l p trnh cn c th m r ng m hnh thch h p cho nhu c u c a t ng ng d ng. c nhi u thng tin hn hy xem m c ASP.NET Application trong MSDN. ASP.NET t o ra nh ng chng trnh d s d ng v nh ng session-state facility g n g i v i l p trnh vin ASP v s n sng tng thch v i t t c cc giao di n l p trnh .NET Framework khc (other .NET Framework APIs). c nhi u thng tin hn xin xem m c ASP.NET State Management trong MSDN. i v i nh ng l p trnh vin cao c p, ng i mu n s d ng nh ng giao di n l p trnh m nh nh giao di n ISAPI (c trong ASP), ASP.NET gi i thi u hai giao di n: IhttpHandler v IhttpModule. Ci t giao di n IHttpHandler cho php chng trnh tng tc v i cc yu c u m c th p (low-level request) v nh ng d ch v h i bo (response services) c a IIS Web Services v cung c p m t vi ch c nng gi ng v i

2.6

2.6.1

2.6.2

2.6.3

2.6.4

2.6.5

Created by THI NG C DUY MSDN based-written.

2 4/12/2007

ph n m r ng ISAPI, nhng v i m t m hnh l p trnh r t n gi n. Ci t giao di n IhttpModule cho php l p trnh vin a vo nh ng customize event ring trong m i yu c u (request) sinh ra trong ng d ng. c nhi u thng tin hn v v n ny hy xem m c HTTP Runtime Support.

2.6.6

ASP.NET c c nh ng ch t l ng th c thi c tm th y trong .NET Framework v th c thi ngn ng chung (common language runtime). Ngoi ra ASP.NET c thi t k cho m c ch nng cao kh nng th c thi v t qua ASP v t t c cc n n ng d ng Web khc (L i c a MS). T t c m c a ASP.NET u c bin d ch, vi c ny cho php k t h p d (early binding), ki u m nh (strong type), trnh bin d ch t c th i (JIT) tng thch native code. Ngoi ra ASP.NET cn cung c p catch m r ng cho l p trnh vin c th t i u ha ng d ng trong m t vi tr ng h p. T o c cc cu l nh debug (custom debug statements) cho trang web, n r t h u ch trong khi gii quy t s c (troubleshooting). N n .NET Framework v ASP.NET cung c p s (schemes) ch ng nh n(authentication) v c p php (authorization) cho ng d ng Web, c th d dng xa, thm, hi u ch nh s .

2.6.7

2.6.8 2.6.9

2.6.10 C u hnh ng d ng ASP.NET c lu tr trong cc t p tin XML chu n, hi u ch nh ddng , v c th m r ng ph h p cho nhu c u c a t ng ng d ng Web.

Created by THI NG C DUY MSDN based-written.

3 4/12/2007

33.1

ng d ng ASP.NET.Khi qut.M t ng d ng ASP.NET c nh ngha l t t c nh ng t p tin, nh ng module v m th c thi (executable code) c th c g i t directory) trn ng d ng Web Server. C th s d ng m i m hnh l programming models) trong ng d ng. T t c chng ph i cng t n t o ring l . nh ng i u khi n (handler), m t cy th m c o (virtual p trnh ASP.NET (ASP.NET i trong m t c u trc th m c

3.2 3.2.1

T p tin Global.asax.T p tin Global.asax, cn c hi u nh t p tin ng d ng ASP.NET, l m t t p tin ty ch n ch a m p ng (responding) nh ng s ki n m c ng d ng (application-level events) c pht ra b i ASP.NET ho c nh ng module HTTP. T p tin Global.asax c t t i th m c g c (root directory) c a m t ng d ng ASP.NET. Khi ng d ng ch y (run), t p tin Global.asax c phn tch v bin d ch thnh m t l p class .NET Framework d n xu t t l p HttpApplication. B n thn t p tin Global.asax c c u hnh t ch i b t k yu c u URL tr c ti p no; ng i s d ng bn ngoi (external users) khng th download ho c xem m c vi t bn trong n.

Created by THI NG C DUY MSDN based-written.

4 4/12/2007

3.2.2

T p tin Global.asax c a ASP.NET c th cng t n t i v i t p tin Global.asa c a ASP. C th t o t p tin Global.asax b ng trnh thi t k WYSIWYG, b ng Notepad, ho c nh l m t l p c bin d ch thnh assambly t trong th m c \bin l th m c con c a th m c ng d ng. T p tin Global.asax l m t ty ch n, n u khng nh ngha t p tin Global.asax th framework (ASP.NET page framework) s xem nh (assumes) khng c b t k m t event application handler v event session handler no c nh ngha. N u n i dung t p tin Global.asax b thay i trong lc ng d ng ASP.NET ang ho t ng th ASP.NET Page Framework s t ng d tm s thay i ny. N s th c hi n xong t t c nh ng yu c u hi n t i, g i s ki n Application_OnEnd n t t c nh ng b l ng nghe (listeners), v kh i ng l i mi n ng d ng (application domain). Trong th c t , ng d ng ny c kh i ng l i, ng t t c nh ng browse sesstion, xa (flushing) t t c nh ng thng tin tr ng thi. Khi c yu c u k ti p n t browse, ASP.NET page framework s phn tch v bin d ch l i t p tin Global.asax thnh i t ng trong b nh v pht ra s ki n Application_OnStart.

3.2.3

3.2.4

3.3

Lm vi c v i th c th HttpApplication.Trong su t th i gian s ng c a ng d ng, ASP.NET duy try m t s th c th Global.asax chung d n xu t t l p HttpApplication. Khi ng d ng ASP.NET nh n m t yu c u HTTP th ASP.NET page framework s ch nh m t trong nh ng i t ng ny x l yu c u. M i th c th HttpApplication ch u trch nhi m qu n l su t th i gian s ng c a yu c u m n c ch nh qu n l, v th c th ch c s d ng l i (reused) cho yu c u khc sau khi n x l xong yu c u hi n t i. L p HttpApplication cho php l p trnh (overriding) truy xu t (access) cc phng th c (method), cng nh nh ng s ki n Application_OnStart v Application_OnEnd. Ngoi ra, n cn cho php truy xu t n b t k s ki n no c a ra (exposed) b i cc module HTTP.

3.3.1

L p trnh l i (Overriding) phng th c Init v Dispose.

3.3.1.1 Phng th c HttpApplication.Init c g i ngay sau khi m t th c th (instance) c a l p HttpApplication c t o (sau khi t t c cc module qu n l s ki n c add vo). C th s d ng phng th c ny t o v c u hnh b t k i t ng no c s d ng xuyn su t (across) trong t t c cc thao tc x l s ki n. V d : public override void Init() { // t cc o n m th t s c n thi t }

y.

Ch : di n t : s d ng ngn ng C# lm ngn ng script(language="C#"), ni th c thi script l server (runat="server"). V d pha trn vi t t vo t p tin .aspx. t n d ng s c m nh c a IDE v phng php l p trnh m i, khi l p trnh ta s khng l p trnh l i phng th c Init() trong t p tin Global.asax, thay vo ta s lm ngay trong l p Global c d n xu t t l p HttpApplication. Cc v d minh h a cho vi c overriding cc phng th c s c th c hi n theo phng php ny.

Created by THI NG C DUY MSDN based-written.

5 4/12/2007

3.3.1.2 Phng th c Init khng gi ng v i s ki n Application_OnStart, b i v n lun lun c g i trong t t c cc th c th HttpApplication trong ph m vi m t ng d ng. S ki n Application_OnStart ch c pht ra m t l n trong su t cu c s ng c a ng d ng, khi th c th (instance) HttpApplication u tin c t o. Ch s d ng s ki n Application_OnStart t o v hi u ch nh (modify) nh ng tr ng thi (state) c chia s b i t t c nh ng th c th pipeline, nh l i t ng ApplicationState. Khng s d ng n t o cc bi n c c b , b i v bi n c c b khng c chia s b i nhi u th c th HttpApplication.Phng th c HttpApplication.Dispose c g i tr c ti p tr c khi m t th c th c a l p HttpApplication c hy. C th s d ng n xa b t k local resource no. 3.3.1.3 Phng th c Dispose khng gi ng v i s ki n Application_OnEnd, b i v n lun lun c g i trong t t c cc th c th c a l p HttpApplication trong ph m vi m t ng d ng. S ki n Application_OnEnd ch c pht ra duy nh t m t l n trong su t cu c s ng c a ng d ng, khi th c th cu i cng c a l p HttpApplication c hy (torn down). Ch s d ng s ki n Application_OnEnd xa nh ng tr ng thi ho c nh ng resource c chia s b i t t c cc th c th pipeline, nh l i t ng ApplicationState. Khng s d ng n xa cc bi n c c b , b i v bi n c c b khng c chia s s d ng b i nhi u th c th HttpApplication. 3.3.1.4 Khng c s d ng cc thu c tnh Request, Response, Sesstion c a th c th HttpApplication bn trong cc hm Init v Dispose c a m t s th c thi yu c u. 3.3.1.5 V d bn d i ch ra lm th no override hai phng th c (method) chu k s ng c cung c p b i lp c b n HttpApplication. public override void Init() { // Init override code goes here. } public override void Dispose() { // Init override code goes here. } Ch : V d pha trn vi t t vo t p tin .aspx. t n d ng s c m nh c a IDE v phng php pht tri n ng d ng Web m i, khi l p trnh ta s khng th c hi n overriding cc phng th c trong t p tin Global.asax thay vo ta s lm cng vi c ny ngay trong l p Global , l m t l p c d n xu t t l p HttpApplication.

3.3.2

Qu n l nh ng s ki n c a th c th HttpApplication. C th s d ng t p tin Global.asax x l b t k s ki n no c a ra (exposed) b i l p c b n HttpApplication. M u sau y c cung c p th c hi n cng vi c ny: Application_EventName(AppropriateEventArgumentSignature) V d : o n m sau y gi i quy t cc s ki n OnStart, BeginRequest, v OnEnd cho m t ng d ng ASP.NET, ph i t o n m vo trong t p tin Global.asax, o n m trong gi ng nh sau:

Created by THI NG C DUY MSDN based-written.

6 4/12/2007

public void Application_OnStart() { // Application start-up code goes here. } public void Application_BeginRequest() { // Application code for each request could go here. } public void Application_OnEnd() { // Application clean-up code goes here. } Ch : V d pha trn vi t t vo t p tin .aspx. t n d ng s c m nh c a IDE v phng php pht tri n ng d ng Web m i, khi l p trnh ta s khng th c hi n overriding cc phng th c trong t p tin Global.asax thay vo ta s lm cng vi c ny ngay trong l p Global , l m t l p c d n xu t t l p HttpApplication.

3.4 3.4.1

S

d ng cc Module trong t p tin Global.asax.Khi qut. ASP.NET cung c p nh ng module khc nhau v ring bi t trong m i yu c u v nh ng s ki n c a ra (exposed), c th qu n l (handle) cc module ny ngay trong t p tin Global.asax ho c ngay trong m t l p c d n xu t t l p HttpApplication . C th s a i (custmize) v m r ng cc module ny, ho c th m ch c th t o m t module m i x l thng tin v cc yu c u HTTP. V d , c th t o m t module output cache ci t (implements) output-caching lm vi c (behaviors) cho ton b ng d ng. T t c cc module, c nh ng module t t o v nh ng module chu n c cung c p b i ASP.NET, u ph i ci t giao di n IHttpModule . Ch c n cc module c ng k v i ng d ng l c th d dng tng tc (interact) v i cc yu c u HTTP i vo ng d ng.

3.4.2

Qu n l HTTP Module Events. C th s d ng cc module trong t p tin Global.asax qu n l b t k s ki n no c pht sinh trong cc yu c u HTTP. V d , c th t o m t custom authentication module cho ng d ng Web nh xy d ng, trong module c x l s ki n OnAuthenticateRequest ch ng th c ng i dng. L nh vi t i u khi n s ki n pht sinh (exposed) b i m t HTTP module ph i ph h p v i m u c ch r bn d i. FriendlyModuleName_EventName(AppropriateEventArgumentSignature) V d , n u mu n a code qu n l s ki n b t u v k t thc c a sesstion, cng nh cho s ki n OnAuthenticateRequest, n s trong gi ng nh bn d i. void Session_OnStart() { // Session start-up code goes here. } void Session_OnEnd() {

Created by THI NG C DUY MSDN based-written.

7 4/12/2007

// Session clean-up code goes here. } void Application_OnAuthenticateRequest(Object Source, EventArgs Details) { // Authentication code goes here. } Ch : V d pha trn vi t t vo t p tin .aspx. t n d ng s c m nh c a IDE v phng php pht tri n ng d ng Web m i, khi l p trnh ta s khng th c hi n overriding cc phng th c trong t p tin Global.asax thay vo ta s lm cng vi c ny ngay trong l p Global , l m t l p c d n xu t t l p HttpApplication.

Created by THI NG C DUY MSDN based-written.

8 4/12/2007

3.5 3.5.1 3.5.2

T ng k t.ng d ng ASP.NET l ton b nh ng t p tin n m trong m t h th ng th m c ( o) phn c p, v g m t t c cc i t ng c t o ra b i cc t p tin ny. ng d ng ASP.NET c qu n l b i m t l p c d n xu t t l p HttpApplication. Trong lc ch y h th ng ASP.NET duy tr m t ho c nhi u th c th c a l p ny ( c t o v qu n l b i h th ng ASP.NET) . C th c nhi u yu c u HTTP c x l ng th i. Tuy nhin, t i m i th i i m m i th c th (instance) ch x l cho m t yu c u HTTP. C th l p trnh l i (overriding) phng th c Init() v Dispose(). C th vi t m gi i quy t cc s ki n m c ng d ng (Application). C th vi t m x l cc yu c u m c module (sesstion). Khng c n t p tin Global.asax ng d ng ASP.NET v n ho t ng bnh th ng. T p tin Global.asa v n c th t n t i ng th i v i t p tin Global.asax. S ki n Start() (Application_OnStart) ch c pht ra m t l n duy nh t khi th c th u tin qu n l ng d ng ,th c th c a l p d n xu t t l p HttpApplication, c t o. S ki n End() (Application_OnEnd) ch c pht ra duy nh t m t l n khi th c th cu i cng qu n l ng d ng, th c th c a l p d n xu t t l p HttpApplication, b hy b .

3.5.3 3.5.4 3.5.5 3.5.6 3.5.7 3.5.8

3.5.9

3.5.10 Phng th c Application.Init() c g i m i l n m t th c th qu n l ng d ng,th c th c a l p d n xu t t l p HttpApplication , c t o ra.

3.5.11 Phng th c Application.Dispose() c g i m i khi m t th c th qu n l ngd ng b hy b .

3.5.12 M i khi c m t yu c u HTTP (HTTP Request) cc s ki n s x y ra l n l t: 3.5.12.1 BeginRequest()(Application_BeginRequest): b t u yu cuHTTP.

3.5.12.2 AuthenticateRequest() (Application_AuthenticateRequest): ch ngth c yu c u.

3.5.12.3 EndRequest() (Application_EndRequest): x

l xong yu c u.

3.5.13 Khi m t client k t n i vo Server s ki n Start() (Session_Start) s pht ra. 3.5.14 Khi client ng t k t n i v i Server ngoi kho ng th i gian timeout sEnd()(Session_End) s c pht ra. ki n

3.5.15 S

ki n Error() (Application_Error) c pht ra khi xu t hi n m t l i khng c qu n l (unhandled exception).

3.6

Tham kh o l p HttpApplication.

Created by THI NG C DUY MSDN based-written.

9 4/12/2007

3.7

Tham kh o Giao di n IHttpModule.

4 C u hnh ASP.NET.4.1 Khi qat .

-

-

c i m h th ng c u hnh c a ASP.NET l m t thnh ph n c th m r ng c, cho php nh ngha nh ng thi t l p h th ng khi tri n khai ng d ng ASP.NET l n u tin, sau c th thm, s a l i nh ng thi t l p c u hnh t i b t c th i i m no v i m t s tc ng nh trn cc ng d ng Web v cc Server. H th ng c u hnh c a ASP.NET mang l i cc l i ch sau: Thng tin c u hnh c lu tr trong t p tin XML chu n, cho nn, c th s d ng cc trnh so n th o vn b n chu n (notepad) ho c cc ng d ng phn tch XML (XML Parser) t o v hi u ch nh n m t cch kh d dng. C nhi u t p tin c u hnh, t t c u c t tn l Web.config, c th xu t hi n trong nhi u th m c c a m t ng d ng Server ASP.NET. M i t p tin c u hnh p d ng nh ng thi t l p c u hnh cho th m c ch a n v nh ng th m c con bn d i n. Theo m c nh, nh ng th m c con s c nh ng thi t l p c u hnh c a t p tin Web.config trong th m c cha, tuy nhin, nh ng t p tin c u hnh trong th m c con c th b sung, hi u chnh, v th m ch cn c th nh ngha chng nh ng thi g l p c a t p tin c u hnh trong th m c cha. T p tin c u hnh m c cao nh t c tn l: C:\WINNT\Microsoft.NET\Framework\ version\CONFIG\Machine.config , n c cung c p b i ASP.NET v thi t l p c u hnh cho ton Web Server. Trong khi ch y, ASP.NET s d ng thng tin c u hnh c cung c p trong c u trc phn c p c a th m c o tnh ra m t thi t l p t ng h p cho m i ngu n l c (resource) duy nh t. Ch , h th ng phn c u th m c y l h th ng th m c o c a IIS, khng lin quan n h th ng th m c th ng c qu n l b i h i u hnh. ASP.NET t ng d tm nh ng thay i trong cc t p tin thi t l p c u hnh v t ng p d ng nh ng thi t l p c u hnh m i cho nh ng trang Web c lin quan. Web Server khng c n ph i kh i ng l i cc thi t l p c u hnh m i c hi u l c. Thi t l p c u hnh phn c p (t ng h p c a nhi u t p tin c u hnh) t ng c tnh v lu tr l i b t c khi no h th ng phn c p cc t p tin c u hnh c s thay i. Ch , nh ng quy t t trn khng c tnh v i kh i trong t p tin c u hnh. H th ng c u hnh c a ASP.NET cho php m r ng, c th thm vo cc thng s c u hnh (configuration parameters), v t o cc vng i u khi nc c u hnh (configuration section handlers) x l chng.

Created by THI NG C DUY MSDN based-written.

10 4/12/2007

ASP.NET b o v cc t p tin c u hnh t s truy c p t bn ngoi b ng cch c u hnh IIS ngn c n truy c p tr c ti p t Browse n cc t p tin c u hnh. M l i 403 s c tr v cho b t k s truy c p tr c ti p no.4.2 nh d ng c a t p tin c u hnh trong ASP.NET.

-

-

Thng tin c u hnh cho ngu n l c ASP.NET (ASP.NET resource) ch a trong m t t p h p cc t p tin c u hnh, m i t p tin u c t tn l Web.config. M i t p tin c u hnh ch a m t h th ng c p b c cc tag XML v cc subtag cng v i nh ng thu c tnh ch nh nh ng thi t l p c u hnh. B i v nh ng tag ph i c c u trc XML ng chu n (well-formed XML) cho nn tag, subtag, attributes phn bi t d ng ch (case-sensitive). Tn c a tag v tn c a attributes ph i l camelcase, i u ny c ngha l k t u tin c a tn tag ph i l ch th ng, v k t u tin c a b t k t theo sau no ph i l ch hoa. Gi tr c a thu c tnh ph i l Pascal-case. T t c thng tin c u hnh u c t gi a c p and . Thng tin c u hnh gi a cc tag c nhm vo hai kh i (area) chnh: kh i nh ngha i u khi n c u hnh section (the configuration section handler declaration area) v kh i (area) thi t l p c u hnh section (the configuration section settings area). Kh i nh ngha i u khi n xu t hi n t i ph n u c a t p tin c u hnh gi a c p tag and . M i m t s nh ngha ch a trong m t tag ch r tn c a m t vng (section), m i section cung c p m t t p h p d li u c u hnh v tn c a cc l p .NET Framework x l d li u c u hnh trong section ny. Kh i thi t l p c u hnh vng (section) theo sau kh i v ch a cc thi t l p c u hnh th t s . C m i kh i thi t l p c u hnh vng (section) cho m i nh ngha vng (section) trong kh i . M i c u hnh vng ch a cc subtag, cc attribute ch a cc thi t l p cho vng.

Created by THI NG C DUY MSDN based-written.

11 4/12/2007

-

T p tin Web.config bn d i l m t v d nh ngha hai i u khi n c u hnh (declares two configuration section handlers). Ci th nh t qu n l cc thi t l p cho ng d ng, v ci cn l i qu n l tr ng thi section.

-

-

Ch c n nh ngha kh i i u khi n c u hnh section (configuration section handler) m t l n duy nh t, c th t n trong t p tin thi t l p c u hnh ton server Machine.config ho c trong t p tin Web.config trong th m c o ch a cc t p tin c a ng d ng Web. Cc t p tin c u hnh trong th m c con s t ng th a k cc nh ngha i u khi n c u hnh trong th m c cha. c nhi u thng tin hn v v n ny xin xem m c Configuration Inheritance trong MSDN. Cc thi t l p c u hnh c t bn trong cc tag phn nhm section (section grouping tags). Nh ng section tag m c cao (top-level section tags) th ng m t namespace m nh ng thi t l p c u hnh tc d ng ln. V d , tag m t nh ng thi t l p cho nh ng l p m ng, v tag m t nh ng thi t l p cho nh ng l p ASP.NET. V d bn d i ch r v tr c a cc tag.

Created by THI NG C DUY MSDN based-written.

12 4/12/2007

5 Truy c p nh ng thi t l p c u hnh c a ASP.NET.C th truy c p vo nh ng thi t l p c u hnh cng c ng (public) c a ASP.NET t m t ng d ng ASP.NET b ng cch s d ng nh ng phng th c t nh n i (intrinsic static methods) c a ra (exposed) b i ASP.NET. V d , c gi tr c a thu c tnh cookieless trong section c th s d ng o n m l nh sau y: bool nocookies = Session.Cookieless; Nh ng thi t l p r rng c a ng d ng (Application-specific settings) c lu tr trong section c a nh ng t p tin Web.config, c th s d ng t p h p t nh ki u chu i ConfigurationSettings.AppSettings truy c p n n, v d : String dsn = ConfigurationSettings.AppSettings["dsn"];

6 T o nh ng Configuration Sections m i.- C th m r ng nh ng thi t l p c u hnh chu n c a ASP.NET v i nh ng tag c u hnh XML (XML configuration tags) t nh ngha. lm cng vi c ny, u tin ph i t o m t i u khi n c u hnh section (configuration section handler). i u khi n (handler) ph i l m t l p .NET Framework c ci t giao di n IconfigurationSectionHandler. Nh ng i u khi n section (section handler) thng d ch v x l (processes) nh ng thi t l p c nh ngha trong cc tag XML c phn chia (portion) r rng trong t p tin Web.config, v tr v m t i t ng c u hnh thch h p (appropriate) d a trn nh ng thi t l p c u Created by THI NG C DUY MSDN based-written. 13 4/12/2007

hnh. i t ng c u hnh (configuration object), ci c tr v b i handler class, c th c c u trc d li u khng c nh; n khng b gi i h n b i nh ng l p c u hnh ho c nh ng nh d ng c u hnh c b n. - V d bn d i nh ngha m t giao di n IconfigurationSectionHandler.namespace System.Web.Configuration { public interface IConfigurationSectionHandler { public Object Create(Object parent, Object input, XmlNode node); }

} - Sau khi ci t giao di n IconfigurationSectionHandler, ph i nh ngha m t section trong t p tin Web.config nh sau: {2}", s1, s2, Object.Equals(s1, s2)); s1 = "Tom"; s2 = "Tom"; Console.WriteLine("Object.Equals(\"{0}\", \"{1}\") => {2}", s1, s2, Object.Equals(s1, s2)); s1 = null; s2 = "Tom"; Console.WriteLine("Object.Equals(null, \"{1}\") => {2}", s1, s2, Object.Equals(s1, s2)); s1 = "Carol"; s2 = null; Console.WriteLine("Object.Equals(\"{0}\", null) => {2}", s1, s2, Object.Equals(s1, s2)); s1 = null; s2 = null; Console.WriteLine("Object.Equals(null, null) => {2}", s1, s2, Object.Equals(s1, s2)); } } /* This code produces the following output. Object.Equals("Tom", "Carol") => False Object.Equals("Tom", "Tom") => True Object.Equals(null, "Tom") => False Object.Equals("Carol", null) => False Object.Equals(null, null) => True */ g. GetChanges Tr v m t b n sao c a DataSet ch a t t c nh ng thay i lm trn DataSet t khi l n cu i n c Load hay t khi AcceptChanges c g i. V d sau dng phng th c GetChanges t o m t i t ng DataSet th 2 m sau c dng c p nh t d li u trn data source private void UpdateDataSet(DataSet myDataSet){ // u tin ta ki m tra xem dataset c thay i khng v i phng th c HasChanges if(!myDataSet.HasChanges(DataRowState.Modified)) return; // T o ra m t bi n DataSet t m DataSet xDataSet; // L y nh ng thay i trn Dataset, ch nh ng thay i c p nh t(Modified) m thi. xDataSet = myDataSet.GetChanges(DataRowState.Modified);

Created by THI NG C DUY MSDN based-written.

26 4/12/2007

// Ki m tra xem Dataset c l i khng if(xDataSet.HasErrors){ // vi t l nh fix l i } // Sau khi Dataset khng cn l i // g i phng th c Update c a DataAdapter c p nh t d li u xu ng Database myOleDbDataAdapter.Update(xDataSet); } h. GetXml Tr v trnh by Xml c a d li u c lu tr trong DataSet. Phng th c ny th ng c s d ng chung v i phng th c WriteXml. i. WriteXml Ghi d li u Xml, tu ch n l c t DataSet. V d sau t o m t i t ng System.IO.FileStream m c dng t o System.Xml.XmlTextWriter. i t ng XmlTextWriter c dng v i phng th c WriteXml ghi m t ti li u Xml.

private void WriteXmlToFile(DataSet thisDataSet) { if (thisDataSet == null) { return; } // T o ra m t file ghi string filename = "myXmlDoc.xml"; // T o m t FileStream ghi System.IO.FileStream myFileStream = new System.IO.FileStream (filename, System.IO.FileMode.Create); // T o m t XmlTextWriter v i FileStream System.Xml.XmlTextWriter myXmlWriter = new System.Xml.XmlTextWriter(myFileStream, System.Text.Encoding.Unicode); // Ghi xu ng file v i phng th c WriteXml thisDataSet.WriteXml(myXmlWriter); myXmlWriter.Close(); } j. HasChanges Tr v gi tr cho bi t DataSet thay i cha, bao g m cc dng thm m i, xo hay c p nh t V d sau dng phng th c GetChanges t o DataSet th 2, sau c p nh t d li u xu ng ngu n d li u. private void UpdateDataSet(DataSet myDataSet){ // Ki m tra xem DataSet c thay i khng if(!myDataSet.HasChanges(DataRowState.Modified)) return; // T o m t bi n DataSet t m DataSet xDataSet; // ch l y nh ng dng thay i xDataSet = myDataSet.GetChanges(DataRowState.Modified); // Ki m tra xem dataset c l i khng if(xDataSet.HasErrors){ // Vi t code fix l i

Created by THI NG C DUY MSDN based-written.

27 4/12/2007

} // Sau khi fix l i // g i phng th c Update c a DataAdapter c p nh t d li u t Dataset xu ng Database myOleDbDataAdapter.Update(xDataSet); } k. Merge Tr n DataSet ny v i m t DataSet khc V d sau t o ra m t DataSet v i m t b ng, 2 c t v 10 dng. M t DataTable th 2 c t o g n nh gi n h t v i DataTable th nh t ngo i tr c t m i c thm vo b ng. Hai dng c thm vo b ng th 2, sau n c tr n vo DataSet v i tham s preserveChanges l False v tham s missingSchemaAction c thi t l p l MissingSchemaAction.Add. private void DemonstrateMergeTableAddSchema(){ // Create a DataSet with one table, two columns, and ten rows. DataSet ds = new DataSet("myDataSet"); DataTable t = new DataTable("Items"); // Add table to the DataSet ds.Tables.Add(t); // Create and add two columns to the DataTable DataColumn c1 = new DataColumn("id", Type.GetType("System.Int32"),""); c1.AutoIncrement=true; DataColumn c2 = new DataColumn("Item", Type.GetType("System.Int32"),""); t.Columns.Add(c1); t.Columns.Add(c2); // Set the primary key to the first column. t.PrimaryKey = new DataColumn[1]{ c1 }; // Add RowChanged event handler for the table. t.RowChanged+= new DataRowChangeEventHandler(Row_Changed); // Add ten rows. for(int i = 0; i Add -> Existing Project. b. Trong h p tho i Add Existing Project, browse t i v tr c a d n Merge Module v ch n Open. T o m i ho c thm m t d n CAB: D n CAB dng t o file cabinet (.cab), dng download cc components t i m t trnh duy t Web. t o m i m t d n CAB: a. Ch n File Add New Project. b. Trong h p tho i Add New Project, ch n Setup and Deployment Projects. c. Ch n Cab Project. thm m t d n CAB c s n vo gi i php: a. Ch n File Add Existing Project. b. Trong h p tho i Add Existing Project, browse t i v tr c a d n CAB v ch n Open. t cc thu c tnh cho d n tri n khai: Cc d n tri n khai c 2 lo i thu c tnh: Thu c tnh d n chung v thu c tnh c u hnh ph thu c. Thu c tnh chung c t trong c a s Properties v p d ng cho t t c c u hnh d n, t thu c tnh c u hnh ph thu c, s d ng h p tho i Deployment Properties, thu c tnh ny p d ng cho 1 c u hnh d n ring. t thu c tnh c u hnh ph thu c: a. Ch n View -> Property Pages. b. Ch n m t c u hnh t danh sch cc c u hnh (Configuration list). c. Ch n m t category trong danh sch cc categories. Thu c tnh c a category c ch n s hi n th Thm cc items vo d n tri n khai: t o b ci t, b n c n ph i ch r nh ng g ch a trong b ci t v ni m n s ci t vo my. lm i u ny chng ta thm cc items vo d n tri n khai. Cc lo i items chng ta c th thm vo d n tri n khai bao g m: Project outputs, files, Merge Modules v cc components. thm m t Project output ho c file vo d n tri n khai: a. Ch n File System Editor: M t d n tri n khai bao g m 6 trnh so n th o (editor), l: File System Editor, Registry Editor, File Types Editor, User Interface Editor, Custom Action Editor v Launch Conditions Editor. i v i d n Merge Module th khng c User Interface Editor, d n CAB th khng c m t editor no. Khi m t d n tri n khai c thm vo gi i php th File System Editor c hi n th m c nh. m m t trnh so n th o: - Ch n d n tri n khai trong Solution Explorer

Created by THI NG C DUY MSDN based-written.

67 4/12/2007

- Ch n View Editor v nh p chu t vo tn c a trnh so n th o m b n mu n m . b. Ch n 1 folder trn my ch ni m item s c ci t. B n c th t o m i ho c xo cc folder trn my ch. M c nh th File System Editor hi n th m t t p chu n cc folder i di n cho c u trc cc folder trn my ch. C 2 lo i folder l Special folder v Custom folder: - Special folders l nh ng folder trong File System Editor i di n cho nh ng folder ban u trong Windows. S d ng Special folder trong d n tri n khai cho php b n ch n folder ch trong my ch m khng c n bi t ng d n th c s c a n. - Custom folders l cc folder c bi t i di n cho cc folder trong my ch. Khc v i Special folders, Custom folder khng ph thu c vo cc folder c s n, n cho php b n t o m i m t folder trong qu trnh ci t. thm m t Special folder: - Trong Folder List c a File System Editor, ch n File System on Target Machine. - Trong menu Action, ch n Add Special Folder, nh p ch n lo I Special folder. thm m t Custom folder: - Trong Folder List c a File System Editor, ch n File System on Target Machine. - Trong menu Action, ch n Add Special Folder, nh p ch n Custom Folder ho c Web Custom Folder. - G vo tn c a custom folder. thm m t Subfolder: - Ch n m t folder trong File System Editor - Trong menu Action, ch n Add Folder - G vo tn c a folder xo m t folder: - Ch n 1 folder v ch n Delete trong menu Edit c. Trong menu Action, chon Add Project Output (ho c File). Ch n item c n thm trong h p tho i.

thm m t Merge Module ho c component vo d n tri n khai: a. Ch n d n tri n khai trong Solution Explorer. b. Trong menu Project, ch n Add Merge Module (ho c Component). Ch n item c n thm trong h p tho I Thm v xo cc icons: Icons c ci t v k t h p v i ng d ng my ch trong su t qu trnh ci t. B n c th ch n cc icon xu t hi n trong c a s Windows Explorer c a my ch, b n cng c th ch n icon xu t hi n trong h p tho I Add/Remove Programs. lm i u ny, ta thi t l p thu c tnh Icon ho c AddRemoveProgramsIcon. thm m t Icon vo ng d ng: a. T o m t shortcut cho ng d ng trong File System Editor, b ng cch: - Trong File System Editor, ch n file ho c folder b n mu n t o shortcut. Ch khi t o shortcut cho Special folder, ph i gn thu c tnh AlwaysCreate c a folder = True.

Created by THI NG C DUY MSDN based-written.

68 4/12/2007

- Trong menu Action, ch n Create Shortcut to. Shortcut xu t hi n trong File List. - Ch n shortcut, v ch n menu Edit Cut. - Trong Folder List, ch n folder mu n hi n th shortcut, ch n Edit Paste. Xo shortcut b ng cch ch n shortcut trong File List v ch n Edit Delete. b. Ch n shortcut trong File System Editor c. Trong c a s Properties, ch n thu c tnh Icon Browse. d. Trong h p tho i Icon, ch n Browse. e. Trong h p tho i Select item in project, ch n folder v ch n file ch a Icon. thm m t Icon Add/Remove Programs vo ng d ng: a. Ch n d n Setup ho c Web Setup trong Solution Explorer. b. Trong c a s Properties, ch n thu c tnh AddRemoveProgramsIcon Browse. c. Trong h p tho i Icon, ch n Browse d. Trong h p tho i Select item in project, ch n folder v ch n file ch a Icon. xo m t Icon: Trong c a s Properties, ch n thu c tnh Icon ho c AddRemoveProgramsIcon, sau ch n None trong danh sch. Cc phng th c khc c a vi c tri n khai: C m t s phng th c khc c a vi c tri n khai m t ng d ng. Trong h u h t cc tr ng h p, cc cng c tri n khai cung c p nhi u b ci t m nh. Tuy nhin, trong vi tr ng h p n gi n th cc phng th c c th thch h p. L nh Copy Project: i v i d n Web, l nh Copy Project c hi n th trong menu Project. Copy Project l m t cch n gi n sao chp n i dung d n t i Web Server, nhng n khng t ng c u hnh th m c IIS (Internet Information Service). M c nh th lnh Copy Project t o m t ng d ng Web m i Server ch v ch copy nh ng file yu c u ch y ng d ng. s d ng l nh Copy Project th FrontPage Server Extensions ph i c ci t trn Server ch. Nh ng b c c b n copy m t d n vo server: a. Trong menu Project, ch n Copy Project. b. Ch n th m c d n ch. c. Ch n phng th c truy c p Web. d. Ch n file c n copy L nh XCOPY: L nh XCOPY l m t cch n gi n copy m t d n ho c m t ng d ng t v tr ny t i v tr khc. XCOPY khng ng k v tr c a assemblies, v v i ng d ng Web n khng t ng c u hnh th m c IIS Third-party Installation Tools: Cc cng c ny ng h cc tnh nng c a Windows Installer, khng c ng h b i s tri n khai trong Visual Studio. IV. Tri n khai ng cc ng d ng ng WEB Projects: 1. Lm vi c v i WEB Projects:

Created by THI NG C DUY MSDN based-written.

69 4/12/2007

Cc ng d ng Web ASP.NET v cc d ch v Web XML cho php b n t o ra cc ng d ng nng cao nng l c c a World Wide Web. Cc lo i d n ny c ch y trn m t Web Server, chuy n v nh n thng tin thng qua cc giao th c chu n nh HTTP v XML. S d ng Web Projects, b n c th t o c m i th t Web site truy n th ng ph c v nh ng trang HTML nng cao tnh nng c a cc ng d ng kinh doanh ch y trn m ng intranet ho c Internet Visual Basic v Visual C# bao g m cc template cho php b n t o ra 3 lo i d n Web-based: - ASP.NET Web Application template: L p trnh ng d ng Web v i cc designer t o ra cc Web Forms page k t h p cc tnh nng c a ASP.NET - ASP.NET Web Server template: M t ng d ng cung c p kh nng trao i thng bo gi a cc trang Web s d ng cc giao th c nh HTTP, XML, XSL, SOAP v WSDL. - Empty Web Project template: M t ng d ng Web r ng m b n c th ty ch nh 2. Bin d ch v tri n khai ng d ng WEB Projects: Visual Studio cung c p m t c c u n gi n tri n khai cc ng d ng t i cc my c c b ho c cc my remote. B n c th ci t ng d ng b ng cch n gi n l sao chp chng vo cc th m c ng d ng c ch r ho c b ng cch s d ng nhi u d n tri n khai chuyn d ng v c th c u hnh c Khi s d ng Visual Studio.Net xy d ng cc ng d ng Web ASP.NET, b n s d ng m t m hnh tri n khai t ng qut, d n s c bin d ch v cc file k t qu s c tri n khai. Web Forms code trong class file (.aspx.vb ho c l . aspx.cs) c bin d ch vo m t file .dll. File ny sau s tri n khai t i Server m khng c source code no. Khi m t yu c u trong trang c nh n, file .dll s c th c thi. Bin d ch v tri n khai: Gi s b n c m t ng d ng Web ASP.NET n gi n g i l WebApplication1 bao g m: - M t Web Forms page tn l WebForm1.aspx - M t s module thm vo ch a business logic g i l BusinessLogic1(.vb ho c .cs) v BusinessLogic2(.vb ho c .cs). Sau khi b n hi u ch nh v bin d ch d n: - T t c cc file trong d n c lu l i t l n build cu i cng. - File WebForm1.aspx v cc file m c nh c a d n c copy vo Web server. File Class WebForm1(.aspx.vb ho c .aspx.cs), component BusinessLogic1 v component BusinessLogic2 c bin d ch trong file .dll, file ny c copy m c nh vo th m c \Bin c a th m c o Tri n khai m t ng d ng ASP.NET: - ng gi thnh file ch y .exe ho c file .dll - Phn ph i: S d ng XCOPY ho c FTP B n c th s d ng XCOPY ho c FTP tri n khai m t ng d ng ASP.NET t i server. B n c th ch y m t phin b n c a ng d ng bn c nh phin b n khc, b n c th update ng d ng m khng ph i ng ng d ng. Common Laguage Runtime ch y m t ng d ng ng th i v i cc ng d ng khc m khng c s xung t v DLL Tri n khai cc ng d ng XML Web Services:

Created by THI NG C DUY MSDN based-written.

70 4/12/2007

Tri n khai m t ng d ng XML Web Service bao g m vi c sao chp file .asmx v cc assembly khc c s d ng b i XML Web Service (nhng khng ph i l thnh ph n c a .NET Framework) t i Web server. VD: Gi s b n c m t XML Web Service tn l StockServices. tri n khai XML Web Service, b n t o m t th m c o trn Web server v t file .asmx vo th m c . M t cch tri n khai i n hnh g m c u trc th m c sau:

\Inetpub \WWWRoot \StockServices StockServices. Asmx \Bin Assembly s d ng b i XML Web Services khng ph i l thnh ph n c a .NET Framework. Cc m c c tri n khai t i Web Server khi cng b m t XML Web Service:

7.1

M c

7.2

M t

Th m c ng d ng Web

T p tin .asmx T p tin .disco

T p tin Web.config Th m c \Bin

Th m c g c c a XML Web Service. Cc file cn l i c t trong th m c ny. Th m c ny c th G d u l m t ng d ng Web IIS. URL client g i XML Web Service C ch discovery c a XML Web Service(file ny l ty ch n, khng c t ng t o ra b i XML Web Service) (Ty ch n) N u b n mu n ghi cc thi t l p m c nh v c u hnh, b n c th bao g m file Web.config Lu gi cc file nh phn c a XML Web Service. N u l p XML Web Service khng c cng file .asmx th assembly ch a l p ph i l th m c \Bin

3. V d tri n khai ng d ng WEB Project: V d sau y chng ta s t o m t ng d ng Web Forms n gi n s d ng Visual Basic, v t o b ci t tri n khai ng d ng t i Web server. T o ng d ng Web Forms: Trong menu File, ch n New Project Trong h p tho i New Project, ch n Visual Basic Projects trong Project Types v ch n ASP.NET Web Application trong Templates. G http://localhost/WebApp1 vo Location. D n c thm vo Solution Explorer v Web Forms Designer c m Ch n tab Web Forms trong Toolbox v ch n Button ko vo Web Form. Nh p p Button v thm s ki n handler cho(even handler) Button. Trong even handler, g vo o n m sau: Button1.Text = abc i u ny s lm thay I text hi n th trn Button1 khi n c click Trong menu Build, ch n Build WebApp1

8

Created by THI NG C DUY MSDN based-written.

71 4/12/2007

T o d n tri n khai (Deployment project): Trong menu File, ch n Add Project New Project. Trong h p tho i Add New Project, ch n Setup and Deployment Projects trong Project Type v ch n Web Setup Project trong Templates. G WebDeploy vo Name. D n c thm vo Solution Explorer, v File Systems Editor c m . Trong c a s Properties, ch n thu c tnh ProductName v g vo WebApp1. Thm thng tin d n WebApp1 vo d n tri n khai: Trong File Systems Editor, ch n th m c Web Application. Ch n menu Action Add Project Output. Trong h p tho i Add Project Output Group, ch n WebApp1 t danh sch drop-down Project. Ch n Primary Output v nhm Content Files t danh sch drop-down v click OK. t thu c tnh cho Installer: Ch n th m c WebApplication. Trong c a s Properties, t gi tr xyz cho thu c tnh VirtualDirectory. Trong c a s Properties, t gi tr cho thu c tnh DefaultDocument l WebForm1.aspx. Trong menu Build, ch n Build WebDeploy. Tri n khai ng d ng t i Web server trong my c a b n: Trong Solution Explorer, ch n d n WebDeploy. Ch n Install t menu Project. truy nh p ng d ng Web c tri n khai, m Internet Explorer g vo a ch http://localhost/xyz. Trong trang Web hi n ln, b n s th y text c a button thay i khi click vo n Tri n khai ng d ng t i Web server trong my khc: Trong Windows Explorer, ch t i th m c c a d n v tm Installer c build. ng d n m c nh s l: \documents and settings\yourloginname\ My Documents\Visual Studio Projects\WebDeploy\project configuration\WebDeploy.msi. Project Configuration m c nh l Debug. Sao chp file WebDeploy.msi v t t c cc file v th m c con trong th m c vo Web server c a my ch Trong my Web server, nh p p file Setup.exe ch y installer. Lu l b n ph i c Install permissions ch y installer, v b n ph i c IIS permissions ci t vo Web server truy c p ng d ng Web c tri n khai, m Internet Explorer, g vo a ch http:// [ComputerName]/xyz. Uninstall ng d ng:

Created by THI NG C DUY MSDN based-written.

72 4/12/2007

Trong Windows Control Panel, nh p p Add/Remove Programs Trong h p tho i Add/Remove Programs, ch n WebApp1 v ch n Remove. uninstall t my c a b n, ch n Project Uninstall 4. Lm vi c v I cc Editor trong d n Setup: M t d n tri n khai c t t c 6 editor l: File System Editor, Registry Editor, File Type Editor, User Interface Editor, Custom Actions Editor v Launch Conditions Editor. a. File System Editor: Cho php b n thm Project outputs, files v cc items khc vo d n tri n khai v nh ngha ni n c ci t. M c nh th File System Editor m t t p chu n cc th m c ph h p v i c u trc th m c chu n trn my ch. B n c th thm m t th m c con vo th m c no , ch n th m c t bi t t danh sch ho c thm m t folder vo v tri top-level. Khi b n ch n m t th m c ho c m t item trong File System Editor th m t vi thu c tnh lin quan t i n s c hi n th , b n c th ch nh s a cc thu c tnh ny trong c a s Properties. - Thm Project outputs: Trong menu Action, ch n Add Project outputs Trong h p tho i Add Project Output Group, ch n project t danh sch Projects. Ch n lo i output t danh sch output, b n c th ch n nhi u lo i output t danh sch output. B n c th ty ch n c u hnh t danh sch Configuration. xo Project output th ch n m t project output v ch n Delete trong menu Edit. - Thm files: Ch n m t folder trong File System Editor. Trong menu Action, ch n Add File Trong h p tho i Add Files, ch ng d n n file m b n mu n thm vo v ch n n xo file th ch n file v ch n Delete trong menu Edit. - t i u ki n ci t cho 1 file: Ch n m t file trong File System Editor Trong c a s Properties, ch n thu c tnh Condition v t i u ki n vo thu c tnh ny - Thm v xo cc Assemblies: Ch n m t folder trong File System Editor Trong menu Action, ch n Add Component Trong h p tho i Component Selector, ch ng d n t i Assembly v ch n n xo m t Assembly ta ch n n r i ch n Delete trong menu Edit. b. Registry Editor: Cho php b n t o cc kha registry v gi tr c a n add vo registry trong my ch. - Thm v xo Registry Keys trong Registry Editor: Ch n m t key node trong Registry Editor Trong menu Action, ch n New Key

Created by THI NG C DUY MSDN based-written.

73 4/12/2007

t tn cho key v s a i cc thu c tnh khc c a key trong c a s Properties n u c n thi t xo m t key trong Registry Editor, ch n m t key v ch n Delete trong menu Edit. - Thm v xo Registry Values trong Registry Editor: Ch n m t key node (khng ph i l top-level key) trong Registry Editor Trong menu Action, ch n New String Value, Binary Value ho c DWORD Value. t tn cho value Trong c a s Properties, G vo gi tr value trong thu c tnh Value. xo m t registry value, ta ch n m t value v ch n Delete trong menu Edit - T o m t Default Registry Value: Ch n tn value trong Registry Editor Trong menu File, ch n Rename Ch n Delete trong menu Edit Nh n Enter, gi tr c thay b ng (Default) - Import Registry Files vo Registry Editor Ch n node Registry on Target Machine trong Registry Editor Trong menu Action, ch n Import Trong h p tho i Import Registry File, ch ng d n t I registry file v ch n Open c. File Types Editor: Dng thi t l p s k t h p file trong my ch, b ng cch k t h p ph n m r ng c a file v i ng d ng v ch ra cc ho t ng cho php v i m i lo i file. - Thm, xo Document Types v Associated File Extensions trong File Types Editor: thm m t Document Type, ch n node File Types on Target Machine trong File Types Editor. Trong menu Action, ch n Add File Type G tn m t cho File Type m i k t h p ph n m r ng c a file, ch n m t node Document Type trong File Types Editor. Trong c a s Properties, ch n thu c tnh Extensions v g vo ph n m r ng. k t h p m t File th c thi, ch n node Document Type trong File Types Editor Trong c a s Properties, click nt Ellipsis bn c nh thu c tnh Command Trong h p tho i Select Item in project, click nt Add File Ch n m t file th c thi k t h p v i file type. xo m t Document Type, ch n n v ch n Delete trong menu Edit - Thm v xo Actions trong File Type Editor Ch n node File Type trong File Types Editor Trong menu Action, ch n Add Action G vo tn cho action, y l tn action hi n th trong context menu c a file Trong c a s Properties, ch n thu c tnh Verb v g vo ng t . y l tn c dng l p trnh cho ng d ng th c thi code khi action u c g i

Created by THI NG C DUY MSDN based-written.

74 4/12/2007

- Ch r Default Action trong File Types Editor: Ch n 1 node Document Type trong File Types Editor Trong menu Action, ch n Set As Default - Thay i Display Order c a Action trong File Types Editor Ch n 1 node Document Verb trong File Types Editor Trong menu Action, ch n Move Up ho c Move Down d. User Interface Editor:

c nh ngha tr c trnh ci t.

Dng ch r v t cc thu c tnh cho cc h p tho i c hi n th trong quUser Inteface Editor l m t cy c 2 section l Install v Admin. Ph n Install ch a cc h p tho i c hi n th khi end user ch y ci t ng d ng. Ph n Admin ch a cc h p tho i c hi n th khi ng i qu n tr h th ng upload b ci t ln m ng. Nh ng h p tho i c nh ngha tr c c chia thnh 3 lo i: Cc h p tho i Start c hi n th tr c khi qu trnh ci t b t u (dng t p h p thng tin ng i dng hay thay i ng d n m ng d ng c ci vo). H p tho i Progess, v cc h p tho i End c hi n th khi ng d ng ci t thnh cng. - Thm v xo Installation Dialog Boxes trong User Interface Editor thm m t dialog box, ch n node Start, Progess ho c Finish trong ph n Install c a User Interface Editor. Trong menu Action, ch n Add Dialog. Trong h p tho i Add Dialog, ch n m t dialog box m b n mu n thm vo thay i th t hi n th c a Dialog box, ch n m t node dialog box Trong menu Action, ch n Move Up ho c Move Down. xo m t Dialog box, ch n m t Dialog box trong User Interface Editor v ch n Delete trong menu Edit - Thay i Dialog box: thay i cc thu c tnh c a Dialog box, ch n m t node dialog box Trong c a s Properties, ch nh s a nh ng thu c tnh c a dialog box e. Custom Actions Editor: Cho php b n ch r nh ng th c thi c thm vo my ch vo cu i qu trnh ci t. Custom Actions c bin d ch thnh file .dll ho c .exe ho c c thm vo Project nh l m t script ho c assembly tr c khi n c th thm vo d n tri n khai. Action ch c th ch y vo cu I qu trnh ci t. Custom Actions Editor c ch a 4 folder tng ng v i m i giai o n c a qu trnh ci t: Install, Commit, Rollback

Created by THI NG C DUY MSDN based-written.

75 4/12/2007

v Uninstall. Custom action c ch y trong cc giai o n ny. - Thm v xo Custom Actions trong Custom Actions Editor: thm m t Custom Action, ch n m t folder trong Custom Actions Editor Trong menu Action, ch n Add Custom Action Trong h p tho i Select item in Project, ch n m t folder v ch n file .dll. file .exe ho c project output m c ch a custom action thay i th t th c thi, ch n m t Custom Action trong Custom Actions Editor Trong menu Action, ch n Move Up ho c Move Down xa m t custom action, ch n n trong Custom Actions Editor v ch n Delete trong menu Edit - Thm Predefined Custom Action trong Custom Actions Editor: thm m t Installation Component vo d n tri n khai, ch n m t folder trong Custom Actions Editor. Trong menu Action, ch n Add Custom Action Trong h p tho i Select item in Project, m folder ch a installation component v ch n primary output. f. Launch Conditions Editor: Cho php b n ch r i u ki n c n gip cho qu trnh ci t c thnh cng. V d nh b n mu n ki m tra phin b n c a h i u hnh, tm ki m file - Thm m t File Launch Condition: Ch n node Requirements on Target Machine trong Launch Conditions Editor Trong menu Action, ch n Add File Launch Condition Ch n node Search for File. Trong c a s Properties, ch n thu c tnh FileName v g vo tn file c n tm. Ch n thu c tnh Folder v g vo tn c a Folder b t u tm ki m (v d nh [ProgramFilesFolder] ho c C:\Program Files\MyProgram) B n c th ty ch n cc thu c tnh khc nh depth (s c p th m c tm ki m), date, size v version. Ch n node Condition, trong c a s Properties, ch n thu c tnh Message v g vo thng bo hi n th khi file khng c tm th y - Thm .NET Framework Launch Condition: Ch n node Requirements on Target Machine trong Launch Conditions Editor Trong menu Action, ch n Add .NET Framework Launch Condition Ch n node Condition, trong c a s Properties, thu c tnh Message ch a m t thng bo chu n l [VSDNETMSG], b n c th thay th gi tr ny b ng m t chu i thng bo khc. - Thm m t Registry Launch Condition: Ch n node Requirements on Target Machine trong Launch Conditions Editor

Created by THI NG C DUY MSDN based-written.

76 4/12/2007

-

-

-

-

Trong menu Action, ch n Add Registry Launch Condition Ch n node Search for RegistryEntry. Trong c a s Properties, ch n thu c tnh Root v ch n node registry c n tm Ch n thu c tnh RegKey v g vo tn c a kho registry c n tm B n cng c th ty ch n thu c tnh Value tm m t gi tr trong kho registry Ch n node Condition. Trong c a s Properties, ch n thu c tnh Message v g vo thng bo hi n th n u Registry entry khng c tm th y. Thm m t Windows Installer Launch Condition: Ch n node Requirements on Target Machine trong Launch Conditions Editor Trong menu Action, ch n Add Windows Installer Launch Condition Ch n node Search for Component. Trong c a s Properties, ch n thu c tnh ComponentId v g vo gi tr ID c a Component c n tm Ch n node Condition. Trong c a s Properties, ch n thu c tnh Message v g vo thng bo hi n th khi Component ID khng c tm th y Thm m t Internet Information Services Launch Condition: Ch n node Requirements on Target Machine trong Launch Conditions Editor Trong menu Action, ch n Add Internet Information Services Launch Condition Ch n node Condition. Trong c a s Properties, gi tr m c nh c a thu c tnh Condition l REGISTRYVALUEn >= #5, c ngha l gi tr ch a trong registry key ph i >=4 (IIS 4.0). N u b n mu n tm version khc th thay i gi tr thu c tnh ny. B n c th ty ch n thu c tnh Message, n ch a m t gi tr m c nh l [VSDIISMSG], b n c th thay th n n u c n Thm m t File Search trong Launch Conditions Editor: Ch n node Search Target Machine trong Launch Conditions Editor Trong menu Action, ch n Add File Search Trong c a s Properties, g tn file vo thu c tnh FileName m b n mu n tm B n c th ty ch n ni tm ki m v cc thu c tnh tm ki m xo m t File Search, ch n n trong Launch Conditions Editor v chon Delete trong menu Edit. Thm m t Registry Search trong Launch Conditions Editor: Ch n node Search Target Machine trong Launch Conditions Editor Trong menu Action, ch n Add Registry Search Trong c a s Properties, t cc thu c tnh Root v RegKey cho registry key m b n mu n tm B n c th ty ch n thu c tnh Value tm m t gi tr no

Created by THI NG C DUY MSDN based-written.

77 4/12/2007

-

-

-

-

xo m t Registry Search, ch n n trong Launch Conditions Editor v ch n Delete trong menu Edit. Thm m t Windows Installer Search trong Launch Conditons Editor: Ch n node Search Target Machine trong Launch Conditions Editor Trong menu Action, ch n Add Component Search Trong c a s Properties, t gi tr cho thuc tnh ComponentId (s GUID) m b n mu n tm xo m t Windows Installer Search, ch n n trong Launch Conditions Editor v ch n Delete trong menu Edit Thm m t Launch Condition cho Microsoft Data Access Components: Ch n node Requirements on Target Machine trong Launch Conditions Editor Trong menu Action, ch n Add Registry Launch Condition Ch n node Search for RegistryEntry1. Trong c a s Properties, ch n thu c tnh RegKey v g vo Software\Microsofr\DataAccess G vo gi tr vsdrrHKLM cho thu c tnh Root G vo gi tr FullInstallVer cho thu c tnh Value G vo gi tr MDACSEARCH cho thu c tnh Property Ch n node Condition1 trong Launch Conditions Editor, trong c a s Properties, G vo gi tr MDACSEARCH >= 2.6 Ch n thu c tnh Message v g vo MDAC version 2.6 or higher must be installed prior to installing this application. You can install MDAC from the Microsoft Web site http://www.microsoft.com Thm m t Launch Condition trong Launch Conditions Editor: Ch n node Launch Condition trong Launch Conditions Editor Trong menu Action, ch n Add Launch Condition G vo tn cho condition Trong c a s Properties, g vo i u ki n cho thu c tnh Condition Ch n thu c tnh Message, v g vo n I dung thng bo khi i u ki n tr v false. xo m t Launch Condition, ch n n trong Launch Conditions Editor v ch n Delete trong menu Edit S d ng Registry Launch Condition ch ra Target Directory Ch n node Requirements on Target Machine trong Launch Conditions Editor Trong menu Action, ch n Add Registry Launch Condition Ch n node Search for RegistryEntry. Trong c a s Properties, ch n registry root trong thuc tnh Root

Created by THI NG C DUY MSDN based-written.

78 4/12/2007

G vo tn c a registry key trong thu c tnh RegKey G vo gi tr registry trong thu c tnh Value G vo tn cho thu c tnh Property, v d nh SearchForIE Ch n node Condition. Trong c s Properties, ch n thu c tnh Condition v g vo i u ki n tm ki m Ch n thu c tnh Message, v g vo thng bo hi n th n u gi tr registry khng c tm th y Trong menu View, ch n Editor File System Ch n node File System on Target Machine trong File System Editor Trong menu Action, ch n Add Special Folder ho c Custom Folder Trong c a s Properties, ch n thu c tnh DefaultLocation v g vo gi tr ch v tr (Gi tr c a thu c tnh Property trn: [SearchForIE]) 5. V d s d ng Custom Action t o database trong qu trnh ci t: Trong v d sau, chng ta s s d ng custom action v thu c tnh CustomActionData t o CSDL v cc b ng trong qu trnh ci t. a. T o m t Installer Class: Trong menu File, ch n New Project Trong h p tho i New Project, ch n Visual C# Projects trong khung Project Type v ch n Class Library trong khung Templates. G vo DBCustomAction trong Name v nh n OK. Trong menu Project, ch n Add New Item Trong h p tho i Add New Item, ch n Installer Class. G vo DBCustomAction trong Name. b. T o m t i t ng Data Connection: Trong Server Explorer, ch n Data Connections, nh p ph I chu t v ch n Add Connection Trong h p tho i Data Link Properties, nh p vo Server name, user name v password. Trong database, g vo master v nh d u ch n Allows saving password Ko Connection v a t o v th n vo ph n thi t k c a DBCustomAction.cs t o i t ng sqlConnection1 c. T o file text ch a cu l nh SQL t o Database: Trong Solution Explorer, ch n project DBCustomAction. Trong menu Project, ch n Add New Item Trong h p tho i Add New Item, ch n Text File. G vo sql.txt trong Name (ph i g ch th ng) G n i dung sau vo file sql.txt: CREATE TABLE [dbo].[Employees] ( [Name] [char] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [Rsvp] [int] NULL , [Requests] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY]; ALTER TABLE [dbo].[Employees] WITH NOCHECK ADD CONSTRAINT [PK_Employees] PRIMARY KEY CLUSTERED

Created by THI NG C DUY MSDN based-written.

79 4/12/2007

( [Name] ) ON [PRIMARY]; Trong Solution Explorer, ch n sql.txt. Trong c a s Properties, t gi tr cho thu c tnh BuildAction l Embedded Resource d. Thm code vo installer class c file text: Trong Solution Explorer, ch n project DBCustomAction.cs. Trong menu View, ch n Code Thm vo cu l nh sau vo ph n u c a module: using System.IO; using System.Reflection; Thm o n code sau vo class: private string GetSql(string name) { try { //Get the current assembly Assembly Asm= Assembly.GetExecutingAssembly(); //Resources are named using a qualified name Stream Strm =Asm.GetManifestResourceStream(Asm.GetName().Name + "." + name); //Read the contents of the embedded file StreamReader reader=new StreamReader(Strm); return reader.ReadToEnd(); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show("In GetSQL: " + ex.Message ); throw ex; } } private void ExecuteSql(string DatabaseName,string sql) { System.Data.SqlClient.SqlCommand Command= new System.Data.SqlClient.SqlCommand(sql, sqlConnection1); Command.Connection.Open(); Command.Connection.ChangeDatabase(DatabaseN ame); try { Command.ExecuteNonQuery(); } finally { //Finally, block are a great way to ensure that the //connection is always closed Command.Connection.Close(); }

Created by THI NG C DUY MSDN based-written.

80 4/12/2007

} protected void AddDBTable(string strDBName) { try { //create the database ExecuteSql("master","CREATE DATABASE " + strDBName); //create the tables ExecuteSql(strDBName,GetSql("sql.txt")); } catch (Exception ex) { //report any errors and abort System.Windows.Forms.MessageBox.Show("In exception handler: " + ex.Message); throw ex; } } public override void Install(System.Collections.IDictionary stateSaver ) { base.Install(stateSaver); AddDBTable(this.Context.Parameters["dbname"]); } Trong menu Project, ch n Add Reference.., ch n System.Windows.Forms.dll, nh n Select v nh n OK. Trong menu Build, ch n Build DBCustomAction. e. T o m t d n tri n khai: Trong menu File, ch n Add Project New Project Trong h p tho i Add Project, ch n Setup and Deployment Projects trong khung Project Type v ch n Web Setup Project trong Templates. G vo DBCustomAction Installer trong Name. Trong c a s Properties, g vo DB Installer cho thu c tnh ProductName. Trong File System Editor, ch n th m c Web Application Folder. Trong menu Action, ch n Add Project Output Trong h p tho i Add Project Output Group, ch n primary output cho project DBCustomAction f. T o m t custom installation dialog: Ch n project DBCustomAction Installer trong Solution Explorer. Trong menu View, ch n Editor User Interface Trong User Interface Editor, ch n node Start ngay d i node Install. Trong menu Action, ch n Add Dialog Trong h p tho i Add Dialog, ch n dialog Textboxes (A) Trong menu Action, ch n Move Up, l p l i cho t i khi Textboxes (A) ng tr c node Installation Folder Trong c a s Properties, ch n thu c tnh BannerText v g vo Specfy Database Name.

Created by THI NG C DUY MSDN based-written.

81 4/12/2007

Ch n thu c tnh BodyText v g vo: This dialog allows you to specify the name of the database to be created on the database server. Ch n thu c tnh Edit1Label v g vo Name of DB: Ch n thu c tnh Edit1Property v g vo CUSTOMTEXTA1. t gi tr false cho cc thu c tnh Edit2Visible, Edit3Visible v Edit4Visible. g. T o Custom Action: Ch n project DBCustomAction Installer trong Solution Explorer. Trong menu View, ch n Editor Custom Actions Trong Custom Action Editor, ch n node Install. Trong menu Action, ch n Add Custom Action Trong h p tho i Select item in project, nh p p th m c Web Application Folder Ch n Primary output from DBCustomAction(Active) Trong c a s Properties, ch n thu c tnh CustomActionData v g vo /dbname=[CUSTOMTEXTA1] Trong menu Build, ch n Build DBCustomActionInstaller. h. Install ng d ng vo chnh my c a b n: Ch n project DBCustomAction Installer trong Solution Explorer. Trong menu Project, ch n Install. i. Tri n khai ng d ng m t my khc: Trong Windows Explorer, tm t i th m c c a project v tm file ci t Copy file DBCustomAction Installer.msi v cc file, th m c con khc vo m t my khc Khi copy xong, ch y file Setup.exe my v a c chp vo Uninstall ng d ng: M Control Panel Add/Remove Programs Trong h p tho i Add/Remove Programs, ch n DBCustomAction Installer v click Remove. ( Uninstall trong chnh my c a b n, trong menu Project, ch n Uninstall)

j.

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &

CC PHNG PHP LU TR TR NG THI. N i dung: - T ng quan v cc phng php lu tr tr ng thi trong ASP.NET. - ASP.NET Application. - Managing Application State. - Managing Session State. - ViewState. - Cch c u hnh th trong file web.config. Created by THI NG C DUY MSDN based-written. 82 4/12/2007

-

C u hnh web server ch y trn nhi u server (p ng yu c u c a nhi u client truy c p cng lc).

I.

T ng qut v cc phng php lu tr tr ng thi trong Web: ........................................................... I.1 Cc tu ch n pha Client:......................................................................................................... I.1 Cc tu ch n pha server: ........................................................................................................ II. ASP.NET Application:...................................................................................................................... II.1 ASP.NET Application l g? ....................................................................................................... II.1 T o m t Application: ............................................................................................................... II.1 Th i gian s ng c a m t Application: ......................................................................................... II.1 Cc ch v lu ng (thread): ................................................................................................... III. Managing Application State: ........................................................................................................ III.1 Application State:.................................................................................................................... III.1 S d ng:................................................................................................................................ IV. Managing Session State: ............................................................................................................. IV.1 Xc nh m t session: ............................................................................................................. IV.1 Lu tr Session State:............................................................................................................. IV.1 S d ng:................................................................................................................................ V. Managing Client-side Cookies:........................................................................................................ VI. ViewState: ................................................................................................................................ VI.1 Khi ni m: ............................................................................................................................ VI.1 S d ng:............................................................................................................................... VI.1 Cc h n ch c a ViewState:.................................................................................................... VI.1 Lm tng hi u su t khi s d ng ViewState:.............................................................................. VI.1 Disabling ViewState: .............................................................................................................. VII. C u hnh tag trong file web.config:...................................................................... VII.1 Khi ni m: ............................................................................................................................ VII.1 S d ng:............................................................................................................................... VIII. Cch c u hnh cho web server ch y trn nhi u server: ................................................................

T ng qut v cc phng php lu tr tr ng thi trong Web: - Ta c n lu tr cc thng tin c trong trang web do ng i s d ng cung c p s l trong m t s tr ng h p c n thi t. ASP.NET cung c p r t nhi u phng php lu tr data trong qu trnh ho t ng c a trang web. Vi c ch n l a phng php no l tu thu c vo ng d ng web c a ta v nn d a vo m t s tiu ch nh gi sau: + S l ng thng tin c n lu tr nhi u hay t? + Cc client c ch p nh n cc cookies (c th chi m ch trong b nh c a h ) khng? + Ng i pht tri n trang web mu n lu thng tin client hay server? + Hi u su t c a trang web m b n mong i (t c ). ASP.NET cung c p r t nhi u tu ch n cho vi c lu tr data cc pha client v server. - Cc tu ch n pha Client: + S d ng cc thu c tnh ViewState. + S d ng cc tr ng n (hidden field). + S d ng Cookies. Created by THI NG C DUY MSDN based-written. 83 4/12/2007

9

-

+ S d ng QueryString Cc tu ch n pha server: + Application State + Session state + Database Sau y l cc m t v cc tu ch n trn.9.1 Cc tu ch n pha Client:

Vi c lu tr data pha client khng lm t n nhi u ti nguyn c a server. Do lu tr client nn s khng c an ton v m t data nhng hi u su t c a server s cao do cc yu c u v ti nguyn s khng qu cao. Tuy nhin do ph i g i data v client lu nn s b h n ch v s l ng data m ta g i i. View State: M i trang web trong ASP.NET t n t i s n m t thu c tnh l ViewState dng ch a cc gi tr c a m t trang. Ta c th dng ViewState lu m t gi tr no c a m t trang. u i m: + Khng yu c u ti nguyn c a server. + Ci t n gi n. + T ng ghi nh tr ng thi trang v control. + Lm tng kh nng b o m t do d li u c ghi c m ho. Khuy t i m: + Hi u su t th p, b i v cc gi tr c lu gi trong chnh trang ang s d ng n do n u data l n s lm cho trang b ch m khi hi n th hay trao i data v i server. + B o m t. ViewState c lu tr trong cc field n trong trang. M c d c bi n i nh d ng (m ho) nhng n v n c th b ph ho i.

-

-

Hidden fields: Ta c th lu tr thng tin trn cc tr ng n c a trang web. Nn s d ng cc tr ng n khi c nhu c u lu cc thng tin nh nhng c t n su t thay i nhi u t pha client. ASP.NET cung c p control HtmlInputHiden cho cc tr ng ny. Khi s d ng cc tr ng n th ph i dng phng th c Post chuy n d li u u i m: + Khng yu c u ti nguyn t server. + c h tr r ng ri t h u h t cc trnh duy t (browser) v client. + Ci t n gi n. Khuy t i m: + Tnh b o m t. Cc tr ng n c th b nhn th y khi view source c a trang. + B h n ch v c u trc lu tr . Khng th lu tr m t c u trc trong cc field n tr khi ta ph i ghp l i thnh m t chu i v c c ch phn tch ng c tr l i thch h p. 84 4/12/2007

-

-

Created by THI NG C DUY MSDN based-written.

+ Hi u su t. Gi ng nh View State do lu tr cng v i trang. Cookies: Cookies c dng lu tr cc thng tin nh th ng xuyn thay i pha client. Cc thng tin ny s c truy n cng v i yu c u v cho server. u i m: + Khng yu c u ti nguyn pha server. Cookies c lu tr pha client v c c t server khi yu c u g i i + n gi n. Cookies c c u trc d a trn text v cc kho l cc text. + C th c u hnh th i gian t n t i. Cookies c th m t khi phin trnh duy t k t thc hay c th t n t i trn my client. Khuy t i m: + H n ch v kch th c. H u h t cc trnh duy t h n ch kch th c c a Cookies l 4096 bytes, nhng cng c m t s trnh duy t m i h tr 8192 bytes. + Client c th c u hnh khng cho php cc cookies ghi xu ng my c a h . Do ta khng th s d ng Cookie. + Tnh b o m t. Cookies l m c tiu ph ho i. Ng i s d ng c th ch nh s a cookies trn my c a h d n n cc kh nng v b o m t v cc ng d ng d a trn cookies c th b h ng. More Introduction to Web Application Security + Tnh lu di. Cc cookies th ng c dng cho t ng user, n i dung s khc nhau i v i cc user. Trong h u h t tr ng h p vi c nh danh (identification) s c ch tr ng hn l nh quy n (authentication), do ch lu tr m t s thng tin nh user name, acount name ho c GUID xc nh cc user.

-

Query String: Query String l cc thng tin c n i vo sau chu i URL c a trang web. Ta c th dng query string submit d li u v m t trang no thng qua URL. Query String cung c p cch th c n gi n truy n thng tin gi a cc trang v i nhau nhng khng c cc thng tin ny t m t trang c submit cho server. u i m: + Khng yu c u ti nguyn server. + c h tr r ng ri. + Ci t n gi n. ASP.NET cung c p cc phng th c h tr y lm vi c v i Query String: HttpRequest.Params. Khuy t i m: + Tnh b o m t. Thng tin trong query string hi n tr c ti p ln giao di n c a trnh duy t (i km v i a ch URL). + H n ch v kch th c. H u h t trnh duy t ch h tr t i a 255 k t cho URL. Dng khi Ta c n lu tr thng tin c gi l i cho chnh trang . 85 4/12/2007

-

-

Tu ch n View State

Created by THI NG C DUY MSDN based-written.

Hidden fields

Cookies Query string

Ta c n lu tr thng tin c kch th c nh cho m t trang g i l i cho trang hay cho cc trang khc v v n b o m t khng c ch . Ta ch c th dng hidden field cho cc trang c submit v server. Ta c n lu tr cc thng tin nh trn my client v v n b o m t khng c ch nhi u. Dng khi chuy n m t l ng nh thng tin gi a cc trang v v n b o m t khng c quan tm.

9.2

Cc tu ch n pha server:

Vi c lu tr thng tin pha server lm tng kh nng b o m t hn pha server nhng n s yu c u nhi u hn ti nguyn c a server c th d n t i nhi u v n khi thng tin lu tr l n. ASP.NET cung c p m t vi cc tu ch n lu tr data trn server. Application State: ASP.NET cung c p cc phng th c lu tr thng tin ton c c cho ton ng d ng thng qua l p HttpApplicationState. Cc bi n Application state l ton c c cho ng d ng ASP.NET. Ta c th lu tr cc thng tin ln cc bi n Application state sau x l b i server. D li u trong cc bi n Application State c chia s cho nhi u session v th ng khng i. Ta c n ph i c cc chuy n i ki u thch h p tr c khi s d ng cc gi tr trong cc bi n application. u i m: + D ci t. + C ph m vi ton c c. Cc bi n Application c truy su t trong t t c cc trang c a ng d ng do gi tr lu tr trong cc bi n application l duy nh t cho ton ng d ng tri v i vi c lu tr thng tin trong session state hay trong cc trang ring l . Khuy t i m: + Ph m vi ton c c. Tnh ton c c i khi cng l m t b t l i. Cc bi n lu tr trn application state ch ton c c cho process m application ang ch y v m i process c a application s c m t gi tr khc nhau. Do ta khng th d a trn application state lu tr cc gi tr duy nh t hay c p nh t trn cc ng d ng c c u hnh ch y trn nhi u server hay nhi u process khc nhau. + Tnh b n v ng. Cc thng tin lu tr s b m t n u web server s l n b ngng ch y hay tr c tr c. + Yu c u ti nguyn. Application state dng b nh c a server nn c kh nng nh h ng n hi u su t c a server cng nh c a ng d ng. Vi c thi t k v ci t t t cc bi n Application c th lm tng hi u su t c a ng d ng. V d , t nh ng th th ng s d ng, nh ng d li u tng i tnh trong application state c th lm tng hi u su t v lm gi m m t l ng l n 86 4/12/2007

-

-

-

Created by THI NG C DUY MSDN based-written.

yu c u truy su t database. Tuy nhin c m t s cn b ng v hi u su t. Khi thng tin lu tr nhi u th s lm gi m hi u su t c a server v ng d ng. B nh s d ng cho cc bi n Application s khng c gi i phng cho t i khi no m n i dung bi n thay i ho c b xo. Do cc bi n application ch nn dng khi thao tc v i cc bi n d li u nh v t khi thay i. Session State: ASP.NET cung c p cc phng th c thao tc v i cc bi n m c phin (session) thng qua l p HttpSessionState. D li u cc bi n ny ch c ngha cho t ng session. D li u lu tr trong session c qu n l b i server, c th i gian s ng ng n v ch i di n cho t ng session ring bi t. u i m: + D dng ci t. + Cc event c a session r rng. Ta c th b t cc event c a session s l trong chng trnh. + Tnh lu b n. D li u t trn cc bi n session c th v n t n t i sau khi IIS restart hay ti n trnh hi n t i restart b i n u data c lu tr m t ti n trnh khc (ta c n c u hnh l i file web.config c c ch c nng trn). Nhng khi client ng trnh duy t th d li u s m t. + Kh nng ch y trn nhi u c u hnh khc nhau c a web server. C th dng trn web server c u hnh trn nhi u server hay nhi u ti n trnh. + Session state lm vi c v i cc trnh duy t khng h tr cookies, m c d session state lm vi c d a trn cookies ( lu tr v truy n session ID gi a server v client). Khuy t i m: + Hi u su t. Cc bi n session state t n t i trong b nh cho n khi chng b thay th ho c xo b v do c th lm gi m hi u su t c a server. Cc bi n session state ch a nh ng kh i data l n c th nh h ng n qu trnh load d li u c a server.

-

-

Database: Trong m t s tr ng h p, ta c nhu c u dng cc h tr database qu n l cc state trn trang web. Thng th ng vi c h tr database th ng c dng k t h p v i cc cookies v cc session state. M t vi web site thng m i i n t s d ng c s d li u quan h lu tr cc thng tin v cc l do: + Tnh b o m t (Security) + Tnh c nhn (Personalization) + Tnh nh t qun (consistency) + Tnh khai thc d li u (Data mining) Tnh b o m t (Security): Client cung c p tn account v password ng nh p vo m t site trn trang logon. Sau site s tm ki m trn database xem cilent c c php ng nh p vo site hay khng?. N u tm th y user trn database web site s t o m t cookies ch a m t s nh danh duy nh t cho user trn my c a client. Site s gn quy n truy c p cho client. Tnh c nhn (Personalization): v i cc thng tin b o m t, site c a chng ta c th phn bi t t ng user b ng cch c cc cookies trn my client. 87 4/12/2007

Created by THI NG C DUY MSDN based-written.

Thng th ng cc thng tin trong database ch a cc ph n lin quan n client ( c xc nh b i m t s nh danh duy nh t ID). M i lin h gi a ID trn cookies v i database c coi nh l tnh cc nhn. Site c a ta c th nghin c u cc thng tin m client th ng quan tm thng qua ID trn cookies v t cc thng tin vo trang web khi user tr l i l n n a. Tnh nh t qun (consistency): n u b n t o m t web site thng m i, b n c n theo di cc l n giao d ch c a hng ho v d ch v trn site c a b n. Cc thng tin c th c lu m t cch ng tin c y xu ng database v c tham chi u t i cc user ID tng ng. Cc thng tin ny c th c dng xc nh xem vi c mua bn hon t t hay cha, hay l nn hu b . Cc thng tin ny cng c th c dng bo cho ng i s d ng bi t tr ng thi c a cc n hng c a h trn site c a ta. Tnh khai thc d li u (data mining): cc thng tin v site c a ta, v cc khch hng vi ng thm, cc l n giao d ch s n ph m c th c lu m t cch ng tin c y vo database. Phng pht tri n kinh doanh c th dng cc thng tin thu th p c t site quy t nh vi c s n xu t cc s n ph m cho nm t i hay chnh sch phn ph i cho ph h p. Phng kinh doanh c th tm hi u cc thng tin v ng i s d ng trn site c a ta. Cc k s v cc phng h tr c th mu n xem cc l n giao d ch v ghi ch cc khu v c no m s n ph m c a ta c th c pht tri n (c s l ng s n ph m tiu th m nh). H u h t cc h qu n tr c s d li u quan h nh MS SQL u h tr m t t p cc cng c khai thc cc d li u . - u i m: + Tnh b o m t. Vi c truy c p database thng th ng r t an ton, yu c u r t kh c khe v vi c th m nh nh quy n. + Dung l ng. Ta c th lu cc thng tin tu xu ng database. + S n nh. Cc thng tin c th lu tr bao lu l do ta quy t nh. + Ton v n d li u v an ton. Cc database bao g m r t nhi u y u t qu n l t t d li u bao g m cc trigger, cc rng bu t ton v n, B ng cch lu gi cc thng tin v cc giao d ch trn database, ta c th d dng ph c h i t cc l i d dng. + Kh nng truy c p. D li u c lu tr trn database c th c truy su t b ng cc cng c h tr s n. + H tr r ng ri. - Khuy t i m: + Ph c t p. S d ng cc h tr v database s ph c t p hn v vi c c u hnh ph n c ng v ph n m m + Hi u su t. Vi c xy d ng m t CSDL khng t t c th d n n v s v n . Vi c qu nhi u truy v n trn database c th lm b t l i n hi u su t c a server. Tu ch n Application state Dng khi Lu tr cc thng tin t khi thay i, cc thng tin ton c c c dng b i nhi u user, v n b o m t khng c quan tm. Khng nn lu tr m t l ng l n thng tin ln cc bi n Application. Lu tr cc thng tin c th i gian s ng ng n ring bi t cho t ng phin v v n b o m t c quan tm. 88 4/12/2007

Session state

Created by THI NG C DUY MSDN based-written.

Database support

Khng lu tr d li u l n trn cc bi n session. Ch l cc i t ng session state c t o v c duy tr trong su t th i gian c a m i session trong ng d ng. Trong cc ng d ng c nhi u user, i u ny c th chi m ng k ti nguyn c a server. Lu tr m t l ng l n thng tin, qu n l cc giao tc (transaction), cc thng tin c n lu khi application v session restart. Vi c khai thc d li u em l i l i ch v b o m t l m t v n .

Link : mshelp://MS.VSCC/MS.MSDNVS/vbcon/html/vbconChoosingServerStateOption.htm

10-

ASP.NET Application: l t ng quan v cc tu ch n ta c th dng lu tr tr ng thi c a d li u trn trang web. Sau y ta ch tm hi u v cc tu ch n cho server. Tr c khi tm hi u chi ti t v cc cch th c lu tr thng tin c a ng i s d ng khi h thao tc v i cc trang web c a m t site no ta c n tm hi u cc khi ni m nh: ASP.NET Application l g? T o m t application. Th i gian s ng c a m t Application. Cc ch v lu ng (thread)10.1 ASP.NET Application l g?

-

ASP.NET nh ngha m t Application nh l m t t p cc files, cc pages, cc handlers, cc modules, v cc executable code c th c g i ch y trong ph m vi c a m t th m c o (Virtual Directories) trn m t Web application Server.10.2 T o m t Application:

Khi ta t o m t ng d ng Web b ng ASP.NET l ta b t u t o m t Application. File global.asax: - Dng s l cc event c a i t ng Application, v Session nh: Start, End - File ny c t th m c g c c a Web Application trong IIS. Global.asax m r ng t HttpApplication v c ASP.NET phn tch v d ch t ng vo .NET framework l n u tin khi c b t k yu c u truy su t no t client. - File Global.asax c c u hnh c bi t ngn khng cho client truy su t tr c ti p n i dung file hay download hay view source c a file . - Mi tr ng so n th o ASP.NET h tr s n cc event c a cc i t ng trn ta ch c n m code c a file Global.asax l c th vi t code cho cc event . 10.3 Th i gian s ng c a m t Application:

-

M t application c t o l n u tin khi c m t yu c u c g i t i server. Khi event u tin l Application_Start, cc instances c a HttpApplication c t o s l cc yu c u n khi instance cu i cng c s l xong th pht event Application_End. 89 4/12/2007

Created by THI NG C DUY MSDN based-written.

-

Ch cc phng th c Init v Dispose c a i t ng HttpApplication c g i m i khi c m t yu c u client.10.4 Cc ch v lu ng (thread):

N u ta s d ng cc object m c Application th c n ph i lu l ASP.NET s l cc yu c u ng th i do cc object Application c th c truy su t b i nhi u client, v t i m i th i i m m t s command c th c truy su t ng th i b i nhi u client i u ny nguy hi m n u command lin quan n vi c c p nh t d li u. V d khng nn vi t

Nn dng c ch lock v unlock c a object Application Nh v y s an ton hn v tr c khi thao tc update th bi n ny b kho v client khc khng th truy su t c, khi thao tc xong th bi n c m kho v cc client khc c th truy su t bnh th ng.

Tm l i: ASP.NET Application bao g m m i th trong m t th m c o c a web server. Th i gian s ng c a m t ASP.NET application b t u t s ki n Application_Start v k t thc b ng s ki n Application_End. Vi c truy c p vo m t object m c Application ph i m b o an ton cho vi c truy su t a lu ng (multithread). Link : http://localhost/quickstart/aspplus/ Managing Application State: Vi c qu n l tr ng thi c a trang web bao g m cc m c:11.1 Application State:

11-

-

-

Cc bi n m c Application l cc bi n ton c c c a ra b i ASP.NET. Ta ph i lun lun quan tm n t m nh h ng c a vi c lu tr d li u ln cc bi n Application. B nh dng lu tr cc bi n Application. B nh c s d ng b i cc bi n ny s khng b gi i phng khi gi tr c a chng thay i hay c xo i. Do c n quan tm n vi c s d ng cc bi n Application, khng nn s d ng cc bi n c nhu c u b nh l n v d dng bi n lu tr m t recordset c kch th c 10MB. i v i cc tr ng h p ny nn s d ng Cache. Cc tc ng c a vi c truy c p v lu tr cc bi n Application ng th i trong mi tr ng a lu ng. Trong mi tr ng a lu ng (nhi u client truy su t trang web cng m t lc) ta ph i ch l d li u c th c yu c u truy su t ng th i cng m t lc, do khi l p trnh b n ph i m b o c l khng c s ng hay ch ng cho d li u gi a cc client v i nhau, ph i c c ch ng b ho d li u v i nhau. ASP.NET h tr 2 phng th c l : Lock v Unlock gi i quy t v n ny. 90 4/12/2007

Created by THI NG C DUY MSDN based-written.

-

-

-

-

Th i gian s ng c a Application cng nh h ng n cc thng tin lu trong cc bi n m c Application. ASP.NET application hay web server c th b h ng b t c lc no trong qu trnh ang ch y (b h ng , do web server ang c update, ...). Cc d li u lu tr trong cc bi n Application l khng b n v ng, d li u s b m t n u host ang qu n l n b hu (ngng ch y). N u mu n lu tr cc gi tr ny lu di ph i lu xu ng database hay cc thi t b lu tr khc. Khi ta restart IIS th cc gi tr trong bi n Application b m t i (n u ta ch y trang no c yu c u truy su t gi tr cc bi n ny s b l i) i u ny cng x y ra khi ta stop IIS v sau start l i IIS (trong qu trnh stop th gi tr v n truy su t c ch l i khi start tr l i) Cc bi n m c Application khng c chia s thng qua cc ng d ng web nh: m t web application ch y trn nhi u server, m t web application c s l b i nhi u ti n trnh trn m t server. Cc bi n ton c c m c Application ch ton c c trong ng c nh c a ti n trnh ang ch y ng d ng. Do ta khng th d a trn cc bi n ton c c m c ng d ng lu tr cc gi tr c tc d ng lm m c chung cho ton ng d ng nh: bi n m trn cc lo i ng d ng web trn. Khi c n s l v i cc d li u l n nn s d ng Cache s c hi u qu t t hn.11.2 S d ng:

Cc bi n Application c dng trong cc trang, cc l nh b t s ki n, file Global.asax C php Application["var"] = value; Var: tn bi n c n lu xu ng application. Value: gi tr cu bi n. V dApplication["Name"] = "Thanh";

M t Dng ghi gi tr cho m t bi n m c application. Gi tr c lu c th l chu i, s hay l m t l p ( i t ng) nhng i t ng ny ph i c thu c tnh serializable. Dng l y L y gi tr Var1 = Application[var2]; gi tr c a c am t Var1: tn bi n ch a m t bi n bi n m c m c application. gi tr l y c. Var2: tn bi n ch a application, gi tr c n l y. c n th c hi n m t s vi c p Ghi gi tr ln bi n Created by THI NG C DUY MSDN based-written. 91

string name; name = Application["Name"].ToString();

4/12/2007

ki u c n thi t. ASP.NET cung c p m t l p lm vi c v i cc bi n Application State: HttpApplicationState. L p ny bao g m cc phng th c v cc thu c tnh nh sau: Ki u d li u string[] (m ng chu i) Lo i Get M t Dng l y t t c cc tn bi n m c application c a m t trang. Ch l y cc key d a vo cc key ny ta s l y c gi tr . L y v m t i t ng application c a trang hi n t i. L y t ng s bi n ( i t ng) ang c lu trong Application. M c nh l 0. Dng l y v m t bi n ( i t ng) application v thi t l p gi tr cho bi n. Trong C# tng ng ton t [] V d HttpApplicationState app = Application; string[] arrAppKey = new string[app.Count]; arrAppKey = app.AllKeys; HttpApplicationState app; app = Application.Contents; string[] arrAppKey = new string[app.Count]; arrAppKey = app.AllKeys;

Thu c tnh AllKeys

Contents

HttpApplicationState

Get

Count

Int

Get

Item

HttpApplicationState

Get/set

Keys

KeysCollection

Get

StaticObjects

HttpStaticObjectsCol lection

get

string temp; //Get gi tr c a bi n Ho temp = Application["Ho"].ToString() ; //Let gi tr c a bi n Ho Application["Ho"] = "Pham"; L y v m t t p cc HttpApplicationState app = Application ; kho (tn bi n) c a i t ng Application int n; //khai bo bi n ch a t p hi n t i. Ph i tham chi u n namespace: cc key System.Collection NameObjectCollectionBase. s.Specialized KeysCollection keyCol; // l y t p cc key keyCol = app.Keys; // l y t ng s key hi n c n = keyCol.Count; for(int i=0;i0) Global.asax. { 4/12/2007

Created by THI NG C DUY MSDN based-written.

92

... } IsReadOnly Protected bool Get/set Xem t i : mshelp://MS.VSCC.200 3/MS.MSDNQTR.20 03APR.1033/cpref/ht ml/frlrfsystemcollecti onsspecializednameo bjectcollectionbasecla ssisreadonlytopic.htm

Phng th c Add

Tham s String name,object value Name: tn (kho) c a bi n ( i t ng) c thm vo t p h p. Value: gi tr c a bi n. Void

Ki u tr v Void

M t Thm m t bi n ( i t ng) vo t p h p application state hi n t i.

V d HttpApplicationState app Application; // ghi vo bi n Ho app.Add("Ho","Pham"); // ghi vo bi n Ten app.Add("Ten","Thanh");

Clear

Void

Xo b t t c cc bi n hi n c trong t p h p Application.

// t o i t ng Application HttpApplicationState app = Application; // xo b t t c cc bi n hi n c app.Clear();

Equals Get

Object obj Obj: i t ng c n so snh Int index Index: ch s c a bi n mu n l y. String name Name: tn bi n mu n l y. Ch s d ng m t trong 2 tham s trn

Bool object

GetEnume Void

IEnumerator

So snh i t ng hi n tai v i i t ng khc. Phng th c ny k th a t i t ng Object. Tr v m t bi n trong t p cc // l y i t ng Application HttpApplicationState app = bi n Application hi n t i. Ta c Application ; th a vo tn bi n hay ch s object myObj; c a bi n. // gn gi tr cho m t bi Ho app["Ho"] = "Pham"; // l y bi n Ho vo bi n myObj myObj = app.Get("Ho"); // xu t ra Response.Write(myObj.To String() + "
"); // ---- output : Pham Dng li t k t t c cc kho c a // l y i t ng Application 93 4/12/2007

Created by THI NG C DUY MSDN based-written.

rator

cc bi n trong t p h p Application. Ta khng th d a vo cc bi n nh n c thay i gi tr c a cc bi n tng ng trong t p Application. Ph i tham chi u n namespace:System.Collections.Speciali zed.

HttpApplicationState app = Application ; // bi n gi t p cc kho tr v IEnumerator iEnum; // kh i t o gi tr cho 2 bi l Ho v Ten app["Ho"] = "Pham"; app["Ten"] = "Thanh"; // l y cc kho c trong t h p iEnum = app.GetEnumerator(); while(iEnum.MoveNext()) Response.Write(iEn um.Current.ToString() + "
"); // ---- > output : Ho // Ten

GetHashC ode

Void

Int

GetKey

Int index String Index: Ch s c a bi n application state c n l y.

Tr v m bm (hash code) c a i t ng hi n t i. Xem thm : mshelp://MS.VSCC.2003/MS.MSD NQTR.2003APR.1033/cpref/htm l/frlrfsystemobjectclassgethashco detopic.htm Tr v tn c a bi n c lu trong t p h p Application State ng v i ch s c a bi n . Gi tr tr v khng ph i l gi tr c a bi n.

// l y i t ng Application HttpApplicationState app = Application ; string nameObj; // kh i t o gi tr cho 2 bi l Ho v Ten app["Ho"] = "Pham"; app["Ten"] = "Thanh"; for(int i=0 ; i output : Ho // Ten

GetObject Data

SerializationInf o info, StreamingConte xt context

Xem thm t i : mshelp://MS.VSCC.2003/MS.MSD NQTR.2003APR.1033/cpref/htm l/frlrfsystemcollectionsspecialize 94 4/12/2007

Created by THI NG C DUY MSDN based-written.

GetType

Void

Type

dnameobjectcollectionbaseclassg etobjectdatatopic.htm Tr v ki u d li u hi n t i c a i t ng Application state hi n hnh.

// l y i t ng Application HttpApplicationState app = Application ; // khai bo bi n ki u Type Type typeName; // kh i t o gi tr cho 2 bi n_u108 ? Ho v Ten app["Ho"] = "Pham"; app["Ten"] = "Thanh"; // l y ki u typeName = app.GetType(); Response.Write(typeName. ToString() + "
"); // ---- > output: System.Web.HttpApplicati onState

Lock

Void

Void

OnDeseria Object sender lization

Void

Remove

String name Name: tn c a bi n c n hu b RemoveAl Void l RemoveAt Int index Index: ch s c a bi n c n hu b Set String name, object value Name: tn c a bi n c n c p nh t gi tr . Value: gi tr m i c a bi n ToString Void

Void Void

Void

Kho vi c truy c p t i bi n hi n t i. S d ng khi c nhu c u c p nh t gi tr c a bi n. S d ng v i UnLock() Xem thm t i : mshelp://MS.VSCC.2003/MS.MSD NQTR.2003APR.1033/cpref/htm l/frlrfsystemcollectionsspecialize dnameobjectcollectionbaseclasso ndeserializationtopic.htm Hu b m t bi n kh i t p h p Application State thng qua tn bi n. Hu b t t c cc bi n hi n c trong t p h p Application State. Phng th c ny s g i phng th c Clear(). Hu b m t bi n kh i t p h p Application State thng qua ch s c a bi n. C p nh t l i gi tr c a m t bi n thng qua tn c a bi n.

Void

String

K th a t i t ng object. Tr v chu i i di n cho i t ng 95 4/12/2007

Created by THI NG C DUY MSDN based-written.

Unlock

Void

Void

hi n t i. Trong tr ng h p ny tr v ki u d li u c a i t ng Application State. Cho php truy c p tr l i bi n application state b kho b ng phng th c Lock()

// l y i t ng Application HttpApplicationState app = Application ; // kho l i c p nh t gi tr app.Lock(); // c p nh t app["Ho"] = "Pham"; app["Ten"] = "Thanh"; // m kho app.UnLock();

-

Ngoi ra cn c cc phng th c b t cc event c t o s n cho i t ng Application c nh ngha trong t p tin Gobal.asax.cs. Event Tham s

M t Event ny pht sinh System.Web.HttpApplicationFactory khi trang E: i t ng ki u System.EventArgs web c g i ch y l