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
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:
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.pdf

