Một trong những điểm mạnh của trang ASP.NET là cơ chế biên dịch một lần. Khi trang ASP.NET đợc triệu gọi lần đầu tiên trên trình duyệt, yêu cầu sẽ đợc truyền sang cho kênh phân tích cú pháp của ASP.NET dể tạo ra lớp ứng với ngôn ngữ lập trình cho trang ASP.NET đó. Sau đó, lớp này sẽ đợc biên dịch ra tập tin. DLL và tự thân nó sẽ khởi tạo và xử lýđể phúc đáp lại cho trình duyệt với kết quả hoàn toàn bằng định dạng HTML.
Trớc tiên, khi trang ASPX đợc triệu gọi thì kênh ASP.NET tạo ra lớp của trang ASP.NET dựa trên tập tin code-behind, rồi tiếp tục biên dịch chúng thành tập tin DLL và khởi tạo để trả về kết quả cho trình duyệt.
Khi ta gọi trang ASP.NET lần thứ hai, thay vì xử lý theo từng bớc thì trang ASP.NET chỉ tham chiếu đến tập tin DLL để xử lý và trả về kết quả cho trình duyệt.
Tuy nhiên, khi làm việc với ASP.NET 2.0 thì tập tin DLL chỉ đợc tạo ra khi ta sử dụng tiện ích Publish đợc tạo ra trong th mục BIN mỗi khi ta thực thi chơng trình bằng cách nhấn phím F5 hay chọn Debug | Start trong Visual Studio.NET 2003.
Với cơ chế biên dịch trang ASP.NET đợc mô phỏng nh trên, khi ta xây dựng xong ứng dụng ASP.NET 2.0, ta có thể sử dụng tiện ích Publish Web Site
từ thực đơn Build | Publish Web Site để tạo ra các DLL và đính kèm theo các tập tin giao tiếp .ASPx để có thể hosting trên trình chủ Web (Web Server). Th mục BIN là th mục dùng để chứa danh sách các tập tin DLL của ứng dụng, chúng sẽ tự động tạo ra khi ta sử dụng tiện ích Publish Web Site.
Giả sử, ta tạo mới Website có tên Fist Website lu trữ trong th mục
D:\books\Asnet 2.0\Tập 1\Chapter2\. Tiếp theo, ta khai báo đoạn chơng trình trong biến cố Load của trang Default.ASPx nh ví dụ sau:
Ví dụ: Khai báo trong biên cố Load
Public partial class_Default: System.Web.UI.Page {
Protected void Page_Load(object sender, EventArgs e) {
Pesponse.Write( First “ ASP.NET 2.0 Page );”
} }
Bằng cách chọn vào Website | Pulish Website và chỉ định th mục
Publish For First WebSite, ta sẽ có th mục BIN và các tập tin .ASPx.
Mỗi khi có sự thay đổi trong tập tin code_behind, ta cần phải biên dịch lại trang đã thay đổi đó và cập nhật lại tin DLL.
Chỉ dẫn trong trang ASP.NET 2.0
chỉ dẫn trong trang ASP.NET là một phần của mọi mặc định tự động khai báo mỗi khi trang ASP.NET đợc tạo ra. Ta có thể sử dụng chỉ dẫn này để kiểm soát sự ứng xử của trang Web hay điểu khiển trình chủ trên trình duyệt.
ASP.NET 2.0 cung cấp các chỉ dẫn thờng đợc sử dụng trong trang .ASPx nh :
Page, Assembly, Control, Implements, Import, Master, OutputCache, PreviousPageType, Refrence và Register.
Chẳng hạn, ta khi báo chỉ dẫn Page ứng với trang ASP.NET 2.0 có tên
Default. ASPx nh sau :
<%Page Language= ‘‘C# AutoEvertWireUp=’’ ‘‘true’’
CodeFile= Default.ASPx.cs‘‘ ’’
Inhereits= _Default %>‘‘ ’’
Trong trờng hợp ta làm việc với ngôn ngữ Visual Basic thì chỉ dẫn khai báo tơng tự nh sau :
<%@ Page Language= VB AutoEvenWireUp= True“ ” “ ”
CodeFile= Default.ASPx.vb“ ”
Inherits= _Default %>“ ”
Để khai báo chỉ dẫn cho trang ASP.NET 2.0, ta sử dụng cú pháp nh sau:
<%@[Directive][Attribute=Value] %>
Bằng cách sử dụng cặp dấu <%@ và %>, ta có thể chỉ định chỉ dẫn trong phần mã giao tiếp (trang .ASPx) trên phần đầu của mỗi trang ASP.NET.
Chẳng hạn, ta có thể khai báo nhiều chỉ dẫn với những thuộc tính đơn có cú pháp nh sau :
<%@[Directive][Attribute=Value] [Attribute=Value] [Attribute=Value] %>
Trong đó, Directive là tên chỉ dẫn, Attribute là tên thuôc tính và Value
chính là giá trị của thuộc tính, ASP.NET 2.0 cung cấp danh sách các chỉ dẫn trình bày nh sau :
Tên chỉ dẫn Diễn giải
Assembly Liên kết Assembly và Page hay user control Control Chỉ dẫn này sử dụng cho user controls (.ascx).
Implements Chỉ dẫn dùng để chỉ định phần cài đặt cho giao tiếp
.NETFrameWork.
Master Chỉ dẫn cho phép ta chỉ định trang chính ứng với thuộc tính và giá trị khi trang này đợc biên dịch. chỉ dẫn này đợc khai báo trong trang Master (.master).
MasterType Liên kết tên lớp đến Page theo thứ tự tham chiếu trên
master page.
OutputCache Chỉ dẫn xho phép ta kiểm soát caching dùng cho quá trình kết xuất dữ liệu của Page hay user control (sử dụng khi làm việc với đối tợng Cache).
Page Cho phép ta chỉ định trang ứng với thuộc tính và giá trị khi trang này đợc biên dịch (áp dụng cho .ASPx).
PreviousPageType Cho phép trang ASP.NET làm việc với trờng hợp postblack
từ trang khác trong cùng ứng dụng.
Reference Chỉ dẫn liên kết Page hay user control vào Page hay user control hiện hành.
Register Liên kết đến không gian tên hay tên lớp cho điều khiển trình chủ.
@Page
Chỉ dẫn @Page cho phép ta chỉ định thuộc tính với giá trị làm thay đổi ứng xử của trang ASP.NET 2.0 khi nó đợc biên dịch.
ASP.NET 2.0 cung cấp danh sách các thuộc tính đợc trình bày nh sau :
ASPCompat
Cho phép trang thực thi trong tiến trình đơn. Giá trị mặc định của thuộc tính này là False
Asyns
Chỉ định trang ASP.NET đợc xử lý đồng bộ hay không đồng bộ
AutoEventWireUp
Chỉ định biến cố của trang ASP.NET tự động kích hoạt khi gắn giá trị là True. Giá trị mặc địnhcủa thuộc tính này là True.
Cho phép ta sử dụng bộ nhớ đệm cho phúc đáp HTTP. Giá trị mặc định cho thuộc tính này là True.
<%@ Page Language= C# AutoEventWireup= True” ” “ ”
Buffer= True ConFile= BufferPage.ASPx.cs“ ” “ ”
Inherits= BufferPage %>“ ”
ClassName
Chỉ định tên lớp đợc sử dụng trong trang ASP.NET khi nó đợc biên dịch.
<%@ Page Language= C# AutoEventWireUp= True“ ” “ ”
ClassName= ClassName1.cs“ ”
CodeFile= ClassNamePage.ASPx.cs“ ”
Inherits= ClassNamePage %>“ ”
CodeFile
Tham chiếu đến tập tin code_behind nơi khai báo biến, phơng thức, thuộc tính và biến cố tơng ứng với tập tin .ASPx
<%@ Page Language= C# AutoEventWireUp= True“ ” “ ”
CodeFile= Default.ASPx.cs“ ”
Inherits= _Default %>“ ”
CodePage
Cho phép ta chỉ định mã trang ASP.NET 2.0 khi nhận phúc đáp
<%@ Page Language= C# CodePage= 1254 AutoEventWireUp=“ ” “ ”
True CodeFile= CodePage.ASPx.cs
“ ” “ ”
Inherits= “CodePage %>”
CompilerOptions
Chỉ định tuỳ chọn trình biên dịch cho trang ASP.NET
ContentType
Khai báo kiểu nội dung trang HTTP dạng chuẩn MIME (Multipurpose Internet Mail Extension).
Chơng III:
xây dựng Website “phòng trọ sinh Viên” 3.1. Phân tích và thiết kế hệ thống
Mục đích và yêu cầu 1. Mục đích
Việc xây dựng Website phòng trọ sinh viên nhằm đạt đợc hai mục tiêu chính:
Thứ nhất: áp dụng công nghệ xây dựng Web động ASP.NET vào việc giải quyết bài toán thực tế.
Thứ hai: Giải quyết bài toán phòng trọ sinh viên thông qua môi trờng mạng máy tính toàn cầu Internet. Sinh viên có thể tìm đợc phòng trọ phù hợp với yêu cầu, chủ trọ có thể giới thiệu phòng trọ của mình một cách dễ dàng. Trang Web có chức năng giống một trang rao vặt.
2. Yêu cầu
• Website xây dựng cần giải quyết tốt nghiệp vụ tìm kiếm và giới thiệu phòng trọ.
• Tận dụng đợc các thế mạnh của công nghệ và môi trờng truyền dẫn trong việc truyền tải thông tin.
• Sản phẩm tạo ra phải có tính thực tế và cố gắng bám sát nhu cầu thực tế tạo ra các ứng dụng cho sản phẩm.
• Tuân thủ các quy chuẩn thiết kế Website.
Đặc tả bài toán
Bài toán đợc xây dựng nhằm phục vụ hai đối tợng chính đó là ngời cần tìm phòng trọ (phần lớn là sinh viên) và chủ trọ có phòng cho thuê.
1.Đối với sinh viên thuê phòng trọ
Khi truy cập vào trang Web này sinh viên có thể tham khảo, xem tất cả các phòng trọ với rất nhiều địa chỉ khác nhau, giá cả, diện tích rất đa dạng để cho sinh viên lựa chọn. Sau đó để tìm kiếm phòng trọ phù hợp với mình một cách chi tiết sinh viên có thể vào choc năng tìm kiếm. Tại đây sẽ đa ra những kết quả theo đúng yêu cầu để sinh viên lựa chọn.
2.Đối với chủ trọ
Khi chủ trọ đã sở hữu một tài khoản để đăng ký giới thiệu phòng trọ của mình. Chủ trọ sẽ khai báo tất cả các thông tin mà khu trọ nhà mình có: diện tích, giá phòng, loại phòng, khoảng cách tới trờng, số điện thoại, tình trạng cho thuê…. Đây là cách giao tiếp gián tiếp giữa chủ trọ và ngời đi thuê phòng.
3.Nhóm đối tợng khác
Đây là nhóm đối tợng liên quan đến Website: liên hệ góp ý để hoàn chỉnh
Website hơn.
3.1.1. Phân tích hệ thống
Một số khái niệm:
Biểu đồ phân cấp chức năng
Biểu đồ phân cấp chức năng là biểu đồ hình cây, trong đó mỗi nút là một chức năng, nó thể hiện sự phân rã các chức năng của hệ thống. Mỗi chức năng đợc biểu diễn bằng hình chữ nhật, trong đó có ghi tên chức năng. Kết nối giữa các chức năng phân cấp đợc biểu diễn bằng đoạn thẳng hoặc đờng gấp khúc.
Biểu đồ luồng dữ liệu
Biểu đồ luồng dữ liệu là phơng tiện diễn tả chức năng xử lý và việc trao đổi thông tin giữa các chức năng. Biểu đồ luồng dữ liệu gồm có 5 thành phần:
Chức năng xử lý : Diễn tả các thao tác nhiệm vụ hay tiến
trình xử lý nào đó. Các chức năng này đợc biểu diễn bởi hình tròn hoặc hình ô van. Trong đó có ghi tên chức năng.
Luồng dữ liệu : Luồng thông tin vào hay ra một chức năng xử lý.
Luồng thông dữ liệu đợc biểu diễn bằng mũi tên, bên cạnh có ghi tên luồng, chiều của mũi tên chỉ chiều đi của luồng.
Tên luồng dữ liệu
Kho dữ liệu : Bao gồm các dữ liệu đợc lu trữ lại trong khoảng thời
gian để các chức năng xử lý hoặc tác nhân trong sử dụng. Kho dữ liệu đợc biểu diễn bằng cặp đoạn thẳng song song ở giữa có ghi tên kho.
Tên kho dữ liệu
Tác nhân ngoài : Diễn tả một ngời, một nhóm ngời hay một tổ
chức ở bên ngoài hệ thống nhng trao đổi thông tin với hệ thống. Tác nhân ngoài đợc biểu diễn bằng một hình chữ nhật, trong đó có ghi tên tác nhân ngoài.
Tác nhân trong : Là một chức năng hay một hệ thống con. Tác
nhân trong đợc biểu diễn bằng một hình chữ nhật hở một cạnh, trong đó có ghi tên tác nhân trong.
Tên chức năng xử lý
Tên tác nhân trong
Biểu đồ phân cấp chức năng hệ thống
Biểu đồ luồng dữ liệu hệ thống
1. Biểu đồ luồng dữ liệu mức ngữ cảnh của hệ thống
(2) (3) Người tìm phòng trọ Website tìm kiếm phòng trọ (1) Chủ trọ Website tìm kiếm phòng trọ Trang chủ Thông tin chủ trọ Tìm
kiếm Tin trường Đăng ký Đăng nhập
Thông tin phòng trọ
Chú thích :
1)Thông tin dãy trọ
2) Thông tin yêu cầu tìm kiếm 3) Kết quả tìm kiếm
2. Biểu đồ luồng dữ liệu mức đỉnh
Chú thích :
1) Thông tin chủ trọ 2) Thông tin phòng trọ
3) Thông tin yêu cầu tìm kiếm 4) Kết quả tìm kiếm (4) Chủ trọ (1) (2) Tìm kiếm phòng trọ (3) Người tìm phòng trọ Đăng ký thông tin phòng trọ Đăng ký thông tin chủ trọ Tệp CSDL
3. Biểu đồ luồng dữ liệu mức dới đỉnh
Chức năng đăng ký thông tin chủ trọ
Chú thích :
1) Thông tin chủ trọ
Chức năng đăng ký thông tin phòng trọ
Chú thích : 1) Thông tin phòng trọ Chức năng tìm kiếm phòng trọ Tệp CSDL Người tìm phòng trọ Tìm kiếm phòng trọ (1) (2) Chủ trọ Đăng ký thông tin chủ trọ (1) Tệp CSDL (1) Chủ trọ Đăng ký thông tin phòng trọ Tệp CSDL
Chú thích:
1) Thông tin yêu cầu tìm kiếm phòng trọ 2) Kết quả tìm kiếm
3.1.2. tHIếT Kế Hệ THốNG
Bảng tbOwner
Tên trờng Kiểu dữ liệu Chú thích
OwnerID bigint Mã tơng ứng chủ trọ UserName nvarchar(50) Tên đăng nhập của chủ trọ Password nvarchar(50) Mật khẩu đăng nhập của chủ trọ FullName nvarchar(50) Họ tên chủ trọ
Email nvarchar(50) Địa chỉ Email HomePhone nvarchar(15) Điện thoại nhà MobilePhone nvarchar(15) Điện thoại di động
Bảng tbBoardingHouse
Tên trờng Kiểu dữ liệu Chú thích
ID bigint Mã tơng ứng phòng trọ OwnerID bigint Mã tơng ứng của chủ trọ Address nvarchar(MAX) Địa chỉ dãy trọ
Price int Giá phòng
Area float Diện tích phòng
NumberOfRoom smallint Tổng số phòng cùng loại
NumberOfRoomFree smallint Số phòng cùng loại cha có ngời thuê
Distance float Khoảng cách từ dãy trọ đến trờng RoomType bit Kiểu phòng (Khép kín hoặc Không
khép kín)
Note ntext Thông tin chi tiết DateCreate datetime Ngày đăng ký
Status bit Trạng thái (Cho thuê hoặc ngừng cho thuê)
Bảng tblFeedback
Tên trờng Kiểu dữ liệu Chú thích
ID int Mã tơng ứng ngời phản hồi FullName nvarchar(50) Họ tên ngời gửi phản hồi Address nvarchar(255) Địa chỉ ngời gửi phản hồi Email nvarchar(50) Địa chỉ Email
Title nvarchar(50) Tiêu đề bài viết
[Content] nvarchar(MAX) Nội dung bài phản hồi CreateDate datetime Ngày phản hồi
3.2. Cài đặt hệ thống 3.2.1. Trang chủ
Hình 1: Hình minh họa trang chủ
ở trang này chúng ta sẽ nhìn thấy toàn bộ các bản ghi chứa thông tin của các phòng trọ khi đợc chủ trọ đăng ký. Bản ghi mới nhất sẽ đợc xếp lên trên cùng. Bên cạnh đó, 20 bản ghi có giá phòng đắt nhất và 20 bản ghi có giá phòng rẻ nhất sẽ đợc thể hiện ở trang chủ này.
Khi click vào từng bản ghi thì thông tin chi tiết sẽ đợc hiện ra nh sau:
Hình 2: Hình minh họa các thông tin chi tiết 3.2.2. Trang tìm phòng
ở trang tìm phòng, chúng ta sẽ có các cách tìm kiếm: tìm theo địa chỉ, tìm theo giá phòng, tìm theo diện tích phòng, tìm theo kiểu phòng (khép kín hay không khép kín), tìm theo khoảng cách tới trờng, tìm theo số phòng trống. Chúng ta có thể tìm theo một hoặc nhiều tiêu chuẩn cùng một lúc. Các kết quả thỏa mãn điều kiện tìm kiếm sẽ hiện ra phía dới (cho biết cả các kết quả tìm, ví dụ: 2,3,4…kết quả cho chúng ta lựa chọn). Nh hình dới đây:
Hình 3: Hình minh họa chức năng tìm phòng 3.2.3. Link tới trang Web của trờng Đại học Vinh
Đây là một đờng link tới trang Web của trờng Đại học Vinh. Khi click vào “tin trờng” chúng ta sẽ truy nhập vào trang Web của trờng để xem thông tất cả các thông tin về trờng, về các khoa, các hoạt động đoàn,…….
Hình 4: Trang Web trờng Đại học Vinh
3.2.4. Trang giới thiệu
Trang này nhằm mục đích giới thiệu về trang Web với ngời sử dụng. Trong đó có cả ngời đi tìm phòng và chủ trọ muốn giới thiệu phòng. Nó đợc thể hiện nh dới đây:
Hình 5: Trang giới thiệu về trang Web
3.2.5. Trang đăng ký
Đây là một trong những trang quan trọng nhất thể hiện mục đích và nội dung của trang Web. Tại đây, các chủ trọ cần đăng nhập vào trang Web và có thể sử dụng các chức năng nh: khai báo thông tin phòng trọ, thay đổi mật khẩu, thay đổi thông tin chủ trọ, và có thể đăng xuất.
Khi đăng nhập chủ trọ cần điền đầy đủ thông tin nh: tên đăng nhập, mật khẩu, họ tên, địa chỉ e-mail, điện thoại bàn, điện thoại di động. Sau thao tác đó các chủ trọ đã có một tài khoản và một mật khẩu. Hình sau ví dụ minh họa cho thao tác này:
Hình 6: Hình minh họa về chức năng đăng ký
Sau khi đăng ký, bạn có một tài khoản và mật khẩu. Bạn có thể đăng nhập để đổi mật khẩu, sửa đổi thông tin của mình, để quản lý dãy trọ (khai báo thêm phòng, ngừng cho thuê, thay đổi thông tin chi tiết…). Sau đây là hình minh họa của thao tác đăng nhập để quản lý dãy trọ:
Hình 7: Hình minh họa các thao tác sau khi đăng nhập
Tại đây, chúng ta có thể khai báo thêm các phòng trọ ở các địa chỉ khác nhau, sửa đổi thông tin phòng trọ, xem thông tin chi tiết, hay ngừng cho thuê…..
Kết luận
1. Thực hiện đề tài khóa luận tốt nghiệp tôi đã đạt đợc những kết quả sau:
Đã tìm hiểu Web Page (HTML), ASP.NET.
Đã xây dựng đợc Website phòng trọ sinh viên đạt đợc hai mục tiêu:
- áp dụng công nghệ xây dựng Web động ASP.NET vào việc giải quyết các bài toán thực tế.
- Giải quyết bài toán “phòng trọ sinh viên” thông qua môi trờng mạng máy tính toàn cầu Internet. Tạo ra một môi trờng giao tiếp gián tiếp giữa chủ trọ