1. Trang chủ
  2. » Luận Văn - Báo Cáo

kl ha thi kim phuong

134 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 134
Dung lượng 6,8 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chúng tôi đã đi khảo sát, tìm hiểu và nghiên cứu để đưa ra một ứng dụng web với đầy đủ các chức năng, dễ sử dụng, thân thiện với người dùng và đặc biệt là hữu ích cho doanh nghiệp.. Các

Trang 1

KHOA CÔNG NGH Ệ THÔNG TIN VÀ TOÁN ỨNG DỤNG

LUẬN VĂN TỐT NGHIỆP

Gi ảng viên hướng dẫn: Thầy VŨ ĐÌNH HỒNG

Sinh viên th ực hiện:

Trang 2

Page 1

LỜI CÁM ƠN

Trong suốt quá trình học tập tại trường Đại học Tôn Đức Thắng, chúng em đã được tạo điều kiện thuận lợi cho việc học tập của mình, đồng thời chúng em cũng nhận được rất nhiều sự quan tâm, dìu dắt dạy bảo tận tình của quí Thầy Cô Lời đầu tiên,

chúng em gửi đến tất cả các thầy cô trong Khoa Công Nghệ Thông Tin & Toán

Ứng Dụng, trường Đại Học Tôn Đức Thắng lòng biết ơn chân thành đối với những

gì thầy cô đã dành cho chúng em trong suốt thời gian qua

Và hơn hết, chúng em xin gửi lời cảm ơn sâu sắc đến Thầy Vũ Đình Hồng,

người đã trực tiếp hướng dẫn chúng em trong suốt thời gian thực hiện đề tài Với sự quan tâm hướng dẫn tận tình của Thầy, chúng em đã từng bước làm quen với quá trình thực hiện đề tài và đã có những thành quả nhất định Trong suốt quá trình được Thầy hướng dẫn chúng em đã học tập được rất nhiều từ Thầy về kiến thức chuyên môn, tác phong làm việc và nhiều điều bổ ích khác Chính nhờ những điều đó, chúng em mới có

thể hoàn thành khóa luận tốt nghiệp này

Cuối cùng em xin gửi lời cảm ơn tới gia đình và bạn bè đã luôn bên cạnh, ủng hộ

và động viên em trong những lúc gặp phải khó khăn để em có thể hoàn thành quá trình học tập, nghiên cứu và thực hiện khóa luận tốt nghiệp này

Mặc dù chúng em đã làm việc nghiêm túc và rất cố gắng hoàn thành luận văn, nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, kính mong sự cảm thông và tận tình chỉ bảo của quý Thầy Cô và các bạn

Trang 3

Page 2

Nhận xét của giáo viên hướng dẫn:

Trang 4

Page 3

Nhận xét của giáo viên phản biện:

Trang 5

Page 4

MỤC LỤC

LỜI CÁM ƠN 1

MỤC LỤC 4

Danh mục các từ viết tắt 7

Danh mục các bảng biểu 8

Danh mục các hình vẽ 12

LỜI NÓI ĐẦU 15

Chương 1 Giới thiệu đề tài 16

1.1 Yêu cầu thực tế và lý do thực hiện: 16

1.1.1 Nhu cầu thực tế của hình thức thương mại điện tử ngày nay 16

1.1.2 Lý do thực hiện đề tài website thương mại điện tử 17

1.2 Mục tiêu đề tài 17

1.2.1 Đối với doanh nghiệp 17

1.2.2 Đối với khách hàng 17

1.3 Tổng quan về đề tài 18

1.3.1 Yêu cầu chức năng 18

1.3.2 Yêu cầu phi chức năng 18

1.4 Mô tả phạm vi hệ thống 19

1.4.1 Đặc tả yêu cầu người dùng 19

1.4.2 Đối tượng thao tác trên hệ thống 20

Trang 6

Page 5

Chương 2 Cơ Sở Lý Thuyết 22

2.1 Tổng quan về ASP.NET MVC 22

2.2 ASP.NET MVC Là gì? 22

2.2.1 Mô hình MVC 22

2.2.2 Một vài đặc tính trong ASP.NET MVC 23

2.3 Sự khác biệt với WebForm 24

2.4 So sánh mô hình MVC với mô hình 3 lớp 26

2.5 Tìm hiểu định tuyến URL 28

2.6 Tìm hiểu về Controllers 29

2.7 Tìm hiểu về View 32

2.8 Tìm hiểu về model 37

2.9 Linq to SQL 39

2.9.1 Linq to SQL là gì? 39

2.9.2 Mô hình hoá CSDL dùng Linq to SQL 40

2.9.3 Ứng dụng Linq to SQL 41

2.9.4 Tổng Kết 44

2.10 Ajax trong MVC 44

2.10.1 Ajax là gì? 44

2.10.2 Cách thức Ajax làm việc 44

Chương 3 Phân tích thiết kế 48

Trang 7

Page 6

3.1 Phân tích dữ liệu 48

3.1.1 Lược đồ Usecase 48

3.1.2 Đặc tả UseCase 50

3.1.3 Mô hình thực thể kết hợp 68

3.1.4 Bảng mô tả các thực thể 70

3.1.5 Ràng Buộc Toàn Vẹn 81

3.1.6 Sơ đồ Class 90

3.1.7 Sơ đồ cây chức năng 100

Chương 4 Cài đặt giao diện 106

4.1 Một số cài đặt cơ sở dữ liệu 106

4.1.1 Bảng dữ liệu 106

4.1.2 Mô hình quan hệ trên cơ sở dữ liệu 107

4.2 Một số màn hình tiêu biểu của ứng dụng 107

Chương 5 Tổng kết 132

5.1 Tổng kết 132

5.1.1 Về phía bản than 132

5.1.2 Về phía luận văn 132

5.2 Hướng phát triển 132

Tài liệu tham khảo 133

Trang 9

Page 8

Danh mục các bảng biểu

Bảng 2.1: So sánh ASP.NET MVC với WebForm 25

Bảng 3.1: Bảng loại sản phẩm 70

Bảng 3.2: Bảng tin tức 71

Bảng 3.3: Bảng quảng cáo 71

Bảng 3.4: Bảng chi tiết hóa đơn 72

Bảng 3.5: Bảng hàng hóa 73

Bảng 3.6: Bảng hỏi đáp 74

Bảng 3.7: Bảng hóa đơn 75

Bảng 3.8: Bảng User 76

Bảng 3.9: Bảng khuyến mãi 76

Bảng 3.10: Bảng liên kết 77

Bảng 3.11: Bảng khách hàng 78

Bảng 3.12: Bảng phân quyền 79

Bảng 3.13: Bảng bạn bè 79

Bảng 3.14: Bảng yêu thích 80

Bảng 3.15: Bảng nhà cung cấp 81

Bảng 3.16: Tầm ảnh hưởng bảng Loại 82

Bảng 3.17: Tầm ảnh hưởng của bảng Hàng hóa 82

Bảng 3.18: Tầm ảnh hưởng của bảng Chi tiết hóa đơn 83

Trang 10

Page 9

Bảng 3.19: Tầm ảnh hưởng của bảng hóa đơn 83

Bảng 3.20: Tầm ảnh hưởng của bảng Yêu thích 84

Bảng 3.21: Tầm ảnh hưởng của bảng nhà cung cấp 84

Bảng 3.22: Tầm ảnh hưởng của bảng khách hàng 85

Bảng 3.23: Tầm ảnh hưởng của bảng User 85

Bảng 3.24: Tầm ảnh hưởng của bảng khuyến mãi 86

Bảng 3.25: Tầm ảnh hưởng của bảng hỏi đáp 86

Bảng 3.26: Tầm ảnh hưởng của bảng tin tức 87

Bảng 3.27: Tầm ảnh hưởng của bảng quảng cáo 87

Bảng 3.28: Tầm ảnh hưởng của bảng hàng hóa và chi tiết hóa đơn 88

Bảng 3.29: Tầm ảnh hưởng của bảng hóa đơn và chi tiết hóa đơn 89

Bảng 3.30: Lớp User 91

Bảng 3.31: Lớp Tin tức 92

Bảng 3.32: Lớp Khuyến mãi 93

Bảng 3.33: Lớp Quảng cáo 94

Bảng 3.34: Lớp Loại sản phẩm 94

Bảng 3.35: Lớp Hàng hóa 95

Bảng 3.36: Lớp Hóa đơn 95

Bảng 3.37: Lớp Hỏi đáp 96

Bảng 3.38: Lớp Liên kết 96

Trang 11

Page 10

Bảng 3.39: Lớp Phân quyền 97

Bảng 3.40: Lớp Khách hàng 97

Bảng 3.41: Lớp Yêu thích 98

Bảng 3.42: Lớp Bạn bè 98

Bảng 3.43: Lớp Nhà cung cấp 99

Bảng 3.44: Mối quan hệ giữa các lớp 100

Bảng 3.45: Danh sách Module của Admin 101

Bảng 3.46: Danh sách các Module của nhân viên bán hàng 103

Bảng 3.47: Danh sách các Module tương ứng của khách hàng 105

Bảng 4.1: Danh sách các điều khiển của Trang chủ 109

Bảng 4.2: Danh sách các điều khiển của Trang đăng nhập 110

Bảng 4.3: Danh sách các điều khiển của Trang đăng ký 110

Bảng 4.4: Danh sách các điều khiển của Trang nhà cung cấp 112

Bảng 4.5: Danh sách các điều khiển của Trang hàng hóa 113

Bảng 4.6: Danh sách các điều khiển của Trang tin tức 115

Bảng 4.7: Danh sách các điều khiển của Trang liên kết 116

Bảng 4.8: Danh sách các điều khiển của Trang hóa đơn 118

Bảng 4.9: Danh sách các điều khiển của Trang chi tiết hóa đơn 119

Bảng 4.9: Danh sách các điều khiển của Trang bạn bè 121

Bảng 4.10: Danh sách các điều khiển của Trang hỏi đáp 122

Trang 12

Page 11

Bảng 4.11: Danh sách các điều khiển của Trang loại 123

Bảng 4.12: Danh sách các điều khiển của Trang khuyến mãi 124

Bảng 4.13: Danh sách các điều khiển của Trang quảng cáo 125

Bảng 4.14: Danh sách các điều khiển của Trang phân quyền 126

Bảng 4.15: Danh sách các điều khiển của Trang khách hàng 127

Bảng 4.15: Danh sách các điều khiển của Trang thống kê hàng hóa 127

Bảng 4.16: Danh sách các điều khiển của Trang thống kê hóa đơn 128

Bảng 4.17: Danh sách các điều khiển của Trang thay đổi thông tin 129

Bảng 4.18: Danh sách các điều khiển của Trang thay đổi mật khẩu 130

Bảng 4.18: Danh sách các điều khiển của Trang giỏ hàng 131

Trang 13

Page 12

Danh mục các hình vẽ

Hình 1.1: Nhu cầu thương mại điện tử 16

Hình 2.1: Mô hình MVC cơ bản 23

Hình 2.2 : So sánh mô hình MVC và mô hình 3 lớp 26

Hình 2.3: Mô hình 3 lớp 27

Hình 2.4: Mô hình MVC 27

Hình 2.5 Form Login 35

Hình 2.6: Mô hình dữ liệu LINQ to SQL 37

Hình 2.7: Ví dụ về Model 38

Hình 2.8 : Mô hình Linq to SQL 40

Hình 2.9: Hình minh họa lấy danh sách tất cả sản phẩm từ CSDL 41

Hình 2.10: Hình minh họa lấy chi tiết 1 sản phẩm từ CSDL 41

Hình 2.11: Thêm 1 sản phẩm 42

Hình 2.12: Cập nhật sản phẩm 43

Hình 2.13: Xóa sản phẩm 44

Hình 2.14: Liệt kê sản phẩm và phân trang 44

Hình 2.15: Thư mục Script trong ứng dụng 45

Hình 2.16: Thêm thư viện javascipt vào Site master 46

Hình 2.17: Kết quả Ajax 47

Trang 14

Page 13

Hình 3.1: Lƣợc đồ Usecase 49

Hình 3.2: Mô hình thực thể kết hợp 69

Hình 3.3 Sơ đồ Class 90

Hình 3.4 Cây chức năng Admin 100

Hình 3.5: Cây chức năng của nhân viên bán hàng 102

Hình 3.6 Cây chức năng của khách hàng 104

Hình 4.1: Bảng dữ liệu 106

Hình 4.2: Mô hình quan hệ trên cơ sở dữ liệu 107

Hình 4.3: Giao diện trang chủ 108

Hình 4.4: Giao diện Trang đăng nhập 109

Hình 4.5: Giao diện Trang đăng ký 110

Hình 4.6: Giao diện Trang quản lý nhà cung cấp 111

Hình 4.7: Giao diện Trang quản lý hàng hóa 112

Hình 4.8: Giao diện Trang quản lý tin tức 114

Hình 4.9: Giao diện Trang quản lý liên kết 115

Hình 4.10: Giao diện Trang quản lý hóa đơn 117

Hình 4.11: Giao diện Trang quản lý chi tiết hóa đơn 118

Hình 4.12: Giao diện Trang quản lý bạn bè 120

Hình 4.13: Giao diện Trang quản lý hỏi đáp 121

Trang 15

Page 14

Hình 4.14: Giao diện Trang quản lý loại 122

Hình 4.15: Giao diện Trang quản lý khuyến mãi 123

Hình 4.16: Giao diện Trang quản lý quảng cáo 125

Hình 4.17: Giao diện Trang quản lý phân quyền 125

Hình 4.18: Giao diện Trang quản lý khách hàng 126

Hình 4.19: Giao diện Trang thống kê hàng hóa 127

Hình 4.20: Giao diện Trang thống kê hóa đơn 128

Hình 4.21: Giao diện Trang thay đổi thông tin 129

Hình 4.22: Giao diện Trang thay đổi mật khẩu 129

Hình 4.23: Giao diện Trang giỏ hàng 130

Trang 16

Page 15

LỜI NÓI ĐẦU

Ngày nay, khi khoa học-công nghệ ngày càng phát triển Công nghệ thông tin

đã đi vào tất cả các lĩnh vực của xã hội

Các doanh nghiệp đã áp dụng nó vào trong các lĩnh vực kinh doanh của mình

và có những kết quả tốt

Với đề tài luận văn Tìm hiểu về ASP.NET MVC, Ajax và xây dựng website thương mại điện tử Chúng tôi đã đi khảo sát, tìm hiểu và nghiên cứu để đưa ra một ứng dụng web với đầy đủ các chức năng, dễ sử dụng, thân thiện với người dùng và đặc biệt là hữu ích cho doanh nghiệp

Chúng tôi đã đi tìm hiểu ở ngoài thực tế, đặc biệt là các doanh nghiệp để tổng hợp những chức năng mà họ cần Từ đó rút ra được những nghiệp vụ của website bán hàng trực tuyến Chúng tôi cũng đã tìm hiểu những thông tin ở sách, internet để có thể hoàn chỉnh bài luận văn này

Mặc dù đã có sự hướng dẫn tận tình, chu đáo của giáo viên hướng dẫn trong suốt quá trình thực hiện luận văn, với sự cố gắng hết mình của các thành viên trong nhóm nhưng do hạn chế về thời gian, kinh nghiệm nên chương trình có nhiều thiếu sót Kính mong các thầy cô quan tâm giúp đỡ

Hà Thị Kim Phượng & Huỳnh Hữu Hồng Huệ

Trang 17

Page 16

Chương 1 Giới thiệu đề tài

1.1 Yêu cầu thực tế và lý do thực hiện:

Đề tài xây dựng website thương mại điện tử được thực hiện nhằm mục đích mua bán hàng hoá tiện lợi hơn Khách hàng có thể mua hàng trực tuyến mà không cần phải đến cửa hàng Giúp khách hàng và người bán hàng có thể thực hiện việc mua và bán 1 cách nhanh chóng và hiệu quả Đặc biệt một website đẹp không những gây ấn tượng tốt cho đối tác khi giao dịch mà còn là thể hiện tính chuyên nghiệp, sự tôn trọng khách hàng, cũng như khả năng và tầm nhìn của khách hàng đó

Thiết kế website ứng tượng sẽ lôi cuốn khách hàng nhiều hơn và làm cho khách hàng cảm thấy hứng thú khi ghé thăm website của doanh nghiệp

1.1.1 Nhu cầu thực tế của hình thức thương mại điện tử ngày nay

Việt Nam đang là một quốc gia rất có tiềm năng trong việc phát triển thương mại điện tử Tỉ lệ người sử dụng Internet tăng lên nhanh chóng Vì vậy, việc áp dụng thương mại điện tử ở các doanh nghiệp là cần thiết với thị trường hiện nay

Vì vậy với mong muốn là tìm hiểu và phát triển đề tài website thương mại điện tử để có thể phát huy hiệu quả mà hình thức này mang lại Đồng thời tạo ra hướng phát triển mới cho các doanh nghiệp có thể tiếp cận khách hàng gần hơn

Trang 18

Page 17

1.1.2 Lý do thực hiện đề tài website thương mại điện tử

Ngày nay, các hình thức giao dịch thông qua thương mại điện tử ngày càng phổ biến Các doanh nghiệp muốn cạnh tranh được với các doanh nghiệp khác phải có những chiến dịch quảng cáo sản phẩm của mình đến với khách hàng một cách nhanh nhất và hiệu quả nhất

Đồng thời, chúng em cũng muốn áp dụng những thứ đã học ở trên ghế nhà trường vào thực tế và để có thể mở rộng thị trường kinh doanh của Việt Nam ngày càng phát triển, có thể ngang ngửa với các nước trên thế giới

1.2 Mục tiêu đề tài

Mục tiêu của website thương mại điện tử là giới thiệu sản phẩm đến người tiêu dùng và mua bán sản phẩm qua mạng

1.2.1 Đối với doanh nghiệp

Các doanh nghiệp có thể giới thiệu sản phẩm và các thông tin khuyến mãi đầy đủ đến người tiêu dùng không chỉ ở trong nước mà còn trên thế giới Diện tích trưng bày sản phẩm không bị giới hạn vì vậy các doanh nghiệp có thể trưng bày nhiều sản phẩm tuỳ ý Ngoài ra website còn tạo điều kiện cho việc mua bán được thuận lợi và nhanh chóng, tiết kiệm được một khoảng thời gian cho khách hàng Gỉam chi phí hoạt động cho việc quảng cáo sản phẩm

1.2.2 Đối với khách hàng

Khách hàng có thể mua được sản phẩm mình yêu thích mà không cần phải đến cửa hàng Có thể tiết kiệm được thời gian và chi phí đi lại, xem được nhiều sản phẩm hơn, và việc mua hàng hoá chở nên dễ dàng hơn Các thông tin khuyến mãi về sản phẩm cũng đến với người tiêu dùng nhanh hơn

Trang 19

 Khách hàng có thể đăng ký làm thành viên để nhận thông tin khuyến mãi hoặc chọn sản phẩm yêu thích

1.3.1.2 Chức năng nghiệp vụ

 Lưu trữ thông tin giao dịch của khách hàng: số tài khoản, số đơn hàng của khách hàng

 Lưu trữ thông tin về sản phẩm: giá cả, nhà sản xuất…

1.3.2 Yêu cầu phi chức năng

1.3.2.1 Yêu cầu bảo mật

 Các thông tin về khách hàng không cho phép người ngoài truy cập vào xem ngoại trừ admin và nhân viên bán hàng

 Để đăng nhập vào cơ sở dữ liệu yêu cầu người dùng phải đăng nhập đúng tên đăng nhập và mật khẩu

Trang 20

Page 19

1.3.2.2 Yêu cầu an toàn dữ liệu

 Phải luôn cập nhật cơ sở dữ liệu để tránh sự cố xảy ra, có thể khôi phục cơ sở dữ liệu ban đầu

1.3.2.3 Yêu cầu giao diện

 Giao diện trang nhã, thân thiện, dễ sử dụng

 Các chức năng thiết kế thân thiện, thuận tiện cho người sử dụng

1.3.2.4 Khối lượng dữ liệu

 Đáp ứng được khối lượng thông tin lưu trữ cho khách hàng

 Thời gian xử lý, kết xuất thông tin lưu trữ cho khách hàng là tương đối sử dụng được

1.4 Mô tả phạm vi hệ thống

1.4.1 Đặc tả yêu cầu người dùng

Một nhà sản xuất hàng hóa cho phép khả năng mua sắm hàng hóa của công ty mình qua Internet thông qua trang web bán hàng trực tuyến Khách hàng

có thể chọn mua hàng hóa trên trang web của nhà sản xuất đó

Để đặt một đơn hàng, khách hàng phải điền đầy đủ các thông tin giao hàng và thanh toán Các phương pháp thanh toán chấp nhận là trả bằng tiền mặt khi nhận hàng Một khi đơn hàng đã được nhập vào, hệ thống gởi một thông báo bằng email đồng ý tới cho khách hàng với những chi tiết của đơn hàng Khách hàng có thể kiểm tra trực tuyến bất kỳ lúc nào để kiểm tra tình trạng đơn hàng

Xử lý đơn hàng ở phía sau gồm có các bước cần để xác minh sự uỷ nhiệm và phương pháp thanh toán của khách hàng, yêu cầu cấu hình được đặt hàng từ kho hàng, in hóa đơn, và yêu cầu kho hàng gửi máy tính tới cho khách hàng

Trang 21

Page 20

1.4.2 Đối tượng thao tác trên hệ thống

+ ADMIN : Là người có toàn quyền thao tác trên hệ thống, có 1 tài

khoản để thực hiện chức năng chính như :

 Quản lí tài khoản người dùng :

 Thêm mới người dùng

 Phân quyền người dùng

 Xóa người dùng

+NHÂN VIÊN BÁN HÀNG: Là nhân viên trong công ty đảm nhận

công việc bán hàng qua mạng, được tạo 1 tài khoản để thực hiện các chức năng :

 Quản lý hàng hóa :

 Cập nhật thông tin hàng hóa

 Quản lý hóa đơn :

 Kiểm tra tình trạng giao nhận hàng hóa

 Thống kê số lượng đơn đặt hàng bán được trong tháng

 Cập nhật trạng thái giao hàng

 Quản lý tin tức :

 Đăng tải, cập nhật tin tức

 Quản lý khuyến mãi :

 Đăng tải, cập nhật thông tin khuyến mãi

 Quản lý hỏi –đáp :

 Xem, kiểm tra các thắc mắc cần tư vấn của khách hàng

 Cho phép ẩn hiện đối với từng câu hỏi

 Trả lời các câu hỏi thắc mắc cần tư vấn của khách hàng

 Quản lý quảng cáo :

 Kiểm tra, cho phép quảng cáo

 Cập nhật thông tin quảng cáo

 Quản lý loại sản phẩm

 Cập nhật thông tin loại sản phẩm

 Quản lý thông tin bạn bè

 Cập nhật thông tin bạn bè

Trang 22

Page 21

 Thống kê số lƣợng hàng hóa theo định kì từng ngày, tháng, năm

 Thống kê số lƣợng hoá đơn theo từng ngày, tháng, năm

+KHÁCH HÀNG : có thể truy cập vào trang web và thực hiện các

 Thay đổi thông tin

 Đăng nhập vào tài khoản bằng tên đăng nhập và mật khẩu

 Gởi Link sản phẩm đến cho bạn bè

Trang 23

Kiểu mẫu lập trình các ứng dụng nền tảng Web này tuy rằng không phải là kiểu mẫu lập trình tốt nhất hiện nay xong nó có những ưu điểm nhất định và được sử dụng khá phổ biến và đang tiếp tục được hỗ trợ phát triển của Micorosoft Chính vì những lí

do này mà nó đáng được tìm hiểu để từ đó sử dụng một cách hiệu quả

2.2 ASP.NET MVC Là gì?

2.2.1 Mô hình MVC

MVC viết tắt của các chữ cái đầu của Models, Views, Controllers MVC chia giao diện UI thành 3 phần tương ứng: đầu vào của controller là các điều khiển thông qua HTTP request, model chứa các miền logic, view là những thứ được sinh ra trả về cho trình duyệt

Trang 24

Page 23

Hình 2.1: Mô hình MVC cơ bản

Lợi ích của việc dùng phương pháp MVC là sự phân đoạn rõ ràng giữa models, views, controllers bên trong ứng dụng Cấu trúc sạch sẽ giúp cho việc kiểm tra lỗi ứng dụng trở nên dễ dàng hơn

2.2.2 Một vài đặc tính trong ASP.NET MVC

Tách rõ ràng các mối liên quan, mở khả năng test TDD (test driven developer) Có thể test unit trong ứng dụng mà không cần phải chạy Controllers cùng với tiến trình của ASP.NET và có thể dùng bất kỳ một unit testing framework nào như NUnit, MBUnit, MS Test, v.v…

Có khả năng mở rộng, mọi thứ trong MVC được thiết kế cho phép dễ dàng thay thế/tùy biến ( ví dụ: có thể lựa chọn sử dụng engine view riêng, routing policy, parameter serialization, v.v…)

Bao gồm một ánh xạ URL mạnh mẽ cho phép xây dựng ứng dụng với những URL sạch, các URL không cần cs phần mở rộng ( ví dụ: có thể ánh xạ địa chỉ /Products/Edit/4 để thực hiện hành động “Edit” của lớp điều khiển ProductControllers hoặc ánh xạ địa chỉ /Blog/SomeTopic để thực hiện hành động

“Display Topic” của lớp điều khiển BlogEngineController )

ASP.NET MVC Framework cũng hỗ trợ những file ASP.NET như ASPX ASCX và Master, đánh dấu các tập tin này như một “view template” ( có thể dễ dàng dùng các tính năng của ASP.NET như lồng các trang Master, <%= %> snippets, mô tả server controls, template, data-binding, localization, v.v… ) Tuy nhiên sẽ không còn postback và interactive back server và thay vào đó là interactive end-user tới một Controller class ( không còn viewstate, page lifecycle ) ASP.NET MVC Framework hỗ trợ đầy đủ các tính năng bảo mật của

membership/roles, output và data caching, session/profile state, configuration system, provider architecture v.v…

Trang 25

Page 24

2.3 Sự khác biệt với WebForm

ASP.NET WebForm sử dụng ViewState để quản lý, các trang ASP.NET đều có lifecycle, postback và dùng các web controls, các events để thực hiện các hành động cho UI khi có sự tương tác với người dùng nên hầu hết ASP.NET WebForm xử lý chậm ASP.NET MVC Framework chia ra thành 3 phần: Models, Views, Controllers Mọi tương tác của người dùng với Views sẽ được thực hiện hành động trong Controllers, không còn postback, không còn lifecycle không còn events

Việc kiểm tra ( test ), gỡ lỗi ( debug ) với ASP.NET đều phải chạy tất cả các tiến trình của ASP.NET và mọi sự thay đổi ID của bất kỳ controls nào cũng ảnh hưởng đến ứng dụng Đối với ASP.NET MVC Framework thì việc có thể sử dụng các unit test có thể thẩm định rất dễ dàng các Controller thực hiện như thế nào

Database

Kiến trúc sử dụng việc phân chia chương trình thành Controllers, Models, Views

nghệ truy cập dữ liệu trong ứng dụng

Phần lớn dùng LINQ to SQL class để tạo mô hình truy cập đối tượng

thực hiện tất cả bao gồm các lớp truy cập dữ liệu, sự hiển thị, điều khiển các controls

Debug có thể sử dụng các unit test kiểm tra các phương thức trong controller

Trang 26

Page 25

trong trang có quá nhiều các controls vì ViewState quá lớn

Phân tải nhanh hơn do không phải quản lý ViewState để quản lý các control trong trang

Tương tác với javascript Tương tác với javascript

khó khăn vì các controls được điều khiển bởi server

Tương tác với javascript dễ dàng vì các đối tượng không

do server quản lý điều khiển

dạng<filename>.aspx?&<c

ác tham số>

Cấu trúc địa chỉ rành mạch theo dạng Controllers, action,

id

Trang 27

Page 26

2.4 So sánh mô hình MVC với mô hình 3 lớp

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

 Trong một ứng dụng nhỏ, MVC thể hiện thế nào? Presentation thể hiện giống như chức năng của View và Controller Business và Database thể hiện giống như chức năng của Model Như thế nhìn ở góc độ này, thì MVC tương đương với

3-layer (tất nhiên có chồng chéo như hình vẽ)

Hình 2.2 : So sánh mô hình MVC và mô hình 3 lớp Khác nhau:

 Trong 3-layers, quá trình đi theo chiều dọc, bắt đầu từ Presentation, sang BL, rồi tới Data, và từ Data, chạy ngược lại BL rồi quay ra lại Presentation

Trang 29

Page 28

2.5 Tìm hiểu định tuyến URL

Browser yêu cầu một địa chỉ từ controller action trong ASP.NET MVC Framework đƣợc gọi là định tuyến URL (URL routing) Url routing sẽ chỉ định request tới controller action URL routing sử dụng một bảng định tuyến để điều khiển các request Bảng định tuyến đƣợc tạo khi ứng dụng bắt đầu đƣợc chạy lần đầu tiên Bảng định tuyến đƣợc thiết lập trong file Global.asax

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(

"QuangCao",

"QuangCao", new { controller = "QuangCao", action = "Index", page = 1 } );

routes.MapRoute (

"TrangChu",

"{controller}/{action}/{id}", new { controller = "TrangChu", action = "Hienloaisp", id =

Trang 30

Page 29

Ví dụ: với địa chỉ HangHoa/Index/1 được hiểu là:

routes.MapRoute(

"HangHoa", "HangHoa",

new { controller = "HangHoa", action = "Index", page = 1 } );

Controller mặc định sẽ là HomeController, Action mặc định là Index, Id mặc định

là “”  http://localhost:1727/

Ví dụ: với địa chỉ /HoaDon:

routes.MapRoute(

"HoaDon", "HoaDon", new { controller = "HoaDon", action = "Index", id=””} );

2.6 Tìm hiểu về Controllers

MVC controllers chịu trách nhiệm xử lý những yêu cầu từ website Mỗi Controller xử lý một yêu cầu từ browser Ví dụ, bạn nhập thanh địa chỉ:

http://localhost/Product/Index/3 Trong trường hợp này một controller được gọi với tên là: ProductController ProductController chịu trách nhiệm xử lý những yêu cầu của Browser Ví dụ, controller

có thể trả về trang giao diện ban đầu hoặc chuyển đến 1 controller khác

using System;

using System.Web.Mvc;

using System.Web.Mvc.Ajax;

namespace MvcApplication1.Controllers {

Trang 31

} Như bạn có thể nhìn thấy, 1 controller là 1 lớp mà nó bắt nguồn từ lớp System.Web.Mvc.Controller Lớp controller được sử dụng những phương thức có sẵn

Controller Action

Một Controller thể hiện một Action Controller Một Action là 1 phương thức trên controller, nó được gọi khi bạn nhập địa chỉ trên thanh địa chỉ browser của bạn Ví dụ:

http://localhost/Product/Index/3 Phương thức Index() gọi lớp ProductController Phương thức Index() là 1

ví dụ của Controller Action Một Controller Action phải là một phương thức dùng chung của một lớp Controller Nó không thể là 1 phương thức tĩnh

Action Result

Một Controller Action sẽ trả về một Action Result Một Action Result là kết quả của 1 Controller Action được trả về theo yêu cầu của Browser

Đây là một vài loại Action Result mà ASP.NET MVC cung cấp:

 ViewResult: Kết quả trả về dạng Html và mark-up

 EmptyResult: Kết quả sẽ trả về là rỗng

 RedirectResult: Truyền tới 1 đường dẫn mới

 JsonResult: Hiển thị kết quả dạng javascript được sử dụng trong ứng dụng Ajax

 Javascript result: Hiển thị ra dạng javascript

Trang 32

Page 31

 Contentresult: Hiển thị kết quả ra dạng văn bản

 FileContentResult: Hiển thị ra dạng file download(với nội dung binary)

 FilePathResult: Hiển thị ra dạng file download(dạng đường dẫn)

 FileStreamResult: Hiển thị ra dạng file download(dạng chuỗi) Trong hầu hết các trường hợp, một controller action sẽ trả về một ViewResult Khi một action trả về một ViewResult, nó sẽ trả về dạng HTML cho Browser Chú ý rằng phương thức Index() trong lớp ProductController không trả về ViewResult() Thay vào đó phương thức View() của lớp cơ sở điều khiển được gọi Thông thường nó sẽ không trả về một hành động trực tiếp Thay vào đó, bạn sẽ gọi những phương thức sau:

 View: Trả về kết quả của một hành động ViewResult

 Redirect: Trả về kết quả của một hành động RedirectResult

 RedirectToAction: Trả về kết quả của 1 hành động RedirectToRouteResult

 RedirectToRoute: Trả về kết quả của 1 hành động RedirectToRouteResult

 Json: Trả về kết quả của 1 hành động JsonResult

 JavascriptResult: Trả về JavascriptResult

 Content: Trả về kết quả của hành động ContentResult

 File:Trả về FileContentResult, FilePathResult, hoặc FileStreamResult

Vì vậy, nếu bạn muốn trả về một View đến Browser, bạn phải gọi phương thức View() Nếu bạn muốn gọi phương thức hành động khác bạn dùng RedirectoAction() Ví dụ: Hành động Details() sẽ chuyển đến hành động Index() thông qua chỉ số id

using System.Web.Mvc;

namespace McvApplication.Controllers {

public class CustomerController: Controller {

public ActionResult Details(int? id) {

Trang 33

}

2.7 Tìm hiểu về View

Trong ứng dụng ASP.NET MVC một yêu cầu từ trình duyệt sẽ được ánh xạ đến một Controller Action Một Controller Action sẽ trả về một View Một Controller Action có thể thực hiện một số hành động khác bằng cách chuyển hướng đến một Controller Action khác

Ví dụ: HomeController chứa 2 Controller Action là: Index() và Details() using System.Web.Mvc;

namespace MvcApplication1.Controllers {

public class HomeController: Controller {

return View();

} public ActionResult Details() {

return RedirectToAction(“Index”);

} }

Để gọi hành động Index() bằng cách gõ địa chỉ trình duyệt: /Home/Index

Để gọi hành động Details() bằng cách gõ địa chỉ trình duyệt: / Home/Details

Hành động Index() trả về View Hầu hết hành động sẽ trả về View Tuy nhiên, một hành động có thể trả về những loại khác của kết quả hành động Ví dụ, hành động Details() trả về RedirectToActionResult nó sẽ chuyển đến hành động Index()

Trang 34

Page 33

Hành động Index() này chỉ chứa 1 dòng code duy nhất: View() Dòng code này trả về 1 View với đường dẫn trên web server là: \Views\Home\Index Đường dẫn đến View được suy ra từ tên Controller và tên Controller Action

Thêm nội dung cho View

Một View là 1 chuẩn HTML mà có thể chứa scripts Bạn sử dụng scripts để thêm nội dung cho view

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

Trang 35

Sử dụng HTML Helpers để tạo View Content

Để dễ dàng tạo một View, bạn có thể gọi HTML Helper Bạn có thể sử dụng HTML để thêm các thành phần chuẩn nhƣ textboxes, links, và listboxes Để tạo 1 khung Login thì View cần 3 HTML Helpers: BeginForm(), TextBox(), Password()

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

<label for="UserName">User Name:</label>

<br />

<%= Html.TextBox("UserName") %>

<br /><br />

<label for="Password">Password:</label>

Trang 36

Tất cả những phương thức HTML Helpers được gọi bởi 1 thuộc tính của View

Ví dụ bạn muốn biễu diễn 1 textbox thì gọi Html.TextBox() Nên nhớ rằng khi gọi Html.TextBox() và Html.Password() thì sử dụng đoạn script <%= và %>

Sử dụng phương thức HTML Helper là lựa chọn tốt nhất Nó sẽ làm giảm số lượng HTML và Script khi viết

Trang 37

Page 36

Sử dụng View Data để truyền dữ liệu đến View

Sử dụng View Data để truyền dữ liệu từ Controller đến View Hãy nghĩ rằng View Data là 1 gói dữ liệu được truyền đi bằng mail

using System.Web.Mvc;

namespace MvcApplication1.Controllers {

public class ProductController : Controller {

public ActionResult Index() {

ViewData["message"] = "Hello World!";

return View();

}

} }

Một thuộc tính ViewData sẽ phụ thuộc vào tên và giá trị Tên là: message và giá trị là: Hello World Khi View gọi phương thức Index(), View Data sẽ được hiển thị ra View

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

Trang 38

Hình 2.6: Mô hình dữ liệu LINQ to SQL Cách sử dụng Model vào Controller là:

Trang 39

 Range: Cho phép một giá trị nằm trong khoảng xác định

 RegularExpression: Cho phép nhập 1 giá trị đúng với định dạng

 Required: Dữ liệu nhập vào không đƣợc để trống

 StringLength: Cho phép giới hạn chiều dài chuỗi

 Validation: Cho tất cả các thuộc tính

Ví dụ: Xây dựng lớp Loại hàng hóa để kiểm tra dữ liệu nhập vào trong Models

public class ClassLoai

Trang 40

Page 39

{ [Required(ErrorMessage = "Chƣa nhập mã loại")]

public int MaLoai { get; set; }

[Required(ErrorMessage = "Chƣa nhập tên loại")]

public string TenLoai { get; set; }

[Required(ErrorMessage = "Chƣa nhập tên chủng loại")]

public int TenCL { get; set; } }

} Lớp ClassLoai đƣợc tạo ra nhằm kiểm tra dữ liệu nhập vào có để trống không? Nếu để trống hệ thống sẽ hiển thị thông báo: “Chƣa nhập mã loại”

2.9 Linq to SQL

2.9.1 Linq to SQL là gì?

LINQ to SQL là một phiên bản hiện thực hóa của O/RM (object relational mapping) có bên trong NET Framework bản “Orcas” (nay là NET 3.5), nó cho phép bạn mô hình hóa một cơ sở dữ liệu dùng các lớp NET Sau đó bạn có thể truy vấn cơ sở dữ liệu (CSDL) dùng LINQ, cũng nhƣ cập nhật/thêm/xóa dữ liệu

từ đó

LINQ to SQL hỗ trợ đầy đủ transaction, view và các stored procedure (SP) Nó cũng cung cấp một cách dễ dàng để thêm khả năng kiểm tra tính hợp lệ của dữ liệu và các quy tắc vào trong mô hình dữ liệu của bạn

Ngày đăng: 30/10/2022, 02:34

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN