u
AI HOĩC HU
TRặèNG AI HOĩC KINH T
KHOA H THNG THNG TIN KINH T
..... .....
t
H
KHOẽA LUN TT NGHIP AI
HOĩC
i
h
cK
in
h
XY DNG H THNG QUN Lí THễNG TIN SINH VIấN
TI TRNG I HC KINH T - I HC HU
Tr
ng
Sinh vión thổỷc hióỷn: Giaớng vión hổồùng dỏựn:
NGUYN TRUNG LAèNH ThS. NGUYN THANH TUN
Nión khoùa: 2010 - 2014
Huó,ỳ than
ù g 5 nm 2014
Khóa luận tốt nghiệp đại học
uế
GVHD: ThS. Nguyễn Thanh Tuấn
tế
H
Em xin gởi lời cảm ơn chân thành và sự tri ân sâu
sắc đối với các thầy cô của trường Đại học Kinh Tế Đại học Huế, đặc biệt là các thầy cô khoa Hệ thống
in
h
Thông tin Kinh tế của trường đã tạo điều kiện cho em
thực tập ở khoa để có nhiều thời gian cho khóa luận
cK
tốt nghiệp. Và em cũng xin chân thành cám ơn thầy
Nguyễn Thanh Tuấn đã nhiệt tình hướng dẫn hướng
họ
dẫn em hoàn thành tốt khóa thực tập.
Đ
ại
Trong quá trình thực tập, cũng như là trong quá
trình làm bài báo cáo, khó tránh khỏi sai sót, rất
mong các Thầy, Cô bỏ qua. Đồng thời do trình độ lý
ng
luận cũng như kinh nghiệm thực tiễn còn hạn chế
nên bài báo cáo không thể tránh khỏi những thiếu
Tr
ườ
sót, em rất mong nhận được ý kiến đóng góp Thầy,
Cô để em học thêm được nhiều kinh nghiệm và sẽ
hoàn thành tốt hơn bài báo cáo tốt nghiệp sắp tới.
Em xin chân thành cảm ơn!
Huế, ngày 19 tháng 5 năm 2013
Sinh viên
Sinh viên thực hiện: Nguyễn Trung Lành
i
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
Nguyễn Trung Lành
MỤC LỤC
uế
Trang
tế
H
LỜI CẢM ƠN .................................................................................................................i
MỤC LỤC ......................................................................................................................ii
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT.................................................iv
DANH MỤC CÁC HÌNH VẼ, SƠ ĐỒ, BIỂU ĐỒ......................................................v
h
DANH MỤC CÁC BẢNG............................................................................................vi
in
ĐẶT VẤN ĐỀ.................................................................................................................1
1. Lý do chọn đề tài.......................................................................................................1
cK
2. Mục tiêu chọn đề tài..................................................................................................2
3. Đối tượng và phạm vi nghiên cứu ............................................................................2
họ
4. Phương pháp nghiên cứu ..........................................................................................2
5. Nội dung nghiên cứu.................................................................................................3
PHẦN II: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU..............................................4
Đ
ại
CHƯƠNG I: CƠ SỞ LÝ LUẬN VỀ XÂY DỰNG HỆ THỐNG QUẢN LÝ
THÔNG TIN SINH VIÊN ............................................................................................4
1.1. Khái niệm về hệ thống, hệ thống thông tin quản lý .................................................4
ng
1.1.1. Khái niệm hệ thống...............................................................................................4
1.1.2. Hệ thống quản lý...................................................................................................4
ườ
1.1.3. Hệ thống thông tin (Information System) ............................................................4
1.2. Giới thiệu các công cụ để xây dựng hệ thống quản lý..............................................5
Tr
1.2.1. Nền tảng Microsoft .Net (Microsoft .Net Platform).............................................5
1.2.1.1. Các công cụ phát triển ........................................................................................5
1.2.1.2. Cơ sở hạ tầng HGH máy phục vụ (Server) ......................................................15
1.2.2. Twitter Bootstrap ................................................................................................16
1.2.3. Bộ công cụ Jquery và Ajax.................................................................................16
Sinh viên thực hiện: Nguyễn Trung Lành
ii
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
1.2.4. Mô hình 3 lớp MVC ...........................................................................................17
CHƯƠNG II: KHẢO SÁT VÀ PHÂN TÍCH HIỆN TRẠNG HỆ THỐNG QUẢN
LÝ SINH VIÊN CỦA TRƯỜNG ĐẠI HỌC KINH TẾ - ĐẠI HỌC HUẾ .................20
2.1. Khảo sát hệ thống ...................................................................................................20
uế
2.1.1. Tổng quan về trường Đại học kinh tế - Đại học Huế ..........................................20
2.1.2. Chương trình đào tạo ...........................................................................................21
tế
H
2.1.3. Khóa học..............................................................................................................22
2.2. Phân tích hiện trạng hệ thống .................................................................................22
2.2.1. Những vẫn đề trong công tác quản lý thông tin sinh viên của trường ................22
2.3. Mô tả hệ thống quản lý thông tin sinh viên ............................................................23
in
h
CHƯƠNG III: XÂY DỰNG HỆ THỐNG QUẢN LÝ THÔNG TIN SINH VIÊN
TẠI TRƯỜNG ĐẠI HỌC KINH TẾ - ĐẠI HỌC HUẾ ..........................................23
cK
3.1. Phân tích hệ thống quản lý đăng kí tín chỉ cho sinh viên chính quy trường Đại Học
Kinh Tế Huế ..................................................................................................................24
3.1.1. Sơ đồ phân rã chức năng hệ thống (BFD – Business Funtion Diagram) ............24
họ
3.1.2. Sơ đồ ngữ cảnh (Context Diagram).....................................................................25
3.1.3. Sơ đồ luồng dữ liệu (DFD – Data Flow Diagram) ..............................................25
Đ
ại
3.2. Thiết kế hệ thống ....................................................................................................26
3.2.1. Xác định các thực thể và các thuộc tính tương ứng của thực thể........................26
3.2.2. Xác định mối quan hệ giữa các thực thể .............................................................28
ng
3.3. Một số sơ đồ giải thuật chính của hệ thống...........................................................35
3.3.1. Thêm thông tin sinh viên .....................................................................................35
ườ
3.3.2. Tìm kiếm thông tin cá nhân.................................................................................36
3.3.3. Đăng nhập hệ thống.............................................................................................36
Tr
3.3.4. Phân quyền nhóm tài khoản ................................................................................37
3.4. Giao diện hệ thống..................................................................................................38
KẾT LUẬN ..................................................................................................................40
TÀI LIỆU THAM KHẢO
Sinh viên thực hiện: Nguyễn Trung Lành
iii
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
DANH MỤC CÁC KÍ KIỆU, THUẬT NGỮ VÀ CHỮ VIẾT TẮT
Tên đầy đủ/Thuật ngữ
Ý nghĩa
Active Server Page
CLR
Common Language Runtime
CSDL
Cơ sở dữ liệu
uế
Một tài liệu chứa cả ngữ pháp của
ASP
HTML lẫn những cấu trúc script
Bộ thực thi ngôn ngữ chung
tế
H
Tên viết tắt
Ngôn ngữ định nghĩa các khái niệm
Language
trong cơ sở dữ liệu
DLL
Dynamic Link Library
Thư viện liên kết động
DI
Dependency Injection
EF
Entity Framework
HTML
HyperText Markup Language
Ngôn ngữ Đánh dấu Siêu văn bản
IL
Microsoft Intermediate Language
Ngôn ngữ trung gian Microsoft
IoC
Inversion of Control
Nguyên lý đảo ngược điều khiển
in
Chống lại sự phụ thuộc
cK
họ
Mapping specification language
Models - Views - Controllers
ng
MVC
Đ
ại
MSL
h
Conceptual Schema Definition
CSDL
Nền tảng entity
Ngôn ngữ định nghĩa các ánh xạ giữa
các lớp
Mô hình Kiểu mẫu - Bảng xem - Bộ
điều khiển
Object/Relational Mapping
Đối tượng/Bản đồ quan hệ
SOAP
Simple Object Access Protocol
Giao thức truy cập đối tượng đơn giản
Store Schema Definition
Ngôn ngữ định nghĩa mô hình lưu trữ
Language
của dữ liệu
URL
Uniform Resource Locator
Định vị Tài nguyên thống nhất
XML
eXtensible Markup Language
Ngôn ngữ Đánh dấu Mở rộng
ườ
ORM
Tr
SSDL
Sinh viên thực hiện: Nguyễn Trung Lành
iv
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
DANH MỤC CÁC HÌNH VẼ, SƠ ĐỒ, BIỂU ĐỒ
Hình 1. 1. Mô hình ASP.Net MVC .................................................................................8
Bảng 1.1. So sánh những lợi ích giữa ASP.Net MVC và ASP.Net Webform ..............11
uế
Hình 1.2. Kiến trúc của mô hình Entity Framework .....................................................12
Bảng 1.2. Bảng ánh xạ tương đương sau giữa các đối tượng trong database và EF.....13
tế
H
Hình 1. 3. Các cách làm việc với Entity Framework ....................................................15
Hình 1. 4. Mô hình của 2 phiên bản MVC ....................................................................18
Hình 1.5. Mô hình 3 lớp 3-layers ..................................................................................19
h
Hình 1.6. Mô hình 3 lớp MVC ......................................................................................19
in
Hình 2.1. Cơ cấu tổ chức của Trường ...........................................................................20
Hình 3.1. Sơ đồ phân rã chức năng của hệ thống..........................................................24
cK
Hình 3.3. Sơ đồ luồng dữ liệu DFD ..............................................................................25
Hình 3.2. Sơ đồ ngữ cảnh của hệ thống.........................................................................25
họ
Hình 3.4. Mối quan hệ giữa các thực thể.......................................................................28
Hình 3.6. Lược đồ cơ sở dữ liệu quan hệ ......................................................................34
Hình 3.7. Sơ đồ hoạt động thêm thông tin sinh viên .....................................................35
Đ
ại
Hình 3.8. Sơ đồ hoạt động tìm kiếm thông tin sinh viên...............................................36
Hình 3.9. Sơ đồ hoạt động đăng nhập hệ thống ............................................................36
Hình 3.10. Sơ đồ hoạt động phân quyền nhóm tài khoản .............................................37
ng
Hình 3.11. Giao diện hệ thống quản lý sinh viên ..........................................................38
Hình 3.12. Giao diện thêm mới sinh viên......................................................................38
ườ
Hình 3.13. Giao diện chỉnh sửa thông tin sinh viên ......................................................39
Tr
Hình 3.14. Giao diện trang thông tin sinh viên .............................................................39
Sinh viên thực hiện: Nguyễn Trung Lành
v
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
DANH MỤC BẢNG BIỂU
Bảng 1.1. So sánh những lợi ích giữa ASP.Net MVC và ASP.Net Webform ..............11
Tr
ườ
ng
Đ
ại
họ
cK
in
h
tế
H
uế
Bảng 1.2. Bảng ánh xạ tương đương sau giữa các đối tượng trong database và EF.....13
Sinh viên thực hiện: Nguyễn Trung Lành
vi
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
ĐẶT VẤN ĐỀ
1. Lý do chọn đề tài
Vào năm 2008, Trường Đại học Kinh tế - Đại học Huế đã quyết định chuyển
uế
đổi chương trình đào tạo truyền thống sang chương trình đào tạo theo học chế tín chỉ
cho các sinh viên hệ chính quy của trường.
tế
H
Học chế tín chỉ được xây dựng nhằm tạo ra mối quan hệ mềm dẻo trong quá
trình dạy và học; giữa giảng viên và sinh viên với những yêu cầu: giảng dạy cụ thể về
nội dung chương trình đào tạo từ phía nhà trường, giảng viên kết hợp với tính chủ
động trong việc tự hoạch định kế hoạch học tập của cá nhân sinh viên nhằm đạt đến
h
mục đích cao nhất là hiệu quả cao trong đào tạo. Về công tác công tác quản lý sinh
in
viên, dưới khía cạnh là những phương diện hoạt động công ích của nhà trường nhằm
trong quá trình học tập tại trường.
cK
quản lý, tư vấn, hướng dẫn, trợ giúp sinh viên thực hiện quyền và nghĩa vụ của mình
Như vậy, công tác quản lý sinh viên sẽ bao gồm tất cả tiện ích do nhà trường
họ
cung cấp nhằm tạo điều kiện cho sinh viên thực hiện quyền và nghĩa vụ của mình từ
khi trúng tuyển vào trường cho đến khi ra trường; từ hoạt động học tập của sinh viên
Đ
ại
cho đến hoạt động rèn luyện đạo đức, nhân cách, thể chất; từ việc sinh viên thực hiện
những quy định bắt buộc cho đến việc chủ động, tích cực thực hiện trong điều kiện
cho phép sinh viên lựa chọn, yêu cầu. Ở góc độ này, người quản lý sinh viên thực hiện
công tác hỗ trợ sinh viên có tính hệ thống, tư vấn, hỗ trợ trên nhiều mặt liên quan đến
ng
các bộ phận chức năng chủ yếu là: Phòng Đào tạo Đại học, phòng Công tác Sinh viên .
ườ
Trong đó, phòng Công tác Sinh Viên đóng vai trò quan trọng trong công tác hỗ trợ các
hoạt động ngoại khóa, nội trú, việc làm,... cho sinh viên.
Do vậy, đề tài “Xây dựng hệ thống Quản lý Thông tin Sinh viên tại
Tr
Trường Đại học Kinh tế - Đại học Huế” được thực hiện nhằm giúp cho Phòng
Đào tạo Đại học - Công tác sinh viên đáp ứng những yêu cầu mới đặt ra hiện nay,
khắc phục được những khó khăn hiện tại trong công tác quản lý và hỗ trợ sinh viên,
đồng thời phục vụ cho mục tiêu tin học hóa, hiện đại hóa trong công tác quản lý và
đào tạo của Nhà trường.
Sinh viên thực hiện: Nguyễn Trung Lành
1
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
2. Mục tiêu chọn đề tài
* Mục tiêu tổng quát:
Trên cơ sở nghiên cứu quy trình quản lý thông tin sinh viên, các kĩ thuật xây
viên phục vụ cho công tác quản lý của Trường Đại học Kinh tế.
* Mục tiêu cụ thể:
tế
H
- Nghiên cứu cơ sở lý thuyết về hệ thống thông tin quản lý.
uế
dựng hệ thống theo mô hình ba lớp, tác giả xây dựng hệ thống quản lý thông tin sinh
- Xây dựng và thiết kế phần mềm theo mô hình MVC
- Xây dựng hệ thống quản lý thông tin sinh viên áp dụng cho Trường Đại học
h
Kinh tế - Đại học Huế bao gồm:
- Quản lý thông tin tuyển sinh
in
- Quản lý thông tin cá nhân
- Quản lý hồ sơ sinh viên
cK
- Quản lý các thông tin khác liên quan đến sinh viên
họ
3. Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu:
Đ
ại
- Lý thuyết xây dựng hệ thống quản lý.
- Các công cụ hỗ trợ, phương pháp xây dựng hệ thống quản lý.
- Cơ cấu tổ chức, cách thức hoạt động của quản lý thông tin sinh viên của trường
ng
Đại học Kinh Tế Huế.
- Mô hình MVC
ườ
Phạm vi nghiên cứu:
- Phạm vi không gian: Tại trường Đại học Kinh tế- Đại học Huế
Tr
- Phạm vi thời gian: Từ ngày 10/02/2014 đến ngày 18/05/2014.
4. Phương pháp nghiên cứu
Các phương pháp trong quá trình phân tích thiết kế hệ thống, nhằm nghiên cứu
và xây dựng hệ thống quản lý thông tin sinh viên:
- Phương pháp lập trình hướng đối tượng sử dụng ASP.Net, C#.
Sinh viên thực hiện: Nguyễn Trung Lành
2
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
- Phương pháp xây dựng ứng dụng theo mô hình MVC
- Nghiên cứu tài liệu: Tìm hiểu các lý thuyết cần thiết để xây dựng hệ thống
quản lý qua các tài liệu như sách, bài viết, video, slide,...
5. Nội dung nghiên cứu
uế
Ngoài phần mở đầu và kết luận, nội dung khóa luận gồm 3 chương:
tế
H
Chương I: Cơ sở lý luận về xây dựng hệ thống quản lý thông tin sinh viên
Chương này sẽ giới thiệu tổng quan hệ thống quản lý thông tin sinh viên, lợi ích
của việc ứng dụng hệ thống và giới thiệu các công cụ sẽ sử dụng để xây dựng hệ thống
thông tin quản lý.
in
viên tại trường Đại học Kinh tế - Đại học Huế.
h
Chương II: Khảo sát và phân tích hiện trạng hệ thống quản lý thông tin sinh
cK
Chương này sẽ nói rõ về thực trạng hệ thống quản lý Thông tin Sinh viên tại
Trường Đại học Kinh tế – Đại học Huế.
Chương III: Xây dựng Hệ thống quản lý thông tin sinh viên tại Trường Đại
họ
học Kinh tế - Đại học Huế
Chương này tập trung phân tích và thiết kế hệ thống, bao gồm các nội dung như
Đ
ại
phân tích sơ đồ chức năng, sơ đồ ngữ cảnh, sơ đồ luồng dữ liệu, thiết kế sơ đồ thực thể
Tr
ườ
ng
- mối quan hệ, thiết kế CSDL, các quy trình chính, giao diện.
Sinh viên thực hiện: Nguyễn Trung Lành
3
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
PHẦN II: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU
CHƯƠNG I: CƠ SỞ LÝ LUẬN VỀ XÂY DỰNG
1.1. Khái niệm về hệ thống, hệ thống thông tin quản lý
tế
H
1.1.1. Khái niệm hệ thống
uế
HỆ THỐNG QUẢN LÝ THÔNG TIN SINH VIÊN
Hệ thống là tập hợp các phần tử có những mối quan hệ ràng buộc lẫn nhau cùng
hoạt động chung cho một số mục tiêu nào đó. Trong hoạt động có trao đổi vào ra với
môi trường ngoài
h
1.1.2. Hệ thống quản lý
in
Hệ thống quản lý là một hệ thống có một mục đích mang lại lợi nhuận hoặc lợi
cK
ích nào đó. Đặc điểm của hệ thống là có sự tham gia của con người và có trao đổi
thông tin.
Hệ thống quản lý chia thành hai hệ thống con:
họ
- Hệ tác nghiệp (trực tiếp sản xuất): Gồm con người, phương tiện, phương pháp
trực tiếp thực hiện mục tiêu đã đề ra.
Đ
ại
- Hệ quản lý (gián tiếp sản xuất): Gồm con người, phương tiện, phương pháp
cho phép điều khiển hoạt động của hệ thống.
Hệ này lại chia thành hai hệ con:
ng
+ Hệ quyết định: Đưa ra các quyết định
+ Hệ xử lý thông tin: Xử lý thông tin
ườ
1.1.3. Hệ thống thông tin (Information System)
Là một hệ thống sử dụng công nghệ thông tin để thu thập, truyền, lưu trữ, xử lý
Tr
và biểu diễn thông tin trong một hay nhiều quá trình kinh doanh. Hệ thống thông tin
phát triển qua bốn loại hình:
- Hệ xử lý dữ liệu: lưu trữ và cập nhật dữ liệu hàng ngày, ra các báo cáo theo
định kỳ (Ví dụ: Các hệ thống tính lương).
- Hệ thống thông tin quản lý: gồm cơ sở dữ liệu hợp nhất và các dòng thông tin
giúp con người trong sản xuất, quản lý và ra quyết định.
Sinh viên thực hiện: Nguyễn Trung Lành
4
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
- Hệ trợ giúp quyết định: Hỗ trợ cho việc ra quyết định (cho phép nhà phân tích
ra quyết định chọn các phương án mà không phải thu thập và phân tích dữ liệu).
- Hệ chuyên gia: Hỗ trợ nhà quản lý giải quyết các vấn đề và làm quyết định
1.2. Giới thiệu các công cụ để xây dựng hệ thống quản lý
tế
H
1.2.1. Nền tảng Microsoft .Net (Microsoft .Net Platform)
uế
một cách thông minh.
.Net là nền tảng của Microsoft cho các dịch vụ Web XML, là thế hệ phần mềm
kế tiếp kết nối thế giới thông tin, các thiết bị và tất cả mọi người trong một thể thống
nhất. Nền tảng .Net cho phép tạo ra và sử dụng các ứng dụng, các quá trình và các
h
trang web dựa trên XML như những dịch vụ chia xẻ, kết nối thông tin và hoạt động
in
cùng nhau, trên bất cứ nền tảng hay thiết bị thông minh nào, nhằm mục đích cung cấp
cK
những giải pháp theo yêu cầu cho các tổ chức và các cá nhân riêng biệt. Nền tảng .Net
của Microsoft đưa ra các công nghệ, các công cụ và sản phẩm để tạo ra và chạy các
dịch vụ Web.
họ
1.2.1.1. Các công cụ phát triển
.Net nền tảng và Visual Studio.Net là các công cụ cho những người phát triển
Đ
ại
để tạo ra các dịch vụ Web XML. .Net Framework là một tập hợp những giao diện lập
trình và là tâm điểm của nền tảng .Net của Microsoft. Nó cung cấp cơ sở hạ tầng để
xây dựng và chạy các dịch vụ Web.
ng
* Visual Studio .Net
Visual Studio.Net cung cấp một môi trường phát triển mức cao để xây dựng các
ườ
ứng dụng trên .Net Framework. Với bộ Visual Studio.Net chúng ta có thể đơn giản hoá
việc tạo, triển khai và tiếp tục phát triển các ứng dụng Web và các dịch vụ Web có sẵn
Tr
một cách an toàn, bảo mật và khả nǎng biến đổi được. Visual Studio.Net là một bộ đa
ngôn ngữ các công cụ lập trình. Ngoài C# (Visual C#.Net), Visual Studio.Net còn hỗ
trợ Visual Basic, Visual C++, Visual J#.Net và các ngôn ngữ script như VBScript và
JScript. Tất cả các ngôn ngữ này đều cho phép truy cập vào .Net Framework, phần này
sẽ được thảo luận ở mục tiếp sau.
Sinh viên thực hiện: Nguyễn Trung Lành
5
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
Visual C# .Net là một ngôn ngữ lập trình đơn giản, hiện đại, hướng đối tượng
an toàn kiểu (type-safe) và có nguồn gốc từ các ngôn ngữ C và C++. C# là một ngôn
ngữ rất thân thiện với người lập trình C và C++. C# là kết quả của việc kết hợp hiệu
nǎng cao của Visual Basic và sức mạnh của C++. C# được Microsoft giới thiệu để xây
uế
dựng với Web và đòi hỏi quyền được cung cấp một môi trường đồng bộ với HTML,
XML và SOAP. Tóm lại C# là một ngôn ngữ lập trình hiện đại và là một môi trường
tế
H
phát triển đầy tiềm nǎng để tạo ra các dịch vụ Web XML, các ứng dụng dựa trên
Microsoft .Net và cho cả nền tảng Microsoft Windows cũng như tạo ra các ứng dụng
Internet thế hệ kế tiếp một cách nhanh chóng và hiệu quả.
* Nền tảng .Net
in
h
.Net Framework là động cơ tạo các dịch vụ Web XML của Microsoft. .Net
Framework là một tập những giao diện lập trình và là tâm điểm của nền tảng .Net. Nó
cK
cung cấp cơ sở hạ tầng để xây dựng và chạy các dịch vụ Web. .Net Framework bao
gồm ba thành phần chính là Bộ Thực Thi Ngôn Ngữ Chung (Common Language
Runtime), The Các Lớp Thư Viện Cơ Sở (The Base Classes) và Các ứng dụng Web
họ
(ASP.Net).
* Common Language Runtime (Bộ thực thi ngôn ngữ chung)
Đ
ại
Common Language Runtime (CLR) là trung tâm điểm của .Net Framework.
Đây là một "hầm máy" để chạy các tính nǎng của .Net. Trong .Net tất cả mọi ngôn ngữ
lập trình đều được biên dịch ra Microsoft Intermediate Language (IL). Do bắt buộc
ng
mọi ngôn ngữ đều phải dùng cùng các loại kiểu dữ liệu (gọi là Common Type System
hay hệ thống kiểu chung) nên CLR có thể kiểm soát mọi giao diện, gọi giữa các thành
ườ
phần và cho phép các ngôn ngữ có thể tích hợp với nhau một cách thông suốt.
Khi chạy một ứng dụng .Net, nó sẽ được biên dịch bằng một bộ biên dịch JIT
Tr
(Just-In-Time có nghĩa chỉ phần mã cần xử lý mới được biên dịch) rất hiệu nǎng ra mã
máy để chạy. Điểm này giúp ứng dụng .Net chạy nhanh hơn mã thông dịch của Java
trong máy ảo Java (Java Virtual Machine). Just-In-Time cũng có nghĩa là chỉ phần mã
nào cần xử lý trong lúc ấy mới được biên dịch.
Ngoài việc cung cấp và quản lý bộ nhớ, CLR còn xử lý công việc "gom rác"
(garbage collection). Trước đây mỗi khi một “Thư viện liên kết động” (DLL) được nạp
Sinh viên thực hiện: Nguyễn Trung Lành
6
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
vào bộ nhớ, hệ thống sẽ ghi nhận có bao nhiêu tác vụ dùng nó để khi tác vụ cuối cùng
chấm dứt thì hệ thống giải phóng DLL này và trả lại phần bộ nhớ nó dùng trước đây
cho hệ thống để dùng vào việc khác. Nếu chương trình cung cấp (allocate) bộ nhớ để
sử dụng mà không nhớ giải phóng (dispose) thì đến một lúc nào đó bộ nhớ sẽ bị "cạn"
uế
và chúng ta sẽ phải khởi động lại hệ điều hành. Và bây giờ, .Net sử dụng một quá trình
độc lập để xử lý việc "gom rác". Tác động phụ ở đây là khi ta đã "dispose" một đối
tế
H
tượng rồi, ta vẫn không biết chắc chắn chừng nào nó mới thực sự biến mất. Vì bộ phận
"gom rác" là một quá trình ưu tiên mức thấp, chỉ khi nào bộ nhớ hệ thống gần "cạn" nó
mới nâng cao độ ưu tiên l ên. Ngoài "gom rác", CLR còn thực hiện các chức nǎng
khác như bảo mật. Các dịch vụ chung này đều được quản lý một cách tự động.
in
h
Như vậy là bộ thực thi ngôn ngữ chung CLR cho phép việc phát triển các ứng
dụng một cách dễ dàng hơn, cung cấp một môi trường thực thi an toàn và hiệu nǎng,
cK
hỗ trợ đa ngôn ngữ và đơn giản hoá việc triển khai và quản lý các ứng dụng.
* Các lớp cơ sở (The Base Classes)
Các lớp cơ sở cho cho chúng ta những đặc tính của runtime (thực hiện) và cung
họ
cấp những dịch vụ cấp cao khác mà những người lập trình đòi hỏi thông qua
namespace. Namespace là một cách đặt tên để giúp sắp đặt các lớp (class) ta dùng
Đ
ại
trong chương trình một cách thứ tự để dễ tìm kiếm chúng. Tất cả các mã (code) trong
.Net, được viết bằng VB.Net, C# hay một ngôn ngữ nào khác đều được chứa trong một
namespace.
ng
* ASP.Net MVC
- Tổng quan về ASP.Net MVC:
ườ
Mẫu kiến trúc Model – View – Controller được sử dụng nhằm chi ứng dụng
thành ba thành phần chính: model, view và controller. Nền tảng ASP.NET MVC giúp
Tr
cho chúng ta có thể tạo được các ứng dụng web áp dụng mô hình MVC thay vì tạo ứng
dụng theo mẫu ASP.NET Web Form. Nền tảng ASP.NET MVC có đặc điểm nổi bật là
nhẹ (lighweigt), dễ kiểm thử phần giao diện (so với ứng dụng Web Forms), tích hợp
các tính năng có sẵn của ASP.NET. Nền tảng ASP.NET MVC được định nghĩa trong
namespace System.Web.Mvc và là một phần của name space System.Web.
Sinh viên thực hiện: Nguyễn Trung Lành
7
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
MVC là một mẫu thiết kế (design pattern) chuẩn mà nhiều lập trình viên đã
quen thuộc. Một số loại ứng dụng web sẽ thích hợp với kiến trúc MVC. Một số khác
vẫn thích hợp với ASP.NET Web Forms và cơ chế postbacks. Đôi khi có những ứng
họ
cK
in
h
tế
H
uế
dụng kết hợp cả hai kiến trúc trên.
Đ
ại
Hình 1. 1. Mô hình ASP.Net MVC
Nền tảng MVC bao gồm các thành phần dưới đây:
- Models: Các đối tượng Models là một phần của ứng dụng, các đối tượng này
ng
thiết lập logic của phần dữ liệu của ứng dụng. Thông thường, các đối tượng model lấy
và lưu trạng thái của model trong CSDL. Ví dụ như, một đối tượng Product (sản
ườ
phẩm) sẽ lấy dữ liệu từ CSDL, thao tác trên dữ liệu và sẽ cập nhật dữ liệu trở lại vào
bảng Products ở SQL Server.
Tr
Trong các ứng dụng nhỏ, model thường là chỉ là một khái niệm nhằm phân biệt
hơn là được cài đặt thực thụ, ví dụ, nếu ứng dụng chỉ đọc dữ liệu từ CSDL và gởi
chúng đến view, ứng dụng khong cần phải có tầng model và các lớp lien quan. Trong
trường hợp này, dữ liệu được lấy như là một đối tượng model (hơn là tầng model).
- Views: Views là các thành phần dùng để hiển thị giao diện người dùng (UI).
Thông thường, view được tạo dựa vào thông tin dữ liệu model. Ví dụ như, view dùng
Sinh viên thực hiện: Nguyễn Trung Lành
8
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
để cập nhật bảng Products sẽ hiển thị các hộp văn bản, drop-down list, và các check
box dựa trên trạng thái hiện tại của một đối tượng Product.
- Controllers: Controller là các thành phần dùng để quản lý tương tác người
dùng, làm việc với model và chọn view để hiển thị giao diện người dùng. Trong một
uế
ứng dụng MVC, view chỉ được dùng để hiển thị thông tin, controller chịu trách nhiệm
quản lý và đáp trả nội dung người dùng nhập và tương tác với người dùng. Ví dụ,
tế
H
controller sẽ quản lý các dữ liệu người dùng gởi lên (query-string values) và gởi các
giá trị đó đến model, model sẽ lấy dữ liệu từ CSDL nhờ vào các giá trị này.
Mẫu MVC giúp ta tạo được các ứng dụng mà chúng phân tách rạch ròi các khía
cạnh của ứng dụng (logic về nhập liệu, logic xử lý tác vụ và logic về giao diện). Mẫu
in
h
MVC chỉ ra mỗi loại logic kể trên nên được thiếp lập ở đâu trên ứng dụng. Logic giao
diện (UI logic) thuộc về views. Logic nhập liệu (input logic) thuộc về controller. Và
cK
logic tác vụ (Business logic – là logic xử lý thông tin, mục đích chính của ứng dụng)
thuộc về model. Sự phân chia này giúp chúng ta giảm bớt được sự phức tạp của ứng
dụng và chỉ tập trung vào mỗi khía cạnh cần được cài đặt ở mỗi thời điểm. Ví dụ như
lý thông tin của ứng dụng.
họ
chúng ta chỉ cần tập trung vào giao diện (views) mà không phải quan tâm đến logic xử
Đ
ại
Để quản lý sự phức tạp của ứng dụng, mẫu MVC giúp cho ta có thể kiểm thử
ứng dụng dễ dàng hơn hẳn so với khi áp dụng mẫu Web Forms. Ví dụ, trong một ứng
dụng ASP.NET Web Forms, một lớp thường được sử dụng để hiển thị thông tin xuất
ng
ra cho người dùng và đồng thời xử lý thông tin người dùng nhập. Việc xây dựng các
bộ test tự động cho ứng dụng Web Forms là rất phức tạp, bởi để kiểm thử mỗi trang
ườ
web, chúng ta phải khởi tạo đối tượng trang, khởi tạo tất cả các control được sử dụng
trong trang và các lớp phụ thuộc trong ứng dụng. Và bởi vì có quá nhiều lớp cần được
Tr
khởi tạo để chạy được trang, thật khó để có thể viết các test chỉ tập trung vào một khía
cạnh nào đó của ứng dụng. Và vì thế, kiểm thử đối với các ứng dụng dứa trên nền tảng
Web Forms sẽ khó khăn hơn nhiều so với khi áp dụng trên ứng dụng MVC. Hơn thế
nữa, việc kiểm thử trên nền tảng Web Forms yêu cầu phải sử dụng đến web server.
Nền tảng MVC phân tách các thành phần và sử dụng các interface (khái niệm giao
Sinh viên thực hiện: Nguyễn Trung Lành
9
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
diện trong lập trình hướng đối tượng), và nhờ đó có thể kiểm thử các thành phần riêng
biệt trong tình trạng phân lập với các yếu tố còn lại của ứng dụng.
Sự phân tách rạch ròi ba thành phần của ứng dụng MVC còn giúp cho việc lập
trình diễn ra song song. Ví dụ như một lập trình viên làm việc với view, lập trình viên
uế
thứ hai lo cài đặt logic của controller và lập trình viên thứ ba có thể tập trung vào logic
tác vụ của model tại cùng một thời điểm.
tế
H
Các tính năng của nền tảng ASP.NET MVC
- Tách bạch các tác vụ của ứng dụng (logic nhập liệu, business logic, và logic
giao diện), dễ dàng kiểm thử và mặc định áp dụng hướng phát triển TDD. Tất cả các
tính năng chính của mô hình MVC được cài đặt dựa trên interface và được kiểm thử
in
h
bằng cách sử dụng các đối tượng mocks, mock object là các đối tượng mô phỏng các
tính năng của những đối tượng thực sự trong ứng dụng. Chúng ta có thể kiểm thử unit-
cK
test cho ứng dụng mà không cần chạy controller trong tiến trình ASP.NET, và điều đó
giúp unit test được áp dụng nhanh chóng và tiện dụng. Chúng ta có thể sử dụng bất kỳ
nền tảng unit-testing nào tương thích với nền tảng .NET.
họ
- MVC là một nền tảng khả mở rộng (extensible) & khả nhúng (pluggable). Các
thành phần của ASP.NET MVC được thiết kể để chúng có thể được thay thế một cách
Đ
ại
dễ dàng hoặc dễ dàng tùy chỉnh. Chúng ta có thể nhúng thêm view engine, cơ chế định
tuyến cho URL, cách kết xuất tham số của action-method và các thành phần khác.
ASP.NET MVC cũng hỗ trợ việc sử dụng Dependency Injection (DI) và Inversion of
ng
Control (IoC). DI cho phép chúng ta gắn các đối tượng vào một lớp cho lớp đó sử
dụng thay vì buộc lớp đó phải tự mình khởi tạo các đối tượng. IoC quy định rằng, nếu
ườ
một đối tượng yêu cầu một đối tượng khác, đối tượng đầu sẽ lấy đối tượng thứ hai từ
một nguồn bên ngoài, ví dụ như từ tập tin cấu hình. Và nhờ vậy, việc sử dụng DI và
Tr
IoC sẽ giúp kiểm thử dễ dàng hơn.
- ASP.NET MVC có thành phần ánh xạ URL mạnh mẽ cho phép chúng ta xây
dựng những ứng dụng có các địa chỉ URL xúc tích và dễ tìm kiếm. Các địa chỉ URL
không cần phải có phần mở rộng của tên tập tin và được thiết kế để hỗ trợ các mẫu
định dạng tên phù hợp với việc tối ưu hóa tìm kiếm (URL) và phù hợp với lập địa chỉ
theo kiểu REST.
Sinh viên thực hiện: Nguyễn Trung Lành
10
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
- Hỗ trợ sử dụng đặc tả (các thẻ) của các trang ASP.NET(.aspx), điều khiển
người dùng (.ascx) và trang master page (.marter). Chúng ta có thể sử dụng các tính
năng có sẵn của ASP.NET như là sử dụng lồng các trang master page, sử dụng in-line
expression (<%= %>), sử dụng server controls, mẫu, data-binding, địa phương hóa
uế
(localization) và hơn thế nữa.
- Hỗ trợ các tính năng có sẵn của ASP.NET như cơ chế xác thực người dùng,
tế
H
quản lý thành viên, quyền, output caching và data caching, seession và profile, quản lý
tình trạng ứng dụng, hệ thống cấu hình…
- ASP.Net MVC còn bổ sung một công nghệ xem (view engine) mới là Razor
h
View Engine( .cshtml) cho phép thiết lập các view nhanh chóng, dễ dàng và tốn ít
in
công sức hơn so với việc sử dụng Web Form view engine
cK
Bảng 1.1. So sánh những lợi ích giữa ASP.Net MVC và ASP.Net Webform
Lợi ích của ứng dụng web
Lợi ích của ứng dụng được xây dựng
dựa trên mô hình MVC
trên nền tảng Web Forms
Hỗ trợ cách lập trình hướng sự kiện, quản
dụng bằng cách chia ứng dụng thành ba
lý trạng thái trên giao thức HTTP, tiện
thành phần model, view, controller
dụng cho việc phát triển các ứng dụng
Đ
ại
họ
Dễ dàng quản lý sự phức tạp của ứng
Không sử dụng view state hoặc server-
Web phục vụ kinh doanh
Sử dụng mẫu Page Controller
ng
based form. Điều này tốt cho những lập
trình viên muốn quản lý hết các khía
ườ
Nó sử dụng mẫu Front Controller, mẫu
Mô hình này sử dụng view state hoặc
server-based form, nhờ đó sẽ giúp cho
chỉ thông qua một Controller. Nhờ đó bạn
việc quản lý trạng thái các trang web dễ
Tr
này giúp quản lý các requests (yêu cầu)
có thể thiết kế một hạ tầng quản lý định
dàng.
tuyến.
Hỗ trợ tốt hơn cho mô hình phát triển ứng
Phù hợp với các nhóm lập trình viên quy
dụng hướng kiểm thử (TDD)
mô nhỏ và các thiết kế, những người
Sinh viên thực hiện: Nguyễn Trung Lành
11
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
muốn tận dụng các thành phần giúp xây
dựng ứng dụng một cách nhanh chóng.
Web Forms giúp giảm bớt sự phức tạp
dựng bởi những đội có nhiều lập trình
trong xây dựng ứng dụng, bởi vì các thành
viên và thiết kế mà vẫn quản lý được tính
phần (lớp Page, controls,…) được tích
năng của ứng dụng
hợp chặc chẽ và thường thì giúp chúng ta
uế
Hỗ trợ tốt cho các ứng dụng được xây
tế
H
viết ít code hơn là áp dụng theo mô hình
MVC.
Entity Framework
h
- ADO.NET Entity Framework là một nền tảng được sử dụng để làm việc với cơ
in
sở dữ liệu thông qua cơ chế ánh xạ Object/Relational Mapping (ORM). Nhờ đó, bạn có
Tr
ườ
ng
Đ
ại
họ
cK
thể truy vấn, thao tác với cơ sở dữ liệu gián tiếp thông qua các đối tượng lập trình.
Hình 1.2. Kiến trúc của mô hình Entity Framework
Sinh viên thực hiện: Nguyễn Trung Lành
12
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
- Các thành phần chính của của Entity Framework:
+ Object Services: Đây là các class tự động sinh ra tương ứng với mô hình
dữ liệu. Các class này bao gồm:
+ ObjectContext đại diện cho một database. ObjectContext có chức năng
uế
quản lý các kết nối, định nghĩa mô hình dữ liệu với metadata và thao tác với database.
Lớp này cũng có thể thêm vào các phương thức đại diện cho các stored procedure
tế
H
trong database.
+ ObjectSet<TEntity> là một một tập hợp các entity. Mỗi đối tượng này
tương ứng với một table. Có thể lấy được các đối tượng này thông qua các thuộc tính
h
tương ứng của ObjectContext.
in
+ EntityObject, ComplexObject là các lớp tương ứng cho một dòng dữ liệu
của bảng trong cơ sở dữ liệu. Khác biệt chính giữa hai loại này là ComplexObject
cK
không chứa primary key.
+ EntityCollection<TEntity> và EntityReference<TEntity>: là các đối
họ
tượng thể hiện mối quan hệ (relationship) giữa hai lớp entity. Mỗi đối tượng này có thể
được truy xuất thông qua các thuộc tính của lớp entity .
Đ
ại
Bảng 1.2. Bảng ánh xạ tương đương sau giữa các đối tượng trong database và EF
Đối tượng của cơ sở dữ liệu
Entity Framework Object
ObjectContext
Bảng, Bảng ảo
EntityObject, ComplexObject
Cột
Property
ườ
ng
Cơ sở dữ liệu
Tr
Các mối quan hệ
EntityCollection<TEntity>,
EntityReference<TEntity>
- Entity Data Model
Entity Data Model (EDM) là mô hình dữ liệu được mô tả thông qua các ngôn
ngữ theo chuẩn XML. EDM được chia làm 3 lớp là: Conceptual, Mapping và Logical.
Mỗi lớp này được định nghĩa bởi ngôn ngữ riêng theo định dạng XML:
Sinh viên thực hiện: Nguyễn Trung Lành
13
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
+ Conceptual – Conceptual Schema Definition Language (CSDL): là ngôn
ngữ định nghĩa các entity, relationship, hàm trong tập tin với phần mở rộng .csdl. Có
thể tạo được các entity class (object layer).
+ Mapping – Mapping specification language (MSL): định nghĩa các ánh xạ
uế
giữa lớp conceptual và logical, nội dung này được lưu trong tập tin .msl.
+ Logical – Store Schema Definition Language (SSDL): định nghĩa mô
tế
H
hình lưu trữ của dữ liệu, lưu trữ trong tập tin .ssdl.
Các nội dung của ba tập tin .csdl, .msl và .ssdl được lưu trữ trong cùng tập tin
.edmx trong Visual Studio. Tập tin này có thể được tạo ra tự động từ database và công
cụ Entity Framework Model Wizard của Visual Studio. Trong quá trình biên dịch, các
in
- EntityClient Data Provider :
h
tập tin .csdl, .msl và .ssdl sẽ được tạo ra dựa vào tập tin .edmx này.
cK
+ EntityClient là một data provider mới của ADO.NET dùng để truy xuất
đến database. Được xây dựng bên trên các ADO.NET data provider cơ bản,
EntityClient không truy xuất trực tiếp dữ liệu mà thông qua các data provider khác dựa
họ
vào các thông tin dữ liệu từ Entity Data Model.
+ EntityClient cũng bao gồm các lớp giống như các ADO.NET data
provider khác và tên lớp được đặt với tiền tố Entity. Ví dụ bạn có thể tạo kết nối bằng
Đ
ại
EntityConnection, tạo các câu truy vấn bằng EntityCommand và đọc kết quả bằng
EntityDataReader.
Một điểm khác biệt với các data provider khác là EntityClient sử dụng Entity
ng
SQL để truy vấn dữ liệu. Các lệnh Entity SQL sẽ được chuyển thành một cấu trúc lệnh
dạng cây (command tree) và chuyển xuống cho các data provider khác.
ườ
- Các cách làm việc với Entity Framework: theo Microsoft, có ba cách làm việc
Tr
với Entity Framework:
+ Tạo cơ cở dữ liệu trước (Database First): Trong trường hợp bạn muốn
làm việc với database đã có sẵn. Dùng công cụ thiết kế có sẵn trong Visual Studio để
khởi tạo từ cơ sở dữ liệu ra bản thiết kế .
+ Tạo các kiểu mẫu trước (Model First): Trong trường hợp này, chúng ta sẽ
làm việc trên visual studio và tạo ra database mới tại đây. Dùng công cụ để khỏi tạo
mã từ bản thiết kế model ra cơ sỡ dữ liệu
Sinh viên thực hiện: Nguyễn Trung Lành
14
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
+ Tạo mã trước (Code First): Riêng với cách này chungs ta có 2 lựa chọn,
làm việc với database có sẵn hoặc sẽ tạo mới. Nhưng dù làm với cách nào, chúng ta
cũng dùng codebehind để xử lý là chính. Không dùng các công cụ, giao diện trực quan
họ
cK
in
h
tế
H
uế
giống như 2 cách bên trên.
Đ
ại
Hình 1. 3. Các cách làm việc với Entity Framework
1.2.1.2. Cơ sở hạ tầng HGH máy phục vụ (Server)
* Windows Web Server 2008
ng
Windows Server 2008 được thiết kế để cung cấp cho các tổ chức có được nền
ườ
tảng sản xuất tốt nhất cho ứng dụng, mạng và các dịch vụ web từ nhóm làm việc đến
những trung tâm dữ liệu với tính năng động, tính năng mới có giá trị và những cải
Tr
thiện mạnh mẽ cho hệ điều hành cơ bản.
* Microsoft SQL Server 2005
SQL Server 2005 là giải pháp phân tích và quản trị dữ liệu thế hệ kế tiếp của
Microsoft. Nó sẽ cho phép nâng cao độ bảo mật, khả năng sắp xếp, giá trị cho dữ liệu
hoạt động kinh doanh và các ứng dụng phân tích, làm cho chúng dễ dàng hơn trong
việc tạo dựng, triển khai và quản lý.
Sinh viên thực hiện: Nguyễn Trung Lành
15
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
* IIS (Internet Information Services)
Nhiệm vụ của IIS là tiếp nhận yêu cầu từ các máy trạm, và trả về thông tin mà
các máy trạm yêu cầu. Trong lập trình web, các bạn có thể hiểu IIS là nơi tiếp nhận các
yêu cầu từ trình duyệt web, và trả về kết quả là trang web tương ứng mà trình duyệt
uế
yêu cầu.
tế
H
1.2.2. Twitter Bootstrap
Bootstrap là một Framework CSS, giúp bạn phát triển nhanh giao diện trang
web dựa trên giao diện chuẩn của Twitter. Bạn cũng có thể sử dụng luôn Framework
này mà không cần phải chỉnh sửa hay rành rỗi về CSS, đó là một lợi thế khi dùng
h
Framework.
in
Nói nôm na, đã có người viết sẵn các style cho trang web, và lưu thành một file
cK
.css. Khi viết HTML, bạn chỉ cần dùng file css này và dùng các class, id đã được định
sẵn. Không phải mắc công viết Css, và giao diện vẫn đẹp.
* Jquery
họ
1.2.3. Bộ công cụ Jquery và Ajax
JQuery chính là một thư viện kiểu mới của Javascript giúp đơn giản hóa cách
Đ
ại
viết Javascript và tăng tốc độ xử lý các sự kiện trên trang web.JQuery thêm tương tác
Ajax vào trong trang web của bạn. JQuery được thiết kế để thay đổi cách viết
Javascript của bạn.
ng
Nói ngắn gọn, jQuery là 1 thư viện định nghĩa sẵn các phương thức javascript
để chúng ta có thể viết code javascript nhanh hơn, đơn giản hơn.
ườ
* Ajax (Asynchronous JavaScript and XML)
Ajax là viết tắt của Asynchronous JavaScript and XML, Ở các ứng dụng web
Tr
truyền thống, khi người dùng có một cần thay đổi dữ liệu trên trang Web, yêu cầu thay
đổi được gửi về server dưới dạng HTTP request (hay còn gọi postback), server sẽ xử
lý yêu cầu này và gửi trả response chứa các thông tin dưới dạng HTML và CSS, trang
HTML này sẽ thay thế trang cũ. Qui trình này được mô tả là nhấp-chờ và tải lại (clickwait-and-refresh): ví dụ người dùng sau khi nhấn một nút “Submit” trên trang web
phải chờ cho đến khi server xử lý xong mới có thể tiếp tục công việc.
Sinh viên thực hiện: Nguyễn Trung Lành
16
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
Ajax cho phép tạo ra một Ajax Engine nằm giữa giao tiếp này. Khi đó, các yêu
cầu gửi resquest và nhận response do Ajax Engine thực hiện. Thay vì trả dữ liệu dưới
dạng HTML và CSS trực tiếp cho trình duyệt, web server có thể gửi trả dữ liệu dạng
XML và Ajax Engine sẽ tiếp nhận, phân tách và chuyển hóa thành XHTML và CSS để
uế
hiển thị.
1.2.4. Mô hình 3 lớp MVC
tế
H
Phương pháp thiết kế MVC bắt nguồn từ việc phát triển giao diện người dùng
trong ngôn ngữ lập trình Smalltalk, đây là một trong những phương pháp thiết kế
thành công nhất trong các phương pháp thiết kế hướng đối tượng. Hiện nay, MVC
được dùng rộng rãi trong nhiều hệ thống phần mềm.
h
- Model: Model được giao nhiệm vụ cung cấp dữ liệu cho cơ sở dữ liệu và lưu
in
dữ liệu vào các kho chứa dữ liệu. Tất cả các nghiệp vụ logic được thực thi ở Model.
cK
Dữ liệu vào từ người dùng sẽ thông qua View đến Controller và được kiểm tra ở
Model trước khi lưu vào cơ sở dữ liệu. Việc truy xuất, xác nhận, và lưu dữ liệu là một
phần của Model. Do có 2 vai trò tương đối tách biệt cho nên một Model thường được
họ
tách thành các lớp có các domain xử lý khác biệt:
- Business logic (BL) thường là xử lý rule hay policy của nghiệp vụ cũng như
business workflows.
Đ
ại
- Domain data: Cung cấp/lưu trữ dữ liệu và việc chuyển đổi dữ liệu thành các
dạng khác nhau theo yêu cầu
- View: View hiển thị các thông tin cho người dùng của ứng dụng và được giao
ng
nhiệm vụ cho việc nhận các dữ liệu vào từ người dùng, gửi đi các yêu cầu đến
controller, sau đó là nhận lại các phản hồi từ controller và hiển kết quả cho người
ườ
dùng. Các trang HTML, JSP, các thư viện thẻ và các file nguồn là một phần của thành
Tr
phần View.
Trong các web framework, nó gồm 2 phần chính:
- Template file định nghĩa cấu trúc và cách thức trình bày dữ liệu cho user. Ví
dụ như layout, color, windows …
- Logic xử lý cách áp dụng dữ liệu vào cấu trúc trình bày. Logic này có thể bao
gồm việc kiểm tra định dạng dữ liệu, chuyển đổi định dạng dữ liệu sang một sạng dữ
liệu trung gian, lựa chọn một cấu trúc hiện thị phù hợp.
Sinh viên thực hiện: Nguyễn Trung Lành
17
Khóa luận tốt nghiệp đại học
GVHD: ThS. Nguyễn Thanh Tuấn
- Controller: controller đảm nhiệm việc cập nhật bộ phận hiển thị (View) khi
cần thiết. Bộ điều khiển này nhận dữ liệu nhập từ người dùng, truy xuất các thông tin
cần thiết từ mô hình trong (Model), và cập nhật thích hợp phần hiển thị (View). Giao
diện với người sử dụng phần mềm được thiết lập nhờ sự tương tác qua lại giữa View
uế
và Controller: hai bộ phận này chính là phần trình bày bên ngoài của đối tượng biểu
diễn bên trong.
tế
H
Martin Fowler chia MVC thành hai phiên bản là Passive View và Supervising
họ
cK
in
h
Controller.
Đ
ại
Hình 1. 4. Mô hình của 2 phiên bản MVC
Trong mẫu Passive View, thành phần View được loại bỏ hoàn toàn các xử lý
logic và tương tác đến Model. Thay vì vậy, nó chuyển giao các xử lý cho Controller
ng
đảm trách. Controller đảm nhận tương tác đến Model và cập nhật View khi có thay đổi
từ Model. Controller là thành phần trung gian liên lạc giữa View và Model.
ườ
Trong mẫu Supervising Controller, View đầu tiên bắt lấy các sự kiện và sau đó
chuyển giao cho Controller xử lý. Để cập nhật thay đổi từ Model, View dùng data -
Tr
binding và Observer Pattern cho các xử lý đơn giản còn đối với các xử lý phức tạp sẽ
nhờ đến Controller
* So sánh MVC và 3-layer/tier:
- Giống nhau:
+ Cả hai đều để tách rời programming core/business logic ra khỏi những
phụ thuộc về tài nguyên và môi trường.
Sinh viên thực hiện: Nguyễn Trung Lành
18