Xây dựng website thương mại điện tử với mô hình MVC
Trang 3KHOA 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ả:
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áchhà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àngcò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ánnhanh chóng và thuận tiện… Nhằm đáp ứng được nhu cầu khách hàng, emchọ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ếpcậ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:
Trang 4sả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ựctruyế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 tinkhá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
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
Trang 5hoà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, đặthà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 NHÓM SV THỰC HIỆN
Trang 6BẢ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: Hình thức bản vẽ:
Hiện vật (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:
Trang 7
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)
Trang 8Lờ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ôngTin 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ữngkinh 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 đáocủ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ópnhữ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ênwebsite 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ệnkiế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ờichú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!
Trang 9MỤC LỤC
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.1Tổng quan 1
1.1.1.2Lợi ích của thương mại điện tử 2
1.1.1.3Cá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.1Lịch sử phát triển Asp.Net MVC 4
1.1.2.2Tổng quát về Asp.Net MVC 5
1.1.2.3Lợi ích của Asp.Net MVC 7
1.1.2.4Tính năng của Asp.Net MVC 7
1.1.2.5Giao 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
Trang 101.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
Trang 115.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
Trang 12CHƯƠNG I: TỔNG QUAN
1.1 Tổng quan về vấn đề được nghiên cứu
1.1.1Tổ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ẫnvới khái niệm của Kinh doanh điện tử (E-Business) Tuy nhiên, thương mại điện tử đôikhi được xem là tập con của kinh doanh điện tử Thương mại điện tử chú trọng đếnviệ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 doanhhiệ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 trungbê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ứctham gia hoạt động về “thương mại điện tử” Tuy rằng đã có các điều luật về Thươngmại điện tử, trong đó quy định rõ về trách nhiệm, công việc, quyền hạn, các phươngthứ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ệmchí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ệmthươ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ươngmại điện tử
Trang 13Theo Ủ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ạngInternet 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áccô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ởiNề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ựcthấ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ảngcáo trên mạng (đây chỉ là chi phí tối thiểu cho website của doanh nghiệp) Doanhnghiệ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ựcnhiề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ênmạ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àilò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:
Trang 14Với thương mại điện tử, đối tượng khách hàng của doanh nghiệp giờ đây khôngcò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ântrong đị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àncầ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 đitìm khách 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ẩmhay 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ộtwebsite bán hàng qua mạng, sau đó chi phí vận hành và marketing website mỗi thángkhông quá một triệu đồng, DN đã có thể bán hàng qua mạng Nếu website của doanhnghiệ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 ấnbrochure, catalogue và cả chi phí gửi bưu điện những ấn phẩm này Nếu DN sản xuấthà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ácloại hình phổ biến như sau:
Trang 15 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 togovernment)
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)
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.NETMVC2 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ọiDIContainer 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;
Trang 16Asp.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;
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ốnnâ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ệnDotNetOpenAuth;
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
Trang 17Asp.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 đóngmột vai trò khác nhau và ảnh hưởng lẫn nhau, đó là models, views, và controllers
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ượngmodel lấy và lưu trạng thái của model trong CSDL Ví dụ như, một đối tượngEmployee (nhân viên) sẽ lấy dữ liệu từ CSDL, thao tác trên dữ liệu và sẽ cậpnhậ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ựcthụ, ví dụ, nếu ứng dụng chỉ đọc dữ liệu từ CSDL và gởi chúng đến view, ứngdụng khong cần phải có tầng model và các lớp lien quan Trong trường hợpnày, dữ liệu được lấy như là một đối tượng Model (hơn là tầng model)
Trang 18 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ư, viewdù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
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 Trongmột ứng dụng MVC, view chỉ được dùng để hiển thị thông tin, controller chịutrách nhiệm quản lý và đáp trả nội dung người dùng nhập và tương tác vớingườ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ừ CSDLnhờ 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 bathà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ìnhviê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 MVCTách biệt các tác vụ của ứng dụng (logic nhập liệu, business logic, và logic giaodiệ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
Trang 19tính năng chính của mô hình MVC được cài đặt dựa trên interface và được kiểmthử 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ểmthử 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 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ácthành phần của ASP.NET MVC được thiết kể để chúng có thể được thay thế mộtcá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ầnkhá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 địnhrằ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 đốitượ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ựngnhữ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 địachỉ 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ậpcá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 WebForms 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 :
Trang 20xử 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
Trang 21Hình 1.3 Giao tiếp trong kiến trúc Asp.Net MVC
1.2 Nhiệm vụ đồ án
1.2.1Tính cấp thiết hiện nay
Hiện nay, đất nước ngày càng phát triển, hội nhập quốc tế, yêu cầu về việc cho
ra những sẩn phẩm web có chất lượng cao một cách nhanh chóng nhưng cũngkhông kém phần ổn định và bảo mật, đòi hỏi lập trình viên luôn phải tiếp cậnvới công nghệ mới ASP.NET MVC5 là một công nghệ mới Được nhiều người
sử dụng, những người có kinh nghiệm với ASP.NET Web form vẫn phải họcASP.NET MVC để có thể làm việc, tiếp cận với công nghệ mới, thu thập themkinh nghiệm và cách thức làm việc mới
Asp.Net MVC5 là một Open Source Điều này giúp ASP.NET MVC rất nhiềuthuận lợi trong thời gian đầu phát triển
Dễ làm quen vì mô hinh Framework MVC quá quen thuộc với các developer
Trở thành 1 trào lưu Việc các công ty sử dụng các công nghệ mới để lôi kéokhách hàng của mình càng làm các developer sử dụng nó nhiều hơn nữa Chínhnhiều người sử dụng càng làm cho nó càng được chú ý Nó như 1 vòng xoáygiúp ASP.NET MVC trở nên được ưa chuộng nhiều trong thời gian gần đây
ASP.NET MVC lại có nhiều cải tiến nổi bật trong suốt các giai đoạn phát triểncủa mình Trong tương lai, sự ra đời của MVC6 cũng là một thành quả nổi bậtkhác, giúp cải thiện tốc độ và loại bỏ dần đi những thành phần không cần thiết
Việc quản lý code và UI khá rõ ràng và đơn giản
Dễ dàng trong việc thực hiện test tự đông (bao gồm cả Unit Test)
Dễ học và sử dụng Điều này giúp những người mới vào nghề hay ngườichuyển từ công nghệ khác sang ASP.NET MVC khá dễ dàng Nó cũng khiếncho ASP.NET MVC là nền tảng được ưa chuộng nhất hiện nay
Trang 22 Model – View – Controller giúp cho code và giao diện khá độc lập và rõ ràng.Điều này giúp cho việc làm chung nhóm , hoặc các nhóm làm việc với nhau dễdàng hơn Đặt biệt là với 2 nhóm dev và design (graphic).
Việc ứng dụng những đăc tính tối ưu của Asp.Net MVC5 trên đây để nhanhchóng tạo cho mình một trang web( bán hàng, blog, diễn đàn…), mà trong đó
có tất cả các yếu tố: nhanh chóng, tiện lợi, dễ sử dụng, ổn định, và có thể cảitiến sau này… là rất quan trọng đối với lập trình viên nói chung và mọi ngườithích viết web trong sự phát triển chóng mặt về công nghệ hiện nay
1.2.2 Lý do hình thành đề tài
Thứ nhất, hiện nay đất nước ngày càng phát triển, hội nhập quốc tế, đời sốngngười dân được cải thiện và thu nhập bình quân nâng lên đáng kể, con người cànghướng đến việc làm đẹp, giải trí, du lịch… Đặc biệt là ăn uống ngon - bổ - rẻ
Thứ hai, là cơ hội để thử thách bản thân, ứng dụng một công nghệ mới mang tínhthực tiễn cao vào lập trình web, giúp tiết kiệm thời gian và công sức cho lập trình viênlẫn người muốn kinh doanh bằng các hình thức qua Internet
1.2.3 Ý nghĩa khoa học và thực tiễn
Hiện tại ASP.NET MVC là một công nghệ còn mới tại Việt Nam, có rất nhiềubạn sinh viên chưa được biết đến công nghệ này, đặc biệt là các bạn sinh viên tạitrường Việt Hàn Chính vì thế việc hoàn thành bản báo cáo và chương trình ứng dụng
sẽ giúp ích rất nhiều cho các bạn sinh viên muốn tiếp cận công nghệ mới một cáchnhanh nhất, tại vì hiện tại tài liệu tiếng việt cho ASP.NET MVC là rất hiếm, đồng thời
có sẵn một ứng dụng demo sẽ giúp các bạn dễ hiểu và áp dụng hơn
ASP.NET MVC có rất nhiều điểm vượt trội, em nghĩ tương lai ASP.NET MVC
sẽ dần thay thế ASP.NET Webform trong việc xây dựng website Cho nên việc tìmhiểu công nghệ này sẽ có tính thực tiễn rất cao, có thể áp dụng ngay bây giờ hoặc trongtương lai
1.2.4 Mục tiêu nghiên cứu đối tượng
- Nghiên cứu ASP.NET MVC 5, nghiên cứu các kiến thức liên quan
Trang 231.2.5 Phạm vi giới hạn
- Nghiên cứu ASP.NET MVC 5.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
1.2 Các khái niệm và cơ chế hoạt động
1.2.1Khái niệm
Các ứng dụng web là các chương trình thực thi trên máy chủ web (Web server)
và truy cập và tương tác với người sử dụng thông qua trình duyệt web Khái niệm nàyđược người sử dụng thừa nhận rộng rãi, tuy nhiên ngày nay CNTT phát triển mạnh mẽ,một loạt các nền tảng công nghệ ra đời, ứng dụng web hoàn toàn có thể không cầnphải tương tác hoặc thực thi trên máy chủ web, có nghĩa là ứng dụng web này chạythuần túy trên trình duyệt duyệt web Điều đó có nghĩa ứng dụng web không cần kếtnối internet vẫn có thể chạy được
Ứng dụng web cho phép người sử dụng có thể chia sẻ và truy cập thông tinthông qua Internet Lập trình viên có thể tạo các ứng dụng web để phục vụ mục tiêuthương mại ví dụ như các website bán hàng trực tuyến …
Ứng dụng web có thể được nhìn theo nhiều hướng khác nhau: Hướng nhìn củacác nhà phát triển ứng dụng, thường chia ứng dụng web thành nhiều các phân tầngkhác nhau, mỗi phân tầng đảm nhiệm một số các nhiệm vụ mang tính logic của ứngdụng Hướng nhìn triển khai ứng dụng, thường phân chia ứng dụng thành các thànhphần vật lý khác nhau, các thành phần vật lý này được cài đặt tại các máy tính (các nútmạng) khác nhau trong hệ thống
2.1.2 Phân tầng trong ứng dụng web
Hướng tiếp cận này phân tách ứng dụng thành các thành phần mang tính logic.Đây là hướng nhìn của các nhà phát triển ứng dụng, thông thường ứng dụng web đượcphân chia thành các phân tầng sau :
Trang 24Hình 2.1 Phân tầng trong ứng dụng web
Tầng trình diễn (Presentation Layer): Thành phần giao diện, là các form của
chương trình tương tác với người sử dụng
Tầng xử lý nghiệp vụ (Business Logic Layer): Xử lý các nghiệp vụ của chương
trình như tính toán, xử lý hợp lệ và toàn vẹn về mặt dữ liệu
Tầng dữ liệu (Data Layer): Lưu trữ, xử lý thông tin liên quan tới dữ liệu của
chương trình Thông thường tầng này bao gồm tầng giao tiếp với các hệ Quản trị CSDL và hệ Quản trị CSDL
2.1.3 Kiến trúc trong ứng dụng web
Theo hướng tiếp cận này, phân chia ứng dụng thành các thành phần vật lý Đây
là hướng nhìn triển khai ứng dụng, ứng dụng web thường được phân chia như sau :
Single-Tier : Tất cả các phân tầng (layer) của ứng dụng đều được tích hợp và
cài đặt trên 1 máy tính
Two-Tier : Theo kiến trúc này cả 3 tầng (layer) được phần bố cài đặt trên 2 tier
đó là client và server, tầng trình diễn cài đặt trên client, 2 tầng (Tầng nghiệp vụ
và tầng dữ liệu) cài đặt trên server
Three-Tier : Theo kiến trúc này 3 tầng (layer) sẽ được cài đặt tại các máy tính
khác nhau, mỗi layer sẽ giao tiếp với các layer khác nhằm đáp ứng các yêu cầu trao đổi thông tin giữa chúng thông qua cơ chế (Request/Response)
N-Tier : Đây là kiến trúc mở rộng của kiến trúc Tree-Tier, thay vì phân chia
thành 3-tier thì chúng ta chia thành N-Tier; Tuy nhiên thông thường với các kiến trúc phức tại chỉ dừng lại ở mức độ 5-tier
Trang 25Hình 2.2 Ví dụ về mô hình 3-tier
Chú ý : Layer khác hoàn toàn với Tier Mọi người thường hay nhầm lẫn giữa
chúng Tier thường gắn liền với phần cứng (phân chia ứng dụng thành các thành phầnvật lý khác nhau, khái niệm này gắn liền với mô hình Client/Server) Còn layer là cáclớp cấu tạo nên một ứng dụng (Phân chia ứng dụng thành các thành phần Logic khácnhau) Layer gắn với mô hình phát triển còn Tier gắn với mô hình triển khai
2.2 Các công nghệ sử dụng
2.2.1HTML 5
HTML5 là một ngôn ngữ cấu trúc và trình bày nội dung cho World Wide Web
và sẽ là công nghệ cốt lõi của Internet trong tương lai không xa, được đề xuất đầu tiênbởi Opera Software Đây là phiên bản thứ 5 của ngôn ngữ HTML - được tạo ra năm
1990 và chuẩn hóa như HTML4 năm 1997 - và xuất hiện vào tháng 12 năm 2012, là 1ứng viên được giới thiệu bởi World Wide Web Consortium (W3C) Mục tiêu cốt lõikhi thiết kế ngôn ngữ là cải thiện khả năng hỗ trợ cho đa phương tiện mới nhất trongkhi vẫn giữ nó dễ dàng đọc được bởi con người và luôn hiểu được bởi các thiết bị vàcác chương trình máy tính như trình duyệt web, phân tích cú pháp, v.v HTML5 vẫn
sẽ giữ lại những đặc điểm cơ bản của HTML4 và bổ sung thêm các đặc tả nổi trội củaXHTML, DOM cấp 2, đặc biệt là JavaScript
Tính năng của HTML5:
Các thẻ mô tả chính xác những gì chúng được thiết kế để chứa đựng
Tăng cường truyền thông mạng
Cải thiện rất nhiều khả năng lưu trữ chung
Các trình làm việc trên nền Web (Web Workers) để chạy các quá trình nền
Giao diện WebSocket để thiết lập kết nối liên tục giữa các ứng dụng cư trú
và máy chủ
Lấy ra dữ liệu đã lưu trữ tốt hơn
Cải thiện tốc độ nạp và lưu trang
Hỗ trợ cho CSS3 để quản lý giao diện người dùng đồ họa (GUI), có nghĩa
là HTML5 có thể được định hướng nội dung
Trang 26 Cải thiện xử lý biểu mẫu trình duyệt
Một API cơ sở dữ liệu dựa trên-SQL cho phép lưu trữ cục bộ, phía máykhách
Canvas và video, để thêm đồ họa và video mà không cần cài đặt các trìnhcắm thêm của bên thứ ba
Đặc tả Geolocation API (API định vị toàn cầu), sử dụng khả năng định vịcủa máy điện thoại thông minh để kết hợp các dịch vụ và các ứng dụng đámmây di động
Các biểu mẫu cải tiến làm giảm nhu cầu phải tải về mã JavaScript, cho phéptruyền thông hiệu quả hơn giữa các thiết bị di động và các máy chủ điệntoán đám mây
Tạo các animation mà không sử dụng flash
Hoàn toàn tương thích với các phiên bản trước
CSS3 được chia thành module, các thành phần cũ được chia nhỏ và bổsung các thành phần mới
Một số module quan trọng trong CSS3 :
Trang 27Tùy chỉnh layout và thiết kế trang web sao cho phù hợp với thiết bị của ngườidùng (mobile, iPad hoặc Desktop) mà không sử dụng Javascript.
jQuery luôn là lựa chọn trước tiên trong công việc khi phát triển các dự ánwebsite
Tại sao sử dụng jQuery?
Thư viện jQuery tương thích với nhiều trình duyệt (Internet Explorer 6+,Firefox 2+, Opera 9+, Safari 2+ và Chrome) Cộng đồng phát triển mạnh mẽ
và được sử dụng rộng rãi như Dell, ESPN, BBC, Reueters, WordPress,Digg
jQuery đơn giản hóa cách viết Javascript và tăng tốc độ xử lý các sự kiệntrên trang web, giúp tiết kiệm thời gian và công sức so với cách viếtjavascript thông thường
Sử dụng jQuery giúp giải quyết tốt vấn đề xung đột giữa các trình duyệtweb
Học jQuery rất đơn giản, nếu nắm vững CSS, bạn có thể tiếp cận và sử dụngjQuery nhanh chóng
2.2.4 Ajax
AJAX là viết tắt của Asynchronous JavaScript And XML
AJAX là một kiểu lập trình trở nên phổ biến vào năm 2005 (với GoogleSuggest)
Trang 28 AJAX không phải là một ngôn ngữ lập trình mới mà là một cách thức mới sửdụng những chuẩn đã có.
Với AJAX bạn có thể tạo ra những ứng dụng web tốt, nhanh và thân thiện vớingười dùng hơn
AJAX dựa trên những yêu cầu JavaScript và HTML
Ajax kết hợp với các ngôn ngữ:
HTLM (hoặc XHTML) với CSS trong việc hiển thị thông tin
Mô hình DOM (Document Object Model), được thực hiện thông quaJavaScript, nhằm hiển thị thông tin động và tương tác với những thông tinđược hiển thị
Đối tượng XMLHttpRequest để trao đổi dữ liệu một cách không đồng bộvới máy chủ web (Mặc dù, việc trao đổi này có thể được thực hiện vớinhiều định dạng như HTML, văn bản thường, JSON và thậm chí EBML,nhưng XML là ngôn ngữ thường được sử dụng)
XML thường là định dạng cho dữ liệu truyền, mặc dầu bất cứ định dạng nàocũng có thể dùng, bao gồm HTML định dạng trước, văn bản thuần (plaintext), JSON và ngay cả EBML
Giống như DHTML, LAMP hay SPA, Ajax tự nó không phải là một côngnghệ mà là một thuật ngữ mô tả việc sử dụng kết hợp một nhóm nhiều côngnghệ với nhau Trong thực tế, các công nghệ dẫn xuất hoặc kết hợp dựa trênAjax như AFLAX cũng đã xuất hiện
2.2.5 LinQ
LINQ là viết tắt của từ Language – Integrated Query (tạm dịch là ngôn ngữ tíchhợp truy vấn) là một sự đổi mới trong Visual Studio 2008 và NET Framework 3.5, làcầu nối khoảng cách giữa thế giới của các đối tượng với thế giới của dữ liệu, là giảipháp lập trình hợp nhất đem đến khả năng truy vấn dữ liệu theo cú pháp SQL trực tiếptrong C# hay VB.NET, áp dụng cho tất cả các dạng dữ liệu từ đối tượng đến CSDLquan hệ và XML
Microsoft đã phát triển giải pháp tích hợp dữ liệu LINQ cho NET Framework,đây là thư viện mở rộng cho các ngôn ngữ lập trình C# và Visual Basic.NET (có thể
Trang 29mở rộng cho các ngôn ngữ khác) cung cấp khả năng truy vấn trực tiếp dữ liệu đốitượng, CSDL và XML Để truy vấn dữ liệu đối tượng trong bộ nhớ , dữ liệu cần phải
đổ vào bộ nhớ để xử lý, nhưng một khi tách khỏi nơi gốc của nó thì khả năng truy vấnrất kém Bạn có thể dễ dàng truy vấn thông tin khách hàng móc nối với thông tin đơnhàng của họ từ CSDL SQL Server nhưng không dễ gì thực hiện tương tự với thông tintrong bộ nhớ Trong môi trường NET, thông tin (trong bộ nhớ) thường được thể hiện
ở dạng các đối tượng và trước LINQ, không có cách nào để móc nối các đối tượng haythực hiện bất kỳ thao tác truy vấn nào LINQ chính là giải pháp cho vấn đề này
Điều quan trọng nhất, LINQ là tất cả về truy vấn, kết quả sau khi truy vấn có thể
là tập hợp các đối tượng cùng loại, có thể là 1 đối tượng đơn, có thể là tập hợp con củacác trường (field) từ 1 đối tượng Kết quả trả về của LINQ người ta gọi là sequence.Hầu hết sequence là IEnumerable<T> với T là kiểu dữ liệu của những đối tượng trongsequence
LINQ nó sẽ cung cấp cách duy nhất để truy cập dữ liệu từ bất kể nguồn dữ liệunào với cú pháp giống nhau
2.2.6 Asp.NET MVC5
Như đã đề cập ở trên, Asp.NET MVC là một Framework sử dụng .NetFramework 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 đóngmột vai trò khác nhau và ảnh hưởng lẫn nhau, đó là models, views, và controllers.Theo mô hình MVC, việc xử lý yêu cầu người dùng được chia thành 3 thành phần tách biệt nhau:
CONTROLLER Tiếp nhận và xử lý yêu cầu từ người dùng Nếu cần làm
việc với CSDL sẽ nhờ đến Model, sau đó chuyển tiếp sang View