Đồ án: " Tìm hiểu và xây dựng ứng dụng Web trên siêu thị trực tuyến với ASP.NET MVC " pps

122 587 1
Đồ án: " Tìm hiểu và xây dựng ứng dụng Web trên siêu thị trực tuyến với ASP.NET MVC " pps

Đ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

Đ ẠI HỌC THĂNG LONG BỘ MÔN TIN HỌC CHUYÊN ĐỀ TỐT NGHIỆP 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 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 i 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 1 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 và 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 và đánh giá bài báo - Quản lí các đầu mục, tạo đầu mục - 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 2  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ư và 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ư 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 và 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 và được sử dụng khá phổ biến và đ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 và 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ì 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 và đối tác.  Thiết lập được mối quan hệ tốt với khách hàng và đố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. TIÊU ĐỀ CHƯƠNG 2 4 2. SƠ LƯỢC VỀ YÊU CẦU KIẾN TRÚC CỦA HỆ THỐNG 2.1. 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) và 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ụ và mã lệnh cho giao diện để hệ thống có thể dễ dàng bảo trì và 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 và 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. 2.2. 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) TIÊU ĐỀ CHƯƠNG 2 5 2.2.1. Thiết kế kiến 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ụ và có tính trực quan hơn cho ứng dụng. Che dấu các chi tiết thâm nhập CSDL ở mức thấp tăng tính an toàn cho CSDL của hệ thống. Tầng nghiệp vụ (Business Logic Layer – BLL): Mã lệnh ở tầng này sẽ thực hiện các nguyên tắc nghiệp vụ , tạo các đối tượng cụ thể thuộc miền nghiệp vụ nhằm thỏa mãn các yêu cầu của ứng dụng. Tầng Logic ứng dụng (Application Logic Layer): Mã lệnh thuộc tầng này sẽ xử lí các tương tác giữa tầng trình diễn (Presentation Layer) với tầng logic nghiệp vụ Tầng trình diễn (Presentation Layer – PL) : Là các đoạn mã lệnh tạo nên những gì mà người dùng thấy ở trên trình duyệt – nó có thể là các dữ liệu đã được định dạng, thực đơn duyệt hệ thống, … Hình 1.1 – Kiến trúc ứng dụng 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 Ở ứng dụng này ta lựa chọn lưu trữ CSDL với SQL server 2008. SQL server 2008 tuy nhiên trong thực tế có thể khách hàng lại muốn sử dụng Oracle server hay IBM DB2 server … vì nhiều lí do như họ muốn tích hợp ứng dụng của bạn vào một project lớn hơn mà project lại dùng Oracle Server để lưu trữ DL nên tầng truy xuất dữ liệu cần được thiết kế sao cho đủ linh hoạt để việc thay đổi diễn ra dễ dàng , nhanh chóng. [...]... name="Gender" type="String"/> 27 TIÊU ĐỀ CHƯƠNG 3 ... sơ Khi ứng dụng chạy thông tin thuộc tính của hồ sơ sẽ được thêm vào lớp Page Qua nội dung phần config có thể thấy ta dùng ASPNETSqlMembershipProvider... trong web. config cho membership, role và profile: Mục membership: Mục Profile: ASP.NET cung cấp một cơ chế... hưởng đến ứng dụng Đối với ASP.NET MVC Framework thì việc có thể sử dụng các unit test có thể kiểm định khá dễ dàng hoạt động của các controller 13 TIÊU ĐỀ CHƯƠNG 2 Tính năng ASP.NET 2.0 ASP.NET MVC Kiến trúc chương trình Kiến trúc mô hình Kiến trúc sử dụng việc WebForrm  Bussiness  phân chia chương trình Database thành Controllers, Models, Views Cú pháp chương trình Sử dụng cú pháp của webform Tất... server quản lí 14 TIÊU ĐỀ CHƯƠNG 2 1.3 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 đầu tiên sẽ đi qua đối tượng UrlRoutingModule, đây là một module của HTTP Module nà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ượng route đầ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 thi BaseUrl . Đ ẠI HỌC THĂNG LONG BỘ MÔN TIN HỌC CHUYÊN ĐỀ TỐT NGHIỆP 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 SINH VIÊN : ĐẶNG TIẾN LỘC – A07138 GIÁO VIÊN HƯỚNG. 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 ) với ASP. NET đều phải chạy tất cả các tiến trình của ASP. NET và mọi sự thay đổi ID của bất kỳ controls nào cũng ảnh hưởng đến ứng dụng. Đối với ASP. NET MVC Framework thì việc có thể sử dụng

Ngày đăng: 28/07/2014, 05:21

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