TÌM HIỂU VÀ XÂY DỰNG ỨNG DỤNG WEB SIÊU THỊ TRỰC TUYẾN

124 518 1
TÌM HIỂU VÀ XÂY DỰNG ỨNG DỤNG WEB SIÊU THỊ TRỰC TUYẾN

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Xây dựng nên hệ thống siêu thị trực tuyến cấu thành từ các module riêng biệt đồng thời quản lí nội dung động như bài báo,diễn đàn, phiếu điều tra

ĐẠI HỌC THĂNG LONG BỘ MÔN TIN HỌC CHUYÊN ĐỀ TỐT NGHIỆP TÌM HIỂU XÂY DỰNG ỨNG DỤNG WEB SIÊU THỊ TRỰC TUYẾN VỚI ASP.NET MVC SINH VIÊN : ĐẶNG TIẾN LỘC – A07138 GIÁO VIÊN HƯỚNG DẪN : Ths. ĐOÀN QUANG MINH HÀ NỘI 5/ 2010 BẢNG KÝ HIỆU VIẾT TẮT MVC Model View Controller Mô hình lập trình ba lớp Model, View, Controller được sử dụng trong nhiều framework lập trình web trong đó có ASP.NET MVC, ZEND , J2EE… API Application Programming Interface Giao diện lập trình được sử dụng bởi một ứng dụng qua đó cho phép nó tương tác với ứng dụng khác ACK ACKnowledgement Thừa nhận một trường xác thực trong gói tin http. URL Uniform Resource Locator Địa chỉ website LINQ .NET Language Intergrated Query Ngôn ngữ truy vấn tích hợp với .NET CDN Content Delivery Network Mạng phân phối nội dung SMTP Simple Mail Transfer Protocol Giao thức gửi thư điện tử SSL Secure Socket Layer Tầng bảo mật Socket IIS Internet Information Server Máy chủ thông tin mạng EML Electronic Mail Thư điện tử (đuôi của tệp thư điện tử) DOM Document Object Model định nghĩa tập các đối tượng chuẩn cho tất cả tài liệu có cấu trúc UI User Interface Giao diện người dùng CPU Control Processing Unit Bộ điều khiển xử lí trong máy tính MỤC LỤC MỤC LỤC GIỚI THIỆU CHUNG 1 CHƯƠNG 1: MỞ ĐẦU .4 1.1.Tổng quan về ASP.NET MVC 4 1.2.Tổng quan về ứng dụng thương mại siêu thị trực tuyến 4 1.3. Yêu cầu đặt ra cho kiến trúc hệ thống 5 1.4.Thiết kế kiến trúc hệ thống 5 1.4.1.Thiết kế kiến trúc phân tầng .6 1.4.2.Lựa chọn lưu trữ dữ liệu thiết kế tầng truy xuất dữ liệu 6 1.4.3.Thiết kế tầng logic nghiệp vụ .10 1.4.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 11 1.4.5.Tầng trình diễn (UI hay Views) 11 CHƯƠNG 2: TÌM HIỂU ASP.NET MVC LINQ .13 1.5.ASP.NET MVC là gì? .13 1.5.1.Mô hình MVC cơ bản 13 1.5.2.Một vài đặc tính của ASP.NET MVC .13 1.6.Sự khác biệt so với Web Form 14 1.7.Quá trình thực thi một ứng dụng nền web ASP.NET MVC .16 1.8.Linq to SQL là gì? .17 1.9.Mô hình hóa CSDL dùng Linq to SQL .18 1.10.Tìm hiểu lớp DataContext .19 1.11.Các ví dụ Linq to SQL 20 1.12.Tổng kết .22 CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ ỨNG DỤNG 24 1.13.Thiết kế hệ thống 24 1.13.1.Các module của hệ thống 24 1.13.2.Mối quan hệ giữa các module .25 1.14.Đặc tả sơ lược các module .25 1.14.1.Module hồ sơ thành viên .25 1.14.2.Module lấy ý kiến khách hàng .25 1.14.3.Module thương mại 25 1.14.4.Module gửi thư .25 1.14.5.Module diễn đàn .25 1.14.6.Module tìm kiếm siêu thị .26 1.14.7.Module bài báo, tin tức, blog 26 1.14.8.Module quốc tế hóa 26 1.14.9.Module kiểm thử 26 1.15.Tổng quan về module 27 1.16.Sơ đồ chức năng 28 1.17.Các bảng DL của module 28 1.17.1.Tạo bảng DL .28 1.17.2.Cấu hình trong web.config cho membership, role profile: .29 1.18.Models .30 1.18.1.Lớp UserInformation 30 1.18.2.Lớp ProfileInformation 30 1.19.Controllers .31 1.20.Views .32 1.21.Sử dụng Javascript .33 i 1.22.Cấu hình định tuyến 34 1.23.Xử lí xác thực người dùng .34 1.24.Tổng quan về module 35 1.25.Sơ đồ chức năng 36 1.26.Tìm hiểu , sử dụng Paypal cho chức năng thanh toán (check out) .36 1.26.1.Tạo tài khoản ảo cho mục đích kiểm thử .37 1.26.2.Quá trình thanh toán với Paypal từ website thương mại .37 1.27.Các bảng dữ liệu của module 39 1.28.Lớp thiết lập cấu hình cho module thương mại 39 1.29.Model .40 1.30.Controller .41 1.31.View .42 1.32.Sử dụng JavaScript 44 1.33.Cấu hình định tuyến .47 1.34.Tổng quan về module 49 1.35.Các vấn đề cần quan tâm khi xây dựng module: .49 1.36.Sơ đồ chức năng 52 1.37.Các bảng dữ liệu 52 1.38.Thiết kế lớp cấu hình cho module .53 1.39.Model .53 1.40.Controller .54 1.41.View .54 1.42.Cấu hình định tuyến 55 1.43.Tổng quan về module 56 1.44.Sơ đồ chức năng 56 1.45.Các bảng dữ liệu .57 1.46.Thiết kế lớp cấu hình cho module .58 1.47.Model .58 1.48.Controller .59 1.49.View .60 1.50.Sử dụng javascript .60 1.51.Cấu hình định tuyến 65 1.52.Tổng quan về module 67 1.53.Sơ đồ chức năng 67 1.54.Các bảng dữ liệu 68 1.55.Xây dựng lớp ForumsElement cho thiết lập cấu hình module .68 1.56.Model .68 1.57.Controller .69 1.58.View .70 1.59.Sử dụng javascript .71 1.60.Cấu hình định tuyến 75 1.61.Cấu hình trong tệp web.config 76 1.62.Tổng quan về module 77 1.63.Sơ đồ chức năng 77 1.64.Các bảng dữ liệu 78 1.65.Xây dựng lớp ArticleElement cho thiết lập cấu hình của module .78 1.66.Model .79 1.67.Controller .80 1.68.View .81 1.69.Sử dụng javascript .82 1.70.Cấu hình định tuyến 88 1.71.Tổng quan về module 92 1.72.Xây dựng module .92 1.72.1.Các Service hỗ trợ quốc tế hóa trong Framework của Microsoft .92 1.72.2.Xây dựng các tệp tài nguyên .93 1.72.3.Controller của module 95 1.72.4.View tương ứng của module 95 1.73.Tổng quan về module 96 1.74.Code cho module .96 CHƯƠNG 4: SỬ DỤNG WEB FORMS TRONG ỨNG DỤNG ASP.NET MVC .99 1.75.Các lí do cho sự kết hợp giữa 2 công nghệ 99 1.76.Tại sao có thể thực hiện được sự kết hợp này 99 1.77.Các bước để kết hợp các trang WebForms vào ứng dụng ASP.NET MVC 99 1.78.Tổng quan về module 100 1.79.Sơ đồ chức năng .100 1.80.Phân tích cách xây dựng chức năng 100 1.81.Bảng CSDL 101 1.82.Các lớp hỗ trợ trong module .102 1.83.View 104 1.84.Thêm định tuyến cho các trang view của module 105 1.85.Vấn đề bảo mật 106 CHƯƠNG 5: TRIỂN KHAI ỨNG DỤNG HƯỚNG PHÁT TRIỂN 108 1.86.Các bước triển khai 108 1.87.Triển khai Global Store Site 108 1.88.Cấu hình IIS 7.0 cho Framework MVC sử dụng Microsoft Web Platform Installer 109 1.89.Thêm Global Store site vào IIS 7.0 .112 1.90. Hỗ trợ tìm kiếm sản phẩm mở rộng .114 1.91.Mở rộng chức năng tìm kiếm cửa hàng gần nhất .114 1.92.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 .114 KẾT LUẬN .115 TÀI LIỆU THAM KHẢO 116 DANH MỤC HÌNH ẢNH .117 GIỚI THIỆU CHUNG Trong chuyên đề tốt nghiệp này em thực hiện việc tìm hiểu ASP.NET MVC , mô hình thương mại điện tử trực tuyến của các chuỗi siêu thị lớn trên thế giới như http://www.bestbuy.com , http://www.walmart.com/ qua đó xây dựng hệ thống thương mại trực tuyến trên nền tảng gồm các module: • Module thành viên hồ sơ. - Đăng kí tài khoản - Đăng nhập, đăng xuất - Quản lí hồ sơ - Quản lí vai trò người dùng, xóa , tạo vai trò - Quản lí người dùng, tìm kiếm người dùng theo tên – theo email , xóa người dùng, sửa đổi thông tin người dùng • Moudle thương mại - Duyệt toàn bộ các gian hàng trong siêu thị - Xem một gian hàng với danh sách các mặt hàng có trong gian hàng - Xem chi tiết một sản phẩm trong gian hàng , đưa vào giỏ hàng. - Quản lí các gian hàng, tạo một gian hàng - Quản lí các sản phẩm (chỉnh sửa thông tin sản phẩm, xóa sản phẩm), tạo sản phẩm - Quản lí các chọn lựa cách thức giao hàng (xóa, thêm cách thức giao hàng) - Quản lí các đơn đặt hàng (xem chi tiết đơn hàng) • Mudule tin tức – bài báo - blog - Xem toàn bộ bài báo - Xem theo đầu mục, chọn rss - Xem chi tiết , viết lời bình đánh giá bài báo - Quản lí các đầu mục, tạo đầu mục 1 - Quản lí các bài báo (chỉnh sửa, xóa), tạo bài báo mới - Quản lí các nhận xét bài báo • Module chưng cầu ý kiến khách hàng - Xem các chưng cầu - polls, cho ý kiến (vote) - Quản lí các chưng cầu (chuyển chưng cầu sang trạng thái đã lấy đủ ý kiến - archive, hiện hành, chỉnh sửa chưng cầu, xóa chưng cầu) , tạo chưng cầu mới • Module gửi thư từ hệ thống - Xem ,xóa các thư đã gửi - Tạo thư gửi • Module định vị cửa hàng siêu thị gần nhất - Tìm các siêu thị trong khoảng cách nhất định - Tìm đường đi tới 1 siêu thị - Thêm vị trí siêu thị mới vào hệ thống • Module Forum - Duyệt các diễn đàn. - Xem các bài thảo luận, tham gia thảo luận , xác nhận thích hay không thích bài thảo luận, tạo bài thảo luận - Quản lí các diễn đàn (chỉnh sửa , xóa diễn đàn) - Quản lí các bài thảo luận (approve, đóng , xóa bài thảo luận) • Module quốc tế hóa - Hiển thị các thông tin địa phương ứng với thông tin địa phương trong hồ sơ người dùng như tiền dùng ở địa phương, thời gian, cách viết con số của địa phương,… • Module kiểm thử - Kiểm thử phần bài báo, blog - Kiểm thử phần gửi thư 2 3 CHƯƠNG 1: MỞ ĐẦU 1. LÍ DO THỰC HIỆN ĐỀ TÀI 1.1. Tổng quan về ASP.NET MVC Không phải tự nhiên mà rất nhiều web programming framework phổ biến nhất hiện nay kế thừa các nguyên tắc của MVC như Django, Ruby on Rails, CakePHP, Struts, … Sự thành công của việc kế thừa kiểu mẫu lập trình này cuối cùng cũng đã khiến Microsoft quyết định đưa các nghuyên tắc đó vào sử dụng trong .NET Framework rồi hình thành nên ASP.NET MVC đầu năm 2007 phiên bản 1.0 . Kiểu mẫu lập trình các ứng dụng nền tảng Web này tuy rằng không phải là kiểu mẫu lập trình tốt nhất hiện nay xong nó có những ưu điểm nhất định được sử dụng khá phổ biến đang tiếp tục được hỗ trợ phát triển của Micorosoft. Chính vì những lí do này mà nó đáng được tìm hiểu để từ đó sử dụng một cách hiệu quả. 1.2. Tổng quan về ứng dụng thương mại siêu thị trực tuyến Việc mua bán kinh doanh hiện nay đang ngày càng trở nên dễ dàng hơn với sự hỗ trợ của CNTT hiện tại có một số lượng rất lớn các website thương mại đã được xây dựng sử dụng . Việc này giúp đa dạng hóa các phương thức bán hàng vì vậy hàng hóa được tiêu thụ dễ dàng hơn. Có rất nhiều ích lợi từ việc kinh doanh trực tuyến có thể thấy được như: Đối với khách hàng: • Mua hàng ở bất kể đâu miễn là họ có máy tính kết nối mạng. • Nhanh chóng tìm kiếm được mặt hàng cần mua chỉ qua vài click chuột. • Không phải đối mặt với nhân viên bán hàng. • … Đối với doanh nghiệp: • Có thêm được một kênh quảng bá sản phẩm hiệu quả mà chi phí thấp. • Nắm bắt được thông tin phong phú về thị trường đối tác. • Thiết lập được mối quan hệ tốt với khách hàng đối tác. • Đa dạng hóa các kênh bán hàng của doanh nghiệp. • …. Hệ thống siêu thị trực tuyến là một ví dụ điển hình về thương mại điện tử nó có đầy đủ các module mà một hệ thống thương mại điện tử cần có. Trong chuyên đề tốt nghiệp của mình em sẽ xây dựng hệ thống bán hàng trực tuyến theo mô hình MVC dựa trên nền tảng công nghệ .NET. 4 TIÊU ĐỀ CHƯƠNG 2 2. SƠ LƯỢC VỀ YÊU CẦU KIẾN TRÚC CỦA HỆ THỐNG 1.3. Yêu cầu đặt ra cho kiến trúc hệ thống Xây dựng nên hệ thống siêu thị trực tuyến cấu thành từ các module riêng biệt đồng thời quản lí nội dung động như bài báo,diễn đàn, phiếu điều tra (polls) gửi thư từ hệ thống thì cần giải quyết các vấn đề chung đặt ra với mỗi module đó là: • Tách biệt mã lệnh truy cập CSDL với mã lệnh logic nghiệp vụ mã lệnh cho giao diện để hệ thống có thể dễ dàng bảo trì mở rộng . • Cô lập kiến trúc truy cập CSDL để từ đó có thể hỗ trợ việc lưu trữ với các CSDL quan hệ khác nhau như SQL , MySQL , Oracle, mà không phải thực hiện thay đổi nào với tầng đối tượng nghiệp vụ. Ngược lại việc thay đổi tầng trình diễn (giao diện người dùng) hay tầng đối tượng nghiệp vụ cũng không làm thay đổi các tầng còn lại – Tạo ra tính decoupling cho hệ thống. • Thiết kế kiến trúc đối tượng nghiệp vụ lấy từ tầng truy cập CSDL theo kiểu hướng đối tượng bằng cách ánh xạ cơ sở dữ liệu quan hệ vào các lớp OOP. • Hỗ trợ cơ chế caching với các đối tượng nghiệp vụ .Điều này giúp làm giảm việc sử dụng CPU, nguồn CSDL, băng thông mạng – network bandwidth như vậy làm tăng hiệu năng chung của hệ thống. • Tạo tệp cấu hình cho các module để có thể dễ dàng thay đổi chúng. 1.4. Thiết kế kiến trúc hệ thống Với các dự án ASP.NET web forms truyền thống ta sẽ không bao giờ thực sự tách riêng được phần giao diện người dùng với logic ứng dụng bởi vì .NET cung cấp sẵn các điều khiển phía máy chủ (server side control) mà ta thường sử dụng bằng cách kéo thả vào các Web Form ví dụ như GridView. Các control kiểu này giúp chúng ta thực hiện khá nhiều việc tuy nhiên lại thường làm cho mã lệnh xử lí logic của ứng dụng lẫn vào với mã lệnh giao diện. Một ví dụ thường thấy đó là việc tạo ra logic để sắp xếp các GridView hay lọc dữ liệu ứng với một sự kiện nhấn chuột. Khi sử dụng những control như thế ta luôn cần có các tệp mã lệnh để xử lí logic đằng sau (code behind file) các view. Chúng ta có thể tự tạo trọn vẹn một ứng dụng có tính module tuy nhiên điều này dẫn tới việc ta phải tự xây dựng framework cho ứng dụng của mình. Với việc ra đời của framework asp.net mvc thì mọi thứ đã thay đổi hẳn không còn các tệp mã lệnh xử lí logic đằng sau các view giúp tách biệt hoàn toàn giữa giao diện với logic nghiệp vụ của ứng dụng. Với asp.net mvc framework ta có thể dễ dàng, nhanh chóng phát triển kiến trúc ứng dụng theo hướng phân tầng (n-tier web application) 5 [...]... TIÊU ĐỀ CHƯƠNG 2 1.4.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 Với những ứng dụng nền tảng web có những dữ liệu ít thay đổi thường được yêu cầu bởi nhiều người dùng trong hệ thống siêu thị trực tuyến các dữ liệu như vậy có thể kể tới như danh sách các đầu mục bài báo, đầu mục sản phẩm các sản phẩm… Để có thể tăng hiệu ứng cho hệ thống với... Người dùng có thể sử dụng module này để tìm kiếm các siêu thị gần nơi mình ở theo khoảng cách tìm đường đi đến một siêu thị nào đó Với người dùng có vai trò là admin thì còn có thêm chức năng thêm vị trí siêu thị mới vào hệ thống 1.14.7 Module bài báo, tin tức, blog Người dùng sử dụng module này có thể xem toàn bộ các bài báo, xem theo đầu mục, xem chi tiết bài báo , viết lời bịnh đánh giá Người... trúc phân tầng Với ứng dụng siêu thị trực tuyến ta sẽ chia thành các tầng như sau: Tầng lưu trữ dữ liệu: Nơi lưu trữ CSDL CSDL của ứng dụng là CSDL quan hệ Tầng truy cập CSDL (Data Access Layer – DAL): Mã lệnh để lấy dữ liệu , xử lí dữ liệu thô được lưu trong tầng lưu trữ DL Nhiệm vụ của tầng này là đưa ra các truy xuất CSDL theo logic nghiệp vụ có tính trực quan hơn cho ứng dụng Che dấu các chi... tối ưu hóa khả năng tìm kiếm hệ thống của các hệ thống tìm kiếm như google hay bing giúp các khách hàng chưa biết tới hệ thống có thể tìm đến hệ thống thông qua cỗ máy tìm kiếm Ở tầng này của hệ thống siêu thị trực tuyến có sử dụng javascript ở để xử lí các sự kiện không đồng bộ phía người dùng Cụ thể ta sẽ sử dụng JQuery – đây là javascript framework ổn định , ra đời cách đây vài năm , có các tài... dùng cần gần người này nhất Nội dung cần phân phối có thể là các file ảnh, javascript, css, tài liệu, phim ảnh , âm thanh … với hệ thống siêu thị trực tuyến này thì các tệp nội dung được đặt trong thư mục Content việc đưa tất cả các file nội dung vào thư mục này sẽ rất phù hợp với cơ chế làm việc của CDN ở chỗ để CDN hoạt động ta cần phải cài phần mềm tương ứng vào máy chủ web chứa hệ thống cấu... có thể được sử dụng ta cần phải khởi tạo model tương ứng Việc tạo model này hoàn toàn có thể thực hiện bằng cách kéo thả các bảng cũng như store procedure vào phần designer Các model sẽ được tạo tự động Việc tạo model như vậy giúp xây dựng ứng dụng nhanh chóng tuy nhiên lại là hạn chế vì chỉ có thể sử dụng với SQL server 1.4.3 Thiết kế tầng logic nghiệp vụ Tầng truy cập CSDL được xây dựng với LINQ-to-SQL... 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 IIS 7.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ên nến chạy trên IIS 6.0 , IIS 6.0 yêu cầu bạn phải chỉ ra cho ASP.NET ISAPI DLL nhận các file có phần mở rộng mvc Module nói trên IIS là các điểm đầu vào đối với ASP.NET MVC framework ... thống, module định vị siêu thị, module quốc tế hóa Hình 3.1 – Các module của hệ thống siêu thị trực tuyến 24 TIÊU ĐỀ CHƯƠNG 3 Tất cả các module của hệ thống đều sử dụng module thành viên hồ sơ Ngoại trừ việc này ra thì chúng độc lập với nhau 1.13.2 Mối quan hệ giữa các module Tất cả các module của hệ thống là độc lập với nhau ngoại trừ việc chúng sử dụng module thành viên hồ sơ cho việc xác... tham gia xây dựng Người xây dựng giao diện sẽ hầu như không quan tâm tới CSDL Tuy nhiên họ vẫn cung cấp giao diện hiển thị thông tin từ CSDL bởi lẽ tất cả các chi tiết hiển thị đã được gói gọn trong các đối tượng riêng biệt cung cấp việc truy vấn CSDL ở mức cao – trừu tượng hơn Một vài truy vấn CSDL sẽ được sử dụng ở một số các trang của ứng dụng Nếu như ta đặt trực tiếp truy vấn vào các trang này mà... controller tương ứng xử lí yêu cầu trong một ứng dụng MVC nề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.NET MVC Giai đoạn Chi tiết Nhận yêu cầu đầu tiên của Trong file Global.asax, các đối tượng Route được thêm vào đối tượng RouteTable 16 TIÊU ĐỀ CHƯƠNG 2 ứng dụng Thực thi việc định tuyến Module . THI U CHUNG Trong chuy n đề t t nghiệp n y em th c hi n vi c t m hi u ASP.NET MVC , m hình th ng m i đi n t tr c tuy n c a c c chuỗi si u th l n tr n. nhi m v là truy v n th ng tin khách h ng t b ng Customers, tuy nhi n trong c ch truy v n sử d ng LINQ th d li u đư c chuy n th nh d ng collection, gọi

Ngày đăng: 25/04/2013, 21:46

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan