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 tr
Trang 1Lời cảm ơn
Em 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áoKhoa 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ànhkhóa luận này
Vinh, tháng 5 năm 2009
Nguyễn Thị Bính
Trang 2Mục lục
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“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
Mở đầu
1 Lý do chọn đề tài
Hà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 cha 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ỡ, cha quen đờng thuộc
Sinh viên thực hiện: Nguyễn Thị Bính Lớp 46B3
Trang 3lố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ầusinh 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ạicổng trờng, bến xe, ga tàu… Nh Nh vậy sẽ gây mất trật tự nơi công cộng khitranh 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: “phòng trọ sinh viên”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ệnhọ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 đónkhá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”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ế đếnmứ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”Phòng trọ sinh viên”
Trang 4Chơng I Giới thiệu interner, HTML
“phòng trọ sinh viên”Internet , World Wide Web , và Web page” “phòng trọ sinh viên” ” “phòng trọ sinh viên” ” 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 lu 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ị đếnvớ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 lu trên Web Server với đuôi htm hoặc HTML.
Khi 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ủ
Trang 5- Đ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’s Navigator và Microsoft s Internet Explorer’s Navigator là haitrì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
Để 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 lu 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ở (“phòng trọ sinh viên”<>”) và thẻ
đóng (“phòng trọ sinh viên”</>”), 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:
Trang 6- 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 đề để lu 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 cá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,… Nh
Thuộc tính Align gồm các giá trị sau:
Value Description
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
Sinh viên thực hiện: Nguyễn Thị Bính Lớp 46B3
Trang 7Chơng II Giới thiệu về ASP.NET
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 … Nh 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 nhng đồng thời vẫn hiển thị đúng đắn trên cáctrình duyệt cũ quá là cơn ác mộng đối với lập trình viên và các nhà thiết kế
Web.
Một trong những cách giải quyết vấn đề trên đó là hớng đến từng môitrờng của ứng dụng để thiết kế các trang tài liệu khác nhau Tuy nhiên với
ASP.NET ta không cần phải viết mã lệnh, các thành phần điều khiển hoạt
độ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
Trang 8Khi 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#.
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
Sinh viên thực hiện: Nguyễn Thị Bính Lớp 46B3
Trang 9Khá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 tả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,… Nh 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, nhng tất cả mọi ứng dụng đợc phát
Trang 10triể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
Cấu trúc mã định dạng IL của đoạn mã C# trên nh sau:
.method public static void Main() cil Managed
}//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
Sinh viên thực hiện: Nguyễn Thị Bính Lớp 46B3
Trang 11Visual 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
Chẳ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” ”
runat= server ></ASP:TextBox>” ”
Ta có thể truy cập thuộc tính của hai điều khiển trình chủ trên trong tậptin code-behind hay thẻ <script runat=server> bằng cú pháp tơng tự nh sau:
Text1 Value= ASP.NET 2.0 ;” ”
TextBox1.Text= ADP.NET 2.0 ;” ”
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 12 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.
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ịchtrên trình chủ (mô hình chuyển giao)
Sinh viên thực hiện: Nguyễn Thị Bính Lớp 46B3
Trang 13 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
Xử 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ụngmộ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 ngaytrong 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
Trang 14 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 “phòng trọ sinh viên”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ụ 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,… 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
Sinh viên thực hiện: Nguyễn Thị Bính Lớp 46B3
Trang 15Hỡ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 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 mở 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:
Trang 16Sự 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 địnhdạng XML bằng nghi thức SOAP (Simple Object Access Protocol).Khả năngbiế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ậptrì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 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
Sinh viên thực hiện: Nguyễn Thị Bính Lớp 46B3
ASPX Engin e
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 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., nhng 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 Lu ý 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:
Respons RRRRRRRReRespons
ResponsRespons
Instantiate
Compile
Trang 18TT Thuộc tính,
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, 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
Sinh viên thực hiện: Nguyễn Thị Bính Lớp 46B3
Trang 1914 MapPath Chuyển đổi đờng dẫn ảo thành đờng dẫn vậtlý
15 SaveAS Lu yêu cầu HTTP vào đĩa
Trang 202 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 Lu ý 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.
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ọitrình duyệt đều có thể lu 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ỗ
Sinh viên thực hiện: Nguyễn Thị Bính Lớp 46B3
Trang 21trợ hầu hết các choc năng của ASP bằng hai Contents và StaticObjects
Collection, nhng 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 )“phòng trọ sinh viên” ”
Application.Remove( Counter )“phòng trọ sinh viên” ”
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àytrong bảng:
TT Thuộc tính, ph- ơng thức Diễn giải
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
Session.Remove( Counter )“phòng trọ sinh viên” ”
Session.Contents.Remove( Counter )“phòng trọ sinh viên” ”
Thuộc tính và phơng thức của Sission:
TT Thuộc tính, ph- ơng thức Diễn giải
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
Trang 22cung 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)
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 lu lại Server Control trên Client bằng thẻ
Trang 23Tìm hiểu cách quản lý lỗi bằng giải pháp khai báo tập tin Web.config, mặc định khai báo customErrors trong Web.config nh ví dụ sau:
Ví dụ: Khai báo CustomErrors với mode là Off
<system.Web>
<customErrors
mode= Off />” ”
</system.Web>
2.4.2 Khai báo tập tin machine.config
Nh đã giới thiệu ở phần trên, mỗi ứng dụng cấu hình trong IIS đều có nhiều nhất một tập tin Web.config trong th mục gốc Nhng nếu muốn tất cả ứng dụng trong IIS cùng sử dụng chung một cấu hình, ta có thể khai báo trong
có thay đổi về cấu trúc lẫn nội dung, thì ASP.NET sẽ nạp lại cấu hình mới.
2.5 Kiến trúc trang ASP.NET
Sự kiện Page_load đợc đợc phát sinh đầu tiên mỗi khi trang ASP.NET
đợc triệu gọi từ trình khách, tiếp đến là các sự kiện khác nhau của nhữngthành phần điều khiển bên trong trang Sau cùng khi bộ diễn dịch đã thực thixong các yêu cầu của trang, trang sẽ đợc giải phóng Lúc này sự kiện
Page_Unload sẽ đợc triệu gọi.
Sau đây là mô hình thứ tự thực hiện các sự kiện trong một trang
ASP.NET