Đồ án Website bán mỹ phẩm viết bằng C#

Đây là đồ án môn học Thương mại điện tử của Nhóm 1 lớp mình khi hoàn thành môn học thương mại điện tử, nay mình xin chia sẽ với các bạn. Trong file đính kém có: bản word ( Giới thiệu đề tài, lý do chọn đề tài, giới thiệu về VisuaStudio 2008 và SQL 2008, bản phân tích thiết kế hệ thống), CSDL , Code chương trinhg(Viết bằng C# Hoàn chỉnh). Các bạn có thể download tài liệu từ Kilobook.com Hoặc nếu các bạn cần một số tài liệu, đồ án khác chuyên ngành CNTT thì có thể liên hệ mình qua email hoclamgiau2011@gmail.com để có thể lấy tài liệu đúng yêu cầu và nhanh nhất. một số Website TMĐT khác như. website bán hoa. website giới thiệu tranh việt. website bán trang sức. Website bán giày. website bán Áo quần

doc42 trang | Chia sẻ: lvcdongnoi | Lượt xem: 5621 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Website bán mỹ phẩm viết bằng C#, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
MỤC LỤC Chương 1. Giới thiệu chung 1.1 Tính cấp thiết đề tài Nhu cầu sử dụng trong xã hội luôn là động cơ chính thúc đẩy sản xuất, như chúng ta cũng biết được việc thiếu thông tin cho công đoạn đáp ứng cung cầu làm cho việc đưa sản phẩm đến tay người dùng trở nên khó khăn và gây nhiều lãng phí cho xã hội. Bên cạnh đó việc phổ biến sử dụng Internet đã tạo ra một bước ngoặc mới trong định hướng phát triển ngành Công nghệ thông tin của nước ta cùng với nhu cầu sử dụng máy tính để trao đổi và cập nhật thông tin ngày càng tăng. Từ thực tế đó việc đưa thông tin đáp ứng các nhu cầu của mọi người và hổ trợ cho việc mua bán diễn ra một cách nhanh chóng, tiết kiệm đã trở nên vô cùng cấp thiết. Song song với việc phát triển bán hàng qua điện thoại, ứng dụng với thời đại công nghệ thông tin phát triển như hiện nay, mua bán qua mạng cũng là một giải pháp tối ưu trong việc phân phối thông tin vào mục đích thương mại, và đây cũng là một mảnh đất mới cho thị trường hàng tiêu dùng trong giai đoạn phát triển kinh tế ở nước ta. Việc bạn có thể ung dung ngồi nhà mà du ngoạn từ cửa hàng này sang cửa hàng khác trong không gian ảo không còn là cảnh trong phim viễn tưởng, mà đã trở thành hiện thực. Ngày nay, bất kỳ thứ hàng hóa nào, bạn đều có thể đặt mua qua internet. Nếu như trong thế giới thực, cửa hàng được xây bằng gạch, ximăng, sắt thép v.v. thì trong không gian ảo cửa hàng được xây bằng phần mềm. Tận dụng tính năng đa phương tiện của môi trường Web và đáp lại những tình huống từ phía người mua hàng cũng như người bán. Cửa hàng trên internet nó cũng giống như siêu thị trên internet nhưng quy mô bán hàng của nó chỉ gói gọn trong những hàng hóa thuộc một lĩnh vực nào đó. Do đó thực hiện đề tài xây dụng một cửa hàng trên internet là một vấn đề thực tế, ứng dụng được và có tiềm năng phát triển trong tương lai. Do đặc điểm nổi bật của cửa hàng internet là người mua và người bán không hề gặp mặt nhau và người mua không thể trực tiếp kiểm tra hàng hóa. Do đó để xây dựng cửa hàng ảo, cần phải xây dựng cho cửa hàng ảo những chức năng sau: Quản lý khách hàng, Quản lý mua hàng, Cơ sở dữ liệu, cập nhật, bán hàng, quản lý và xử lý đơn đặt hàng, v.v. 1.2 Mục đích đề tài Khách hàng có thể tìm kiếm thông tin về các sản phẩm của công ty. Khách hàng có thể đặt sản phẩm trực tuyến. Website sẽ cập nhật thông tin đặt hàng này trực tiếp lên cơ sở dữ liệu, và cho phép người quản trị được phân quyền thao tác các công việc sau: Tìm kiếm các đơn đặt hàng đã được xác nhận hay chưa xác nhận. Xác nhận đơn đặt hàng hợp lệ, chỉnh sửa thông tin khách hàng và thông tin đặt hàng. Thống kê số lượng mua hàng của khách hàng. Thay đổi, thêm mới hoặc xóa bỏ thông tin, hình ảnh về các sản phẩm công ty muốn giới thiệu cho khách hàng. Theo dõi tình hình liên hệ thông qua website của khách hàng, để đáp ứng kịp thời nhu cầu của họ. Về tổ chức lưu trữ, thực hiện các yêu cầu: Thêm, xóa, sửa thông tin, hình ảnh về các sản phẩm do công ty tổ chức, phục vụ cho công tác quản lý, thống kê tình hình hoạt động của công ty. Thêm, xóa, sửa thông tin, hình ảnh về các sản phẩm. 1.3 Giới thiệu công nghệ * Visual Studio 2005 Visual Studio 2005 Professional Edition là một môi trường phát triển toàn diện dành cho nhà phát triển cá nhân để xây dựng hiệu suất cao, các ứng dụng đa tầng. Với Visual Studio 2005 Professional Edition, bạn có thể tận dụng lợi thế của môi trường năng suất cao để xây dựng nhiều loại Windows, Web, điện thoại di động, và các giải pháp dựa trên Office. Với Visual Studio 2005, các nhà phát triển chuyên nghiệp có thể: Tạo nhiều tầng Windows, Web, SmartPhone, và các ứng dụng dựa trên Pocket PC; tích hợp cơ sở dữ liệu Visual cụ cho thiết kế cơ sở dữ liệu, bảng biểu, lưu trữ; thủ tục, và nhiều hơn nữa; báo cáo cơ sở dữ liệu tích hợp thiết kế và người xem; Thiết kế, gỡ lỗi, và triển khai ứng dụng nhiều tầng; tích hợp gỡ lỗi XSLT. * ASP.NET Trong nhiều năm qua, ASP đã được cho rằng đó thực sự là một lựa chọn hàng đầu cho web developers trong việc xây dựng những web sites trên nền máy chủ web Windows bởi nó vừa linh hoạt mà lại đầy sức mạnh. Đầu năm 2002, Microsoft đã cho ra đời một công nghệ mới đó chính là ASP.NET. Đây thực sự là một bước nhảy vượt bậc của ASP cả về phương diện tinh tế lẫn hiệu quả cho các developers. Nó tiếp tục cung cấp khả năng linh động về mặt hỗ trợ ngôn ngữ, nhưng hơn hẳn về mặt lĩnh vực ngôn ngữ script vốn đã trở nên hoàn thiện và trở thành ngôn ngữ cơ bản của các developers. Việc phát triển trong ASP.NET không chỉ yêu cầu hiểu biết về HTML và thiết kế web mà còn khả năng nắm bắt những khái niệm của lập trình và phát triển hướng đối tượng. ASP.NET là một kỹ thuật phía server (server-side) dành cho việc thiết kế các ứng dụng web trên môi trường .NET. ASP.NET là một kỹ thuật server-side. Hầu hết những web designers bắt đầu sự nghiệp của họ bằng việc học các kỷ thuật client-side như HTML, JavaScript và Cascading Style Sheets (CSS). Khi một trình duyệt web yêu cầu một trang web được tạo ra bởi các kỷ thuật client-side, web server đơn giản lấy các files mà được yêu cầu và gửi chúng xuống. Phía client chịu trách nhiệm hoàn toàn trong việc đọc các định dạng trong các files này và biên dịch chúng và xuất ra màn hình. Với kỹ thuật server-side như ASP.NET thì hoàn toàn khác, thay vì việc biên dịch từ phía client, các đoạn mã server-side sẽ được biên dịch bởi web server. Trong trường hợp này, các đoạn mã sẽ được đọc bởi server và dùng để phát sinh ra HTML, JavaScript và CSS để gửi cho trình duyệt. Chính vì việc xử lý mã xảy ra trên server nên nó được gọi là kỹ thuật server-side. ASP là một kỹ thuật dành cho việc phát triển các ứng dụng web. Một ứng dụng web đơn giản chỉ các trang web động. Các ứng dụng thường được lưu trữ thông tin trong database và cho phép khách truy cập có thể truy xuất và thay đổi thông tin. Nhiều kỹ thuật và ngôn ngữ lập trình khác cũng đã được phát triển để tạo ra các ứng dụng web như PHP, JSP, Ruby on Rails, CGI và ColdFusion. Tuy nhiên thay vì trói buộc bạn vào một ngôn ngữ và một công nghệ nhất định, ASP.NET cho phép bạn viết ứng dụng web bằng các loại ngôn ngữ lập trình quen thuộc khác nhau. ASP.NET sử dụng .NET Framework, .NET Framework là sự tổng hợp tất các các kỷ thuật cần thiết cho việc xây dựng một ứng dụng nền desktop, ứng dụng web, web services…. thành một gói duy nhất nhằm tạo ra cho chúng khả năng giao tiếp với hơn 40 ngôn ngữ lập trình. Thậm chí với những sự lý giải kỹ càng như vậy, bạn vẫn ngạc nhiên tự hỏi điều gì làm nên một ASP.NET tốt như vậy. Sự thật là có rất nhiều kỹ thuật server-side với điểm mạnh và điểm yếu riêng nhưng ASP.NET có những tính năng gần như là duy nhất. ASP cho phép bạn sử dụng ngôn ngữ lập trình mà bạn ưa thích hoặc gần gủi với chúng. Hiện tại, thì .NET Framework hỗ trợ trên 40 ngôn ngữ lập trình khác nhau mà đa phần đều có thể được sử dụng để xây dựng nên những web sites ASP.NET. Chẳng hạn như C# (C sharp) và Visual Basic. ASP đã cả khả năng toàn quyền truy xuất tới các chức năng của .NET Framework. Hỗ trợ XML, web services, giao tiếp với CSDL, email… và rất nhiều các kỹ thuật khác được tích hợp vào .NET, giúp bạn tiết kiệm được công sức. ASP cho phép bạn phân chia các đoạn mã server-side và HTML. Khi bạn phải làm việc với cả đội ngũ lập trình và thiết kế, sự tách biệt này cho phép các lập trình viên chỉnh sửa server-side code mà không cần dính dáng gì tới đội ngũ thiết kế. ASP giúp cho việc tái sử dụng những yếu tố giao diện người dùng trong nhiều web form vì nó cho phép chúng ta lưu các thành phần này một cách độc lập. Bạn có được một công cụ tuyệt vời hỗ trợ phát triển các ứng dụng ASP.NET hoàn toàn miễn phí, đó là Visual Web Developer, một trình soạn thảo trực quan mạnh mẽ có tính năng Code Autocompletion, Code Format, Database Integration Functionality, Visual HTML editor, Debugging… * C# C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch .NET của họ. Tên của ngôn ngữ bao gồm ký tự thăng theo Microsoft nhưng theo ECMA là C#, chỉ bao gồm dấu số thường. Microsoft phát triển C# dựa trên C++ và Java. C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java. C# được thiết kế chủ yếu bởi Anders Hejlsberg kiến trúc sư phần mềm nổi tiếng với các sản phẩm Turbo Pascal, Delphi, J++, WFC. * IIS IIS được đính kèm với các phiên bản của Windows. Microsoft Internet Information Services (các dịch vụ cung cấp thông tin Internet) là các dịch vụ dành cho máy chủ chạy trên nền Hệ điều hành Window nhằm cung cấp và phân tán các thông tin lên mạng, nó bao gồm nhiều dịch vụ khác nhau như Web Server, FTP Server,… Nó có thể được sử dụng để xuất bản nội dung của các trang Web lên Internet/Intranet bằng việc sử dụng “Phương thức chuyển giao siêu văn bản” - Hypertext Transport Protocol (HTTP). Như vậy, sau khi bạn thiết kế xong các trang Web của mình, nếu bạn muốn đưa chúng lên mạng để mọi người có thể truy cập và xem chúng thì bạn phải nhờ đến một Web Server, ở đây là IIS. Nếu không thì trang Web của bạn chỉ có thể được xem trên chính máy của bạn hoặc thông qua việc chia sẻ tệp (file sharing) như các tệp bất kỳ trong mạng nội bộ mà thôi. Nhiệm vụ của IIS là tiếp nhận yêu cầu của máy trạm và đáp ứng lại yêu cầu đó bằng cách gửi về máy trạm những thông tin mà máy trạm yêu cầu. Bạn có thể sử dụng IIS để: Xuất bản một Website của bạn trên Internet. Tạo các giao dịch thương mại điện tử trên Internet (hiện các catalog và nhận được các đơn đặt hàng từ nguời tiêu dùng). Chia sẻ file dữ liệu thông qua giao thức FTP. Cho phép người ở xa có thể truy xuất database của bạn (gọi là Database remote access)... * SQL SERVER SQL Server là một hệ thống quản lý cơ sở dữ liệu (Relational Database Management System (RDBMS) sử dụng Transact-SQL để trao đổi dữ liệu giữa Client computer và SQL Server computer. Một RDBMS bao gồm databases, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong hệ thống quản lý cơ sở dữ liệu. SQL Server được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user. Chương 2: Phân tích thiết kế hệ thống 2.1 Phân tích ứng dụng 2.1.1 Các đơn thể của ứng dụng Hình 1. Sơ đồ hoạt động Tìm kiếm Hình 2. Sơ đồ hoạt động Thêm sản phẩm vào giỏ hàng Hình 3. Sơ đồ hoạt động Thanh toán Hình 4. Sơ đồ hoạt động Tiến trình xóa các giỏ hàng bị bỏ Hình 5. Sơ đồ hoạt động đăng ký tài khoản Hình 6. Use case cho Ứng dụng EndUser Người dùng có thể là khách hàng hay người quản trị Lớp EndUser chứa các thông tin của người dùng Vai trò người dùng được xác định bởi thuộc tính EndUserTypeID EndUserType Lớp EndUserType dùng để phân loại người dùng. Address Lớp Address là lớp dùng để chứa các thông tin địa chỉ Được kết hợp với các lớp khác cần địa chỉ. ContactInformation Lớp ContactInformation chứa thông tin liên lạc cho mỗi cá nhân, công ty hay người dùng. Product Lớp Product là lớp chính được sử dụng xuyên suốt trong hệ thống TMĐT Miêu tả thông tin chi tiết của các hàng hóa ProductCategory Lớp ProductCategory danh mục hàng hóa, tương tự như lớp EndUserType là bảng tham chiếu (lookup table) để miêu tả cho mỗi hàng hóa. ShoppingCart Lớp ShoppingCart là giỏ hàng trong ứng dụng. Thể hiện các sản phẩm được thêm vào giỏ hàng trong khi khách hàng mua hàng tại trang web. Orders Chứa các thông tin của một đơn đặt hàng. Đơn đặt hàng được thực hiện bởi khách hàng sau khi thanh toán giỏ hàng. Lớp Orders sẽ có một hay nhiều sản phẩm (được thể hiện ở lớp OrderDetails) OrderDetails Mỗi đơn đặt hàng sẽ bao gồm một hay nhiều sản phẩm. Mỗi lớp OrderDetails liên kết đến một sản phẩm. CreditCard Lớp CreditCard chứa các thông tin của thẻ tín dụng. Không lưu thông tin thẻ tín dụng vào CSDL, mà chỉ dùng lớp này để truyền thông tin bên trong ứng dụng. 2.1.2 Thiết kế cơ sở dữ liệu 2.1.2.1 Tạo Cơ sở dữ liệu Cở sở dữ liệu là PNJSilver gồm 11 bảng: Bảng Products Bảng ProductCategory Bảng ProductImages Bảng Orders Bảng OrderDetails Bảng OrderStatus Bảng EndUser Bảng EndUserType Bảng Address Bảng ContactInformation 2.1.2.2 Các bảng dữ liệu của ứng dụng Bảng Products Hình 1: Bảng Products Bảng ProductCategory Hình 2: Bảng ProductCategory Bảng ProductImages Hình 3: Bảng ProductImages Bảng Orders Hình 4: Bảng Orders Bảng OrderDetails Hình 5: Bảng Bảng OrderDetails Bảng OrderStatus Hình 6: Bảng OrderStatus Bảng EndUser Hình 7: Bảng EndUser Bảng EndUserType Hình 8: Bảng EndUserType Bảng Address Hình 9: Bảng EndUserType Bảng ContactInformation Hình 10: Bảng ContactInformation Bảng ShoppingCart Hình 11: Bảng ShoppingCart 2.1.2.3 Tạo quan hệ Các quan hệ của bảng OrderDetails Hình 12: Các quan hệ của bảng OrderDetails Các quan hệ của bảng Orders Hình 13: Các quan hệ của bảng Orders Các quan hệ của bảng EndUser Hình 14: Các quan hệ của bảng EndUser Các quan hệ của bảng Products Hình 15: Các quan hệ của bảng Products Các quan hệ của bảng ShoppingCart Hình 16: Các quan hệ của bảng ShoppingCart 2.2 Kiến trúc của hệ thống Trong phát triển ứng dụng, để dễ quản lý các thành phần của hệ thống, cũng như không bị ảnh hưởng bởi các thay đổi, người ta hay nhóm các thành phần có cùng chức năng lại với nhau và phân chia trách nhiệm cho từng nhóm để công việc không bị chồng chéo và ảnh hưởng lẫn nhau. Trong phát triển phần mềm, người ta cũng áp dụng cách phân chia chức năng này. Bạn sẽ nghe nói đến thuật ngữ kiến trúc đa tầng/nhiều lớp, mỗi lớp sẽ thực hiện một chức năng nào đó, trong đó mô hình 3 lớp là phổ biến nhất đó là lớp Presentation, Business Logic, và Data Access. Các lớp này sẽ giao tiếp với nhau thông qua các dịch vụ(services) mà mỗi lớp cung cấp để tạo nên ứng dụng, lớp này cũng không cần biết bên trong lớp kia làm gì mà chỉ cần biết lớp kia cung cấp dịch vụ gì cho mình và sử dụng nó mà thôi. Giới thiệu về tầng trình bày (Presentation Layer) Lớp này làm nhiệm vụ giao tiếp với người dùng cuối để thu thập dữ liệu và hiển thị kết quả/dữ liệu thông qua các thành phần trong giao diện người sử dụng. Lớp này sẽ sử dụng các dịch vụ do lớp Business Logic cung cấp. Presentation Layer của hệ thống là tất cả những gì hiện thị đến người dùng. Trong Presentation Layer chứa các nội dung trang HTML và điều kiển trình chủ (server control). Giới thiệu về tầng truy cập dữ liệu (Data Access Layer) Lớp này thực hiện các nghiệp vụ liên quan đến lưu trữ và truy xuất dữ liệu của ứng dụng. Thường lớp này sẽ sử dụng các dịch vụ của các hệ quản trị cơ sở dữ liệu như SQL Server, Oracle,... để thực hiện nhiệm vụ của mình. Ứng dụng cần phải tương tác với một số dữ liệu. Data access layer sẽ thực thi các thao tác dữ liệu này. Giới thiệu về tầng logic (Business Logic Layer) Business logic layer thực thi các luật nghiệp vụ (business rules) Lớp này thực hiện các nghiệp vụ chính của hệ thống, sử dụng các dịch vụ do lớp Data Access cung cấp, và cung cấp các dịch vụ cho lớp Presentation. Lớp này cũng có thể sử dụng các dịch vụ của các nhà cung cấp thứ 3 (3rd parties) để thực hiện công việc của mình Là cầu nối giữa Presentation layer và Data access layer. Chương 3. Xây dựng ứng dụng 3.1 Xây dựng các đối tượng dùng chung (Common Objects) Tạo các lớp dùng chung của ứng dụng. Common Objects có vai trò miêu tả các đối tượng nghiệp vụ trong hệ thống, và là đối tượng được dùng để truyền thông tin qua các tầng của hệ thống. Tạo một lớp mới và đặt tên cho lớp mới này là EndUser sau đó khai báo public, hàm tạo và thuộc tính (property) EndUserID cho lớp này. Tạo lớp mới tên EndUserType cho project này, khai báo public và thêm hàm tạo. Thêm field _endusertypeid. Tiếp theo sử dụng tính năng refactoring để tạo property một cách tự động. LớpProduct Lớp ProductCategory Lớp Orders Lớp OrderDetail Lớp Address Lớp ContactInformation Lớp ShoppingCart Lớp CreditCard Lớp Enums là lớp chứa kiểu liệt kê loại người dùng. 3.2 Xây dựng tầng truy cập dữ liệu Lớp SQLHelper: chứa các phương thức thực thi csdl, nó tự động quản lý các kết nối (connection), tham số (parameter), và tên của stored procedure. Thêm file SQLHelper.cs vào project PNJSilver.DataAccess. Tạo lớp DataBaseHelper: Lớp DataBaseHelper được thêm vào data access layer, lớp này sử dụng các hàm của lớp SQLHelper để thực thi các xử lý liên quan đến CSDL. Sau đó khai báo các namespaces System.Data, System.Data.SqlClient, và Microsoft.ApplicationBlocks.Data, khai báo public cho lớp và thêm các trường (field): tên stored procedure và mảng SqlParameter (đây là mảng chứa các tham số tương ứng của stored procedure). Thực hiện lấy giá trị Connection String từ file Web.config. Trước tiên ta thêm tham chiếu (reference) cho project PNJSilver.DataAccess. Tham chiếu đó là thư viện System.Configuration của Framework Library. Sau đó thêm khai báo namespace: System.Configuration và thêm thuộc tính ConnectionString (đây là thuộc tính chỉ đọc) cho lớp DataBaseHelper Các hàm chức năng xử lý csdl của lớp DataBaseHelper: + Thêm 2 hàm tạo: một hàm có tham số là tên stored procedure, hàm còn lại có tham số là tên stored procedure và mảng các tham số của stored procedure. + Thêm 2 phương thức quá tải Run. Hai phương thức này khác nhau là phương thức thứ hai thực hiện theo transaction. + Thêm hai phương thức quá tải RunScalar. Hai phương thức này trả về giá trị vô hướng và khác nhau là phương thức thứ hai thực hiện theo transaction. + Thêm phương thức RunReader. Phương thức này trả về giá trị là SqlDataReader + Thêm phương thức RunDataSet. Phương thức này trả về giá trị là DataSet Thực hiện Connection String Ở phần này ta thêm file Web.config vào web project và thêm connection string vào file Web.config. Bên trong file Web.config, thay đổi tag connectionStrings (giá trị connectionString phụ thuộc vào SQL Server cài trên máy thực hành). Tạo lớp DataAccessBase: chứa các thành phần chung cần thiết cho các lớp thực thi chức năng truy cập csdl, vì vậy các lớp thực thi chức năng data access thì sẽ kế thừa từ lớp này. Khai báo public cho lớp, thêm field _storedprocedurename và property StoredProcedureName tương ứng. Tạo lớp StoreProcedure: là nơi khai báo các stored procedure được sử dụng bởi các lớp truy cập cơ sở dữ liệu của tầng data access layer, sau đó thêm kiểu liệt kê (enumeration) tên là Name cho lớp này, khi cần sử dụng stored procedure nào ta sẽ khai báo tên của mỗi stored procedure vào kiểu liệt kê Name. 3.3 Xây dựng tầng logic Tạo interface IBusinessLogic, interface này khai báo phương thức chung cho tất cả các lớp thực hiện nghiệp vụ của tầng business logic layer. Tiếp theo thêm khai báo các method hay property cần thiết. Thêm lớp mới tên ProcessGetProducts (lớp này có chức năng lấy tất cả các sản phẩm) khai báo public và thực thi interface IBusinessLogic và chỉ định lớp ProcessGetProducts sẽ thực hiện interface IBusinessLogic. Thực hiện tầng Business Logic Layer sử dụng tầng Data Access Layer. Tạo một forder mới đặt tên là Select. Thư mục này sẽ cung cấp thêm namespace PNJsilver.DataAccess.Select cho các lớp chứa trong nó. Sau khi thêm thư mục Select, ta có thể thêm các lớp data access thực hiện truy vấn select cơ sở dữ liệu trong thư mục này. Trong thư mục Select thêm lớp ProductSelectByIDData (lớp này có chức năng lấy một sản phẩm dựa vào ID của sản phẩm). Ta có lớp đầu tiên trong thư mục Select, lớp này cần sử dụng common object vì vậy ta cần tham chiếu đến project PNJSilver.Common. Sau đó ta khai báo namespace của common object trong lớp ProductSelectByIDData. Ngoài ra ta cũng cần chỉ định public cho lớp ProductSelectByIDData và kế thừa lớp DataAccessBase, tạo field và property cho common object Product, ta không khởi tạo thuộc tính Product vì nó sẽ được khởi tạo ở tầng Presentation Layer và được truyền vào lớp ProductSelectByIDData thông qua property Product. Property Product được dùng để truy vấn csdl. Để thật sự truy vấn csdl ta cần thực hiện thêm mã chương trình (code). Mã thực thi này sẽ sử dụng lớp SQLHelper, nhưng trước tiên cho ta cần thêm namespace và thêm phương thức Get trả về DataSet trong lớp ProductSelectByIDData. Ta cần chỉ định tên của stored procedure được sử dụng để truy vấn csdl bằng cách tại lớp StoredProcedure thêm tên stored procedure cho kiểu liệt kê Name là ProductByID_Select (stored procedure này sẽ được tạo trong cơ sở dữ liệu) và ta cần chỉ định tên StoredProcedure trong hàm tạo của lớp ProductSelectByIDData. Sau đó thêm vào một lớp mới bên cạnh lớp ProductSelectByIDData tên là ProductSelectByIDDataParameters. Lớp ProductSelectByIDDataParameters này có chức năng xây dựng các parameter tương ứng của stored procedure mà lớp ProductSelectByIDData sử dụng. Trong lớp này có một tập các SQL parameter được tạo ra trong phương thức Build() và phương thức Build() này được gọi trong hàm tạo. Và giá trị cho các parameter này được lấy từ lớp common object Product. Lớp Product sẽ được truyền theo hàm tạo và sau đó được gán vào cho property tương ứng. Cuối cùng trong lớp ProductSelectByIDData là thêm vào mã thực thi sử dụng lớp DataBaseHelper và trả về DataSet tương ứng với product được chỉ định bởi ID. Tại project PNJSilver.BusinessLogic ta thêm tham chiếu đến 2 project: common objects project và data access project. Tạo lớp ProcessGetProductByID cho project PNJSilver.BusinessLogic. Lớp ProcessGetProductByID này sẽ sử dụng lớp ProductSelectByIDData của project PNJSilver.DataAccess (tầng data access layer). Sau khi thêm lớp mới này, ta cần thực hiện một số thay đổi như khai báo namespace và thực hiện interface IBusinessLogic, và thực hiện interface IBusinessLogic với phương thức Invoke(), trong phương thức này ta gọi lớp ProductSelectByIDData trong tầng data access. Còn đối tượng dùng chung Product sẽ được khởi tạo bên trong tầng Presentation Layer với product ID tương ứng. Product này được truyền theo tuần tự từ lớp của tầng business logic và sau đó được truyền đến lớp của tầng data access. Cuối cùng một DataSet được trả về từ csdl, và DataSet này sẽ được sử dụng ở tầng presentation để gán cho một đối tượng hiển thị nào đó. 3.4 Xây dựng tầng trình bày dữ liệu Trang Main.Master để tạo khung giao diện cho website Trang Default.aspx để dùng giới thiệu công ty PNJSilver Trang Sanpham.aspx để dùng hiển thị danh mục các sản phẩm Trang Dichvu.aspx cung cấp một số thông tin về các dịch vụ của công ty cho khách hàng. Trang Tuvan.aspx để dùng liệt kê các câu hỏi thường gặp của khách hàng. Trang Lienhe.aspx cho phép khách hàng gửi các thông tin phản hồi. Trang ErrorPage.aspx là nơi nắm bắt các lỗi của ứng dụng và thông báo đến người dùng khi có lỗi xảy ra. 3.5 Xây dựng phần danh mục sản phẩm Tạo stored procedure Products_Select để truy vấn tất cả các sản phẩm trong Databaes. Thêm tên mới của stored procedure vừa tạo trong lớp StoredProcedure ở tầng Data Access Layer. Tạo lớp ProductSelectData sau đó khai báo public, namespace System.Data, kế thừa lớp DataAccessBase, và chỉ định tên stored procedure trong hàm tạo Thực hiện code cho tầng Business Logic Layer: trước tiên thêm khai báo namespace System.Data, PNJSilver.DataAccess.Select và thêm property lưu DataSet được trả về bên trong hàm Invoke. Property này sẽ được sử dụng ở tầng presentation. Ở trong hàm Invoke sẽ khởi tạo lớp ProductSelectData từ tầng data access, và gọi hàm Get của lớp này. Sau đó gán kết quả trả về cho property ResultSet. Tạo trang ImageViewer.ashx để hiển thị hình ảnh của mỗi sản phẩm. Sau đó tạo stored procedure ProductImage_Select để lấy hình ảnh tương ứng của sản phẩm. Tại project PNJSilver.DataAccess thực hiện : khai báo stored procedure ProductImage_Select trong lớp StroredProcedure và tạo lớp ProductImageSelectByIDData.cs trong thư mục Select. Tại project PNJSilver.BusinessLogic, thêm lớp mới tên ProcessGetProductImage. 3.6 Xây dựng chức năng giỏ hàng Tạo stored procedure cho csdl. Stored procedure này là ShoppingCart_Insert, tiếp theo thực hiện mã cho tầng data access layer. Tại project PNJSilver.DataAccess trước khi thêm lớp thực thi stored procedure ShoppingCart_Insert, ta tạo thư mục tên Insert. Tạo lớp mới tên là ShoppingCartInsertData trong thư mục Insert, khai báo tên stored procedure ShoppingCart_Insert trong lớp StoredProcedure. Thực hiện chỉnh sửa lớp ShoppingCartInsertData: thêm chỉ định public cho lớp, thừa kế từ lớp DataAccessBase, thêm khai báo 3 namespace System.Data, System.Data.SqlClient, PNJSilver.Common và chỉ định tên stored procedure sẽ được sử dụng đó là ShoppingCart_Insert. Thêm khai báo field và property của đối tượng dùng chung (common object) được sử dụng trong lớp. Tiếp tục thêm phương thức nhằm insert giá trị vào table ShoppingCart và lớp ShoppingCartInsertDataParameters nhằm xây dựng các parameter cần thiết cho stored procedure. Tại project PNJSilver.BusinessLogic, thêm lớp mới có tên là ProcessAddShoppingCart. Bước tiếp theo là tầng Presentation Layer. Tại web porject ta thêm trang AddToCart.aspx. Trang này ta bỏ đi phần nội dung chỉ giữ lại phần khai báo. Mã cho trang này dựa vào trường hợp lấy thông tin shopping cart ID (là kiểu GUID) được lưu trong cookie của máy khách hàng. Nếu không có thông tin shopping cart ID này thì sẽ tạo lại trên máy khách hàng. Chức năng tạo và lấy cookie trên máy khách hàng nhờ vào hàm GetCartGUID() của lớp Utilities trong project PNJSilver.Operational. Vì mã thực thi ở trên có sử dụng lớp Utilities trong project PNJSilver.Operational, nên tại web project ta cần thêm tham chiếu đến project PNJSilver.Operational. Tạo trang giỏ hàng (Shopping Cart) trang này giúp hiển thị giỏ hàng. Tạo stored procedure truy vấn table ShoppingCart để hiển thị các mặt hàng đã thêm vào giỏ hàng dựa vào cart ID. Thực hiện tầng data access layer: tại project PNJSilver.DataAccess ta thực hiện: tại lớp StoredProcedure thêm khai báo stored procedure ShoppingCart_Select, tại thư mục Select thêm file lớp ShoppingCartSelectData.cs Thực hiện tầng business logic layer: tại project PNJsilver.BusinessLogic thêm lớp ProcessGetShoppingCart. Thực hiện tầng Presentation Layer: thêm trang ShoppingCart.aspx với master page là Main.master Sau đó tiếp tục thực hiện tính tổng giá trị các sản phẩm được thêm vào giỏ hàng, giá trị này được hiển thị bởi control labelTotal. Để thực hiện điều này, ta cần lặp qua control GridView khi control này phát sinh sự kiện đang thực hiện gán dữ liệu (data bound). Trong quá trình gán dữ liệu ta thực hiện tính tổng giá trị của giỏ hàng. Thực hiện chức năng cập nhật giỏ hàng (Shopping Cart) sẽ cho phép khách hàng cập nhật giỏ hàng của mình. Cập nhật bao gồm: xóa các mặt hàng trong giỏ hàng và cập nhật số lượng các mặt hàng trong giỏ hàng. Tạo 2 stored procedure: một stored procedure cập nhật số lượng của hàng hóa trong giỏ hàng, một stored procedure xóa hàng từ giỏ hàng Thực hiện tầng data access layer tại project PNJSilver.DataAccess, khai báo tên 2 stored procedure mới tạo ở trên trong lớp StoredProcedure. Tại project PNJSilver.DataAccess tạo thư mục Update, sau đó tạo lớp ShoppingCartUpdateData. Tương tự tạo lớp ShoppingCartDeleteData trong thư mục Delete. Thực hiện tầng business logic layer: sau khi hoàn thành mã cho data access layer, ta tiếp tục với tầng business logic layer, lần lượt thêm 2 lớp cho 2 chức năng update và delete vừa tạo ở trên cho project PNJSilver.BusinessLogic. Tên lớp cho chức năng update là ProcessUpdateShoppingCart, và tên cho chức năng delete là ProcessDeleteShoppingCart Thực hiện tầng Presentation Layer: dể hoàn thành chức năng update và delete của giỏ hàng, ta tiếp tục thực hiện tầng Presentation Layer. Quay về lại trang ShoppingCart.aspx trong web project, thêm 2 giá trị khác nhau cho thuộc tính DataKeyNames của GridView, hai giá trị được thêm vào thuộc tính DataKeyNames là Quantity và ShoppingCartID Xóa bỏ các giỏ hàng quá hạn: chỉ tác động đến csdl. Tạo stored procedure để xóa các giỏ hàng quá hạn trong table ShoppingCart. Stored procedure đó là ShoppingCart_DeleteAbandoned. Sau khi tạo stored procedure trên, ta cần thực hiện thêm một vài tác vụ đối với SQL Server 3.7 Thực hiện xử lý thanh toán Tạo trang đăng nhập khách hàng: tạo trang Dangnhap.aspx với master page là Main.master. Trước khi cho khách hàng login vào trang web, ta phải cho phép khách hàng tạo được account thông qua trang Dangky.aspx. Tạo trang đăng ký account cho khách hàng mới. Tạo stored procedure cho phép tạo account mới, vì stored procedure này sẽ thêm thông tin cho 3 bảng EndUser, Address và ContactInformatio. Vì vậy ở đây chúng ta cần sử dụng transaction. Sau khi tạo xong stored procedure, ta tiếp tục với data access layer. Tại project PNJSilver.DataAccess è lớp StoredProcedure: ta khai báo stored procedure EndUser_Insert và thêm lớp EndUserInsertData trong thư mục Insert. Tiếp theo thực hiện business logic layer.Tại project PNJSilver.BusinessLogic thêm lớp ProcessAddEndUser Tiếp theo thực hiện business logic layer.Tại project PNJSilver.BusinessLogic thêm lớp ProcessAddEndUser Tiếp tục tạo lớp BasePage trong web project lớp này có chức năng lưu trữ thông tin khách hàng vừa login, và nếu trang nào cần lấy thông tin khách hàng login vào web site thì có thể kế thừa lớp này. File lớp BasePage.cs khi được tạo ra sẽ tự động được đưa vào thư mục App_Code của web project. Thực hiện chức năng đăng nhập khách hàng: tạo stored procedure EndUserLogin_Select Thực hiện tầng data access layer: tại project PNJSilver.DataAccess: thêm khai báo stored procedure EndUserLogin_Select cho lớp StoredProcedure, tạo lớp file lớp EndUserLoginSelectData.cs bao gồm 2 lớp EndUserLoginSelectData và EndUserLoginSelectDataParameters trong thư mục Select Thực hiện tầng business logic layer tại project PNJSilver.BusinessLogic, thêm lớp ProcessEndUserLogin Thực hiện chức năng lấy Address và ContactInformation. Trước khi thực hiện chức năng login, ta cần xây dựng chức năng lấy Address và ContactInformation của EndUser tương ứng. Ta sẽ thực hiện các bước như sau: tạo 2 stored procedure để lấy Address và ContactInformation như sau, sau đó lần lượt xây dựng tầng data access layer và business logic layer cho 2 stored procedure này. Thực hiện tầng business logic layer cho 2 stored procedure trên, tại PNJSilver.BusinessLogic tạo lớp ProcessGetAddress ,ProcessGetContactInformation Tạo trang đặt hàng:thực hiện stored procedure Order_Insert và OrderDetails_Insert Thực hiện tầng data access layer cho 2 stored procedure trên. Tại project PNJSIlver.DataAccess: khai báo 2 stored procedure Order_Insert và OrderDetails_Insert trong lớp StoredProcedure, thêm 2 file lớp OrderInsertData.cs và OrderDetailsInsertData.cs vào thư mục Insert. Tạo thư mục Transaction. Trong thư mục Transaction, tạo lớp TransactionBase và lớp OrderInsertTransaction kế thừa từ lớp TransactionBase. Lớp OrderInsertTransaction sẽ sử dụng 2 lớp OrderInsertData và OrderDetailsInsertData trong 1 transaction để thực thi thêm một đơn đặt hàng vào database. Thực hiện tầng business logic layer. Tại project PNJSilver.BusinessLogic, thêm lớp ProcessAddOrder, lớp này sẽ sử dụng lớp OrderInsertTransaction trong tầng data access layer để thực thi logic nghiệp vụ. Thực hiện tầng Presentation Layer tại web project thêm trang AddOrders.aspx 3.8 Xây dựng phân hệ điều khiển hệ thống Thực hiện tính năng Admin: tại web project, thêm thư mục Admin Ta thêm một file Web.config khác trong thư mục Admin. Trong file Web.config mới, ta thêm phần mã chỉ định rằng các trang trong thư mục Admin sẽ không truy cập vào được trừ khi người dùng được xác định là có quyền truy cập vào. Tại thư mục Admin, thêm file master page Admin2.master Tạo trang đăng nhập người quản trị: tạo stored procedure AdminLogin_Select. Thực hiện tầng data access layer: tại project PNJSilver.DataAccess: khai báo stored procedure AdminLogin_Select cho lớp StoredProcedure, thêm file lớp AdminLoginSelectData.cs vào thư mục Select Thực hiện tầng business logic layer: tại project PNJSilver.BusinessLogic, thêm lớp ProcessAdminLogin Thực hiện tầng Presentation Layer: tại web project è thư mục Admin, thêm file Dangnhap.aspx, file này không kết hợp với file master page Tạo trang liệt kê các sản phẩm: tại đây ta không cần thực hiện stored procedure, các lớp cho tầng data access layer hay business logic layer. Tai web project è thư mục Admin, tạo trang Products.aspx trong thư mục Admin với master page là Admin2.master. Tạo trang thêm sản phẩm mới: tạo stored procedure Product_Insert Thực hiện tầng data access layer: tại project PNJSilver.DataAccess: khai báo stored procedure Product_Insert trong lớp StoredProcedure, và tạo file lớp ProductInsertData.cs trong thư mục Insert. Thực hiện tầng business logic layer: tại project PNJSilver.BusinessLogic, thêm lớp ProcessAddProduct Thực hiện chức năng lấy các danh mục sản phẩm: vì mỗi sản phẩm thuộc một danh mục Product Category nên ta thực hiện chức năng lấy danh mục sản phẩm, Thực hiện tầng Presentation Layer: tại web project: thêm trang AddProduct.aspx trong thư mục Admin với master page là Admin2.master. Tạo trang cập nhật sản phẩm: tạo stored procedure Product_Update Khi cập nhật một sản phẩm mới, thì thông tin cập nhật nằm trên hai table, đó là table Products và ProductImages. Vì vậy ta sử dụng một transaction trong stored procedure trên. Thực hiện tầng data access layer:tại project PNJSilver.DataAccess: khai báo stored procedure Product_Update trong lớp StoreProcedure, và thêm lớp ProductUpdateData trong thư mục Update Thực hiện tầng business logic layer:tại project PNJSilver.BusinessLogic, thêm lớp ProcessUpdateProduct Thực hiện tầng Presentation Layer: web project, thêm trang EditProduct.aspx trong thư mục Admin với trang master là Admin2.master Tạo trang liệt kê các đơn đặt hàng: tạo stored procedure OrdersAll_Select lấy tất cả các đơn hàng. Thực hiện tầng data access layer: tại project PNJSilver.DataAccess: thêm khai báo stored procedure OrdersAll_Select trong lớp StoredProcedure, thêm lớp OrdersAllSelectData trong thư mục Select. Thực hiện tầng business logic layer:tại project PNJsilver.BusinessLogic, thêm lớp ProcessGetAllOrders. Thực hiện tầng Presentation Layer: tại web project è thư mục Admin, thêm trang Orders.aspx với master page là Admin2.master Tạo trang xem chi tiết một đơn đặt hàng: ta tạo 2 stored procedure là: stored procedure OrderStatus_Select để lấy tất cả các danh mục tình trạng đơn đặt hàng, OrdersByID_Select lấy thông tin một đơn đặt hàng theo ID tương ứng. Thực hiện tầng data access layer:tại project PNJSilver.DataAccess, khai báo 2 stored procedure OrderStatus_Select và OrdersByID_Select trong lớp StoredProcedure. Và thêm 2 lớp OrderStatusSelectData và OrderSelectByIDData thực hiện 2 stored procedure trên trong thự mục Select. Thực hiện tầng business logic layer:tại project PNJSilver.BusinessLogic, thêm 2 lớp ProcessGetOrderStatus và ProcessGetOrderByID thực hiện 2 lớp data access trên. Thực hiện tầng Presentation Layer:tại web project è thư mục Admin, tạo trang OrderDetails.aspx với master page là Admin2.master Thực hiện chức năng cập nhật chi tiết một đơn đặt hàng: ta tạo stored procedure Orders_Update để cập nhật thông tin của một đơn hàng. Thực hiện tầng data access layer:tại project PNJSilver.DataAccess: khai báo stored procedure Orders_Update trong lớp StoredProcedure, thêm lớp OrderUpdateData trong thư mục Update. Thực hiện tầng business logic layer:tại project PNJSilver.BusinessLogic, thêm lớp ProcessUpdateOrder Chương 4. Demo ứng dụng 4.1 Giới thiệu cấu trúc Folder của ứng dụng Images: chứa tất cả những hình ảnh đưa vào trang HTML để thiết kế các trang web. Folder này cũng có thể bổ sung các folder con để chứa các hình ảnh cụ thể hoặc các nhóm hình ảnh. Scripts: chứa các tập tin JavaScript (*. Js ). Những tập tin này sẽ có các chức năng JavaScript cần thiết được sử dụng trong các ứng dụng web. CSS: tên của folder CSS là viết tắt cho cascading style sheet. Folder này chứa các tập tin định dạng phong cách trang (các tập tin *. Css). Mỗi trang web có thể liên kết với style sheets nằm trong folder CSS này. Admin: chứa tất cả các trang web của phân hệ người quản trị (administrative section). Các thành phần này sẽ được mật khẩu bảo vệ. Cho phép người quản trị (administrator) có quyền truy cập vào và thay đổi thông tin trong web site như: thêm sản phẩm, cập nhật thông tin giá cả hay quản lý các đơn đặt hàng được thực hiện bởi các khách hàng 4.2 Giới thiệu các màn hình Demo Giao diện trang chủ Giao diện trang sản phẩm Giao diện trang dịch vụ Giao diện trang tư vấn Giao diện trang liên hệ Giao diện thêm sản phẩm vào giỏ hàng Giao diện xác nhận đơn đặt hàng Giao diện tạo một tài khoản mới Giao diện trang Products trong Forder Admin Giao diện xem đơn đặt hàng Chương 5: Kết luận và hướng đề tài 5.1 Kết luận (những việc đã làm) Với đồ án này, chúng em đã hoàn thành các yêu cầu đặt ra, bao gồm: Giao diện: thiết kế trên Photoshop và sử dụng kỹ thuật tạo hình ảnh động Flash cho trang chủ, tăng tính thẩm mỹ và tạo tính sống động, thu hút người xem viếng thăm trang web. Hiển thị nội dung các sản phẩm. Cho phép khách hàng đặt hàng trực truyến trên website, ứng với sản phẩm được chọn. Quản trị cho phép việc thêm mới, hiệu chỉnh, xóa bỏ các sản phẩm. Quản lý đơn đặt chỗ (bao gồm các phần thêm, xóa, sửa thông tin khách hàng và đơn đặt chỗ). Thực hiện việc upload file, phục vụ cho thao tác cập nhật ảnh trong quản lý sản phẩm. Và việc cập nhật ảnh này được thực hiện 1 lần ngay khi người quản trị cập nhật thông tin cho sản phẩm. Quản lý phân quyền người quản trị cho các cấp quyền quy định (thêm, xóa, sửa người quản trị, phân biệt nhau bởi username) 5.2 Hướng đề tài Bổ sung và hoàn thiện thêm giao diện người dùng: Thiết kế và lập trình thêm một số chức năng khác phục vụ, thu hút khách hàng đến với website. Chẳng hạn, đưa thêm các trang: Tin tức & Sự kiện: đưa các thông tin mang tính chất thời sự có liên quan đến hoạt động của công ty, các thông tin nổi bật về du lịch trong và ngoài nước… Chỉnh sửa và hoàn thiện thêm các trang template để tránh trường hợp website bị hụt khi khách hàng mở trên các màn hình có độ phân giải lớn hơn 600 x 800 pixels. Có thể thiết kế thêm một số trang chủ dưới dạng Flash và đặt chúng ở chế độ thay đổi luân phiên mỗi khi có thêm lượt truy cập mới. Bổ sung các chức năng quản lý website: Quản lý khách hàng thân thiết: cho phép khách hàng của công ty đăng ký hội viên câu lạc bộ khách hàng của công ty và tùy theo mức độ “thân thiết” của hội viên đối với công ty mà công ty sẽ có chế độ ưu đãi thích hợp. Quản lý chương trình khuyến mãi trong từng thời điểm. Khi Việt Nam đã chính thức đưa hình thức thanh toán trực tuyến thông qua hệ thống chứng thực hợp pháp và bảo mật cao, chúng ta nên kết hợp giải pháp thanh toán này cho khách hàng đặt hàng trên mạng; có như vậy, thì quá trình thương mại điện tử thực sự mới có thể thực hiện trên website này. Tăng cường chế độ bảo mật cho website: Bảo mật Server: sử dụng các chế độ bảo mật trên server mà website được lưu trữ, có thể sử dụng HTTPS Server (HTTPS là giao thức Hypertext Transfer Protocol có sử dụng các dịch vụ bảo mật, mã hoá do SSL Protocol cung cấp), để mã hóa thông tin khách hàng, tăng khả năng chứng thực và bảo mật của website. (SSL Protocol là viết tắt của Secure Socket Layer) Bảo mật source code của website: có thể dùng các kỹ thuật mã hóa toàn bộ source code của website để chống đánh cắp và bảo mật thông tin. Bảo mật cơ sở dữ liệu trên SQL Server \ Tài liệu tham khảo Giáo trình Xây Dựng Website TMĐT – Phạm Nguyễn Minh Nhật Lê Đình Duy – Thiết kế và lập trình ứng dụng web bằng ASP, NXB Thống kê, năm 2002 VN-Guide – Những bài thực hành ASP, NXB Thống kê, 2002

Các file đính kèm theo tài liệu này:

  • docBai bao cao.doc
  • docLỜI MỞ ĐẦU.doc