TÀI LIỆU HƯỚNG DẪN GIẢNG DẠY
LẬP TRÌNH ỨNG DỤNG WEB
VỚI ASP.NET
GIỚI THIỆU
Thời lượng
45 lý thuyết.
45 thực hành.
Mục tiêu : Cung cấp một số kiến thức cơ bản
Thiết kế, xây dựng, phát triển ứng dụng web với asp.net.
Sử dụng thư viện jQuery.
Đánh giá : gồm 3 cột điểm
Chuyên cần : 10% (đi học đầy đủ).
Giữa kỳ : 30% (báo cáo đồ án tự chọn).
Cuối kỳ : 60% (thi thực hành).
Tài liệu tham khảo
Bài 1
TỔNG QUAN VỀ ASP.NET
1. Tổng quan về lập trình ứng dụng web
Ứng dụng web là một hệ thống phức tạp, dựa trên nhiều yếu tố: phần cứng,
phần mềm, giao thức, ngôn ngữ và thành phần giao diện. Các thành phần cơ bản của
ứng dụng web gồm: HTTP (giao thức trao đổi tài nguyên) và HTML (ngôn ngữ xây
dựng trang web).
1.1. HTTP và HTML
1.1.1. HTTP (Hypertext Transfer Protocol)
Là một giao thức cho phép các máy tính trao đổi thông tin với nhau qua mạng
máy tính. HTTP được xác định qua URLs (Uniform Resource Locators) với cấu trúc
chuỗi có định dạng như sau:
http://<host>[:<port>][<path>[? <query>]]
Sau tiền tố http://, chuỗi url sẽ chứa tên host hoặc địa chỉ IP của máy server (có
thể có cổng đi kèm), tiếp theo là đường dẫn đến tập tin server được yêu cầu. Tùy chọn
sau cùng là tham số, còn được gọi là quyery string (chuỗi tham số/chuỗi truy vấn).
VD :
Một số thuật ngữ
Internet : Là một hệ thống gồm nhiều máy tính khắp nơi trên thế giới kết
nối lại với nhau.
WWW : World Wide Web (Mạng toàn cầu)
Web Server : Máy tính dùng để lưu trữ các ứng dụng web
Web Client : Máy tính dùng để truy cập các trang web
Web Browser : Phần mềm dùng để hiển thị trang web (IE, FireFox, Opera,
Google Chrome, Safari, …)
1.1.2. HTML (Hypertext Markup Language)
Trang web là một tập tin văn bản được viết bằng ngôn ngữ HTML. Ngôn ngữ
này sử dụng các ký hiệu quy định sẵn được gọi là tag để trình bày nội dung văn bản.
Nội dung + định dạng = kết quả hiển thị
1.2. Tìm hiểu các mô hình ứng dụng
1.2.1. Mô hình ứng dụng 2 lớp
Đây là một dạng mô hình đơn giản, khá phổ biến của một ứng dụng phân tán. Trong
mô hình này việc xử lý dữ liệu được thực hiện trên Database Server. Việc nhận và hiển
thị dữ liệu được thực hiện ở Client.
Ưu điểm
Dữ liệu tập trung dữ liệu được nhất quán
Dữ liệu chia sẻ cho nhiều người dùng
Khuyết điểm
Các xử lý, tra cứu và cập nhật dữ liệu được thực hiện ở Database Server,
việc nhận kết quả và hiển thị được thực hiện ở Client khó khăn trong
việc bảo trì và nâng cấp.
Khối lượng dữ liệu truyền trên mạng lớn hao tốn tài nguyên đường
truyền.
Nội dung
trang chủ
Lạc Hồng
<html>
<head>
</head>
<body>
…
</body>
</html>
+
=
1.2.2. Mô hình ứng dụng 3 lớp
Mô hình 2 lớp cũng đáp ứng phần nào của ứng dụng phân tán, tuy nhiên khối lượng dữ
liệu lớn, ứng dụng đòi hỏi nhiều xử lý phức tạp, số lượng người dùng tăng thì mô hình
2 lớp không thể đáp ứng được.
Mô hình 3 lớp sử dụng thêm Application Server giữ nhiệm vụ tương tác giữa Client và
Database Server, giảm bớt các xử lý trên Databaser Server, các xử lý nhận và hiển thị
được thực hiện ở Application Server.
Ưu điểm
Hỗ trợ nhiều người dùng
Giảm bớt xử lý cho client
Nhận và hiển thị dữ liệu tập trung tại Application Server dễ bảo trì và
nâng cấp
Khuyết điểm
Phải sử dụng thêm một Application Server tăng chi phí
2. Giới thiệu về ASP.NET
2.1. Tìm hiểu về .NET Platform
.Net Platform bao gồm .Net Framework và những công cụ được dùng để
xây dựng và phát triển các ứng dụng và dịch vụ .NET
Những sản phẩm công nghệ .Net của Microsoft bao gồm: MSN.Net,
Office.Net, Visual Studio.Net và Window Server 2003 được biết đến với tên gọi
Window .Net Server.
Visual Studio.Net là bộ phần mềm được dùng để xây dựng và phát triển các
ứng dụng bao gồm các ngôn ngữ lập trình: C++.Net, VB.Net, C# và J#. Tất cả các
ngôn ngữ này được xây dựng trên nền .Net Framework, vì thế cú pháp cơ bản của
những ngôn ngữ này tương tự như nhau.
2.2. Tìm hiểu về .Net Framework
Kiến trúc .Net Framework
2.2.1. Hệ điều hành
Cung cấp các chức năng xây dựng ứng dụng
Với vai trò quản lý việc xây dựng và thi hành ứng dụng, .NET Framework
cung cấp các lớp đối tượng (Class) có thể thi hành các chức năng mà đối tượng đó
cung cấp. Tuy nhiên, lời kêu gọi có được “thi hành” hay không còn tùy thuộc vào hệ
điều hành đang chạy ứng dụng.
Các chức năng đơn giản như hiển thị một thông báo (MessageBox) sẽ được
.NET Framework sử dụng các hàm API của Windows. Chức năng phức tạp hơn sẽ sử
dụng các COMponent sẽ yêu cầu window phải cài đặt.
Như vậy, khi lập trình với .NET việc lựa chọn hệ điều hành cũng không kém
phần quan trọng.
2.2.2. Common Language Runtime
Là thành phần “kết nối” giữa các phần khác trong .NET Framework với hệ điều
hành. Common Language Runtime (CLR) giữ vai trò quản lý việc thi hành các ứng
dụng viết bằng .NET trên Windows. CLR sẽ thông dịch các lời gọi từ chương trình
cho Windows thi hành, đảm bảo ứng dụng không chiếm dụng và sử dụng tràn lan tài
nguyên của hệ thống. Nó cũng không cho phép các lệnh “nguy hiểm” được thi hành.
Trong các phiên bản mới của hệ điều hành như Windows 7 và Windows 2003,
CLR được tích hợp sẵn nên ứng dụng được viết ra trên máy chúng ta có thể chạy được
trên máy tính khác mà không cần phải cài đặt.
2.2.3. Bộ thư viện các lớp đối tượng
2.2.3.1. Base class library – thư viện lớp cơ sở
Đây là thư viện các lớp cơ bản nhất, được dùng trong khi lập trình. Ví dụ
String, Integer, Exception …
2.2.3.2. ADO.NET và XML
Bộ thư viện này gồm các lớp dùng để xử lý dữ liệu. Các lớp đối tượng XML
được cung cấp để xử lý các dữ liệu theo định dạng mới: XML. Ví dụ SqlDataAdapter,
SqlCommand, DataSet, XMLReader, XMLWriter, …
2.2.3.3. ASP.NET
Cung cấp một bộ các Server Control để lập trình viên bắt sự kiện và xử lý dữ
liệu của ứng dụng như đang làm việc với ứng dụng Windows. Ví dụ cho các lớp trong
thư viện này là WebControl, HTMLControl, …
2.2.3.4. Web Services
Là các dịch vụ được cung cấp thông qua Web (hay Internet). Dịch vụ được coi
là Web Services không nhằm vào người dùng cuối mà nhằm vào người xây dựng phần
mềm. Web Services có thể dùng để cung cấp các dữ liệu hay một chức năng tính toán.
2.2.3.5. Window Form
Bộ thư viện về Window Form gồm các lớp đối tượng dành cho việc xây dựng
các ứng dụng Windows. Ví dụ lớp trong thư viện này là : Form, UserControl, …
2.3. Tìm hiểu về ASP.NET
Trước hết ASP.NET là Active Server Page .NET (.NET ở đây là .NET
Framework). ASP.NET là kỹ thuật lập trình và phát triển ứng dụng web ở phía Server
(Server-side) dựa trên nền tảng của Microsoft .NET
Hầu hết, những người mới đến với lập trình web đều bắt đầu tìm hiểu những
kỹ thuật ở phía Client (Client-side) như : HTML, JavaScript, CSS (Cascading Style
Sheet). Khi Web Browser yêu cầu một trang web (trang web sử dụng kỹ thuật client-
side), Web server tìm trang web mà client yêu cầu, sau đó gửi về cho Client, Client
nhận kết quả trả về từ Server và hiển thị lên màn hình.
ASP.NET là kỹ thuật lập trình ở phía Server thì hoàn toàn khác, mã lệnh ở
phía server sẽ được biên dịch và thi hành tại Web Server. Sau khi được Server đọc,
biên dịch và thi hành, kết quả tự động được chuyển sang HTML/JavaScript/CSS và trả
về cho Client. Tất cả các xử lý lệnh ASP.NET đều được thực hiện tại Server và do đó
gọi là kỹ thuật lập trình ở phía Server.
2.4. Những ưu điểm của ASP.NET
ASP.NET cho phép lựa chọn một trong các ngôn ngữ lập trình mà mình yêu
thích như: Visual Basic.Net, C#, J#
Trang ASP.NET được biên dịch trước. Thay vì phải đọc và thông dịch mỗi khi
trang web được yêu cầu, ASP.NET biên dịch những trang web động thành những tập
tin DLL mà server có thể thi hành nhanh chóng và hiệu quả.
ASP.NET sử dụng phong cách lập trình mới: Code Behide. Tách code riêng,
giao diện riêng dễ đọc, dễ quản lý và bảo trì.
2.5. Quá trình xử lý tập tin ASPX
3. Web Server
3.1. IIS (Internet Information Services)
IIS có thể được sử dụng như một web server, kết hợp với ASP để xây dựng các
ứng dụng web tận dụng các điểm mạnh của Server-side Script, COM component, …
theo mô hình Client/Server.
IIS có nhiều phiên bản, đầu tiên được phát hành rời trong bản Service của
Window NT
Các phiên bản Window 2000 đã có tích hợp IIS 5.0
Window XP tích hợp IIS 5.5
Window XP.NET Server tích hợp IIS 6 hỗ trợ các tính năng dành cho .NET
của ASP.NET và Web Service
3.2. Cài đặt Web Server
3.2.1. Cài đặt Web Server trên Windows 2000/Windows XP Professional
Windows 2000 tích hợp sẵn IIS nhưng không tự động cài đặt, do đó chúng ta
phải tự cài IIS
Bước 1. Chọn Control Panel | Add/Remove Programs.
Bước 2. Add/Remove Windows Components.
Bước 3. Đánh dấu vào mục chọn Internet Information Services (IIS)
Bước 4. Chọn nút Details để chọn các mục chi tiết
Bước 5. Chọn các mục cần cài đặt, trong đó chúng ta nhớ chọn
FrontPage 2000 Server Extensions
Internet Information Servieces Snap-In
Internet Services Manager (HTML)
Bước 6. Click OK để hệ thống tự cài đặt
3.2.2. Cài đặt Web Server trên Windows Server 2003
Cũng tương tự như cài đặt Web Server trên Windows 2000
Bước 1. Chọn Control Panel | Add/Remove Programs.
Bước 2. Add/Remove Windows Components.
Bước 3. Đánh dấu vào Application Server.
Bước 4. Chọn nút Details để chọn các mục chi tiết.
Các bước còn lại thực hiện như trên Windows 2000
3.2.3. Cài đặt Web Server trên Windows 7
Vào Control Panel | Program and Features | Turn Windows Features on or off
Chọn các mục trong Internet Information Services | OK
3.3. Cấu hình Internet Information Services
3.3.1. Windows 2000/Windows XP Professional/Windows Server 2003
Bước 1: Click phải vào thư mục chứa ứng dụng Web | Property
Bước 2: Chọn Web Sharing
Bước 3: Shared this folder
Bước 4: Apply | OK
Test ứng dụng : Vào trình duyệt web gõ http://localhost/XuLyViPham
Nếu xuất hiện hộp thoại như hình bên dưới ta thực hiện các bước sau:
Bước 1: Start | Settings | Control Panel | Administrative Tools
Bước 2: Internet Information Services
Bước 3: Right Click vào ứng dụng Web | Property
Bước 4: Chọn thẻ Directory Security | Edit | Anonymous access
Bước 5: OK
3.3.2. Windows 7
Vào Control Panel | Administrative Tools | Internet Information Services (IIS)
Manager
Click phải vào Default Web Site | Add Application
Alias : Nhập tên miền ảo cần chạy trên thanh URL
Physical path: Chỉ định đường dẫn đến ứng dụng web
4. Tạo ứng dụng web đầu tiên
4.1. Khởi động MS Visual Studio .NET
New Project : Tạo một ứng dụng mới
Open Project : Mở một ứng dụng đã có sẵn
Recent Projects: Liệt kê các ứng dụng được mở gần nhất.
4.2. Tạo mới ứng dụng web
Bước 1. Chọn New Project hoặc chọn File | New | Web Site
Bước 2. Chọn loại ứng dụng cần tạo
Bước 3. Name: Nhập tên ứng dụng web
Location: Đường dẫn lưu ứng dụng
4.3. Phân loại tập tin trong ASP.NET
Tập tin
Diễn giải
.asax
Tập tin global.asax trong ASP.NET là tập tin quản lý các sự kiện của
ứng dụng (Application, Session và các sự kiện có yêu cầu tới trang
web).
.ascx
Các điều khiển do người dùng tự tạo
.asmx
Tập tin Web Services của ứng dụng ASP.NET
.aspx
Phần mở rộng mặc định của trang ASP.NET
.config
Tập tin cấu hình ứng dụng theo định dạng XML. Web.config chứa
hầu hết các yêu cầu của ứng dụng
.cs
Tập tin mã nguồn viết theo ngôn ngữ C#
.js
Tập tin mã nguồn JavaScript
.vb
Tập tin mã nguồn viết theo ngôn ngữ VB.NET
4.4. Làm quen với các thành phần giao diện VS.NET
4.4.1. Solution Explorer
Hiển thị cửa sổ Solution Explorer: Thực đơn View | Solution Explorer
Đây là cửa sổ quản lý các tài nguyên của ứng dụng. Gồm có chức năng sau:
Thực hiện các chức năng: Copy, Cut, Paste trên tập tin, thư mục như
Windows Explorer.
Tổ chức thư mục quản lý ứng dụng: Sử dụng chức năng Add | New Folder
từ thực đơn ngữ cảnh.
Thêm thành phần mới cho ứng dụng: Sử dụng chức năng Add | Add New
Item từ thực đơn ngữ cảnh. Xuất hiện hộp thoại Add New Item
- Web Form: Thêm trang Web
- Class: Thêm lớp đối tượng
- Module: Thêm thư viện
- Web UserControl: Thêm điều khiển người dùng …
Màn hình thêm thành phần mới cho ứng dụng
Xác định trang web khởi động cho ứng dụng
Chọn trang cần khởi động | Click phải (xuất hiện thực đơn ngữ cảnh) | Chọn
Set As Start Page.
Xác định trang web khởi động cho ứng dụng
4.4.2. Properties Window
Hiển thị cửa sổ Properties Window: View | Properties Window
Thông qua cửa sổ thuộc tính, chúng ta có thể thiết lập thuộc tính cho trang web
và các đối tượng có trong trang web
4.4.3. Hiển thị Toolbox: View | Toolbox
4.5. Phân tích trang ASP.NET
4.5.1. Cấu trúc trangASP.NET
Ta nhận thấy trang ASP.NET gồm có hai tập tin
*.aspx : Tập tin chứa phần thiết kế giao diện của trang web
*.aspx.vb/*.aspx.cs : Tập tin chứa code xử lý các tác vụ của trang web
Tập tin *.aspx
Mã của tập tin này được chia ra làm hai phần riêng biệt :
Phần 1: Từ <%Page … %> được gọi là Page Directive phần này cung cấp cho
ASP.NET những thông tin đặc biệt để ASP.NET biết cách mà hành xử cũng như
những thông tin dùng trong tiến trình biên dịch.
Phần 2: <html></html> phần này là nơi chứa mã code thể hiện hình thức
trình bày của trang web. Ngoài ra trong phần này ASP.NET cũng cho phép chúng ta
kèm theo những chỉ thị trong Code Render Block bắt đầu với <% %> để đưa ra
những gì chúng ta mong muốn làm bên trong tag <html></html>.
VD:
Tập tin *.aspx.vb / *.aspx.cs
Mã tập tin này được chia ra làm hai phần riêng biệt:
Phần 1: Imports … đây là chỉ thị liên kết đến thư viện dùng để xử lý các tác
vụ trên trang web.
Phần 2: Public Class … End Class là nơi chứa các hàm hay thủ tục
dùng để xử lý các tác vụ của trang web.
VD:
4.5.2. Phân định mã và nội dung
Gồm có 2 dạng sau:
Kiểu mẫu Code Inline Model
Kiểu mãu Code Behide Model
a. Kiểu mẫu Code Inline Model
Trong kiểu này mã xử lý tác vụ được viết nằm trong tập tin *.aspx của trang ASP.NET
b. Kiểu mẫu Code Behide Model
Kiểu mẫu này dùng để phân định mã và nội dung thành 2 tập tin riêng biệt
Chú ý: Trong một trang web ASP.NET chỉ tồn tại duy nhất một trong hai kiểu mẫu
trên để viết code xử lý các tác vụ cho trang web
Bài 2
ĐỐI TƯỢNG CỦA ASP.NET
1. Đối tượng cơ bản
1.1. Đối tượng (Object)
Đối tượng là một tên gọi trong đó đối tượng bao gồm cả dữ liệu và phương thức
thực hiện trên dữ liệu đó.
1.2. Đặc tính (Properties)
Properties là các biến số dùng miêu tả đối tượng (Object), ví dụ như cây kim
giờ, kim phút, kim giây dùng để mô tả đồng hồ.
1.3. Phương thức (Methods)
Là các phương pháp dùng đối tượng (Object), ví dụ như chỉnh sửa lại thời gian
của đồng hồ hoặc thay pin cho đồng hồ …
2. ASP.NET Objects
2.1. Response Object
Cho phép Server đáp ứng, trả lời hay thông tin với Client.
a. Method Write
Sử dụng Method Write của Response Object để hiển thị nội dung mà Server gửi
về cho Client
VD : Response.Write (“Chào mừng bạn đã đến với ASP.NET !”)
b. Method Redirect
Sử dụng Method Redirect của Response Object để chuyển người dùng qua trang
web khác một cách gián tiếp
VD : Response.Redirect (“”)
Phương thức này thường được dùng trong trường hợp khi kiểm tra người dùng
đăng nhập thành công thì hệ thống sẽ tự động chuyển sang web mà người dùng đã yêu
cầu.
2.2. Request Object
Dùng Request Object để gởi thông tin cần thiết tới Server. Thường thông tin
của Client được gửi đi dưới dạng Form hay QueryString.
VD :
IDLop chính là QueryString mà Client cần gửi đến Server có giá trị là 820
Thường thì QueryString chỉ dùng tối đa 255 characters
Server lấy dữ liệu mà Client gửi như sau : Request.QueryString(“IDLop”)
Nếu Server gửi đi dưới dạng Form Request.Form(“IDLop”)
2.3. Page Object
Gồm tất cả các thuộc tính (Properties), các phương pháp (Method) dùng co các
trang ASP.NET. Page Object gồm có thành viên cơ bản sau:
Load: Dùng để khởi động khi trang web bắt đầu hiển thị ở Browser
IsPostBack: Dùng để kiểm tra trang web đã được gửi đến Client hay chưa.
2.4. Exception Object
Đối tượng này dùng để kiểm soát lỗi khi Server trả kết quả về cho Client.
2.5. Session Object
Khi Client đã nhận được thông tin từ Server rồi thì quá trình trao đổi qua lại
giữa Client và Server sẽ kết thúc và sẽ không còn liên hệ gì với nhau nữa. Để Client và
Server vẫn còn liên hệ với nhau thì phải thông qua đối tượng Session.
Session cho phép bạn lưu giữ thông tin của người khách khi viếng thăm
Website với bất kỳ loại thông tin nào có liên quan đến họ tại một chỗ nào đó trên
Server. Chỉ khi nào người khách truy cập vào một site khác, bấy giờ Session mới kết
thúc, mọi thông tin liên quan đến họ đều bị xóa sạch.
Cú pháp: Session(“SessionName”) = “Value”
Lưu ý: Chúng ta chỉ dùng Session khi cần lưu một vài thông tin nhỏ ví dụ như
Username, Password. Trong trường hợp quá nhiều thông tin cần phải giữ thì phương
pháp Cookies hay cơ sở dữ liệu là thích hợp và hiệu quả hơn cũng như tránh việc tốn
bộ nhớ cho Server.
2.6. Cookies
Cookies chỉ là một tập tin nhỏ ở máy vi tính của user trong đó chứa mọi thông
tin đặc trưng cho một mạng nào đó, ví dụ như tên người sử dụng và mật mã.
Cookies chứa những dữ liệu đơn giản như: Integer, Float, Boolean, String …
Để đọc và ghi thông tin vào Cookies, chúng ta sử dụng đối tượng HttpCookies.
Lớp này cho phép chúng ta gán hay lấy giá trị của Cookies.
a. Tạo ra Cookies
Khai báo và khởi tạo đối tượng HttpCookie, chúng ta có thể sử dụng Cookies
dạng đơn, nếu có nhu cầu lưu trữ một giá trị thì sử dụng cú pháp sau:
Dim Cookie as HttpCookie
Cookie = new HttpCookie(name, value)
VD: Dim Cookie as HttpCookie
Cookie = new HttpCookie(“UserID”, “123”)
Trong trường hợp muốn lưu trữ nhiều cặp khóa và giá trị tương ứng, chúng ta
sử dụng cú pháp như sau:
Dim Cookie as HttpCookie
Cookie = new HttpCookie(name)
Cookie.Values.Add(name1, value1)
Cookie.Values.Add(name2, value2)
VD: Dim Cookie as HttpCookie
Cookie = new HttpCookie(“Account”)
Cookie.Values.Add(“UserName”, “123”)
Cookie.Values.Add(“PasWord”, “123”)
b. Ghi Cookie xuống Client
Nếu muốn ghi Cookie xuống máy của người sử dụng, chúng ta sử dụng phương
thức Add của Cookie Collection thuộc đối tượng Response theo cú pháp:
Response.Cookies.Add(name)
VD: Response.Cookies.Add(“Account”)
c. Đáo hạn (Expries) Cookies
Khi một người khách nào đó viếng thăm Website của bạn thì Client sẽ tự tạo ra
một Cookies để lưu trữ thông tin của người khách đó, nhưng nếu người đó không truy
cập nữa thì chúng ta không nên lưu trữ thông tin của họ nữa để đảm bảo an toàn thông
tin và bộ nhớ cho máy tính bằng cách chúng ta dùng đặc tính Expries để xóa bỏ tự
động như sau:
Cookie.Expires = “Time”
VD: Dim Cookie as HttpCookie
Cookie = new HttpCookie(“Account”)
Cookie.Values.Add(“UserName”, “123”)
Cookie.Values.Add(“PasWord”, “123”)
Cookie.Expires = Now.AddDays(3)
c. Cách lấy giá trị của Cookies
Khi Client Browser gửi thông tin Cookies tới Server, ta dùng Request Object để
thu nhập thông tin đó theo cú pháp sau:
Dim C As HttpCookie
C = Request.Cookies(name)
VD: Dim Cookie as HttpCookie
Cookie = new HttpCookie(“Account”)
Response.Write(C.Values("UserName").ToString())
Response.Write(C.Values("PassWord").ToString())
2.7. Application Object
Đối tượng Application lưu giữ mọi thông tin liên quan đến ứng dụng mà bất kỳ
một trang ASP.NET nào cũng đều có thể sử dụng được, đối tượng này được tạo ra
ngay khi ứng dụng được khởi động và sẽ tồn tại cùng với chu kỳ sống của ứng dụng.
Cú pháp: Application(“ApplicationName”) = “Value”