Tải bản đầy đủ (.pdf) (68 trang)

Lập trìn windows phone 8 tiếng việt có hướng dẫn cơ bản

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.1 MB, 68 trang )

Nguyễn Văn Thạnh-AnLang-Huế | 1

NGUYỄN VĂN THẠNH
LẬP TRÌNH WINDOWS
PHONE 8
( Các hướng dẫn cơ bản )







2014
Nguyễn Văn Thạnh-AnLang-Huế | 2



Nguyễn Văn Thạnh-AnLang-Huế | 3





I-Mở đầu
ðây là tài liệu hướng dẫn thực hành cơ bản cho người mới bắt ñầu làm quen
với lập trình Windows Phone 8 trên Visual Studio 12 cài ñặt cho máy tính có hệ
ñiều hành Windows 8. Vì vậy trong tài liệu này có nhiều ñiều ñược giải thích cặn
kẻ bằng hình ảnh ñể minh họa cho các thao tác trên máy tính. Có thể bỏ qua các
giải thích ñó nếu bạn ñã quen thuộc với Windows 8 và VS 2012.Ngoài ra ñể theo
dõi tài liệu bạn cũng cần phải có một ít hiểu biết về ngôn ngữ lập trình C#, khái


niệm về ngôn ngữ kịch bản.
Trong tài liệu chúng tôi dùng windows phone Emulator ( trình giả lập ñiện
thoại với hệ ñiều hành Windows Phone ) ñể chạy các ứng dụng và dùng VS 2012
ñể viết code .
Tài liệu ñược dịch từ các tài liệu dạng ebook trên Internet, các bài viết có
liên quan trên MSDN (

/develop/
), Nokia Dev ( )và trên các diễn ñàn về
Windows Phone. Xin chân thành cảm ơn các tác giả.



Nguyễn Văn Thạnh-AnLang-Huế | 4






II-Cài đặt Windows Phone SDK 8.0
Windows Phone là hệ ñiều hành của Microsoft dành cho smartphone, nó kế
tục nền tảng Windows Mobile mặc dù chúng không tương thích với nhau. Khác
với Windows Mobile, Windows Phone tập trung vào sự phát triển của Market
place - nơi các nhà phát triển có thể cung cấp sản phẩm (miễn phí hoặc có phí)
tới người dùng. Windows Phone ñược bán vào tháng 10 năm 2010 và ñầu năm
2011 tại Châu Á.
Ngày 20 tháng 6 năm 2012, Microsoft giới thiệu Windows Phone 8, một thế
hệ hệ ñiều hành mới, và 4 tháng sau, 29 tháng 10 năm 2012, Microsoft bắt ñầu bán
phiên bản này. Windows Phone 8 thay thế lõi kiến trúc Windows CE trên

Windows Phone 7 thành kernel của Windows NT vốn ñược thiết kế cho Windows
8, ñiều này ñã làm cho ứng dụng dễ dàng ñược kết nối giữa hai hệ ñiều
hành. Ngoài ra, Windows Phone 8 còn hỗ trợ CPU ña nhân, nhiều ñộ phân giải, tùy
biến Start Screen, phiên bản di ñộng của Internet Explorer 10, Nokia Maps thay thế
Bing Maps.Theo Microsoft, Windows Phone 8 sẽ ñược hỗ trợ ñến ngày 8 tháng 7
năm 2014.
Phiên bản mới nhất hiện tại là Windows Phone 8 nhưng bản 8.1 cũng ñược
cho ra ñời trong năm 2014
Nguyễn Văn Thạnh-AnLang-Huế | 5

Trước khi phát triển một ứng dụng ñiện thoại Windows 8 , cần phải cài ñặt
Windows Phone 8 SDK (Software Development Kit) trên một máy tính chạy
Windows 8 bản 64-bit . Lý do là vì chúng hổ trợ chạy Windows Phone Emulator ,
trình giả lập Windows Phone, nó hoạt ñộng như một máy ảo trong Hyper-V, nền
tảng ảo hóa của Microsoft . Vì vậy, khi sau khi cài ñặt trên máy tính ,ta sẽ có hệ
ñiều hành Windows Phone 8 chạy trên một ñiện thoại ảo trông giống như một
ñiện thoại thực sự và ta có thể dùng Emulator thử nghiệm công việc của mình.
1. Tìm hiểu các yêu cầu về hệ ñiều hành
Việc trước tiên là kiểm tra phiên bản hệ ñiều hành trên máy tính.Ta vào
Control Panel, System and Security , trong hộp thoại System sẽ thấy phiên bản
HðH của máy tính :

ðể tiết kiệm thời gian và chi phí,nếu bạn ñang chạy Windows phiên bản
trước 32-bit, bạn có thể sử dụng Windows Upgrade Advisor bằng cách truy cập:
Nguyễn Văn Thạnh-AnLang-Huế | 6

ñể nâng cấp lên Windows 8
hay 8.1 bản 64-bit .
Với mục ñích phát triển ứng dụng Windows Phone, bạn không cần phải lựa
chọn phiên bản Pro, chỉ cần ñảm bảo bất cứ ñiều gì bạn chọn ñều là 64-bit.

Tiếp theo, bạn tải về và cài ñặt Windows Phone SDK 8. Nếu bạn ñã có
Visual Studio 2012 Professional hoặc cao hơn, trình cài ñặt sẽ chỉ thêm các công
cụ cần thiết cho phát triển ñiện thoại giả lập. Nếu bạn không có Visual Studio
2012, trình cài ñặt sẽ thêm Visual Studio 2012 Express for Windows Phone 8. Nó
là một phiên bản ñơn nhiệm của Visual Studio ñặc biệt dành cho phát triển ñiện
thoại , do ñó bạn sẽ không nhận ñược các công cụ ñể tạo ra các ứng dụng
Windows 8 Store, Windows Presentation Foundation, ASP.NET, vv Tôi sử
dụng phiên bản này cho phần còn lại của loạt bài này, tuy vậy cách làm là gần
giống như cách sử dụng Visual Studio 2012 Professional hoặc cao hơn.
Link tải Windows Phone SDK


2. Kích hoạt Hyper-V
Trong khi cài ñặt, bạn có thể thấy thông báo này:
Nguyễn Văn Thạnh-AnLang-Huế | 7


Trong trường hợp này, bạn sẽ cần phải kích hoạt bo mạch chủ của bạn ñể
chạy Hyper-V.
Sau ñây là hướng dẫn kích hoạt Hyper-V của microsoft :
ðể kích hoạt Hyper-V, bạn phải làm những ñiều sau ñây:
- Enable các thiết lập BIOS Hyper-V yêu cầu .
- Enable Hyper-V trong Windows.
ðể kích hoạt các thiết lập BIOS Hyper-V yêu cầu:
Nguyễn Văn Thạnh-AnLang-Huế | 8

Khởi ñộng lại máy tính và bấm phím cài ñặt BIOS .Bạn có thể xem và thay
ñổi các thiết lập BIOS của máy tính bằng cách nhấn một phím qui ñịnh trong quá
trình khởi ñộng máy tính. Phím vào BIOS khác nhau tùy thuộc vào nhà sản xuất
motherboard. Nó thường là một phím ñặc biệt như < Del > hoặc một phím chức

năng như < F2 > hoặc < F10 >.
Enable các mục sau ñây nếu chúng có sẵn:

Feature

Setting AMD

Setting Intel

SLAT (Second Level Address Translation)

NP (Nested Page Tables)

RVI (Rapid Virtualization Indexing)

EPT (Extended Page Tables)

Ảo hóa hỗ trợ phần cứng Hardware-assisted virtualization

SVM (hỗ trợ bộ xử lý AMD cho Ảo hóa hỗ trợ phần cứng )

VMX (hỗ trợ Intel cho Ảo hóa hỗ trợ phần cứng )
Nguyễn Văn Thạnh-AnLang-Huế | 9


Data Execution Prevention (DEP)

NX (No Execute)

XD (Execute Disable)


Disable các mục sau ñây nếu chúng có sẵn:

Intel VT-d

Trusted Execution

Lưu cài ñặt và khởi ñộng lại máy tính một lần nữa.
ðể kích hoạt Hyper-V trong Windows:
1. Trong Control Panel, bấm Programs, và sau ñó nhấp vào Turn Windows
features on or off.
2. Trong hộp thoại Windows Features, click Hyper-V. Danh sách các tùy
chọn sẽ mở rộng.
3. Trong danh sách mở rộng các tùy chọn, kích chọn ít nhất là Hyper-V
Management tools, Platform, và sau ñó nhấn OK

.
Trong trường hợp củ
a tôi, tôi d
mới nhất củ
a Intel i7 chip i7
nghệ Hyper-Threading củ
a Intel

Nguyễn Văn Thạnh
-

a tôi, tôi d
ùng bo mạch chủ
Asus Sabertooth Z77

a Intel i7 chip i7
-3770K phù hợp socket LGA1155.
N
a Intel
Tôi chỉ phải bật ON các chứ
c năng sau :
-
AnLang-Huế | 10
Asus Sabertooth Z77
, bản
N
ó hỗ trợ công
c năng sau :



Tôi vào Advanced Settings r
threading chọn Enable.

3-Chạy emulator lần ñầ
u :
Thực tế là khi chạ
y Emulator l
chưa. Nếu Hyper-V chưa b

Click Turn on Hyper-
V ñ
Panel, sau ñó enable Hyper-
V trong Windows
Nếu Hyper-V ñã bậ

t nhưng b
Administrators group
trên máy thì s
quyề
n Administrator thì thôi)
Click Retry ñể
cho phép quy
Administrators group. Nế
u b
Nguyễn Văn Thạnh
-
Tôi vào Advanced Settings r
ồi chọn tab Advanced và

u :

y Emulator l
ần ñầu , Emulator sẽ kiể
m tra Hyper

t thì hộp thoại sau sẽ xuất hiện :
V ñ
ể mở hộp thoại Windows Features từ

V trong Windows


t nhưng b
ạn chưa phải là thành viên của
local Hyper

trên máy thì s
ẽ có hộp thoại sau xuất hiệ
n ( n
n Administrator thì thôi)


cho phép quy
ền truy cập và bạn ñược phép gia nhậ
p
u b
ạn ñang triển khai ứng dụng thì bạ
n s
-
AnLang-Huế | 11

mục Hyper-
m tra Hyper
-V ñã bật

Control
local Hyper
-V
n ( n
ếu bạn ñang ở
p
local Hyper-V
n s
ẽ nhận ñược
Nguyễn Văn Thạnh-AnLang-Huế | 12


thông báo lỗi triển khai thất bại . Click OK sau ñó biên dịch lại ứng dụng trên
emulator.
Theo tôi bạn nên cài thêm VS 2012 ñầy ñủ là tốt hơn vì VS cho phép bạn
tạo ứng dụng cho nhiều loại.Hiện nay ñã có VS 2013 Ultimate, Premium,
Professional . Trong tài liệu này tôi dùng VS 2012.

Nếu khi mở một dự án Windows Phone 8 mà không xuất hiện Designer ,
thay vào ñó là thông báo lỗi thì hãy cập nhật VS 2012 .Quá trình cập nhật lâu hay
mau tùy theo mạng sử dụng. Sau khi cập nhật xong thì khởi ñộng lại VS là ñược,
tốt nhất là nên khởi ñộng lại máy sau khi cập nhật.
Ngoài ra sau khi cài ñặt VS bạn có thể cài thêm các Extension có ích cho
mình. Chúng tôi sẽ hướng dẫn cách cài ñặt sau này.












Nguyễn Văn Thạnh-AnLang-Huế | 13




III: Viết ứng dụng windows phone 8 ñầu tiên.

Bây giờ chúng ta ñã có các công cụ cần cài ñặt, và có thể xây dựng ứng
dụng Windows Phone 8 ñầu tiên :

Dưới ñây là kế hoạch của chúng ta trong phần này :
1. Tạo ra một dự án Windows Phone App mới
2. Thực hiện một số chỉnh sửa ñơn giản, như loại bỏ các comment, thêm một
MediaControl ( ñiều khiển media ) , một nút ñiều khiển và ñặt tên cho nó.
3. Viết một xử lý sự kiện(event handler) sẽ ñáp ứng với sự kiện bấm nút
4. Khi sự kiện nhấn vào nút xảy ra thì sẽ phát một tập tin âm thanh dạng wav.

1. Tạo một dự án Windows Phone app mới tên là "PetSounds"
Hy vọng rằng một số bước cơ bản như tạo dự án mới, thêm tệp mới v.v ñã
quen thuộc với bạn từ kinh nghiệm cá nhân.Chúng tôi không muốn mất nhiều thời
gian ñể giải thích các vấn ñề ñó. ðể tạo dự án mới ta làm như sau ( ta ñưa hình ảnh
minh họa trước và hướng dẫn sau ) :


1. File
Nguyễn Văn Thạnh-AnLang-Huế | 14

2. New
3. Project
Ở cửa sổ New project:


1/ Chọn Visual C# → Windows Phone
2/ Chọn Windows Phone App
3/ Ở mục Name ñổi tên thành PetSounds
4/ Lưu ý mục Solution name cũng tự ñộng ñổi thành PetSounds
5/ Nếu cần lưu file ở một thư mục khác thì ấn nút Browse…

6/ Nhấn nút OK
Chúng ta sẽ gặp bảng sau cho phép chọn hệ ñiều hành windows phone :
Nguyễn Văn Thạnh-AnLang-Huế | 15



Với VS 2012 thì mặc ñịnh là hệ ñiều hành Windows Phone OS 8.0. Tuy
nhiên nếu muốn ứng dụng có thể chạy trên hệ ñiều hành phiên bản thấp hơn ta
kích vào mũi tên ñể chọn các phiên bản hệ ñiều hành thấp. Kích OK

2. Xóa các comment không cần thiết ñể dễ dàng ñiều hướng thông qua code
Sau một lúc, dự án mới sẽ ñược tạo ra và nạp vào vùng Solution Explorer,
file MainPage.xaml sẽ ñược hiển thị trong khu vực chính của Visual Studio. Lưu ý
rằng ở Windows Phone các “màn hình" xuất hiện ñược gọi là "trang", ví dụ trang
MainPage.xaml. Trong ứng dụng ñầu tiên , chúng tôi sẽ chỉ làm việc với 1 "trang",
nhưng trong các ứng dụng khác, chúng ta sẽ thêm các trang và di chuyển giữa
chúng
Tôi giả sử bạn ñã chưa bao giờ làm việc với một dự án Windows Phone mẫu
nào cả . MainPage.xaml và visual designer như sau:
Nguyễn Văn Thạnh-AnLang-Huế | 16



Khu vực 1 là vùng visual designer : ñây là khu vực ta dùng ñể thiết kế trực
quan màn hình nhờ vào thanh công cụ ( sẽ ñề cập sau )
Khu vực 2 là vùng code của file XAML. ðây là khu vực ta viết file xaml
bằng tay. Khi thay ñổi code thì hình ảnh ở vùng 1 cũng thay ñổi theo và ngược lại
nếu thay ñổi ở 1 thì code XAML cũng thay ñổi. Chúng là 2 cách thể hiện, nhưng
ñều chỉ chung một sự vật.
Có một số các công cụ ở bên dưới và giữa 2 vùng.

(bên dưới )


( giữa 2 vùng )
Nguyễn Văn Thạnh-AnLang-Huế | 17



Chúng ta có thể kích vào các nút ñó ñể thấy sự thay ñổi .
Ta quay lại với mục ñích ban ñầu là xóa các comment không cần thiết . Ta sẽ xóa 2
vùng comment chỉ ra sau ñây:
Nguyễn Văn Thạnh-AnLang-Huế | 18



Bạn có thể xóa các comment từ vùng có ký hiệu ⇠ ñến ký hiệu ⇢( dòng 23
tới 41 và từ 53 tới 59 )File XAML còn lại như sau :

Nguyễn Văn Thạnh-AnLang-Huế | 19


Chúng ta sẽ tập trung vào "ContentPanel" ( khu vực thiết kế các phần tử cho
màn hình ứng dụng )bắt ñầu từ dòng 36 trong suốt bài học này.Code mới cho
XAML ñược thêm vào giữa các phần tử mở <Grid> và ñóng </Grid>
3. Thêm một nút ñiều khiển vào ContentPanel và thiết kế dạng cho nó
Thêm mã sau ñây giữa các phần tử mở <Grid> và ñóng </Grid> ( dòng 39 )

Nguyễn Văn Thạnh-AnLang-Huế | 20

Sau khi bạn thêm vào code :

<Button>Quack </Button>
thì khu vực visual designer ( thiết kế trực quan) thay ñổi như sau:

Màn hình có một nút trên ñó có từ “Quack”
Nút chiếm thực tế toàn bộ diện tích của màn hình. ðiều ñó không làm
chúng ta hài lòng.ðể giới hạn kích thước của nút ta thêm vào thuộc tính Height
(chiều cao) và width ( chiều rộng) cho nút như sau:

Giá trị 200 chỉ 200 pixels. Visual Designer cập nhật với nút nhỏ hơn :

Nguyễn Văn Thạnh-AnLang-Huế | 21


Chúng ta hãy di chuyển nút ñiều khiển ñến góc trên bên trái của trang (bên
dưới các Trang tiêu ñề), và làm cho màu nền của nó màu ñỏ. Code của nó như sau :


Tôi cũng ñã cho < Button> một cái tên vì vậy mà tôi có thể tham khảo ñiều
khiển này trong C#. Việc ñặt tên cho ñiều khiển là tùy chọn. Bạn chỉ ñặt tên cho
những ñiều khiển này khi nào bạn muốn dùng nó bằng cách nào ñó trong C#. Tôi
biết tôi sẽ muốn truy cập vào nút sau này do ñó bây giờ tôi cung cấp cho nó một
tên .Visual designer cập nhật các thay ñổi như sau :


Nguyễn Văn Thạnh-AnLang-Huế | 22


Bạn có thể thấy rằng ta có thể ñiều khiển các tính chất của các ñối tượng
trên trang Windows Phone bằng cách thiết lập các thuộc tính cho nó.


4. Thêm một ñiều khiển MediaElement
Tiếp theo, hãy thêm một ñiều khiển MediaElement vào XAML, bên dưới nút

Lưu ý ta có thể thêm cac khoảng trống vào các dòng trong code của XAML
mà không làm ảnh hưởng ñến bất cứ ñiều gì. Như bạn sẽ tìm hiểu sau này , Visual
Studio sẽ tự ñộng thụt lề và bỏ khoảng trống giữa các ñoạn code khi biên dịch.
Ngoài ra, ta ñã không thiết lập các thuộc tính Source của MediaElement. ðó
là vì tôi không có bất kỳ nguồn nào (tức là các phần tử ña phương tiện như tập tin
âm thanh) trong dự án của tôi ñể lựa chọn.
5. Thêm một tập tin .wav làm assets cho dự án
Có thể dùng một file .wav nào bạn có hoặc bạn ñã tải xuống các assets ñi
kèm với dự án này. Giải nén tập tin ñó vào một thư mục có tên C9Phone8 trong
My Documents. Thư mục C9Phone8 có 3 folder là 3 assets :

Nguyễn Văn Thạnh-AnLang-Huế | 23



Ta sẽ dùng assets tên là PetSounds_Assets . Bên trong nó có 2 folder khác
.Copy folder Audio vào dự án .

Các file âm thanh này sẽ ñược ñưa vào folder assets của dự án . Folder assets
của dự án ñược nhìn thấy trong solution explorer như sau :


Ta kéo thả folder Audio từ windows explorer vào và ñược như hình sau :
Nguyễn Văn Thạnh-AnLang-Huế | 24




Có nhiều file âm thanh .wav trong ứng dụng , nhưng tôi muốn dùng một
file cụ thể tập tinDuck.WAV . Tôi sẽ thêm file ñó như là giá trị (value) của
thuộc tính Source trong phần tử MediaElement trong XAML :
Source =” / Assets/Audio/Animals/Duck.wav”.
Hoặc Source =” Assets/Audio/Animals/Duck.wav”. tùy theo vị trí của file xaml.
Lưu ý rằng ñường dẫn là tương ñối so với file MainPage.xaml nằm trong thư mục
gốc của dự án:



Nếu thích ta có thể ñặt file .wav ở một nơi khác, vi dụ ngay trong solution , khi ñó
ta viết : Source =”Duck.wav”.

:
Tôi cũng ñã thêm 2 thuộc tính nữa : AutoPlay và Volume .
Volume có giá trị 1, nghĩa là mức to nhất. Nhiều thiết lập trong windows Phone
API có giá trị từ 0.0 ñến 1.0 với 0.5 là giá trị trung bình.
Phần lớn các giá trị này thuộc kiểu Double trong C#.
Nguyễn Văn Thạnh-AnLang-Huế | 25

Tiếp theo tôi muốn thông qua ñiều khiển này ñể ñiều khiển việc phát âm
thanh mỗi khi ấn nút, vì vậy cần phải cho MediaControl một tên.
AutoPlay có giá trị là False. Nếu ñặt true , file Duck.wav sẽ chạy ngay sau
khi ứng dụng tải lên.ðó là ñiều tôi không muốn. Tôi muốn thiết lập rằng mỗi khi
tôi nhấn nút “Quack” thì file wav sẽ chạy.
Chúng ta sẽ viết code cho ñiều ñó sau .
6. Thêm một xử lý sự kiện cho sự kiện ấn nút.
Trong phần tử <Button> XAML ta thêm thuộc “Click =” , Intellisense của
VS ( Intellisense: tính năng cho phép dự ñoán lệnh trong VS, nó cung cấp một
menu pop-up, mục ñích là ñể giảm thiểu tối ña sự sai sót trong việc gõ câu lệnh và

nhớ các biến ñã ñặt, còn gọi là trợ giúp ngữ cảnh) sẽ cung cấp cho bạn lệnh ñể tạo
nên một xử lý sự kiện.

Tùy chọn ñược ñánh dấu ñược ñưa vào bằng cách nhấn phím Enter trên bàn phím
và nó tạo ra một tên cho xử lý sự kiện click:

×