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 |
Chia sẻ: thanhle95 | Lượt xem: 509 | 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