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 EVENT­DRIVEN  Ki u m u event­driven dùng v i ASP.NET cũng    nh   là  ki u  m u  event­driven  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 EVENT­DRIVEN

 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

 ch a thu c tính appSettings

ụ ế ử ụ ể ị

đ  đ 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 JavaScript­Jscript(.js)

ậ ế

ượ ử ụ ế ể

ế ậ ử ụ c  s   d ng  cho  các  ti n  trình  T p  tin  này  đ phía  client,  s   d ng  tag