HTML: Ngôn ngữ đánh dấu siêu văn bản HTML đ-ợc sử dụng để tạo các tài liệu có thể truy cập trên Web.. Chẳng hạn ngoài việc phải xử lý trang HTML ta còn phải có khả năng tạo các trang
Trang 1Em xin bày tỏ lòng cảm ơn sâu sắc tới:
Thạc sỹ Hồ Thị Huyền Th-ơng-giảng viên tổ ph-ơng pháp giảng dạy
khoa Công nghệ thông tin, cô đã t- vấn cho em chọn đề tài, h-ớng dẫn tận
tình, tạo mọi điều kiện thuận lợi trong suốt quá trình thực hiện khóa luận
Đồng thời em cũng bày tỏ lời cảm ơn chân thành tới các Thầy, Cô giáo
Khoa Công nghệ thông tin, tổ bộ môn ph-ơng pháp giảng dạy cùng gia đình,
bạn bè và ng-ời thân đã tạo mọi điều kiện giúp đỡ, động viên em hoàn thành
khóa luận này
Vinh, tháng 5 năm 2009
Trang 22
Mở đầu 3
Lý do chọn đề tài 3
Nội dung nghiên cứu 3
Ch-ơng I: Giới thiệu Internet, HTML 4
1.1 Giới thiệu HTML 5
1.2 HTML Development 5
1.3 Cấu trúc của một tài liệu HTML 6
Ch-ơng II: Giới thiệu về ASP.NET 8
2.1 Yếu tố đặc biệt của ASP.NET 9
2.2 Những đặc điểm mới của ASP.NET 2.0 14
2.3 .NET FrameWork và trang ASP.NET 16
2.4 Cấu hình trang ASP.NET 25
2.5 Kiến trúc trang ASP.NET 27
2.6 Tiến trình biên dịch trang ASP.NET 2.0 30
Ch-ơng III: Xây dựng ứng dụng Website “phòng trọ sinh viên” 35
3.1 Phân tích và thiết kế hệ thống 35
3.1.1 Phân tích hệ thống 36
3.1.1.1 Biểu đồ phân cấp chức năng 38
3.1.1.2 Biểu đồ luồng dữ liệu 38
3.2 Thiết kế hệ thống 41
3.3 Cài đặt hệ thống 43
3.3.1 Trang chủ 43
3.3.2 Tìm phòng 44
3.3.3.Tin tr-ờng 45
3.3.4 Đăng ký 47
Kết luận 50
Tài liệu tham khảo 51
Trang 3Hàng năm, tr-ờng đại học Vinh lại đón hàng nghìn sinh viên mới vào nhập học Hiện nay nhà tr-ờng ch-a có đủ chỗ ở nội trú cho sinh viên Vì vậy nhu cầu tìm nhà trọ là một nhu cầu tất yếu Từ tr-ớc tới nay hầu nh- sinh viên tìm đ-ợc nhà trọ là do giới thiệu của anh chị, bạn bè, hay là do chủ trọ đón khách Nh- vậy thì sinh viên mới đến đang còn bỡ ngỡ, ch-a quen đ-ờng thuộc lối nên có thể sẽ không tìm đ-ợc cho mình một nhà trọ phù hợp với nhu cầu sinh sống, điều kiện học tập, phù hợp với điều kiện gia đình mình Bên cạnh đó thì những gia đình có phòng cho sinh viên thuê lại phải đón khách trọ tại cổng tr-ờng, bến xe, ga tàu… Nh- vậy sẽ gây mất trật tự nơi công cộng
khi tranh giành hoặc chào mời khách mà không đạt hiệu quả cao
Để góp phần giải quyết những vấn đề bất cập thực tế nh- trên và để tận
dụng đ-ợc tiềm năng của mạng Internet, tôi chọn đề tài khóa luận tốt nghiệp ngành cử nhân khoa học công nghệ thông tin: “Tìm hiểu ASP.NET xây dựng trang Website Phòng trọ sinh viên” Ưu điểm của trang Website này là sinh
viên có thể tự tìm cho mình một nhà trọ phù hợp với điều kiện sống, điều kiện học tập và giá cả hợp lý Bên cạnh đó đối với các chủ trọ không cần phải đón khách trọ tại những nơi công cộng đông đúc gây mất trật tự, không hiệu quả
mà chỉ cần đăng ký qua Website này Sau đó sinh viên mới sẽ tự tìm hiểu các phòng trọ trên trang Website và chọn cho mình một phòng trọ phù hợp nhất
2 Mục tiêu của đề tài
Là xây dựng đ-ợc một trang Website “Phòng trọ sinh viên” với các
chức năng đơn giản, thuận tiện và hiệu quả Hệ thống làm việc ổn định, hạn chế đến mức thấp nhất các lỗi có thể xảy ra
3 Nội dung nghiên cứu
- Tìm hiểu Web page (HTML), ASP.NET
- Xây dựng Website “Phòng trọ sinh viên”
Trang 44
“Internet‛, ‚World Wide Web‛, và ‚Web page‛ không chỉ còn là các thuật ngữ Giờ đây các thuật ngữ này đã trở thành hiện thực Internet là mạng máy tính lớn nhất thế giới, đ-ợc xem nh- là mạng của các mạng World Wide Web là một tập con của Internet World Wide Web gồm các Web Servers có mặt khắp nơi trên thế giới Các Web Server chứa thông tin mà bất kì ng-ời
dùng nào trên thế giới cũng có thể truy cập đ-ợc Các thông tin đó đ-ợc l-u
trữ d-ới dạng các trang Web
Ngôn ngữ đánh dấu siêu văn bản (HTML), đây là một phần quan trọng trong lĩnh vực thiết kế và phát triển thế giới Web
Mạng là một nhóm các máy tính kết nối với nhau Internet là mạng của các mạng Giao thức TCP/IP (Transmission Control Protocol/Internet Protocol) cung cấp việc kết nối tất cả các máy tính trên thế giới
World Wide Web là một tập con của Internet Nó bắt đầu nh- là đề án
nghiên cứu cấp quốc gia tại phòng nghiên cứu CERN của Thụy Sỹ Ngày nay
nó cung cấp thông tin cho ng-ời dùng trên toàn thế giới
www hoạt dộng dựa trên 3 cơ chế để đ-a các tài nguyên có giá trị đến với ng-ời dùng Đó là:
Giao thức: ng-ời dùng tuân theo các giao thức này để truy cập
tài nguyên trên Web
Địa chỉ: www tuân theo một cách thức đặt tên thống nhất để
truy cập vào các tài nguyên trên Web URL đ-ợc sử dụng để nhận dạng các trang và các tài nguyên trên Web
HTML: Ngôn ngữ đánh dấu siêu văn bản (HTML) đ-ợc sử dụng
để tạo các tài liệu có thể truy cập trên Web Tài liệu HTML đ-ợc tạo
ra bằng cách sử dụng các thẻ và các phần tử của HTML File đ-ợc l-u trên Web Server với đuôi htm hoặc HTML
Trang 5Khi ta sử dụng trình duyệt để yêu cầu một số thông tin nào đó, Web Server sẽ đáp ứng các yêu cầu đó Nó gửi thông tin đ-ợc yêu cầu đến trình duyệt d-ới dạng các trang Web Trình duyệt định dạng thông tin đó máy chủ
- Điều khiển hình thức và nội dung của trang
- Xuất bản các tài liệu trực tuyến và truy xuất thông tin trực tuyến bằng cách
sử dụng các liên kết đ-ợc chèn vào tài liệu HTML
- Tạo các biểu mẫu trực tuyến để thu nhập thông tin về ng-ời dùng, quản lý các giao dịch
- Chèn các đối t-ợng nh- Audio clip, video clip, các thành phần Active các Java Applet vào tài liệu HTML
Tài liệu HTML tạo thành mã nguồn của trang Web Khi đ-ợc xem trên
trình soạn thảo, tài liệu này là một chuỗi các thẻ và các phần tử, mà chúng xác
định trang Web hiển thị nh- thế nào Trình duyệt đọc các file có đuôi htm hay HTML và hiển thị trang Web đó theo các lệnh có trong đó
1.2 HTML Development
Tài liệu HTML đ-ợc hiển thị trên trình duyệt Trình duyệt là một ứng dụng đ-ợc cài đặt trên máy khách Trình duyệt đọc mã nguồn HTML và hiển
thị trang theo các lệnh trong đó
Trình duyệt đ-ợc sử dụng để xem các trang Web và điều h-ớng Trình duyệt đ-ợc biết đến sớm nhất là Mosaic, đ-ợc phát triển bởi trung tâm ứng dụng siêu máy tính quốc gia (NCSA) Ngày nay, có nhiều trình duyệt đ-ợc sử dụng trên Internet Netscape’s Navigator và Microsoft’s Internet Explorer là
hai trình duyệt đ-ợc sử dụng phổ biến Đối với ng-ời dùng, trình duyệt dễ sử dụng vì nó có giao diện đồ họa với việc trỏ và kích chuột
Trang 66
Để tạo một tài liệu nguồn, ta cần có một trình soạn thảo HTML Ngày nay có nhiều trình soạn thảo đang đ-ợc sử dụng: Micosoft Front Page là một công cụ tổng hợp đ-ợc dùng để tạo, thiết kế và hiệu chỉnh các trang Web
Chúng ta cũng có thể thêm văn bản, hình ảnh, bảng và những thành phần khác
vào trang Thêm vào đó, một biểu mẫu cũng có thể tạo ra bằng Front Page Một khi chúng ta tạo ra giao diện cho trang Web, Front Page tự động mã HTML cần thiết Chúng ta cũng có thể dùng Notepad để tạo tài liệu HTML
Để xem đ-ợc tài liệu trên trình duyệt ta phải l-u nó với đuôi là htm hay html
Các lệnh HTML đ-ợc gọi là các thẻ Các thẻ này đ-ợc dùng để điều khiển nội dung và hình thức trình bày của tài liệu HTML Thẻ mở (“<>”) và thẻ đóng (“</>”), chỉ ra sự bắt đầu và kết thúc của một lệnh HTML
1.3 Cấu trúc của một tài liệu HTML
Một tài liệu HTML bao gồm 3 phần cơ bản:
- Phần HTML: Mọi tài liệu HTML phải bắt đầu bằng thẻ mở HTML
<HTML> và kết thúc bằng thẻ đóng HTML </HTML> Thẻ HTML báo cho trình duyệt biết nội dung giữa hai thẻ này là một tài liệu HTML
- Phần tiêu đề: Phần tiêu đề bắt đầu bằng thẻ <HEAD> và kết thúc bằng
</HEAD> Phần này chứa tiêu đề mà đ-ợc hiển thị trên thanh điều h-ớng của trang Web Tiêu đề nằm trong thẻ TITLE, bắt đầu bằng thẻ <TITLE> và kết thúc là thẻ </TITLE>
Tiêu đề: là phần khá quan trọng Các mốc đ-ợc dùng để đánh dấu một
Website Trình duyệt sử dụng tiêu đề để l-u trữ các mốc này Do đó khi ng-ời dùng tìm kiếm thông tin, tiêu đề của trang Web cung cấp từ khóa chính cho
việc tìm kiếm
- Phần thân: Phần này nằm sau phần tiêu đề Phần thân bao gồm văn
bản, hình ảnh và các liên kết mà ta muốn hiển thị trên trang Web của mình Phần thân bắt đầu bằng thẻ <BODY> và kết thúc bằng thẻ </BODY>
Đoạn: Thẻ <P> để trình bày một đoạn Khi viết một bài báo hay một
bài luận, ta nhóm nội dung thành một loạt các đoạn Mục đích là nhóm
Trang 7các lý t-ởng logic lại với nhau và áp dụng một số định dạng cho nội
dung Trong một tài liệu HTML, nội dung có thể đ-ợc nhóm thành các
đoạn Thẻ đoạn <P> đ-ợc sử dụng để đánh dấu sự bắt đầu của một đoạn mới Thẻ đóng </P> là không bắt buộc Thẻ <P> kế tiếp sẽ tự động bắt
đầu một đoạn mới
Các thẻ ngắt: Phần tử <BR> đ-ợc sử dụng để ngắt dòng trong tài
liệu HTML Thẻ <BR> bổ sung một ký tự xuống dòng tại vị trí thẻ
Chọn canh lề: Thuộc tính align đ-ợc sử dụng để canh lề cho các
phần tử HTML trong trang Web Chúng ta có thể canh lề văn bản, các
đối tượng, hình ảnh, các đoạn, các phân đoạn,…
Thuộc tính Align gồm các giá trị sau:
Left Văn bản đ-ợc canh lề trái Center Văn bản đ-ợc canh lề giữa Right Văn bản đ-ợc canh lề phải Justify Văn bản đ-ợc canh lề hai bên
Canh lề đ-ợc mặc định dựa vào h-ớng của văn bản Nếu h-ớng của văn bản là từ trái sang phải thì mặc định là trái
Ch-ơng II Giới thiệu về ASP.NET
Trang 88
ASP.NET là sự kế thừa và phát triển của ASP ASP.NET là một công nghệ Web xử lý từ phía máy chủ ASP.NET cho phép sử dụng ngôn ngữ trung lập Trang ASP.NET có thể viết bằng rất nhiều ngôn ngữ nh-: Vbscript, Jscript, Visual Basic, C++, C# ASP.NET cho phép tách rời giữa mã lập trình và nội dung tài liệu ASP.NET cung cấp các thành phần điều khiển hoạt
động, phía trình chủ hoạt động theo h-ớng xử lý sự kiện ASP.NET cung cấp
các dịch vụ phục vụ cho hoạt động của các thiết bị viễn thông có kết nối
Internet và máy chủ phục vụ Web Vì công việc phải xử lý trên máy chủ là rất nhiều Chẳng hạn ngoài việc phải xử lý trang HTML ta còn phải có khả năng tạo các trang WML, xử lý và trao đổi dữ liệu XML… ASP.NET cung cấp kiến trúc hạ tầng để xây dựng các ứng dụng phân tán trên Web theo giao thức triệu gọi SOAP (Simple Object Access Protocol- giao thức truy xuất đối t-ợng đơn giản), cho phép thực hiện chuyển đổi dữ liệu XML phục vụ cho môi tr-ờng th-ơng mại điện tử B2B (Business to Business) ASP.NET cung cấp đầy đủ
mọi dịch vụ từ bảo mật đến cấp phát bộ nhớ, thu gom rác, theo dõi sự quá tải của các thành phần đối t-ợng, cân bằng tải, giảm thiểu tối đa các kết nối tiêu
tốn tài nguyên Nói tóm lại ASP.NET là một môi tr-ờng lập trình mới và đây cũng là một ngôn ngữ hàng đầu cho việc thiêt kế và phát triển Web động hiện
nay
Ta biết rằng vấn đề thách thức lớn nhất đối với các ứng dụng Web ngày
nay là sự t-ơng thích trên các trình duyệt cùng với độ phức tạp của trang tài
liệu do ứng dụng tạo ra Để tạo một trang Web hấp dẫn và tận dụng đ-ợc
những tính năng mới nhất của trình duyệt nh-ng đồng thời vẫn hiển thị đúng
đắn trên các trình duyệt cũ quá là cơn ác mộng đối với lập trình viên và các
Trang 9động trên trình chủ có khả năng nhận dạng và sinh mã tùy theo mục đích và yêu cầu sử dụng cuối của trình khách
Khi lập trình với ứng dụng Web, một trong hai ngôn ngữ lập trình đ-ợc
sử dụng là Visual Basic hay Visual J++ trong trang ASP (Active Server Page) trong những ngôn ngữ lập trình Visual Basic, J++, Visual FoxPro hay Visual C++ trong bộ Visual C++ trong bộ Visual Studio 6.0
Sau nhiều năm phát triển không ngừng, ASP đã đ-ợc nâng cấp từ phiên bản ASP 1.0, ASP 2.0, ASP.NET 1.0, ASP.NET 1.1, rồi đến ASP.NET 2.0, sau này là ASP.NET 3.0
Từ khi công nghệ Microsoft NET ra đời, 4 ngôn ngữ lập trình chính là Visual Basic.NET, C#, C++.NET và J# mở ra một kỷ nguyên mới trong công
nghệ phần mềm, chúng cho phép lập trình viên có thể xây dựng một ứng dụng
chạy trên nền NET bằng một trong các ngôn ngữ trên
Với sự chuẩn hóa cao dựa vào bộ khung (FrameWork), Microsoft cho phép những ứng dụng đ-ợc viết bằng một trong những ngôn ngữ Visual Basic.NET, C#, C++.NET và J# có thể biên dịch ra tập tin định dạng MIL (Microsoft Intermediate Language) có thể chạy trên FrameWork mà không cần trình thực thi (Runtime Engine) riêng biệt cho mỗi ngôn ngữ nh- những ngôn ngữ lập trình tr-ớc đây là Visual Basic 6.0, Visual C++ 6.0, Visual J++ 6.0 thuộc bộ Visual Studio 6.0
ASP.NET 2.0 là phiên bản kế tiếp của ASP.NET 1.1 với nhiều đặc điểm
với về cấu trúc, về cơ cấu, cơ chế thực hiện, quản lý hệ thống, tập điều khiển
đa dạng và t-ơng tác với cơ sở dữ liệu trên NETFrameWork 2.0, cho phép chúng ta xây dựng và triển khai ứng dụng Web tốt hơn
2.1 Yếu tố đặc biệt của ASP.NET 2.0
Ba ngôn ngữ lập trình trong bộ Visual Studio 2005 cho phép ta lập trình ứng dụng ASP.NET 2.0 là C# 2005, Visual Basic 2005 và J# 2005
Có 10 yếu tố đặc biệt ta cần biết khi lập trình ứng dụng Web bầng ASP.NET 2.0 dựa trên một trong ba ngôn ngữ C#, Visual Basic hay J#
Trang 1010
ASP.NET t-ơng tác với NETFrameWork
.NET FrameWork 2.0 là bộ khung chung, cho phép ta phát triển các loại ứng dụng trên nền NET nh-: Console Application Windows Forms, h-ớng đối t-ợng (OO), COM+,…chúng bao gồm lớp, structure, interface, namespace,…
Khi làm việc với ASP.NET 2.0, ta cũng có thể sử dụng những lớp, structure, namespace (không gian tên) hỗ trợ cho ASP.NET 2.0
ASP.NET không cần trình chủ Web
Khác với phiên bản ASP.NET 1.1 là cần phải cài đặt IIS (Internet information Service) trên máy mà ta dùng để lập trình ứng dụng Web, đối với ASP.NET 2.0 thì ta không cần cài đặt IIS trên máy dùng để phát triển ứng dụng ASP.NET 2.0 mà chỉ cần cài đặt trên máy triển khai ứng dụng Thay vào
đó, mỗi khi tạo mới thành công thì một trình chủ ASP.NET Development Server đ-ợc tạo ra t-ơng ứng với ứng dụng đó IIS chính là trình chủ Web cho phép ta triển khai và chạy ứng dụng Web bằng ASP
ASP.NET quản lý theo nhiều lớp
Một lớp trong ứng dụng NET 2.0 cho phép ta tách ra thành nhiều tập tin dựa trên từ khóa partial Điều này cho phép một lớp có thể có nhiều lập
trình viên trong nhóm cùng phát triển
ASP.NET đ-ợc biên dịch thay vì thông dịch
Nếu nh- ta đã làm việc với kịch bản trình chủ ASP 3.0, phần mã và
phần thẻ HTML đ-ợc khai báo chen lẫn nhau, khi triệu gọi trang ASP 3.0 trên trình duyệt, trang ASP 3.0 đ-ợc thông dịch
Khi làm việc với ASP.NET, trang ASP.NET đ-ợc chia thành hai phần
chính là phần giao tiếp và phần mã nguồn Tập tin ứng với phần mã giao tiếp
(khai báo thẻ HTML và điều khiển trình chủ) có tên mở rộng là aspx, trong khi đó tập tin chứa mã lệnh có tên aspx.cs hay aspx.vb (còn gọi là tập tin code -behind) Nếu nh- khi triển khai ứng dụng ASP 3.0 trên máy chủ (hosting), ta
Trang 11tải những trang ASP vừa có mã giao tiếp và mã Visual Basic hay J++ thì khi triển khai ứng dụng ASP.NET, ta chỉ cần tải những trang aspx và tập tin dll
Đối với ASP.NET 2.0 ta có thể biên dịch từ trang ASP.NET thay vì biên dịch dự án nh- phiên bản ASP.NET 1.0 hay 1.1 Điều này có nghĩa là tr-ớc khi triển khai ứng dụng ASP.NET trên máy chủ, ta biên dịch ứng dụng ở chế
độ Release, tập tin dll tạo ra năm trong th- mục
Với cơ chế biên dịch nh- vậy, ta có thể che dấu phần mã viết trong tập
tin code-behind Bằng cách chép tất cả tập tin thuộc phần giao tiếp bao gồm những tập tin aspx, htm, css, js,… và thư mục Bin lên máy chủ thì ta có thể
triệu gọi trang aspx
Tuy nhiên, đối với ASP.NET 2.0 thì ta cần thực hiện chức năng Publish Website thay vì biên dịch bình th-ờng
ASP.NET cho phép lập trình đa ngôn ngữ
Mặc dù ta phải chọn một trong ngôn ngữ lập trình là C#, J# hay Visual Basic khi tạo ra một ứng dụng Website, nh-ng tất cả mọi ứng dụng đ-ợc phát
triển từ một trong ba ngôn ngữ lập trình trên điều biên dịch ra tập tin
IL(Intermediate Language)
Khi thực thi ch-ơng trình, tập tin định dạng IL này đ-ợc biên dịch ra mã máy bằng CLR(Common Language Runtime), một phần chính của NETFrameWork Chẳng hạn, nếu ta có đoạn mã in ra chuỗi “Hello World” viết bằng ngôn ngữ lập trình C#
Namespace HelloWorld {
Public class TestClass {
Private static void Main(string[] args) {
Console.WriteLine(‚Hello World‛) }
} }
Cấu trúc mã định dạng IL của đoạn mã C# trên nh- sau:
Trang 1212
.method public static void Main() cil Managed {
entrypoint .custom instance void [mscorlib]System.STAThreadAttribute::.ctor()=(01 00 00 00) //Code size 14 ()xe)
maxstack 8 IL_0000:nop IL_0001:ldstr ‚Hello World IL_006:call void
[mscorlib]System.Console:WriteLine(string) IL_000b:nop
IL_000c:nop IL_000d:ret }//end of method Module1::Main
ASP.NET thực thi dựa trên CLR
Làm việc trên nền NETFrameWork, ch-ơng trình có mã viết bằng ngôn ngữ lập trình NET đ-ợc gọi là managed code, trong khi đó những ch-ơng trình viết bằng ngôn ngữ lập trình ngoài bộ NET sẽ đ-ợc gọi là unmanaged code ứng dụng ASP.NET 2.0 đ-ợc xây dựng dựa trên ngôn ngữ lập trình C# hay Visual Basic đ-ợc biên dịch ra tập tin định dạng IL và chạy với kênh thi hành là CLR
ASP.NET là h-ớng đối t-ợng
ASP.NET cho phép khai báo phần mã trong cùng tập tin giao tiếp hoặc trong tập tin code-behind Tuy nhiên, khi làm việc với trang ASP.NET hầu nh-
ta sử dụng điều khiển trình chủ HTML, hay ASP.NET 2.0 Để truy cập vào các
điều khiển trình chủ này ta sử dụng ph-ơng thức, thuộc tính của các đối t-ợng t-ơng ứng
Trang 13Chẳng hạn, ta khai báo hai đối t-ợng HTMLControl và WebControl nh-
sau:
<input id=‛Text1‛ runat=‛server‛ type=‛text‛/>
<ASP: TextBox ID=‛TextBox1‛
ASP.NET tạo thành phần quan trong ứng dụng Portal
Một trong những đặc điểm mới của ASP.NET 2.0 là cho phép ta xây dựng một ứng dụng thành phần (WebPart) và tích hợp chúng trong ứng dụng Portal
Một trong những Portol nổi tiếng của hãng Microsoft là Microsoft SharePoint Portal Server
Nếu nh- ta sử dụng SharePoint Portal Server 2003 thì ta cần cài đặt Windows SharePoint Portal Server 2003 và các công cụ phát triển WebPart
Protected override void CreatChidContronl() {
Try {
Base.CreatChidContronl();
Table.table=newTable();
Table.BorderStyle=BorderStyle.Solid;
Table.BorderWidth=Unit.Pixel1();
TableRow tableRow=new TableRow();
TableCell tableCell=new TableCell();
TableCell,text=‛Hello Webpart‛;
TableRow.Cells.Add(tableCell);
Trang 1414
Table.Rows.Add(tableRow);
This.Controls.Add(table);
} catch(Exception ex) {
Page.Response.Write(ex.Message);
} }
ASP.NET là đa thiết bị và trình duyệt
Hầu hết trang ASP.NET 2.0 đều sử dụng các điều khiển trình chủ HTML và ASP.NET 2.0, khi ng-ời sử dụng triệu gọi trang aspx thì kết quả trả
về cho trình khác là thể HTML hay XHTML t-ơng ứng Tuy nhiên tùy thuộc vào trình duyệt mà ng-ời sử dụng dùng để triệu gọi trang ASP mà thẻ t-ơng ứng trả về cho thiết bị gọi là WML (Wireless Markup Language) Đối với ASP.NET 2.0 một số điều khiển trình chủ ASP.NET 2.0 có thể hỗ trợ cho ứng dụng triển khai trên thiết bị PDA và Mobile
ASP.NET dễ triển khai và cấu hình
ứng với mỗi NETFramework ta có thể tìm thấy tập tin machine.config
cho phép ta cấu hình cho mọi ứng dụng ASP.NET trên máy chủ Tuy nhiên trong mỗi ứng dụng Website đều tồn tại tập tin Web.config, ta có thể khai báo trong tập tin này để cấu hình cho mọi ứng dụng Website thay vì phải sử dụng
đến trình điều khiển IIS
2.2 Những đặc điểm mới của ASP.NET 2.0
Đố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 độ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
Trang 15 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á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- ta đang viết một ứng dụng để
bàn Web Services (các dịch vụ Web)
Web Services 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 ta có thể là một lớp đối t-ợng cung cấp ph-ơng thức tự 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 phần đố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) Ta 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
ta đã có thể sẵn sàng để sử dụng
Trạng thái Session
Trang 16Xử lý lỗi (debug) và lần vết (tracing) và 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# Ta 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ú pháp
Quản lý bảo mật
Quản lý bảo mật (Security management), chúng ta có thể tận dụng các dịch vụ đăng nhập (login) tùy 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
Tùy biến vùng đệm trên trình chủ
Bằng cách sử dụng tùy 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 Ta 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- ta 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ã hóa và giải mã thông tin, đối t-ợng đếm số ng-ời truy nhập trang Web (Counter), đối t-ợng truy xuất dữ liệu ADO, đối t-ợng truy nhập các dịch vụ
Trang 17mạ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,…
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
2.3 NET FrameWork và trang ASP.NET 2.3.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ý 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 cho 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 ta 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
Trang 18
18
Hỡnh 2-1: Kiến trỳc NETFrame
Ta có thể tham khảo tất cả những thành phần cấu thành trong
.NETFrameWork 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 ta có thể sử dụng Visual Studio NET kết hợp với môi tr-ờng phát triển (Intergrated Development Environmrnt - IDE) để lập trình ASP.NET, Visual Basic C++, C# …CLS – Common Language Specification Web Service User Interface Data and XML Base Class Library CLR - Common Language Runtime Visual Studio.NET NETFrameWork .NET FrameWork còn kết hợp mô hình đơn giản, dễ sử dụng với các giao thức
Trang 19mở và biến đổi đ-ợc của Internet Để đạt đ-ợc điều này, NE FrameWork bao
gồm các đặc đ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 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ệt của
từng loại .NETFrameWork 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 NETFrameWork đ-ợ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 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: NETFrameWork 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 NETFrameWork 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.3.2 Biên dịch trang ASP.NET
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 trang ASPX (trang code-behind) thành tập tin Class Kế tiếp, tập tin Class
Trang 2020
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
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
Respons RRRRRRRReRespo
ns
Respons Respons
Instantiate
Compile
ASPX Engine
Process and Render
Tập tin DLL
Tập tin ASPX
Tập Tin Class
Generat e
behind Class
Code-Reques
t Request
Instantiate
Trang 21Tó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, ta 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
2.3.3 Các đối t-ợng 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 HttpReques 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 Thuộc tính và ph-ơng
thức của Request thể hiện trong bảng sau:
ph-ơng thức
Diễn giải
1 Filepath FilePa filepath trả về đ-ờng dẫn ảo của yêu
cầu, thuộc tính n này t-ơng đ-ơng với
SCRIPT-NAME trong ASP
2 Files Trả về HttpFileCollection của tập tin nhiều
tập tin đ-ợc tải lên Server (sử dụng cho dạng multi-part/forms)
3 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
4 Params 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 QueryString,
Trang 2222
ServerVariable hay Cookie
5 Path Path đ-ờng dẫn ảo của yêu cầu, t-ơng đ-ơng
với PATH_INFO trong ASP
6 PathInfo Đ-ờng dẫn ảo của yêu cầu, t-ơng đ-ơng với
PATH_INFO trong ASP
7 PhysicalApplicationPath Đ-ờng dẫn vật lý của th- mục gốc, t-ơng
đ-ơng với APPL_PHYSICAL_PATH
8 PhysicalPath Đ-ờng dẫn vật lý của yêu cầu, t-ơng đ-ơng
với PATH_TRANSLATED trong ASP
9 QueryString Trả về một tập dữ liệu của nội dung từ
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
10 TotalBytes Dung l-ợng của Stream trong luồng dữ liệu
11 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,…
12 UserHostAddress Địa chỉ IP của ng-ời sử dụng, t-ơng đ-ơng với REMOTE_ADDR trong ASP
13 UserHostName Tên DNS của ng-ời sử dụng, t-ơng đ-ơng với REMOTE_NAME trong ASP
14 MapPath Chuyển đổi đ-ờng dẫn ảo thành đ-ờng dẫn vật lý
Trang 232 Request Collection trong ASP
Đối t-ợng Request cho phép truy cập đến nội dung của Form hay QueryString
3 Đối t-ợng Respone
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, ta cần quan tâm một
số thuộc tính và ph-ơng thức mới L-u ý rằng, trong ASP ta khai báo đối t-ợng Response.Write nh- sau:
Response.Write Str Trong ASP.NET, phát biểu trên đ-ợc viết lại nh- sau:
Response.Write (Str)
Ta có thể tham khảo chi tiết về đối t-ợng Response trong ASP 3.0 Bảng
2-4 sau sẽ trình bày một số thuộc tính, ph-ơng thức mới và thuộc tinh, ph-ơng
thức thay đổi trong ASP.NET thuộc tính và ph-ơng thức của Response đ-ợc
trình bày trong bảng sau:
2 Redirect Chuyển h-ớng địa chỉ file trong cùng ứng
dụng hay URL khác trong lúc thi hành
3 Write Ghi thông tin từ các kiểu dữ liệu nh- Char,
Object, String, Array ra trang Web
4 WriteFile Ghi một luồng dữ liệu ra tập tin chỉ định
Trang 2424
4 Đố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 ta 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
Đối t-ợng Application 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 choc năng của ASP bằng hai Contents và StaticObjects Collection, 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 phat biểu nh- sau là t-ơng đ-ơng
Application.Contents.Remove(‚Counter‛) Application.Remove(‚Counter‛)
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:
1 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 dụng
2 Count Trả về số phần tử trong ứng dụng
3 Add Thêm phần tử váo ứng dụng
4 Clear Xóa tất cả các phần tử trong ứng dụng
5 Get Trả vè một phần tử chỉ định
6 GetKey Trả về khóa của phần tử chỉ định
7 Set Cập nhật giá trị của phần tử trong ứng
dụng
Trang 255 Đối t-ợng Secssion
Đố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 Concent 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- ta dã 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:
Session.Remove(‚Counter‛) Session.Contents.Remove(‚Counter‛) Thuộc tính và ph-ơng thức của Sission:
1 Count Trả về số phần tử trong Session (phiên làm việc)
2 Clear Xóa tất cả các phần tử trong Session
3 SessionID Trả về một giá trị là chuỗi mà trình chủ cấp cho
Session (trong ASP giá trị này là một Long)
4
Remove Trong ASP, ta có thể xóa 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 ta có thể xóa Session
bằng cách chỉ định tên Trong tr-ờng hợp ta
muốn xóa một phần tử trong Session theo chỉ mục, ta phải sử dụng ph-ơng thức RemoveAt(i)
5
RemoveAt Khi ta muốn xóa một phần tử trong Session theo
chỉ mục, ta phải sử dụng ph-ơng thức
RemoveAt(i)
Trang 2626
2.4 Cấu hình trang ASP.NET
Cấu hình trang (Page Configuration) cho phép chúng ta kiểm soát một
số mặc định của Session trong trang ASP.NET Chẳng hạn nh- khai báo trong
EnableSessionState: Mặc định cho phép sử dụng Session trong ứng
dụng ASP.NET Tuy nhiên, ta cũng có thể vô hiệu hóa thuộc tính này, trong ứng dụng ta không thể khai báo và sử dụng Session
EnableViewState: Cho phép l-u lại Server Control trên Client bằng thẻ