Sử dụng trang web để tra cứu thông tin và mua bán đã trở nên quen thuộc với mọi người trong xã hội hiện nay. Từ máy tính để bàn, laptop và hiện nay đang dần trở nên phổ biến là máy tính bảng, điện thoại thông minh với đầy đủ các chức năng. Nắm bắt xu hướng mua hàng online của mọi người, chúng tôi đã phát triển 1 website bán hàng với nhiều mặt hàng đa dạng, phong phú và đặc biệt hỗ trợ việc truy cập từ các thiết bị máy tính, điện thoại…
Trang 1LỜI MỞ ĐẦU
Sử dụng trang web để tra cứu thông tin và mua bán đã trở nên quen thuộc với mọingười trong xã hội hiện nay Từ máy tính để bàn, laptop và hiện nay đang dần trở nên phổbiến là máy tính bảng, điện thoại thông minh với đầy đủ các chức năng
Nắm bắt xu hướng mua hàng online của mọi người, chúng tôi đã phát triển 1website bán hàng với nhiều mặt hàng đa dạng, phong phú và đặc biệt hỗ trợ việc truy cập
từ các thiết bị máy tính, điện thoại…
Một ứng dụng trên điện thoại thông minh sẽ hỗ trợ rất nhiều cho người sử dụng vì
nó sẽ tiện lợi, thao tác nhanh chóng hơn so với việc sử dụng web thông thường Do đónhóm chúng tôi đã phát triển riêng 1 ứng dụng chạy trên Windows Phone 7 hỗ trợ muahàng tốt hơn, đồng thời giúp tìm hiểu, phát triển thêm cho hệ điều hành còn rất mới này
Trang 2LỜI CẢM ƠN
Để hoàn thành chương trình đại học và làm khóa luận này, chúng tôi xin chânthành cảm ơn Khoa Mạng Máy Tính và Truyền Thông, trường Đại học Công NghệThông Tin, Đại Học Quốc Gia Thành Phố Hồ Chí Minh đã tạo điều kiện cho chúng tôithực hiện đề tài tốt nghiệp này
Chúng tôi xin gửi lời biết ơn sâu sắc đến thầy TS Đàm Quang Hồng Hải và thấyThS Ngô Hán Chiêu, người đã dành nhiều thời gian và tâm huyết hướng dẫn nghiên cứu
và giúp chúng tôi hoàn thành khóa luận tốt nghiệp
Sau cùng, chúng tôi xin gửi lời biết ơn tới gia đình, nơi đã sinh thành, dưỡng dục
và động viên rất nhiều trong thời gian qua
Tp, Hồ Chí Minh, tháng 2 năm 2012
Võ Minh TuấnTrần Tuyết Hạnh
Trang 3NHẬN XÉT (Của giảng viên hướng dẫn)
Trang 4
NHẬN XÉT (Của giảng viên phản biện)
Trang 5
MỤC LỤC
LỜI MỞ ĐẦU i
LỜI CẢM ƠN ii
Chương 1: Đặt vấn đề 1
1.1 Bài toán đặt ra 1
1.2 Giải quyết 1
Chương 2: Cơ Sở Lý Thuyết 3
2.1 PHP 3
2.1.1 Giới thiệu 3
2.1.2 Lệnh trong PHP 3
2.1.3 Biến trong PHP 5
2.1.4 Toán tử trong PHP 7
2.1.5 Hàm trong PHP 9
2.1.6 Xử lý form trong PHP 11
2.1.7 Session 13
2.2 MySQL 15
2.2.1 Định nghĩa cơ sở dữ liệu, bảng, cột 15
2.2.2 Một số thuật ngữ trong MySQL 16
2.2.3 Loại dữ liệu trong MySQL 16
2.2.4 Cú pháp 17
2.2.5 Kết hợp PHP và MySQL trong ứng dụng website 20
Trang 62.3 Silverlight for Windows Phone 7 21
2.3.1 Tổng quan về Windows Phone 7 21
2.3.2 Microsoft Visual Studio 21
2.3.3 Cấu trúc project trong Windows Phone Application Project Template sử dụng Visual Studio 2010 23
2.3.4 Nền tảng ứng dụng cho Windows Phone 24
Chương 3: Xây dựng ứng dụng 29
3.1 Cơ sở dữ liệu 29
3.1.1 Giới thiệu 29
3.1.2 Chi tiết bảng dữ liệu 30
3.1.3 Sơ đồ dữ liệu quan hệ 35
3.2 Website bán hàng 35
3.2.1 Giới thiệu 35
3.2.2 Thanh toán qua nganluong.vn 36
3.2.3 Kết nối database 39
3.2.4 Thiết kế giao diện 39
3.2.5 Xử lý tác vụ đối với người dùng phổ thông 50
3.2.6 Thiết lập chức năng của admin 56
3.2.7 RSS 63
3.3 Website trên di động 66
3.3.1 Trang chủ (index.php) 67
3.3.2 Tìm kiếm (search.php) 69
3.3.3 Đăng nhập, mua hàng 72
Trang 73.4 Tiện ích khác 73
3.5 Ứng dụng mua hàng trên windows phone 7 75
3.5.1 Giao diện chính 75
3.5.2 Chức năng Tin tức 77
3.5.3 Chức năng Tra cứu 83
3.5.4 Chức năng Thông tin 93
3.5.5 Chức năng Mua sắm 97
Chương 4: Sử dụng 102
4.1 Sử dụng website với desktop version 102
4.1.1 Tìm kiếm theo tên sản phẩm: 102
4.1.2 Đăng kí thành viên 103
4.1.3 Mua hàng 105
4.1.4 Liên hệ 105
4.2 Sử dụng website với mobile version 106
4.3 Admin 109
4.3.1 Đăng nhập quyền quản trị 109
4.3.2 Thêm sản phẩm mới 111
4.3.3 Quản lí khuyến mãi 112
4.3.4 Quản lí thành viên 112
4.3.5 Quản lí tin 113
4.3.6 Quản lí hóa đơn 114
4.3.7 Chiết khấu 114
4.4 Sử dụng ứng dụng LV trên windows phone 7 115
Trang 84.4.1 Tin tức 115
4.4.2 Tra cứu 117
4.4.3 Thông tin 120
4.4.4 Mua sắm 121
Chương 5: Kết luận 122
Chương 6: Tài liệu tham khảo 125
Trang 9
Chương 1: Đặt vấn đề 1.1 Bài toán đặt ra
Như ta đã biết việc mua sắm thông qua internet ngày càng trở nên phổ biến Đơngiản và phổ biến nhất là sử dụng trình duyệt web, từ đó đăng kí, khai báo thông tin cánhân và đặt mua hàng trên web
Tuy nhiên do sự phổ biến của điện thoại thông minh có thể duyệt web tương tựnhư sử dụng máy tính nên trang web đòi hỏi phải đa dạng hơn và thuận tiện cho người sửdụng
Cao hơn nữa ở mức độ thành viên thân thiết, họ có 1 mối liên kết mua hàng hay cónhu cầu thường xuyên mua hàng thì việc lên web từ máy tính hay điện thoại có thể làmmất 1 khoảng thời gian hay rối rắm do phải làm đầy đủ các bước để mua hàng Do cácthành viên đặc biệt như vậy nên đối với người bán có thể bỏ qua 1 số bước khi mua hàng
và cho họ mua hàng trực tiếp, nhanh chóng, tiện lợi
Do sự phân cấp người sử dụng như vậy nên trang web cần đáp ứng sao cho ngườixem, người mua hay thành viên thân thiết có được sự tiện lợi nhất trong việc sử dụng
1.2 Giải quyết
Nắm được nhu cầu sử dụng và phân loại các thành viên khách hàng của mình,chúng tôi quyết định chia trang web của mình ra làm 3 phần với các phiên bản: desktopversion, mobile version và mobile application
- Desktop version:
P Quen thuộc với đa phần người dùng
P Hỗ trợ trên destop, laptop, điện thoại với cấu hình chạy desktop version
P Hỗ trợ các trình duyệt khác nhau
P Hỗ trợ đầy đủ nhất các chức năng của trang web cũng như mua hàng
P Xem tin tức, tra cứu, tìm kiếm sản phẩm
Trang 10P Đăng kí thành viên, đăng nhập, mua hàng, xác nhận hóa đơn.
P Liên hệ với các chi nhánh thông qua bản đồ định vị sử dụng google-mapcho biết vị trí hiện tại của người đó
- Mobile version:
P Hỗ trợ người dùng truy cập từ điện thoại
P Trang web sẽ phân biệt người dùng đang sử dụng điện thoại với hệ điềuhành nào từ đó sẽ chuyển sang phiên bản cho điện thoại hay không Trangweb có thể phát hiện và chuyển trang đối với điện thoại chạy các hệ điềuhành như Android, iOS,Windows Mobile, Windows Phone 7, BlackBerry
P Đáp ứng nhu cầu xem tin tức
P Tra cứu, tìm kiếm thông tin sản phẩm
P Đăng nhập, mua hàng, xác nhận hóa đơn
P Định vị GPS xác định vị trí và thể hiện trên google-map
- Mobile application:
P Phần mềm cho các các thành viên thân thiết có nhu cầu giao dịch nhanh vàgiao dịch thường xuyên
P Chạy trên thiết bị điện thoại thông minh
P Hỗ trợ xem tin tức với giao diện rõ ràng
P Hỗ trợ đăng nhập và mua hàng nhanh chóng, không thông qua giỏ hàng
P Để đa dạng hóa tính năng, chương trình còn hỗ trợ xem báo từ các trangbáo mạng nổi tiếng như vnexpress, tuổi trẻ và ứng dụng tra cứu thông tin
tỉ giá, từ điển anh-việt… được tích hợp vào ứng dụng
P Mục tiêu: như câu “Nước chảy đá mòn”, “Mưa dầm thấm lâu” Người dùng
sử dụng ứng của công ty phát triển và dùng thường xuyên để đọc tin, tracứu hằng ngày thì công ty có thể sẽ là nơi đầu tiên họ nghĩ đến khi cần muasắm cho nhu cầu của mình Có thể coi đây cũng là 1 hình thức quảng cáocho công ty
Trang 11Chương 2: Cơ Sở Lý Thuyết 2.1 PHP
2.1.1 Giới thiệu
PHP (Hypertext Preprocessor) là ngôn ngữ script trên server được thiết kế để dễdàng xây dựng các trang Web động Mã PHP có thể thực thi trên Webserver để tạo ra mãHTML và xuất ra trình duyệt web theo yêu cầu của người sử dụng
Ngôn ngữ PHP ra đời năm 1994 Rasmus Lerdorf sau đó được phát triển bởi nhiềungười trải qua nhiều phiên bản Phiên bản hiện tại là PHP 5 đã được công bố 7/2004
Có nhiều lý do khiến cho việc sử dụng ngôn ngữ này chiếm ưu thế xin nêu ra đâymột số lý do cơ bản :
- Mã nguồn mở (open source code)
- Miễn phí, download dễ dàng từ Internet
2.1.2 Lệnh trong PHP
a Mã lệnh PHP
PHP cũng có thẻ bắt đầu và kết thúc giống với ngôn ngữ HTML Chỉ khác, đối vớiPHP chúng ta có nhiều cách để thể hiện
Trang 12Mặc dù có 4 cách thể hiện Nhưng đối với 1 lập trình viên có kinh nghiệm thì việc
sử dụng cách 1 vẫn là lựa chon tối ưu
Trong PHP để kết thúc 1 dòng lệnh chúng ta sử dụng dấu ";"
Để chú thích 1 đoạn dữ liệu nào đó trong PHP ta sử dụng dấu "//" cho từng dòng.Hoặc dùng cặp thẻ "/*…… */" cho từng cụm mã lệnh
<?php mysql_connect('localhost','root','123456'); //kết nối MySQL mysql_select_db("banhang"); //kết nối database mysql_query("SET NAMES 'utf8'"); //quy định kiểu tiếng việt
?>
b Xuất giá trị ra trình duyệt
Để xuất dữ liệu ra trình duyệt chúng ta có những dòng cú pháp sau :
- Echo "Thông tin";
- Printf "Thông tin";
Trang 13Thông tin bao gồm : biến, chuỗi, hoặc lệnh HTML ….
Nễu giữa hai chuỗi muốn liên kết với nhau ta sử dụng dấu "."
<?php
Echo “Chào bạn”; // xuất ra trình duyệt chuỗi bình thường Echo “<b>Hello</b>”; // xuất ra trình duyệt chữ in đậm – lệnh HTML Echo “Chào” “Nguyễn Văn A”; //nối 2 chuỗi lại với nhau
?>
2.1.3 Biến trong PHP
Biến được xem là vùng nhớ dữ liệu tạm thời Và giá trị có thể thay đổi được Biếnđược bắt đầu bằng ký hiệu "$" Và theo sau chúng là 1 từ, 1 cụm từ nhưng phải viết liềnhoặc có gạch dưới
1 biến được xem là hợp lệ khi nó thỏa các yếu tố :
- Tên của biến phải bắt đầu bằng dấu gạch dưới và theo sau là các ký tự, sốhay dấu gạch dưới
- Tên của biến không được phép trùng với các từ khóa của PHP
- Trong PHP để sử dụng 1 biến chúng ta thường phải khai báo trước, tuynhiên đối với các lập trình viên khi sử dụng họ thường xử lý cùng một lúccác công việc, nghĩa là vừa khái báo vừa gán dữ liệu cho biến
Bản thân biến cũng có thể gãn cho các kiểu dữ liệu khác Và tùy theo ý định củangười lập trình mong muốn trên chúng
Trang 14Nếu biến là cái có thể thay đổi được thì ngược lại hằng là cái chúng ta không thểthay đổi được Hằng trong PHP được định nghĩa bởi hàm define theo cú pháp: define(string tên_hằng, giá_trị_hằng ).
Cũng giống với biến hằng được xem là hợp lệ thì chúng phải đáp ứng 1 số yếu tố :
- Hằng không có dấu "$" ở trước tên
- Hằng có thể truy cập bất cứ vị trí nào trong mã lệnh
- Hằng chỉ được phép gán giá trị duy nhất 1 lần
- Hằng thường viết bằng chữ in để phân biệt với biến
Ví dụ: ‘abc’; "Hello world"
Để tạo 1 biễn chuỗi, chúng ta phải gán giá trị chuỗi cho 1 biến hợp lệ
Ví dụ:
$fisrt_name= "Nguyen";
$last_name= ‘Van A’;
Để liên kết 1 chuỗi và 1 biến chúng ta thường sử dụng dấu "."
c Kiểu dữ liệu trong PHP
Trang 15Các kiểu dữ liệu khác nhau chiếm các lượng bộ nhớ khác nhau và có thể được xử
lý theo cách khác nhau khi chúng được theo tác trong 1 script
Trong PHP chúng ta có 6 kiểu dữ liệu chính như sau :
true hoặc false
Trang 16Là toán tử được sử dụng để thực hiện các phép toán so sánh giữa hai số hạng.
|| Or Vế trái hoặc phải là
&
&
And
Vế trái và phải là true True&&
Trang 17/= $a/=$b Bằng với $a=$a/$b
2.1.5 Hàm trong PHP
a Câu điều kiện
Là biểu thức dùng kiểm tra 1 sự kiện Nếu chúng thỏa điều kiện đó thì sẽ thực thimột hành động Ngược lại sẽ là một hành động khác
Cú pháp:
If(Điều kiện) {
hành động }
Ví dụ:
If (isset($_GET['mode'])) {
Hành động – thực thi }
Trang 18Ví dụ
<?php while ($row = mysql_fetch_array($qr))
Ngoài ra Do…while cũng cho kết quả tương tự
c Biểu thức switch case
Là biểu thức sử dụng để giảm thiểu quá trình xử lý dữ liệu nếu có quá nhiều phéptoán if else
Cú pháp:
Switch(biến) {
Case giá trị 1: Hành động; Break;
Trang 201 form phải bao gồm:
- Tên form để dễ dàng tách biệt với giá trị của chúng
- Action: hành động chuyển tiếp đến link xử lý
- Method: Là phương thức truyền bao gồm POST và GET
<input type="submit" id="submit" value="Đăng nhập" />
<p><a href="index.php?mode=register">Đăng ký</a></p>
</form>
Đầu tiên khi khách nhập liệu username vào thì chúng sẽ chuyển tới tranglogin_handle.php để tiến hành xử lý thông tin Trên phương thức POST, với tên form làformlogin Giá trị mà chúng ta gởi là username vừa nhập liệu
PHP cho phép ta lấy giá trị dựa vào 2 phương thức POST và GET
- Đới với POST ta có : $_POST[‘Giá trị’]
- Đối với GET ta có : $_GET[‘Giá trị’]
Vậy với đoạn code trên có thể lấy được biến xử lý là : $_POST[‘username’];Username là tên của field mà người sử dụng nhập liệu vào
a Phương thức GET:
Phương thức này cũng được dùng để lấy dữ liệu từ form nhập liệu Tuy nhiênnhiệm vụ chính của nó vẫn là lấy nội dung trang dữ liệu từ web server
Trang 21Ví dụ: đối với form formlogin như ở trên, khi người dùng nhập username = u1 và
password = 123 Khi submit lên server và xử lý ở trang login_handle.php thì ta dùng
a Thiết lập session:
Để thiết lập 1 session ta sử dụng cú pháp: session_start()
Đoạn code này phải được nằm trên các kịch bản HTML Hoặc những lệnh echo,printf
Trang 22Để thiết lập 1 giá trị session, ngoài việc cho phép bắt đầu thực thi session Chúng
ta còn phải đăng ký 1 giá trị session Để tiện cho việc gán giá trị cho session đó
Ta có cú pháp sau: session_register("Name")
Ví dụ:
<?php ob_start();
session_start(); ?>
b Sử dụng giá trị của session:
Để sử dụng giá trị của session ta sử dụng mã lệnh sau:
Trang 23}
Đối với đoạn code trên, sau khi kiểm tra người dùng nhập đúng user và password
sẽ tạo ra session cho người dùng đó lưu trữ IDUSER và username để sử dụng cho các lần
xử lý sau
c Hủy bỏ session:
Để hủy bỏ giá trị của session ta có những cách sau:
session_destroy() // Cho phép hủy bỏ toàn bộ giá trị của sessionsession_unset()// Cho phép hủy bỏ session
2.2.1 Định nghĩa cơ sở dữ liệu, bảng, cột
Cơ sở dữ liệu: là tên của cơ sở dữ liệu chúng ta muốn sử dụng
Bảng: Là 1 bảng giá trị nằm trong cơ sở dữ liệu
Cột là 1 giá trị nằm trong bảng Dùng để lưu trữ các trường dữ liệu
Thuộc tính
Ví dụ
Trang 24Như vậy ta có thể hiểu như sau:
- 1 cơ sở dữ liệu có thể bao gồm nhiều bảng
- 1 bảng có thể bao gồm nhiều cột
- 1 cột có thể có hoặc không có những thuộc tính
2.2.2 Một số thuật ngữ trong MySQL
NULL : Giá trị cho phép rỗng
AUTO_INCREMENT : Cho phép giá trị tăng dần (tự động)
UNSIGNED : Phải là số nguyên dương
PRIMARY KEY : Cho phép nó là khóa chính trong bảng
2.2.3 Loại dữ liệu trong MySQL
Ở đây chúng tả chỉ giới thiệu 1 số loại thông dụng: 1 số dữ liệu khác có thể thamkhảo trên trang chủ của mysql
Kiểu dữ
Char Định dạng text có chiều dài từ 0-255Varchar Định dạng text có chiều dài từ 0-255Text Định dạng text có chiều dài từ 0-65535Longtext Định dạng text có chiều dài từ 0-4294967215INT Định dạng số có chiều dài từ 0-4294967215Float Định dạng thập phân có chiều dài nhỏDouble Định dạng thập phân có chiều dài lớnDate Định dạng thời gian theo kiểu YYYY-MM-DDDatetime Định dạng thời gian theo kiểu YYYY-MM-DD
HH:MM:SS
Trang 252.2.4 Cú pháp
a Tạo 1 cơ sở dữ liệu
CREATE DATABASE tên_cơ_sở_dữ_liệu;
Cú pháp sử dụng cơ sở dữ liệu: Use tên_database;
Cú pháp thoát khỏi cơ sở dữ liệu: Exit
Cú pháp tạo 1 bảng trong cơ sở dữ liệu:
CREATE TABLE user (<tên_cột> <mô_tả>,…,<tên_cột_n>… <mô_tả_n>)
Ví dụ:
mysql> create table user(user_id INT(15) UNSIGNED NOT NULL AUTO_INCREMENT, username VARCHAR(255) NOT NULL, password CHAR(50) NOT NULL, email VARCHAR(200) NOT NULL, PRIMARY KEY (user_id));
Hiển thị có bao nhiều bảng: show tables;
Hiển thị có bao nhiêu cột trong bảng: show columns from table;
Thêm 1 cột vào bảng :
ALTER TABLE tên_bảng ADD <tên_cột> <thuộc_tính> AFTER
<tên_cột>
Ví dụ:
mysql> alter table user add sex varchar(200) NOT NULL after email;
b Thêm giá trị vào bảng
Cú pháp:
INSERT INTO Tên_bảng(tên_cột) VALUES(Giá_trị_tương_ứng);
Ví dụ:
Trang 26mysql>insert into user(username,password,email,sex,home) values("Lanna","12345","lanna@yahoo.com","F","www.abc.com");
c Truy xuất dữ liệu
Cú pháp:
SELECT tên_cột FROM Tên_bảng;
Ví dụ:
mysql> select* from user;
d Truy xuất dữ liệu với điều kiện
Cú pháp:
SELECT tên_cột FROM Tên_bảng WHERE điều kiện;
Ví dụ:
mysql> select* from user where USERID=2;
e Truy cập dữ liệu và sắp xếp theo trình tự
Cú pháp:
SELECT tên_cột FROM Tên_bảng WHERE điều kiện (có thể có where hoặc không)ORDER BY Theo quy ước sắp xếp
Trong đó quy ước sắp xếp bao gồm hai thông số là ASC (từ trên xuống dưới),DESC (từ dưới lên trên)
Ví dụ:
mysql> select * from tinkm order by IDTIN ASC ;
Trang 27f Truy cập dữ liệu có giới hạn
Cú pháp:
SELECT tên_cột FROM Tên_bảng WHERE điều kiện (có thể có where hoặc không)LIMIT vị trí bắt đầu, số record muốn lấy ra
Ví dụ:
mysql> select * from tinkm order by IDTIN ASC limit 0,10 ;
g Cập nhật dữ liệu trong bảng
Cú pháp:
Update tên_bảng set tên_cột=Giá trị mới WHERE (điều kiện)
Nếu không có ràng buộc điều kiện, chúng sẽ cập nhật toàn bộ giá trị mới của cácrecord trong bảng
Ví dụ:
mysql> update user set HOTEN="u1.1" where USERID=1 ;
h Xóa dữ liệu trong bảng
Cú pháp:
DELETE FROM tên_bảng WHERE (điều kiện)
Nếu không có ràng buộc điều kiện, chúng sẽ xó toàn bộ giá trị của các recordtrong bảng
Ví dụ
mysql>delete from user where USERID=1 ;
Trang 282.2.5 Kết hợp PHP và MySQL trong ứng dụng website
a Kết nối cơ sở dữ liệu
Trang 29f Đóng kết nối cơ sở dữ liệu
Cú pháp:
mysql_close();
2.3 Silverlight for Windows Phone 7
2.3.1 Tổng quan về Windows Phone 7
Windows Phone (hay còn gọi là Windows Phone 7 Series) là hệ điều hành củaMicrosoft dành cho smartphone kế tục nền tảng Windows Mobile Khác với WindowsMobile, Windows Phone tập trung vào sự phát triển của Marketplace - nới các nhà pháttriển có thể cung cấp sản phẩm (miễn phí hoặc có phí) tới người dùng Với WindowsPhone 7, Microsoft đã phát triển giao diện người dùng mới mang tên Metro - tích hợpkhả năng liên kết với các phần cứng và phần mềm của hãng thứ ba một cách dễ dàng
2.3.2 Microsoft Visual Studio
Các ứng dụng Windows Phone được viếtbằng cách sử dụng các Silverlight vàXNA framework Tùy theo từng ứng dụng mà ta có thể chọn Silverlight hoặc XNAframework hoặc kết hợp cả 2
Muốn một XAML dựa
trên khuôn khổ ứng dụng
Muốn có một khuôn khổtrò chơi hiệu suất cao
Muốn một XAML, sự kiệntheo định hướng ứng dụngđược tích hợp với mộtkhuôn khổ trò chơi hiệusuất cao
Muốn nhanh chóng tạo ra
giao diện người dùng
Trang 30dụng Internet phong phú,ứng dụng phong cách.
Muốn sử dụng Window
Phone controls
Muốn quản lý tài sản nghệthuật như các mô hình, mắtlưới, sprites, kết cấu, hiệuứng, địa hình, hoặc hìnhảnh động trong XNAContent Pipeline
Muốn sử dụng WindowsPhone kiểm soát cùng vớicác tài sản nghệ thuật nhưcác mô hình, mắt lưới,sprites, kết cấu, hiệu ứng,địa hình, hoặc hình ảnhđộng trong XNA ContentPipeline
Nhúng video vào bên
trong ứng dụng
Muốn sử dụng dựng hìnhvăn bản Silverlight, baogồm cả văn bản quốc tế,thay vì các phông chữ maMuốn sử dụng một điều
khiển trình duyệt web
HTML
Muốn các mô hình chuyểnhướng trang của một ứngdụng Silverlight kết hợpsức mạnh đồ họa phongphú của một ứng dụngXNA
- Microsoft Expression Blend trong Windows Phone: là công cụ hỗ trợ xây dựng giadiện cho các ứng dụng Silverlight và cải thiện trải nghiệm người dùng ứng dụng qua việc
áp dụng những kiểu và hiệu ứng động
- Microsoft Expression Blend nhằm hỗ trợ các nhà thiết kế và phát triển sản phẩmtạo ra sản phẩm nhanh và hiệu quả hơn Một trong những tính năng nổi bật là cho phépcác nhà thiết kế nhanh chóng tạo ra các bản mẫu cho các thành phần của ứng dụng Vớitính năng này các nhà thiết kế có thể dễ dàng nhận được phản hồi và đánh giá dựa trên
Trang 31bản mẫu để có những điều chỉnh phù hợp, đẩy nhanh quá trình chuyển đổi từ ý tưởng đếnsản phẩm hoàn thiện Ngoài ra Expression Blend cũng hỗ trợ việc nhập file định dạngAdobe Photoshop và Illustrator, tích hợp khả năng hiển thị trực tiếp Live Preview.
- Windows Phone Developer Tools: Windows Phone Emulator giả lập này khôngchỉ cung cấp cho bạn cơ hội để chạy mã của bạn một cách nhanh chóng hơn, giảm chu kỳphát triển, mà còn cung cấp cho các nhà phát triển những người không sở hữu một thiết
bị vật lý có cơ hội thử bàn tay của họ để phát triển điện thoại
2.3.3 Cấu trúc project trong Windows Phone Application Project Template sử
dụng Visual Studio 2010
- App.xaml/App.xaml.cs: Định nghĩa đầu vào của ứng dụng, khởi tạo các resource
mức ứng dụng và hiển thị giao diện ứng dụng
P File App.xaml với các XAML markup (Extensible Application Markup Language) gồm một root element là Application và phần Application.Resources chứa các resources mức ứng dụng như color,
brushes, style object…
P Bên cạnh đó nó khởi tạo 1 thuộc tính ApplicationLifetimeObject để tạo
ra đối tượng PhoneApplicationService, đối tượng quản lý các thuộc tính
và trạng thái ứng dụng khi nó active hoặc inactive
P File App định nghĩa một instance của lớp Application chứa ứng dụng Silverlight for Windows Phone
P Ứng dụng Silverlight for Windows Phone chứa 1 thuộc tính là RootFrame định nghĩa Page bắt đầu ứng dụng Tất cả các ứng dụng Windows Phone chỉ có một thành phần container mức trên cùng với kiểu dữ liệu là PhoneApplicationFrame Frame này chứa 1 hoặc nhiều
PhoneApplicationPage biểu thị nội dung của ứng dụng đồng thời xử lýviệc navigate giữa các page
- MainPage.xaml/MainPage.xaml.cs: Định nghĩa trang giao diện khởi đầu ứng dụng
Trang 32- ApplicationIcon.png: Ảnh icon ứng dụng trong application list của phone
- Background.png: Ảnh icon ứng dụng ở màn hình start.
- SplashScreenImage.jpg: Ảnh đầu tiên hiển thị khi launch ứng dụng
- Properties\AppManifest.xml: File manifest dùng để tạo ra gói ứng dụng
- Properties\AssemblyInfo.cs: Chứa tên và thông tin phiên bản được nhúng vào trong
file assembly khi compile
- Properties\WMAppManifest.xml: File manifest chứa các thông tin riêng của ứng
dụng Windows Phone Silverlight
P Để chỉnh sửa một số thuộc tính đặc biệt của phone ta có thể sử dụngProperties window Các thuộc tính này sẽ lưu trữ trong file
WMAppManifest.xml, liên quan đến việc deploy ứng dụng và giao diện của
ứng dụng trên thiết bị
2.3.4 Nền tảng ứng dụng cho Windows Phone
Windows Phone có nền tảng ứng dụng cho phép các nhà phát triển để tạo ra nhữngtrải nghiệm của người tiêu dùng hấp dẫn đang chạy trên một điện thoại Windows ® Nóđược xây dựng dựa trên công cụ Microsoft ® hiện tại và công nghệ chẳng hạn nhưVisual Studio, Expression Blend ® Silverlight ®, và XNA Các nhà phát triển đã quenthuộc với những công nghệ và các công cụ liên quan nên có thể tạo ra các ứng dụng mớicho Windows điện thoại mà không gặp nhiều khó khăn Chủ đề này bao gồm các phầnsau:
- Tổng quan: Nền tảng ứng dụng của Windows Phone cung cấp 2 nền tảng cho nhà phát triển:
P Silverlight cho sự kiện điều khiển, phát triển ứng dụng dựa trên XAMLcho phép các nhà phát triển để phát triển đánh dấu sáng tạo dựa trênkinh nghiệm người dùng và các ứng dụng đa phương tiện
P XNA cho vòng lặp dựa trên trò chơi cho phép nhập vai và kinh nghiệmchơi game thú vị và vui chơi giải trí
Trang 33- Kiến trúc: Nền tảng ứng dụng của Windows Phone được tạo thành từ 4 thànhphần chính:
P Runtimes - Silverlight và XNA, cùng với tính năng điện thoại cụ thể,kết hợp để cung cấp một môi trường trưởng thành trong việc xây dựng
an toàn, các ứng dụng đồ họa phong phú
P Tools - Visual Studio và Expression Blend, và các công cụ và tài liệuliên quan , tạo ra một trải nghiệm phát triển hoàn chỉnh để nhanh chóng
gỡ lỗi, triển khai và cập nhật các ứng dụng
P Dịch vụ điện toán đám mây (Cloud Services) Windows Azure, XboxLIVE, Thông báo dịch vụ, và Dịch vụ định vị, cùng với một loạt cácdịch vụ web khác, cho phép các nhà phát triển để chia sẻ dữ liệu qua cácđám mây và lợi ích người tiêu dùng bằng cách cung cấp một trải nghiệmliền mạch trên thiết bị bất cứ điều gì họ đang sử dụng Kết nối với cácdịch vụ web của bên thứ ba cũng hỗ trợ đầy đủ
P Dịch vụ cổng thông tin (Portal Services) - điện thoại WindowsMarketplace cung cấp các dịch vụ mạnh mẽ cho phép các nhà phát triểnđăng ký, xác nhận, và thị trường ứng dụng của họ
- XNA framework : XNA bao gồm phần mềm, dịch vụ, và các nguồn lực tập trung vào việc cho phép các nhà phát triển game thành công phát triển trên nền tảng chơi game Microsoft Microsoft cung cấp công nghệ chophép các nhà phát triển chuyên nghiệp để nhanh chóng kích hoạt các trò
Trang 34chơi trên các nền tảng như Windows Phone, Xbox 360, Zune HD, và
Windows 7 XNA cung cấp một bộ đầy đủ của các API quản lý để phát triển trò chơi Điều này bao gồm các API dựa trên mã-2D hỗ trợ luân chuyển, nhân rộng, kéo dài, và lọc cũng như đồ họa 3D API cho hình học 3D, kết cấu, và ánh sáng tiêu chuẩn và bóng
- Sensors : Một loạt các cảm biến sẽ trả lại dữ liệu có thể được sử dụng bởi các nhà phát triển Ví dụ, đầu vào cảm ứng đa điểm, gia tốc, la bàn, cảm biến con quay hồi chuyển, và microphone đều có thể truy cập bởi các API
- Media: Cả hai Silverlight và XNA Framework cung cấp cho các nhà phát triển với một mô hình lập trình để xây dựng các kinh nghiệm người dùng phong phú kết hợp đồ họa, hoạt hình, và các phương tiện truyền thông Các API được quản lý hỗ trợ một loạt các định dạng phương tiện truyền thông và cho phép phát hiện và đếm số phương tiện truyền thông trên điện thoại và cho phát lại rằng phương tiện truyền thông
- Data : Isolated lưu trữ cho phép một ứng dụng để tạo ra và duy trì dữliệu trong một thư mục ảo bị cô lập sandbox Tất cả các hoạt động I / O hạnchế để lưu trữ bị cô lập và không có quyền truy cập trực tiếp vào hệ thống điều hành cơ bản hệ thống tập tin Điều này ngăn cản truy cập trái phép và tham nhũng dữ liệu bằng các ứng dụng khác
Dữ liệu cấu trúc có thể được lưu trữ trong một cơ sở dữ liệu quan hệ và có thể được truy cập bằng cách sử dụng LINQ to SQL
- Location : Dịch vụ Location Microsoft cho Windows Phone cho phép các nhà phát triển ứng dụng để truy cập thông tin vị trí địa lý của người dùng từ một API duy nhất Các nhà phát triển có thể truy vấn cho vị trí hiện tại, đăng ký các sự kiện Location Thay đổi, thiết lập độ chính xác mong muốn của dữ liệu, có thể truy cập các thiết bị nhóm và tốc độ, và tínhtoán khoảng cách giữa các điểm Các API Vị trí trên điện thoại sẽ làm việc kết hợp với các dịch vụ đám mây
Trang 35b Tools
- Visual Studio 2010 : là IDE, Visual Studio bao gồm một nhà thiết
kế, trình gỡ lỗi, hệ thống dự án, đóng gói, và thế hệ biểu hiện
- Expression Blend : Trong cùng một cách mà nhà thiết kế sử dụng Expression Blend để thiết kế các ứng dụng Internet phong phú cho các trìnhduyệt máy tính, cũng có thể thiết kế các ứng dụng Silverlight dựa trên sáng tạo và độc đáo
- Windows Phone Emulator : Windows Emulator Điện thoại được tíchhợp vào Visual Studio và Expression Blend để làm cho việc thử nghiệm và
gỡ lỗi các ứng dụng dễ dàng hơn và hiệu quả hơn Giả lập này hỗ trợ đầy đủtriển khai ứng dụng, gỡ lỗi, và thực hiện ứng dụng Nó bao gồm hỗ trợ cho GPU và thay đổi định hướng
- XNA game studio : môi trường thiết kế tích hợp mà các nhà phát triển có thể sử dụng để xây dựng trò chơi vui nhộn và thú vị cho Microsoft Windows ®, Microsoft Xbox 360 ® video game và vui chơi giải trí hệ thống, Microsoft Zune ®, và Windows Phone
- Samples, documentation, guides and community : nhà phát triển có thể chia sẽ kinh nghiệm, giải quyết các thắc mắc và là nơi trao đổi thông tinlập trình
c Cloud Services
- Notifications : (Thông báo) Để kích hoạt tính năng hiệu quả, năng
động, và cập nhật thông tin và các kênh truyền thông, ứng dụng cung cấp một API để cho phép các dịch vụ thông báo cho người sử dụng khi các sự kiện liên quan đã xảy ra Điều này giúp loại bỏ sự cần thiết phải bỏ phiếu
và làm giảm tiêu thụ pin
Trang 36- Location Cloud Services : cung cấp dịch vụ wifi, mạng tế bào và GPS
- Identity, Feeds, Social, and Maps Services : truyền thông cộng đồng
- Bắt đầu với AppHub
- Thiết kế 1 ứng dụng và tạo ra 1 gói ứng dụng
- Kiểm tra lỗi củ chương trình
- Xuất bản 1 chương trình
- Quản lý ứng dụng
Trang 37Chương 3: Xây dựng ứng dụng 3.1 Cơ sở dữ liệu
3.1.1 Giới thiệu
Dữ liệu được chứa trong database tên ‘banhang’ gổm 9 tables: admin,chungloaisp, hd_chitiet, kmhoadon, kmuser, loaisp, sanpham, tinkm, user
Để tăng tính bảo mật cho trang web nên ta có 2 table admin và user
- Table admin: chứa username và password của admin trang web, và chỉ đượctruy xuất trong code của phần đăng nhập của admin
- Table user: chứa thông tin các thành viên của trang web mà người dùng đăng
kí khi sử dụng hay do admin tạo ra
Hình thức khuyến mãi gồm có khuyến mãi theo hóa đơn và khuyến mãi theo cấp
TONGTIEN_L
IATRI
Theo đó, khi khách hàng thành viên giao dịch với hóa đơn dưới 100 triệu thì đượcchiết khấu 0% (không chiết khấu), và mua trên 100 triệu-dưới 200 triệu thì được chiếtkhấu 2% trên tổng giá trị hóa đơn Tương tự cho các giá trị sau
Trang 38- Theo cấp độ user: theo định nghĩa trong table kmuser Hiện tại table kmuser cócác giá trị như sau:
I
DKM
LOAI_USER
DOANHSO_N
DOANHSO_L
AMGIA
viên có doanhthu dưới 100tr
2
viên có doanhthu trên 200tr vàdưới 300tr
3
3647
Thànhviên có doanhthu trên 300tr
5
Theo đó đối với khách hàng loại Stone thì thì được chiết khấu 0% (không chiếtkhấu), và Bronze thì được chiết khấu 2% trên tổng giá trị hóa đơn Tương tự cho các giátrị sau
Table hd_chitiet được dùng để lưu các hóa đơn hàng mà user đã submit xác nhậnmua lên hệ thống Ứng với 1 MAHD sẽ có 1 IDUSER và 1 IDSP tương ứng
Table tinkm chứa các thông tin khuyến mãi của website, được dùng để hiển thịnội dụng lên web và ngoài ra còn xuất ra file RSS xml hỗ trợ cho windows phone 7 Do
đó định dạng của colum NGAY phải là kiểu datatime YYYY-MM-DD HH:MM:SS
3.1.2 Chi tiết bảng dữ liệu
- Table admin:
Trang 39# Column Type Collation Attribu
tes
Nu ll
Defa ult
No None
- Table user:
es
Null Default Extra
4 USERNAME varchar(
50)
latin1_swedish_ci
5 PASSWORD varchar(
50)
latin1_swedish_ci
- Table kmuser:
Trang 40# Column Type Collation Attribu
tes
Nu ll
Defa ult
utf8mb4_unicode_ci
Defau lt
No None
3 HINH varchar(5
0)
utf8mb4_unicode_ci