2. Mục tiêu Trong đồ án này mục tiêu của em là trình bày quá trình phân tích, thiết kế cho hệ thống bán hàng điện tử với hệ quản trị cơ sở dữ liệu SQL Sever 2008, sử dụng ngôn ngữ lập trình C và công nghệ ASP.NET MVC. Đồ án được thiết kế với mục đích đơn giản hóa hoạt động mua bán hàng hóa được thực hiện trên nền web. Mặc dù đã cố gắng hoàn thành đề tài tốt nghiệp với tất cả sự nỗ lực nhưng chắc chắn không tránh khỏi những thiếu sót nhất định, kính mong sự tận tình chỉ bảo của các thầy cô. 3. Nội dung chính Với mục đích học hỏi về công nghệ ASP.NET MVC và đem đến mới mẻ với đồ án tốt nghiệp cuối khóa, em quyết định đưa công nghệ này vào đồ án của mình. Cụ thể hơn, ASP.NET MVC 5 là công nghệ được sử dụng trong đồ án. Nội dung chính gồm 3 chương: Chương 1: Tổng quan về quản lý bán hàng và mô hình MVC Chương 2: Phân tích hệ thống quản lý bán hàng Chương 3: Ứng dụng mô hình MVC cho website quản lý bán hàng
Trang 1CHƯƠNG 1 TỔNG QUAN VỀ LÝ THUYẾT LIÊN QUAN 5
1.1 Hướng dẫn sử dụng mẫu đồ án tốt nghiệp (Tiêu đề mục – Style Heading 2) 51.1.1 Cách chèn nhãn cho bảng biểu và hình vẽ 71.1.2 Hướng dẫn chèn công thức và nhãn 9CHƯƠNG 2 PHÂN TÍCH NHIỆM VỤ THỰC HIỆN CÁC NỘI DUNG 102.1 Tiêu đề mục 10
2.1.1 Tiêu đề tiểu mục 102.1.2 Tiêu đề tiểu mục 102.2 Tiêu đề mục 11
2.2.1 Tiêu đề tiểu mục 112.2.2 Tiêu đề tiểu mục 11CHƯƠNG 3 THIẾT KẾ VÀ THỰC HIỆN PHƯƠNG ÁN, THỰC NGHIỆM
12
3.1 Tiêu đề mục 12
3.1.1 Tiêu đề tiểu mục 123.1.2 Tiêu đề tiểu mục 123.2 Tiêu đề mục 13
3.2.1 Tiêu đề tiểu mục 13
Trang 2KẾT LUẬN 14
TÀI LIỆU THAM KHẢO 15
PHỤ LỤC 16
Trang 3DANH MỤC CÁC HÌNH VẼ
Hình 1-1: Mô hình MVC 12
Hình 1-2: Mô hình MVC cơ bản 14
Hình 1-3: Controller trả về action Index 16
Hình 1-4: Thư mục Views chứa các action của Controller tương ứng 17
Hình 1-5: Giao tiếp trong kiến trúc ASP.NET MVC 23
Hình 1-6: Mã code HTML 26
Hình 2-1: Biểu đồ phân rã chức năng 30
Hình 2-2: Biểu đồ mức ngữ cảnh 32
Hình 2-3: Biểu đồ mức đỉnh 33
Hình 2-4: Biểu đồ dướt mức đỉnh của chức năng quản lý tài khoản 34
Hình 2-5: Biểu đồ dưới mức đỉnh của chức năng quản lý sản phẩm 35
Hình 2-6: Biểu đồ dưới mức đỉnh của chức năng quản lý bài viết 36
Hình 2-7: Biểu đồ dưới mức đỉnh chức năng quản lý đơn đặt hàng 36
Hình 2-8: Biểu đồ dưới mức đỉnh của chức năng quản lý thông tin liên hệ 37
Hình 2-9: Biểu đồ dưới mức đỉnh của chắc năng hỗ trợ mua hàng 38
Hình 3-1: Sơ đồ chức năng cho quản trị viên 46
Hình 3-2: Sơ đồ chức năng cho khách hàng 47
Hình 3-3: Trang đăng nhập admin 56
Hình 3-4: Trang chủ 57
Hình 3-5: Trang quản trị người dùng 58
Hình 3-6: Tìm kiếm người dùng theo user name 58
Hình 3-7: Tìm kiếm nâng cao 59
Hình 3-8: Thêm mới tài khoản người dùng 60
Trang 4Hình 3-10: Xóa tài khoản 62
Hình 3-11: Trang danh mục 62
Hình 3-12: Danh sách module 63
Hình 3-13: Tìm kiếm module bài viết theo tên 63
Hình 3-14: Tìm kiếm nâng cao 64
Hình 3-15: Thêm mới bài viết 64
Hình 3-16: Thông tin chi tiết 65
Hình 3-17: Xóa module bài viết 65
Hình 3-18: Danh sách loại sản phẩm 66
Hình 3-19: Thêm mới loại sản phẩm 66
Hình 3-20: Thông tin chi tiết sản phẩm 67
Hình 3-21: Xóa thông tin loại sản phẩm 67
Hình 3-22: Trang quản lý 68
Hình 3-23: Danh sách bài viết 68
Hình 3-24: Tìm hiểu bài viết theo module 69
Hình 3-25: Tìm kiếm nâng cao 69
Hình 3-26: Thêm mới bài viết 70
Hình 3-27: Xem thông tin chi tiết bài viết 71
Hình 3-28: Xóa bài viết 72
Hình 3-29: Danh sách sản phẩm 72
Hình 3-30: Tìm kiếm sản phẩm theo tên 73
Hình 3-31: Tìm kiếm nâng cao 73
Hình 3-32: Xem thông tin chi tiết sản phẩm 74
Hình 3-33: Xóa thông tin sản phẩm 74
Hình 3-34: Danh sách thông tin liên hệ khách hàng 75
Hình 3-35: Tìm kiếm khách hàng theo tên 75
Trang 5Hình 3-36: Tìm kiếm nâng cao 76
Hình 3-37: Xóa thông tin 76
Hình 3-38: Danh sách giỏ hàng 77
Hình 3-39: Chi tiết giỏ hàng 78
Hình 3-40: Đổi mật khẩu 78
Hình 3-41: Trang chủ 80
Hình 3-42: Trang loại sản phẩm 81
Hình 3-43: Trang chi tiết sản phẩm 82
Hình 3-44: Xem các sản phẩm trong giỏ hàng 83
Hình 3-45: Giỏ hàng khi chưa có sản phẩm 83
Hình 3-46: Trang chi tiết bài viết 84
Hình 3-47: Thông tin chi tiết bài viết 84
Hình 3-48: Trang đăng ký tài khoản 85
Hình 3-49: Trang đăng nhập khách hàng 86
Hình 3-50: Giao diện khi khách hàng đăng nhập thành công 86
Hình 3-51: Trang liên hệ 87
DANH MỤC CÁC BẢNG BIỂU Bảng 1-1: Các kiểu trả về của Controller 16
Bảng 1-2: So sánh ASP.NET 2.0 và ASP.NET MVC 20
Bảng 1-3: Các giai đoạn thực thi một dự án trên nền Web ASP.NET MVC 22
Bảng 2-1: Danh sách các thực thể 39
Bảng 2-2: Thực thể quản lý người dùng 40
Bảng 2-3: Thực thể chi tiết giỏ hàng 40
Trang 6Bảng 2-5: Thực thể loại sản phẩm 42
Bảng 2-6: Thực thể sản phẩm 42
Bảng 2-7: Thực thể tin tức bài viết 43
Bảng 2-8: Thực thể module bài viết 44
Bảng 2-9: Thực thể giới thiệu cửa hàng 44
Bảng 2-10: thực thể liên hệ khách hàng 45
Trang 7THÔNG TIN KẾT QUẢ NGHIÊN CỨU
1 Thông tin chung
Tên đề tài: Nghiên cứu xây dựng trang web quản lý bán hàng theo mô hình MVCSinh viên thực hiện: Nguyễn Thế Phong
Trong đồ án này mục tiêu của em là trình bày quá trình phân tích, thiết kế cho
hệ thống bán hàng điện tử với hệ quản trị cơ sở dữ liệu SQL Sever 2008, sử dụngngôn ngữ lập trình C# và công nghệ ASP.NET MVC
Đồ án được thiết kế với mục đích đơn giản hóa hoạt động mua bán hàng hóađược thực hiện trên nền web
Mặc dù đã cố gắng hoàn thành đề tài tốt nghiệp với tất cả sự nỗ lực nhưngchắc chắn không tránh khỏi những thiếu sót nhất định, kính mong sự tận tình chỉbảo của các thầy cô
3 Nội dung chính
Với mục đích học hỏi về công nghệ ASP.NET MVC và đem đến mới mẻ với
đồ án tốt nghiệp cuối khóa, em quyết định đưa công nghệ này vào đồ án của mình
Cụ thể hơn, ASP.NET MVC 5 là công nghệ được sử dụng trong đồ án
Nội dung chính gồm 3 chương:
Chương 1: Tổng quan về quản lý bán hàng và mô hình MVC
Chương 2: Phân tích hệ thống quản lý bán hàng
Trang 84 Kết quả chính đạt được
Đồ án được thực hiện với các yêu cầu và chức năng như sau:
Hiển thị tổng quan các chức năng của chương trình tại trang chủ, hiển thịdanh sách các sản phẩm theo từng nhóm sản phẩm
Duyệt qua danh sách các sản phẩm theo nhóm hoặc theo loại sản phẩm vàxem thông tin chi tiết về sản phẩm
Đưa sản phẩm vào giỏ hàng, cập nhật số lượng, xóa sản phẩm ra khỏi giỏhàng
Quản trị cơ sở dữ liệu, thực hiện thao tác cơ bản như thêm, sửa, xóa, xem chitiết sản phẩm, quản trị người dùng, cho phép khách hàng có thể đăng ký làmthành viên của trang web
LỜI CẢM ƠN
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ủatrường Đại học Mỏ - Địa chất, đặc biệt là các thầy cô khoa Công Nghệ Thông Tincủa trường đã tạo điều kiện cho em trong quá trình học tập và làm khóa luận tốtnghiệp Em xin chân thành cảm ơn cô Đào Anh Thư đã tận tình hướng dẫn em hoànthành tốt khóa luận tốt nghiệp Cảm ơn bạn bè, gia đình và người thân vì đã giúp đỡ
em trong quá trình làm đồ án này
Trong quá trình làm khóa luận tốt nghiệp khó tránh khỏi sai sót rất mong cácthầy cô bỏ qua Đồng thời do trình độ lý luận cũng như kinh nghiệm thực tiễn cònhạn chế nên đồ án 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 của thầy cô để em tích lũy thêm kinh nghiệm cho bản thân
Em xin chân thành cảm ơn !
Trang 9MỞ ĐẦU
Theo báo Dân Trí thì từ năm 2010 đến nay Việt Nam liên tục là quốc gia đứngtrong top 20 quốc gia có số người sử dụng internet lớn nhất thế giới Theo đó, tínhcho đến ngày 31/12/2012 Việt Nam đứng thứ 8 về tổng số người truy cập internettrong khu vực Châu Á với khoảng 30.858.742 người Con số này tiếp tục tăng trungbình khoảng 18% trên năm Điều này nói lên rằng internet hay được gọi là Online là
xu hướng mới của nhân loại trong đó có Việt Nam chúng ta Đã từng có ý kiến chorằng: trong một ngày họ có thể thiếu ăn, thiếu uống chứ không thể sống nếu thiếuyếu tố Online Từ đó Online nó dần dần thành thứ gì đó rất đỗi quen thuộc với mỗichúng ta, ta có thể một ngày thiếu ăn, thiếu uống chứ không thể sống khi thiếu yếu
tố online Lợi dụng vào yếu tố quen thuộc đó mà ở Việt Nam nói chung hay toàn thếgiới nói riêng đã có rất nhiều người đã kết hợp yếu tố online vào hoạt động pháttriển kinh tế nhờ vào sức mạnh công nghệ Và để đáp ứng lại nhu cầu của thời đại,nền tảng công nghệ mới nhất của Microsoft là ASP.NET MVC được ra đời
Việc xây dựng và thiết kế ứng dụng quản lý với mô hình MVC đã được cáccông ty trong nước và trên toàn thế giới hết sức chú trọng, được đầu tư và nghiêncứu sâu
Với những ưu điểm lớn như cho phép thay đổi trong một phần ứng dụng màkhông bị ảnh hưởng đến các phần khác,dễ dàng thêm các tính năng mới và lập trìnhviên có thể dễ dàng thay đổi các tính năng cũ,dễ bảo trì, module hóa các chứcnăng…Mô hình MVC đang được sử dụng rộng rãi trong các công ty vừa và lớn
Do vậy việc luận văn viết về đề tài nghiên cứu xây dựng trang web quản lý bánhàng theo mô hình MVC Luận văn mang ý nghĩa thực tiễn lớn có thể ứng dụng vàothực tế cho một cá nhân hoặc công ty vừa và nhỏ
Trang 10CHƯƠNG 1 TỔNG QUAN VỀ QUẢN LÝ BÁN HÀNG VÀ MÔ HÌNH MVC
1.1.1.2 Vai trò của hoạt động bán hàng
Là khâu cuối cùng của quá trình kinh doanh, đảm bảo quá trình kinh doanh diễn ra bình thường
Nhân viên bán hàng là cầu nối giữa doanh nghiệp và khách hàng
Là vũ khí cạnh tranh mạnh mẽ của doanh nghiệp với các đối thủ
Kết quả hoạt động bán hàng phản ánh kết quả hoạt động kinh doanh, phản ánh sự đúng đắn mục tiêu của chiến lược kinh doanh, sự nỗ lực cố gắng của doanh nghiệp, đồng thời thể hiện trình độ tổ chức, năng lực điều hành, tỏ rõ thế và lực của doanh nghiệp trên thương trường
1.1.2 Định nghĩa thương mại điện tử
Thương mại điện tử là hình thức mua bán hàng hóa dịch vụ thông qua mạngmáy tính toàn cầu
Phạm vi của thương mại điện tử rất rộng, bao quát hầu hết các lĩnh vực hoạtđộng, kinh tế Việc mua bán hàng hóa và dịch vụ chỉ là một trong hàng ngàn lĩnhvực áp dụng của thương mại điện tử Theo nghĩa hẹp, thương mại điện tử chỉ gồm
Trang 11các hoạt động thương mại được tiến hành trên mạng máy tính như Internet Trênthực tế, chính các hoạt động thương mại qua mạng Internet đã làm phát sinh thuậtngữ Thương mại điện tử.
Các đặc trưng của thương mại điện tử:
So sánh với các hoạt động Thương mại truyền thông Thương mại điện tử cómột số điểm khác biệt như sau:
- Các bên tiến hành giao dịch trong Thương mại điện tử không tiếp xúc trựctiếp với nhau và không đòi hỏi biết nhau từ trước
- Các giao dịch Thương mại truyền thông được thực hiện với sự tồn tại củakhái niệm biên giới quốc gia, còn Thương mại điện tử được thực hiện trongmột thị trường không có biên giới (thị trường thống nhất toàn cầu) Thươngmại điện tử trực tiếp tác động tới môi trường cạnh tranh toàn cầu
- Trong hoạt động giao dịch Thương mại điện tử đều có sự tham gia của ítnhất ba chủ thể, trong đó có một bên không thể thiếu được là người cung cấpdịch vụ mạng, các cơ quan chứng thực
- Đối với Thương mại truyền thống thì mạng lưới thông tin chỉ là phương tiện
để trao đổi dữ liệu, còn đối với Thương mại điện tử thì mạng lưới thông tinchính là thị trường
1.1.3 Hoạt động của khách hàng
Khi một khách hàng hoặc nhiều khách hàng truy cập vào website hệ thống sẽcung cấp những chức năng như: hiển thị thông tin và phân loại sản phẩm trong gianhàng, chức năng giỏ hàng, thanh toán giỏ hàng ,khuyến mãi, giới thiệu công ty
Với chức năng hiển thị và phân loại sản phẩm: sản phẩm sẽ được hiển thịlên website và kèm theo đầy đủ thông tin như: tên, hình ảnh đại diện, đặc điểm nổibật, giá cả, khuyến mại Các sản phẩm này được phân loại theo tên chủng loại Sựphân loại này sẽ được người dùng thăm quan khi thăm quan các gian hàng Trêntrang chủ của website, thành phần chính sẽ hiển thị một số sản phẩm mới nhất, nổi
Trang 12của website Khi tham khảo đầy đủ thông tin về sản phẩm khách hàng có thể đặtmua sản phẩm ngay tại website thông qua chức năng giỏ hàng, giỏ hàng được môphỏng như giỏ hàng thực tế có thể thêm bớt, thanh toán thành tiền các sản khi đãmua.
Để thuận lợi cho việc tìm mua sản phẩm của khách hàng, website cung cấpchức năng tìm kiếm, hệ thống sẽ trả về yêu cầu với từ khóa của khách hàng cácthông tin mà nó tìm được trong hệ thống lưu trữ Khi khách hàng đến với website sẽđược cung cấp chức năng đăng ký làm thành viên để có thể nhận xét về từ mặthàng, từng sản phẩm Ngoài ra website còn cung cấp một số chức năng khác như:báo giá sản phẩm, xem tin tức công nghệ
1.1.4 Hoạt động của người quản trị
Người được cấp quyền admin sẽ được quản lý một trang quản trị, sau khithực hiện quá trình đăng nhập bằng tài khoản quyền admin, người quản trị sẽ có cácquyền sử dụng các chức năng sau:
Quản lý sản phẩm và danh mục sản phẩm, tức là người quản trị có thể thêmmới sản phẩm, danh mục sản phẩm hoặc sửa thông tin hay xóa sản phẩm hoặc danhmục sản phẩm đó
Quản lý cập nhật tin tức: tương tự như quản lý bài viết và module bài viết,người quản trị có thể cập nhật thêm, sửa, xóa
Chức năng quản lý đơn hàng: tất cả các đơn hàng sẽ được đưa đến trực tiếptới người quản trị thông qua chức năng quản lý đơn hàng Các đơn hàng sẽ đượclưu lại đầy đủ thông tin giúp người quản trị dễ dàng quản lý
Chức năng quản lý báo giá: tất cả các đơn hàng sẽ được đưa cửa hàng cậpnhật liên tục và được admin quản lý: thêm, sửa, xóa
Chức năng thống kê: thống kê các thông tin về mua bán, số lượng sản phẩm,
số thành viên
Trang 13Ngoài ra còn có một số các chức năng khác như: tìm kiếm, quản lý thông tinadmin
1.2 Mô hình MVC
1.2.1 Công nghệ ASP.NET MVC
1.2.1.1 Giới thiệu ASP.NET MVC
ASP.NET MVC là nền tảng công nghệ mới nhất của Microsoft hiện nay làASP.NET MVC, nó được thiết kế từ suy nghĩ là làm thế nào để xây dựng một phầnmềm tốt (phần mềm tốt là phần mềm nếu bạn muốn tạo ra và nó dễ dàng thay đổi -Stephen Walther) ASP.NET MVC được thiết kể để làm sao có thể bổ sung cácnguyên lý và patterns phát triển phần mềm khi xây dựng các ứng dụng web Bêncạnh đó, nó được thiết kế để hỗ trợ cho việc kiểm thử Nó kết hợp giữa tính hiệuquả và nhỏ gọn của mô hình model-view-controller (MVC)
Trang 14 ASP.NET MVC lần đầu tiên xuất hiện đó là trong dự án mã nguồn mởMonoRail.
Trang 15 Và nguồn gốc thật sự để cho ra đời công nghệ Microsoft ASP.NET MVC là
do Scott Guthrie ( một trong những nhà sáng tạo ra ASP.NET ) trên chuyếnbay đến Austin, Texas để nói về hội thảo Alt.NET vào tháng 10-2007
Cuối cùng thì đầu năm 2009 phiên bản ASP.NET MVC 1.0 ( released ) được
ra đời
Lý do ra đời của ASP.NET MVC:
Dựa trên nền NET hỗ trợ đa ngôn ngữ như C#, VB.NET,
Microsoft hướng đến việc giấu đi các giao thức HTTP (ẩn đi bản chất bêntrong) và code HTML bằng việc đưa ra mô hình UI (user interface) như làcác đối tượng control phía server (mỗi control có trạng thái của riêng mình,
tự động sinh mã HTML khi cần, tự động kết nối với các sự kiện phía client)
Các nhà phát triển Web không còn phải làm việc với các request và responsetrong từng HTTP độc lập Thay thế nó chính là thuật ngữ StateFull UI (tạmdịch là trạng thái giao diện người dùng) Các nhà phát triển Web chỉ cần kéo-thả, và tưởng tượng ra điều gì sẽ xảy ra trên server khi thiết kế giao diệnWeb
1.2.1.2 Mô hình MVC cơ bản
MVC viết tắt của các chữ cái đầu của Models, Views, Controllers MVCchia giao diện UI thành 3 phần tương ứng: đầu vào của controller là các điều khiểnthô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 16Hình 1-2: Mô hình MVC cơ bản
Ưu điểm:
Lợi ích của việc dùng phương pháp MVC là sự phân đoạn rõ ràng giữamodels, views, controllers bên trong ứng dụng Cấu trúc rõ ràng giúp choviệc kiểm tra lỗi ứng dụng trở nên dễ dàng hơn
Các dự án có thể áp dụng ngay mô hình MVC mà không phụ thuộc môitrường, nền tảng xây dựng hay ngôn ngữ lập trình phát triển
Quy hoạch các class/ function vào các thành phần riêng biệt Controller View - Model, khi đó sẽ dễ dàng xây dựng - phát triển - quản lý - vận hành
-và bảo trì một dự án, tạo sự rõ ràng, trong sáng trong quá trình phát triển dự
án, kiểm soát được các luồng dữ liệu và tạo ra các thành phần xử lý nghiệp
vụ chuyên biệt hóa
Tạo thành mô hình chuẩn cho nhiều dự án, các chuyên gia sẽ tiếp cận - tìmhiểu những dự án đó một cách nhanh chóng và hiệu quả Nếu bạn nắm rõ mô
Trang 17hình MVC của một dự án nào đó, thì khi tiếp cận với một dự án khác mà bạnchưa từng tiếp xúc nhưng lại được xây dựng dựa trên mô hình MVC thì bạn
sẽ cảm thấy rất dễ dàng chứ không hề khó khăn gì
Giúp các chuyên gia lập trình, nhà quản lý, nhà đầu tư, PM có thể hiểu được
dự án hoạt động ra sao hoặc giúp các lập trình viên dễ dàng quản lý – pháttriển dự án Nó không phải ngôn ngữ, nhưng khi họ cùng nhìn vào nó thì sẽ
tự hiểu nó là gì, khi đó họ có thể trao đổi các yêu cầu và bàn bạc công việc
Đây là một mô hình chuẩn, nó tối ưu nhất hiện nay so với nhiều mô hìnhkhác và được sử dụng trong nhiều dự án và nhiều lĩnh vực, đặc biệt trongcông nghệ sản xuất ứng dụng – phần mềm Các lập trình viên sử dụng môhình chuẩn MVC để có thể dễ dàng phân phối và chuyển giao công nghệ
Nhược điểm:
Đối với dự án nhỏ việc áp dụng mô hình MVC sẽ gây cồng kềnh, tốn thờigian trong quá trình phát triển Tốn thời gian trung chuyển dữ liệu của cácthành phần
1.2.1.3 Tìm hiểu về các thành phần bên trong ASP.NET
Controller: đảm nhận việc xử lý logic ở phía ứng dụng bao gồm việc nhận
giá trị đầu vào của ứng dụng, phát sinh các lệnh thực thi, nhận dữ liệu từ miềnmodel và đưa người dùng đi đến các UIs khác nhau
Controller Actions: Sau khi controller xác định và gọi action nào thì action
đó có nhiệm vụ trả kết quả về cho trình duyệt Một controller có thể trả về mộtView, một file, hoặc đưa chúng ta về một action khác
Trang 18Hình 1-3: Controller trả về action Index
Bộ khung ASP.NET MVC bao gồm các kiểu trả về như sau:
Phương thức Kiểu trả về
View() ViewResult: miêu tả một View của ASP.NET MVC.
PartialView() PartialViewResult: miêu tả một phần (fragment) của ASP.NET
MVC view
Redirect() RedirectResult: miêu tả chuyển hướng đến controller action hoặc
Url khácContent() ContentResult: gửi nội dung thô về cho trình duyêt
File() FileResult: miêu tả một file đã được tải xong
RedirectToRout
e()
RedirectToRouteResult: miêu tả chuyển hướng hoạt động đến
controller action hoặc Url sử dụng giá trị định tuyến (route)RedirectToActio
Bảng 1-1: Các kiểu trả về của Controller
Views: được xem là giao diện của ứng dụng, View có tác dụng trả về cho trình
duyệt HTML khi người dùng ghé thăm website của chúng ta Views chứa các tag
Trang 19tương tự như HTML, chúng ta có thể đặt mọi thứ vào trong view như hình ảnh,iframes, java applets, flash và silverlight.
Hình 1-4: Thư mục Views chứa các action của Controller tương ứng
Models: chứa tất cả các xử lý mang tính nghiệp vụ, tính logic trong truy xuất
cơ sở dữ liệu, cũng như tính hợp lệ trong ứng dụng Nói cách khác, model chứa tất
cả các logic ứng dụng, ngoại trừ logic view và controller
1.2.1.4 Một vài đặc tính của ASP.NET MVC
Tách rõ ràng các mối liên quan, mở khả năng test TDD (test drivendeveloper) Có thể test unit trong ứng dụng mà không cần phải chạyControllers cùng với tiến trình của ASP.NET và có thể dùng bất kì một unittesting framework nào như NUnit, MBUnit, MS Test,
Có khả năng mở rộng, mọi thứ trong MVC được thiết kế cho phép dễ dàngthay thế/tùy biến (ví dụ: có thể lựa chọn sử dụng engine view riêng, routing
Trang 20 Bao gồm một ánh xạ URL mạnh mẽ cho phép xây dựng ứng dụng với URLsạ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ểnProductControllers)
ASP.NET MVC Framework cũng hỗ trợ những file ASP.NETnhư ASPX ASCX và Master, đánh dấu các tập tin này như một “viewtemplate” (có thể dễ dàng dùng các tính năng của ASP.NET như lồng trangMaster,<%=%> snippets, mô tả server comtrols, template, data-binding,localization, )
ASP.NET MVC Framework hỗ trợ đầy đủ các tính năng bảo mật củaASP.NET như forms/windows authenticate, URL authorization,membership/roles, output và data caching, session/profile sate, configurationsystem, provider archtecture
1.2.1.5 Sự khác biệt giữa Web Form và ASP.NET MVC
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áchành động cho UI khi có sự tương tác với người dùng nên hầu hết cácASP.NET WebForm đều 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ẽ thực hiện hànhđộng trong Controllers, không còn postback, không còn lifecycle hay eventsnữa
Việc kiểm tra (test), gỡ lỗi (debug) ASP.NET đều phải chạy tất cả các tiếntrình của ASP.NET và mọi sự thay đổi ID của bất kỳ controls nào cũng ảnhhưởng đến ứng dụng các unit test có thể kiểm định khá dễ dàng hoạt độngcủa các controller
Trang 21Tính năng ASP.NET 2.0 ASP.NET MVC
Kiến trúc chương
trình
Kiến trúc mô hìnhWebForm Bussiness
Database
Kiến trúc sử dụng việcphân chia chương trình thànhControllers, Views, Models
Cú pháp chương
trình
Sử dụng cú pháp củaWebForm Tất cả các sựkiện và controls đều doserver quản lý
Các sự kiện được điềukhiển bởi Controllers, cáccontrols không do server quảnlí
Truy cập dữ liệu
Sử dụng hầu hết cáccông cụ truy cập dữ liệutrong ứng dụng
Phần lớn dùng LINQ toSQL class để tạo mô hình truycập đối tượng
Debug
Debug chương trìnhphải thực hiện tất cả baogồm các lớp truy cập dữliệu, sự hiển thị, điềukhiển các controls
Debug có thể sử dụngcác unit test kiểm tra cácphương thức trong Controller
Tốc độ phân tải
Tốc độ phân giảichậm trong khi trang cóquá nhiều controls vìViewState quá lớn
Phân tải nhanh hơn dokhông phải quản lý ViewState
để quản lý các controls trongtrang
Trang 22khó khăn vì các controls
bị quản lý bởi server
dàng vì các đối tượng không
do server quản lí dẫn tới điềukhiển không khó khăn
URL address
Cấu trúc địa chỉ URL códạng
<filename>.aspx?&<cáctham số>
Cấu trúc địa chỉ URLrành mạch theo dạng
Controller/Action/Id
Bảng 1-2: So sánh ASP.NET 2.0 và ASP.NET MVC
1.2.1.6 Quá trình thực thi một ứng dụng nền web ASP.NET MVC
Một yêu cầu gửi tới ứng dụng nền tảng web viết bằng ASP.NET MVC đầutiên sẽ đi qua đối tượng UrlRoutingModule, đây là một module của HTTP Modulenày sẽ phân tích yêu cầu và thực thi việc chọn lựa định tuyến Nó sẽ chọn đối tượngroute đầu tiên thích hợp với yêu cầu hiện thời (Đối tượng route là lớp thực thiBaseUrl , là một thể hiện cụ thể của lớp Route) Nếu không có định tuyến nào thíchhợp đối tượng UrlRoutingModule sẽ không thực hiện việc định tuyến mà trả yêucầu đó về cho IIS hay ASP.NET xử lí
Từ đối tượng Route được chọn lựa, đối tượng UrlRoutingModule nhận lấy đốitượng IRouteHandler tương ứng với đối tượng Route Cụ thể trong một ứng dụngASP.NET MVC thì IRouteHandler sẽ là một thể hiện của MvcRouteHandler Thểhiện này sẽ tạo ra một đối tượng IHttpHandler và truyền nó tới đối tượngIHttpContext Theo mặc định, thể hiện IHttpContext của MVC là đối tượngMvcHandler Đối tượng này sẽ chọn ra controller đáp ứng yêu cầu gửi tới ứng dụng.Chú ý: Khi một ứng dụng nền Web viết bằng ASP.NET MVC chạy trên IIS7.0, phần mở rộng tên file là không cần thiết đối vớp dự án ứng dụng đó Tuy nhiênnếu chạy trên IIS 6.0, IIS 6.0 yêu cầu bạn phải chỉ ra cho ASP.NET ISAPI DLLnhận các file có phần mở rộng mvc
Trang 23Module nói trên và IIS là các điểm đầu vào đối với ASP.NET MVCFramework Chúng thực hiện những việc sau:
Chọn ra một controller tương ứng xử lý yêu cầu trong một ứng dụng MVCnền web
Có được một thể hiện cụ thể của controller đó
Gọi phương thức Execute của controller này
Bảng sau sẽ liệt kê các giai đoạn thực thi của một dự án nền Web ASP.NETMVC
Giai đoạn Chi tiết
Tạo ra trình
xử lý yêu cầu
Đối tượng MvcRouteHandler tạo ra một thể hiện củalớp ứng dụng MvcHandler và truyền vào nó thể hiệnRequestContext
Tạo ra
Controller
Các đối tượng MvcHandler sử dụng thể hiện củaRequestContext để xác định đối tượng IcontrollerFactoryqua đó tạo ra thể hiện controller
Trang 24ControllerActionInvoker đi kèm với controller đó sẽ xác địnhphương thức action của lớp controller đó để gọi, và rồi gọiphương thức đó.
1.2.2 Kiến trúc ứng dụng ASP.NET MVC
1.2.2.1 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 bao gồm:
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 ứngdụ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
Trang 255 Nếu Controller không được tìm thấy, bộ điều hướng sẽ chỉ ra rằng controllerkhô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ườidù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ầngmodel
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-5: Giao tiếp trong kiến trúc ASP.NET MVC
1.2.2.2 Các vấn đề cơ bản về Url và Routing
Hầu hết các Web Framework như Asp.net Web Form, jsp … đều ánh xạ urlvào 1 file được lưu trữ trên ổ đĩa
Ví dụ :
Trang 26Địa chỉ Url : http://abc.com/default.aspx, quá trình thực hiện sẽ điều hướngtới file default.aspx trên ổ đĩa vật lý ví dụ D:\webroot\default.aspx.
Asp.net MVC làm việc theo cách khác, thay vì ánh xạ các file trên ổ đĩa, nó
sẽ trực tiếp ánh xạ vào các lớp, đó chính là các controller
Ví dụ:
Địa chỉ Url : http://abc.com/admin, quá trình thực hiện sẽ điều hướngcontroller là admin, Action method mặc định trong controller là Index sẽ được gọi
1.2.3 Giới thiệu về HTML, CSS và JS
HTML là thành phần cơ bản nhất để xây dựng lên trang web Cho dù trang
web có được thiết kế bằng PHP, ASP hay CGI nhưng để hiển thị nội dung lên trìnhduyệt Bao giờ đầu ra cuối cùng cũng vẫn sẽ là HTML, đây chính là định dạng màtrình duyệt web của bạn có thể đọc được và hiển thị nội dung theo nó
Thậm chí bạn có thể sử dụng những CMS (Content Management System) thìđầu ra cuối cùng vẫn là HTML Cho nên hiểu và biết cách vận hành HTML vẫn rấtcần thiết cho bất cứ ai muốn xây dựng trang web:
HTML là chữ viết tắt của Hyper Text Markup Language hay tiếng Việt gọi làngôn ngữ hiển thị siêu văn bản
Một tập tin HTML chứa những thẻ HTML
Những thẻ HTML sẽ hướng dẫn trình duyệt web trình bày thành phần củamột trang web
Một tập tin HTML phải có phần mở rộng là html hoặc htm
Một tập tin HTML có thể được tạo bởi trình soạn thảo văn bản đơn giản nhưNotepad
Vậy CSS là gì?
CSS là chữ viết tắt Casading Style Sheets, nó đơn thuần là 1 dạng file text với
phần tên mở rộng là css Trong style Sheet này chứa những câu lệnh CSS Mỗi câu
Trang 27lệnh CSS sẽ chứa định dạng một phần nhất định của HTML ví dụ như font chữ,đường viền, màu nền, căn chỉnh hình ảnh v.v
Trước đây khi chưa có CSS, người thiết kế web phải trộn lẫn giữa các thànhphần trình bày và nội dung với nhau Nhưng với sự xuất hiện của CSS , người ta cóthể tách rời hoàn toàn phần trình bày với nội dung Giúp cho phần code của trangweb gọn hơn và quan trọng hơn là dễ dàng chỉnh sửa
Với một trang web HTML là xương sống thì CSS lại là một thành phần địnhhình các thẻ HTML đó giúp trang web đẹp và dễ nhìn hơn
CSS tách riêng phần định dạng ra khỏi nội dung văn bản
CSS giúp người thiết kế kiểm soát giao diện một cách nhanh nhất và hiệuquả nhất Nó giúp người thiết kế tiết kiệm được rất nhiều công sức trongcông việc thiết kế giao diện
Do được tách rời khỏi nội dung trang web, nên các mã HTML sẽ gọn gànghơn, giúp bạn thuận tiện trong việc chỉnh sửa giao diện Kích thước củafile html cũng được giảm đáng kể Hơn thế nữa sẽ được trình duyệt tải mộtlần và dùng nhiều lần (cache) giúp web hiển thị một cách nhanh hơn
Khác với HTML và CSS chỉ là những tập tin chứa các thẻ và định dạng, thìJavaScript (JS) là ngôn ngữ thông dịch, chương trình nguồn của nó được nhúnghoặc tích hợp vào tập tin HTML Khi trang web được tải trong trình duyệt hỗ trợJavaScript, trình duyệt sẽ thông dịch và thực hiện các lệnh JavaScript
JavaScript là ngôn ngữ nhúng chạy trên web client còn ASP.NET là ngôn ngữlập trình chạy trên web server Khi ta gọi một trang web thì mã ASP.NET sẽ đượcbiên dịch ngay trên máy chủ và gửi hoàn toàn mã HTML bao gồm cả java,css có thểthêm xml và ở trình duyệt của người dùng java mới được biên dịch và chạy.Cáccontrol của ASP.NET sau khi được tải lên trình duyệt thì đầu cuối của nó là các thẻHTML tĩnh nhưng với JS thì có thể là các mã HTML động tạo nên các hiệu ứnggiúp trang web trở nên đẹp hơn
Trang 28Như vậy với HTML, CSS, JS và ASP.NET sẽ giúp chúng ta tạo nên nhữngtrang web đẹp và có nhiều tính năng hơn.
Ví dụ: Tạo hiệu ứng đổi màu chữ
Chuẩn bị tập tin html như sau
Hình 1-6: Mã code HTML
Tất cả những thẻ có cấu tạo đóng mở, chẳng hạn <p></p> là những thẻ củaHTML Nội dung của tập tin HTML đặt trong thẻ <html></html>, gồm 2 phần làhead và body với các thẻ cùng tên Để nội dung của CSS và JS có thể thực thi đượcthì chúng phải được đặt trong các thẻ HTML tương ứng là <style></style> và
<script></script>
Trang 29Nội dung chính của tập tin HTML gồm 1 nút có giá trị “Đổi màu” và 1 đoạnvăn đặt trong thẻ p với thuộc tính phân lớp là para (các thẻ khác nhau có thể sửdụng thuộc tính phân lớp chung) CSS dùng thuộc tính này để nhận dạng và địnhdạng màu cho văn bản mỗi khi nội dung HTML được thực thi.
Khi nội dung trang được hiển thị đầy đủ đã được định dạng, nếu người dùngnhấn nút “Đổi màu”, JS sẽ bắt lấy sự kiện của nút đó bằng cách tìm và chọn thuộctính định danh duy nhất id=“blue” Tìm tới thẻ p qua thuộc tính class= “para” vàloại bỏ class này khỏi thẻ p Khi đó thẻ p sẽ không còn màu xanh nữa, mà thay vào
đó là màu đen
Trang 30CHƯƠNG 2 PHÂN TÍCH HỆ THỐNG QUẢN LÝ BÁN HÀNG
2.1 Mô tả bài toán
Trên thế giới hiện nay thiết bị điện tử có thể nói là không thể thiếu trong cuộcsống của mỗi chúng ta, chính vì nhìn được tầm quan trọng của nó mà tôi đã viết raứng dụng dùng để quản lý và bán các mặt hàng điện tử, đối tượng hướng tới đaphần tầm tuổi trung niên Khi khách hàng quan tâm tới các sản phẩm về điện tử thìvào trang web của công ty để tham khảo mặt hàng, giá cả của tất cả các loại mặthàng mà công ty đang kinh doanh đã được đưa lên trang web Khách hàng có thểxem các sản phẩm nổi bật của từng loại sản phẩm ở trên trang chủ, xem sản phẩmtheo chủng loại, hoặc tìm kiếm nhanh theo tên sản phẩm Khi khách hàng cần mualoại sản phẩm nào đó thì khách hàng có thể kích vào nút thêm vào giỏ hàng của sảnphẩm mình muốn mua Khách hàng có thể kiểm tra giỏ hàng để xác nhận sản phẩm
đã mua và có thể thêm sản phẩm hoặc sản phẩm nào không có ý định mua nữa thì
có thể xóa khỏi giỏ hàng Khi tham quan trang web, khách hàng có thể không cầnđăng nhập tài khoản mà vẫn có thể xem thông tin các mặt hàng, tuy nhiên khi kháchhàng mua hàng mà chưa đăng nhập tài khoản thì trang web sẽ hiển thị các mục đểkhách hàng gõ đầy đủ thông tin của khách hàng Nếu tất cả các thông tin hợp lệ thì
hệ thống sẽ gửi thông báo là đã mua thành công cho khách hàng
Tiếp đó bộ phận kinh doanh sẽ tiếp nhận đơn đặt hàng của khách hàng, liênlạc với khách hàng qua thông tin khách hàng cung cấp, xác nhận thanh toán và gửiyêu cầu tới bộ phận giao hàng để bộ phận này chuyển mặt hàng đã được đặt muacho khách hàng
Trong trường hợp nhiều công ty, trường học, các doanh nghiệp, có yêu cầuđặt hàng, mua hàng với số lượng lớn thì cần liên hệ trực tiếp tới công ty
Dịch vụ mà website thương mại mang lại cho khách hàng đầy đủ mọi thôngtin sản phẩm của nhà cung cấp (thông tin chi tiết sản phẩm: hình ảnh, các đặc tính kĩ
Trang 31thuật, hãng sản xuất, giá thành,… ), các tin tức liên quan trong cùng lĩnh vực, cùngvới việc tham khảo và tìm hiểu thông tin thì khách hàng có thể thực hiện việc đặthàng ngay tại website mà không phải đến trực tiếp điểm giao dịch.
2.2 Các chức năng chính của Website
2.2.1 Chức năng dành cho người quản trị
Quản lý tài khoản: đăng nhập, đổi mật khẩu, đăng xuất
Quản lý sản phẩm: quản lý loại sản phẩm, quản lý sản phẩm
Quản lý bài viết, quản lý tin tức, quản lý thông tin cửa hàng
Quản lý thông tin liên hệ của khách hàng
Quản lý đơn hàng
2.2.2 Chức năng dành cho khách hàng
Xem thông tin sản phẩm
Xem giới thiệu cửa hàng
2.3.1 Biểu đồ phân rã chức năng
Chương trình có các chức năng chính bao gồm xem thông tin sản phẩm, đặthàng, xem thông tin bài viết, các tin tức liên quan đến lĩnh vực máy tính, điện thoại,
đồ điện tử – công nghệ Bên cạnh đó website cho phép cấu hình các thông tin liênquan như thay đổi thông tin về nhân viên …
Trang 32Hình 2-7: Biểu đồ phân rã chức năng
Mô tả chi tiết các chức năng lá
- Quản lý tài khoản: quản trị viên quản lý thông tin chi tiết tài khoản của người
dùng và của khách hàng như họ tên người dùng, địa chỉ người dùng, số điệnthoại, email, ngày tạo tài khoản và có quyền thêm, sửa, xóa thông tin của tàikhoản
- Đăng nhập: chỉ các tài khoản hợp lệ mới đăng nhập thành công Tài khoản
nào có quyền Admin thì mới đăng nhập được vào trang quản trị hệ thống
- Thay đổi mật khẩu: chức năng này chỉ thực hiện được bởi những tài khoản
nào đã được phân quyền Administrator
Trang 33- Quản lý loại sản phẩm: quản trị viên quản lý thông tin chi tiết của từng loại
sản phẩm như tên loại sản phẩm, mã loại sản phẩm, hình ảnh và có quyềnthêm, sửa, xóa loại sản phẩm
- Quản lý sản phẩm: quản trị viên quản lý thông tin chi tiết của từng sản phẩm
như mã sản phẩm, tên sản phẩm, mã loại sản phẩm, giá sản phầm và cóquyền thêm, sửa, xóa sản phẩm
- Quản lý bài viết: quản trị viên quản lý thông tin các bài viết như tên bài viết,
nội dung bài viết, ngày tạo bài viết, ngày đăng bài, người đăng bài và cóquyền thêm, sửa, xóa bài viết
- Quản lý thông tin liên hệ: quản trị viên quản lý thông tin của khách hàng như
họ tên, số điện thoại, địa chỉ, email, ý kiến khách hàng Quản trị viên cóquyền xóa thông tin, ý kiến của khách hàng
- Quản lý đơn đặt hàng: Quản trị viên quản lý thông tin đơn đặt hàng của
khách hàng như tên khách hàng, số điện thoại, địa chỉ, Email, ngày đặt hàng,
số lượng đặt và có quyền xóa đơn hàng
- Đặt hàng: Khách hàng khi tham quan tại website có thể xem các bài viết về
tin tức sản phẩm, tin khuyến mại, xem các thông tin của sản phẩm, đăng kílàm thành viên và thiết lập phiếu đặt hàng
Trang 34Hình 2-8: Biểu đồ mức ngữ cảnh
Mô tả tương tác:
- Admin: Là quản trị viên, quản lý thông tin liên hệ của khách hàng, quản lý
thông tin đơn đặt hàng của khách, quản lý thông tin sản phẩm, thông tin bàiviết trên hệ thộng
- Khách hàng: Là người giao dịch với hệ thống thông qua các đơn đặt hàng.
Khách hàng có thể xem thông tin sản phẩm đã được đưa lên hệ thống, thamkhảo và đánh giá nếu có nhu cầu mua hàng thì gửi thông tin cá nhân về cho
hệ thống, thông tin sẽ được quản trị viên tiếp nhận và quản lý
Trang 352.3.3 Biểu đồ mức đỉnh
Hình 2-9: Biểu đồ mức đỉnh
Trang 362.3.4 Biểu đồ mức dưới đỉnh
2.3.4.1 Biểu đồ mức dưới đỉnh của chức năng quản trị hệ thống
Hình 2-10: Biểu đồ dưới mức đỉnh của chức năng quản lý tài khoản
Admin: có vai trò quản lý thông tin tài khoản nhân viên như tên đăng nhập, họ
và tên, ngày sinh, địa chỉ, số điện thoại, email, kiểu người dùng v.v
Trang 372.3.4.2 Biểu đồ dưới mức đỉnh chức năng quản lý danh mục
Hình 2-11: Biểu đồ dưới mức đỉnh của chức năng quản lý sản phẩm
Trang 382.3.4.3 Biểu đồ dưới mức đỉnh chức năng quản lý bài viết
Hình 2-12: Biểu đồ dưới mức đỉnh của chức năng quản lý bài viết
Trang 392.3.4.4 Biểu đồ dưới mức đỉnh chức năng quản lý đơn hàng
Hình 2-13: Biểu đồ dưới mức đỉnh chức năng quản lý đơn đặt hàng
Trang 402.3.4.5 Biểu đồ dưới mức đỉnh chức năng quản lý thông tin liên hệ
Hình 2-14: Biểu đồ dưới mức đỉnh của chức năng quản lý thông tin liên hệ