Trang: 1

MỤC LỤC

CHƯƠNG I: Tổng Quan ...................................................................................................... 6

1. Đặt vấn đề: .................................................................................................................. 6

1.1. Giới thiệu lĩnh vực: .............................................................................................. 6

1.2. Công việc sẽ làm: ................................................................................................ 7

2. Nhiệm vụ của đồ án: ................................................................................................... 7

2.1. Bài toán: ............................................................................................................... 7

2.2. Vấn đề cần giải quyết: ......................................................................................... 7

2.2..1. Chức năng cho dành cho người quản trị: ...................................................... 7

2.2..2. Chức năng cho dành cho người dùng: .......................................................... 8

2.2..3. Chức năng cho dành cho người duyệt đơn hàng: ......................................... 9

3. Cấu trúc đồ án: ........................................................................................................... 9

CHƯƠNG II: Lý Thuyết .................................................................................................... 10

1. Flex3 SDK: ............................................................................................................... 10

1.1. Giới thiệu: .......................................................................................................... 10

1.2. Xây dựng ứng dụng Web bằng Flex: ................................................................ 11

1.3. Vai trò của Flex: ................................................................................................ 11

2. Tạo một ứng dụng đơn giản (Test Project) với Flex Builder 3: ............................... 12

3. Vai trò của MXML: .................................................................................................. 16

4. ActionScript 3.0: ...................................................................................................... 17

5. Thành phần xử lý trong ASP.NET: (Giới thiệu mô hình lập trình 3 lớp (3 layers)) 19

5.1. Tầng thể hiện (Presentation layer): .................................................................... 20

5.2. Tầng xử lý ngiệp vụ (Business Logic layer): .................................................... 21

5.3. Tầng tương tác cơ sở dữ liệu (Data Access layer): ........................................... 22

5.4. Cách hiện thực kiến trúc 3 lớp: .......................................................................... 22

6. SQL Server 2000 & Bảo mật thông tin: ................................................................... 27

6.1. Thuật toán MD5: ............................................................................................... 27

6.2. Stored Procedure: .............................................................................................. 29

Trang: 2

CHƯƠNG 3: Giải Quyết Bài Toán .................................................................................... 31

1. Mô hình hệ thống: .................................................................................................... 31

1.1. Mô hình chức năng dành cho người dùng: ........................................................ 31

1.2. Mô hình thự thể kết hợp - Entities Relation Diagram (ERD): .......................... 33

1.3. Mô hình quan hệ - Relationship Diagram: ........................................................ 34

1.4. Cấu trúc các bảng: ............................................................................................. 35

1.4..1. Bảng Slideshow (giới thiệu): ...................................................................... 35

1.4..2. Bảng Images (hình ảnh): ............................................................................. 35

1.4..3. Bảng Events (sự kiện): ................................................................................ 35

1.4..4. Bảng MainMenu (thực đơn): ...................................................................... 36

1.4..5. Bảng SubMenu (thực đơn con): .................................................................. 36

1.4..6. Bảng Users (tài khoản): .............................................................................. 36

1.4..7. Bảng Feedback (phản hồi): ......................................................................... 37

1.4..8. Bảng Items (món ăn): ................................................................................. 37

1.4..9. Bảng BookDetail (chi tiết đơn hàng): ......................................................... 38

1.4..10. Bảng Booked (đặt hàng): ......................................................................... 38

2. Cấu trúc chương trình: .............................................................................................. 40

2.1. Người dùng: ....................................................................................................... 40

2.1..1. Đăng nhập: .................................................................................................. 40

2.1..2. Sửa thông tin tài khoản: .............................................................................. 41

2.1..3. Đổi mật khNu: .............................................................................................. 42

2.1..4. Quên mật khNu: ........................................................................................... 42

2.1..5. Xem giới thiệu: ........................................................................................... 43

2.1..6. Xem trang chủ: ............................................................................................ 43

2.1..7. Xem món ăn: ............................................................................................... 44

2.1..8. Đặt hàng: ..................................................................................................... 45

2.1..9. Xem sự kiện: ............................................................................................... 45

2.1..10. Gửi phản hồi: ........................................................................................... 46

Trang: 3

2.2. Quản trị & người duyệt đơn hàng: ..................................................................... 47

2.2..1. Đăng nhập: .................................................................................................. 47

2.2..2. Quản lý SlideShow (giới thiệu): ................................................................. 48

2.2..3. Quản lý Accounts (tài khoản): .................................................................... 50

2.2..4. Quản lý Events (sự kiện): ........................................................................... 51

2.2..5. Quản lý Menu (thực đơn): .......................................................................... 54

2.2..6. Quản lý Submenu (thực đơn con): .............................................................. 56

2.2..7. Quản lý Items (món ăn): ............................................................................. 58

2.2..8. Quản lý Feedback (xem phản hồi): ............................................................. 60

2.2..9. Quản lý Book (duyệt đơn hàng): ................................................................ 61

2.2..10. Quản lý Images (hình ảnh): ..................................................................... 61

3. Các đoạn mã quan trọng: .......................................................................................... 63

3.1. Flex: ................................................................................................................... 63

3.1..1. Tạo HTTPService gửi tham số: .................................................................. 63

3.1..2. Gửi tham số và nhận kết quả trả về từ ASP.N ET: ...................................... 63

3.2. ASP.N ET ........................................................................................................... 64

3.2..1. N hận tham số & trả kết quả cho Flex: ........................................................ 64

3.2..2. Xử lý nghiệp vụ: ......................................................................................... 64

1.1.2. Tương tác cơ sở dữ liệu: ............................................................................. 65

3.2..3. Tạo Connection theo cơ chế Singleton: ...................................................... 66

3.2..4. Cấu hình tập tin web.Config: ...................................................................... 66

3.3. SQLServer 2000: ............................................................................................... 67

3.3..1. Tạo Stored Procedure: ................................................................................ 67

CHƯƠN G 4: Kết Quả Thực Hiện ...................................................................................... 68

1. Cài đặt:...................................................................................................................... 68

1.1. Yêu cầu hệ thống: .............................................................................................. 68

1.2. Cài đặt cho cơ sở dữ liệu: .................................................................................. 68

1.3. Cài đặt cho web trên web server: ...................................................................... 69

Trang: 4

1.4. Cài đặt plugin: ................................................................................................... 70

1.5. Hoàn thành: ........................................................................................................ 71

2. Giải thích chương trình: ........................................................................................... 72

2.1. Phía người dùng: ................................................................................................ 72

2.1..1. Trang giới thiệu: ......................................................................................... 72

2.1..2. Trang bắt đầu: ............................................................................................. 73

2.1..3. Trang chủ: ................................................................................................... 74

2.1..4. Thực đơn: .................................................................................................... 75

2.1..5. Đặt hàng: ..................................................................................................... 78

2.1..6. Sự kiện: ....................................................................................................... 79

2.1..7. Thông tin: .................................................................................................... 79

2.1..8. Phản hồi: ..................................................................................................... 80

2.1..9. Đăng nhập thành công: ............................................................................... 81

2.1..10. Đăng ký thành viên: ................................................................................ 81

2.1..11. Xem tài khoản: ........................................................................................ 83

2.1..12. Sửa thông tin tài khoản: ........................................................................... 83

2.1..13. Đổi mật khNu: .......................................................................................... 84

2.2. Phía người quản trị & người duyệt đơn hàng: ................................................... 85

2.2..1. Đăng nhập: .................................................................................................. 85

2.2..2. Quản lý giới thiệu: ...................................................................................... 86

2.2..3. Quản lý tài khoản: ....................................................................................... 88

2.2..4. Quản lý sự kiện: .......................................................................................... 90

2.2..5. Quản lý đơn đặt hàng: ................................................................................. 93

2.2..6. Quản lý thực đơn: ....................................................................................... 95

2.2..7. Quản lý thực đơn con: ................................................................................. 97

2.2..8. Quản lý món ăn: .......................................................................................... 99

2.2..9. Quản lý hình ảnh: ...................................................................................... 104

2.2..10. Xem phản hồi: ....................................................................................... 106

Trang: 5

KẾT LUẬN ...................................................................................................................... 107

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

PHỤ LỤC ......................................................................................................................... 109

Trang: 6

CHƯƠNG I: Tổng Quan

1. Đặt vấn đề:

1.1. Giới thiệu lĩnh vực:

• Công nghệ thông tin phát triển muôn màu muôn vẻ. Hầu hết mọi lĩnh vực kinh

tế, xã hội, văn hóa, giáo dục, y tế, … đều ít nhiều ứng dụng các sản phNm IT

(Information Technology) vào công việc của mình.

Phát triển website không phải là hướng đi có triển vọng duy nhất trong công •

nghệ thông tin. Bên cạnh đó còn có những hướng đi khác như: Game

Developing, System Management, Database Aministrator, N etwork,…. Mỗi

thể hiện đều có những lợi thế riêng.

• Xây dựng một trang Web cần một kiến thức tổng hợp về sáng tạo, công nghệ,

sự khéo léo... N hưng không phải tất cả mọi người đều mạnh về mọi mặt, do

vậy vấn đề đặt ra là chúng ta nên áp dụng như thế nào cho hợp lý. Có một số

xu hướng thể hiện trang Web thiên về đồ họa, có xu hướng lại thiên về kĩ

thuật.

• Ở đây em chọn xu hướng website thiên về đồ họa để thực hiện website Mines

Restaurant. Bởi vì, website này chủ yếu phục vụ cho mục đích quảng bá hình

ảnh doanh nghiệp. Tuy nhiên vẫn phải đảm bảo các chức năng kĩ thuật của

một website thương mại.

• Website không còn xa lạ với nhiều người. Việc phát triển website không phải

là chuyện quá khó. Hàng loạt website đua nhau xuất hiện, nhưng tính hiệu quả

của nó đang là vấn đề nan giải. Làm thế nào để website của mình được nhiều

người biết tới. Đầu tiên, bản thân nó phải đem lại sự ấn tượng cho người dùng.

Hơn nữa các chức năng phải đáp ứng được yêu cầu, không có quá nhiều

những nội dung không cần thiết, tính tiện lợi dễ dùng cũng rất quan trọng.

Trang: 7

• Một website tốt phải có bố cục rõ ràng, trong sáng. Các chức năng đáp ứng

được yêu cầu, dễ dàng thao tác. N ội dung đáng tin cậy và phải được cập nhật

thường xuyên.

Flex đang dần chứng tỏ được sức mạnh của nó trong việc thiết kế giao diện •

website. Điều đó sẽ được thể hiện ngay trong luân văn tốt nghiệp này.

1.2. Công việc sẽ làm:

• Thiết kế và xây dựng website Mimes Restaurant

• Viết tài liệu thiết kế

• Thiết kế cơ sở dữ liệu

• Đóng gói và chạy thử

2. Nhiệm vụ của đồ án:

2.1. Bài toán:

• Thiết kế giao diện website bằng Flex Builder 3

• Thực hiện lớp xử lý nghiệp vụ (Business) bằng ASP.N ET 2.0 trên Visual

Studio 2005

• Thiết kế và lưu trữ dữ liệu trên Microsoft SQL2000

• Liên lạc các thành phần trên lại với nhau dùng XML

2.2. Vấn đề cần giải quyết:

2.2..1. Chức năng cho dành cho người quản trị:

• Quản lý các thông tin hiện trên trang giới thiệu.

• Quản lý các hình ảnh và thông tin nổi bật về nhà hàng ( thông tin

này hiện ở trang chủ và trang thông tin): nhà hàng có những món

mới, đầu bếp mới, các thông tin khác….

Trang: 8

• Quản lý các thực đơn, món và các thông tin liên quan.

• Thêm mới, xóa, sửa các thực đơn, món ăn, thông tin của món ăn

(hình ảnh, thành phần, tác dụng …).

• Thay đổi vị trí của các thực đơn

• Thay đổi vị trí các món xuất hiện trong thực đơn

• Chuyển món ăn từ thực đơn này sang thực đơn khác

• Thêm, xóa, sửa các chương trình của nhà hàng (chương trình khuyến

mãi, các hoạt động hằng đêm của nhà hàng…)

• Xem các báo cáo về danh sách khách đặt chỗ theo thời gian, các món

được đặt nhiều nhất => Đưa ra chiến lược kinh doanh cho tương lai.

• Xem số liệu do người dùng gừi phản hồi theo dạng biểu đồ hình cột.

2.2..2. Chức năng cho dành cho người dùng:

• Tạo một phần giới thiệu tóm tắt về nhà hàng trước khi vào trang web

chính.

• Xem thông tin về nhà hàng : hình ảnh, địa chỉ, điện thoại, các sự kiện, hệ

thống thực đơn, món ăn.

• Tìm kiếm các món theo thực đơn, theo giá niêm yết.

• Đăng ký thành viên

• Quản lý thông tin cá nhân

• Xem những sự kiện của nhà hàng

• Sau khi đăng ký thành viên, khách có thể đặt món và dự toán chi phí ( sẽ

dùng những món nào cho buổi tiệc và tốn bao nhiêu chi phí ). Thông tin

về dự toán chi phí chỉ mang tính tham khảo chứ không được lưu lại và

không bắt buộc khi đặt chỗ.

Trang: 9

• Gửi thông tin phản hồi.

• Tạo lại mật khNu nếu quên (người dùng sẽ nhận e-mail xác nhận lai mật

khNu)

• Xem thông tin về nhà hàng ( lịch sử, xu hướng kinh doanh,…)

2.2..3. Chức năng cho dành cho người duyệt đơn hàng:

• Quản lý đơn đặt hàng: Tiếp nhận danh sách khách đặt hàng và gán trạng thái:

mới tiếp nhận, chấp nhận, chờ xử lý, không chấp nhận.

3. Cấu trúc đồ án:

Chương I: Tổng quan

1. Đặt vấn đề: (giới thiệu lĩnh vực và công việc sẽ làm)

2. N hiệm vụ của đồ án: Bài toán cụ thể, vấn đề cần giải quyết

3. Cấu trúc đồ án: giới thiệu nội dung của từng chương

Chương II: Lý thuyết

Các phương pháp – lý thuyết – và công nghệ sử dụng để giải quyết nhiệm vụ. Chỉ

trình bày các lý thuyết, công nghệ sẽ được sử dụng ở chương 3.

Phần này không trình bày những kiến thức cơ bản đã được học.

Chương III: Giải quyết bài toán.

N êu chi tiết vấn đề cần giải quyết như: mô hình hệ thống, cấu trúc chương

trình, các đoạn chương trình quan trọng.

Chương IV: Kết quả thực nghiệm

N êu các bước thực hiện, phần cài đặt

Giải thích từng hình, từng bảng, từng chương trình.

Trang: 10

CHƯƠNG II: Lý Thuyết

1. Flex3 SDK:

1.1. Giới thiệu:

Flex 3 cung cấp phương pháp mới để xây dựng những ứng dụng Flash (SWF) •

chạy trên Flash Player 9. Giống như Flash trước đây, Flex framework tạo ra

những tập tin SWF nhưng giữa chúng vẫn có sự khác nhau:

(cid:153) Flash được thiết kế để thuận tiện cho việc tạo ra những nội dung

động, hoạt hình hóa (animation). Trong khi Flex tập trung vào việc

xây dựng những ứng dụng RIA (Rich Internet Application) và AIR

(Adobe Integrated Runtime).

(cid:153) Flash lưu ứng dụng trong cấu trúc tập tin nhị phân FLA. Trong khi

Flex lưu ứng dụng dưới dạng tập tin văn bản bằng ngôn ngữ đánh

dấu (MXML).

(cid:153) Các công cụ phát triển ứng dụng cũng khác nhau:

(cid:190) Flex không có tiến trình ngắt thời gian (timeline).

(cid:190) Flex không có những công cụ hỗ trợ vẽ.

(cid:190) Flash không có MXML

(cid:190) Flash không có CSS

(cid:190) ……

• Đối với những lập trình viên đã quen làm việc trên Flash sẽ cảm thấy dễ dàng

khi làm việc với Flex. Bạn sẽ thấy có sự liên quan giữa Flex và Flash khi tạo

những ứng dụng SWF. Chỉ có điều trong Flex chuyển sự tập trung từ việc tạo

animation sang tạo giao diện và tương tác với người dùng. Hơn nữa việc tạo

giao diện cũng rất dễ dàng nhờ bộ phát triển Flex Builder 3.

Trang: 11

1.2. Xây dựng ứng dụng Web bằng Flex:

N hững ứng dụng web thông thường bao gồm nhiều lớp khác nhau: giao diện •

người dùng, lớp xử lý logic, lớp thứ 3 cho phép truy cập vào cơ sở dữ liệu.

N hững lớp này được gọi là kiến trúc 3 lớp (three-tier).

• Lớp giao diện hay còn gọi là Presentation layer hiển thị lên trình duyệt bằng

những đối tượng SWF, và những đoạn script phía Client được dùng là

ActionScript.

• Business Logic layer và Data Access layer là ứng dụng phía Server, có thể

dùng một trong những ngôn ngữ như: ColdFusion, ASP.N ET, PHP, JAVA. Sự

liên lạc giữa Presentation layer và Business layer nhờ vào kiến trúc XML

• Cơ sở dữ liệu có thể dùng MySQL, SQL Server, Oracle, ….

1.3. Vai trò của Flex:

• Trong những ứng dụng web truyền thống, Presentation layer xây dựng bằng

XHTML. N gười dùng gởi yêu cầu (request) tới trang web và chờ web server

trả lời (response) lại và hiển thị lên trình duyệt. Mỗi lần người dùng request

thông tin mới thì toàn bộ trang web được tải (load) lại.

• Trong những năm gần đây có những cách khác để xây dựng một ứng dụng

web, một mô hình mới xuất hiện là Rich Internet Application (RIA). RIAs

không dựa trên mô hình request/respond truyền thống. Thay vào đó, nó gởi

request tới server với những phần riêng biệt trên giao diện. N gười dùng không

phải chờ lâu mỗi lần trang web load lại. Bởi vì trang web chỉ đáp ứng lại

những phần tương tác với người dùng. Điều này thực hiện được là nhờ vào cơ

chế request bất đồng bộ (asynchronous) giống như Ajax.

Trang: 12

Hình II‐1.3‐1: Cơ chế request/response trong Flex.[16]

Flex 3 cung cấp framework cho việc xây dựng ứng dụng RIAs kết xuất ra file •

SWF. Flex framework cung cấp thư viện những thành phần (component)

phong phú để tạo giao diện cho trang web. Flex framework cũng bao gồm cơ

chế tương tác với những dữ liệu từ server. N ó có thể gửi request và nhận

response dạng text hoặc XML để hiển thị lên giao diện. Tuy nhiên, cũng như

những kỹ thuật khác trong Presentation layer, Flex không thể tương tác trực

tiếp với database và những file hệ thống trên server.

• Chúng ta hoàn toàn có thể phát triển ứng dụng Flex chỉ với Flex framework,

ActionScript, notepad. Tuy nhiên, để đễ dàng hơn chúng ta sử dụng Flex

Builder 3 do hãng Macromedia phát triển. IDE này cug cấp những chức năng

thiết kế rất giống với Visual Studio .N ET. Hơn nữa, những lập trình viên đã

từng quen thuộc với những chuNn như XML, SOAP, ECMAScript, E4X sẽ có

mặt trong Flex 3 framework.

2. Tạo một ứng dụng đơn giản (Test Project) với Flex Builder 3:

• Khởi động Flex Builder.

• Để tạo N ew Flex Project, chọn N ew | Flex Project từ menu File.

Trang: 13

• Hộp thoại N ew Flex Project hiện ra. N hập HelloWorld vào ô Project name.

chọn N one trong drop-down list như hình II-2-1. N hấn N ext. Server

technology chỉ được chọn nếu bạn tương tác với business logic layer.

Hình II-2-1: Hộp thoại N ew Flex Project

• Hộp thoại Configuration như hình II-2-2. Output folder là chọn nơi lưu những

file sau khi được biên dịch (compile). Mặc định là thư mục bin trong project.

N hấn N ext.

Hình II-2-2: Configuration diaglog

Trang: 14

• Hộp thoại như hình II-2-3 hiện ra. N hấn Finish sau khi đã thiết lập xong các

thông số:

(cid:153) Main source folder: cho phép chọn nơi lưu trữ mã nguồn (source code).

(cid:153) Main application file: chọn file sẽ thực thi mặc định khi compile và chạy

(run).

Hình II-2-3: Source Path tab

(cid:153) Để thêm vào những thư viện ngoài ta chuyển qua tab Library path như

hình II-2-4.

Hình II-2-4: Library Path

• Trở về cửa sổ chính của ứng dụng. Flex Builder tự động tạo workspace với

cấu trúc thư mục đầy đủ. Mặc định khối lệnh MXML hiển thị trong vùng làm

việc như hình II-2-5.

Trang: 15

Hình II-2-5: Cửa sổ Main Flex Builder

Sửa lại đoạn code MXML lại như sau: •

• Chọn Run trên menu bar để chạy chương trình. N hấn OK để lưu lại những

thay đổi. Kết quả thưc thi chương trình như hình II-2-6.

Trang: 16

Hình II-2-6: Kết quả thực thi ứng dụng web HelloWord

3. Vai trò của MXML:

• MXML trong ứng dụng Flex cũng tương tự như XHTML trong các trang web

thông thường. Cả hai ngôn ngữ markup này đều đảm nhận vai trò làm giao

diện người dùng. Bởi vì MXML là biến thể của XML nên cấu trúc của chúng

cũng tương tự nhau. Một tài liệu MXML phải đúng dạng (well-formed) của tài

liệu XML như sau:

(cid:153) Tài liệu MXML phải chứa một hoặc nhiều nút.

(cid:153) Tài liệu MXML phải chứa một nút gốc, thường là thẻ .

(cid:153) Đóng mở thẻ hợp lệ

(cid:153) Thẻ lồng nhau phải hợp lệ

(cid:153) Giá trị của Attribute phải nằm trong dấu nháy đơn (‘) hoặc nháy kép (“).

• Tất cả tài liệu MXML phải bắt đầu với khai báo XML như sau:

N út gốc của tài liệu MXML thường là thẻ , mặc dù chúng ta •

có thể dùng những thẻ khác như , ,…. Thẻ gốc đóng

vai trò là một Container chứa tất cả các thành phần khác.

Trang: 17

• Thẻ gốc được tham chiếu tới namespace www.adobe.com/2006/mxml. Bạn có

thể thấy nó xuất hiện như sau:

Chúng có thể đưa vào thêm những custom component, ví dụ như: •

. Trong trường hợp này

chúng ta dùng tiền tố (prefix) là comp để phân biệt với các component có sẵn

của Flex.

• Đoạn mã lệnh sau là ví dụ đơn giản xây dựng giao diện Flex bằng MXML:

Giao diện chỉ là một nút nhấn được tạo bằng thẻ . Gán thuộc tính

(properties) cho đối tượng bằng cách dùng thuộc tính (attributes) bên trong

thẻ. Lúc biên dịch ứng dụng, thì những thẻ MXML sẽ được dịch ra những

class ActionScript tương ứng, trong trường hợp này là tạo button trong file

SWF.

• Tất cả các thẻ và tên lớp đều bắt đầu bằng ký tự in hoa, và nếu như tên có

nhiều hơn một từ thì ký tự đầu tiên của mỗi từ phải viết hoa (vd: ComboBox).

N hư đã đề cập, những thành phần MXML được biên dịch để tạo ra file SWF. •

Trong quá trình này, những thẻ MXML được phân tích (parse) và được trình

biên dịch sinh ra những class ActionScript khi cần thiết. Sau đó những lớp này

được compile vào file SWF ở dạng mã nhị phân (bytecode).

4. ActionScript 3.0:

• ActionScript 3.0 là phiên bản mới nhất của ngôn ngữ script này và nó là trái

tim của Flex framework.

Trang: 18

• ActionScript 3.0 chạy trên máy ảo AVM (ActionScript Vitual Machine) bên

trong Flash Player 9. Không giống như những phiên bản trước đây, Flash

Player 9 bao gồm cả 2 AVM, một cho ActionScript 3.0 (AVM2) và một cho

các phiên bản trước đây (AVM1). ActionScript 3.0 thực thi nhanh hơn các

phiên bản trước. Flex 3 chỉ làm việc với ActionScript 3.0.

• ActionScript 3.0 bao gồm 2 phần chính: phần lõi của ngôn ngữ (core

language) và Flash Player API. Phần lõi bao gồm những thành phần cơ bản

của ngôn ngữ như kiểu dữ liệu (data type), biểu thức (expression), vòng lặp

(loop), và điều kiện (condition). Flash Player API là những lớp tiện ích hỗ trợ

lập trình viên viết mã dễ dàng và nhanh chóng hơn.

• Chúng ta có thể dùng ActionScript 3.0 trong ứng dụng Flex bằng nhiều cách:

(cid:153) Thêm những câu lệnh ActionScript vào ngay trong những thẻ MXML

(cid:153) Thêm vào một khối lệnh bằng thẻ trong file MXML

(cid:153) Dùng file ActionScript bên ngoài bằng cách chỉ định source cho thẻ

hoặc include file trong khối lệnh ActionScript.

• Đoạn mã sau đây dùng ActionScript 3.0 để tạo ra giao diện giống như giao

diện đã tạo bằng những thẻ MXML ở trên:

Trang: 19

Đoạn mã ActionScript trên đã được bao trong khối CDATA để báo cho trình •

biên dịch không phân tích (parse) nội dung của nó. N ếu không có khối

CDATA thì trình biên dịch sẽ phân tích những lệnh ActionScript như là thành

phần XML, như vậy sẽ không đúng dạng (well-form).

• Một metadata tag rất thường dùng đó là [Bindable] với vị trí đặt như sau:

Chúng ta có thể gán giá trị của nó trực tiếp cho widget (các đối tượng cơ sở)

bằng cách:

Kiểu gán này được dùng bởi vì khi giá trị biến thay đổi thì giá trị của nó sẽ

được tự động cập nhật cho widget.

5. Thành phần xử lý trong ASP.NET: (Giới thiệu mô hình lập trình 3 lớp (3

layers))

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. Ví dụ trong một công ty có từng phòng ban, mỗi

phòng ban sẽ chịu trách nhiệm một công việc cụ thể nào đó, phòng này không được

can thiệp vào công việc nội bộ của phòng kia như Phòng tài chính thì chỉ phát lương,

còn chuyện lấy tiền ở đâu phát cho nhân viên phòng Marketing thì không cần biết.

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.

Chúng ta 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. 3 lớp này là gì? Là

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

Trang: 20

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.

Hình II-5: Mô hình 3 lớp (Three_tier) [17]

5.1. Tầng thể hiện (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. Trong .N ET thì

Trang: 21

dùng Windows Forms, ASP.N ET hay Mobile Forms để hiện thực lớp này. Trong

luận văn này dùng Flex làm lớp Presentation. Trong lớp này có 2 thành phần chính

là User Interface Components và User Interface Process Components.

UI Components là những phần tử chịu trách nhiệm thu thập và hiển thị thông tin

cho người dùng cuối. N hững thành phần này có thể là các TextBox, các Button,

DataGrid...

UI Process Components: là thành phần chịu trách nhiệm quản lý các qui trình

chuyển đổi giữa các UI Components. Ví dụ chịu trách nhiệm quản lý các màn hình

nhập dữ liệu trong một loạt các thao tác định trước như các bước trong một

Wizard...

Lưu ý : lớp này không nên sử dụng trực tiếp các dịch vụ của lớp Data Access mà

nên sử dụng thông qua các dịch vụ của lớp Business Logic vì khi sử dụng trực tiếp

như vậy, có thể bỏ qua các ràng buộc, các logic nghiệp vụ mà ứng dụng cần phải

có.

5.2. Tầng xử lý ngiệp vụ (Business Logic layer):

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(ví dụ như sử dụng dịch vụ của các cổng thanh tóan

trực tuyến như VeriSign, Paypal...).Trong lớp này có các thành phần chính là

Business Components, Business Entities và Service Interface.

Service Interface là giao diện lập trình mà lớp này cung cấp cho lớp

Presentation sử dụng. Lớp Presentation chỉ cần biết các dịch vụ thông qua giao

Trang: 22

diện này mà không cần phải quan tâm đến bên trong lớp này được hiện thực như

thế nào.

Business Entities là những thực thể mô tả những đối tượng thông tin mà hệ

thống xử lý. Ví dụ trong ứng dụng này có đối tượng là tài khoản (Accounts). Các

business entities này cũng được dùng để trao đổi thông tin giữa lớp Presentation và

lớp Data Access.

Business Components là những thành phần chính thực hiện các dịch vụ mà

Service Interface cung cấp, chịu trách nhiệm kiểm tra các ràng buộc logic

(constraints), các qui tắc nghiệp vụ (business rules), sử dụng các dịch vụ bên ngoài

khác để thực hiện các yêu cầu của ứng dụng.

Trong ứng dụng Mimes Restaurant, lớp này sẽ chứa các thành phần là

Accounts, Items,… làm nhiệm vụ cung cấp các dịch vụ quản lý tài khoản và các

món ăn,…. (thêm, xóa, sửa, xem chi tiết,...).

5.3. Tầng tương tác cơ sở 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. Trong lớp này có

các thành phần chính là Data Access Logic, Data Sources, Servive Agents. Data

Access Logic Components (DALC) là thành phần chính chịu trách nhiệm lưu trữ

vào và truy xuất dữ liệu từ các nguồn dữ liệu như RDBMS, XML, File systems....

Trong .N ET Các DALC này thường được hiện thực bằng cách sử dụng thư viện

ADO.N ET để giao tiếp với các hệ cơ sở dữ liệu hoặc sử dụng các O/R Mapping

Frameworks để thực hiện việc ánh xạ các đối tượng trong bộ nhớ thành dữ liệu lưu

trữ trong CSDL. Service Agents là những thành phần trợ giúp việc truy xuất các

dịch vụ bên ngòai một cách dễ dàng và đơn giản như truy xuất các dịch vụ nội tại.

5.4. Cách hiện thực kiến trúc 3 lớp:

Trang: 23

• Lớp Presentation:

(cid:153) Do dùng Flex cho lớp này nên muốn ASP.N ET bắt được dữ liệu của giao

diện ta phải dùng cơ chế Request . Sau khi xử lý thì trả kết quả về cho

Flex bằng cơ chế Response. Ta làm như sau:

(cid:153) Flex:

//nhận dữ liệu

private var params:Object = new Object();

[Bindable]

private var login_result:String=null;

public function resultHandler(event:ResultEvent):void

{

login_result = event.result.toString();

if(login_result=="ok")

{

//các xử lý khi đăng nhập thành công….

………

}

else

Alert.show("Sai tên đăng nhập hoặc mật khNu!");

}

// gửi dữ liệu

public function check():void

Trang: 24

{

checkUser.removeEventListener(ResultEvent.RESULT,resultHandler);

checkUser.addEventListener(ResultEvent.RESULT,resultHandler);

checkUser.method = "POST";

params =

{"task":"checkLogin","username":txtUsername.text,"password":txtPassword.text};

checkUser.cancel();

checkUser.send(params);

}

(cid:153) ASP.N ET:

string task = Request.Form["task"].ToString();

if (task.Equals("checkLogin"))

{

string username = Request.Form["username"].ToString();

string password = Request.Form["password"].ToString();

Business.Account a = new Business.Account();

a.Username = username;

a.Password = password;

a.Role = 0;

if (a.checkLogin())

{

Response.Write("ok");

}

Trang: 25

else

Response.Write("login fail");

}

• Lớp Business Logic:

// mã hóa mật khNu bằng thuật toán MD5 (business component)

private string hashPass(String s)

{

return

System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile

(s,"MD5");

}

/// hàm cung cấp cho Presentation gọi (business interface)

public bool checkLogin()

{

DataAccess.Account a=new DataAccess.Account();

if (a.checkLogin(this.Username,this.hashPass(this.Password),this.Role))

{

return true;

}

return false;

}

//// getter / setter (business entity)

private string username;

Trang: 26

private string password;

public string Username

{

set { this.username = value; }

get { return this.username; }

}

public string Password

{

set { this.password = value; }

get { return this.password; }

}

private int role;

public int Role

{

set { this.role = value; }

get { return this.role; }

}

• Lớp Data Access:

// cung cấp phương thức cho lớp Business gọi, có nhiệm vụ tương tác với cơ

sở dữ liệu vật lý

public bool checkLogin(String username, String password, int role)

{

try

Trang: 27

{

SqlConnection cn = ConnectionInfo.Connection();

string s = "select * from Users where UserID=N '" + username + "'

and Password=N '" + password + "' and Role='" + role + "'and Banned=0";

SqlCommand cm = new SqlCommand(s, cn);

cn.Open();

if (cm.ExecuteScalar() != null)

{

cn.Close();

return true;

}

}

catch (SqlException)

{

return false;

}

return false;

}

6. SQL Server 2000 & Bảo mật thông tin:

6.1. Thuật toán MD5:

MD để chỉ cho “message digest” (Lấy 2 chữ đầu). MD5 là một thuật tóan

lấy một tín hiệu vào có chiều dài bất kỳ và đưa ra một tín hiệu digest có chiều dài

cố định (128-bit, 32 ký tự hexa), được làm ra từ 1 giá trị hexa (chú ý : mỗi ký tự

Trang: 28

hex là 4 bit, do đó 128bit là 32 ký tự hex). N ói rõ hơn một chút : MD5 là cách căn

bản để lấy chùm ký tự ( là digits, alphabeic hay gì khác ), được gọi là string nhập

vào, và thay đổi chúng thành một chùm ký tự dài 32 ký tự , được gọi là tín hiệu

digest (message digest) hay hashes của chuỗi được nhập vào, chuỗi 32 ký tự này

được tạo ra từ các ký tự hexa ( những digits: 0-9 và các chữ a-f). Điều này có

nghĩa là, với một chuỗi nhập vào có chiều dài bất kỳ , MD5 sẽ luôn luôn cài đặt

“một vài thứ” để thành một chuổi string dài 32 ký tự, mà các ký tự là các ký tự

hexa. Tín hiệu digest sẽ không có khỏang trống, hay dấu hoặc kép hay bất cứ thứ

gì khác 0-9 và a-f trong tín hiệu hashes được xuất ra.

MD5 hashes có tiện dụng là những hashes tạo ra trông khác nhau hòan tòan

từ những tín hiệu nhập vào hơi hơi giống nhau. Ví dụ sau sẽ làm rõ hơn về điều

này:

• Kết quả MD5 hash của chuỗi jim là 5e027396789a18c37aeda616e3d7991b

• Kết quả MD5 hash của chuỗi Jim là d54b3c8fcd5ba07e47b400e69a287966

• Kết quả MD5 hash của chuỗi Jimmy là 495b3121d23f5988b133882b36aa7214

N hư đã thấy, có ba tín hiệu nhập vào “hơi hơi giống nhau” nhưng các tín

hiệu MD5 hashes xuất ra hòan tòan khác nhau. Ví dụ này cũng chứng minh hai ký

tự j và J là 2 ký tự khác nhau. Ở đây cần chú ý thêm là trong ví dụ thứ 3 chỉ thêm

vào 2 ký tự (my) ở cuối chuỗi của ví dụ 2 , và hashes của nó đã thay đổi hòan

tòan. Vì vậy chúng ta không thể có hashes của chuỗi “Blehlo” từ hashes của chuỗi

“Bleh” bằng cách “vá viếu” thêm vài ký tự - thay đổi trong chuỗi nhập vào thì tín

hiệu hashes của nó cũng sẽ thay đổi hòan tòan.

Và ở đây cũng nên chú ý với 3 chuỗi nhập vào có chiều dài không giống

nhau nhưng các hash sinh ra đều có chiều dài là 32 ký tự (bao gồm các số 0-9 và

a-f), ở ví dụ sau cùng ta cũng thấy chuỗi nhập vào dài hơn 2 ký tự so với 2 string

trước nhưng chuỗi hash của nó cũng chỉ có 32 ký tự chữ số hex.

Trang: 29

Điều quan trọng là chúng ta không thể dịch ngược chuỗi MD5 đã hash về lại

chuỗi ban đầu được. Em sẽ ứng dụng điều này để mã hóa mật khNu khi đăng nhập

vào hệ thống.

6.2. Stored Procedure:

Stored Procedure có một số ưu điểm chính như sau:

Performance (hiệu năng) : Khi thực thi một câu lệnh SQL thì SQL Server

phải kiểm tra quyền (permission) xem user gởi câu lệnh đó có được phép thực hiện

câu lệnh hay không đồng thời kiểm tra cú pháp rồi mới tạo ra một execute plan và

thực thi. N ếu có nhiều câu lệnh như vậy gởi qua mạng có thể làm giảm đi tốc độ

làm việc của server. SQL Server sẽ làm việc hiệu quả hơn nếu dùng stored

procedure vì người gởi chỉ gởi một câu lệnh đơn và SQL Server chỉ kiểm tra một

lần sau đó tạo ra một execute plan và thực thi. N ếu stored procedure được gọi

nhiều lần thì execute plan có thể được sử dụng lại nên sẽ làm việc nhanh hơn.

N goài ra cú pháp của các câu lệnh SQL đã được SQL Sever kiểm tra trước khi lưu

nên nó không cần kiểm lại khi thực thi.

Reuse (tái sử dụng) : Một khi stored procedure được tạo ra nó có thể được

sử dụng lại. Ðiều này sẽ làm cho việc bảo trì (maintainability) dễ dàng hơn do việc

tách rời giữa business rules (tức là những logic thể hiện bên trong stored

procedure) và database. Ví dụ nếu có một sự thay đổi nào đó về mặt logic thì ta chỉ

việc thay đổi mã lệnh bên trong stored procedure mà thôi. N hững ứng dụng dùng

stored procedure này có thể sẽ không cần phải thay đổi mà vẫn tương thích với

business rule mới. Cũng giống như các ngôn ngữ lập trình khác stored procedure

cho phép ta đưa vào các input parameters (tham số) và trả về các output parameters

đồng thời nó cũng có khả năng gọi các stored procedure khác.

Trang: 30

Security (bảo mật) : Giả sử chúng ta muốn giới hạn việc truy xuất dữ liệu

trực tiếp của một user nào đó vào một số bảng, ta có thể viết một stored procedure

để truy xuất dữ liệu và chỉ cho phép user đó được sử dụng stored procedure đã viết

sẵn mà thôi chứ không thể "đụng" đến các bảng đó một cách trực tiếp. N goài ra

stored procedure có thể được mã hóa (encrypt) để tăng cường tính bảo mật.

Ðể tạo ra một stored procedure ta dùng lệnh CREATE PROCEDURE theo

sau là tên của nó. N ếu muốn encrypt thì dùng WITH EN CRYPTION trước chữ AS

và các tham số nhập vào(input) hoặc tham số trả về (output). N ếu là output thì

thêm keyword OUTPUT đằng sau tham số. Ta có thể cho giá trị mặc định (default)

cùng lúc với khai báo kiểu dữ liệu của tham số. Kể từ sau chữ AS là phần thân của

stored procedure.

Trang: 31

CHƯƠNG 3: Giải Quyết Bài Toán

1. Mô hình hệ thống:

1.1. Mô hình chức năng dành cho người dùng:

Hình III-1-1: Mô hình chức năng dành cho người dùng

Trang: 32

Mô hình chức năng dành cho Quản trị và Duyệt đơn hàng:

Hình III-1-2: Mô hình chức năng dành cho quản trị & người duyệt đơn hàng

Trang: 33

1.2. Mô hình thự thể kết hợp - Entities Relation Diagram (ERD):

Hình III-1-3: Mô hình thực thể kết hợp

Trang: 34

1.3. Mô hình quan hệ - Relationship Diagram:

Hình III-1-4: Mô hình quan hệ giữa các bảng

Trang: 35

1.4. Cấu trúc các bảng:

1.4..1. Bảng Slideshow (giới thiệu):

Tên cột Kiểu dữ liệu Cho phép rỗng Mô tả Ghi chú

SlideID Int Tự tăng +1 Khóa chính Không

Image_ID N varchar (50) Tham chiếu từ Khóa ngoại Không

bảng Images

Priority Int Có Thứ tự xuất hiện 1: là xuất hiện

của ảnh đầu tiên

1.4..2. Bảng Images (hình ảnh):

Tên cột Kiểu dữ liệu Cho phép rỗng Mô tả Ghi chú

Image_ID N varchar (50) Không Tên đại diện Khóa chính

Path N varchar (50) Có Tên thật của ảnh

1.4..3. Bảng Events (sự kiện):

Tên cột Kiểu dữ liệu Cho phép rỗng Mô tả Ghi chú

Event_ID Int Tự tăng +1 Khóa chính Không

Intro N varchar Mô tả ngắn gọn sự kiện Không

(500)

Detail N varchar Không Mô tả đầy đủ sự kiện

(1000)

Không Image_ID N varchar(50) Tham chiếu từ bảng Image Khóa ngoại

Không Date_from Varchar(50) N gày bắt đầu

Không Date_to Varchar(50) N gày kết thúc

HomePage int Có Cho phép hiện lên trang chủ 1: hiện

0: Nn

Trang: 36

1.4..4. Bảng MainMenu (thực đơn):

Tên cột Kiểu dữ liệu Cho phép rỗng Mô tả Ghi chú

Không MainMenu_ID Int Tự tăng +1 Khóa chính

Không N ame N varchar (50) Tên thực đơn

Có Priority Int Thứ tự xuất hiện 1: là xuất hiện

của thực đơn đầu tiên

1.4..5. Bảng SubMenu (thực đơn con):

Tên cột Kiểu dữ liệu Cho phép rỗng Mô tả Ghi chú

Không SubMenu_ID Int Tự tăng +1 Khóa chính

Không N ame N varchar (50) Tên thực đơn

Có Priority Int Thứ tự xuất hiện 1: là xuất hiện

của thực đơn con đầu tiên

MainMenu_ID Int Không Tham chiếu từ Khóa ngoại

bảng MainMenu

1.4..6. Bảng Users (tài khoản):

Tên cột Kiểu dữ liệu Cho phép rỗng Mô tả Ghi chú

UserID N varchar (50) Tên đăng nhập Khóa chính Không

Password N varchar (50) Mật khNu Không

0: khách hàng Role Int Quyền người Không

1: quản trị dùng trên trang

2: duyệt đơn hàng web

Email N varchar (50) Có Địa chỉ email

Fullname N varchar (50) Không Tên họ đầy đủ

Address N varchar (50) Có Địa chỉ

Phone varchar (20) Có Điện thoại

Trang: 37

CellPhone varchar (20) Di động Có

Sex N varchar (50) Giới tính Có

Banned Int Khóa tài khoản 0: bình thường Có

1: khóa

1.4..7. Bảng Feedback (phản hồi):

Tên cột Kiểu dữ liệu Cho phép rỗng Mô tả Ghi chú

Fb_ID Int Không Tự tăng +1 Khóa chính

Present N varchar (10) Cách trình bày Có

Serve N varchar (10) Thái độ phục vụ Có

Price N varchar (10) Giá tốt chưa Có

Delicious N varchar (10) Món ăn ngon không Có

SpaceIn N varchar (10) Không gian nhà hàng Có

Month varchar (10) Tháng Có

Year varchar (10) N ăm Có

1.4..8. Bảng Items (món ăn):

Tên cột Kiểu dữ liệu Cho phép rỗng Mô tả Ghi chú

Item_ID Int Không Tự tăng +1 Khóa chính

Item_name N varchar (50) Không Tê món

Recipe N varchar Có Thành phần

(1000)

Image_ID N varchar (50) Không Tham chiếu từ bảng Khóa ngoại

Images

Item_usage N varchar Có Công dụng, cách

(2000) dùng

SubMenu_ID Int Không Tham chiếu từ bảng Khóa ngoại

Trang: 38

SubMenu

Có Price varchar (30) Giá

Có Origin N varchar (50) Vùng

Có HomePage Int Hiện lên trang chủ 1: hiện

0: Nn

Có Invisible Int Ẩn món 0: hiện

1: Nn

1.4..9. Bảng BookDetail (chi tiết đơn hàng):

Tên cột Kiểu dữ liệu Cho phép rỗng Mô tả Ghi chú

BookDetail_ID Không Tự tăng +1 Khóa chính Int

BookID Không Tham chiếu từ bảng Khóa ngoại Int

Booked

Item_ID Không Tham chiếu từ bảng Khóa ngoại Int

Items

Quantity_Item Int Không Số lượng mỗi món

1.4..10.

Bảng Booked (đặt hàng):

Tên cột Kiểu dữ Cho phép Mô tả Ghi chú

rỗng liệu

Không BookID Tự tăng +1 Khóa chính Int

UserID N varchar Không Tham chiếu từ bảng

Users (50)

Book_time varchar Không Giờ khách đến

(30)

Book_date Datetime Không N gày khách đến

Pax int Không Số lượng khách

Trang: 39

N ote N varchar Có Ghi chú

(1000)

Guest_name N varchar Có Tên khách đến

(50)

Guest_phone N varchar Có Điện thoại khách

đến (50)

Guest_Email N varchar Có Di động khách đến 1: hiện

0: Nn (50)

Status_View varchar Có Trạng thái đơn hàng N ew: chưa duyệt

Accepted: đồng ý (50)

Waitting: chờ xử lý

Deny: không chấp nhận

Trang: 40

2. Cấu trúc chương trình:

2.1. Người dùng:

2.1..1. Đăng nhập:

Hình III-2-1-1: Sơ đồ xử lý người dùng đăng nhập

Trang: 41

2.1..2. Sửa thông tin tài khoản:

Hình III-2-1-2: Sơ đồ xử lý người dùng chỉnh sửa thông tin tài khoản

Trang: 42

2.1..3. Đổi mật khNu:

Hình III-2-1-3: Sơ đồ xử lý người dùng đổi mật khNu

2.1..4. Quên mật khNu:

Hình III-2-1-4: Sơ đồ xử lý người dùng lấy lại mật khNu

Trang: 43

2.1..5. Xem giới thiệu:

Hình III-2-1-5: Sơ đồ xử lý người dùng xem giới thiệu

2.1..6. Xem trang chủ:

Hình III-2-1-6: Sơ đồ xử lý người dùng xem trang chủ

Trang: 44

2.1..7. Xem món ăn:

Hình III-2-1-7: Sơ đồ xử lý người dùng xem thực đơn

Trang: 45

2.1..8. Đặt hàng:

Hình III-2-1-8: Sơ đồ xử lý người dùng đặt món ăn

2.1..9. Xem sự kiện:

Hình III-2-1-9: Sơ đồ xử lý người dùng xem sự kiện

Trang: 46

2.1..10. Gửi phản hồi:

Hình III-2-1-10: Sơ đồ xử lý người dùng gửi phản hồi

Trang: 47

2.2. Quản trị & người duyệt đơn hàng:

2.2..1. Đăng nhập:

Hình III-2-2-1: Sơ đồ xử lý Admin/Reviewer đăng nhập

Trang: 48

2.2..2. Quản lý SlideShow (giới thiệu):

Xem: •

Hình III-2-2-2-1: Sơ đồ xử lý admin xem giới thiệu

Thêm: •

Hình III-2-2-2-2: Sơ đồ xử lý admin thêm giới thiệu

Trang: 49

Xóa: •

Hình III-2-2-2-3: Sơ đồ xử lý admin xóa giới thiệu

Sửa: •

Hình III-2-2-2-4: Sơ đồ xử lý admin sửa giới thiệu

Trang: 50

2.2..3. Quản lý Accounts (tài khoản):

Ban (khóa tài khoản): •

Hình III-2-2-3-1: Sơ đồ xử lý admin khóa tài khoản

Grant (cấp quyền duyệt đơn hàng): •

Hình III-2-2-3-2: Sơ đồ xử lý admin cấp quyền

Trang: 51

ChangePass (đổi mật khNu): •

Hình III-2-2-3-3: Sơ đồ xử lý Admin/Reviewer đổi mật khNu

2.2..4. Quản lý Events (sự kiện):

Xem: •

Hình III-2-2-4-1: Sơ đồ xử lý admin xem sự kiện

Trang: 52

Thêm: •

Hình III-2-2-4-2: Sơ đồ xử lý admin thêm sự kiện

Xóa: •

Hình III-2-2-4-3: Sơ đồ xử lý admin xóa sự kiện

Trang: 53

Sửa: •

Hình III-2-2-4-4: Sơ đồ xử lý admin sửa sự kiện

Trang: 54

2.2..5. Quản lý Menu (thực đơn):

Xem: •

Hình III-2-2-5-1: Sơ đồ xử lý admin xem thực đơn

Thêm: •

Hình III-2-2-5-2: Sơ đồ xử lý admin thêm thực đơn

Trang: 55

Xóa: •

Hình III-2-2-5-3: Sơ đồ xử lý admin xóa thực đơn

Sửa: •

Hình III-2-2-5-4: Sơ đồ xử lý admin sửa thực đơn

Trang: 56

2.2..6. Quản lý Submenu (thực đơn con):

Xem: •

Hình III-2-2-6-1: Sơ đồ xử lý admin xem thực đơn con

Thêm: •

Hình III-2-2-6-2: Sơ đồ xử lý admin thêm thực đơn con

Trang: 57

Xóa: •

Hình III-2-2-6-3: Sơ đồ xử lý admin xóa thực đơn con

Sửa: •

Hình III-2-2-6-4: Sơ đồ xử lý admin sửa thực đơn con

Trang: 58

2.2..7. Quản lý Items (món ăn):

Xem: •

Hình III-2-2-7-1: Sơ đồ xử lý admin xem món ăn

Thêm: •

Hình III-2-2-7-2: Sơ đồ xử lý admin thêm món ăn

Trang: 59

Xóa: •

Hình III-2-2-7-3: Sơ đồ xử lý admin xóa món ăn

Sửa: •

Hình III-2-2-7-4: Sơ đồ xử lý admin sửa món ăn

Trang: 60

2.2..8. Quản lý Feedback (xem phản hồi):

Hình III-2-2-8: Sơ đồ xử lý admin xem thông tin phản hồi

Trang: 61

2.2..9. Quản lý Book (duyệt đơn hàng):

Hình III-2-2-9: Sơ đồ xử lý reviewer xử lý đơn hàng

2.2..10. Quản lý Images (hình ảnh):

Xem: •

Hình III-2-2-10-1: Sơ đồ xử lý admin xem hình ảnh

Trang: 62

Thêm: •

Hình III-2-2-10-2: Sơ đồ xử lý admin thêm hình ảnh

Xóa: •

Hình III-2-2-10-3: Sơ đồ xử lý admin xóa hình ảnh

Trang: 63

Sửa: •

Hình III-2-2-10-4: Sơ đồ xử lý admin sửa hình ảnh

3. Các đoạn mã quan trọng:

3.1. Flex:

3.1..1. Tạo HTTPService gửi tham số:

3.1..2. Gửi tham số và nhận kết quả trả về từ ASP.N ET:

Trang: 64

3.2. ASP.NET

3.2..1.

N hận tham số & trả kết quả cho Flex:

3.2..2. Xử lý nghiệp vụ:

Trang: 65

1.1.2. Tương tác cơ sở dữ liệu:

Trang: 66

3.2..3. Tạo Connection theo cơ chế Singleton:

3.2..4. Cấu hình tập tin web.Config:

Trang: 67

3.3. SQLServer 2000:

3.3..1. Tạo Stored Procedure:

Trang: 68

CHƯƠNG 4: Kết Quả Thực Hiện

1. Cài đặt:

1.1. Yêu cầu hệ thống:

Số tt Thành phần Mô tả

Hệ điều hành Windows 2000, XP, 2003, Vista 1

Cơ sở dữ liệu SQL Server 2000 2

Web server Internet Information Service 5.0 hoặc cao hơn 3

Trình duyệt Internet Explorer 7.x or Firefox 2.x hoặc cao 4

hơn

Font Arial, Times N ew Roman, Tahoma 5

.N et Framework 2.0 6

Flash player 9.x Bản activeX cho IE, bản plugin cho firefox,…. 7

1.2. Cài đặt cho cơ sở dữ liệu:

Bước 1: Chép thư mục mimes vào ổ đĩa D:

Bước 2: Chọn Start/Microsoft SQL Server/Enterprise Manager, đăng nhập vào SQL

Server 2000 (user: sa, password: rỗng).

Bước 3: Chọn Microsoft SQL Servers/ SQL Server Group/ (Local) (WindowsN T),

nhấn vào Database.

Bước 4: N hấn chuột phải vào Database, chọn All Tasks/ Attach Database …

Trang: 69

Bước 5: Chọn nút … , dẫn đến tâp tin Restaurant.mdf (database owner = sa;) từ C:\

mimes, nhấn OK

1.3. Cài đặt cho web trên web server:

Bước 1: Vào thư mục mimes/ chép thư mục mimes vào C:\Inetpub\wwwroot\

Bước 2: Chọn Start/Administrative Tools/Internet Information Services hoặc

Control Panel/ Administrative Tools/Internet Information Services.

Bước 3: Từ panel bên trái, mở Local computer/Web sites/Default Web Site.

Bước 4: N hấn phải lên mimes chọn Property. Trong thẻ Directory chọn Create.

Đánh dấu vào tất cả các CheckBox như trong hình:

Trang: 70

Bước 5: Trong thẻ ASP.N ET chọn ASP.N ET version: là 2.0.xxxx. N hấn OK

1.4. Cài đặt plugin:

Bước 1: Vào thư mục mimes/ . N hấn vào tập tin: install_flash_player.exe để cài đặt.

Trang: 71

Bước 2: N ếu máy chưa cài Visual Studio N et 2005 thì vào thư mục mimes. N hấn vào

tập tin CRRedist2005_x86.msi để cài đặt thành phần hiển thị report.

1.5. Hoàn thành:

Mở Internet Explorer 7 hoặc Firefox 2.x, gõ địa chỉ:

http://localhost/mimes/mimes.html, chúng ta sẽ thấy:

Trang: 72

2. Giải thích chương trình:

2.1. Phía người dùng:

2.1..1. Trang giới thiệu:

Kiểu Bẫy lỗi Sự kiện Hành động Tên

Image Không N hấn Mở trang chủ Mimes

Image Không N hấn Hiện ảnh đó lên bên Ảnh

trên

Trang: 73

2.1..2. Trang bắt đầu:

Tên Kiểu Bẫy lỗi Sự kiện Hành động

Tên đăng nhập Textbox Không

Mật khNu Textbox Không

Không Đăng nhập Button N hấn Kiểm tra tài khoản đăng

nhập

Đăng ký Link Button Không N hấn Mở trang Đăng ký

Quên mật khNu Link Button Không N hấn Mở trang Quên mật

khNu

Bắt đầu tại đây Image Không N hấn Mở trang chủ

Trang chủ Button Không N hấn Mở trang chủ

Thực đơn Button Không N hấn Mở trang thực đơn

Sự kiện Button Không N hấn Mở trang sự kiện

Thông tin Button Không N hấn Mở trang thông tin

Phản hồi Button Không N hấn Mở trang phản hồi

Trang: 74

2.1..3. Trang chủ:

Tên Kiểu Bẫy lỗi Sự kiện Hành động

Ảnh phần đặc biệt Image Không N hấn Mở trang thực

đơn

Ảnh phần sự kiện Image Không N hấn Mở trang sự kiện

Trang: 75

2.1..4. Thực đơn:

Xem thực đơn: •

Kiểu Bẫy lỗi Sự Hành động Tên

kiện

Image Không N hấn Mở trang chi tiết thực Ảnh

đơn

Cây thư mục TreeView Không N hấn Mở thực đơn con

Thanh trượt HSlider Không Kéo Lọc thực đơn theo giá

Biểu tượng giỏ hàng Image Không N hấn Hiện phần giỏ hàng

Biểu tượng kính lúp Image Không N hấn Hiện phần tìm kiếm

Trang: 76

Xem chi tiết thực đơn: •

Tên Kiểu Bẫy lỗi Sự Hành động

kiện

Ảnh nhỏ Image Không N hấn Hiện chi tiết món đó

Ảnh nhỏ Image Không Kéo Bỏ vào giỏ hàng

thả

Biểu tượng giỏ hàng Button Không N hấn Bỏ vào giỏ hàng

Biểu tượng 9 chấm Button Không N hấn Trở lại xem thực đơn

Trang: 77

Chọn thực đơn: •

Tên Kiểu Sự kiện Hành động Bẫy lỗi

Ảnh nhỏ Image N hấn Hiện chi tiết món Không

đó

Ảnh nhỏ Image Kéo thả Bỏ vào giỏ hàng Không

Biểu tượng giỏ Button N hấn Bỏ vào giỏ hàng Không

hàng

Biểu tượng 9 Button Không N hấn Trở lại xem thực

đơn chấm

Đặt hàng Button Giỏ hàng không rỗng N hấn Mở trang đặt hàng

Trang: 78

2.1..5. Đặt hàng:

Tên Kiểu Bẫy lỗi Sự kiện Hành động

Tên khách đặt Textbox Phải đăng nhập

Giờ đến Textbox hh:mmam/pm

N gày đến DateFiel Lớn hơn ngày hiện N hấn Mở lịch chọn

d tại

Số người N umeric Từ 1 đến 10 N hấn Tăng / giảm 1

Stepper

Tên khách dự Textbox Không rỗng,

max=50 ký tự

ĐT khách dự Textbox Max=20 ký tự

Email khách dự Textbox Đúng dạng email

Ghi chú TextAre Max=1000 ký tự

a

Đặt hàng Button Không N hấn Lưu vào database

Trở lại Button Không N hấn Mở trang thực đơn

Trang: 79

2.1..6. Sự kiện:

Tên Kiểu Bẫy lỗi Sự Hành động

kiện

Ảnh nhỏ Image Không N hấn Hiện chi tiết sự kiện đó

Biểu tượng 9 chấm Button Không N hấn Trở lại xem sự kiện

2.1..7. Thông tin:

Trang: 80

Tên Kiểu Bẫy lỗi Sự Hành động

kiện

Ảnh nhỏ Image Không N hấn Hiện ảnh lớn hơn bên dưới

Mũi tên 2 bên Button Không N hấn Trượt danh sách ảnh nhỏ

2.1..8. Phản hồi:

Tên Kiểu Bẫy lỗi Sự kiện Hành động

Cách trình bày món ăn Combobox Không N hấn Chọn đánh giá

Cách phục vụ Combobox Không N hấn Chọn đánh giá

Giá cả Combobox Không N hấn Chọn đánh giá

Độ ngon món ăn Combobox Không N hấn Chọn đánh giá

Không gian nhà hàng Combobox Không N hấn Chọn đánh giá

N hập dãy số Textbox Trùng

dãy số

bên trên

Gửi đi Button Không N hấn Lưu vào database

Hủy bỏ Button Không N hấn Quay về trang chủ

Trang: 81

2.1..9. Đăng nhập thành công:

Tên Kiểu Bẫy lỗi Sự Hành động

kiện

Tài khoản của tôi Link Button Không N hấn Hiển thị trang quản lý tài

khoản

Thoát Link Button Không N hấn Thoát phiên làm việc

2.1..10. Đăng ký thành viên:

Trang: 82

Tên Kiểu Bẫy lỗi Sự kiện Hành động

Tên đăng nhập Textbox Max=30 ký tự

Kiểm tra Link Button Không N hấn Kiểm tra tên đăng

nhập tồn tại chưa

Mật khNu Texbox Max=30 ký tự

N hập lại mật Textbox Giống với ô

khNu mật khNu

Tên họ Textbox Max=50 ký tự,

không rỗng

Địa chỉ Textbox Max=50 ký tự

Điện thoại Textbox Max=20 ký tự

Di động Textbox Max=20 ký tự

Email: Textbox Không rỗng,

đúng dạng

email

N hập dãy số Textbox Đúng dãy số

bên trên

Gới tính RadioButto Không N hấn Chọn giới tính

n

Button Tôi đồng ý Không N hấn Lưu vào database

Button Xóa Không N hấn Xóa trống các textbox

Button Thoát Không N hấn Trở về trang chủ

Trang: 83

2.1..11. Xem tài khoản:

Tên Kiểu Bẫy lỗi Sự Hành động

kiện

Thoát Button Không Nhấn Trở về trang chủ

2.1..12. Sửa thông tin tài khoản:

Trang: 84

Tên Kiểu Bẫy lỗi Hành động Sự

kiện

Tên đăng nhập Textbox Max=30 ký tự

Tên họ Textbox Max=50 ký tự,

không rỗng

Địa chỉ Textbox Max=50 ký tự

Điện thoại Textbox Max=20 ký tự

Di động Textbox Max=20 ký tự

Email: Textbox Không rỗng,

đúng dạng email

Gới tính RadioButton N hấn Chọn giới tính Không

Không N hấn Cập nhật vào database Cập nhật Button

Không N hấn Trở về tab xem tài khoản Hủy tác vụ Button

2.1..13. Đổi mật khNu:

Trang: 85

Tên Kiểu Bẫy lỗi Sự kiện Hành động

Mật khNu Textbox Max=30 ký tự,

không rỗng

N hập lại mật Textbox Giống mật khNu

khNu

Lưu thay đổi Button Không N hấn Cập nhật vào database

Hủy tác vụ Button Không N hấn Trở về tab xem tài khoản

2.2. Phía người quản trị & người duyệt đơn hàng:

2.2..1. Đăng nhập:

Kiểu Bẫy lỗi Sự kiện Hành động Tên

Textbox Không ID

Password Textbox Không

ComboBox Không N hấn Chọn quyền Grant

Button Không N hấn Xóa trống các textbox Cancel

Button không N hấn Kiểm tra tài khoản đăng Login

nhập

Trang: 86

2.2..2. Quản lý giới thiệu:

Xem danh sách: •

Tên Kiểu Bẫy lỗi Sự kiện Hành động

DataGrid DataGrid Không Select Chọn 1 dòng

Delete Button Không N hấn Xóa 1 dòng trên datagrid &

database

Button Không N hấn Mở trang Insert Insert

Button không N hấn Mở trang Update Update

Trang: 87

Thêm •

Tên Kiểu Bẫy lỗi Sự kiện Hành động

DataGrid DataGrid Không Select Chọn 1 dòng

Button Không N hấn Lưu vào database Save

Button Không N hấn Về trang xem giới thiệu Cancel

Sửa •

Trang: 88

Tên Kiểu Bẫy lỗi Sự kiện Hành động

Priority Textbox Dạng số nguyên

dương, max=10

Save Button Không N hấn Lưu thay đổi vào

database

Cancel Button Không N hấn Về trang xem giới thiệu

2.2..3. Quản lý tài khoản:

Cấp quyền & khóa tài khoản: •

Tên Kiểu Bẫy lỗi Sự kiện Hành động

DataGrid DataGrid Không Select Chọn 1 dòng

Grant Button Không N hấn Cấp quyền Reviewer (duyệt

đơn hàng) cho tài khoản

chọn

Ban N ick Button Không N hấn Khóa tài khoản đã chọn

Cancel Button Không N hấn Bỏ chọn

Trang: 89

Đổi mật khNu: •

Tên Kiểu Bẫy lỗi Hành động Sự

kiện

Password Textbox Max=30 ký tự,

không rỗng

Retype Textbox Giống mật

khNu Password

Không Save Change Button N hấn Cập nhật vào database

Không Cancel Button N hấn Xóa trắng các textbox

Trang: 90

2.2..4. Quản lý sự kiện:

Xem danh sách: •

Tên Kiểu Bẫy lỗi Sự kiện Hành động

DataGrid DataGrid Không Select Chọn 1 dòng

Delete Button Không N hấn Xóa 1 dòng trên datagrid &

database

Button Không N hấn Mở trang Insert Insert

Button không N hấn Mở trang Update Update

Trang: 91

Thêm: •

Tên Kiểu Bẫy lỗi Sự kiện Hành động

… Button Không N hấn Mở hộp thoại chọn hình

Intro Textbox Không rỗng,

max=500 ký tự

Detail Textbox Không rỗng,

max=1000 ký

tự

Date from DateField <= date to N hấn Mở lịch chọn

Date to Datefield >=date from N hấn Mở lịch chọn

Homepage Checkbox Check Không

Save Button Không N hấn Lưu vào database

Cancel Button Không N hấn Xóa rỗng các textbox

Finish Button Không N hấn Trở về trang xem sự

kiện

Trang: 92

Sửa •

Tên Kiểu Bẫy lỗi Sự kiện Hành động

… Button Không N hấn Mở hộp thoại chọn hình

Intro Textbox Không rỗng,

max=500 ký tự

Detail Textbox Không rỗng,

max=1000 ký

tự

Date from DateField <= date to N hấn Mở lịch chọn

Date to Datefield >=date from N hấn Mở lịch chọn

Homepage Checkbox Check Không

Save Button Không N hấn Lưu vào database

Cancel Button Không N hấn Trở về trang xem sự

kiện

Trang: 93

2.2..5. Quản lý đơn đặt hàng:

Trang: 94

Tên Kiểu Bẫy lỗi Sự kiện Hành động

Các Radiobutto Không Select Chọn trạng thái đơn

radiobutton n hàng

Search Button Không N hấn Tìm kiếm đơn hàng theo

ngày, trạng thái trong

database

DataGrid Datagrid Không Select Chọn 1 dòng

From date DateField <= date to N hấn Mở lịch chọn

To date Datefield >=date from N hấn Mở lịch chọn

Book date Datefield > ngày hiện tại N hấn Mở lịch chọn

Book time Textbox hh:mmam/pm

Cancel Button Không N hấn Xóa rỗng các textbox

Exit Button Không N hấn Trở về trang dành cho

Reviewer

Guest name Textbox Max=50 ký tự

Guestphone Textbox Max=20 ký tự

Pax N umeric Từ 1 đến 10 N hấn Tăng hoặc giảm 1

stepper

Email Textbox Đúng dạng

email

N ote Textarea Max=1000 ký

tự

Status ComboBox Không N hấn Chọn trạng thái cho đơn

hàng

Update Button Không N hấn Lưu thay đổi vào

database

Trang: 95

2.2..6. Quản lý thực đơn:

Xem danh sách: •

Tên Kiểu Bẫy lỗi Sự kiện Hành động

DataGrid DataGrid Không Select Chọn 1 dòng

Delete Button Không N hấn Xóa 1 dòng trên datagrid &

database

Button Không N hấn Mở trang Insert Insert

Button không N hấn Mở trang Update Update

Thêm: •

Trang: 96

Tên Kiểu Bẫy lỗi Sự kiện Hành động

N ame Textbox Không rỗng,

max=50 ký tự

Save Button Không N hấn Lưu vào database

Cancel Button Không N hấn Trở về trang xem thực

đơn

Sửa: •

Tên Kiểu Bẫy lỗi Sự kiện Hành động

N ame Textbox Không rỗng,

max=50 ký tự

Priority N umeric Từ 1 đến 10 N hấn Tăng hoặc giảm 1

stepper

Save Button Không N hấn Lưu thay đổi vào database

Cancel Button Không N hấn Trở về trang xem thực

đơn

Trang: 97

2.2..7. Quản lý thực đơn con:

Xem danh sách: •

Tên Kiểu Bẫy lỗi Sự kiện Hành động

DataGrid DataGrid Không Select Chọn 1 dòng

Delete Button Không N hấn Xóa 1 dòng trên datagrid &

database

Button Không N hấn Mở trang Insert Insert

Button không N hấn Mở trang Update Update

Thêm: •

Trang: 98

Tên Kiểu Bẫy lỗi Sự kiện Hành động

Menu Combobo Không Select Chọn 1 menu

x

Refresh Button Không N hấn Load lại Combobox

N ame Textbox Không rỗng,

max=50 ký tự

Save Button Không N hấn Lưu vào database

Cancel Button Không N hấn Trở về trang xem thực đơn

con

Sửa: •

Trang: 99

Sự Tên Kiểu Bẫy lỗi Hành động

kiện

Menu Combobox Không Select Chọn 1 menu

Refres Button Không N hấn Load lại Combobox

h

N ame Textbox Không rỗng,

max=50 ký

tự

Priorit N umeric stepper Từ 1 đến 10 N hấn Tăng hoặc giảm 1

y

Save Button Không N hấn Lưu vào database

Cancel Button Không N hấn Trở về trang xem thực đơn con

2.2..8. Quản lý món ăn:

Xem danh sách: •

Trang: 100

Tên Kiểu Bẫy lỗi Sự kiện Hành động

DataGrid DataGrid Không Select Chọn 1 dòng

Delete Button Không N hấn Xóa 1 dòng trên datagrid &

database

Button Không N hấn Mở trang Insert Insert

Button không N hấn Mở trang Update Update

Thêm: •

Trang: 101

Tên Kiểu Bẫy lỗi Sự kiện Hành động

N ame Textbox Không rỗng,

max=50 ký tự

Recipe Textbox Không rỗng,

max=1000 ký tự

Usage Textbox Không rỗng,

max=2000 ký tự

Submenu Combobox Không Select Chọn 1 thực đơn con

Price Textbox Không rỗng, dạng

số

Origin Textbox Không rỗng,

max=50 ký tự

Không … Button N hấn Mở hộp thoại chọn ảnh

Không Save Button N hấn Lưu vào database

Không Cancel Button N hấn Trở về trang xem món

ăn

Homepage Checkbox không Check

Trang: 102

Sửa: •

Trang: 103

Tên Kiểu Bẫy lỗi Sự kiện Hành động

N ame Textbox Không rỗng,

max=50 ký tự

Recipe Textbox Không rỗng,

max=1000 ký tự

Usage Textbox Không rỗng,

max=2000 ký tự

Submenu Combobox Không Select Chọn 1 thực đơn con

Price Textbox Không rỗng, dạng

số

Origin Textbox Không rỗng,

max=50 ký tự

… Button Không N hấn Mở hộp thoại chọn ảnh

Save Button Không N hấn Lưu thay đổivào

database

Cancel Button Không N hấn Trở về trang xem món

ăn

Homepage Checkbox không Check

Invisible Checkbox Không Check

Trang: 104

2.2..9. Quản lý hình ảnh:

Chọn: •

Tên Kiểu Bẫy lỗi Sự kiện Hành động

Datagrid Datagrid Không Select Chọn 1 dòng

Select Button Không N hấn Chuyển dữ liệu tới nơi

yêu cầu

Cancel Button Không N hấn Trở về trang gọi nó

Trang: 105

Sửa: •

Tên Kiểu Bẫy lỗi Sự kiện Hành động

Path Textbox Không rỗng,

max=50 ký tự

Save Button Không N hấn Lưu thay đổi vào

database

Cancel Button Không N hấn Trở về trang xem ảnh

Test Button Không N hấn Kiểm tra đường đẫn

Thêm: •

Trang: 106

Tên Kiểu Bẫy lỗi Sự kiện Hành động

N ame Textbox Không rỗng,

max=50 ký tự

Path Textbox Không rỗng,

max=50 ký tự

Không Save Button N hấn Lưu vào database

Không Cancel Button N hấn Trở về trang xem ảnh

Không Test Button N hấn Kiểm tra đường đẫn

2.2..10.

Xem phản hồi:

Tên Kiểu Bẫy lỗi Sự kiện Hành động

Month Combobox Không Select Chọn 1 tháng

Year Textbox Không rỗng, dạng

số nguyên từ 1900

đến 2500

Report Button Không N hấn Vẽ biểu đồ

Trang: 107

KẾT LUẬN

Sau ba tháng nghiên cứu và thực hiện xây dựng trang web Mimes Restaurant, tổng

kết lại đã thu được những kết quả sau:

• Hoàn thành đủ toàn bộ những yêu cầu bài toán đặt ra lúc ban đầu

• Trang web thể hiện được hình ảnh nổi bật của nhà hàng, cách trình bày món ăn,

thực đơn, sự kiện,… sinh động, đẹp mắt, gây được ấn tượng ban đầu.

• Hỗ trợ khách hàng đặt món ăn một cách dễ dàng, thao tác đơn giản.

• Phần quản trị trang web trình bày hợp lý, tạo thuận lợi cho việc cập nhật thông tin

• Thông tin tài khoản được mã hóa và bảo mật tốt.

• Trang web được xây dựng theo kiến trúc 3 lớp, tạo sự dễ dàng cho việc bảo trì và

nâng cấp sau này.

Tuy nhiên, do những lý do khách quan và thời gian có hạn nên trang web cũng có

những hạn chế sau:

• Chưa thực hiện được cơ chế tự động reset mật khNu và gửi email cho chủ tài khoản

khi người dùng lỡ quên mật khNu.

• Vài đoạn mã lệnh (code) chưa được tối ưu hóa tuyệt đối, chỉ ưu tiên chạy đúng

trước. Bởi vì tài liệu về Flex 3 còn khan hiếm, hơn nữa công nghệ Flex chỉ mới bắt

đầu phổ biến ở Việt N am nên việc học hỏi kinh nghiệm còn hạn chế. N hững phần

em viết bằng Flex hoàn toàn là những kiến thức tự tìm hiểu trên internet, e-book và

những tài liệu do giáo viên hướng dẫn cung cấp.

N ếu được tài trợ và có nhiều thời gian hơn, em sẽ phát triển thêm những phần sau:

• Xây dựng việc đa ngôn ngữ cho phần tương tác với người dùng

• Xuất đơn đặt hàng đã được chấp nhận một cách tự động cho bộ phận nhà bếp và

• Quản lý thu chi, nguyên liệu tồn trong kho, nhân viên nhà hàng, quản lý thiết bị,…

tiếp tân chuNn bị trước cho khách hàng

Trang: 108

TÀI LIỆU THAM KHẢO

[1] http://livedocs.adobe.com/flex/3/html/help.html?content=charts_types_09.html

[2]http://demo.quietlyscheming.com/ChartSampler/app.html

[3]http://regexlib.com/DisplayPatterns.aspx?cattabindex=6&categoryId=7

[4] http://livedocs.adobe.com/flex/3/langref/flash/filesystem/File.html#browseForSave

[5]http://flexcomps.wordpress.com/

[6]http://www.adobe.com/devnet/air/flex/getting_started.html

[7]http://livedocs.adobe.com/flex/3/html/help.html?content=FBHelloWord_1.html

[8]http://www.7templates.com/

[9]http://bugs.adobe.com/jira/browse/SDK-14811

[10]http://examples.adobe.com/flex2/inproduct/sdk/explorer/explorer.html

[11] http://zensoft.vn/Uploads/sondt/071025/3tier.JPG

[12]getting_started_with_Flex3.pdf

[13]Orelly-flex-cookbook.pdf

[14]McGraw.Hill.Flex.3.A.Beginners.Guide.Mar.2008.pdf

[15]FoundationFlexForDesignersJan2008.pdf

[16]devguide_flex3.pdf

[17] createcomps_flex3.pdf

[18] compilerAPI_flex3.pdf

[19]Professional ADO.N ET 2 Programming With SQL Server 2005, Oracle, &

MySQL (2006).pdf

[20] http://www.vovisoft.com/SQLServer2000/sql_server_2000_lesson_4.htm

Trang: 109

PHỤ LỤC

Hình II-1.3-1: Cơ chế request/response trong Flex ............................................................ 12

Hình II-2-1: Hộp thoại N ew Flex Project ........................................................................... 13

Hình II-2-2: Configuration diaglog .................................................................................... 13

Hình II-2-3: Source Path tab ............................................................................................... 14

Hình II-2-4: Library Path .................................................................................................... 14

Hình II-2-5: Cửa sổ Main Flex Builder .............................................................................. 15

Hình II-2-6: Kết quả thực thi ứng dụng web HelloWord ................................................... 16

Hình II-5: Mô hình 3 lớp (Three_tier) [17] ........................................................................ 20

Hình III-1-1: Mô hình chức năng dành cho người dùng .................................................... 31

Mô hình chức năng dành cho Quản trị và Duyệt đơn hàng: .............................................. 32

Hình III-1-2: Mô hình chức năng dành cho quản trị & người duyệt đơn hàng .................. 32

Hình III-1-3: Mô hình thực thể kết hợp .............................................................................. 33

Hình III-1-4: Mô hình quan hệ giữa các bảng .................................................................... 34

Hình III-2-1-1: Sơ đồ xử lý người dùng đăng nhập ........................................................... 40

Hình III-2-1-2: Sơ đồ xử lý người dùng chỉnh sửa thông tin tài khoản ............................. 41

Hình III-2-1-3: Sơ đồ xử lý người dùng đổi mật khNu ....................................................... 42

Hình III-2-1-4: Sơ đồ xử lý người dùng lấy lại mật khNu .................................................. 42

Hình III-2-1-5: Sơ đồ xử lý người dùng xem giới thiệu ..................................................... 43

Hình III-2-1-6: Sơ đồ xử lý người dùng xem trang chủ ..................................................... 43

Hình III-2-1-7: Sơ đồ xử lý người dùng xem thực đơn ...................................................... 44

Hình III-2-1-8: Sơ đồ xử lý người dùng đặt món ăn .......................................................... 45

Hình III-2-1-9: Sơ đồ xử lý người dùng xem sự kiện ........................................................ 45

Hình III-2-1-10: Sơ đồ xử lý người dùng gửi phản hồi ...................................................... 46

Hình III-2-2-1: Sơ đồ xử lý Admin/Reviewer đăng nhập .................................................. 47

Hình III-2-2-2-1: Sơ đồ xử lý admin xem giới thiệu .......................................................... 48

Hình III-2-2-2-2: Sơ đồ xử lý admin thêm giới thiệu ......................................................... 48

Hình III-2-2-2-3: Sơ đồ xử lý admin xóa giới thiệu ........................................................... 49

Trang: 110

Hình III-2-2-2-4: Sơ đồ xử lý admin sửa giới thiệu ........................................................... 49

Hình III-2-2-3-1: Sơ đồ xử lý admin khóa tài khoản ......................................................... 50

Hình III-2-2-3-2: Sơ đồ xử lý admin cấp quyền ................................................................. 50

Hình III-2-2-3-3: Sơ đồ xử lý Admin/Reviewer đổi mật khNu .......................................... 51

Hình III-2-2-4-1: Sơ đồ xử lý admin xem sự kiện ............................................................. 51

Hình III-2-2-4-2: Sơ đồ xử lý admin thêm sự kiện ............................................................ 52

Hình III-2-2-4-3: Sơ đồ xử lý admin xóa sự kiện ............................................................... 52

Hình III-2-2-4-4: Sơ đồ xử lý admin sửa sự kiện ............................................................... 53

Hình III-2-2-5-1: Sơ đồ xử lý admin xem thực đơn ........................................................... 54

Hình III-2-2-5-2: Sơ đồ xử lý admin thêm thực đơn .......................................................... 54

Hình III-2-2-5-3: Sơ đồ xử lý admin xóa thực đơn ............................................................ 55

Hình III-2-2-5-4: Sơ đồ xử lý admin sửa thực đơn ............................................................ 55

Hình III-2-2-6-1: Sơ đồ xử lý admin xem thực đơn con .................................................... 56

Hình III-2-2-6-2: Sơ đồ xử lý admin thêm thực đơn con ................................................... 56

Hình III-2-2-6-3: Sơ đồ xử lý admin xóa thực đơn con ..................................................... 57

Hình III-2-2-6-4: Sơ đồ xử lý admin sửa thực đơn con...................................................... 57

Hình III-2-2-7-1: Sơ đồ xử lý admin xem món ăn ............................................................. 58

Hình III-2-2-7-2: Sơ đồ xử lý admin thêm món ăn ............................................................ 58

Hình III-2-2-7-3: Sơ đồ xử lý admin xóa món ăn .............................................................. 59

Hình III-2-2-7-4: Sơ đồ xử lý admin sửa món ăn ............................................................... 59

Hình III-2-2-8: Sơ đồ xử lý admin xem thông tin phản hồi ............................................... 60

Hình III-2-2-9: Sơ đồ xử lý reviewer xử lý đơn hàng ........................................................ 61

Hình III-2-2-10-1: Sơ đồ xử lý admin xem hình ảnh ......................................................... 61

Hình III-2-2-10-2: Sơ đồ xử lý admin thêm hình ảnh ........................................................ 62

Hình III-2-2-10-3: Sơ đồ xử lý admin xóa hình ảnh .......................................................... 62

Hình III-2-2-10-4: Sơ đồ xử lý admin sửa hình ảnh ........................................................... 63