Tải bản đầy đủ (.pdf) (276 trang)

BÀI GIẢNG môn lập TRÌNH WEB

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.78 MB, 276 trang )

Chương I

ASPNET Framework –
Bảo trì trạng thái ứng dụng

22/10/2012

1

Mục tiêu
• Học xong chương này sinh viên có thể:
– Hiểu khái niệm ASP.NET và .NET Framework.
– Biết sử dụng môi trường phát triển ứng dụng
Web Visual Studio .Net.
– Hiểu ý nghĩa và cách bảo trì trạng thái ứng
dụng
– Tạo được ứng dụng Web, lưu giữ và sử dụng
trạng thái của các đối tượng trong ứng dụng
bằng Cookies, Session và Profile

22/10/2012

2

1


Nội dung









ASP.NET và .NET Framework
Các điều khiển ASP.NET
Trang ASP.NET
Giới thiệu trạng thái ứng dụng
Sử dụng Cookies
Sử dụng Session
Sử dụng Profile

Bài 1. ASP.NET và .NET Framework
• Giới thiệu
• Thư viện lớp trong .Net Framework
• Môi trường thực thi ngôn ngữ chung

2


Giới thiệu
• ASP.NET là công nghệ nền tảng để xây
dựng ứng dụng web và dịch vụ web của
Microsoft.
• ASP.NET không phải là công nghệ xây
dựng ứng dụng web duy nhất.
• ASP.NET được tích hợp chặt chẽ với hệ
thống phần mềm của Microsoft, từ hệ điều
hành, web server… đến công cụ lập trình,

truy cập dữ liệu, bảo mật...

22/10/2012

5

Định nghĩa ASP.NET
• ASP.NET là một phần của .NET Framework
và bao gồm một số thành phần sau:
– Công cụ phát triển ứng dụng web Visual Studio
.NET
– Không gian tên System.Web.
– Các điều khiển Server and HTML.

22/10/2012
6

3


Ưu điểm của ASP.NET
• Phần thực thi của ứng dụng web được biên
dịch, do đó ứng dụng sẽ chạy nhanh hơn các
ngôn ngữ thông dịch khác
• Ứng dụng có thể được cập nhật liên tục mà
không cần khởi động lại web server
• Khả năng sử dụng .NET Framework là phần mở
rộng của Windows API
• Khả năng sử dụng cácngôn ngữ phổ biến Visual
Basic và ngôn ngữ mới Visual C#

• Khả năng sử dụng các điều khiển server để xây
dựng giao diện giống như các ứng dụng
Windows
22/10/2012

7

Ưu điểm của ASP.NET (tt)
• Khả năng tạo ra các điều khiển server mới
• Sử dụng cơ chế bảo mật có sẵn của hệ điều
hành Windows
• Khả năng truy cập dữ liệu bằng ADO.NET
• Khả năng hỗ trợ đầy đủ Extensible Markup
Language (XML), cascading style sheets
(CSS), và các chuẩn Internet khác
• Các tính năng caching trang web, bản địa
hóa nội dung được tích hợp sẵn
22/10/2012

8

4


Các thành phần của
ứng dụng web

• Ứng dụng web gồm 3 phần chính:
–Phần nội dung:
• Web form, trang HTML, hình ảnh, âm

thanh…

–Phần xử lý:
• Các tập tin thực thi, các đoạn script

–Phần thông tin cấu hình:
• Các tập tin cấu hình, tập tin CSS, cấu
hình web server
22/10/2012

9

Giới thiệu .NET Framework
• .NET Framework là nền tảng lập trình mới
của Microsoft để phát triển các ứng dụng
windows cũng như ứng dụng web
• .NET Framework gồm 2 phần chính:
– Thư viện các lớp cung cấp các hàm lập trình
cấp thấp (tương tự Windows API) cũng như cấp
cao để phát triển ứng dụng web (ASP.NET),
truy cập dữ liệu (ADO.NET), bảo mật…
– Phần lõi thực thi gọi là common language
runtime (CLR)
22/10/2012

10

5



Cách thực thi một ứng dụng .NET

22/10/2012

11

Thư viện lớp của .NET
• Thư viện lớp của .NET cung cấp khả năng
sử dụng các tính năng của CLR.
• Thư viện lớp của.NET được tổ chức theo
không gian lớp.
• Mỗi không gian lớp chứa các lớp có tính
năng liên quan với nhau

22/10/2012

12

6


Một số không gian tên của .NET
• Namespace: Là tên gọi một nhóm các lớp
đối tượng phục vụ cho một mục đích nào đó
• Ví dụ:
– System
– System.Data
– System.Web
– System.Web.UI.WebControls
– System.Web.UI.WebControls.WebParts

–…
22/10/2012

13

Một số không gian tên trong
ứng dụng Web
• System.Web:
– Gồm các đối tượng Application, Browser,
Cache, Cookies, Exeception, Request,
Response, Server và Trace.
– Sử dụng các lớp này trong hầu hết các tác vụ
lập trình Web. Các đối tượng Application định
nghĩa trong Global.asax được dựa trên lớp
Application

• .

GV.

14

7


Một số không gian tên trong
ứng dụng Web (tt)
• System.Web.SessionState
– Đối tượng Session.
– Sử dụng các lớp này để lưu trữ và khôi phục

các thông tin trạng thái chứa trong Session.

• System.Web.Services
– Đối tượng WebService.
– Sử dụng lớp này để tạo và sử dụng dịch vụ
Web.

GV.

15

Một số không gian tên trong
ứng dụng Web (tt)
• System.Web.UI
– Đối tượng Page và Control.
– Sử dụng các lớp này trong một Web form để
tạo và điều khiển giao diện người dùng. Web
forms được dựa trên lớp Page

• System.Web.UI.WebControls
– Tất cả các đối tượng server control.
– Sử dụng các lớp này trong các Web form.

GV.

16

8



Một số không gian tên trong
ứng dụng Web (tt)
• System.Web.UI.HTMLControls
– Tất cả các đối tượng HTML control.
– Sử dụng các lớp này trong Web forms.

• System.Web.Caching
– Đối tượng Cache.
– Sử dụng các lớp này để điều khiển quá trình
caching trên server để cải thiện tốc độ thực thi
ứng dụng

GV.

17

Một số không gian tên trong
ứng dụng Web (tt)
• System.Web.Mail
– Đối tượng MailMessage, MailAttachment, và đối
tượng SmtpMail.
– Sử dụng các lớp này để gửi các thông điệp mail
từ ứng dụng web.

• System.Web.Security
– Các đối tượng và modun Authentication.
– Sử dụng các lớp này để xác nhận người dùng
và cung cấp các cơ chế bảo mật trong ứng
dụng web.
GV.


18

9


Assembly
• Là các file dll trên đĩa cứng, lưu trữ các lớp
của .NET
– Ví dụ: tất cả các lớp trong .ASP.NET Framework
đều nằm trong Assembly System.web.dll.

• Trước khi sử dụng các lớp trong dll, cần tạo
một tham chiếu đến file dll này
– Right click lên thư mục Website trong cửa sổ
Solution Explorer, chọn Add Reference…

Môi trường thực thi ngôn ngữ chung
• Commom Language Runtime (CLR): chịu
trách nhiệm thực thi mã nguồn ứng dụng: mã
nguồn của ứng dụng .NET được biên dịch
thành ngôn ngữ đặc tả của Microsoft
(Microsoft intermediate language - MSIL) và
chứa trong tập tin gọi là assembly.
• Khi chạy ứng dụng, MSIL sẽ được biên dịch
sang mã máy máy bởi JITTER (just in time
compiler)
• Trong quá trình thực thi, CLR sẽ tự động
thực hiện các tác vụ quản lý bộ nhớ, kiểm tra
kiểu dữ liệu, và một số tác vụ khác cho ứng

dụng

10


Bài 2. Các điều khiển ASP.NET





Giới thiệu
Các điều khiển server
Các biến cố của các điều khiển
View State

Giới thiệu về các điều khiển
ASP.NET
• Là phần quan trọng nhất trong ASP.NET
Framework.
• Mỗi điều khiển ASP.NET là một lớp, khi thực
thi trên server sẽ được trả về dạng mã HTML
hiển thị nội dung trên trình duyệt.
• ASP.NET cung cấp rất nhiều điều khiển có
thể sử dụng trong xây dựng ứng dụng web
và tổ chức thành các nhóm dựa vào chức
năng và bản chất của điều khiển

11



Các điều khiển server
• Standard control: bao gồm các điều khiển
chuẩn như: Label, Button, TextBox…
• Validator Control: là các điều khiển được sử
dụng đề kiểm tra tính hợp lệ của dữ liệu
nhập trước khi gởi về server
• Rich Control: là những điều khiển như
FileUpload, Calendar…
• Data Control là các điều khiển cho phép thao
tác với cơ sở dữ liệu

Các điều khiển server (tt)
• Navigation Control: là những điều khiển cho
phép di chuyển giữa các trang trong website.
• Login control: Là các điều khiển về bảo mật
ứng dụng cho phép tạo các form đăng ký,
đăng nhập, thay đổi mật khẩu…
• HTML Control: cho phép chuyển các điều
khiển HTML thành các điều khiển có thể
thực thi trên server.

12


Các điều khiển server (tt)

View State
• View state của Web form là dữ liệu đươc ASP.NET
bảo toàn giữa các yêu cầu của trình duyệt

• ASP.NET lưu trữ các thông tin được đưa vào thuộc
tính ViewState của trang dưới dạng các field ẩn
trên trang .
• View state chỉ sử dụng được cho từng web form
• View State lưu trữ dữ liệu ngay trên trang à chỉ có
một số kiểu đối tượng có thể được lưu.
• Muốn lưu trữ các đối tượng phức tạp hơn trong
ViewState à chuyển đổi chúng thành các chuỗi.

13


View State (tt)
• ASP.NET mã hóa các dữ liệu nhập vào các
điều khiển thành các field ẩn được lưu trữ
trên trang. Nếu ta chọn View Source từ trình
duyệt, đoạn mã HTML của trường ẩn có
đoạn code sau:

GV.

27

View State (tt)
• Ví dụ
– Đoạn mã sau cho phép thêm văn bản
nhập từ một text box vào các ô của một
bảng trên trang Web.
• Lưu trữ các chuỗi trong hàm Button1_Click
• Tạo ra các ô và dòng trong bảng từ các chuỗi

này, như trình bày trong thủ tục
Page_PreRender

14


View State (tt)

GV.

29

Bài 3. Trang ASP.NET






Tạo ứng dụng web trong môi trường VS.Net
Biên dịch động
Trang code-behind
Biến cố mức trang
Thuộc tính Page.IsPosBack

15


Tạo ứng dụng web
• Khởi động VisualStudio 2008

• File, New, Web Site

22/10/2012

31

Tạo ứng dụng web

22/10/2012

32

16


Thêm Trang ASP.NET
Vào Web Site

22/10/2012

33

Thêm Trang ASP.NET
Vào Web Site

22/10/2012

34

17



Chọn trang web làm trang
mặc định

22/10/2012

35

Biên dịch

22/10/2012

36

18


Chạy thử trang web

22/10/2012

37

Trang code-behind
• Khi một website được tạo, mặc định ứng
dụng sẽ tạo ra một tập tin Default.aspx và
một tập tin Default.aspx.cs
– Tập tin Default.aspx: cho phép thiết kế các thành
phần giao diện trên Web Form

– Tập tin Default.aspx.cs: là một class kết hợp với
tập tin Default.aspx, cho phép viết code một
cách độc lập tương tự như ứng dụng Windows
Form, thay vì phải viết code trong thẻ runat=”sever”/> </script>

19


Chỉ dẫn của tập tin aspx

22/10/2012

39

Chỉ dẫn của tập tin aspx

22/10/2012

40

20


Chỉ dẫn của tập tin aspx
• Cú pháp:
– <%@ [Directive] [Attribute = Value] %>

• Một số chỉ dẫn thường sử dụng
– @Page: chỉ định các ứng xử của trang








CodeFile
Inherits
EnableSessionState
EnableViewState
ErrorPage: url đến trang web khác khi xảy ra lỗi
ValidateRequest: cho phép nhập các giá trị đặc
biệt

– @Import: chỉ định không gian tên cần import
vào trang web
22/10/2012

41

Các sự kiện trong ứng dụng web






Tập tin ứng dụng Global.asax
Sự kiện mức ứng dụng

Sự kiện mức phiên làm việc
Sự kiện mức trang
Sự kiện các điều khiển server

21


Tập tin ứng dụng Global.asax
• Thêm vào ứng dụng tập tin Global.asax
– Từ menu Website, chọn Add New Item, Global
Application Class
– Tên mặc định của tập tin: Global.asax

• Tập tin Global.asax dùng để:
– Khai báo và khởi tạo giá trị cho các biến
Application, Session.
– Viết xử lý cho các sự kiện của 2 đối tượng
Application và Session.

GV.

43

Sự kiện mức ứng dụng
• Sử dụng sự kiện mức ứng dụng để khởi tạo
các đối tượng chung cho tất cả người dùng
của ứng dụng web.
– Application_Start: Chỉ xảy ra một lần đầu tiên
khi bất kỳ trang nào trong ứng dụng được gọi.
– Application_End: Xảy ra khi dừng hoạt động

của WebServer.
– Application_Error: Xảy ra khi có lỗi phát sinh
trong quá trình thực thi.
– Application_BeginRequest: xảy ra mỗi khi trình
duyệt di chuyển đến một trang của ứng dụng
– Application_EndRequest – Kết thúc xử lý yêu
cầu của trình duyệt
GV.

44

22


Sự kiện mức phiên làm việc
• Sử dụng sự kiện mức phiên làm việc để
khởi tạo các đối tượng được sử dụng chung
trong phạm vi một phiên làm việc.
– Session_Start: Xảy ra khi có một người dùng
mới yêu cầu đến bất kỳ trang aspx của ứng
dụng, một SessionID sẽ được tạo ra và được
sử dụng để quản lý người dùng trong quá trình
làm việc với ứng dụng.
– Session_End: Xảy ra khi phiên làm việc không
có gởi yêu cầu hoặc làm tươi trang aspx của
ứng dụng web trong một khoảng thời gian (mặc
định là 20 phút).
GV.

45


Sự kiện mức trang
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

PreInit
Init
InitComplete
PreLoad
Load
LoadComplete
PreRender
PreRenderComplete
SaveStateComplete
Unload

23


Sự kiện mức trang (tt)
• Page_Init: Khởi tạo trang: các điều khiển
được khởi tạo và gán giá trị từ view state

• Page_Load: Nạp trang: các điều khiển đã
được khởi tạo, gán giá trị và sẵn sàng để sử
dụng trong mã lệnh
• Page_PreRender: xảy ra khi trang Web
chuẩn bị được trả về cho Client.

GV.

47

Sự kiện mức trang (tt)
• Page_Unload: Gỡ trang: web form sắp bị
hủy
• Page_Disposed: Hủy trang: web form đã bị
hủy.
• Page_Error: Trang bị lỗi: có lỗi chưa được
xử lý xảy ra

GV.

48

24


Sự kiện mức trang
• Các sự kiện chính thường được sử dụng
của web form là Page_Load và Page_Error
• Có thể kết hợp thuộc tính IsPostBack với sự
kiện Page_Load để khởi tạo các đối tượng

cho web form trong lần đầu tiên (tương tự
như Session_Start nhưng ở mức trang)

GV.

49

Thuộc tính IsPostBack
• Là thuộc tính chỉ đọc của lớp Page, kiểu
luận lý
• Cho biết trạng thái của trang web khi được
load: Load lần đầu -> IsPostBack = false
• Ví dụ:
private void Page_Load(object sender,
System.EventArgs e) {
if( ! IsPostBack) {
// init …
}
}
GV.

50

25


×