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 Thông tin Kinh tế của trường đã t
Trang 1KHOA HỆ THỐNG THÔNG TIN KINH TẾ
HỌC
Huế, tháng 5 năm 2014
Trường Đại học Kinh tế Huế
Trang 2Em 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
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
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
dẫn em hoàn thành tốt khóa thực tập.
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ý
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
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
Sin h viên
Trường Đại học Kinh tế Huế
Trang 3Nguyễn Tr ung Lành
MỤC LỤC
Trang
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
DANH MỤC CÁC BẢNG vi
ĐẶT VẤN ĐỀ 1
1 Lý do chọn đề tài 1
2 Mục tiêu chọn đề tài 2
3 Đối tượng và phạm vi nghiên cứu 2
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
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
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
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 Trường Đại học Kinh tế Huế
Trang 41.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
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
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
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
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
3.1.2 Sơ đồ ngữ cảnh (Context Diagram) 25
3.1.3 Sơ đồ luồng dữ liệu (DFD – Data Flow Diagram) 25
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
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
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
Trường Đại học Kinh tế Huế
Trang 5DANH MỤC CÁC KÍ KIỆU, THUẬT NGỮ VÀ CHỮ VIẾT TẮT
Tên viết tắt Tên đầy đủ/Thuật ngữ Ý nghĩa
ASP Active Server Page Một tài liệu chứa cả ngữ pháp của
HTML lẫn những cấu trúc scriptCLR Common Language Runtime Bộ thực thi ngôn ngữ chung
DLL Dynamic Link Library Thư viện liên kết động
DI Dependency Injection Chống lại sự phụ thuộc
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
MSL Mapping specification language Ngôn ngữ định nghĩa các ánh xạ giữa
các lớp
MVC Models - Views - Controllers Mô hình Kiểu mẫu - Bảng xem - Bộ
điều khiểnORM 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
SSDL Store Schema Definition
Language
Ngôn ngữ định nghĩa mô hình lưu trữ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
Trường Đại học Kinh tế Huế
Trang 6DANH 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
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
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ình 1.6 Mô hình 3 lớp MVC 19
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
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ì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
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
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
Hình 3.14 Giao diện trang thông tin sinh viên 39 Trường Đại học Kinh tế Huế
Trang 8ĐẶ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đổ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
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 đếnmụ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ý sinhviê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ằmquả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ìnhtrong quá trình học tập tại trường
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ườngcung 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êncho đế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ệnnhữ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ệncho 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ệncô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 đếncá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áchoạ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
T rườ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
Trường Đại học Kinh tế Huế
Trang 92 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âydự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 sinhviê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ể:
- Nghiên cứu cơ sở lý thuyết về hệ thống thông tin quản lý
- 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ọcKinh tế - Đại học Huế bao gồm:
- Quản lý thông tin cá nhân
- Quản lý thông tin tuyển sinh
- Quản lý các thông tin khác liên quan đến sinh viên
- Quản lý hồ sơ sinh viên
3 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu:
- 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Đạ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ế
- 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#
Trường Đại học Kinh tế Huế
Trang 10- 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ốngquả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
Ngoài phần mở đầu và kết luận, nội dung khóa luận gồm 3 chương:
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 íchcủ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ốngthông tin quản lý
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
viên tại trường Đại học Kinh tế - Đại học Huế.
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ạiTrườ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 ọ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ư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ể
- mối quan hệ, thiết kế CSDL, các quy trình chính, giao diện
Trường Đại học Kinh tế Huế
Trang 11PHẦ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
HỆ THỐNG QUẢN LÝ THÔNG TIN SINH VIÊN
1.1 Khái niệm về hệ thống, hệ thống thông tin quản lý
1.1.1 Khái niệm hệ thống
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ùnghoạt động chung cho một số mục tiêu nào đó Trong hoạt động có trao đổi vào ra vớimôi trường ngoài
1.1.2 Hệ thống quản lý
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ích nào đó Đặc điểm của hệ thống là có sự tham gia của con người và có trao đổithông tin
Hệ thống quản lý chia thành hai hệ thống con:
- 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áptrực tiếp thực hiện mục tiêu đã đề ra
- Hệ quản lý (gián tiếp sản xuất): Gồm con người, phương tiện, phương phápcho 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:
+ 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ý
và biểu diễn thông tin trong một hay nhiều quá trình kinh doanh Hệ thống thông tinphá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 tingiúp con người trong sản xuất, quản lý và ra quyết định
Trường Đại học Kinh tế Huế
Trang 12- 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 địnhmột cách thông minh
1.2 Giới thiệu các công cụ để xây dựng hệ thống quản lý
1.2.1 Nền tảng Microsoft Net (Microsoft Net Platform)
.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ốngnhấ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áctrang web dựa trên XML như những dịch vụ chia xẻ, kết nối thông tin và hoạt độngcù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ấpnhữ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 Netcủ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ácdịch vụ Web
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
để 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ậptrì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
* 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ẵnmộ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ộ đangô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
Trường Đại học Kinh tế Huế
Trang 13Visual 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ônngữ 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ệunǎng cao của Visual Basic và sức mạnh của C++ C# được Microsoft giới thiệu để xâydự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ườngphá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ênMicrosoft Net và cho cả nền tảng Microsoft Windows cũng như tạo ra các ứng dụngInternet thế hệ kế tiếp một cách nhanh chóng và hiệu quả
* Nền tảng Net
.Net Framework là động cơ tạo các dịch vụ Web XML của Microsoft .NetFramework 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ócung cấp cơ sở hạ tầng để xây dựng và chạy các dịch vụ Web .Net Framework baogồm ba thành phần chính là Bộ Thực Thi Ngôn Ngữ Chung (Common LanguageRuntime), The Các Lớp Thư Viện Cơ Sở (The Base Classes) và Các ứng dụng Web(ASP.Net)
* Common Language Runtime (Bộ thực thi ngôn ngữ chung)
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ộcmọ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 Systemhay 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ànhphầ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(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 Javatrong 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ạpTrường Đại học Kinh tế Huế
Trang 14và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ùngchấ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 đâycho 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"
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 đốitượ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ǎngkhá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
Như vậy là bộ thực thi ngôn ngữ chung CLR cho phép việc phát triển các ứngdụ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,
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à cungcấ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 quanamespace Namespace là một cách đặt tên để giúp sắp đặt các lớp (class) ta dùngtrong 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ộtnamespace
* 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ụngthành ba thành phần chính: model, view và controller Nền tảng ASP.NET MVC giúpcho 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 ứngdụ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ợpcác tính năng có sẵn của ASP.NET Nền tảng ASP.NET MVC được định nghĩa trongnamespace System.Web.Mvc và là một phần của name space System.Web
Trường Đại học Kinh tế Huế
Trang 15MVC 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ácvẫn thích hợp với ASP.NET Web Forms và cơ chế postbacks Đôi khi có những ứngdụng kết hợp cả hai kiến trúc trên.
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àythiế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ảnphẩ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àobảng Products ở SQL Server
Trong các ứng dụng nhỏ, model thường là chỉ là một khái niệm nhằm phân biệthơ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ởichúng đến view, ứng dụng khong cần phải có tầng model và các lớp lien quan Trongtrườ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
Hình 1 1 Mô hình ASP.Net MVC
Trường Đại học Kinh tế Huế
Trang 16để 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 checkbox 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ườidù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ứng dụng MVC, view chỉ được dùng để hiển thị thông tin, controller chịu trách nhiệmquả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ụ,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ácgiá 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íacạ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ẫuMVC chỉ ra mỗi loại logic kể trên nên được thiếp lập ở đâu trên ứng dụng Logic giaodiện (UI logic) thuộc về views Logic nhập liệu (input logic) thuộc về controller Và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 ứngdụ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ư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ử
lý thông tin của ứng dụng
Để 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 ứngdụng ASP.NET Web Forms, một lớp thường được sử dụng để hiển thị thông tin xuất
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 trangweb, 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ụngtrong 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 đượckhở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íacạ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ảngWeb 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 giaoTrường Đại học Kinh tế Huế
Trang 17diệ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êngbiệ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ậptrì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ênthứ 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 logictác vụ của model tại cùng một thời điểm
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à logicgiao 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áctí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ử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áctí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-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
- MVC là một nền tảng khả mở rộng (extensible) & khả nhúng (pluggable) Cácthành phần của ASP.NET MVC được thiết kể để chúng có thể được thay thế một cách
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ế địnhtuyế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 ofControl (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ếumộ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à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âydự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ỉ URLkhô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
Trường Đại học Kinh tế Huế
Trang 18- Hỗ trợ sử dụng đặc tả (các thẻ) của các trang ASP.NET(.aspx), điều khiểnngười dùng (.ascx) và trang master page (.marter) Chúng ta có thể sử dụng các tínhnăng có sẵn của ASP.NET như là sử dụng lồng các trang master page, sử dụng in-lineexpression (<%= %>), sử dụng server controls, mẫu, data-binding, địa phương hóa(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,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à RazorView Engine( cshtml) cho phép thiết lập các view nhanh chóng, dễ dàng và tốn ítcông sức hơn so với việc sử dụng Web Form view engine
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
dựa trên mô hình MVC
Lợi ích của ứng dụng được xây dựng trên nền tảng Web Forms
Dễ dàng quản lý sự phức tạp của ứng
dụng bằng cách chia ứng dụng thành ba
thành phần model, view, controller
Hỗ trợ cách lập trình hướng sự kiện, quản
lý trạng thái trên giao thức HTTP, tiệndụng cho việc phát triển các ứng dụngWeb phục vụ kinh doanh
Không sử dụng view state hoặc
server-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
Sử dụng mẫu Page Controller
Nó sử dụng mẫu Front Controller, mẫu
này giúp quản lý các requests (yêu cầu)
chỉ thông qua một Controller Nhờ đó bạn
có thể thiết kế một hạ tầng quản lý định
tuyến
Mô hình này sử dụng view state hoặcserver-based form, nhờ đó sẽ giúp choviệc quản lý trạng thái các trang web dễdàng
Hỗ trợ tốt hơn cho mô hình phát triển ứng
dụng hướng kiểm thử (TDD)
Phù hợp với các nhóm lập trình viên quy
mô nhỏ và các thiết kế, những ngườiTrường Đại học Kinh tế Huế
Trang 19Entity Framework
- ADO.NET Entity Framework là một nền tảng được sử dụng để làm việc với cơ
sở dữ liệu thông qua cơ chế ánh xạ Object/Relational Mapping (ORM) Nhờ đó, bạn có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
muốn tận dụng các thành phần giúp xâydựng ứng dụng một cách nhanh chóng
Hỗ trợ tốt cho các ứng dụng được xây
dựng bởi những đội có nhiều lập trình
viên và thiết kế mà vẫn quản lý được tính
năng của ứng dụng
Web Forms giúp giảm bớt sự phức tạptrong xây dựng ứng dụng, bởi vì các thànhphần (lớp Page, controls,…) được tíchhợp chặc chẽ và thường thì giúp chúng taviết ít code hơn là áp dụng theo mô hìnhMVC
Hình 1.2 Kiến trúc của mô hình Entity Framework
Trường Đại học Kinh tế Huế
Trang 20- 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ăngquả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 proceduretrong database
+ ObjectSet<TEntity> là một một tập hợp các entity Mỗi đối tượng nàytươ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ínhtương ứng của ObjectContext
+ EntityObject, ComplexObject là các lớp tương ứng cho một dòng dữ liệucủa bảng trong cơ sở dữ liệu Khác biệt chính giữa hai loại này là ComplexObjectkhông chứa primary key
+ EntityCollection<TEntity> và EntityReference<TEntity>: là các đốitượ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
Bảng 1.2 Bảng ánh xạ tương đương sau giữa các đối tượng trong database và EF
Cơ sở dữ liệu ObjectContext
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ônngữ 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:
Trường Đại học Kinh tế Huế
Trang 21+ Conceptual – Conceptual Schema Definition Language (CSDL): là ngônngữ đị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ạ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ô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áctập tin csdl, msl và ssdl sẽ được tạo ra dựa vào tập tin edmx này
- EntityClient Data Provider :
+ 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ựavà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 dataprovider 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ằngEntityConnection, tạo các câu truy vấn bằng EntityCommand và đọc kết quả bằngEntityDataReader
Một điểm khác biệt với các data provider khác là EntityClient sử dụng EntitySQL để 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ệnhdạ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ệcvới Entity Framework:
+ Tạo cơ cở dữ liệu trước (Database First): Trong trường hợp bạn muốnlà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
Trường Đại học Kinh tế Huế
Trang 22+ 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 tacũng dùng codebehind để xử lý là chính Không dùng các công cụ, giao diện trực quangiống như 2 cách bên trên.
1.2.1.2 Cơ sở hạ tầng HGH máy phục vụ (Server)
* Windows Web Server 2008
Windows Server 2008 được thiết kế để cung cấp cho các tổ chức có được nềntả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 đếnnhữ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ảithiệ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ủaMicrosoft Nó sẽ cho phép nâng cao độ bảo mật, khả năng sắp xếp, giá trị cho dữ liệuhoạt động kinh doanh và các ứng dụng phân tích, làm cho chúng dễ dàng hơn trongviệc tạo dựng, triển khai và quản lý
Hình 1 3 Các cách làm việc với Entity Framework
Trường Đại học Kinh tế Huế
Trang 23* 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ácyê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ệtyêu cầu
1.2.2 Twitter Bootstrap
Bootstrap là một Framework CSS, giúp bạn phát triển nhanh giao diện trangweb dựa trên giao diện chuẩn của Twitter Bạn cũng có thể sử dụng luôn Frameworknà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ùngFramework
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.css Khi viết HTML, bạn chỉ cần dùng file css này và dùng các class, id đã được địnhsẵn Không phải mắc công viết Css, và giao diện vẫn đẹp
1.2.3 Bộ công cụ Jquery và Ajax
* Jquery
JQuery chính là một thư viện kiểu mới của Javascript giúp đơn giản hóa cáchviết Javascript và tăng tốc độ xử lý các sự kiện trên trang web.JQuery thêm tương tácAjax vào trong trang web của bạn JQuery được thiết kế để thay đổi cách viếtJavascript của bạn
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 webtruyề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, trangHTML này sẽ thay thế trang cũ Qui trình này được mô tả là nhấp-chờ và tải lại (click-wait-and-refresh): ví dụ người dùng sau khi nhấn một nút “Submit” trên trang webphải chờ cho đến khi server xử lý xong mới có thể tiếp tục công việc
Trường Đại học Kinh tế Huế
Trang 24Ajax cho phép tạo ra một Ajax Engine nằm giữa giao tiếp này Khi đó, các yêucầu gửi resquest và nhận response do Ajax Engine thực hiện Thay vì trả dữ liệu dướidạng HTML và CSS trực tiếp cho trình duyệt, web server có thể gửi trả dữ liệu dạngXML và Ajax Engine sẽ tiếp nhận, phân tách và chuyển hóa thành XHTML và CSS đểhiển thị.
1.2.4 Mô hình 3 lớp MVC
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ùngtrong 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
- Model: Model được giao nhiệm vụ cung cấp dữ liệu cho cơ sở dữ liệu và lưu
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
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ộtphần của Model Do có 2 vai trò tương đối tách biệt cho nên một Model thường đượctá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
- Domain data: Cung cấp/lưu trữ dữ liệu và việc chuyển đổi dữ liệu thành cácdạ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 giaonhiệ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 đếncontroller, sau đó là nhận lại các phản hồi từ controller và hiển kết quả cho ngườidù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ànhphầ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ể baogồ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ữTrường Đại học Kinh tế Huế