BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP. HCM
ĐỒ ÁN CƠ SỞ
XÂY DỰNG WEBSITE THƯƠNG MẠI ĐIỆN TỬ
VỚI MÔ HÌNH MVC
Ngành:
CÔNG NGHỆ THÔNG TIN
Chuyên ngành: CÔNG NGHỆ PHẦN MỀM
Giảng viên hướng dẫn : Th.S Văn Thị Thiên Trang
Sinh viên thực hiện
MSSV: 1411060073
: Nguyễn Cao Khả Duyên
Lớp: 14DTH01
TP. Hồ Chí Minh, 2017
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP. HCM
ĐỒ ÁN CƠ SỞ
XÂY DỰNG WEBSITE THƯƠNG MẠI ĐIỆN TỬ
VỚI MÔ HÌNH MVC
Ngành:
CÔNG NGHỆ THÔNG TIN
Chuyên ngành: CÔNG NGHỆ PHẦN MỀM
Giảng viên hướng dẫn : Th.S Văn Thị Thiên Trang
Sinh viên thực hiện
MSSV: 1411060073
: Nguyễn Cao Khả Duyên
Lớp: 14DTH01
TP. Hồ Chí Minh, 2017
TRƯỜNG ĐH CÔNG NGHỆ TP.HCM
CỘNG HÒA XÃ HỘI CHỦ NGHĨA
VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
Độc lập – Tự do – Hạnh phúc
ĐĂNG KÝ ĐỀ CƯƠNG ĐỒ ÁN MÔN HỌC
Môn học: ĐỒ ÁN CƠ SỞ
CHÚ Ý: Sinh viên phải đóng tờ này vào trang thứ nhất của báo cáo
I. THÔNG TIN CHUNG
Tên Đề tài: Xây dựng website thương mại điện tử với mô hình MVC
Tác giả/ Nhóm tác giả:
TT
HỌ VÀ TÊN SV
MSSV
Ngày sinh
1
Nguyễn Cao Khả Duyên
1411060073
21/02/1996
Ký tên
Giáo viên hướng dẫn: Văn Thị Thiên Trang.
II. THÔNG TIN VỀ ĐỀ TÀI
1. Lý do thực hiện đề tài
Kinh tế ngày càng phát triển thông qua các loại hình dịch vụ khác nhau…Trong
đó, dịch vụ ăn uống cũng phát triển không kém kèm theo đó là nhu cầu khách
hàng ngày càng tăng cao. Ngoài đòi hỏi về chất lượng sản phẩm mà khách hàng
còn đòi hỏi về mẫu mã, vận chuyển, vệ sinh, giá cả và đặc biệt là việc mua bán
nhanh chóng và thuận tiện… Nhằm đáp ứng được nhu cầu khách hàng, em chọn
đề tài xây dựng website bán hàng để tạo cơ hội cho khách hàng có thể tiếp cận
gần hơn với sản phẩm cũng như là tiếp nhận được ý kiến khách hàng
2. Mục tiêu đề tài:
•
Xây dựng website hỗ trợ việc mua bán trực truyến
• Cung cấp cho khách hàng toàn bộ sản phẩm trong đó có sản phẩm mới, sản
phẩm khuyến mãi một cách dễ dàng và nhanh chóng
• Giúp khách hàng có thể đặt hàng và giao hàng tận nơi, thanh toán trực truyến
• Tiếp nhận được thông tin và phản hồi của khách hàng
• Giúp người quản lí có thể dễ dàng kiểm soát thông tin sản phẩm, thông tin
khách hàng, thông tin đặt hàng
• Hoàn thiện trong khoảng thời gian 2 tháng
3. Nội dung thực hiện:
Gồm 5 phần:
• Tiến hành khảo sát, thu thập thông tin
• Phân tích yêu cầu của hệ thống
• Thiết kế cơ sở dữ liệu và lập trình website
• Kiểm thử website
• Hoàn thiện website
4. Phương pháp thực hiện
• Phần 1: Tiến hành khảo sát thực tế và thu thập thông tin cần thiết. Dựa vào
đó để phân tích từng yêu cầu và tham khảo các Website có liên quan. Lập
các biểu mẫu cụ thể cho từng công việc của chương trình.
• Phần 2: Dùng CaseStudio để thiết kê mô hình CSDL một cách chi tiết.
• Phần 3: Dùng phần mềm SQL để tạo CSDL và sử dụng công nghệ
ASP.Net MVC5 để lập trình Website theo các mục tiêu và yêu cầu đã đề
ra. Thiết kế giao diện một cách tốt nhất có thể để cho người sử dụng có
thể dễ dàng tương tác với website
• Phần 4: Mời một vài người trải nghiệm sử dụng để tìm ra các lỗi hay các
vấn đề khó khăn trong việc sử dụng. Đồng thời sửa các lỗi phát sinh để
hoàn thiện Website.
• Phần 5: Kiểm tra tổng quát Website lần cuối sau đó đưa cho người sử
dụng.
5. Dự kiến kết quả đạt được:
• Webiste có đủ chức năng hỗ trợ bán hàng trực tuyến và hỗ trợ quản lý
• Hiển thị sản phẩm theo loại hàng, phân loại ( Hình ảnh, mô tả, giá )
• Giúp khách hàng bỏ sản phẩm đã chọn vào giỏ hàng
• Hiển thị đơn đặt hàng
• Cập nhật trong cơ sở dữ liệu
• Thanh toán trực tuyến
• Giúp Admin xem chi tiết, xóa, cập nhật các bảng sản phẩm, loại hàng, đặt
hàng, khách hàng…
6. Thời gian thực hiện: Từ: ………………đến:………………………………….
Tp.HCM, ngày . . . . tháng . . . năm 2016
GIÁO VIÊN HƯỚNG DẪN
HIỆN
NHÓM SV THỰC
Khoa: …………………………
BẢN NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
ĐỒ ÁN/ KHÓA LUẬN TỐT NGHIỆP
(GVHD nộp Bản nhận xét này về Văn phòng Khoa)
1. Họ và tên sinh viên/ nhóm sinh viên được giao đề tài (sĩ số trong nhóm……):
(1) .......................................................... MSSV: ………………… Lớp: ...........
(2) .......................................................... MSSV: ………………… Lớp: ...........
(3) .......................................................... MSSV: ………………… Lớp: ...........
Ngành
: ..........................................................................................................
Chuyên ngành : ..........................................................................................................
2. Tên đề tài: ...................................................................................................................
......................................................................................................................................
3. Tổng quát về ĐA/KLTN:
Số trang:
....................... Số chương:
....................................
Số bảng số liệu:
....................... Số hình vẽ:
....................................
Số tài liệu tham khảo: ....................... Phần mềm tính toán: ....................................
Số bản vẽ kèm theo:
Hiện
vật
....................... Hình thức bản vẽ:
(sản
phẩm)
....................................
kèm
theo:
.................................................................................................
4. Nhận xét:
a) Về tinh thần, thái độ làm việc của sinh viên:
......................................................................................................................................
......................................................................................................................................
b) Những kết quả đạt được của ĐA/KLTN:
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
c) Những hạn chế của ĐA/KLTN:
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
5. Đề nghị:
Được bảo vệ (hoặc nộp ĐA/KLTN để chấm)
Không được bảo vệ
TP. HCM, ngày … tháng … năm ……….
Giảng viên hướng dẫn
(Ký và ghi rõ họ tên)
i
Lời Cảm Ơn
Trước tiên, em xin gởi lời cảm ơn sâu sắc và trân trọng nhất tới Quý Thầy/Cô trường
Đại Học Công Nghệ Thành Phố Hồ Chí Minh nói chung và khoa Công Nghệ Thông Tin
nói riêng, những người đã cho em những kiến thức cơ bản, những bài học, những kinh
nghiệm quý báu về lĩnh vực công nghệ thông tin thông qua sự tận tâm, chu đáo của
mình. Đặc biệt là Cô Văn Thị Thiên Trang, người đã tận tình hướng dẫn, đóng góp
những ý kiến quý báu cho việc hoàn thành đề tài này, giúp em nhận ra sai sót cũng như
tìm ra hướng đi đúng khi em gặp khó khăn, bối rối.
Mặc dù đã cố gắng, nhưng thời gian không cho phép và kiến thức còn hạn hẹp nên
website cũng như báo cáo khó tránh khỏi những thiếu sót nhất định. Mong thầy, cô thông
cảm và đóng góp ý kiển để em có thể hoàn thiện bản thân cũng như hoàn thiện kiến thức
của em trong lĩnh vực này.
Em xin gửi tới Quý Thầy/Cô trường Đại Học Công Nghệ Thành Phố Hồ Chí Minh lời
chúc sức khỏe và lời cảm ơn chân thành nhất.
Em xin chân thành cảm ơn!
ii
MỤC LỤC
Đề Mục
Trang
Trang bìa
Phiếu đăng ký đề tài
Bản nhận xét của giáo viên hướng dẫn
Lời cảm ơn ...................................................................................................... i
Mục lục ......................................................................................................... ii
CHƯƠNG 1: TỔNG QUAN
1
1.1 Tổng quan về vấn đề được nghiên cứu ........................................ 1
1.1.1 Tổng quan về thương mại điện tử ....................................... 1
1.1.1.1 Tổng quan ................................................................ 1
1.1.1.2 Lợi ích của thương mại điện tử ................................ 2
1.1.1.3 Các loại hình thương mại điện tử ............................. 3
1.1.2 Tổng quan về Asp.Net MVC............................................... 4
1.1.2.1 Lịch sử phát triển Asp.Net MVC ............................. 4
1.1.2.2 Tổng quát về Asp.Net MVC .................................... 5
1.1.2.3 Lợi ích của Asp.Net MVC ....................................... 7
1.1.2.4 Tính năng của Asp.Net MVC .................................. 7
1.1.2.5 Giao tiếp trong kiến trúc Asp.Net MVC .................. 8
1.2 Nhiệm vụ đồ án .......................................................................... 10
1.2.1 Tính cấp thiết hiện nay ...................................................... 10
1.2.2 Lý do hình thành đề tài ...................................................... 11
1.2.3 Ý nghĩa khoa học và thực tiễn ........................................... 11
1.2.4 Mục tiêu nghiên cứu đối tượng ......................................... 11
iii
1.2.5 Phạm vi giới hạn................................................................ 11
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
12
2.1 Các khái niệm và cơ chế hoạt động ................................................... 12
2.1.1 Khái niệm .......................................................................... 12
2.1.2 Phân tầng trong ứng dụng web .......................................... 12
2.1.3 Kiến trúc trong ứng dụng web ........................................... 13
2.2 Các công nghệ sử dụng .............................................................. 14
2.2.1 HTML5 .............................................................................. 14
2.2.2 CSS 3 ................................................................................. 15
2.2.3 Jquery ................................................................................ 16
2.2.4 Ajax .................................................................................. 16
2.2.5 LinQ .................................................................................. 17
2.2.6 Asp.Net MVC5 .................................................................. 18
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU ............ 20
3.1
Mô hình E-R ............................................................................ 20
3.2 Mô hình vật lý ............................................................................ 21
3.1.1 Sơ đồ tổng thể mức ngữ cảnh ................................... 21
3.1.2 Sơ đồ phân rã cấp 1 .................................................. 21
3.3 Mô tả cơ sở dữ liệu..................................................................... 22
CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM
27
4.1 Giao diệnngười dùng ..................................................................... 27
4.2 Giao diện trang Admin .................................................................. 35
CHƯƠNG 5: KẾT LUẬN VÀ KIẾN NGHỊ
44
5.1 Kết quả thực hiện .......................................................................... 44
iv
5.2 Đánh giá ........................................................................................ 45
4.2.1 Ưu điểm ............................................................................. 45
4.2.2 Khuyết điểm ...................................................................... 45
5.3 Hướng phát triển ........................................................................... 47
TÀI LIỆU THAM KHẢO .................................................................. 47
1
CHƯƠNG I: TỔNG QUAN
1.1 Tổng quan về vấn đề được nghiên cứu
1.1.1 Tổng quan về thương mại điện tử
1.1.1.1 Tổng quan
Khi nói về khái niệm thương mại điện tử (E-Commerce), nhiều người nhầm lẫn
với khái niệm của Kinh doanh điện tử (E-Business). Tuy nhiên, thương mại điện tử đôi
khi được xem là tập con của kinh doanh điện tử. Thương mại điện tử chú trọng đến việc
mua bán trực tuyến (tập trung bên ngoài), trong khi đó kinh doanh điện tử là việc sử
dụng Internet và các công nghệ trực tuyến tạo ra quá trình hoạt động kinh doanh hiệu
quả dù có hay không có lợi nhuận, vì vậy tăng lợi ích với khách hàng (tập trung bên
trong).
Khái niệm thương mại điện tử vẫn còn là vấn đề tranh luận của nhiều tổ chức tham
gia hoạt động về “thương mại điện tử”. Tuy rằng đã có các điều luật về Thương mại
điện tử, trong đó quy định rõ về trách nhiệm, công việc, quyền hạn, các phương thức
trao đổi, buôn bán, sử dụng thương mại điện tử nhưng việc đưa ra một khái niệm chính
xác và bao quát nhất về Thương mại điện tử thì vẫn chưa có. Một số khái niệm thương
mại điện tử được định nghĩa bởi các tổ chức uy tín thế giới như sau:
Theo Tổ chức Thương mại thế giới (WTO), "Thương mại điện tử bao gồm việc
sản xuất, quảng cáo, bán hàng và phân phối sản phẩm được mua bán và thanh toán trên
mạng Internet, nhưng được giao nhận một cách hữu hình, cả các sản phẩm giao nhận
cũng như những thông tin số hoá thông qua mạng Internet".
Theo Ủy ban Thương mại điện tử của Tổ chức Hợp tác kinh tế châu Á - Thái Bình
Dương (APEC) định nghĩa: "Thương mại điện tử liên quan đến các giao dịch thương
mại trao đổi hàng hóa và dịch vụ giữa các nhóm (cá nhân) mang tính điện tử chủ yếu
thông qua các hệ thống có nền tảng dựa trên Internet." Các kỹ thuật thông tin liên lạc
có thể là email, EDI, Internet và Extranet có thể được dùng để hỗ trợ thương mại điện
tử.
2
Theo Ủy ban châu Âu: "Thương mại điện tử có thể định nghĩa chung là sự mua
bán, trao đổi hàng hóa hay dịch vụ giữa các doanh nghiệp, gia đình, cá nhân, tổ chức
tư nhân bằng các giao dịch điện tử thông qua mạng Internet hay các mạng máy tính
trung gian (thông tin liên lạc trực tuyến). Thật ngữ bao gồm việc đặt hàng và dịch thông
qua mạng máy tính, nhưng thanh toán và quá trình vận chuyển hàng hay dịch vụ cuối
cùng có thể thực hiện trực tuyến hoặc bằng phương pháp thủ công.”
Tóm lại, thương mại điện tử chỉ xảy ra trong môi trường kinh doanh mạng Internet
và các phương tiện điện tử giữa các nhóm (cá nhân) với nhau thông qua các công cụ, kỹ
thuật và công nghệ điện tử. Ngoài ra, theo nghiên cứu tại đại học Texas, các học giả cho
rằng thương mại điện tử và kinh doanh điện tử đều bị bao hàm bởi Nền kinh tế Internet.
1.1.1.2 Lợi ích của thương mại điện tử
➢ Quảng bá thông tin và tiếp thị cho thị trường toàn cầu với chi phí cực thấp:
Chi phí cho website của doanh nghiệp mỗi tháng ước tính (kinh tế nhất) là: 50.000
đồng chi phí lưu trữ website (hosting), vài trăm nghìn đồng cho chi phí quảng cáo trên
mạng (đây chỉ là chi phí tối thiểu cho website của doanh nghiệp). Doanh nghiệp sẽ thu
được hiệu quả quảng bá cao hơn nếu đầu tư chi phí, thời gian, nhân lực nhiều hơn cho
việc marketing qua mạng.
➢ Dịch vụ tốt hơn cho khách hàng:
Với thương mại điện tử, doanh nghiệp có thể cung cấp catalogue, brochure, thông
tin, bảng báo giá cho đối tượng khách hàng một cách cực kỳ nhanh chóng, doanh nghiệp
có thể tạo điều kiện cho khách hàng chọn mua hàng trực tiếp từ trên mạng v.v… Thương
mại điện tử mang lại cho doanh nghiệp các công cụ để làm hài lòng khách hàng, bởi
trong thời đại ngày nay, chất lượng dịch vụ, thái độ và tốc độ phục vụ là những yếu tố
rất quan trọng trong việc tìm và giữ khách hàng.
➢ Tăng doanh thu:
Với thương mại điện tử, đối tượng khách hàng của doanh nghiệp giờ đây không
còn bị giới hạn về mặt địa lý. Doanh nghiệp không chỉ có thể bán hàng cho cư dân trong
địa phương, mà còn có thể bán hàng trong toàn bộ Việt Nam hoặc bán ra toàn cầu. Doanh
nghiệp không ngồi chờ khách hàng tự tìm đến mà tích cực và chủ động đi tìm khách
3
hàng cho mình. Vì thế, số lượng khách hàng của doanh nghiệp sẽ tăng lên đáng kể dẫn
đến tăng doanh thu. Tuy nhiên, lưu ý rằng chất lượng và giá cả sản phẩm hay dịch vụ
của doanh nghiệp phải tốt, cạnh tranh, nếu không, thương mại điện tử không giúp được
cho doanh nghiệp.
➢ Giảm chi phí hoạt động:
Với Thương mại điện tử, DN không phải chi nhiều cho việc thuê mặt bằng, đông
đảo nhân viên phục vụ, kho chứa... Chỉ cần khoảng 10 triệu đồng xây dựng một website
bán hàng qua mạng, sau đó chi phí vận hành và marketing website mỗi tháng không quá
một triệu đồng, DN đã có thể bán hàng qua mạng. Nếu website của doanh nghiệp chỉ
trưng bày thông tin, hình ảnh sản phẩm, DN tiết kiệm được chi phí in ấn brochure,
catalogue và cả chi phí gửi bưu điện những ấn phẩm này. Nếu DN sản xuất hàng xuất
khẩu, doanh nhân có thể ngồi nhà tìm kiếm khách hàng quốc tế qua mạng. Doanh nghiệp
còn tiết kiệm được chi phí trong việc quản lý dữ liệu, quản lý mối quan hệ khách hàng
(CRM - Customer Relationship Management).
➢ Lợi thế cạnh tranh:
Kinh doanh trên mạng là “sân chơi” cho sự sáng tạo, nơi đây, doanh nhân tha hồ
áp dụng những ý tưởng hay nhất, mới nhất về dịch vụ hỗ trợ, chiến lược tiếp thị v.v…
Khi các đối thủ cạnh tranh của doanh nghiệp đều áp dụng Thương mại điện tử, thì phần
thắng sẽ thuộc về ai sáng tạo hay nhất để tạo ra nét đặc trưng riêng (differentiation) cho
doanh nghiệp, sản phẩm, dịch vụ của mình để có thể thu hút và giữ được khách hàng.
1.1.1.3 Các loại hình thương mại điện tử
Dựa vào chủ thể của thương mại điện tử, có thể phân chia thương mại điện tử ra các loại
hình phổ biến như sau:
➢ Giao dịch giữa doanh nghiệp với doanh nghiệp - B2B (business to business).
➢ Giao dịch giữa doanh nghiệp với khách hàng - B2C (business to consumer).
➢ Giao dịch giữa doanh nghiệp với cơ quan nhà nước - B2G (business to
government).
➢ Giao dịch trực tiếp giữa các cá nhân với nhau - C2C (consumer to consumer).
➢ Giao dịch giữa cơ quan nhà nước với cá nhân - G2C (government to consumer).
4
➢ Loại hình thương mại điện tử B2B (Business To Business):
1.1.2 Tổng quan về Asp.Net MVC
1.1.2.1 Lịch sử phát triển của Asp.Net MVC
➢ Asp.Net 1.0 : Phiên bản đầu tiên được phát hành vào tháng 3 năm 2009 trên nền
tảng bộ .Net Framework 3.5 bộ Visual Studio 2008.
➢ Asp.Net 2.0 : Phiên bản này được phát hành vào tháng 3 năm 2010 trên bộ .Net
Framework 3.5 và .Net Framework 4.0 bộ Visual Studio 2010.
➢ Asp.Net MVC 3 : Phiên bản này được phát hành vào tháng 1 năm 2011 trên nền tảng
bộ .Net Framework 4.0, các đặc điểm chính của phiển bản này :
•
So với phiên bản ASP.NET MVC2 thì tính năng mới được hỗ trợ thêm HTML5
và CSS3; tính năng này chỉ hỗ trợ cho những trình duyệt mới;
•
Cải thiện về Model validation;
•
Hỗ trợ 2 View Engine: RAZOR, ASPX, kể cả Open source trong khi ASP.NET
MVC2 chỉ có ASPX;
•
Controller được cải tiến hơn như thuộc tính ViewBag và kiểu ActionResult;
•
Cải thiện Dependency Injection với IDpendencyResolver (có 2 phần:
DependencyResolver và interface IDpendencyResolver)trong ASP.NET MVC3;
đây là lớp thực thi mô hình Service Locator, cho phép framework gọi DIContainer
khi cần làm việc với 1 lớp thực thi từ 1 kiểu cụ thể
•
Cách tiếp cận với JavaScript được hạn chế;
•
Hỗ trợ caching trong Partial page;
➢ Asp.Net 4.0 : Phiên bản này được phát hành vào tháng 8 năm 2012 trên nền tảng bộ
.Net Framework 4.0 và .Net Framework 4.5 trên phiên bản Visual Studio 2010 SP1
and Visual Studio 2012. Phiên bản này có các đặc điểm chính như sau :
•
ASP.NET Web API ra đời, nhằm đơn giản hoá việc lập trình với HTML hiện đại
và đây là một cải tiến mới thay cho WCF Web API;
5
•
Mặc định của dự án được cải thiện hơn về hình thức bố trí, giúp dễ nhìn hơn;
•
Mẫu Empty Project là project trống, phù hợp cho những tín đồ developer muốn
nâng cao khả năng lập trình với ASP.NET MVC4;
•
Giới thiệu jQuery Mobile, và mẫu Mobile Project cho dự án;
•
Hỗ trợ Asynchrnous Controller;
•
Kiểm soát Bundling và Minification thông qua web.config
•
Hỗ trợ cho việc đăng nhập OAuth và OpenID bằng cách sử dụng thư viện
DotNetOpenAuth;
•
➢
Phiên bản mới Windows Azure SDK 1.6 được phát hành;
Asp.Net MVC 5 : Phiên bản này được phát hành vào tháng 10 năm 2013 trên nền
tảng bộ .Net Framework 4.5 và .Net Framework 4.5.1 trên phiên bản Visual Studio
2013. Các đặc điểm chính của phiên bản này như sau :
•
Với MVC5 thì cải tiến hơn so với ASP.NET MVC4, Bootstrap được thay thế mẫu
MVC mặc định;
•
Chứng thực người dùng Authentication Filter được tuỳ chỉnh hoặc chứng thực từ
hãng thứ 3 cung cấp;
•
Với Filter overrides, chúng ta có thể Filter override trên Method hoặc Controller;
•
Thuộc tính Routing được tích hợp vào MVC5
1.1.2.2 Tổng quát Asp.Net MVC
Asp.Net MVC là một Framework sử dụng .Net Framework cho việc phát triển ứng
dụng web động, trước khi Asp.Net MVC ra đời, lập trình viên sử dụng công nghệ
Asp.Net Web Form trên nền tảng .Net Framework để phát triển ứng dụng Web động.
Asp.Net MVC phát triển trên mẫu thiết kế chuẩn MVC, cho phép người sử dụng
phát triển các ứng dụng phần mềm. MVC là tên một mẫu phát triển ứng dụng, phương
pháp này chia nhỏ một ứng dụng thành ba thành phần để cài đặt, mỗi thành phần đóng
một vai trò khác nhau và ảnh hưởng lẫn nhau, đó là models, views, và controllers
6
.
Hình 1.1 Mẫu thiết kế MVC
➢ Models: Các đối tượng Models là một phần của ứng dụng, các đối tượng này 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 Employee
(nhân viên) 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 Eployees ở 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ệ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 để cập nhật bảng Employees 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 Employee.
7
➢ 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
ứ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ụ, 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.
Hình 1.2 Biểu đồ tuần tự mô tả mô hình MVC
1.1.2.3 Lợi ích của Asp.Net MVC
• 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ợ tốt hơn cho mô hình phát triển ứng dụng hướng kiểm thử (TDD)
• 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
1.1.2.4 Tính năng của ASP.Net MVC
Tách biệt 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ử 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. Bạn 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
8
unit test được áp dụng nhanh chóng và tiện dụng. Bạn 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á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 dễ dàng hoặc dễ dàng tùy chỉnh. Bạn 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 Control (IoC). DI cho phép bạn 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à 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 bạn 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..
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 sử dụng view engine Razor View Engine cho phép thiết lập các
view nhanh chóng, dễ dàng và tốn ít công sức hơn so với việc sử dụng Web Forms
view engine.
1.1.2.5 Giao tiếp trong kiến trúc Asp.Net MVC
Các thành phần cơ bản của ứng dụng Asp.Net MVC bao gồm :
•
MVC Framework
•
Route engine
•
Route configuration
9
•
Control
•
Model
•
View engine
•
View
Các thành phần này giao tiếp với nhau nhằm xử lý các yêu cầu của ứng dụng
Asp.Net MVC. Quá trình xử lý yêu cầu thường liên quan tới một chuỗi các xử lý, mỗi
xử lý sẽ được một component trong Asp.net đảm nhiệm.
1. Trình duyệt gửi yêu cầu của ứng dụng Asp.Net MVC;
2. MVC Engine chuyển yêu cầu tới cho Routing engine (Bộ điều hướng);
3. Routing engine kiểm tra cấu hình điều hướng (route configuration) của ứng
dụng nhằm chuyển đến các controller phù hợp với yêu cầu;
4. Khi Controller được tìm thấy, control này sẽ được thực thi;
5. Nếu Controller không được tìm thấy, bộ điều hướng sẽ chỉ ra rằng controller
không được tìm thấy và MVC Engine sẽ thông báo lỗi cho trình duyệt;
6. Controller giao tiếp với model, tầng Model đại diện cho các Entity bên trong hệ
thống, Controller làm việc với tầng model để lấy thông tin cần cho người dùng;
7. Controller yêu cầu View engine hiển thị thông tin dựa trên dữ liệu của tầng
model;
8. View engine trả kết quả cho controller
9. Controller gửi kết quả cho trình duyệt thông qua giao thức Http.
Hình 1.3 Giao tiếp trong kiến trúc Asp.Net MVC
- Xem thêm -