ASP.NET Server Technologies
 Web Pages (with Razor syntax):
 Mô hình lập trình đơn giản nhất, và trang web sẽ là tập hợp
nhiều trang web
 Sử dụng mã server-side ngay bên trong các trang web
 Không có vòng đời của trang như Web Forms, nó chỉ đơn giản là
xử lý mã lệnh từ trên xuống dưới
 MVC (Model View Controller):
 Phát triển ứng dụng theo mô hình test-driven, và áp dụng mẫu
lập trình SoC (Separation of Concerns).
 Không cung cấp các điều khiển được đóng gói sẵn như serverside control của ASP.NET Web Froms, thay vào đó bạn bạn phải
hiểu biết sâu hơn về HTML và giao thức HTTP.
                
              
                                            
                                
            
                       
            
                 43 trang
43 trang | 
Chia sẻ: thanhle95 | Lượt xem: 674 | Lượt tải: 1 
              
            Bạn đang xem trước 20 trang tài liệu Bài giảng Lập trình web - Chương 2: Ngôn ngữ kịch bản phía server ASP.NET - Chu Thị Hường, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LẬP TRÌNH WEB
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
NGÔN NGỮ KỊCH BẢN PHÍA SERVER ASP.NET
1
 Một số ngôn ngữ kịch bản phía server
 Tổng quan về ngôn ngữ ASP.NET
 Nền tảng của ASP.NET
NỘI DUNG 
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
 PHP (Hypertext Preprocessor):
 PHP là một kịch bản trên phía trình chủ, có các
phiên bản trên hệ điều hành window và Linux.
 Có thể dễ dàng nhúng vào trang HTML.
PHP thường kết hợp với hệ quản trị CSDL
MỘT SỐ NGÔN NGỮ KỊCH BẢN 
PHÍA SERVER
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
MySQL phù hợp với các doanh nghiệp vừa và
nhỏ.
 PHP (Hypertext Preprocessor):
 JSP là một kịch bản trên trình chủ với nền
tảng dựa trên ngôn ngữ lập trình Java.
 ASP.Net Framework dựa trên nền tảng ngôn
MỘT SỐ NGÔN NGỮ KỊCH BẢN 
PHÍA SERVER
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
ngữ lập trình .NET.
 Classic ASP - Active Server Pages
 ASP (Active Server Page) được Microsoft giới
thiệu vào năm 1996 và trở lên thông dụng từ
ngày đó
ASP là công nghệ cho phép các kịch bản trong
TỔNG QUAN VỀ NGÔN NGỮ 
ASP.NET
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
trang web được thực hiện bởi một máy chủ
Internet.
 Các trang có đuôi mở rộng là .asp.
 ASP.NET:
 ASP.NET là một thế hệ mới của ASP. Nó không
tương thích với Classis ASP, nhưng ASP.NET
có thể bao gồm ASP.
Tăng hiệu quả lập trình thông qua các đặc điểm:
TỔNG QUAN VỀ NGÔN NGỮ 
ASP.NET
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
 Dễ dàng lập trình
 Lựa chọn ngôn ngữ đơn giản
 Hỗ trợ công cụ tuyệt vời
 Nhờ nền tảng vững vàng và tài nguyên phong phú của .Net
Framework với hơn 5000 class (lớp) bao gồm XML, Data access,
File upload
 ASP.NET:
 Tăng khả năng thực hiện và tính ổn định
 Dễ dàng triển khai
 ASP.Net cho phép ta tự động cập nhật các thành
phần đã biên dịch mà không cần phải khởi động lại
các Web Server.
TỔNG QUAN VỀ NGÔN NGỮ 
ASP.NET
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
 ASP.NET Razor
 Razor là một cú pháp đánh dấu mới và đơn giản để
nhúng code server vào các trang web ASP.NET,
giống như ASP cổ điển.
 Razor có khả năng của ASP.NET truyền thống,
nhưng là dễ học và sử dụng hơn.
 ASP.NET Server Technologies
 Web Pages (with Razor syntax):
 Mô hình lập trình đơn giản nhất, và trang web sẽ là tập hợp
nhiều trang web
 Sử dụng mã server-side ngay bên trong các trang web
 Không có vòng đời của trang như Web Forms, nó chỉ đơn giản là
TỔNG QUAN VỀ NGÔN NGỮ 
ASP.NET
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
xử lý mã lệnh từ trên xuống dưới
 MVC (Model View Controller):
 Phát triển ứng dụng theo mô hình test-driven, và áp dụng mẫu
lập trình SoC (Separation of Concerns).
 Không cung cấp các điều khiển được đóng gói sẵn như server-
side control của ASP.NET Web Froms, thay vào đó bạn bạn phải
hiểu biết sâu hơn về HTML và giao thức HTTP.
 ASP.NET Server Technologies
 Web Forms (traditional ASP.NET):
 Mô hình lập trình hướng sự kiện (event driven development)
 Cung cấp nhiều các server side controls, chúng đóng gói HTML, 
JavaScript và CSS bên trong.
 Cung cấp tính năng data binding nên bạn có thể dễ dàng phát 
TỔNG QUAN VỀ NGÔN NGỮ 
ASP.NET
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
triển các ứng dụng nặng về việc truy xuất và hiển thị dữ liệu. 
 Dễ dàng quản lý trạng thái của các control nhờ vào cơ chế post-
back và view state
 Nhược điểm: Cấu trúc của nó khiến nó khó có thể được áp dụng 
unit-test hoàn toàn và tách biệt lập trình viên khỏi kiến thức về 
CSS, HTML và mô hình lập trình state-less (không lưu giữ trạng 
thái của các điều khiển) truyền thống của lập trình web.
 ASP.NET Development Tools: 
 WebMatrix
 Visual Web Developer
 Visual Studio
 ASP.NET File Extensions
TỔNG QUAN VỀ NGÔN NGỮ 
ASP.NET
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
 Classic ASP files có đuôi mở rộng .asp
 ASP.NET files có đuôi mở rộng .aspx
 ASP.NET files với Razor C# syntax có đuôi mở rộng
.cshtml
 ASP.NET files với Razor VB syntax có đuôi mở rộng
.vbhtml
.NET FRAMEWORK
 .NET Framework là
cơ sở hạ tầng bằng
việc cung cấp cho
người dùng cách
thức sử dụng đa
ngôn ngữ lập.
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
 ASP.NET là một
phần khóa của
.NET Framework,
và được sử dụng
để tạo server - side
scripts cho các ứng
dụng web.
BIÊN DỊCH TRANG ASPX
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
MÔI TRƯỜNG PHÁT TRIỂN 
ỨNG DỤNG
 Web Page Designing
 Cung cấp bộ thiết kế theo
hiệu ứng “What you see is
What you get”
Rễ cấu hình
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
 Tự động biên dịch các file
 Môi trường phát triển web
linh hoạt.
 Nhiều đối tượng và
phương thức mới.
MÔI TRƯỜNG PHÁT TRIỂN 
ỨNG DỤNG
 Các công cụ hỗ trợ
Code Editor
Toolbox
Class views
Object Browse
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
CSS styles
Frameset
MÔI TRƯỜNG PHÁT TRIỂN 
ỨNG DỤNG
 Các công cụ hỗ trợ
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
MÔI TRƯỜNG PHÁT TRIỂN 
ỨNG DỤNG
 Cấu hình ứng dụng: Trong Visual Studio 
chạy Web site trên một trong 3 cách sau:
 Trên chính máy tính của bạn (the local file 
system)
Một HTTP server chứa IIS và các thành phần 
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
có liên quan
 FTP site (a remote file server)
MÔI TRƯỜNG PHÁT TRIỂN 
ỨNG DỤNG
 Cấu hình ứng dụng với IIS (Internet Information
Services): IIS là một Web Server được phát triển
bởi Microsoft để tạo host cho các websites trên
một server đơn.
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
MÔI TRƯỜNG PHÁT TRIỂN 
ỨNG DỤNG
 Cấu hình ứng dụng với IIS (Internet
Information Services): IIS là một Web Server
được phát triển bởi Microsoft để tạo host cho
các websites trên một server đơn.
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
MÔI TRƯỜNG PHÁT TRIỂN 
ỨNG DỤNG
 Cấu hình ứng dụng với IIS:
+ Mở IIS: 
Start\Settings\Control
Panel \ Administratrive
tools\IIS
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
 Right click Default
Web site
+ Làm theo sự chỉ dẫn
 Chọn thư mục gốc
ứng dụng.
Chọn trang mặc định
Tạo thư mục ảo.
MÔI TRƯỜNG PHÁT TRIỂN 
ỨNG DỤNG
 Tạo ứng dụng:
 Tạo website
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
MÔI TRƯỜNG PHÁT TRIỂN 
ỨNG DỤNG
 Tạo ứng dụng:
 Default Project files:
 AssemblyInfo.cs: Là file chứa thông tin
về Assembly, Version, Commpany
name
 Projectname.vsdisco: Là file XML chứa
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
các đường link (URL) với XML Web
Service. Trang này không nhìn thấy
được trong Solution Explore
 Default.aspx: Chứa design interface và
client side code
 Default.aspx.cs: Chứa Server – side
code
MÔI TRƯỜNG PHÁT TRIỂN 
ỨNG DỤNG
 Tạo ứng dụng:
 Optional Project files:
 Global.asax : Là file được tạo ở thư
mục gốc của Project, chứa các sự kiện
của ứng dụng web. File không được
tạo khi trong ứng dụng không chứa các
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
handlers về Application và Session
 Web.Config : Là file XML chứa các
thông tin cần thiết cho Web Server, như
Authentication, Security,
 StyleSheet.css : là file cascading style
sheet, cung cấp thông tin về các style
cho web pages
MÔI TRƯỜNG PHÁT TRIỂN 
ỨNG DỤNG
 Tạo web pages:
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
MÔI TRƯỜNG PHÁT TRIỂN 
ỨNG DỤNG
 Triển khai ứng dụng (Puslish Web Site):
 Biên dịch ứng dụng và copy 
website đến một thư mục.
 Các tập tin code behide được
biên dịch thành file .dll
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
 Thao tác: 
 Right click , chọn Puslish Web site
 Chọn thư mục sẽ chứa website 
publish đến
 ASP.NET Web Page Code Model:
 Một trang Web bao gồm hai phần:
 MarkUp Code: Phần layout 
 Programming code: Điều khiển sự tương 
tác của người sử dụng và một số sự kiện
NỀN TẢNG CỦA ASP.NET
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
 Web Page model ra làm hai dạng mô
hình:
 Single File Page
 Code Behind Page 
 ASP.NET Web Page Code Model:
 Single File Page Model:
 Ưu điểm:
 Dễ bảo trì khi MarkUp code và Programming trên cùng
một file.
NỀN TẢNG CỦA ASP.NET
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
 Dễ triển khai
 Dễ đổi tên
 Nhược điểm:
 Single file page không được tạo trực tiếp từ VS IDE
 Có nhiều hạn chế trong việc hỗ trợ Coding
 Các Event Handler không được tự động tạo khi
double click trên các điều khiển sự kiện.
 ASP.NET Web Page Code Model:
 Code Behind Page Model:
 MarkUp file có đuôi mở rộng .aspx chứa các markUp code.
 Class file là một file Code Behind chứa logic lập trình, có
đuôi mở rộng .aspx.cs (hoặc .aspx.vb,).
NỀN TẢNG CỦA ASP.NET
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
 Class “Page” : Mỗi trang web tạo ra được dẫn xuất từ 
lớp Page thuộc namespace "System.Web.UI”:
 Thuộc tính: Page.Title = "Login"
NỀN TẢNG CỦA ASP.NET
Thuộc tính Mô tả
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
ID Chỉ định hoặc truy xuất đối tượng (thể hiện) của lớp
Page. Định danh mặc định là ‘_Page’
Title Chỉ định hoặc truy xuất tiêu đề của trang.
Server Truy xuất đến thể hiện của lớp Server (Lớp
HttpServerUtility)
 Class “Page” : Mỗi trang web tạo ra được dẫn xuất từ 
lớp Page thuộc namespace "System.Web.UI”:
 Thuộc tính: Page.Title = "Login"
NỀN TẢNG CỦA ASP.NET
Thuộc tính Mô tả
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
Session Truy xuất đến thể hiện của lớp Session
Controls Truy xuất đến thể hiện của lớp ControlCollection cho
bất kỳ điều khiển server nào.
ErrorPage Chỉ định hoặc truy xuất đến địa chỉ trang thông báo lối
khi có ngoại lệ xuất hiện trên trang.
 Class “Page” :
 Methods: Cách sử dụng thuộc tính như sau:
IF (Page.HasControls())
{ Response.Write (“Wellcome“);}
NỀN TẢNG CỦA ASP.NET
Thuộc tính Mô tả
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
HasControls Kiểm tra xem có tồn tại điều khiển Server control hay không.
LoadControl Load một thể hiện của lớp Control.
GetValidators Trả về một tập các đối tượng Validation được chỉ định trong
nhóm Validation.
MapPath Trả về đường dẫn mà ánh xạ đến đường dẫn ảo
Validate Chỉ dẫn các điều khiển hợp lệ tới thông tin hợp lệ được gán
cho chúng.
 Partial Class trong Code Behind Model : File Code 
Behind tự động tạo Partial Class. Từ khóa Partial chỉ định 
lớp này không chứa đầy đủ các thành phần mà nó được kế 
thừa từ lớp Page. 
NỀN TẢNG CỦA ASP.NET
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
 Partial Class trong Code Behind Model : File Code 
Behind tự động tạo Partial Class. Từ khóa Partial chỉ định 
lớp này không chứa đầy đủ các thành phần mà nó được kế 
thừa từ lớp Page. 
NỀN TẢNG CỦA ASP.NET
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
NỀN TẢNG CỦA ASP.NET
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
 Các chỉ dẫn (Directives): Các chỉ dẫn là các câu lệnh
mô tả ứng dụng ASP.NET được biên dịch như thế nào.
Các chỉ dẫn được bao trong cặp và thuộc file .aspx.
NỀN TẢNG CỦA ASP.NET
Chỉ dẫn Mô tả Ví dụ
@Page Định nghĩa các thuộc tính cho Web 
page
<%@ Page Language="C#"
Title=“My web Page" %>
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
@Import Import một không gian miền vào trang. 
Cho phép sử dụng tấ cả các Classes và 
interfaces của không gian miền này. 
<%@ Import
Namespace="System.Data
" %>
@Assembly Liên kết đến một Assemply cho trang 
hoặc điều khiển nào đó.
<%@ Assembly
Name=“MyAssembly" %>
@Master Định nghĩa các thuộc tính của trang 
Master.
<%@ Master
Language="C#" %>
@Reference Tham chiếu đến một trang khác. <%@ Reference
Page="~/Home.aspx" %>
 Các chỉ dẫn (Directives):
 Chỉ dẫn Page:
NỀN TẢNG CỦA ASP.NET
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
 Các chỉ dẫn (Directives):
 Chỉ dẫn Chỉ dẫn @Import: Là chỉ dẫn cho phép Include vào
trang web các chức năng khác nhau được khai báo trong một
namespace khác.
” %>
Ví dụ: 
NỀN TẢNG CỦA ASP.NET
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
 Điều khiển sự kiện trong Web Pages:
NỀN TẢNG CỦA ASP.NET
 Sự kiện (Event) là một
hành động được nổ trong
khi ứng dụng đang chạy.
 Mỗi sự kiện được điều
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
khiển bởi một khối code
được gọi là Event Handler.
 ASP.NET là một mô hình
lập trình sự kiện bởi vì mọi
thứ xuất hiện trên trang
web là sự đáp lại của một
số sự kiện.
 Điều khiển sự kiện trong Web Pages:
NỀN TẢNG CỦA ASP.NET
 Automatic Event Handling:
Mỗi một Web page có một
vòng đời, mỗi bước trong
vòng đời xuất hiện một sự
kiện. Các sự kiện được xử
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
lý tự động bởi các Event
Handler tương ứng.
 Init
 Load
 PreRender
 UnLoad
 Điều khiển sự kiện trong Web Pages:
NỀN TẢNG CỦA ASP.NET
 Page_Load là sự kiện
được kích nổ bất cứ khi
nào Web Page được
Request. Khi một người
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
dùng Request một trang
Web thì các biến và các
điều khiển trong trang
được khởi tạo và sau đó
trang đó được load lên.
 POSTBACK
NỀN TẢNG CỦA ASP.NET
 Trong tiến trình xử lý PostBack là thông tin được submit
từ Browse đến Server.
 Khi người dùng tương tác với Web Page bằng cách phát
sinh một sự kiện thì trang đó được gửi quay trở lại
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
Server. Server xử lý code hiện tại trong các event
handlers và sau đó trang này được tạo lại. Như vậy trang
này lại trải qua một vòng đời mới với các sự kiện Init() và
Load ()
 Thuộc tính IsPostBack của đối tượng Page:
NỀN TẢNG CỦA ASP.NET
 Thuộc tính IsPostBack dùng để kiểm tra Web Page được
Request lần đầu tiên hay là kết quả của một PostBack.
Nếu trang đó được Request lần đầu tiên thì thuộc tính
IsPostBack nhận giá trị false. Nếu trang đó được submit
quay trở lại từ Server thì thuộc tính IsPostBack nhận giá
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
trị True.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
txtFullName.Focus();
ShipDate.Text = Convert.ToString(DateTime.Now);
...
}
}
THẢO LUẬN – CÂU HỎI
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
 Thực hành các ví dụ
 Tiếp tục thiết kế giao diện cho bài tập lớn.
 Tạo một Project cho bài tập lớn được
phân công.
BÀI TẬP
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT