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.. T
Trang 1
Giáo trình ASP NET
Trang 2BÀI 1: GIỚI THIỆU ASP.NET
1 MUỜ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 đè
Trang 3chồ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"
Trang 4• 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
Đố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
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)
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
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
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
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
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
Trang 5Cá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.
4.9.
4.10.
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
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
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
Trang 65 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
Trang 7Hì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à
R-Click | 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
Trang 8Hình: Cập nhật cấu hình của ứng dụng ASPNET
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:
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
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
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 gõ tên miền như
http://www.intershop.com
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ư http://www.intershop.com:81/
Trang 9C:\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
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, chúng tôi đang sử dụng thư mục mặc định là
C:\inetpub\wwwroot\intershop\
Để 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
Trang 10Hì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
Trang 116.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
Trang 12Hì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
Trang 13Để 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.")
‘ Xuất chuỗi Welcome to ASPX Page Ra trình duyệt
Welcome to ASPX Page
</body>
</html>
Trang 14Kiể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
Trang 15BÀ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
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
CLS – Common Language Speciftcation
Data and XML
Base Class Library
CLR – Common Language Runtime
Visual Studio NET NET Framework
Trang 16.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 evedence-
base (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
Tập tin ASPX
ASPX Engine
behindClass
Code-Tập tin Class
Tập tin DLL
Generate
Compile
Parse
InstantiateRequest
Instantiate Process and Render
Request
Respons
Respons
Trang 17Hì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
Để 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ỏ
Trang 18• 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
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
Trang 194 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.")
‘ Xuất chuỗi Welcome to ASPX Page Ra trình duyệt
Welcome to ASPX Page
</body>
</html>
Trang 20Kiể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
Trang 21Bà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
Khoi tao Request trong ASPX <br>
nhu cach khai bao trong ASP
<input type=hidden name=fullname
value="Hoang Van Tam">
Trang 22Sau 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
-
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
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
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
PathInfo Đường dẫn ảo của yêu cầu, tương đương
PhysicalApplicationPath
Đường dẫn vật lý của thư mục gốc, tương
PhysicalPath
Đường dẫn vật lý của yêu cầu, tương
QueryString Trả về một tập dữ liệu của nội dung từ
2
Trang 23QueryString (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
phần kế tiếp
TotalBytes Dung lượng của Stream trong luồng dữ
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
UserHostAddress
Địa chỉ IP của người sử dụng, tương
UserHostName
Tên DNS của người sử dụng, tương
MapPath Chuyển đổi đường dẫn ảo thành đường dẫn
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
<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<br>
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
Trang 24Hì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
<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>
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
Trang 25Dim item As Integer
Dim elements As Integer=0
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:
Expires Mặc dù nó còn hỗ trợ, nhưng nó lại
được đối nghịch trong phương thức
Redirect Chuyển hướng đến địa chỉ file trong
cùng ứg dụng hay URL khác trong lúc
Write Ghi thông tin từ các kiểu dữ liệu
Trang 26Bà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
‘ 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
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
Trang 27Trong trang ASP.NET, bạn có thể sử dụng một trong hai phát biểu Nghĩa là phát biểu thứ
nhất được thay thế bằng phát biểu hai Tuy nhiên, bạn có thể sử dụng một trong hai phát biểu
trên trong trang ASP.NET như ví dụ 3-3
Ví dụ 3-3: Đối tượng Application trong ASP.NET
Khi triệu gọi trang ex.aspx trên trình duyệt, bạn sẽ có kết quả là 1 và 10 như Hình 3-1
Hình 3-1: Đối tượng Application trong ASP.NET Ngoài ra, đối tượng này có một số thuộc tính và phương thức mới như trình bày trong bảng 3-1
2
Trang 28Bảng 3-1: Thuộc tính và phương thức của Application
-
Thuộc tính/ Diễn giải
-
AllKeys Trả về một mảng dạng chuỗi chứa đựng
tên của các phần tử trạng thái ứng
Count Trả về số phần tử trong ứng dụng
Add Thêm phần tử vào ứng dụng
Clear Xoá tất cả các phần tử trong ứng
Get Trả về một phần tử chỉ định
GetKey Trả về khoá của phần tử chỉ định
Set Cập nhật giá trị của phần tử trong
-
2 ĐỐI TƯỢNG SESSION
Đối tượng Session được cài đặt trong lớp HttpSessionState thuộc không gian tên
System.Web.SessionState Hai thuộc tính Contents và StaticObjects tương tự như trong đối tượng Application
Cấu trúc của đối tượng này khác với cấu trúc trong ASP, nhưng chúng làm việc tương tự như bạn đã khai báo và sử dụng đối tượng session trong ASP
Chẳng hạn, hai phát biểu sau đây có tác dụng như nhau:
Trong ASP.NET, bạn cũng có thể khai báo như trong trang ASP Để kiểm tra điều này, bạn
có thể xem kết quả của ví dụ 3-5 sau:
Ví dụ 3-5: Khai báo Session (ASP) trong ASP.NET
Trang 29content="text/html; charset=UTF-8">
</head>
<body>
Khoi tao Session trong ASPX <br>
nhu cach khai bao trong ASP
Clear Xoá tất cả các phần tử trong Session
SessionID Trả về một giá trị là 1 chuỗi mà trình
chủ cấp cho Session (trong ASP giá trị
này là một Long)
Remove Trong ASP, bạn có thể xoá một Session
bằng cách cung cấp chỉ mục của Session
hay tên của Session Đối với ASP.NET,
bạn có thể xoá Session bằng cách chỉ
định tên Trong trường hợp bạn muốn xoá
một phần tử trong Session theo chỉ mục,
bạn phải sử dụng phương thức
RemoveAt(i)
RemoveAt Khi bạn muốn xoá một phần tử trong
Session theo chỉ mục, bạn phải sử dụng
-
4
Trang 30Bài 5: Khai báo chỉ dẫn trang và code-behind
1 CÁC KHAI BÁO CHỈ DẪN TRANG
Khi tạo một trang, bạn có thể khai báo gán một số thuộc tính của Page Một trong số đó là một phần của chỉ dẫn @Page và @Import chỉ dẫn Mỗi loại chỉ dẫn này có một tập các thuộc tính mà sử dụng để điều khiển Page được khai báo trên cùng một dòng
<%@ Page Language="vb" ErrorPage="errors.aspx" %>
Bảng 4-1: Các thuộc tính khai báo trong @Page
-
Biến cố Giá trị Diễn giải
-
ClassName Tên Class Kế thừa một Classname hợp
lệ, ví dụ bạn có thể khai
báo sử dụng Class
CodePage Số hợp lệ Gán CodePage của phúc đáp
nếu nó khác với Web Server
Enable Boolean Cho phép Page truy cập
truy cập nhưng không thể
ErorrPage URL Trỏ đến URL khi không thể
kiểm soát ngoại lệ
Language VB,C#, ngôn ngữ hỗ trợ trong NET
Framework
-
Chỉ dẫn @Import
Chỉ dẫn này cho phép bạn khai báo thêm các không gian tên vào Page Khi khai báo chỉ dẫn
@Import, tất cả các Class của không gian tên sẽ có sẵn trong khi lập trình Để khai báo chỉ dẫn
@Import, bạn có thể sử dụng cú pháp sau:
<% @ Import namespace=”value” %>
Mỗi không gian tên bạn sử dụng một khai báo chỉ dẫn @Import Nếu có nhiều không gian tên cần thêm vào Page bạn sẽ sử dụng nhiều khai báo @Import
Tuy nhiên, bạn chỉ cần khai báo @Import với các không gian tên mà NET Framework tuỳ
chọn Điều này có nghĩa là những không gian tên sau đây tự động thêm vào trang
Trang 31System.Web.SessionState
System.Web.UI.HtmlControls
2 KHAI BÁO VÀ SỬ DỤNG CODE BEHIND
Trong thế giới phức tạp của ứng dụng Web, nó thường khó khăn để tách ra nhiều phần của quá trình xử lý Khi viết một trang Web, chúng ta cũng phải quan tâm đến giao diện, nội dung, quá
trình xử lý, tốc độ truy cập và làm thế nào cho quá trình bảo trì đơn giản và dễ cập nhật,
Mô hình Web với ASP có nội dung và mã lẫn lộn Trong ASP.NET nội dung và mã tách ra thành hai phần, phần mã được gọi là Code-Behind
Mặc dù, nó yêu cầu nhà lập trình làm việc trên hai tập tin khác nhau, nhưng sự sắp xếp và phân chia ra thành hai phần như vậy giúp cho bạn có cái nhìn chi tiết, rõ ràng,
2.1 Công cụ viết Code-Behind
Giải pháp mà bạn sử dụng để lập trình mã tuỳ thuộc vào ứng dụng ASP.NET tạo ra như thế nào Để viết mã Code-Behind dưới dạng một lớp (Class) như ví dụ 4-1 (mycodebehind.vb), bạn có thể sử dụng trình soạn thảo Notepad, các công cụ cho phép soạn thao dạng văn bản, Visual Studio.NET
Ví dụ 4-1: Code-Behind là Class
‘ Khai báo sử dụng các không gian tên
Imports System
Imports System.Data
Imports System.Configuration
Imports System.Data.SqlClient
‘ Khai báo tên Class
Public Class MyCodeBehind
Inherits System.Web.UI.Page
Protected WithEvents lstUsers As System.Web.UI.WebControls.DropDownList
‘ Biến Page_Load của đối tượng Page
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
‘ Sử dụng thuộc tính IsPostBack của đối tượng Page
If Not Page.IsPostBack Then
Dim myConn As SqlConnection
Dim myCom As SqlCommand
Dim myDrd As SqlDataReader
‘ Khai báo phát biểu SQL dạng Select
Dim strSQL = "select * from tblUsers "
strSQL += "order by UserName ASC"
myConn = New SqlConnection(_
Ví dụ 4-2: Trang Code-Behind là aspx.vb
‘ Khai báo sử dụng các không gian tên
Imports System
2
Trang 32Imports System.Data
Imports System.Configuration
Imports System.Data.SqlClient
‘ Khai báo tên Class
Public Class MyWebForm
Inherits System.Web.UI.Page
Protected WithEvents lstUsers As System.Web.UI.WebControls.DropDownList Web Form Designer Generated Code
‘ Biến Page_Load của đối tượng Page
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
‘ Sử dụng thuộc tính IsPostBack của đối tượng Page
If Not Page.IsPostBack Then
Dim myConn As SqlConnection
Dim myCom As SqlCommand
Dim myDrd As SqlDataReader
‘ Khai báo phát biểu SQL dạng Select
Dim strSQL = "select * from tblUsers "
strSQL += "order by UserName ASC"
‘ Đọc chuỗi kết nối cơ sở dữ liệu
myConn = New SqlConnection(_
Code-Behind là tập tin Class
Nếu bạn chọn cách viết Class để sử dụng trong trang ASPX, bạn có thể khai báo bằng cách sử dụng chỉ dẫn @Page như sau:
<%@Page Inherits=”Classname” Src=”Pathname”%>
Chẳng hạn, bạn có một Class với tên là MyCodeBehind.vb, bạn có thể khai báo và sử dụng trong trang MyCodeBehind.aspx như sau:
Trang 33Khi triệu gọi trang mycodebehind.aspx trong thư mục ứng dụng WebApp, kết quả trả về như
hình 4-1
Hình 4-1: Kết quả triệu gọi mycodebehind.aspx
2.2.2 Code-Behind là trang aspx.vb
Nếu bạn sử dụng Visual Studio.NET để viết Code-Behind, trang MyWebForm.aspx sẽ tự động thêm khai báo chỉ dẫn sử dụng trang Code-Behind có tên MyWebForm.aspx.vb (chọn HTML trong góc nhìn thiết kế trang ASPX) như sau:
<%@ Page Language="vb"
AutoEventWireup="false"
Codebehind="MyWebForm.aspx.vb"
Inherits="WebApp.MyWebForm"%>
Lưu ý rằng, trong trường hợp phát biểu trên phát sinh lỗi, bạn có thể sử dụng các khai báo
như trong trường hợp trang Code-Behind là Class Ngoài ra, bạn phải định nghĩa thẻ <asp:> với điều khiển DropDownList để liệt kê danh sách người sử dụng trong tập tin MyWebForm.aspx như sau:
<asp:DropDownList id="lstUsers" DataTextField="UserName"
Trang 34Bài 6: B iến, phát biểu điều khiển
1 KHAI BÁO VÀ SỬ DỤNG BIẾN
1.1 Khai báo biến
Bình thường khi bạn khai báo biến trong ASP, kiểu dữ liệu của biến không tường minh, nghĩa là không khai báo kiểu dữ liệu cho biến khi làm việc với ASP Nếu bạn lập trình trong trang
ASP.NET, khai báo biến phải có kiểu dữ liệu đính kèm
Dim strSQL As String
Dim li As Integer
Để tham khảo chi tiết về các khai báo và sử dụng biến trong NET, bạn có thể tham khảo phần này trong hai tập của cuốn sách có tên Lập trình Visual Basic.NET toàn tập
Trong phần này, chúng ta tìm hiểu một số phần khác biệt khi khai báo và sử dụng biến trong
trang ASP.NET Trước tiên, biến phải được khai báo trước khi sử dụng, bạn có thể ràng buộc khai báo và sử dụng chúng trước khi sử dụng trong trang ASP.NET bằng cách thêm chỉ mục sau vào đầu mỗi trang với giá trị là True hay False (mặc định là True)
<%@ Page Explicit=False%>
Chẳng hạn, chúng ta có thể không khai báo biến mà vẫn sử dụng biến đó trong trang
ASP.NET Để làm điều này, bạn cần khai báo chỉ mục Page với giá trị là False cho Explicit như ví
Trong ví dụ trên, trong biến cố Page_Load chúng ta sử dụng phép gán biến US với giá trị là
10, sau đó in chúng ra bằng đối tượng Response, kết quả trả về khi triệu gọi chúng trên trình duyệt
như hình 6-1
1
Trang 35Hình 6-1: Sử dụng biến không cần khai báo
Nếu bạn không khai báo chỉ mục <%@ Page Explicit=False%> trong trang ASP.NET, những
biến sử dụng mà không khai báo sẽ phát sinh lỗi Điều này có nghĩa là phải khai báo tất cả các
biến trước khi sử dụng chúng, bởi vì mặc định của trang ASP.NET là True ứng với Explicit
Ví dụ 6-2: Khai báo biến trước khi sử dụng
Trong biến cố Page_Load chúng ta khai báo và gán biến US với giá trị là 100, sau đó in chúng
ra bằng đối tượng Response, kết quả trả về khi triệu gọi chúng trên trình duyệt như hình 6-2
Hình 6-2: Khai báo trước khi sử dụng biến
2
Trang 36Ngoài cách sử dụng chỉ mục cho từng trang như trình bày trong ví dụ 6-1, khi muốn sử dụng biến mà không cần khai báo hay yêu cầu phải khai báo, bạn có thể khai báo chỉ mục, chúng ta khai
báo chỉ mục này trong tập tin web.config như sau:
<compilation explicit="false">
1.2 Chuyển đổi kiểu dữ liệu
Trong ASP, khi bạn muốn chuyển đổi kiểu dữ liệu, bạn sử dụng hàm như CInt, CDbl, như ví
Để tham khảo chi tiết về kiểu dữ liệu hay các phương thức chuyển đổi kiểu dữ liệu, bạn có thể
tìm đọc hai tập của cuốn sách “Lập trình ứng dụng bằng Visual Basic.NET toàn tập” của nhà sách
Minh Khai phát hành
Lưu ý rằng, trong ASP chúng ta sử dụng tù khoá Set cho các biến có kiểu dữ liệu đối tượng Trong ASP.NET từ khoá Set không được sử dụng Thay vào đó bạn khai báo từ khoá New để khởi tạo đối tượng Bạn có thể tham khảo phần này trong chương ASP.NET và DLL, Class và Web
Service
3
Trang 372 CÁC PHÁT BIỂU ĐIỀU KHIỂN
Bạn có thể sử dụng một trong 3 ngôn ngữ lập trình Visual Basic.NET (vb), JScript.NET (js) và ngôn ngữ C Sharp (cs) Trong ASP.NET mặc định là ngôn ngữ lập trình VB.NET
<compilation debug="false" explicit="true" defaultLanguage="vb">
Tuy nhiên, bạn cũng có thể chọn ngôn ngữ lập trình mặc định là một trong 3 ngôn ngữ trên
trong trang machine.config trong thư mục Microsoft.NET/Framework/v1.0.3705/CONFIG/ như sau:
<compiler language="js;jscript;javascript"
extension=".js" type="Microsoft.JScript
Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</compilers>
2.1.
2.2.
Phát biểu điều khiển trong ASP.NET (VB)
Nếu bạn là người chưa làm việc với ngôn ngữ lập trình Visual Basic, bạn có thể dễ dàng làm quen với các phát biểu điều khiển của ngôn ngữ lập trình Visual Basic.NET Tuy nhiên, đối với những bạn đã làm quen với ngôn ngữ lập trình Visual Basic, bạn có thể ôn lại các phát biểu điều
khiển và các phép toán sẽ sử dụng thường xuyên trong quá trình xây dựng các ví dụ đính kèm
Phát biểu If Then
Phát biểu If Then End If cho phép bạn thực hiện khối phát biểu trong cấu trúc này khi điều kiện trong phát biểu If là đúng
If condition Then [statement]
4
Trang 38Chẳng hạn, khối phát biểu có một phát biểu không khai báo xuống hàng, bạn không cần khai
báo phát biểu End If như ví dụ 6-7:
Ví dụ 6-7: Phát biểu If Then
Trong trường hợp này, bạn cần khai báo phát biểu End If như ví dụ 6-8
Ví dụ 6-8: Phát biểu If Then End If
2.3 Phát biểu điều khiển If Then Elseif Else End If
Một phát biểu đơn giản nhất bạn thuờng gặp là If Then ElseIf Else End If có cú pháp
¾ elseifcondition: Tương tự như condition
¾ elseifstatements: Phát biểu trong khối ElseIf Then khi elseifcondition có giá trị True, dĩ
nhiên elseifstatements cũng có thể có nhiều phát biểu điều khiển khác bên trong
¾ elsestatements: Phát biểu trong khối Else khi condition và elseifcondition có giá trị False, dĩ
nhiên elsestatements cũng có thể có nhiều phát biểu điều khiển khác bên trong
¾ End If: Phát biểu kết thúc khối If Then ElseIF Else End If
¾ Lưu ý rằng, bạn có thể không cần sử dụng phát biểu THEN sau IF
Bạn có thể tham khảo ví dụ 6-9 đơn giản như sau:
Ví dụ 6-9: Phát biểu If Then ElseIf Then Else End If
Trang 392.4 Phát biểu rẽ nhánh Select Case
Tương tự như phát biểu If Then Else End If, Select Case là phát biểu rẽ nhánh, trong trường hợp nào đó bạn cũng có thể chuyển từ phát biểu If Then Else End If sang phát biểu Select Case
Phát biểu Select Case thực hiện một trong nhóm phát biểu, phụ thuộc vào giá trị của biểu
thức với cú pháp:
Select [Case] testexpression
¾ expressionlist: Phát biểu yêu cầu nằm trong Case, trong Case có thể là mệnh đề hay biểu
thức, chúng cách nhau dấu "," Ngoài ra các biểu thức trong Case còn sử dụng từ khoá To để diễn giải khoản giá trị, Is là biểu thức so sánh
Ví dụ như:
Case 1 To 4,5,6,7 To 9,11,,13, Is > MaxNumber
¾ Khai báo trên là phát biểu Case hợp lệ
¾ statements: Một hay nhiều phát biểu trong Case
¾ elsestatements: Một hay nhiều phát biểu trong Case Else
¾ End Select: Kết thúc phát biểu Select Case
Bạn có thể tham khảo ví dụ Select Case như ví dụ 6-10 sau:
Ví dụ 6-10: Phát biểu Select Case
Dim Number As Integer =8
2.5 Phát biểu lặp Do Loop
Phát biểu Do Loop là phát biểu vòng lặp một khối trong lúc điều kiện là True hoặc cho đến khi điều kiện là True, phát biểu điều khiển này có cú pháp như sau:
6
Trang 40Do {While | Until } condition
Loop {While | Until } condition
¾ While: Khai báo khi từ khoá Until được khai báo, vòng lặp thực hiện cho đến khi condition
có giá trị là False
¾ Until: Khai báo khi từ khoá While được khai báo, vòng lặp thực hiện cho đến khi condition
có giá trị là True
¾ condition: (tuỳ chọn) Là biểu thức luận lý có giá trị True hay False
¾ statements: (tuỳ chọn) một hay nhiều phát biểu lặp trong While hay Until khi condition là True
¾ Exit Do: Phát biểu cho phép chương trình thoát khỏi vòng Do Loop
Tham khảo ví dụ về Do Loop với hai dạng trên như ví dụ 6-11:
Ví dụ 6-11: Phát biểu Do Loop
Dim Check As Boolean = True
Dim Counter As Integer = 0
' Vòng lặp trong với biến Counter
' Kết thúc vòng Do Loop trong với biến Counter
Loop Until Check = False
' Kết thúc vòng Do Loop ngoài với biến Check
2.6 Phát biểu While End While
Phát biểu While End While, thực hiện nhiều phát biểu khi điều kiện condition có giá trị
True như cú pháp:
[statements]
¾ condition: Là biểu thức luận lý bắt buộc, có giá trị True hay False, nếu condition = Nothing
thì condition tương đương với False
¾ statements: Một hoặc nhiều phát biểu thực hiện trong khối While khi condition có giá trị True
¾ End While: Từ khoá kết thúc vòng lặp While End While
7