Tải bản đầy đủ (.doc) (29 trang)

xây dựng web site cho phép sinh viên đăng ký lớp tín chỉ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (374.59 KB, 29 trang )

- 1 -
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP VIỆT HUNG
KHOA ĐIỆN - ĐIỆN TỬ - CNTT
Bộ môn Công nghệ thông tin
BÁO CÁO THỰC TẬP TỐT NGHIỆP
Tên đề tài:
Xây dựng web site cho phép sinh viên đăng ký lớp tín chỉ
Giảng viên hướng dẫn : NGUYỄN HỒNG QUÂN
Sinh viên thực hiện : NGUYỄN HỮU NGỌC
Lớp : 34 CĐLT TIN ỨNG DỤNG
Khóa : 34
Hà Nội, tháng 06 năm 2012
- 2 -
NHẬN XÉT
(Của giảng viên hướng dẫn)
………………………………………………………………………………….
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
- 3 -
LỜI CẢM ƠN


Đầu tiên cho phép em được gửi lời cảm ơn chân thành và sâu sắc nhất đến quý
thầy cô giáo trong Khoa Điện – Điện tử - Công nghệ thông tin, đặc biệt là quý thầy cô
Bộ môn hệ thống thông tin quản lý đã tận tình chỉ dạy và quan tâm đến em trong suốt
quá trình học tập và rèn luyện tại Khoa.
Xin chân thành cảm ơn sự hướng dẫn và giúp đỡ tận tình của Thầy Nguyễn
Hồng Quân, đã giúp đỡ em khắc phục những khó khăn để hoàn thành tốt báo cáo thực
tập với đề tài Đề tài: “Xây dựng web site cho phép sinh viên đăng ký lớp tín chỉ”.
Cuối cùng em xin gửi lời chúc đến quý thầy cô sức khỏe và thành công!.
- 4 -
MỤC LỤC
MỞ ĐẦU
I. Đặt vấn đề
II. Mô tả bài toán
III. Mục Đích

IV. Nhiệm vụ của đề tài
CHƯƠNG I:PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
I.CÁC CHỨC NĂNG CỦA HỆ THỐNG
II.Các biểu đồ.
1.Biểu đồ đăng ký môn học.

2. Biểu đồ quản lý sinh viên.
3.Biểu đồ thống kê.
4.Biểu đồ quản lý học phần

CHƯƠNG II:THIẾT KẾ CƠ SỞ DỮ LIỆU
I. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MySQL
II.Thiết kế cơ sở dữ liệu cho web.
1.tbl_sinh viên.
2. tbl_môn học.

3.Danh sách sinh viên đã đăng kí môn học.
CHƯƠNG III:THIẾT KẾ TRANG WEB
I.DAO DIỆN ĐĂNG NHẬP
II. Đăng Ký

Môn Học
.
Bảng danh sách những môn mà sinh viên đã đăng ký.
CHƯƠNG IV: ASP.NET
- 5 -
MỞ ĐẦU
I. Đặt vấn đề.
Với tốc độ phát triển không ngừng như vũ bão của khoa học của thế kỷ XXI, thế
kỷ khoa học công nghệ và sự phát triển mạnh mẽ của công nghệ thông tin, đã cho phép
ứng dụng nhiều lĩnh vực khoa học trong đó có Tin học vào cuộc sống làm cho đời
sống xã hội ngày càng được nâng cao.
Trong những năm gần đây, nền Công nghệ thông tin trên toàn cầu và nước ta đã
có phát triển trên mọi lĩnh vực trong cuộc sống cũng như trong công tác quản lý xã
hội. Việc ứng dụng Công Nghệ Thông Tin trong công tác quản lý, thương mại đã đem
lại nhiều lợi ích thiết thực cho các cơ quan doanh nghiệp. Giúp cho mọi tầng lớp trong
xã hội có thể chao đổi thông tin, chia sẻ thông tin, xem thông tin, mua bán trao đổi
hàng hóa trực tuyến thông qua Internet một cách nhanh chóng và hiệu quả, nâng cao
tầm hiểu biết, ngồn chi thức của nhân loài đang tồn tại trong cuộc sống của chúng ta
hàng ngày.
Để đáp ứng cho những nhu cầu trong trao đổi thông tin, tìm kiếm, và bảo mật
thông giúp cho quá trình giao dịch thương mại thì chúng ta phải lưu trữ thong tin và
quản trị thông tin một cách hiệu quả, bảo mật trong giao dịch không chỉ là việc lập
trình đơn thuần mà phải xây dựng một cách có hệ thống. Các giai đoạn phân tích, thiết
kế được tiến hành một cách tỷ mỉ và chính xác.
Giáo dục là nền tảng cho sự phát triển của cả một dân tộc, đặc biệt là giáo dục ở

bậc cao đẳng và đại học. Người ta thường dùng các chỉ số kinh tế để đánh giá sự phát
triển của một quốc gia, thế nhưng để đánh giá sự phát triển của cả một dân tộc thì
người ta lại xét đến các khía cạnh của giáo dục đặc biệt là giáo dục cao đẳng và đại
học. Trên thế giới, các quốc gia đã phát triển đều là những nước có nền giáo dục tiên
tiến, với những trường đại học hàng đầu tiêu biểu là Hoa Kỳ, Nhật Bản, Anh và gần
chúng ta nhất là Singapore.
Nền giáo dục của nước ta đang từng bước cải cách và phát triển.
Trong quá trình phát triển của mình, Đại Học Công Nghiệp Việt Hung đang
chuyển dần từ Đào tạo theo niên chế sang Đào tạo theo tín chỉ. Quản lý đào tạo tín chỉ
tuy là một công việc khó khăn và phức tạp nhưng công việc này vô cùng quan trọng;
quản lý tốt thì chất lượng đào tạo được nâng cao.
- 6 -
II. Mô tả bài toán.
Hiện tại, việc quản lý đào tạo tín chỉ tại Đại Học Công Nghiệp Việt Hung đang
gặp một số khó khăn, xuất phát từ nhiều nguyên nhân khác nhau: mới đầu chuyển sang
đào tạo tín chỉ, hệ thống quản lý mới xây dựng, chưa thống nhất, và việc quản lý này
vẫn còn mang nhiều ảnh hưởng của hệ thống quản lý niên chế hiện có. Sinh viên phải
đăng ký môn học bằng tay, việc kiểm tra xung đột về thời khóa biểu của sinh viên
không được thực hiện trong quá trình đăng ký. Sinh viên vẫn chưa biết được quan hệ
của các học phần, học phần nào nên học trước học phần nào nên học sau Việc quản lý
của nhân viên quản trị cũng gặp nhiều khó khăn như xây dựng khung chương trình,
xây dựng thời khóa biểu, nhập điểm .
Bài toán đặt ra lúc này là làm sao để xây dựng được một hệ thống website quản
lý đào tạo tín chỉ đáp ứng được tất cả nhu cầu cho giáo viên, sinh viên và quản trị viên.
Cụ thể là hệ thống website phải có những chức năng sau.

Hệ thống cho phép sinh viên đăng ký học phần.

Hệ thống cho phép sinh viên đăng ký tín chỉ.


Hệ thống còn giúp sinh viên biết được học phần nào mình đã đăng kí.
III. Mục Đích.

Giảm thiểu nhân công.

Thuận tiện cho sinh viên trong việc đăng kí môn học.

Cho phép sinh viên biết được số tiền mà mình phải đóng là bao nhiêu cho
mỗi môn học mỗi tín chỉ.
IV. Nhiệm vụ của đề tài
- Đề tài cần phải tìm hiểu rõ mục đích của đào tạo tín chỉ:
- Tín chỉ là gì : Có một số phát biểu không giống nhau về khái niệm tín chỉ; tuy
nhiên một định nghĩa của Jamé Quann, Đại học Quốc gia Washington được nhiều
người tham khảo : “ Tín chỉ là một đại lượng đo toàn bộ thời gian (khối lượng kiến
thức được tích luỹ trong thời gian!) bắt buộc đối với một người học bình thường để
học một môn học cụ thể, bao gồm : 1) Thời gian lên lớp; 2) thời gian hoạt động khác
( hoạt động nhóm, làm việc trong phòng thí nghiệm, thực tế thực tập… được thời khoá
biểu quy định); 3) Thời gian tự học, tự nghiên cứu để hoàn thành nhiệm vụ học tập
được giao. Đối với các môn học lí thuyết 1 tín chỉ là một giờ học lên lớp (kèm theo ít
nhất 2 giờ học không lên lớp) mỗi tuần và kéo dài trong suốt một học kỳ (thường 15
tuần); đối với môn học thực hành là 2 giờ (kèm theo ít nhất 1 giờ chuẩn bị) trong 1
tuần; đối với tự nghiên cứu, tự học có hướng dẫn- ít nhất 3 giờ làm việc trong 1 tuần”.
- 7 -
Khái niệm này là khái niệm công cụ cho cả người dạy; người học và cả người quản lí
đào tạo. Tuy nhiên khi cụ thể hoá khái niệm này cho hoạt dộng dạy học thì đây là khái
niệm có trọng số chú ý và cần nhận thức thấu đáo đối với người dạy và người học khi
tiến hành dạy học theo tín chỉ.
Mục đích của đào tạo theo học chế tín chỉ là lấy người học làm trung tâm. Theo
đó, giảng viên chỉ định hướng tổng quát để sinh viên tự chọn, tự xây dựng kế hoạch
học tập. Để phục vụ cho công tác quản lý đào tạo theo học chế tín chỉ, trường đã xây

dựng chương trình đào tạo, ban hành qui định về công tác học vụ.
Theo học chế niên chế, kiến thức của mỗi học phần và toàn khóa học được đo lường
theo đơn vị học trình. Còn theo học chế tín chỉ, đơn vị tính là tín chỉ. Mỗi tín chỉ tương
đương với 15 tiết học lý thuyết trên lớp; 30 đến 45 tiết thực hành, thí nghiệm, thảo
luận, ; 45 đến 60 giờ làm tiểu luận, đồ án ; 60 đến 90 giờ thực tế ở cơ sở. 1 đơn vị
học trình hay 1 tín chỉ đều tương đương với 15 tiết học lý thuyết trên lớp. Tuy nhiên,
học theo học chế tín chỉ, sinh viên phải tự học nhiều hơn. Để tiếp thu được 1 tín chỉ,
sinh viên phải dành ít nhất 30 giờ tự học.
Học chế niên chế xác định rõ ở học kỳ nào, năm học nào, sinh viên phải học
những môn gì. Còn chương trình đào tạo theo học chế tín chỉ không xác định từng học
phần cụ thể ở từng học kỳ mà liệt kê tất cả những học phần cần học; trong đó, có qui
định học phần tự chọn, học phần bắt buộc và xác định học phần tiên quyết để quy định
trình tự học, tức là sinh viên phải hoàn thành học phần đó mới được đăng ký học phần
tiếp theo. Dựa trên khung chương trình chung và tư vấn của cố vấn học tập, mỗi sinh
viên sẽ tự xây dựng một chương trình học tập phù hợp cho riêng mình. Tùy theo khả
năng và điều kiện, sinh viên có thể rút ngắn hoặc kéo dài thời gian học tập. Thời gian
được phép kéo dài của chương trình đại học là 4 năm, tức tổng thời gian được phép
của khóa học đại học là 8 năm. Để đảm bảo tiến độ thời gian hoàn thành khóa học và
đảm bảo chất lượng học tập, trường quy định sinh viên chỉ được đăng ký tối thiểu 15
tín chỉ và tối đa 20 tín chỉ ở học kỳ chính; đăng ký tối thiểu 6 tín chỉ và tối đa 8 tín chỉ
ở học kỳ hè.
- Cần phải demo được một web site cho phép sinh viên đăng ký lớp tín chỉ. Đáp
ứng được các yêu cầu đặt ra trong đề tài yêu cầu.
- 8 -
CHƯƠNG I:
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
I. CÁC CHỨC NĂNG CỦA HỆ THỐNG.

Quản lý dịch vụ sinh viên.


Quản lý học phần.
- 9 -

Đăng ký.

Người quản lý thống kê số lượng sinh viên đăng ký.

Cho phép sinh viên đăng ký môn học, học phần.

Cho phép sinh viên biết được số tiền phải trả cho mỗi môn, mỗi học
phần.
II. Các biểu đồ.
1.Biểu đồ đăng ký môn học.
Dang ky
Dang ky moi mon hoc
Dang ky them mon hoc
Cho phép sinh viên đăng ký được mỗi môn học hoặc đăng ký thêm một môn học.
2. Biểu đồ quản lý sinh viên.
- 10 -
Quan ly thong tin sinh vien
Quan ly sinh vien
Quan ly mon hoc
Cho phép quản lý thông tin sinh viên và môn hoc mà sinh viên đó đã đăng ký.
3.Biểu đồ thống kê.
Thong ke so luong
Thong ke theo hoc phan
Thong ke theo thong tin sinh vien
Cho phép người quản lý biết được số lượng sinh viên đăng ký học phần đó.
4.Biểu đồ quản lý học phần.
- 11 -

Quan ly hoc phan
Quan ly theo so tiet
Quan ly theo thoi gian
Quan ly theo so trinh
Cho phép sinh viên biết được số trình, số tiết, và thời gian học.

- 12 -
CHƯƠNG II:
THIẾT KẾ CƠ SỞ DỮ LIỆU
I. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MySQL
SQL là viết tắt của Structure Query Language, nó là một công cụ quản lý dữ
liệu được sử dụng phổ biến ở nhiều lĩnh vực. Hầu hết các ngôn ngữ bậc cao đều có
trình hỗ trợ SQL như Visual Basic, Oracle, Visual C
Trong Oracle tất cả các chương trình và người sử dụng phải sử dụng SQL để
truy nhập vào dữ liệu trong Cơ Sở Dữ Liệu (CSDL) của Oracle. Các chương trình ứng
dụng và các công cụ Oracle cho phép người sử dụng truy nhập tới CSDL mà không
cần sử dụng trực tiếp SQL. Nhưng những ứng dụng đó khi chạy phải sử dụng SQL
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới và được các
nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì MySQL là cơ sở
dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ
điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh.Với tốc độ và tính bảo
mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet.
MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ. Nó có
nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều
hành dòng Windows , Linux, Mac OS, Unix , FreeBSD, NetBSD , , SRI Irix, , Sun Os,

-SQL là viết tắt của Structure Query Language, nó là một công cụ quản lý dữ liệu
được sử dụng phổ biến ở nhiều lĩnh vực. Hầu hết các ngôn ngữ bậc cao đều có trình hỗ
trợ SQL như Visual Basic, Oracle, Visual C
Trong Oracle tất cả các chương trình và người sử dụng phải sử dụng SQL để truy

nhập vào dữ liệu trong Cơ Sở Dữ Liệu (CSDL) của Oracle. Các chương trình ứng
dụng và các công cụ Oracle cho phép người sử dụng truy nhập tới CSDL mà không
cần sử dụng trực tiếp SQL. Nhưng những ứng dụng đó khi chạy phải sử dụng SQL.
Cài đặt mySQL
- 13 -
Các bước chi tiết cài đặt mySQL được minh hoạ như sau (tôi dùng Win98SE và
mySQL 3.23.42 for Windows)
Bước 1: Sau khi download mySQL, unzip các file vài một thư mục nào đó và
chạy file setup.exe để bắt đầu cài đặt (xem hình bên). Bạn nhấn Next hai lần để sang
bước
Bước 2:Bạn chọn thư mục để cài đặt mySQL, mặc định là C:\mysql. Nhấn Next
để sang bước tiếp theo.
Bước 3:Bạn chọn phần Custom và nhấn Next để sang bước tiếp theo.
Bước 4:Bạn nhấn Next để sang bước tiếp theo, và tiếp tục nhấn Next để bắt đầu
cài đặt mySQL.
Bước 5: Sau khi mySQL đã cài đặt xong, bạn hãy chạy file
winmysqladmin.exe trong thư mục C:\mysql\bin. Nếu là lần đầu tiên bạn chạy file
này sau khi cài đặt, một hộp thoại sẽ hiện lên hỏi username và password của của người
quản lý mySQL. Bạn nhập vào username và mật mã tuỳ bạn chọn (tôi chọn username
là root và mật mã là password).
Sau bước này, một icon hình đèn giao thông sẽ xuất hiện trên system tray của bạn. Nếu
đèn hiệu đang ở màu xanh
.
Cài đặt phpMyAdmin
phpMyAdmin là một chương trình mySQL Client rất mạnh được viết bằng PHP.
Bạn có thể dùng phpMyAdmin để truy cập vào database quản lý mySQL từ
browser.
unzip các file vào thư mục c:\www\phpmyadmin. Sau đó bạn mở file
config.inc.php, tìm sửa các dòng sau.


tìm dòng bắt đầu bằng $cfgServers[1]['host'], sửa thành $cfgServers[1]
['host'] = 'localhost'; (connect vào localhost)

tìm dòng bắt đầu bằng $cfgServers[1]['user'], sửa lại thành $cfgServers[1]
['user'] = 'root'; (root là username mà bạn đã tạo ở trên)

tìm dòng bắt đầu bằng $cfgServers[1]['password'], sửa lại thành
$cfgServers[1]['password'] = 'password'; (password là mật mã bạn đã tạo ở
trên)
Lưu lại file config.inc.php, mở IE và truy cập vào địa chỉ
http://localhost/phpmyadmin/index.php
.
Nếu bạn nhận được màn hình chào đón của
phpMyAdmin thì Bạn đã thành công
!
- 14 -
II.Thiết kế cơ sở dữ liệu cho web.
1.
tbl_sinh viên.
Masv: Mã sinh viên.
Tensv: Tên sinh viên.
Ngaysinh: Ngày sinh.
Gioitinh: Giới tính.
Diachi: Địa chỉ.
Username: Tên tài khoản chủa sinh viên.
Pass: Mật khẩu của tài khoản.
2.tbl_mônhọc.
- 15 -
- 16 -
Mamh: Mã môn học.

Tenmon: Tên môn học.
Sotinchi: Số tín chỉ.
Tien/TC: Số tiền trên một tín chỉ.
3.Danh sách sinh viên đã đăng kí môn học.
Mamh: Mã môn học.
Tenmon: Tên môn học.
Sotinchi: Số tín chỉ.
Tien/TC: Số tiền trên một tín chỉ.
- 17 -
CHƯƠNG III:
THIẾT KẾ TRANG WEB
I. DAO DIỆN ĐĂNG NHẬP.
User: Tên đăng nhập.
Pass: Mật khẩu của người dùng.
Ghi nhớ mật khẩu :cho phép ghi nhớ mật khẩu của người dùng cuối.
II. Đăng Ký

Môn Học
.
Chọn môn: cho phép sinh viên có thể chọn môn theo danh sách sổ xuống để đăng ký.
Sinh viên phải chọn từng môn một. Sau khi chọn môn mà mình muốn học sinh viên
nhấn vào nút đăng ký , hệ thống sẽ hiển thị ra những môn nào mà sinh viên đó đã đăng
ký.
- 18 -
III. Bảng danh sách những môn mà sinh viên đã đăng ký.
Masv: Mã sinh viên.
Tensv: Tên sinh viên.
Ma mon hoc: Mã môn học.
Ten mon hoc : Tên môn học.
Sotinchi: Số tín chỉ.

Tien/tinchi: Số tiền trên một tín chỉ

Bảng danh sách này hiện lên sau khi sinh viên đó đăng ký một môn học nào đó
.
cho
phép sinh viên đó biết được nhưng môn nào minh đã đăng ký nhưng môn nào mình
chưa đăng ký.
- 19 -
CHƯƠNG IV:
ASP.NET
I.Khái niệm
ASP.NET là một nền tảng ứng dụng web (web application framework) được
phát triển và cung cấp bởi Microsoft, cho phép những người lập trình tạo ra những
trang web động, những ứng dụng web và những dịch vụ web. Lần đầu tiên được đưa ra
thị trường vào tháng 2 năm 2002 cùng với phiên bản 1.0 của .NET framework, là công
nghệ nối tiếp của Microsoft's Active Server Pages(ASP). ASP.NET được biên dịch
dưới dạng Common Language Runtime (CLR), cho phép những người lập trình viết
mã ASP.NET với bất kỳ ngôn ngữ nào được hỗ trợ bởi .NET language.
II.Lịch sử
Sau khi phát hành phiên bản Internet Information Service 4.0 vào năm 1997,
hãng Microsoft bắt đầu nghiên cứu một mô hình ứng dụng web để giải quyết những
bất tiện của ASP, đặc biệt là việc tách riêng biệt phần thể hiện và phần nội dung cũng
như cách viết mã rõ ràng hơn. Mark Anders, quản lý của nhóm IIS và Scott Guthrie,
gia nhập Microsoft vào năm 1997 sau khi tốt nghiệp Đại học Duke, được giao nhiệm
vụ định hình mô hình cần phát triển. Những thiết kế ban đầu được thực hiện trong
vòng 2 tháng bởi Anders và Guthrie, Guthrie đã viết mã prototype đầu tiên trong
khoảng thời gian nghỉ lễ Giáng sinh năm 1997.
Đặc tính
Trang aspx
Những trang ASP.NET, được biết đến như những web form, là khối chính trong

phát triển ứng dụng. Những web form được chứa trong những file có phần mở rộng
ASPX; những nhà phát triển có thể đặt nội dung tĩnh hoặc động vào trang aspx dưới
dạng server-side Web Control và User Control. Ngoài ra, có thể viết mã bằng cách
chèn <% mã cần viết %> vào trang web giống như những công nghệ phát triển
web khác PHP, JSP và ASP, nhưng những công nghệ nào không hỗ trợ data binding
khi nó phát sinh nội dung trang web.
Ví dụ sau sử dụng mã "inline", một dạng ngược lại với code behind.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
" /><script runat="server">
- 20 -
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = DateTime.Now.ToLongDateString();
}
</script>
<html xmlns=" /><head runat="server">
<title>Sample page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
The current time is: <asp:Label runat="server" id="Label1" />
</div>
</form>
</body>
</html>
Mô hình Code-behind
Mô hình code-behind được giới thiệu bởi Microsoft, đưa ra cách viết mã linh
động bằng cách để những mã lập trình trong một tập tin riêng biệt hoặc để mã trong

những thẻ script. Những tập tin code-behind thường có dạng như sau
TrangViDu.aspx.cs hoặc TrangViDu.aspx.vb được tạo ra dựa trên tên tập tin ASPX
(những tập tin này sẽ tự động phát sinh trong bộ công cụ phát triển ứng dụng
Microsoft Visual Studio và IDEs). Khi mô hình này, người phát triển có thể viết mã để
trả lời những sự kiện khác như sự kiện trang đang tải hoặc một control đang được
nhấn, chi tiết sẽ được đề cập ở phần khác trong tài liệu này.
Mô hình code-behind của ASP.NET đánh dấu một sự chuyển hướng từ ASP
nguyên thủy sang ASP.NET, giúp những người phát triển xây dựng ứng dụng với ý
tưởng phần trình bày độc lập với nội dung. Về mặt lý thuyết, mộ hình này cho phép
một người thiết kế web có thể tạo ra những bản thiết kế giao diện mà không cần biết
về cách viết mã lập trình. Mô hình này giống với mô hình model-view-controller.
Ví dụ
<%@ Page Language="C#" CodeFile="SampleCodeBehind.aspx.cs"
Inherits="Website.SampleCodeBehind"
AutoEventWireup="true" %>
Thẻ ở trên được đặt ở đầu mỗi tập tin ASPX. Thuộc tính CodeFile của chỉ thị @ Page
- 21 -
chỉ ra tập tin code-behind (.cs or .vb) trong khi thuộc tính Inherits chỉ ra lớp mà trang
thuộc về. Trong ví dụ này, chỉ thị @ Page chứa trong tập tin SamplePage.aspx với tập
tin code-behind SampleCodeBehind.aspx.cs.
using System;
namespace Website
{
public partial class SampleCodeBehind : System.Web.UI.Page
{
protected override void Page_Load(EventArgs e)
{
base.(e);
}
}

}
Trong trường hợp này, phương thức Page_Load() được thực thi mỗi lần trang ASPX
được request. Người lâp trình có thể viết mã xử lý trong phương thức này.
Một vài công cụ và tính năng trong asp.net.
1. Công cụ xem Razor (The Razor View Engine)
- ASP.net MVC 3 đi kèm với một công cụ xem mới có tên là Razor với những lợi ích
sau:
• Cú pháp Razor là sạch sẽ và xúc tích, đòi hỏi một số lượng tối thiểu các tổ hợp
phím.
• Việc tìm hiểu Razor tương đối dễ dàng vì nó dựa trên ngôn ngữ C# và Visual
Basic.
• Visual Studio bao gồm IntelliSense và mã cú pháp Razor được màu hóa.
• Razor views có thể kiểm tra từng đơn vị mà không đòi hỏi bạn phải chạy các
ứng dụng hoặc phải chạy web server.
- Một số tính năng mới của Razor:
• Cú pháp @model để xác định các loại sẽ được truyền vào view.
• @**@ là cú pháp comment.
• Khả năng định rõ mặc định (như layoutpage) một lần cho toàn bộ trang web.
• Phương thức Html.Raw để hiển thị các văn bản mà không cần mã hóa Html cho
nó.
• Hỗ trợ chia sẽ mã giữa nhiều views (_viewstart.cshtml hay _viewstart.vbhtml).
- Razor cũng bao gồm những công cụ hỗ trợ HTML mới, chẳng hạn như:
- 22 -
• Chart – biểu diễn một biểu đồ, cung cấp các tính năng như control chart trong
ÁP.NET 4.
• WebGrid – biểu diễn một lưới dữ liệu (data grid), hoàn chỉnh với chức năng
phần trang và phân loại.
• Crypto – Sử dụng các thuật toán băm (hashing algorithms) để tạo thuộc tính
thông thạo và băm các mật khẩu.
• WebImage – biểu diễn một hình ảnh.

• WebMail – gởi tin nhắn email.
- Để biết thêm các thông tin về Razor, xem thêm các nguồn sau:
• Scott Guthrie’s blog post introducing Razor
• Scott Guthrie’s blog post introducing the @model keyword
• Scott Guthrie’s blog post introducing Razor layouts
• Razor API Quick Reference
• MVC 3 Release Notes
2. Hỗ trợ đa View Engines (Support for Multiple View Engines)
- Thêm hộp thoại View trong ASP.NET MVC 3 cho phép bạn chọn các view engine
mà bạn muốn làm việc với nó, và hộp thoại New Project cho phép bạn xác định view
engine mặc định cho một project. Bạn có thể chọn view engine Web Forms (ASPX),
Razor, hay một view engine nguồn mở như Spark, NHaml, hay NDjango.
3. Những cải tiến Controller
3.1 Global Action Filters
Đôi khi bạn muốn thực hiện một logic hoặc trước khi một phương thức thực hiện hoặc
sau một một phương thức hành động được thực hiện. Để hỗ trợ điều này, ASP.NET
MVC 2 đã cung cấp bộ lọc hành động (Action Filters). Action Filter là các thuộc tính
tùy chỉnh cung cấp khai báo một phương tiện để thêm trước hành động và sau hành
động một hành vi để xác định phương thức controller hành động cụ thể. MVC 3 cho
phép bnaj chỉ định các bộ lọc chung bằng cách thêm chúng vào bộ sưu tập
GlobalFilters. Để biết thêm thông tin có thể tham khảo ở những nguồn dưới đây:
• Scott Guthrie’s blog on the MVC 3 Preview
• Filtering in ASP.NET MVC
3.2 Thuộc tính mới “ViewBag”
MVC 2 hỗ trợ điều điều khiển một thuộc tính ViewData để cho phép bạn
chuyển dữ liệu đến một view template bằng cách sử dụng một API. Trong MVC 3, bạn
có thể sử dụng cú pháp đơn giản hơn một chút với thuộc tính ViewBag để thwucj hiện
cùng một mục đích trên. Ví dụ, thay vì viết ViewData[“Message”] = “text”, bạn có thể
viết ViewBag.Message = “text”. Bạn không cần phải xác định lớp mạnh bất kỳ để sử
dụng thuộc tính ViewBag. Bởi vì nó là một thuộc tính năng động (dynamic property),

bạn có thể thay vì chỉ nhận hay thiết lập các thuộc tính và nó sẽ giải quyết các ván đề
còn lại tự động khi chạy. Bên trong thuộc tính ViewBag được lưu trữ như cặp
- 23 -
name/value trong từ điển ViewData. (Lưu ý: trong hầu hết các phiên bản trước của
MVC3, thuộc tính ViewBag có tên là ViewModel).
3.3 Các kiểu “ActionResult” mới
Dưới đây là các kiểu ActionResult và phương pháp trợ giúp mới và nâng cao trong
MVC 3:
• HttpNotFoundResult . Trả về trạng thái mã HTTP 404 cho khách hàng.
• RedirectResult . Trả về một chuyển hướng tạm thời (mã trạng thái HTTP 302)
hoặc một chuyển hướng vĩnh viễn (mã trạng thái HTTP 301), phụ thuộc vào
một tham số Boolean. Kết hợp với thay đổi này, các lớp control hiện nay có ba
phương pháp để thực hiện thường xuyên đổi hướng: RedirectPermanent ,
RedirectToRoutePermanent , và RedirectToActionPermanent . Những phương
pháp này trả về một dữ liệu của RedirectResult với Permanent sở hữu thiết lập
đúng .
• HttpStatusCodeResult . Trả về một mã trạng thái người dùng được xác định.
4. JavaScript và Ajax
Theo mặc định, Ajax và các công cụ hỗ trợ hợp lệ trong MVC 3 sử dụng một cách tiếp
cận unobtrusive JavaScript. Unobtrusive JavaScript nội tuyến tránh tiêm tín hiệu từ
JavaScript vào HTML. Điều này làm cho HTML của bạn nhỏ hơn và ít lộn xộn hơn,
và làm cho nó chuyển đổi ra ngoài dễ dàng hơn hay tùy chỉnh các thư viện JavaScript.
Validation helpers trong MVC 3 cũng sử dụng plugin jQueryValidate theo mặc định.
Nếu bạn muốn MVC 2 thực hiện, bạn có thể vô hiệu hóa unobtrusive JavaScript
bawgnf cách thiết lập lại file web.config. Để biết thêm thông tin về Ajax và JavaScript
tham khảo những nguồn sau:
• Basic introduction to unobtrusive JavaScript on the Wikipedia site
• Brad Wilson’s Unobtrusive JavaScript Post
• Brad Wilson’s Unobtrusive JavaScript Validation Post
• Creating a MVC 3 Application with Razor and Unobtrusive JavaScript (tutorial

on the ASP.NET site)
• MVC 3 Release Notes
4.1 Client-Side Validation Enabled by Default
- Trong các phiên bản trước đó của MVC, bạn cần phải gọi rõ phương thức
Html.EnableClientValidation từ một view để cho phép phía máy khác xác nhận. Điều
này trong MVC 3 là không cần thiết vì phía khách hàng xác nhận là kích hoạt mặc
định. (Bạn có thể vô hiệu hóa điều này bằng cách sử dụng một thiết lập trong file
web.config).
- Để cho phía máy khách xác nhận để làm việc, bạn vẫn cần phải tham khảo thích
hợp thư viện jQuery và jQuery Validation trong trang web của bạn. Bạn có thể lưu trữ
các thư viện trên máy chủ của chính bạn hoặc tham chiếu cho chúng từ một mạng lưới
phân bố nội dung(CDN – Content Delivery Network) như CDNs từ Microsoft hay
Google.
- 24 -
4.2 Remote Validator
- ASP.NET MVC 3 hỗ trợ lớp RemoteAttribute cho phép bạn tận dụng lợi thể của
plugin jQuery Validation để hỗ trợ xác nhận từ xa. Điều này cho phép các bên các
nhận thư viện client-side validation để tự động gọi một phương thức tùy chỉnh mà bạn
xác định trên máy chủ để thực hiện xác nhận logic chỉ có thể được xác nhận phía máy
chủ.
- Trong ví dụ sau đây, thuộc tính Remote xác định rừng xác nhận máy khác sẽ gọi một
hành động tên là UserNameAvailable trên lớp UsersController để xác minh trường
UserName.
public class User {
[Remote("UserNameAvailable", "Users")]
public string UserName { get; set; }
}
- Ví dụ sau đây minh họa các điều khiển tương ứng:
public class UsersController {
public bool UserNameAvailable(string username)

{
if(MyRepository.UserNameExists(username))
{
return "false";
}
return "true";
}
}
- Để biết thêm về cách sử dụng các thuộc tính Remote, xem bài How to: Implement
Remote Validation in ASP.NET MVC trong MSDN.
4.3 JSON Binding Support
ASP.NET MVC 3 bao gồm ràng buộc hỗ trợ JSON cho phép các phương thức hành
động để nhận được dữ liệu JSON-encoded và model-bind tham số phương thức hành
động của nó. Khả năng này rất hữu ích trong các tình huống liên quan đên client
template và data binding. MVC 3 cho phép bạn dễ dàng kết nối client template với các
phương thức hành độngtrên máy chủ khi gởi và nhận nhận dữ liệu JSON. Để biết thêm
thông tin về JSON binding support, tham khảo Scott Guthrie’s MVC 3 Preview .
5. Model Validation Imporvements
5.1 Thuộc tính siêu dữ liệu “DataAnnotations”
ASP.NET MVC 3 hỗ trợ các thuộc tính siêu dữ liệu DataAnnotations như
DisplayAttribute.
- 25 -
5.2 Lớp “ValidationAttribue”
Lớp ValidationAttribute đã được cải tiến trong .NET Framerwork 4 để hỗ trợ một quá
tải mới là IsValid cung cấp thêm thông tin về bối cảnh xác nhận hiện tại, chẳng hạn
như những gì đối tượng đang được xác nhận. Điều này cho phép các kịch bản phong
phú hơn, nơ bạn có thể xác nhận giá trị hiện tại dựa trên các thuộc tính khác của
model. Ví dụ, thuộc tính mới CompareAttribute cho phép bạn so sánh các giá trị của 2
thuộc tính của một model. Trong ví dụ dưới đây, thuộc tính ComparePassword phải
phù hợp với trường Password để được hợp lệ:

public class User {
[Required]
public string Password { get; set; }
[Required, Compare("Password")]
public string ComparePassword { get; set; }
}
5.3 Validation Interfaces
- Giao diện IValidatableObject cho phép bạn thực hiện các cấp model xác nhận, và nó
cho phép bạn cung cấp các thông điệp xác nhận lỗi cụ thể đối với các trạng thái của
model tổng thể, hay giữ 2 thuộc tính trong model. MVC 3 bây giờ lấy lỗi từ giao diện
IValidatableObject khi ràng buộc mô hình, và từ động gắn cờ hay tô sáng các trường
bị ảnh hưởng trong phậm vi view bằng cách sử dụng công cụ hỗ trợ hình thức HTML.
- Giao diện IClientValidatable cho phép ASP.NET MVC khám phá trong thời gian
chạy dù validator đã hỗ trợ cho việc xác thực ở client. Giao diện này được thiết kế để
có thể tích hợp với hàng loạt các validation frameworks.
6. Dependency Injection Imporvements
- ASP.NET MVC 3 cung cấp hỗ trợ tốt hơn cho việc áp dụng Dependency Injection
(DI) và tích hợp với Dependency Injection hay Inversion of Control (IOC) containers.
Các hỗ trợ cho DI được thêm vào:

o Controllers (registering and injecting controller factories, injecting
controllers).
o Views (registering and injecting view engines, injecting dependencies
into view pages).
o Action filters (locating and injecting filters).
o Model binders (registering and injecting).
o Model validation providers (registering and injecting).
o Model metadata providers (registering and injecting).
o Value providers (registering and injecting).
- MVC 3 hỗ trợ các thư viện Common Service Locator và bất kỳ DI container nào có

hỗ trợ của thư viện IServiceLocator. Nó cũng hỗ trợ giao diện mới
IDpendencyResolver làm cho nó dễ dàng hơn để tích hợp với DI frameworks.

×