Professional Documents
Culture Documents
1
Chương 3: Lập trình Web Form
Nội dung
• Tổng quan lập trình ứng dụng Web
• Giới thiệu về ASP.NET
• Các thành phần của một ứng dụng
ASP.NET
• Cơ chế xử lý một ứng dụng ASP.NET
3
Tổng quan lập trình UD Web
• Ứng dụng Web là hệ thống phức tạp
Web Application
Giao diện
Tên của host hay địa chỉ IP Đường dẫn đến tập tin yêu cầu
HTTP - HTML
http://www.abcdef.com/beginner/default.aspx
<html>
<head>
<head>
Trang chủ + <body>
ASP.NET …
</body>
</html>
Client – Server Side
• Client Side
– HTML(5), JavaScript, CSS(3).
– Khi web browser yêu cầu một trang web
(dùng kỹ thuật client – side), web server tìm và
trả trang web về cho client, client nhận kết
quả và hiển thị lên màn hình.
• Server Side
– PHP, ASP.NET, JSP, Python, CGI,…
– Mã lệnh ở server được biên dịch và thi hành,
kết quả tự động chuyển sang
HTML/JavaScript/CSS và trả về cho client.
Giới thiệu ASP.NET
• ASP.NET
– Active Server Page .NET
– Công nghệ của Microsoft cho phép xây dựng
các ứng dụng web động
– Dựa trên nền tảng .NET Framework
– Được phát triển lên từ ASP
9
Các loại ASP.NET
• Web Pages:
– Dùng trong phát triển nhanh website dễ dàng kết nối
cơ sở dữ liệu và sử dụng cú pháp Razor
• Web Forms:
– Mô hình thông dụng sử dụng các control để thể hiện
trang web
• MVC:
– Xây dựng trên mô hình MVC giúp phân tách rõ ràng
các thành phần trong ứng dụng web và quản lý hoàn
toàn HTML MVC
10
So sánh giữa ASP.NET với PHP
Tính năng PHP ASP.NET
Biên dịch trước mã nguồn
Hướng đối tượng
Ngôn ngữ hỗ trợ PHP C#, VB.NET
Thể hiện tùy thuộc vào trình
duyệt
Tốc độ
Miễn phí
Công cụ Eclipse, NetBeans, Microsoft Visual
... Studio
Môi trường Linux, Unix, Mac Windows
OS X, Windows
11
So sánh giữa ASP.NET với PHP
Tốc độ
12
http://www.wrensoft.com/zoom/benchmarks.html
Cấu trúc 1 ứng dụng web
13
Cấu trúc 1 ứng dụng web
14
Cơ chế thi hành ASP.NET
• Mô hình thực thi trang ASP.NET
Request ASPX
Engine
Respond
HTML
Page DLL
Cơ chế thi hành ASP.NET
• Mô hình thực thi trang ASP.NET
Cơ chế thi hành ASP.NET (2)
Request
(Yêu cầu) Server tìm Xử lý tập tin
tập tin aspx
Error Có Thay
Biên dịch lại
đổi?
18
Xây dựng Web Form
• Phần mở rộng là aspx
• Chỉ dẫn @Page xác định ngôn ngữ sử dụng
Server Control
HTML
Web Control
Control
System.Web.UI.HtmlControls System.Web.UI.WebControls
Server Control
• HTML control
<form id="form1" runat="server">
<input type="text" id="Text1" runat="server" />
<button type="submit" id="Button1" runat="server" >Add</button>
</form>
• Web Control
<form id="form1" runat="server">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" />
</form>
Cách thức Server control làm việc
<body>
<form id="form1" runat="server"> Khai báo biến
<div>
<% string hello = "Hello ASP.NET World!"; %>
Page.Init
Control events Page.Load
Change Events Textbox1.ServerChange
Page is disposed
Xử lý sự kiện Page
• Page_Init: sau sự kiện này thì page được khởi tạo, sự kiện chịu
trách nhiệm cho tất cả hoạt động khởi tạo
• Page_Load: xuất hiện tự động mỗi khi form được load, có thể
khởi tạo giá trị mặc định cho các server control ở đây
• Changed event: sau sự kiện Page_Load, các sự kiện đặc biệt
của control được kích hoạt
• Mặc định chỉ có sự kiện Click submit form cho server, sự kiện
changed được lưu trữ và xử lý khi form được post về server.
• Click event: dẫn đến việc post form và sau đó các sự kiện
changed được thực hiện
• Page_Unload: là sự kiện cuối cùng trước khi page bị loại bỏ,
sự kiện này phát sinh khi user qua page khác. Tại thời điểm
này không thể đọc giá trị của control do control không còn
tồn tại
Một số thuộc tính của page
• Thuộc tính IsPostBack:
– False: Page load lần đầu
– True: Page load lại
• Thuộc tính SmartNavigation:
– True: giữ nguyên vị trí đang đọc khi reload
– False (mặc định): về vị trí đầu
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack) {
// thi hành phần khởi tạo
}
else {
// làm điều gì đó cho mỗi lần request
}
}
Postback Form
<form id="form1" runat="server">
<asp:ListBox ID="listbox1" runat="server" Width="160px"></asp:ListBox>
<br /><input type="submit" id="Submit" runat="server" />
</form>
37
THE END