CH
ƯƠ NG I: Ề Ệ Ớ I THI U V GI Ậ L P TRÌNH ASP.NET
Lý thuyết : 3 tiết Thực hành : 6 tiết
Các components Web Application
Các components Web Application
ụ
Web App là 1 lo i ng d ng client/server.
ạ ứ ạ
ậ
i 1 máy client truy c p vào i 1 máy server. Trong 1 app thì client
ế ố ớ
ượ
c k t n i v i nhau thong qua
Trong app, user t ạ 1 app t và server đ Internet(WAN)/ Intranet(LAN)
ệ
Trong 1 Web App, User làm vi c thông qua
ạ
i 1 máy client. Web
ệ ứ
ụ
1 Web Browser t ấ browser cung c p cho user 1 giao di n ng d ng. (Internet Explore, Mozila …)
Các components Web Application
ạ
ề
ằ
ể
ủ
ớ
ượ
ọ
ạ ả c g i là IIS
App này ch y trên máy server b ng các đi u ố khi n (controls) c a web server software. Đ i v i ASP.Net App, máy server ph i ch y trên ủ Web Server c a Microsoft, đ (internet information service)
ầ
ế
ư
ặ
H u h t Web App, máy server l u Database System trên Microsoft SQL ho c Microsoft Access.
Các components Web Application
ệ
ử ụ
ậ
ượ
ợ
ỗ
ồ ị ượ
ứ
ọ
Giao di n mà user s d ng 1 web App c bao g m t p h p các Web pages đ ệ hi n th trên Web Browser. M i trang web c g i là 1 web form ch a HTML page đ tags
Web browser và web server trao đ i ổ
ử ụ
ớ
ứ
ề
ằ thông tin v i nhau b ng cách s d ng ữ ệ giao th c truy n d li u HTTP protocol.
Static Web Pages (Web tĩnh)
Note
Static Web Pages (Web tĩnh)
ố Static web page là 1 tài li u HTML c
ề ộ
ệ ứ ở ấ ỳ ờ b t k th i
ị ể
ự
d nh v n i dung/ hình th c đi m nào khi user th c thi static web page đó.
Các HTML file đ
ầ
ấ ử ở ạ
ượ ư
c l u trên đĩa và g i tr l
i cho
ượ ư c l u trên web server, khi 1 web browser yêu c u 2 trang static web page thì web server l y thông tin đã đ Broweser (.htm/.html)
ệ
Web Broswer(trình duy t Web )
ầ
ừ
Web browser yêu c u 1 trang t ử ớ
ượ
ầ
ờ
i server 1 l
web server c
ứ
ọ
ỉ
ằ ọ ồ ủ
ả
i yêu c u đ b ng cách g i t g i là HTTP Request. Http Request bao ị g m m i th : tên file HTML, đ a ch Internet c a c browser và web server.
ớ
ế
ằ
ỉ ủ
ị
ị
ề Users giao ti p v i web browser b ng nhi u cách, 1 trong các cách là đánh đ a ch c a ỉ Web page (URL) lên thanh đ a ch (Address)
ệ
Web Broswer(trình duy t Web )
ẽ
ử
ằ
ả ạ ả ờ ượ i đ
i Http Request ọ c g i là Http
Web browser s đáp tr l b ng cách g i câu tr l Response thông qua Web Browser.
Dynamic Web Pages (Web đ ng)ộ
ồ
Dynamic Web Pages: bao g m nhi u
ể
ể
ỗ
ề ị
ộ
ờ trang mà vào m i th i đi m hi n th thì ổ n i dung luôn thay đ i.
Dynamic Web Pages: là Web Form
ư
ứ
Server Controls nh : ư
nh ng ch a các Tables, Textboxes, Buttons …
Dynamic Web Pages (Web đ ng)ộ
Note
Dynamic Web Pages (Web đ ng)ộ
ử
Khi b t đ u Browser g i 1 Http request
ỉ
ị
ồ
ử c s
ậ
ừ
ượ
c yêu
ậ ắ ằ
ượ
ế
Dynamic Web. IIS l c đ n ASP.Net,
ự
ớ form. Khi IIS nh n đ ẽ ử ừ c g i t ậ ậ ượ
ậ
ầ
ắ ầ ượ ớ ớ i t i IIS g m đ a ch trang đang đ t ụ d ng, cùng v i các thông tin mà user nh p vào t ị ầ c u thì IIS s xác đ nh ch c r ng thông ạ ử i g i tin đ ượ thông tin nh n đ ả ASP.Net nh n qu n lý và th c thi yêu c u nh n đ
c.
Dynamic Web Pages (Web đ ng)ộ
ữ
ể
t gi a Static Web và Dynamic
ệ Đ phân bi ự
ậ
ượ
ử ớ
ừ
ạ Web, IIS d a vào lo i file mà nó nh n ặ c (.html/.htm ho c .aspx/ .asp) đ ASP.Net g i t
Thông tin t
i Server, sau
ử
ử ạ i
ở ạ
ị ộ
ể
khi đã x lý xong Web server g i l d ng Http thông tin cho Web Browser Response và hi n th n i dung lên trang.
Dynamic Web Pages (Web đ ng)ộ
ầ ọ
ớ
ể ắ Khi user click vào 1 control nào đó đ b t ượ c đ u 1 Http request thì quá trình này đ g i là “posting back to server”, quá trình ộ này liên quan t
i thu c tính “postback”
ủ
ạ
Các tr ng thái c a ASP.Net
ủ
ạ
Các tr ng thái c a ASP.Net
ệ
ạ
ạ
State (tr ng thái) là tình tr ng hi n hành
ộ
ủ
ế
ữ ệ
ệ
ờ
c a các properties (thu c tính), ượ ư c l u variables(bi n), hay các d li u đ ả ư ủ ạ l i trong 1 App c a 1 user. App ph i l u ỗ ậ ữ tr riêng cho m i user đang truy c p App ể vào đúng th i đi m hi n hành.
Http là satateless Protocol. Http ko l u ư
gi
ữ ượ đ
c thông tin.
ủ
ạ
Các tr ng thái c a ASP.Net
ố ượ
ệ ư
ữ ng ASP.Net cho vi c l u tr
ủ ộ ị
ư ụ ứ ữ ổ
Có 2 đ i t State: View state object: l u giá tr thu c tính c a các controls mà ng d ng thay đ i gi a các phép ủ th c thi c a các App.
ự
Session state object: khi 1 user b t đ u 1
ắ ầ
ạ ứ
ử ừ ượ c g i t
ế ợ ả ạ
ằ ở ạ ượ ị session thì ASP.Net t o 1 session state ch a 1 ớ i sessionID. SessionID này đ server t ể ớ browser và tr l i server đ server k t h p v i ả ạ browser b ng session đã t o. Session ph i ệ ự c kh i t o giá tr , có hi u l c cho 1 user đ
ủ
ạ
Các tr ng thái c a ASP.Net
ự
ả ượ
ị ị
Application state object: khi 1 app b t đ u ắ ầ ở ắ ầ th c thi, thì application state b t đ u kh i ế ậ ạ c thi t o. Appliacation state ph i đ t l p ọ giá tr . Giá tr này có hi u l c cho m i user trong app cho t
ớ ệ ự ế i thi app k thúc.
Ớ
Ệ
GI
Ề I THI U V ASP.NET
ASP.NET (Active Server Pages .NET)
ộ
ấ
ự
ậ
ượ
th c ch t .NET là m t Framework ASP.NET là m t "ộ khung" l p trình đ
ự
ộ
ử ụ
ộ
ượ ụ ể ạ
ủ
ứ
ụ
c ữ ự xây d ng trên b th c thi ngôn ng Common Language chung (CLR Runtime) và đ c s d ng trên m t máy ụ ch ph c v đ t o ra các ng d ng Web m nh.ạ
Ớ
Ệ
GI
Ề I THI U V ASP.NET
ộ ậ
ữ
ợ
ậ
ệ
ủ
ể
ủ
ề ấ
ự
ạ
ả ơ ở ạ ầ ụ ị
NET Framework là m t t p h p nh ng giao di n l p trình và là tâm đi m c a n n t ng .NET c a Microsoft. Nó cung ể c p c s h t ng đ xây d ng và ch y các d ch v Web.
Visual Studio.Net Visual Studio.Net Visual Studio.Net Visual Studio.Net
.NET .NET .NET .NET .NET Building .NET Building .NET Building .NET Building .NET .NET .NET .NET Enterprise Enterprise Enterprise Enterprise Block Services Block Services Block Services Block Services Framework Framework Framework Framework Sevices Sevices Sevices Sevices Operating system on services, desktops and Operating system on services, desktops and Operating system on services, desktops and Operating system on services, desktops and devices devices devices devices
Ớ
Ệ
GI
Ề I THI U V ASP.NET
ồ
ộ
ố Net Framework bao g m m t s
ệ
ồ
component hi n hành, bao g m:
1. Các ngôn ng l p trình chính th c
ữ ậ
ố
ữ ị ả ộ ứ C#, ư VB.Net, Managed C++ và J#, gi ng nh Jscript, .NET là m t ngôn ng k ch b n
ộ ố ư ệ ớ ọ 2. M t s th vi n l p có liên h v i nhau g i
ệ ớ là Framework Class Library (FCL)
Ớ
Ệ
GI
Ề I THI U V ASP.NET
.NET Framework
Web services Web services Web services Web services
Windows Forms Windows Forms Windows Forms Windows Forms
Web Forms Web Forms Web Forms Web Forms
Data and XML Class Data and XML Class Data and XML Class Data and XML Class (ADO.NET, SQL, XSLT, Xpath, XML,etc) (ADO.NET, SQL, XSLT, Xpath, XML,etc) (ADO.NET, SQL, XSLT, Xpath, XML,etc) (ADO.NET, SQL, XSLT, Xpath, XML,etc)
Framework Base Class Framework Base Class Framework Base Class Framework Base Class (IO, string net, security, threading, text, reflection, (IO, string net, security, threading, text, reflection, (IO, string net, security, threading, text, reflection, (IO, string net, security, threading, text, reflection, collection, ect) collection, ect) collection, ect) collection, ect) Common Language Runtime Common Language Runtime Common Language Runtime Common Language Runtime (debug, exception, type checking, NT compilers) (debug, exception, type checking, NT compilers) (debug, exception, type checking, NT compilers) (debug, exception, type checking, NT compilers)
Windows Platform Windows Platform Windows Platform Windows Platform
Ớ
Ệ
GI
Ề I THI U V ASP.NET
ộ ự
ữ
ể ầ ộ
3. Common Language Runtime (b th c thi ngôn ng chung CLR) là trung tâm đi m ủ c a .NET Framework. Đây là m t "h m máy" đ ch y các tính n ng c a .NET
ủ ể ạ ǎ
.NET Framework Class Library Support .NET Framework Class Library Support .NET Framework Class Library Support .NET Framework Class Library Support
COM Marshaler COM Marshaler COM Marshaler COM Marshaler
Thread Support Thread Support Thread Support Thread Support
Type Checker Type Checker Type Checker Type Checker
Exception Manager Exception Manager Exception Manager Exception Manager
Debug Engine Debug Engine Debug Engine Debug Engine
Security Engine Security Engine Security Engine Security Engine
Garbage Collector Garbage Collector Garbage Collector Garbage Collector
MSIL to Native MSIL to Native MSIL to Native MSIL to Native Compilers Compilers Compilers Compilers
Code Code Code Code Manager Manager Manager Manager Class Loader Class Loader Class Loader Class Loader
Ớ
Ệ
GI
Ề I THI U V ASP.NET
ủ
ứ
ọ
ể
ệ ợ
ớ
ộ
Các ch c năng c a CLR Ki m soát m i giao di n, cho phép các ể ữ ngôn ng có th tích h p v i nhau m t cách thông su t ố ả ấ
ộ
ớ
ự
ứ
ệ
ǎ
ả
ậ
Cung c p và qu n lý b nh "gom rác" (garbage collection) Th c hi n các ch c n ng b o m t
Ụ
ụ
ườ
ượ
ớ
c chia thành 3 l p phân
Ứ KI N TRÚC NG D NG WEB ng đ M t ng d ng th bi
ễ
t chính: ầ ầ ầ
ữ ệ
Ế ộ ứ ệ • T ng trình di n (Presentation Tier – FrontEnd) • T ng logic (Logical Tier – Middleware) • T ng d li u (Data Tier – BackEnd)
Ứ
Ụ
Ế
KI N TRÚC NG D NG WEB
ầ
ữ ệ
ệ ấ
ư
ữ
ậ ữ ệ
ậ
ể ệ
ể ơ ở ữ ệ ư
ể
ủ ầ
ữ ệ
ầ
T ng d li u (Data Tier) ả ầ T ng này đ m trách vi c l y, l u tr và ậ ậ c p nh t d li u, vì v y có th nhìn nh n ầ t ng này th hi n cho 1 c s d li u, và có th xem các store procedures nh là 1 ph n c a t ng d li u.
Ứ
Ụ
Ế
KI N TRÚC NG D NG WEB
ầ ế
T ng Logic (Bussiness Logical Tier) ầ
ệ ộ ụ ụ ệ ầ ầ
ữ ệ
M i t ng ch có th t
ể ươ ượ ầ ớ ỉ
ng tác đ ụ ầ ớ ầ ượ
ể ớ ầ
ầ M t vài ki n trúc chia t ng logic ra làm 2 t ng t : t ng nghi p v và t ng truy ph riêng bi ậ c p d li u (Business and Data Access Tiers). ỗ ầ c v i 1 t ng ỉ ễ ề ề li n k ngay sát nó. Ví d t ng trình di n ch ể ươ c v i t ng Business mà ng tác đ có th t không th v i t ng DataAccess.
Ế
Ứ
Ụ
KI N TRÚC NG D NG WEB ầ
ậ
ữ ệ ư ạ ộ ể ệ T ng Truy c p d li u (Data Access Tier): ữ ấ ầ Ho t đ ng nh giao di n đ truy xu t t ng d
Đ nh nghĩa các ph
ươ ứ ấ ữ ệ ư ng th c l y d li u, l u
ầ
ị ng th c t ng h p d li u
ế
ợ ơ ở ữ ệ ậ ậ ầ ầ li u. ệ ị ữ ữ ệ tr d li u ụ ệ T ng Nghi p v (Bussiness Tier) ữ ệ ứ ổ ươ Đ nh nghĩa các ph ế ự Không truy nh p tr c ti p đ n c s d li u. ữ ệ Các d li u đ u vào do t ng truy c p d li u
ữ ệ cung c p.ấ
Ứ
Ụ
Ế
KI N TRÚC NG D NG WEB
ễ
ườ ử ụ
ầ T ng trình di n (Presentation Tier) Ng ụ
ớ ầ ễ
ệ ượ
ầ
ươ
ủ
ệ
i s d ng giao tác v i t ng nghi p c ng
v thông qua t ng trình di n. Đây đ xem là màn hình giao di n c a ch trình.
Ề
Ầ CÁC PH N M M
Windows 2000 (Professional hay Server)
hay Windows XP (Home hay Professional).
.NET framework SDK (Software Development
ả ừ ạ Kit) t ố i xu ng t m ng Microsoft.
Cài đ t
ặ ơ
ứ ữ ạ
ư ầ ể ư ữ ế ệ ữ ở ộ li u thành công m t c s d ớ ươ (Database) v ng m nh t ng ng v i OLE DB compliant database system nh SQL Server ữ 2000 đ l u tr nh ng thông tin c n thi t.
ƯƠ
Ạ
Ệ
PH
NG PHÁP LÀM VI C TRÊN M NG
Ẫ
Ể
KI U M U RESQUEST/RESPONSE:
ộ ng pháp làm vi c theo ki u
ươ ệ ệ ồ ớ
Là toàn b ph Client /Server hi n dùng v i ASP. G m 4 b ị ể ướ c ị
ượ ả 1. Client (thông qua Internet Browser) xác đ nh v trí ủ c a Web Server qua URL (Universal Resource Locator) ẽ 2. Client s yêu c u đ c tham kh o 1 trang trong
ạ ủ ng là trang ch (home page)
ầ ườ m ng đó và th VD index.htm hay default.htm
ƯƠ
Ạ
Ệ
PH
NG PHÁP LÀM VI C TRÊN M NG
Ẫ Ể KI U M U RESQUEST/RESPONSE
ả ồ ơ ứ 3. Server đáp ng b ng cách hoàn tr h s mà
ằ Client đã yêu c u.ầ
ậ ượ ể 4. Client nh n đ ị c h s g i v và hi n th
ồ ơ ở ề ủ (display) trong browser c a mình.
ậ ượ L u ýư
: Khi Client đã nh n đ ẽ ế ứ
ồ ơ ậ ế ổ ệ
c h s thì quá trình trao đ i s k t thúc ngay l p t c. Sau đó, quan h Server và Client k t thúc (stateless model)
ƯƠ
Ạ
Ệ
PH
NG PHÁP LÀM VI C TRÊN M NG
Ể Ẫ
ớ
ư ể
ẫ ậ ứ ụ KI U M U EVENTDRIVEN Ki u m u eventdriven dùng v i ASP.NET cũng nh là ki u m u eventdriven mà ta ng dùng trong l p trình các ng d ng
ể ẫ ươ ự t ng t ườ ẫ v n th ớ v i Visual Basic ẫ ể ẽ
ầ
ế ạ ẵ
ứ ể
c t ờ ề ỗ
ờ Trong ki u m u này, Server s không ch ả client yêu c u tham kh o 1 trang nào đó trong ạ ố m ng mà Server đã b trí và k ho ch s n ể ố ướ ấ ả ọ t c m i tình hu ng đ có th đáp ng tr ế ị ị k p th i m i khi Client quy t đ nh làm 1 đi u gì đó.
ƯƠ
Ạ
Ệ
PH
NG PHÁP LÀM VI C TRÊN M NG
Ẫ Ể KI U M U EVENTDRIVEN
Vì v y ki u m u event – driven còn đ
ậ ẫ ể
ủ ể ệ ộ
ọ ượ c g i ể là 'response to your action‘, server có th phát ả ứ hi n ra các hành đ ng c a Client đ ph n ng cho thích h p.ợ
Ki u m u request/respon còn g i là
ể ẫ 'response
ầ ừ ờ to your request', ch yêu c u t ọ phía client
Ớ
Ề
Ệ
GI
I THI U V WEBSERVER
ầ ặ ộ
ủ ể ạ
ệ ử ụ ữ ệ ừ
Webserver là m t máy ch ho c m t ph n i các yêu phía trình duy t s d ng giao i d ng có th truy
ườ ủ ể
ộ ề m m trên máy mà nó có th đáp l ầ c u d li u t ứ th c HTTP cho phép ng ậ c p file HTML
ệ
ị ử ề ướ
Webserver biên d ch mã l nh thành trang c khi g i v cho client ặ Có th dùng IIS, ho c Tomcat đ th t l p
HTML tr ể ế ậ ể
webserver
Ớ
Ề
Ệ
GI
I THI U V WEBSERVER
ả
ấ
ộ ể
ọ ự
ự
ậ
Internet Information Services (IIS) ế ậ t l p webserver và qu n lý Cho phép thi ề ầ trang web. Ph n m m này cung c p các ể ị tùy ch n đ đ nh hình n i dung, quá ề ệ trình th c hi n và đi n khi n s truy c p trang web.
Ớ
Ề
Ệ
GI
I THI U V WEBSERVER
ộ ươ t l p Webserver cho m t ch ng trình
Start Setting Control Panel Double Click Administrative Tools Double Click m c Internet Information ụ
ế ậ Thi ụ ứ ng d ng ứơ B c 1 :
Service
Ớ
Ề
Ệ
GI
I THI U V WEBSERVER
Ớ
Ề
Ệ
GI
I THI U V WEBSERVER
ướ
ọ B c 2: Click ph i vào Default Web Site, ch n New,
Next
ả Virtual Directory
Ớ
Ề
Ệ
GI
I THI U V WEBSERVER
ướ
ư ụ ả ủ B c 3: Nh p tên th m c o (cũng chính là tên c a
Next
ậ website)
Ớ
Ề
Ệ
GI
I THI U V WEBSERVER
ọ
ứ
ậ
ư ụ Ch n th m c th t ch a website
Ớ
Ề
Ệ
GI
I THI U V WEBSERVER
ổ
ộ
ủ
Thay đ i thu c tính c a website: Click ph i trên tên c a website Ch n Properties
ặ
ị
ủ ả
Thi
t l p trang m c đ nh:
ọ ế ậ
ổ
ọ
Trong c a s properties ử Ch n tab document Trong khung enable default document Click Add đ nh p trang m c đ nh c a ủ ậ
ể ặ ị
website
Ớ
Ề
Ệ
GI
I THI U V WEBSERVER
ấ
ụ
ủ ứ C u trúc c a ng d ng Th m c App_Data
ư ụ ơ ứ ữ ệ ủ ứ
ụ ể ư ượ ữ ữ ệ
ụ
ư ụ
ơ
ử c s Là n i ch a d li u c a ng d ng, đ ụ d ng trong ASP.NET 2.0 đ l u tr d li u ộ ủ ứ ụ c c b c a ng d ng Th m c App_Code ứ ố ượ ớ ụ ệ ụ ng nghi p v (ví d : các
App_Code là n i ch a source code cho l p ệ ti n ích và các đ i t file .cs, .vb, và .jsl)
ấ
ụ
ượ
ủ ứ C u trúc c a ng d ng ụ ị
ậ b t k v trí nào cũng có
ở ấ ỳ ị ư ụ ấ ả ể ộ ộ ứ ị Trong m t ng d ng đ c biên d ch đ ng, ư ụ ASP.NET biên d ch code trong th m c App_code T t c các t p tin ấ th try xu t vào th m c App_code.
ụ
ấ
ủ ứ C u trúc c a ng d ng
T p tin Web.config
ậ
ẩ ạ
ự ầ ộ ậ ượ
ọ ặ
ừ ầ ấ
ụ ứ ư
ụ ế
ả Là m t t p tin d ng văn b n, d a trên chu n ề c chia thành nhi u ph n khác nhau, XML, đ g i là configuration section, cho phép đ t thông tin c u hình cho t ng ph n khác nhau ủ ng d ng nh Debugging, Profiling, c a ị Security, đ nh nghĩa các bi n toàn c c trong ậ t p tin XML
ấ
ụ
ọ
ủ ứ C u trúc c a ng d ng ế ậ ấ
ề ậ ể ư ộ
ườ ấ
ượ ữ ử ụ c s d ng th ậ c l u tr trong t p tin Web.config.
ữ t l p quan tr ng có th l u tr Có nhi u thi trong t p tin c u hình. Sau đây là m t vài ấ c u hình đ ng xuyên nh t, ượ ư đ Database connections Session States Error Handling Security
ụ
:
ủ ứ
ấ
C u trúc c a ng d ng
ậ
ấ
C u trúc t p tin Web.config
ấ
ụ
ứ ộ
ủ ứ C u trúc c a ng d ng S d ng tag
ụ ế ử ụ ể ị
đ đ nh nghĩa bi n toàn c c trong file XML Cú pháp:
Cú pháp truy xu t bi n:
ế ấ
varName=ConfigurationManager.AppSettings["v varName=ConfigurationManager.AppSettings["v ariableName "] ; ariableName "] ;
ụ
ấ
ủ ứ C u trúc c a ng d ng
T p tin Cascading Style Sheet(.css)
ậ
ể
ứ ệ ị
ạ ạ ễ ậ
ậ ệ ậ ế ể
ị ệ ị Ch a các đ nh d ng tài li u hi n th trên trình ượ ị duy t, các đ nh d ng đ c đ nh nghĩa trong t p ậ ả ằ tin này nh m d qu n lý, c p nh t và hi u ế ử ụ ỉ ch nh. S d ng tag đ liên k t đ n t p tin .css
rel="stylesheet" />
ấ
ụ
ậ
ủ ứ C u trúc c a ng d ng T p tin JavaScriptJscript(.js)
ậ ế
ượ ử ụ ế ể
ế ậ ử ụ c s d ng cho các ti n trình T p tin này đ phía client, s d ng tag