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

ASP NET tiengviet tủ tài liệu bách khoa

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 (5.56 MB, 278 trang )

BÀI 1: GIỚI THIỆU ASP.NET

1. MØI LÝ DO TẠI SAO PHẢI HỌC ASP.NET
Với mục đích cung cấp những giải pháp từ cơ bản đến phức tạp để xây dựng ứng dụng thương
mại điện tử hoàn chỉnh, chúng ta chọn ứng dụng bán hàng qua mạng để làm quen trong suốt quá
trình thiết kế các ví dụ và ứng dụng đính kèm theo sách.
Trong tập hai, chúng tôi chọn ngôn ngữ Visual Basic.NET để lập trình trong các trang ví dụ
ASP.NET và ứng dụng đính kèm. Hy vọng trong thời gian tới, chúng tôi tiếp tục ra mắt bạn đọc cuốn
sách với chủ đề tương tự nhưng được trình bày bằng ngôn ngữ C Sharp. Sau đây là 10 lý do tại sao
bạn thích làm quen với lập trình Web bằng công nghệ ASP.NET.
• Trang ASP.NET chạy nhanh do dùng cơ chế chỉ biên dòch ra tập tin DLL lần đâu tiên triệu
gọi (khác với ASP 3.0 mỗi lần triệu gọi thì mỗi lần biên dòch trang ASP).
• Triển khai và nâng cấp các ứng dụng đang dùng bằng XCOPY.
• Hỗ trợ nhiều công cụ lập trình và cho phép sử dụng lại các tài nguyên đang sử dụng.
• Tự động dò tìm và khắt phục lỗi phát sinh, bạn có thể sử dụng cấu trúc try ..catch .. end try.
• Quản lý trạng thái giao dòch (Session State) ở trên phạm vi nhiều Server (Web farms).
• Sử dụng bộ nhớ truy cập nhanh.
• Hỗ trợ lập trình trên các loại thiết bò điện thoại di động.
• Sử dụng ngôn ngữ biên dòch trang ASP.NET thay vì thông dòch như đã sử dụng trong ASP
3.0.
• Xây dựng và triển khai các ứng dụng dòch vụ Web (Web Service) dễ dàng, bạn có thể thay thế
Web Service cho các ứng dụng DLL, COM, DCOM trước đây.
• Mô hình Page rất đơn giản trong trang ASP.NET.
Với 10 lý do trên, bạn sẽ tìm thấy những đặc điểm nổi bật dưới nhiều góc độ khác nhau trong
phần giới thiệu những đặc điểm mới của ASP.NET và các ví dụ được trình bày chi tiết qua từng
chương.

2. GIỚI THIỆU ASP.NET
Hiện tại ASP 3.0 (.asp) đã và đang trở thành kòch bản được nhiều người sử dụng để thiết kế ứng
dụng thương mại điện tử dưới nhiều hình thức khác nhau. Chúng được sự hỗ trợ mạnh của ngôn ngữ
lập trình Visual Basic 6.0 và cơ sở dữ liệu SQL Server cùng với sự ra đời của công nghệ COM và


DCOM, ứng dụng trở nên hoàn hảo và ưu việt hơn trong quá trình trao đổi thông tin trên mạng
Internet và Intranet.
Tuy nhiên, Microsoft đã và đang nổ lực cho một công nghệ Web xử lý phía máy chủ hoàn toàn
mới đó là ASP.NET, độc lập với mọi trình duyệt. Điều này có nghóa là trình duyệt không cần phải cài
đặc bất kỳ công cụ hỗ trợ nào để duyệt trang Web dạng ASP.NET (.aspx).
Với kỹ thuật cho phép mọi thực thi đều nằm trên trình chủ (Server), có nghóa là trình chủ phải
xử lý nhiều vấn đề cùng một lúc cho nhiều người dùng, chính vì vậy đòi hỏi cấu hình máy chủ có cấu
hình mạnh và đòi hỏi băng thông có khả năng truyền dữ liệu với khối lượng lớn và tốc độ truy cập
nhanh.
ASP.NET được thiết kế tương thích với các phiên bản ASP trước đó. Bạn có thể triển khai ứng
dụng phát triển bằng ASP.NET chung với ứng dụng phát triển bằng ASP 3.0 trên cùng một máy chủ
Windows 2000 mà không cần thay đổi cấu hình của ứng dụng ASP.
ASP.NET và ASP hoạt động độc lập với nhau tuy chúng cùng chạy trên cùng một trình chủ
Web. Khi bạn cài ASP.NET từ bộ cài đặt .NET SDK Framework, Microsoft sẽ không nâng cấp hay đè


chồng lên phiên bản ASP trước đó. Thay vào đó, .NET Framework được cài thêm vào hệ điều hành để
tích hợp trình chủ Web và IIS như là một tuỳ chọn hoạt động chung với ASP.
Những ngôn ngữ được dùng để viết ASP.NET là VBScript (mã Visual Basic.NET), JScript (mã
J++), C# (mã C#). Tuỳ thuộc vào khai báo chỉ mục trong đối tượng chỉ dẫn đầu trang ASP.NET, bạn
có thể chỉ rõ ngôn ngữ lập trình bạn sử dụng để xây dựng trang ASP.NET (tên mở rộng của trang
ASP.NET là ASPX).

3. TẠI SAO CHÚNG TA PHẢI DÙNG ASP.NET
ASP là một mô hình tối ưu và dể sử dụng với nhiều ứng dụng Web trên nền Windows, chúng cho
phép bạn xây dựng một ứng dụng Web có quy mô lớn. Tuy nhiên, nó có nhiều thiếu sót như mã không
cấu trúc rõ ràng, do mã ASP được viết chèn lẫn lộn với mã HTML. Đôi khi, bạn sử dụng các phát biểu
include để chèn tập tin vào trang ASP nhưng bạn phải giải quyết một số vấn đề để tránh sự xáo trộn
cấu trúc HTML và mã ASP của trang mà bạn khai báo chèn.
Trang ASP được thông dòch lại toàn bộ khi người sử dụng triệu gọi đến chúng. Điều này có

nghóa là trang ASP không thay đổi cấu trúc nhưng vẫn phải thông dòch lại mỗi khi người sử dụng
triệu gọi. Thay vì, chỉ thông dòch lại trang ASP mỗi khi trang này có thay đổi về mặt cấu trúc.
Ngoài ra, ASP sử dụng đối tượng ADO để kết nối cơ sở dữ liệu của Microsoft, bao gồm các cơ sở
dữ liệu thông dụng như: Microsoft Access, Microsoft SQL Server, ... tính bảo mật chưa cao của đối
tượng này chưa cao. Thêm vào đó, đối tượng ADO không thể kết nối cơ sở dữ liệu đònh dạng XML.
Trong trang ASP, bạn sử dụng hai đối tượng Application và Session, nhưng có quá nhiều vấn đề
có thể xảy ra trong quá trình triển khai ứng dụng lớn được thiết kế trên nhiều Server. Trước tiên
chúng tạo ra dung lượng lớn trên Server khi có hàng ngàn người truy cập.
Đồng thời, trong trường hợp có nhiều Server cho một ứng dụng Web, bạn không biết trang kế
tiếp trên trình duyệt được thực hiện trên máy nào và khả năng quản lý trạng thái session không thể
thực hiện trên nhiều Server.
Xuất phát từ các điểm yếu tương tự như trên, công nghệ ASP.NET sẽ hướng các lập trình viên
Web vào quỹ đạo của chúng bằng các lý do như:
• Độc lập ngôn ngữ (Language Independence): ASP.NET cho phép bạn không biên dòch ngôn
ngữ, thực hiện tối ưu với các ngôn ngữ kết hợp.
• Dễ phát triển (Simplified Development): ASP.NET cho phép bạn khai báo và viết mã và đơn
giản hoá vấn đề.
• Tách mã và nội dung ra hai phần khác nhau (Separation of code and Content): Trong mỗi
Web form bạn có thể khai báp một số thủ tục trên tập tin với các tên mở rộng .vb, trang
này được gọi là "Code behind the Page" chứa đựng nội dung mã nguồn. Trong khi Web Form
chứa các đối tượng trực quan mang tính giao diện người dùng.
• Tính mềm dẻo và khả năng nâng cấp (Improved Scalability): Cho phép chúng ta quản lý
trạng thái của các Session và tạo Form trên một ứng dụng sử dụng hệ thống nhiều Server.
• Hỗ trợ cho nhiều trình khách (Support for multi client): ASP.NET Controls (điều khiển
ASP.NET) có thể tự động nhận dạng trình khách để hiển thò cho phù hợp. Chính vì vậy,
bạn sẽ không quan tâm đến việc phải viết mã như thế nào để nhận dạng loại trình duyệt
của trình khách (Client) do người sử dụng triệu gọi trang ASP.NET.
• Các Controls hay còn gọi là điều khiển của Web Form (New Web Form Controls): Là những
Controls có thể xuất ra mã HTML 3.2 trên trình duyệt. Tuy nhiên, chúng cho phép xuất ra
tất cả các điều khiển của các Platform khác như: Wire less phone, palm, pilots, pager và các

thiết bò khác.
• Xử lý trên phía trình chủ (Server Side Processing): ASP.NET thay đổi trang Web như một đối
tượng trên Server Side, nhiều thuộc tính, phương thức, đối tượng và biến cố sử dụng để tự
động tạo ra nội dung trong mã nguồn bằng phát biểu "Runat = Server".


• Thay vì sử dụng mô hình tích DLL, COM, DCOM trước đây, trong trường hợp ứng dụng sử
dụng công nghệ ASP.NET bạn có thể sử dụng dòch vụ tương tự có tên là Web Services.

4. TÓM TẮT CÁC ĐẶC ĐIỂM MỚI CỦA ASP.NET
4.1. Đối tượng Pages
Page (trang ứng dụng) sử dụng các thành phần điều khiển có khả năng hoạt dộng và tương tác
với nhau ngay trên trình chủ Web Server. Với đặc điểm này, chúng ta đã giảm thiểu quá trình viết mã
tương tác giữa các trang.
Lập trình trong môi trường ASP.NET tương tự như lập trình thiết kế trong .NET Windows
Forms. Do đó, các ứng dụng ASP.NET còn gọi là Web Forms.

4.2. HTML Server Side Controls
Các thành phần điều khiển HTML (HtmlControl) có khả năng xử lý ngay trên trình chủ dựa
vào thuộc tính và phương thức tương tự các hoạt động của chúng phía trình khách (sử dụng thuộc tính
runat=”server”).
Những thành phần điều khiển này còn cho phép kết hợp mã xử lý của trang ASP.NET với một
sự kiện nào đó phát sinh phía trình khách được xem như đang diễn dòch trên trình chủ (mô hình
chuyển giao) .

4.3. Rich Control
Rich Control là tập các thành phần điều khiển đa năng, chúng chạy trên Server và có thể tạo ra
các phần tử cũng như đối tượng HTML phức hợp cho trình khách.
Chẳng hạn, Rich Control tạo ra khung lưới (datagrid), lòch (calendar), bảng (table), khung nhìn
(list view). Rich Control còn cho phép ràng buộc dữ liệu và xử lý dữ liệu tương tự như bạn đang viết

một ứng dụng để bàn.

4.4. Web Services (các dòch vụ Web)
Web Services (các dòch vụ Web) có thể thay thế cho DLL, COM, DCOM trước đây. Trang
ASP.NET có thể không cần hiển thò kết xuất cho trình khách. Chúng hoạt động như những chương
trình xử lý yêu cầu ở hậu cảnh.
Ví dụ như trong ASP.NET của bạn có thể là một lớp đối tượng cung cấp phương thưcù trả về giá
trò nào đó khi nhận được yêu cầu từ trình khách.

4.5. Cấu hình và phân phối
Đơn giản và dễ dàng với các tập tin (web.config) cấu hình theo đònh dạng văn bản XML. Các
thành đối tượng không còn phải đăng ký với hệ thống trước khi sử dụng nữa (không còn dùng đến
regsvr 32.exe như đã sử dụng COM, DLL, DCOM trong tập 1).
Bạn chỉ cần copy các trang ASP.NET hay các đối tượng lên máy chủ, chỉ ra vò trí của chúng.
Chương trình cũng như dòch vụ của bạn đã có thể sẵn sàng để sử dụng.

4.6. Trạng thái Session
Tự dộng quản lý trạng thái của đối tượng Session và Application, bạn có thể lưu nội dung của
Session hay Application của một ứng dụng đặc thù nào đó xuống các file trên đóa để sử dụng lại.

4.7. Xử lý lỗi
Xử lý lỗi (debug) và lần vết ( tracing ) các công cụ gỡ lỗi lần vết thông tin được nâng cấp và
đáng tin cậy hơn. Mỗi trang tài liệu có thể sử dụng một trang xử lý lỗi riêng biệt và kết xuất nội dung
của biến để theo dõi ngay trong quá trình thưcï thi trang.


Các trình gỡ lỗi debug được tích hợp sử dụng cho môi trường đa ngôn ngữ Visual Basic, C++, C#.
Bạn có thể tạo ra các thành phần đối tượng từ C++, C# và triệu gọi chúng bằng ngôn ngữ Visual
Basic.NET theo cùng cú pháp.


4.8. Quản lý bảo mật
Quản lý bảo mật (Security mangement), chúng ta có thể tận dụng các dòch vụ đăng nhập (login)
tuỳ biến cho trang tài liệu ASP.NET theo phong cách của Web hoặc cơ chế đăng nhập và kiểm tra
quyền xuất dựa trên hệ thống bảo mật của hệ điều hành.

4.9. Tuỳ biến vùng đệm trên trình chủ
Bằøng cách sử dụng tuỳ biến vùng đệm trên trình chủ (Custom Server Caching) của kiến trúc
ASP.NET được quản lý rất linh động. Bạn có thể tự tạo các vùng đệm riêng chứa một kiểu giá trò và
đối tượng trong quá trình hoạt động của trang nhằm tăng tốc cho ứng dụng.

4.10. Một tập các đối tượng
ASP.NET hỗ trợ một tập phong phú các thư viện, lớp và đối tượng, nhằm phục vụ cho hầu hết
những gì mà các nhà phát triển ứng dụng cần đến khi làm việc với ASP.NET.
Bằng các thư viện này, công việc viết ứng dụng cho Web trở nên dễ dàng và đơn giản hơn bao
giờ hết.
Ví dụ như bạn có thể sử dụng các thành phần đối tượng "Send Mail" để gửi nhận thư, đối tượng
mã hoá và giải mã thông tin, đối tượng đếm số người truy cập trang Web (Counter), đối tượng truy
xuất dữ liệu ADO, đối tượng truy cập các dòch vụ mạng, đối tượng đọc ghi trên hệ thống NTFS, đối
tượng ghi ra logfile của hệ điều hành, …
Lưu ý rằng, các đối tượng nội tại khác nhau như: Request, Response, Form, Cookies, Server
Variables đều được giữ lại và hoàn toàn tương thích với ASP. Tuy nhiên ASP.NET đã cung cấp thêm
cho những đối tượng này rất nhiều thuộc tính và phương thức mới giúp nâng cao khả năng xử lý cho
ứng dụng.


5. CÀI ĐẶT VS.NET 2003
Để cài đặt VS.NET 2003 bạn sử dụng 4 đóa, đầu tiên đưa đóa thứ nhất sau đó máy tinh yêu cầu
đóa kế tiếp bạn cho đóa thứ 3. Sau khi cài đặt đóa thứ 3 xong đóa kế tiếp là đóa thứ 2. Nếu có cài đặt
MSDN thì cài tiếp đóa thứ 4.
Tuy nhiên, để cài đặt VS.NET trên hệ điều hành Windows 2000 thì bạn cần ca SP3 trở về sau.

Ngoài ra, trong khi cài đặt đóa thứ 3 nếu có phát sinh lỗi và yêu cầu xuất hiện là retry hay irgnore thì
bạn rút đóa đó ra đưa đóa khác vào và nhấn retry, xs lại xuất hiện bây giờ bạn đưa đóa đang cài đặt
trở lại và nhấn retry để bỏ qua các tập tin bò thiếu.
Khi cài đặt VS.NET 2003, nếu sử dụng VB.NET thì bạn không nên cài đặt C#, C++ và J# để
giảm bớt dung lượng cài đặt. Lưu ý rằng, chúng ta cần cài đặt .NET Framework vì đó là kernel chính
của .NET.

6. CẤU HÌNH ỨNG DỤNG TRONG IIS
Windows 2000, bằng cách chọn menu có tên Internet Information Service, cửa sổ IIS xuất hiện
như hình 20-7.

Hình: Cửa sổ IIS
Trong IIS luôn luôn tồn tại hai Web Site là Administration Web Site (dùng cho việc cấu hình
IIS), Default Web Site (ứng dụng Web mặc đònh).
Default Web Site được cấu hình mặc đònh ứng với thư mục gốc, trong trường hợp này chính là
thư mục C:\inetpub\wwwroot\. Tuy nhiên, bạn có thể thay đổi thư mục mặc đònh này bằng cách cấu
hình trong IIS.
Mặt khác, sau khi bạn cài đặt IIS xong, trên trình duyệt Web (IE chẳng hạn), bạn có thể sử
dụng các trang Web mặc đònh của Windows bằng cách gõ: http://localhost/ (cùng với thư mục con) như
hay http://servername/.
Trong trường hợp máy của bạn có cấu hình card mạng với đòa chỉ IP, bạn cũng có thể gọi trang
Web bằng cách gõ như sau: http://192.168.101.207/.
Để khởi động một ứng dụng Web Site trong IIS đang ở chế độ dừng hay ngừng hoạt động, bạn
có thể chọn tên ứng dụng Web đó và bấm nút Start như hình sau.


Hình: Start một ứng dụng Web Site
Tuy nhiên, tương tự như vậy trong trường hợp muốn ngừng một ứng dụng Web Site đang chạy,
bạn có thể chọn tên Web Site và chọn nút Stop hay Pause như hình sau.


Hình: Dừng một ứng dụng
Để cập nhật lại một số thông số của ứng dụng Web Site trong IIS, bạn chọn tên ứng dụng và RClick | Properties, giả sử trong trường hợp này chúng ta chọn tên ứng dụng có tên là ASPNET cửa sổ
xuất hiện như hình sau.


Hình: Cập nhật cấu hình của ứng dụng ASPNET

6.1. Thông tin của Web Site
Cửa sổ này bao gồm 10 ngăn, ngăn thứ nhất còn gọi là Web Site, ngăn này bao gồm các thông
tin như sau:

6.1.1. Description
Tên của ứng dụng dùng để tham khảo. Trong trường hợp ứng dụng đính kèm, chúng ta cung cấp
giá trò cho Description là Intershop.

6.1.2. IP Address
Đòa chỉ card mạng của trình chủ, tên của Server hay bạn có thể cung cấp localhost. Trong
trường hợp Server của bạn có nhiều IP, bạn cũng có thể chọn All Unassigned thay vì chỉ đònh một đòa
chỉ IP như trên.

6.1.3. Port
Port (Cổng) chuẩn cho ứng dụng Web là 80, điều này có nghóa là khi người dùng gõ đòa chỉ trên
trình
duyệt
http://localhost/,
http://192.168.101.207/
hay

tên
miền

như
.
Trong trường hợp bạn cấu hình Port khác với Port chuẩn, chẳng hạn Port có số là 81, trên trình
duyệt người dùng phải gõ tương ứng: http://localhost:81, http://192.168.101.207:81/ hay gõ tên miền
như :81/.

6.1.4. Connections
Bạn có thể giới hạn số kết nối (Connections) từ người dùng vào ứng dụng bằng cách chọn số cụ
thể trong phần này. Giá trò mặc đònh là không giới hạn (Unlimited). Thêm vào đó, bạn cũng có thể
khai báo tham số thời gian kết nối (mặc đònh 900 giây).

6.1.5. SSL Port
Ngoài ra, trong phần này còn có tham số SSL Port (Security Socket Layer), để tham khảo chi
tiết về SSL, bạn có thể tìm đọc phần cấu hình SSL đối với trình khách và trình chủ trong tập 2 sắp
phát hành.


6.2. Home Directory
Phần thư mục ứng dụng (Home Directory) bao gồm các bước cấu hình ứng dụng Web, bằng việc
trỏ đến thư mục chứa tập tin (Web Folder), trong trường hợp này là thư mục intershop trong thư mục
C:\Inetpub\wwwroot\ chẳng hạn. Ngoài ra, trong phần này chúng ta cần xác đònh các quyền truy cập
trên ứng dụng như hình sau.

Hình: Home Directory

6.2.1. Local Path
Local Path (đường dẫn cục bộ) là vò trí của thư mục của ứng dụng mà bạn cần khai báo. Điều
này có nghóa là những tập tin ASP, HTML, JS, CSS và tập tin hình ảnh cũng như các tập tin khác có
thể gọi trên trình duyệt đều được đặt trong thư mục này.
Trong trường hợp này,

C:\inetpub\wwwroot\intershop\.

chúng

tôi

đang

sử

dụng

thư

mục

mặc

đònh



Để thay đổi thư mục ứng dụng, bạn có thể chọn nút Browse.., lập tức cửa sổ liệt kê thư mục trên
máy xuất hiện như hình sau.


Hình: Danh sách thư mục
Trong trường hợp thư mục của ứng dụng nằm trên mạng cục bộ, bạn có thể chọn tuỳ chọn thứ
hai trong Home Directory và cung cấp tên server, tên thư mục chia sẻ (share) như hình sau.


Hình: Thư mục ứng dụng trên mạng


6.2.2. Các tuỳ chọn khác
Trong thời gian thiết kế ứng dụng, nếu bạn trình bày danh sách thư mục cũng như tập tin trên
trình duyệt như các trình bày trong Windows Explorer như hình sau, bạn có thể chọn tuỳ chọn
Directory Browsing.

Hình: Danh sách thư mục và file trên trình duyệt
Tuy nhiên, sau khi ứng dụng đi vào hoạt động, bạn cần bỏ tuỳ chọn này. Khi đó, trình duyệt sẽ
trình bày thông tin dưới dạng trang Web (trang mặc đònh) cho dù họ không gõ đích danh tên trang
Web.
Chẳng hạn, mặc đònh của homepage là trang index.asp, nếu bạn không gõ trang này mà chỉ gọi
như: http://localhost/, lập tức trang index.asp xuất hiện như hình sau thay vì như hình 20-15 (nếu
chọn tuỳ chọn Directory Browsing).


Hình: Không chọn tuỳ chọn Directory Browsing
Ngoài ra, nếu bạn muốn cho phép người dùng ghi tập tin vào thư mục Web từ phía trình khách
(trình duyệt), bạn có thể chọn vào tuỳ chọn Write.
Tuy nhiên, bạn cẩn thận khi cung cấp tuỳ chọn này, bởi vì đây là một trong những đường mà
một số Hacker tấn công ứng dụng Web.

6.3. Documents
Nếu bạn muốn trình bày một trang mặc đònh mỗi khi người sử dụng được triệu gọi ứng dụng
Web Site, bạn có thể khai báo chúng trong phần Documents như hình sau.

Hình: Cấu hình Documents
Nếu bạn muốn thêm trang mặc đònh, bạn có thể chọn nút Add và cung cấp tên tập tin mặc đònh
như hình.


Hình: Thêm trang mặc đònh của ứng dụng


Để cấu hình ứng dụng Web trong IIS, bạn có thể thực hiện các bước như trình bày trong tập 1.
Nếu bạn sử dụng hệ điều hành Windows Server 2003, bạn có thể tham khảo cách cấu hình ứng dụng
Web trong IIS 6.0 trong chương cấu hình ứng dụng Web.
Trong trường hợp này, chúng tôi sử dụng thư mục có tên myaspx trong thư mục wwwroot và cấu
hình thư mục như ứng dụng mặc đònh như hình 2-16. Điều này có nghóa là cho phép người sử dụng gọi
chúng trên trình duyệt bằng cách gõ http://localhost/.

Hình 2-16: Cấu hình myaspx trong IIS 5.0
Sau đó, bạn có thể khai báo trang hello.aspx với nội dung cơ bản nhất như ví dụ 2-1.
Ví dụ 2-1: Nội dung trang Hello.aspx
<script runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
‘ Xuất chuỗi Welcome to Code of ASPX. Ra trình duyệt
Response.Write("Welcome to Code of ASPX.")
End Sub
</script>
<html>
<head>
<title>ASPX Testing</title>
content="text/html; charset=utf-8">
</head>
<body>


‘ Xuất chuỗi Welcome to ASPX Page. Ra trình duyệt
Welcome to ASPX Page.

</body>
</html>


Kiểm tra chúng có thực thi hay không bằng cách triệu gọi nó trên trình duyệt
(http://localhost/hello.aspx) kết quả xuất hiện như hình 2-17.

Hình 2-17: Kết quả của trang hello.aspx


BÀI 2:.NET FRAMEWORK VÀ TRANG ASP.NET

1. GIỚI THIỆU .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 trình để truy cập thông tin, file, hoặc các chương trình của họ ở mọi lúc mọi nơi
trên mọi cấu hình phần cứng và thiết bò.
Tâm điểm của .NET Framework là CLR (Comm Language Runtime) và tập phân cấp các
bộ thư viện hợp nhất và ASP.NET. CLR quản lý sự thực thi của đoạn mã .NET và cung cấp các
dòch vụ tạo quá trình phát triển chương trình ứng dụng dễ dàng hơn. Các trình biên dòch và các
công cụ làm cho chức năng của thư viện thực thi runtime trở nên phong phú và hiệu quả hơn.
Ngoài ra, dòch vụ Web trong .NET Framework cho phép bạn phát triển ứng dụng Internet
hay Intranet trong hiện tại lẫn tương lai bằng bất cứ ngôn ngữ lập trình và truy cập đến hệ
thống bất kỳ. CLR cung cấp sự dễ dàng cho các nhà phát triển Visual Basic .NET khi thiết kế
và xây dựng ứng dụng mà những đối tượng của chúng có thể tương tác với các đối tượng được
viết bằng ngôn ngữ khác.
Sự tương tác này có thể bởi vì các trình biên dòch ngôn ngữ và các công cụ phát triển
hướng đến sử dụng CLR với một hệ thống kiểu dữ liệu chung đònh nghóa bởi thư viện runtime
như hình sau.
NET Framework
Visual Basic


C ++

C#

...

CLS – Common Language Speciftcation
Web Service

User Interface

Data and XML

Visual
Studio
.NET

Base Class Library

CLR – Common Language Runtime

Hình 2-1: Kiến trúc .NET Framework
Bạn có thể tham khảo tất cả những thành phần cấu thành trong .NET Framework như
hình 2-1, mức trên cùng là trình biên dòch Visual Basic hoặc các trình biên dòch của các ngôn
ngữ khác trong bộ Visual Studio .NET.
Trong hình 2-1, cũng cho biết bạn có thể sử dụng Visual Studio.NET kết hợp với môi
trường phát triển (Intergrated Development Environment – IDE) để lập trình ASP.NET.



.NET Framework còn kết hợp mô hình lập trình đơn giản, dễ sử dụng với các giao thức
mở và biến đổi được của Internet. Để đạt được điều này, .NET Framework bao gồm các đặt điểm
sau:
ƒ Sự hợp nhất thông qua các chuẩn Internet và hỗ trợ các chuẩn Web Service: Cho phép
giao tiếp với mọi ứng dụng phát triển trên cơ sở hạ tầng bất kỳ mà không cần biết
đến chi tiết bên trong cơ sở hạ tầng đó thông qua đònh dạng XML bằng nghi thức
SOAP (Simple Object Access Protocol).
ƒ

Khả năng biến đổi được: Đa số các hệ thống lớn đang sử dụng trên thế giới được xây
dựng trên kiến trúc không đồng bộ. .NET Framework cho phép chúng ta xây dựng ứng
dụng có khả năng biến đổi và giao tiếp với nhau giữa các kiến trúc khác nhau.

ƒ Hỗ trợ nhiều ngôn ngữ: Những nhóm lập trình sử dụng ngôn ngữ lập trình khác nhau
để phát triển ứng dụng do chúng có những tính ưu việc của từng loại. .NET Framework
cho phép trao đổi và giao tiếp giữa các hệ thống được xây dựng trên các ngôn ngữ lập
trình khác nhau. Ngoài ra, chúng ta có thể sử dụng lại những ứng dụng đang tồn tại
mà không cần phải xây dựng lại từ đầu.
ƒ Bảo mật tốt hơn: Bảo mật là một trong những vấn đề gây mất nhiều thời gian của
người làm tin học. Kiến trúc bảo mật của .NET Framework được thiết kế từ dưới lên
để đảm bảo các ứng dụng và dữ liệu được bảo vệ tinh vi dựa trên mô hình evedencebase (bằng chứng).
ƒ Kế thừa những dòch vụ của hệ điều hành: .NET Framework tận dụng lợi thế đa dạng và
phong phú của các thành phần trong hệ điều hành đang có để cung cấp cho người sử
dụng theo cách thân thiện và dễ sử dụng hơn.
ƒ Tách biệt giữa mã nguồn (code behind) và thành phần là một phần quan trọng của
.NET Framework. Ngoài ra, .NET Framework biên dòch trang ASP.NET thành tập tin
DLL (Dynamic Link Library) khi được gọi lần đầu như hình 2-2, thay vì thông dòch
chúng như từng thực hiện trong ASP 3.0.

2. BIÊN DỊCH TRANG ASPX

Khi người sử dụng gọi trang ASPX lần đầu tiên, IIS triệu gọi trình biên dòch dòch trang
ASPX (trang Code-bihind) thành tập tin Class. Kế tiếp, tập tin Class này được biên dòch thành
tập tin DLL. Sau đó, trang DLL thực thi và trả về kết quả cho người sử dụng.

Parse

Request

Tập
tin
ASPX

ASPX
Engine

Instantiate

Request

Compile

Respons

Respons

Codebehind
Class

Generate


Tập
tin
Class

Tập
tin
DLL
Instantiate
Process and
Render


Hình 2-2: Quá trình biên dòch trang ASP.NET
Trong trường hợp người sử dụng gọi lại trang ASPX lần kế tiếp, thì tập tin DLL sẽ được
gọi và thực thi để trả kết quả về cho người sử dụng.
Như vậy, trang ASPX sẽ biên dòch lại tập tin DLL khi chúng tìm thấy cấu trúc của nó
thay đổi hoặc chúng không tìm thấy tập tin DLL tương ứng trong thư mục có tên Temporary
ASP.NET Files như hình 2-3.
Tóm lại, khi người sử dụng truy cập trang ASPX vào lần đầu tiên thường chậm, nhưng nếu
người sử dụng truy cập trang ASP.NET đó lần kế tiếp thì quá trình này sẽ xảy ra nhanh chóng.
Lưu ý rằng, bạn có thể tìm thấy các tập tin DLL được biên dòch từ trang ASPX tương ứng
như hình 2-2 trong thư mục Temporary ASP.NET Files thuộc thư mục Microsoft.NET.

Hình 2-3: Vò trí của các tập tin DLL

3. CÀI ĐẶT .NET FRAMEWORK
3.1. Yêu cầu phần cứng và phần mềm
.NET Framework 1.0 chỉ hỗ trợ trên hệ điều hành Windows 2000 (Professional và Server),
Windows XP không hỗ trợ cho hệ điều hành Windows 4.0 và Windows 9x. Bạn có thể sử dụng
.NET Framework 1.1 SDK tích hợp trong hệ điều hành Windows Server 2003.

nhất.

Để cài đặt .NET Framework 1.0 SDK, bạn cần có cấu hình phần cứng và phần mềm nhỏ

Processor
Operating
System

Server 133-MHz Intel Pentium-class processor.
.NET Framework 1.0 SDK có thể cài đặt trên hệ
điều hành:




Windows 2000, với Windows service pack 2.0.



Windows XP.

Lưu ý: .NET Framework SDK không hỗ trợ trên
Windows Millennium Edition và Microsoft
Windows NT® 4.0.
Memory

128 MB RAM ( tốt nhất 256 MB)

Hard Disk


660 MB đóa cứng, 190 MB cho các yêu cầu khác
tức là khoản (850 MB total)

Display

800 x 600 hay độ phân giải cao hơn với 256 màu.

Để truy cập ASP.NET, bạn cần cài đặt Internet Information Services (IIS) với .NET
Framework. Trong trường hợp IIS cài đặt sau .NET Framework, ASP.NET sẽ không thể thực
thi, bạn cần đăng ký Aspnet_isapi.dll bằng cách sử dụng Regsvr32.exe.
Nếu hệ điều hành là Windows Server 2003, bạn không cần cài đặt .NET Framework, bởi
vì .NET Framework 1.1 đã được tích hợp sẵn. Trong trường hợp bạn muốn sử dụng .NET
Framework 1.1 với hệ điều hành Windows 2000, bạn cần cài đặt Service Pack mới nhất.

3.2. Cài đặt .NET Framework
Nếu bạn đang danh sách hệ điều hành Windows 2000, bạn có thể cài đặt .NET
Framework 1.0 bằng cách chọn đóa thứ 5 của bộ Visual Studio.NET (7 đóa).
Sau khi bạn kết thúc cài đặt và cấu hình .NET Framework trong IIS, bạn có thể kiểm tra
bằng cách chọn ứng dụng trong IIS (5.0) | R-Click | Properties | Home Directories |
Configuration, cửa sổ xuất hiện như hình 2-4 sau.

Hình 2-4: Cấu hình trong IIS


4. CẤU HÌNH ỨNG DỤNG TRONG IIS 5.0
Để cấu hình ứng dụng Web trong IIS 5.0, chún ta sử dụng thư mục có tên myaspx trong
thư mục wwwroot và cấu hình thư mục như ứng dụng mặc đònh như hình 2-5. Điều này có nghóa
là cho phép người sử dụng gọi chúng trên trình duyệt bằng cách gõ http://localhost/.

Hình 2-5: Cấu hình myaspx trong IIS 5.0

Sau đó, bạn có thể khai báo trang hello.aspx với nội dung cơ bản nhất như ví dụ sau.
Nội dung trang Hello.aspx
------------------------------------------------------------------<script runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
‘ Xuất chuỗi Welcome to Code of ASPX. Ra trình duyệt
Response.Write("Welcome to Code of ASPX.")
End Sub
</script>
<html>
<head>
<title>ASPX Testing</title>
content="text/html; charset=utf-8">
</head>
<body>


‘ Xuất chuỗi Welcome to ASPX Page. Ra trình duyệt
Welcome to ASPX Page.
</body>
</html>


Kiểm tra chúng có thực thi hay không bằng cách triệu gọi nó trên trình duyệt
(http://localhost/hello.aspx) kết quả xuất hiện như hình 2-6.

Hình 2-6: Kết quả của trang hello.aspx


Bài 3: Các đối tượng trong ASP.NET
1. ĐỐI TƯNG REQUEST

Tương tự như đối tượng Session, đối tượng Request được cài đặt trong lớp HttpRequest thuộc
không gian tên System.Web. Tất cả thuộc tính và phương thức đang tồn tại trong ASP đều được
hỗ trợ trên ASP.NET. Tương tự như trong đối tượng Session, cấu trúc của đối tượng Request có
một vài thay đổi cùng với một số thuộc tính và phương thức mới.
Nếu bạn muốn sử dụng đối tượng Request như ASP trong trang ASP.NET, bạn có thể khai
báo như trong ví dụ 3-7.
Ví dụ 3-7: Khai báo đối tượng Request trong ASP.NET
<script runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
Dim US As String
‘ Lấy giá trò từ Form
US=Request.Form("username")
Response.Write("UserName is ")
Response.Write(US)
Response.Write("<Br>")
‘ Lấy giá trò từ chuỗi QueryString
US=Request.QueryString("email")
Response.Write("Email is ")
Response.Write(US+"
")
‘ Lấy giá trò từ Form hay từ QueryString
US=Request("fullname")
Response.Write("FullName is ")
Response.Write(US)
End sub
</script>
<html>
<head><title>
Welcome to ASP.NET 's Objects
</title>

content="text/html; charset=UTF-8">
</head>
<body>


Khoi tao Request trong ASPX

nhu cach khai bao trong ASP


method=post>
Username:
value="user1">
value="Hoang Van Tam">



<input type=submit value=Submit>
</form>
</body>
</html>

1


Sau khi bạn Submit trang ex7.aspx trên trình duyệt, kết quả sẽ xuất hiện như hình 3-2.

Hình 3-2: Khai báo và sử dụng Request (ASP) trong ASP.NET
Tuy chúng ta có thể khai báo và sử dụng đối tượng Request của ASP trong trang ASP.NET,
nhưng bạn cũng nên sử dụng các thuộc tính, thuộc tính được thay đổi và thêm mới của đối tượng
này trong trang ASP.NET để có một quá trình xử lý phù hợp và tốt hơn.
Bảng 3-3: Thuộc tính và phương thức của Request

----------------------------------------------Thuộc tính/ Diễn giải
phương thức
--------------------------------------------FilePath
Trả về đường dẫn ảo của yêu cầu, thuộc
tính này tương đương vơi SCRIPT_NAME
trong ASP.
Files
Trả về HttpFileCollection của tập
nhiều tập tin được tải lên Server (sử
dụng cho dạng multi-part/forms).
Form
Trả về một tập dữ liệu của nội dung từ
Form (NameValueCollection). Cách truy
cập tập dữ liệu này khác với truy cập
tập dữ liệu từ Form của ASP. Tham khảo
Request Collection trong phần kế tiếp.
của form.
Params
Như trình bày trong chương trước,
thuộc tính này sử dụng để lấy giá trò
của phương thức trong Form,
QueryString, ServerVariable hay
Cookie.
Path
Đường dẫn ảo của yêu cầu, tương đương
với PATH_INFO trong ASP.
PathInfo
Đường dẫn ảo của yêu cầu, tương đương
với PATH_INFO trong ASP.
PhysicalApplicationPath

Đường dẫn vật lý của thư mục gốc, tương
đương với APPL_PHYSICAL_PATH.
PhysicalPath
Đường dẫn vật lý của yêu cầu, tương
đương với PATH_TRANSLATED trong ASP.
QueryString Trả về một tập dữ liệu của nội dung từ

2


QueryString (NameValueCollection).
Cách truy cập tập dữ liệu này khác với
truy cập tập dữ liệu từ Form của ASP.
Tham khảo Request Collection trong
phần kế tiếp.
TotalBytes Dung lượng của Stream trong luồng dữ
liệu.
Url
Đối tượng Url chứa đựng chi tiết của
yêu cầu. Đối tượng Url (từ không gian
tên System) bao gồm các thông tin chi
tiết như Port, DNS,...
UserHostAddress
Đòa chỉ IP của người sử dụng, tương
đương với REMOTE_ADDR trong ASP.
UserHostName
Tên DNS của người sử dụng, tương
đương với REMOTE_NAME trong ASP.
MapPath
Chuyển đổi đường dẫn ảo thành đường dẫn

vật lý.
SaveAS
Lưu yêu cầu HTTP vào đóa.
-----------------------------------------------

1.1.1. Request Collection trong ASP
Đối tượng Request cho phép truy cập đến nội dung của Form hay QueryString, trong đó bao
gồm các phần tử cùng tên như trong các trình bày chúng ta sử dụng thẻ checkbox, radio,... cùng
tên và khác giá trò như ví dụ 3-8.
Ví dụ 3-8: Danh sách Industry
<html>
<head><title>Welcome to ASP's Objects</title>
content="text/html; charset=UTF-8">
</head>
<body>
<form action=ex8.asp method=post>
<table>
<tr>
<td valign=top>
Industry:</td><td>
<select name=lstIndu multiple>
<option value="AUT"> Auto</option>
<option value="ENG"> Engineering</option>
<option value="FOO"> Foods</option>
<option value="GAR"> Garment</option>
</select>
</td></tr><tr><td colspan=2>
<input type=submit value="Submit">
Gia tri cua danh sach chon


<%
For item=1 To Request.Form("lstindu").Count
Response.Write(Request.Form("lstindu")(item)) & "
"
Next
%>
</td>
</tr>
</table>
</form>
</body>
</html>

Sau khi chọn một hay nhiều phần tử trong danh sách Industry, bạn nhấn nút Submit để
Submit trang này, kết quả nhận được như Hình 3-3.

3


Hình 3-3: Request trong ASP

1.1.2. Request Collection trong ASP.NET
Nếu bạn viết đoạn chương trình trong ví dụ 3-8 trong trang ASP.NET, chúng không thể
biên dòch được. Chính vì vậy, bạn có thể khai báo lại như trong ví dụ 3-9.
Ví dụ 3-9: Request trong ASP.NET
<html>
<head><title>Welcome to ASP.NET' s Objects</title>
content="text/html; charset=UTF-8">
</head>
<body>

<form action=ex10.aspx method=post>
<table>
<tr>
<td valign=top>
Industry:</td><td>
<select name=lstIndu multiple>
<option value="" selected> Chon </option>
<option value="AUT" > Auto</option>
<option value="ENG"> Engineering</option>
<option value="FOO"> Foods</option>
<option value="GAR"> Garment</option>
</select>
</td></tr>
<tr><td colspan=2>
<input type=submit value="Submit">
</form>
</td>
</tr>
</table>
</body>
</html>

Sau khi người sử dụng chọn một hay nhiều Industry, nếu họ nhấn nút Submit, lập tức trang
kế tiếp sẽ được triệu gọi, bằng cách sử dụng đối tượng Request cùng với các phương thức và thuộc
tính của nó, chúng ta sẽ lấy các giá trò mà người sử dụng chọn như ví dụ 3-10.
Ví dụ 3-10: Sử dụng đối tượng Request trong ASP.NET
4


<html>

<head><title>Welcome to ASP.NET' s Objects</title>
content="text/html; charset=UTF-8">
</head>
<body>
Gia tri cua danh sach chon

<table><tr>
<td valign=top>
Industry:</td><td>
<%
if Request.Form.GetValues("lstindu").Length-1>0 then
Dim item As Integer
Dim elements As Integer=0
elements =Request.Form.GetValues("lstindu").Length-1
For item=0 To elements
Response.Write(Request.Form.GetValues("lstindu")(item))
Response.Write("
")
Next
end if
%>
</td></tr>
</table>
</body>
</html>

Sử dụng phương thức GetValues ứng với chỉ dẫn của phần tử trong tập phần tử tính từ
phần tử thứ 0, bạn có thể đọc giá trò của từng phần tử mà người sử dụng đã chọn.

2. ĐỐI TƯNG RESPONSE
Tương tự như hai đối tượng đã trình bày ở trên, tất cả các thuộc tính và phương thức trước

đây của đối tượng Response đều được sử dụng lại. Tuy nhiên, khi sử dụng đối tượng Response
trong ASP.NET, bạn cần quan tm một số thuộc tính và phương thức mới.
Lưu ý rằng, trong ASP bạn khai báo đối tượng Response.Write như sau:
Response.Write Str

Trong ASP.NET, phát biểu trên viết lại như sau:
Response.Write (Str)

Bạn có thể tham khảo chi tiết về đối tượng Response trong ASP 3.0. Bảng 3-4 sau sẽ trình
bày một số thuộc tính, phương thức mới và thuộc tính, phương thức thay đổi trong ASP.NET.
Bảng 3-4: Thuộc tính và phương thức của Response
----------------------------------------------Thuộc tính/
Diễn giải
phương thức
--------------------------------------------Expires
Mặc dù nó còn hỗ trợ, nhưng nó lại
được đối nghòch trong phương thức
của HttpCachePolicy.
Redirect
Chuyển hướng đến đòa chỉ file trong
cùng ứg dụng hay URL khác trong lúc
thi hành.
Write
Ghi thông tin từ các kiểu dữ liệu
như Char, Object, String, Array ra
trang Web.
WriteFile
Ghi một luồng dữ liệu ra tập tin chỉ
đònh.
-----------------------------------------------


5


Bài 4: Các đối tượng trong ASP.NET
1. ĐỐI TƯNG APPLICATION
Trong ASP, chúng ta sử dụng đối tượng Application để trao đổi thông tin giữa các phiên
làm việc của các trình duyệt đối với trình chủ. Ví dụ trong trường hợp bạn muốn sử dụng biến
Counter đếm số lần truy cập trang ASP của mọi trình duyệt. Biến này phải có hiệu lực trên toàn
ứng dụng. Khi đó, mọi trình duyệt đều có thể lưu trữ và truy cập đến biến này.
Chẳng hạn, bạn khởi tạo một biến Application có tên là Counter trong trang ex.asp, nếu đối
tượng Application có tên Counter chưa có giá trò, chúng ta khởi tạo giá trò là 1. Ngược lại, chúng
ta tăng giá trò của chúng lên 1 như ví dụ 3-1.
Ví dụ 3-1: Đối tượng Application trong ASP
<html>
<head>
<title>
Welcome to ASP 's Objects
</title>
content="text/html; charset=UTF-8">
</head>
<body>
Application Objects

<%
‘ Nếu đối tượng chưa khởi tạo
if Application ("Counter")="" then
Application ("Counter")=1
Else
‘ Nếu đối tượng đã khởi tạo, tăng giá trò lên 1

Application ("Counter")=Application ("Counter")+1
End if
‘ In giá trò của đối tượng Application
Response.Write("Application is Counter: " & Application
("Counter"))
%>
</body>
</html>

Đối tượng Apllication trong ASP.NET được cài đặt trong lớp HttpApplicationState thuộc
không gian tên System.Web. Mặc dù, ASP.NET hỗ trợ hầu hết các chức năng của ASP bằng hai
Contents và StaticObjects Collections, nhưng chúng cũng có một số khác nhau mà chúng ta cần
tìm hiểu. Chẳng hạn, hai phát biểu như sau là tương đương.
Application.Contents.Remove("Counter")
Application.Remove("Counter")

Trong ASP, để huỷ bỏ một đối tượng Application, bạn có thể khai báo phát biểu thứ nhất
như ví dụ 3-2.
Ví dụ 3-2: Xoá đối tượng Application trong ASP
<html>
<head>
<title>
Welcome to ASP 's Objects </title>
content="text/html; charset=UTF-8">
</head>
<body>
Application Objects

<%
if Application ("Counter")="" then

Application ("Counter")=1
Else
Application ("Counter")=Application ("Counter")+1

1


×