Chuyên đề Tìm hiểu và xây dựng ứng dụng Web siêu thị trực tuyến với ASP.NET MVC

MỤC LỤC

GIỚI THIỆU CHUNG . . . . 1

CHƯƠNG 1: MỞ ĐẦU . . . . 3

1.1. Tổng quan về ASP.NET MVC. . . 3

1.2. Tổng quan về ứng dụng thương mại siêu thị trực tuyến . . 3

2.1. Yêu cầu đặt ra cho kiến trúc hệ thống . . 4

2.2. Thiết kế kiến trúc hệ thống . . . 4

2.2.1. Thiết kế kiến trúc phân tầng. 5

2.2.2. Lựa chọn lưu trữ dữ liệu và thiết kế tầng truy xuất dữ liệu . 5

2.2.3. Thiết kế tầng logic nghiệp vụ . . . 9

2.2.4. Xây dựng vùng nhớ đệm - caching , sử dụng mạng phân phối nội dung tăng

hiệu năng của hệ thống . . . 10

2.2.5. Tầng trình diễn (UI hay Views) . . 10

CHƯƠNG 2: TÌM HIỂU ASP.NET MVC VÀ LINQ . 12

1.1. ASP.NET MVC là gì? . . . 12

1.1.1. Mô hình MVC cơ bản . 12

1.1.2. Một vài đặc tính của ASP.NET MVC . . 12

1.2. Sự khác biệt so với Web Form . . . 13

1.3. Quá trình thực thi một ứng dụng nền web ASP.NET MVC . 15

2.1. Linq to SQL là gì? . . . 16

2.2. Mô hình hóa CSDL dùng Linq to SQL . . 16

2.3. Tìm hiểu lớp DataContext . 18

2.4. Các ví dụ Linq to SQL . . . 18

2.5. Tổng kết . . . 21

CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ ỨNG DỤNG . . 22

1.1. Thiết kế hệ thống . 22

1.1.1. Các module của hệ thống . . . 22

1.1.2. Mối quan hệ giữa các module . . . 23

1.2. Đặc tả sơ lược các module . 23

1.2.1. Module hồ sơ và thành viên . 23

1.2.2. Module lấy ý kiến khách hàng . 23

1.2.3. Module thương mại . . . 23

1.2.4. Module gửi thư . . . 23

1.2.5. Module diễn đàn . . . 23

1.2.6. Module tìm kiếm siêu thị . . . 24

1.2.7. Module bài báo, tin tức, và blog . . 24

1.2.8. Module quốc tế hóa . . . 24

1.2.9. Module kiểm thử . . . 24

2.1. Tổng quan về module . . . 25

2.2. Sơ đồ chức năng . . . 26

2.3. Các bảng DL của module. . . 26

2.3.1. Tạo bảng DL . . . 26

2.3.2. Cấu hình trong web.config cho membership, role và profile: . 27

2.4. Models . . . . 28

2.4.1. Lớp UserInformation . . . 28

2.4.2. Lớp ProfileInformation . . . 28

2.5. Controllers. . . . 29

2.6. Views . . . . 30

2.7. Sử dụng Javascript . . . 31

2.8. Cấu hình định tuyến. . . 32

2.9. Xử lí xác thực người dùng . 32

3.1. Tổng quan về module . . . 33

3.2. Sơ đồ chức năng . . . 34

3.3. Tìm hiểu , sử dụng Paypal cho chức năng thanh toán (check out). 34

3.3.1. Tạo tài khoản ảo cho mục đích kiểm thử . . 35

3.3.2. Quá trình thanh toán với Paypal từ website thương mại . 35

3.4. Các bảng dữ liệu của module . 37

3.5. Lớp thiết lập cấu hình cho module th ương mại . . 37

3.6. Model . . . . 38

3.7. Controller . . . . 39

3.8. View. . . . 40

3.9. Sử dụng JavaScript . . . 42

3.10. Cấu hình định tuyến . . . 45

4.1. Tổng quan về module . . . 47

4.2. Các vấn đề cần quan tâm khi xây dựng module:. 47

4.3. Sơ đồ chức năng . . . 50

4.4. Các bảng dữ liệu . . . 50

4.5. Thiết kế lớp cấu hình cho module . . . 51

4.6. Model . . . . 51

4.7. Controller . . . . 52

4.8. View. . . . 52

4.9. Cấu hình định tuyến. . . 53

5.1. Tổng quan về module . . . 54

5.2. Sơ đồ chức năng . . . 54

5.3. Các bảng dữ liệu . . . 55

5.4. Thiết kế lớp cấu hình cho module . . . 56

5.5. Model . . . . 56

5.6. Controller . . . . 57

5.7. View. . . . 58

5.8. Sử dụng javascript . . . 58

5.9. Cấu hình định tuyến. . . 63

6.1. Tổng quan về module . . . 65

6.2. Sơ đồ chức năng . . . 65

6.3. Các bảng dữ liệu . . . 66

6.4. Xây dựng lớp ForumsElement cho thiết lập cấu hình module . 66

6.5. Model . . . . 66

6.6. Controller . . . . 67

6.7. View. . . . 68

6.8. Sử dụng javascript . . . 69

6.9. Cấu hình định tuyến. . . 73

6.10. Cấu hình trong tệp web.config . . . 74

7.1. Tổng quan về module . . . 75

7.2. Sơ đồ chức năng . . . 75

7.3. Các bảng dữ liệu . . . 76

7.4. Xây dựng lớp ArticleElement cho thiết lập cấu hình của module . 76

7.5. Model . . . . 77

7.6. Controller . . . . 78

7.7. View. . . . 79

7.8. Sử dụng javascript . . . 80

7.9. Cấu hình định tuyến. . . 86

8.1. Tổng quan về module . . . 90

8.2. Xây dựng module . . . 90

8.2.1. Các Service hỗ trợ quốc tế hóa trong Framework của Microsoft . 90

8.2.2. Xây dựng các tệp tài nguyên . . . 91

8.2.3. Controller của module . . . 93

8.2.4. View tương ứng của module . . . 93

CHƯƠNG 4: SỬ DỤNG WEB FORMS TRONG ỨNG DỤNG ASP.NET MVC . 97

1.1. Các lí do cho sự kết hợp giữa 2 công nghệ . . 97

1.2. Tại sao có thể thực hiện được sự kết hợp này . . 97

1.3. Các bước để kết hợp các trang WebForms vào ứng dụng ASP.NET MVC . 97

2.1. Tổng quan về module . . . 98

2.2. Sơ đồ chức năng . . . 98

2.3. Phân tích cách xây dựng chức năng . . 98

2.4. Bảng CSDL . . . . 99

2.5. Các lớp hỗ trợ trong module . . . 100

2.6. View. . . . 102

2.7. Thêm định tuyến cho các trang view của module . . 103

2.8. Vấn đề bảo mật . . . 104

CHƯƠNG 5: TRIỂN KHAI ỨNG DỤNG VÀ HƯỚNG PHÁT TRIỂN . 106

1.1. Các bước triển khai. . . 106

1.2. Triển khai Global Store Site . . . 106

1.3. Cấu hình IIS 7.0 cho Framework MVC sử dụng Microsoft Web Platform

Installer . . . . 107

1.4. Thêm Global Store site vào IIS 7.0 . 110

2.1. Hỗ trợ tìm kiếm sản phẩm mở rộng . . 112

2.2. Mở rộng chức năng tìm kiếm cửa hàng gần nhất . . 112

2.3. Xây dựng module báo cáo tình hình bán hàng của siêu thị kết xuất ra các tệp

định dạng Execel , Pdf . . . 112

KẾT LUẬN . . . . 113

TÀI LIỆU THAM KHẢO . . . 114

DANH MỤC HÌNH ẢNH . . . 115

pdf122 trang | Chuyên mục: ASP.NET | Chia sẻ: dkS00TYs | Lượt xem: 2235 | Lượt tải: 1download
Tóm tắt nội dung Chuyên đề Tìm hiểu và xây dựng ứng dụng Web siêu thị trực tuyến với ASP.NET MVC, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
nerate outbound URL when "virtual Path" matches this entry 
 string path = ((WebFormsRouteHandler)this.RouteHandler).VirtualPath; 
 if ((string)values["VirtualPath"] != path) 
 return null; 
 else 
 { 
 // 
 var valuesExceptVirtualPath = new RouteValueDictionary (values); 
 valuesExceptVirtualPath.Remove("virtualPath"); 
TIÊU ĐỀ CHƯƠNG 3 
104 
 return base.GetVirtualPath(requestContext , valuesExceptVirtualPath); 
 } 
 } 
 private class WebFormsRouteHandler : IRouteHandler 
 { 
 public string VirtualPath { get; set; } 
 //Compiles the ASPX file if needed and instantiates the web form 
 public IHttpHandler GetHttpHandler(RequestContext requestContext) 
 { 
 return 
(IHttpHandler)BuildManager.CreateInstanceFromVirtualPath(VirtualPath, 
typeof(IHttpHandler)); 
 } 
 } 
 } 
Ở đây ta đã sử dụng tới lớp BuildManager để định vị, dịch và tạo thể hiện của các 
trang webforms. 
Với lớp này ta có thể tạo ngay định tuyến cho các tệp StoreLocator.aspx và 
AddStoreLocation.aspx trong thư mục WebForms và thêm các định tuyến này vào 
bảng định tuyến: 
#region Locator 
 routes.Add(new WebFormsRoute("Locator/Index", "~/WebForms/StoreLocator.aspx")); 
 routes.Add(new WebFormsRoute("Locator/AddStore", "~/WebForms/AddStoreLocation.aspx")); 
#endregion 
Ghi chú: Đến đây ta đã hoàn tất việc kết hợp các trang webforms vào dự án 
asp.net mvc 
2.8. Vấn đề bảo mật 
Một vấn đề ở đây là chúng ta cần thêm luật xác thực cho định tuyến Urls mới tạo 
để bảo vệ các trang khỏi kiểu truy cập trực tiếp sử dụng định tuyến đó: 
TIÊU ĐỀ CHƯƠNG 3 
105 
 106 
CHƯƠNG 5: TRIỂN KHAI ỨNG DỤNG VÀ HƯỚNG PHÁT 
TRIỂN 
1. TRIỂN KHAI ỨNG DỤNG 
1.1. Các bước triển khai 
Công việc triển khai được chia làm 2 bước: Triển khai cơ sở dữ liệu và triển khai 
gobal store site. 
Về phần CSDL do IIS hỗ SQL server express cho nên CSDL này sẽ được gắn với 
ứng dụng GlobalStore khi ta triển khai ứng dụng này. Ở đây GlobalStore site chỉ 
sử dụng như là một site nhỏ nên ta chỉ cần dùng SQL server express để chứa 
CSDL. 
1.2. Triển khai Global Store Site 
Ta sẽ thực hiện triển khai Global Store Site với chức năng Public từ Visual Studio 
như hình dưới đây sau khi chạy Visual Studio với vai trò administrator: 
107 
Hình 5.1 – Triển khai Global Store Site 
1.3. Cấu hình IIS 7.0 cho Framework MVC sử dụng Microsoft 
Web Platform Installer 
Công cụ cài đặt Web Platform này là một công cụ mới của Microsoft hỗ trợ cài đặt 
trọn bộ Web Platform của Microsoft. Sau khi cài công cụ này khởi động nó ta sẽ 
thấy trên màn hình : 
Hình 5.2 – Màn hình chọn lựa Paltform để cài đặt 
108 
Ta phải đảm bảo rằng .NET framework và ASP.NET MVC mới nhất được cài đặt 
bằng cách nhấn vào link Customize mục Framworks and Runtimes như hình dưới 
đây nếu đã có dấu tích chìm ứng với các mục cần cài thì tức là chúng đã được cài 
đặt vào máy của ta. 
Hình 5.3 – Màn hình kiêm tra các cài đặt của .NET Framework và ASP.NET MVC 
109 
Kiểm tra xem đã cài SQL Server express 2008 chưa bằng việc chọn liên kết 
Customize ở mục Database nếu như có dấu tích chìm ở phần SQL Server Express 
2008 ở màn hình mới mở ra thì tức là SQL server express 2008 đã được cài đặt. 
Hình 5.4 – Màn hình kiểm tra việc cài đặt SQL server express 2008 
Ghi chú: Ở đây ta đã cài đặt mọi thứ nên không phải cài đặt thêm gì. 
110 
1.4. Thêm Global Store site vào IIS 7.0 
Chạy máy chủ quản lí thông tin Internet của Microsoft – IIS 7.0 như trong hình vẽ 
Hình 5.5 – IIS Manager 
111 
Nhấn vào node của máy chủ rồi nhấn chuột phải chọn Add Web Site ta sẽ thấy 
màn hình như sau 
Hình 5.6 – Add Web Site Dialog 
Ở đây sẽ cần một số các thiết lập như đặt tên cho site, gán Host header … 
112 
2. Hướng phát triển ứng dụng 
Do thời gian và phạm vi làm chuyên đề tốt nghiệp cũng như hiểu biết còn hạn chế 
nên em đã chỉ có thể đa phần là áp dụng những kĩ thuật cơ bản trong lập trình ứng 
dụng nền tảng web sử dụng công nghệ .NET MVC và ASP.NET của Microsft. 
Trên thực tế hệ thống còn có thể mở rộng theo một số hướng như sau để trở nên 
hữu ích và hiệu quả hơn. 
2.1. Hỗ trợ tìm kiếm sản phẩm mở rộng 
Với một hệ thống lớn như Global Store việc xây dựng chức năng tìm kiếm sản 
phẩm mở rộng là cần thiết giúp khách hàng tiết kiệm được thời gian tìm kiếm cũng 
như khiến cho hệ thống trở nên hữu ích hơn. 
2.2. Mở rộng chức năng tìm kiếm cửa hàng gần nhất 
Việc tìm kiếm cửa hàng gần nhất là một tiện ích khá thú vị của hệ thống tuy nhiên 
mục tiêu cần hướng tới là trong trường hợp khách hàng có lựa chọn sản phẩm 
vào giỏ hàng thì hệ thống cần thiết phải thông báo cho khách hàng biết sản phẩm 
mà khách hàng muốn mua đó có hay không có ở các siêu thị mà họ định tới . 
Ngoài ra cũng cần có các thông tin bổ trợ về siêu thị như giờ mở cửa , giờ đóng 
cửa ,… 
2.3. Xây dựng module báo cáo tình hình bán hàng của siêu thị kết 
xuất ra các tệp định dạng Execel , Pdf 
Đây là một module khá cần thiết cho một ứng dụng kiểu như siêu thị trực tuyến , 
ông chủ của Global Store Pte luôn có nhu cầu nắm bắt các thông tin bán hàng của 
từng siêu thị . 
Để xây dựng được module này ở mức cao như yêu cầu thực tế của những site 
như www.bestbuy.com hay www.walmart.com không phải là điều dễ dàng xong 
xây dựng để mô phỏng thì không khó và là cần thiết. 
113 
KẾT LUẬN 
Sau khi thực hiện xong chuyên đề tốt nghiệp xây dựng hệ thống siêu thị trực tuyến 
em đã tìm hiểu được một số công nghệ xây dựng ứng dụng nền tảng web của 
Microsoft: 
- ASP.NET MVC 
- ASP.NET 
Tìm hiểu và ứng dụng cách kết hợp 2 công nghệ xây dựng ứng dụng web của 
Microsoft là ASP.NET MVC và ASP.NET 
Tìm hiểu và sử dụng các webservices sử dụng trong chức năng thanh toán với 
Paypal, hay chức năng hiển thị bản đồ Google của module định vị cửa hàng gần 
nhất. 
Tìm hiểu và sử dụng AJAX cho các hành động phía Client, kĩ thuật xây dựng bộ 
nhớ đệm,… 
 114 
TÀI LIỆU THAM KHẢO 
Tiếng Anh: 
Về chức năng tham khảo các trang  , 
 . 
ScottGu (5/2007) , Using LINQ to SQL , xem trên blog của ScottGu 
( 
Troy Mageniss (2010), LINQ to Object using C# 4.0, Chapter 3,4 
ASP.NET MVC, các bài từ cơ bản đến nâng cao về framework asp.net mvc trên 
trang dành cho .NET MVC của microsoft ( 
Steven Sanderson (2009) , Pro ASP.NET MVC framework , p540 tới p546 – 
Internationlization , p555 tới p576 commbination of ASP.NET and ASP.NET MVC 
technology in one application. 
Bear Bibfault, (11/2008), JQuery in action, Chapter 8 Talk to the server with Ajax 
p217 tới p266. 
Google developers, Google map API, xem ở ( . 
Paypal developers, Paypal API , xem ở (https://cms.paypal.com/us/cgi-
bin/?cmd=_render-content&content_ID=developer/howto_api_reference ) 
 115 
DANH MỤC HÌNH ẢNH 
Hình 1.1 – Kiến trúc ứng dụng – Trang 5 
Hình 1.2 - Mối quan hệ giữa các tầng giao diện, logic nghiệp vụ, truy cập CSDL và 
lưu trữ CSDL – Trang 7 
Hình 2.1 – Mô hình MVC cơ bản – Trang 12 
Hình 2.2 – Mô hình LINQ to SQL – Trang 17 
Hình 2.3 – Mô hình NorthwindDataContext – Trang 19 
Hình 2.4 – Hình minh họa lấy sản phẩm từ CSDL với LINQ - Trang 19 
Hình 2.5 – Hình minh họa cập nhật sản phẩm từ CSDL với LINQ – Trang 19 
Hình 2.6 – Chèn sản phẩm mới vào CSDL – Trang 19 
Hình 2.7 – Xóa một sản phẩm – Trang 20 
Hình 2.8 – Gọi một thủ tục – Trang 20 
Hình 2.9 – Lấy các sản phẩm và phân trang – Trang 21 
Hình 3.1 – Các module của hệ thống siêu thị trực tuyến – Trang 22 
Hình 3.2 – Sơ đồ tổng quan người dùng và các chức năng của module – Trang 25 
Hình 3.3 – Sơ đồ tổng quan chức năng của module theo mô hình UC – Trang 26 
Hình 3.4 Bảng Langugage – Trang 26 
Hình 3.5 Sơ đồ lớp UserInformation – Trang 28 
Hình 3.6 Sơ đồ lớp ProfileInformation – Trang 29 
Hình 3.7 Sơ đồ chức năng theo mô hình UC của module thương mại – Trang 34 
Hình 3.8 – Các tài khoản kiểm thử với sandbox – Trang 35 
Hình 3.8 Sơ đồ quan hệ các bảng dữ liệu trong module thương mại – Trang 37 
Hình 3.9 – Sơ đồ các lớp thực thể LINQ-to-SQL của module – Trang 38 
Hình 3.10 – Các lớp xây dựng thêm hỗ trợ cho module – Trang 39 
Hình 3.11 – Sơ đồ chức năng của module - Trang 50 
Hình 3.12 – Bảng Newsletters – Trang 50 
Hình 3.13 – Sơ đồ Model Newsletter – Trang 52 
Hình 3.14 – Sơ đồ chức năng của module lấy ý kiến người dùng – Trang 54 
DANH MỤC HÌNH ẢNH 
116 
Hình 3.15 – Sơ đồ mối quan hệ giữa 2 bảng DL của module lấy ý kiến người dùng 
– Trang 55 
Hình 3.16 – Sơ đồ thiết kế bảng PollOptions – Trang 55 
Hình 3.17 – Sơ đồ thiết kế bảng Polls – Trang 56 
Hình 3.18 – Sơ đồ lớp PollOption và Poll – Trang 57 
Hình 3.19 – Sơ đồ lớp PollQueries – Trang 57 
Hình 3.20 – Sơ đồ chức năng module Forum – Trang 65 
Hình 3.21 – Các bảng dữ liệu của module forum – Trang 66 
Hình 3.22 – Sơ đồ các lớp thực thể LINQ-to-SQL Post, Forum , Vote – Trang 67 
Hình 3.23 – Sơ đồ lớp ForumQueries – Trang 67 
Hình 3.24 – Sơ đồ chức năng của module bài báo, tin tức , và blog – Trang 75 
Hình 3.25 – Sơ đồ bảng Categories, Comments, Articles và quan hệ của chúng – 
Trang 76 
Hình 3.26 – Sơ đồ các lớp thực thể Article, Comment, Category – Trang 77 
Hình 3.27 – Sơ đồ các lớp mở rộng ArticlesQueries, Article, 
ArticleCollectionWrapper - Trang 78 
Hình 3.28 – Tệp Message.resx – Trang 91 
Hình 3.29 – Tệp Message.vn-VN.resx – Trang 91 
Hình 3.30 – Tệp Message.it-IT.resx – Trang 92 
Hình 3.31 – Tệp TestLocalization.resx – Trang 92 
Hình 3.32 – Tệp TestLocalization.vn-VN.resx – Trang 92 
Hình 3.33 – Tệp TestLocalization.it-IT.resx – Trang 92 
Hình 4.1 – Sơ đồ chức năng của module Store Locator - Trang 96 
Hình 4.2 – Bảng Locations – Trang 99 
Hình 4.3 – Tệp LocationsData.xsd – Trang 102 
Hình 5.1 – Triển khai Global Store Site – Trang 105 
Hình 5.2 – Màn hình chọn lựa Paltform để cài đặt – Trang 106 
DANH MỤC HÌNH ẢNH 
117 
Hình 5.3 – Màn hình kiêm tra các cài đặt của .NET Framework và ASP.NET MVC 
– Trang 107 
Hình 5.4 – Màn hình kiểm tra việc cài đặt SQL server express 2008 – Trang 108 
Hình 5.5 – IIS Manager – Trang 109 
Hình 5.6 – Add Web Site Dialog – Trang 110 

File đính kèm:

  • pdfChuyên đề Tìm hiểu và xây dựng ứng dụng Web siêu thị trực tuyến với ASP.NET MVC.pdf