Đồ án Nghiên cứu xây dựng ứng dụng cho hệ điều hành windows phone - Ngô Sỹ Hùng
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Nghiên cứu xây dựng ứng dụng cho hệ điều hành windows phone - Ngô Sỹ Hùng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- do_an_nghien_cuu_xay_dung_ung_dung_cho_he_dieu_hanh_windows.pdf
Nội dung text: Đồ án Nghiên cứu xây dựng ứng dụng cho hệ điều hành windows phone - Ngô Sỹ Hùng
- 1 LỜI CẢM ƠN Trong lời đầu tiên của toàn văn báo cáo Đồ án Tốt Nghiệp “Nghiên cứu xây dựng ứng dụng cho Hệ điều hành Windows Phone” này, em muốn gửi những lời cám ơn và biết ơn chân thành nhất của mình tới tất cả những người đã hỗ trợ, giúp đỡ em về kiến thức và tinh thần trong quá trình thực hiện Đồ án. Trước hết, em xin chân thành cám ơn Thầy Giáo - Ths. Trần Ngọc Thái, Giảng viên Khoa Công Nghệ Thông Tin - Trường ĐHDL Hải Phòng, người đã trực tiếp hướng dẫn, nhận xét, giúp đỡ em trong suốt quá trình thực hiện Đồ án. Xin chân thành cảm ơn GS.TS.NGƯT Trần Hữu Nghị Hiệu trưởng Trường Đại học Dân lập Hải Phòng, ban giám hiệu nhà trường, các thầy cô trong Khoa Công Nghệ Thông Tin và các phòng ban nhà trường đã tạo điều kiện tốt nhất cho em cũng như các bạn khác trong suốt thời gian học tập và làm tốt nghiệp. Cuối cùng em xin gửi lời cảm ơn đến gia đình, bạn bè, người thân đã giúp đỡ động viên em rất nhiều trong quá trình học tập và làm Đồ án Tốt Nghiệp. Do thời gian thực hiện có hạn, kiến thức còn nhiều hạn chế nên Đồ án thực hiện chắc chắn không tránh khỏi những thiếu sót nhất định. Em rất mong nhận được ý kiến đóng góp của thầy cô giáo và các bạn để em có thêm kinh nghiệm và tiếp tục hoàn thiện Đồ án của mình. Em xin chân thành cảm ơn! Hải Phòng, Tháng 12 năm 2012 Sinh viên thực hiện Ngô Sỹ Hùng NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 2 NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE LỜI MỞ ĐẦU 4 Chương 1: Tổng quan về Windows Phone 5 1.1. Lịch sử phát triển 5 1.2. Chi tiết về Windows Phone 7 1.2.1. Phần cứng 7 1.2.2. Phần mềm cơ bản 7 1.3. Cấu trúc ứng dụng thi hành trên Windows Phone 7 11 1.4. Hạn chế của Windows Phone 11 1.5. Nền tảng ứng dụng Windows Phone – Windows Phone Application Platform 12 1.6. Môi trường phát triển ứng dụng Windows Phone 13 1.6.1. Visual Studio 13 1.6.2. Expression Blend 13 1.6.3. Windows Phone Emulator 14 1.6.4. Cloud Service – Dịch vụ đám mây 15 1.6.5. Metro Design 15 1.6.6. Vòng đời phát triển ứng dụng Windows Phone 16 CHƯƠNG 2: PHÁT TRIỂN ỨNG DỤNG WINDOWS PHONE 18 2.1. Sử dụng Visual Studio 2010 18 2.2. Sử dụng Expression Blend thiết kế giao diện ứng dụng Windows Phone 22 2.3. Sử dụng Cloud Service (Dịch vụ đám mây) đối với CSDL 24 2.3.1. Tạo mới tài khoản Cơ sở dữ liệu SQL Azure 26 2.3.2. Kết nối tới SQL Azure Project 27 2.3.3. Tạo CSDL SQL Azure 28 2.3.4. Tạo Database với SQL Azure 30 2.3.5. Tạo một Cloud Service (Dịch vụ đám mây) để kết nối đến CSDL Đám mây (Cloud Database) 31 2.3.6. Tạo ra một mô hình đối tượng để truy cập cơ sở dữ liệu điện toán đám mây 32 NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 3 CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG: “Game Calcoolation” 35 3.1 Giới thiệu game “Calcoolation” 36 3.2. Mô tả chức năng của game 37 3.3. Xây dựng ứng dụng 38 3.3.1. Thiết kế giao diện cho game 38 3.3.2. Xây dựng chức năng trong game 39 a) Chọn số ngẫu nhiên – Random Number Piking 40 b) Chọn nhóm ngẫu nhiên - Random Cage Formation 43 c) Xem đáp án đúng – Corect Answer 47 3.4. Upload ứng dụng lên Marketplace và cài đặt ứng dụng 50 3.4.1. Đăng ký Devlopers 50 3.4.2. Upload ứng dụng lên MarketPlace 57 3.4.3. Developer Unlock 59 3.4.4. Cài đặt ứng dụng 61 KẾT LUẬN 63 TÀI LIỆU THAM KHẢO 64 NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 4 LỜI MỞ ĐẦU Cách đây nhiều năm, khi mà smartphone hay các thiết bị di động cầm tay chưa thực sự phát triển và phổ biến đối với người tiêu dùng như hiện tại thì chúng ta cũng đã biết tới một số hệ điều hành dành cho các máy PDA như Windows Mobile của Microsoft hay các điện thoại thông minh chạy BlackberryOS của RIM Tuy nhiên, vào năm 2007 – thời điểm Apple giới thiệu điện thoại thông minh iPhone và hệ điều hành mà hiện nay được biết tới với tên gọi iOS đã thực sự thay đổi thị trường di động thế giới, định nghĩa lại smartphone cũng như châm ngòi cho cuộc chiến giữa các nền tảng di động, thúc đẩy nền công nghiệp phần cứng cũng như phần mềm. Có thể nói rằng cuộc chiến giữa các hệ điều hành đang xoay quanh những cái tên: Android (Google), iOS (Apple), Windows Phone (Microsoft) và BlackberryOs (RIM), Symbian (Nokia). Microsoft luôn được biết đến là gã khổng lồ phần mềm của thế giới, luôn là kẻ đi đầu nhưng hiện lại để cho Google và Apple chiếm hầu hết thị phần hệ điều hành di động mà kèm theo đó là lợi nhuận khổng lồ từ lượng khách hàng kỷ lục (riêng QIII – 2012 có 181 triệu smartphone bán ra). Sau khi nhận thấy sự thua kém quá lớn của Windows Mobile 6.x với các đối thù Android và iOS, Microsoft quyết tâm lấy lại vị thế vốn có của mình thông qua việc cho ra đời một nền tảng di động hoàn toàn mới: Windows Phone 7 với những ưu điểm rất dễ nhận thấy đó là khả năng đồng bộ với máy tính cao, giao diện Metro độc đáo và khác biệt, hỗ trợ công việc với các tiện ích văn phòng mạnh mẽ và dễ tiếp cận sử dụng. Hãy xem Microsoft đã mang lại những gì đặc biệt không chỉ cho người sử dụng và hấp dẫn các Lập trình viên?! NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 5 Chương 1: Tổng quan về Windows Phone 1.1. Lịch sử phát triển Windows Phone được Microsoft phát triển để thay thế cho hệ điều hành di động Windows Mobile trước đây. Windows Phone bắt đầu từ phiên bản thứ 7 (khi ra mắt, Microsoft gọi nó là Windows Phone 7, còn hiện giờ nó đã lên đến 7.8 và mới nhất là Windows Phone 8). Được biết, do phát triển trong thời gian ngắn nên Windows Phone rất hạn chế trong việc tương thích ngược với các nền tảng Windows Mobile trước đó. Một lý do nữa để Microsoft không quan tâm nhiều đến nền tảng cũ đó là vì màn hình cảm ứng bằng ngón tay ngày càng phổ biến hơn trên điện thoại và Windows Mobile vốn thiết kế cho bút stylus đã rất lỗi thời Windows bắt đầu được ra mắt chính thức vào tháng 2/2010 ở triển lãm Mobile World Congress diễn ra ở Barcelona, Tây Ban Nha. Đến tháng 10 cùng năm, CEO Steve Ballmer của Microsoft ra mắt 10 thiết bị Windows Phone đầu tiên đến từ HTC, Dell, Samsung, LG. Vài tuần sau, máy bắt đầu được bán ra ở Mỹ và Châu Âu. Tháng 5 cùng năm, Microsoft tuyên bố hợp tác với một số nhà sản xuất khác là Acer, Fujitsu, ZTE. Một cột mốc quan trọng của Windows Phone đó là sự hợp tác giữa Microsoft với Nokia sau khi hãng điện thoại Phần Lan này quyết định không còn tập trung vào điện thoại Symbian nữa. Kết quả của sự hợp tác này đó là dòng Nokia Lumia ra đời ở sự kiện Nokia World 2011. Đến CES 2012, Nokia tiếp tục ra mắt hai máy Lumia mới: Lumia 900 vs Lumia 800. Việc tích hợp các dịch vụ của Microsoft (Bing, Bing Maps, Windows Phone Marketplace, ) lên với Nokia được cho là sẽ tạo nên lợi thế cạnh tranh cho WIndows Phone với hai đối thủ lớn hiện thời là iOS và Android. NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 6 Lịch sử các phiên bản phát triển của Windows Phone: 7.0.7004: phiên bản đầu tiên của Windows Phone 7 7.0.7008: nâng cấp và cải thiện một vài điểm 7.0.7390: bản cập nhật với tên mã NoDo, hỗ trợ mạng CDMA, copy và paste, tốc độ chạy ứng dụng nhanh hơn, tích hợp Facebook sâu hơn 7.0.7392: sửa các lỗi liên quan đến chứng nhận bảo mật 7.0.7403: bản tiền nâng cấp để chuẩn bị bước sang một đợt nâng cấp lên 7.10.7720: đây là Windows Phone 7.5 với tên mã Mango, được giới thiệu 2/2011. Các tính năng mới được thêm vào như Internet Explorer 9 hỗ trợ đồ họa và chuẩn web tốt hơn, Twitter tích hợp vào People Hub, chạy đa nhiệm cho các ứng dụng bên thứ ba bằng cách tạm ngừng chúng 7.10.7740: sửa lỗi Microsoft Exchange Server 2003 và cảnh báo hộp thư thoại 7.10.8107: hỗ trợ kết nối LTE, sửa lỗi bàn phím bị biến mất và nhiều vấn đề khác 7.10.8112: bản cho Lumia 900 và HTC Titan II của nhà mạng AT&T 7.10.8773: còn gọi là Windows Phone 7.5 Refresh với tên mã Tango. Nhiều tính năng mới xứat hiện như MMS tốt hơn, biểu tượng cho việc dò vị trí, xuất và quản lí danh bạ vô SIM, hỗ trợ điện thoại giá rẻ với 256MB RAM và xung nhịp CPU chậm 7.10.8779: sửa lỗi, cải thiện và nâng cấp. NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 7 1.2. Chi tiết về Windows Phone 1.2.1. Phần cứng Chuẩn: - 3 phím vật lý phía trước máy: Start, Back, Search - Màn hình cảm ứng điện dung đa điểm (nhận diện tối thiểu 4 điểm chạm), hỗ trợ độ phân giải tối thiểu WVGA (800 x 480) widescreen. - Hỗ trợ kết nối 3G/4G và Wi-fi - 256 MB (tối thiểu) - RAM và 8 GB bộ nhớ (hoặc nhiều hơn) - A-GPS. - Accelerometer (gia tốc kế). Bổ sung: - Compass (la bàn) - Gyro (Con quay hồi chuyển) - Camera trước, sau. - Windows Phone 7 không hỗ trợ thẻ nhớ (microSD) tháo rời. 1.2.2. Phần mềm cơ bản a) Giao diện tổng quát Trên Windows Phone 7, giao diện mà bạn thấy được Microsoft gọi là Metro UI (Modern UI). Đặc điểm cơ bản là các ô vuông vuông (Tile) ở màn hình chính. Những thành phần đồ họa khác cũng không có nhiều nét mềm mại, cong cong tròn tròn mà cũng mang dáng vuông hoặc chữ nhật. Một số Tile có khả năng cập nhật dữ liệu theo thời gian thực thì gọi là Live Tile. b) Start Screen – Hub Trong Windows Phone, các tính năng được sắp xếp theo từng Hub. Các Hub có thể xem như một nơi để máy tổng hợp thông tin chứa trong máy và thông tin từ các dịch vụ trực tuyến để hiển thị trong một giao diện thống nhất. Hub trong Windows Phone có thể hiện thị được thông tin từ các dịch vụ như Facebook, Windows Live, Twitter. NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 8 Hình 1.1 - Hub c) Market Place Đây là kho ứng dụng trực tuyến của Microsoft phát triển dành riêng cho Windows Phone. Những lập trình viên sau khi viết xong chương trình của mình, qua một loạt giai đoạn đăng kí, kiểm duyệt, ứng dụng của họ sẽ đến với mọi người thông qua kênh phân phối Marketplace. Trên Market có hai loại ứng dụng, đó là thu phí và miễn phí. Ở Việt Nam chúng ta hiện đã có thể dùng Marketplace. d) Tính năng đáng chú ý NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 9 Settings Đây là nơi bạn sẽ truy cập vào toàn bộ các thiết lập của máy. Ringtones + sounds: tinh chỉnh âm thanh, nhạc chuông báo tin nhắn, báo có cuộc gọi, báo email, Theme: chỉnh giao diện chung của máy Flight mode: chế độ máy bay, tức là khi bật chế độ này, toàn bộ các kết nối không dây sẽ được ngắt đi để đảm bảo an toàn hàng không. Bạn cũng có thể dùng nó để từ chối các cuộc gọi hay tin nhắn những lúc bạn bận bịu mà không muốn tắt hẳn smartphone của mình. Wifi: bật tắt kết nối Wifi và tủy chỉnh liên quan đến mạng không dây này Bluetooth: bật tắt Bluetooth. Bạn lưu ý rằng Bluetooth của Windows Phone mặc định không cho phép chia sẻ tập tin, có lẽ Microsoft lo sợ vấn đề bản quyền nội dung số, giống với những gì Google và Apple đã làm với thiết bị của họ. Bạn chỉ có thể kết nối máy với các loa ngoài hay tai nghe Bluetooth mà thôi. Bạn cũng không thể dùng tính NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 10 năng Browse File trên máy tính để duyệt tập tin trên điện thoại Windows Phone được. Có một số phương pháp để làm thiết bị trao đổi file được nhưng đòi hỏi phải jailbreak. Internet Sharing: biến chiếc điện thoại thành trạm phát sóng Wifi bằng cách dùng mạng 3G để thiết lập kết nối Internet. Với tính năng này, bạn có thể dễ dàng chia sẻ mạng cho máy tính xách tay mỗi khi đi đến vùng nào không có Wifi bình thường hoặc lúc bạn đang di chuyển trên xe đường dài chẳng hạn. Email + Account: thiết lập tài khoản email, mạng xã hội, danh bạ, Lock + Wallpaper: nơi đây bạn sẽ đổi được hình nền cho màn hình khóa, đồng thời thiết lập thời gian tự động khóa màn hình cũng như mật khẩu mở khóa. Mobile Network: thông số về mạng di động của chúng ta có thể được tùy chỉnh ở đây. Khi chọn vào và kéo xuống bên dưới, bạn sẽ thấy nút "add apn". Có thể dùng nó để thiết lập cấu hình 3G nếu máy không tự động tải về cho bạn. . Keyboard: tính đến thời điểm hiện tại, ta không thể tùy biến nhiều cho bàn phím của Windows Phone, và nó cũng chưa hiện được tiếng Việt. Hình 1.4 – Bàn phím ảo với chức năng Copy/Paste trên WP NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 11 1.3. Cấu trúc ứng dụng thi hành trên Windows Phone 7 Windows Phone 7 không hỗ trợ đa nhiệm với các ứng dụng của bên thứ 3. Ngay sau khi bạn thoát khỏi ứng dụng của bên thứ 3, tài nguyên hệ thống dành cho nó sẽ được trả lại. Chỉ có một số ứng dụng thuộc Windows Phone 7 là có thể hoạt động ở chế độ đa nhiệm đầy đủ. Ưu điểm của phương pháp này là tăng tuổi thọ pin và hiệu suất tốt hơn cho các ứng dụng đang chạy. Với bản cập nhật Mango cho điện thoại Windows Phone được phát hành, tất cả đã thay đổi, chức năng đa nhiệm mới sẽ giống như một sự kết hợp giữa Android và iOS. Nếu nhà phát triển muốn ứng dụng của họ có thể làm việc liên tục ở chế độ nền, họ phải tạo ra "tác nhân nền". Sự khác biệt của “tác nhân nền” là nó bị giới hạn để chỉ sử dụng tối đa 10% khả năng của CPU và 5 MB bộ nhớ RAM khi dùng pin. Một số ứng dung sẽ chỉ được phép chạy trong 15 giây mỗi nửa giờ cho việc đồng bộ hóa dữ liệu (ví dụ như cập nhật từ mạng xã hội). Một điều thú vị là các “tác nhân nền” sẽ bị giới hạn ít đi khi điện thoại được cắm sạc. Nói cách khác, khi điện thoại được cung cấp điện liên tục, các nhà phát triển có thể tận dụng lợi thế của việc có nhiều tài nguyên hơn và thời gian tải dữ liệu dài hơn. Điều này tương tự như khi đồng bộ qua Wi-Fi với phần mềm Zune, sau một vài phút cắm sạc, điện thoại Windows Phone 7 có thể tự động khởi động việc đồng bộ nhạc, video và hình ảnh với máy tính của người dùng 1.4. Hạn chế của Windows Phone Phát triển sau iOS cũng như Android nên WP đã bị mất thị phần quá nhiều vào 2 đối thủ trên, đồng thời các nhà phát triển chưa thật sự mặn mà với Windows Phone 7 nên Windows Phone không có nhiều Application. Mặt khác người dùng cũng đã quen với việc sử dụng iOS cũng như Android nên chưa tiếp cận nhiều tới Windows Phone. Bản thân hệ điều hành này cũng chưa thật sự hoàn thiện về nhiều mặt, còn thiếu nhiều tính năng quan trngj như mobile hotspot, máy nhạy nhưng thời gian load ứng dụng lâu, Hy vọng WP8 sẽ hoàn thiện hơn nữa. NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 12 1.5. Nền tảng ứng dụng Windows Phone – Windows Phone Application Platform Microsoft không phát minh ra bất kỳ ngôn ngữ mới hoặc Framework mới cho các ứng dụng nền tảng Windows Phone. Điều này có nghĩa rằng chúng ta sẽ có thể lập trình bằng cách sử dụng C # (VB không được hỗ trợ tại thời điểm hiện tại) với .NET Framework. Lập trình viên sẽ được hỗ trợ các thư viện quen thuộc, bao gồm: hỗ trợ đa luồng, XML, LINQ, các sự kiện, dữ liệu, trường hợp ngoại lệ, IO, mô hình dịch vụ, mạng, văn bản, vị trí, tài nguyên, runtime, bảo mật, Dựa trên lõi .NET Framework., ứng dụng nền tảng Windows Phone bao gồm hai Framework: Silverlight và XNA. Silverlight chủ yếu dùng cho các ứng dụng kinh doanh và 2D đơn giản. Silverlight sử dụng các ứng dụng Extensible Markup Language (XAML) là ngôn ngữ đánh dấu khai báo để tạo ra giao diện người dùng hấp dẫn. Các nhà thiết kế sẽ có tính linh hoạt rất lớn trong việc tạo ra các giao diện người dùng cho Windows Phone bằng cách sử dụng các công cụ quen thuộc như Adobe Illustrator, Photoshop, và Microsoft Expression Blend để tạo ra vector dựa trên giao diện người dùng có thể dễ dàng xuất khẩu để XAML. XNA là chủ yếu được sử dụng để tạo ra các trò chơi, và Framework đi kèm với một công cụ trò chơi cho phép bạn tạo ra các trò chơi dựa trên vòng lặp và cũng cung cấp một công cụ 3D, cho phép bạn tạo ra các trò chơi 3D. NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 13 1.6. Môi trường phát triển ứng dụng Windows Phone 1.6.1. Visual Studio Ứng dụng Windows Phone 7 (WP) được xây dựng bằng cách sử dụng IDE chính đó là Visual Studio 2010 SP1. Sau đó chúng ta cần cài đặt bộ công cụ phát triển Windows Phone SDK 7.1 Hình 1.5: Visual Studio 2010 1.6.2. Expression Blend Đây là công cụ hỗ trợ thiết kế giao diện ứng dụng trên nền Silverlight tương tự như Adobe Illustrator, Photoshop, hoặc Expression Design. Cũng từ Expression Blend, bạn có thể nhập bất kỳ Illustrator, và các tập tin Photoshop, và nếu bạn đang sử dụng Expression Design, bạn có thể xuất file Expression Design trực tiếp vào một tập tin XAML. Expression Blend cũng cung cấp phương pháp để tạo ra những chuỗi động. Mặc dù bạn có thể đạt được trong việc tạo ra hình ảnh động trong Visual Studio bằng cách sử dụng XAML nhưng tương đối khó khăn. Tốt nhất là các ứng dụng có đồ họa phức tạp và hình ảnh động thì ta sử dụng Expression Blend như hình 1.6: NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 14 . Hình 1.6: Expression Blend 4 1.6.3. Windows Phone Emulator Windows Phone Emulator (WPE) là một chiếc điện thoại được Visual Studio mô phỏng như một thiết bị thực sự dành cho Lập trình viên. Tuy nhiên, có những điều bạn không thể làm giả lập như thử nghiệm gia tốc, GPS, la bàn, FM radio, tin nhắn SMS, e-mail, gọi điện thoại, danh sách liên lạc, máy ảnh, và các tính năng khác mà yêu cầu một thiết bị vật lý. Tuy nhiên, một kỹ thuật được gọi là phản ứng mở rộng, chúng ta sẽ có thể sử dụng để mô phỏng các nguồn cấp dữ liệu dữ liệu mà bạn có thể mong đợi trên một chiếc điện thoại thực sự. Ví dụ, chúng ta sẽ sẽ tìm hiểu bằng cách nào đó sử dụng mở rộng phản ứng, bạn có thể mô phỏng đo gia tốc và GPS để bạn có thể làm việc với WPE mà không có 1 chiếc điện thoại thực sự. NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 15 1.6.4. Cloud Service – Dịch vụ đám mây Để hỗ trợ các ứng dụng WP sử dụng Cơ sở dữ liệu (CSDL) dựa trên nền Internet, Microsoft Azure cung cấp dịch vụ Windows Azure cho các dịch vụ triển khai (WCF, dịch vụ Windows) và SQL Azure cho các cơ sở dữ liệu giúp bạn quy có khi nhu phát triển các ứng dụng lớn hơn mà không phụ thuộc vào dung lượng của thiết bị. Ngoài ra còn có dịch vụ Bing Maps mà ta có thể sử dụng tự do. Bing Maps miễn phí nếu bạn đang phát triển một ứng dụng Windows Phone. Cùng với dịch vụ Bing Maps, Microsoft cung cấp Bing Maps API trong Silverlight mà bạn có thể sử dụng trong Windows Phone. 1.6.5. Metro Design Microsoft đang nhắm mục tiêu Windows Phone 7 đối với các chuyên gia bận rộn, và để cung cấp giao diện người dùng hấp dẫn, Microsoft đã đưa ra thiết kế với Metro. Metro Design xuất phát từ những mẫu chữ ngành công nghiệp giao thông vận tải và thiết kế hình ảnh chuyên gia bận rộn liên tục quét và đi, và vì điều này, Metro thiết kế nhấn mạnh vào thiết kế đơn giản và dễ nhìn. Metro thiết kế theo năm nguyên tắc. Đầu tiên nguyên tắc nhấn mạnh dễ nhìn, nhẹ nhàng, cởi mở, nhanh chóng để loại bỏ “rác”, và kiểu chữ, khi người dùng sẽ được sử dụng điện thoại để đọc e-mail, tin nhắn SMS, Facebook, và Twitter trong khi di chuyển. NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 16 Nguyên tắc thứ hai của thiết kế Metro đặt trọng tâm vào nội dung, nơi mà các thiết kế tiền đề phải đánh về hướng trình bày nội dung. Nguyên tắc thứ ba tập trung vào việc tích hợp liền mạch của phần cứng và phần mềm. Nguyên tắc thứ tư đặt sự nhấn mạnh về cử chỉ, nơi mà các thiết kế cho phép người sử dụng một trải nghiệm đẳng cấp thế giới cảm ứng đa điểm. Cuối cùng, các khái niệm thiết kế Metro tập trung vào một ứng dụng mà có hồn và sống động, nơi mà thông tin quan trọng nhất cho người sử dụng được trình bày như một cách mà nó có thể dễ dàng truy cập bằng cách bấm vào một địa chỉ liên lạc. 1.6.6. Vòng đời phát triển ứng dụng Windows Phone Hiểu biết về vòng đời của ứng dụng sẽ giúp chúng ta hiểu về những gì bạn sẽ cần phải chuẩn bị nhiều hơn nữa trong việc tìm hiểu về Windows Phone bao gồm cả quá trình chứng nhận được bao phủ Hình 1.8 - Minh họa một cái nhìn cấp cao của chu kỳ sống của một ứng dụng. Là một nhà phát triển, ta sẽ bắt đầu tại App Hub đăng ký với Windows Live ID của bạn (tạo ra nó nếu bạn chưa có tài khoản). Sau khi đăng ký tại App Hub, bạn có thể đăng ký thiết bị vật lý của bạn để bạn có thể gỡ lỗi trong thiết bị thực. Hãy nhớ rằng bạn có thể thêm lên đến ba thiết bị. Sử dụng Visual Studio / hoặc Expression Blend, bạn sẽ tạo ra ứng dụng và gỡ lỗi của bạn bằng cách sử dụng giả NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 17 lập hoặc thiết bị mà bạn đã đăng ký. Một khi ứng dụng được tạo ra, bạn cần phải gửi các ứng dụng để quá trình chứng nhận. Để đảm bảo rằng ứng dụng của bạn sẽ vượt qua được quá trình cấp giấy chứng nhận Marketplace, nó sẽ là một ý tưởng tốt để bạn có thể đọc và hiểu các tài liệu chứng nhận ứng dụng được tìm thấy tại Là một phần của quá trình chứng nhận, ứng dụng của bạn sẽ đi qua một loạt các kiểm chứng thực tế chống lại các chính sách ứng dụng và nội dung, bao bì, mã, tiết lộ tính năng điện thoại, ngôn ngữ, và hình ảnh theo yêu cầu. Ứng dụng của bạn cũng sẽ được thử nghiệm trên độ tin cậy, hiệu suất, quản lý tài nguyên, chức năng điện thoại sử dụng, và an ninh. Quá trình chứng nhận là nơi để giúp thúc đẩy các ứng dụng chất lượng cho người tiêu dùng, để bảo vệ người tiêu dùng malware, và bảo vệ các dịch vụ của Microsoft. Sau khi ứng dụng vượt qua quá trình chứng nhận, nó sẽ được triển khai trên Marketplace và cho phép người sử dụng tải về. Người tiêu dùng sẽ sử dụng ứng dụng của bạn và cung cấp xếp hạng và bình luận, và các báo cáo có thể được tạo ra bởi bạn từ App Hub để thay đổi vị trí hiển thị ứng dụng của bạn trên Marketplace. Dựa trên những phản hồi bạn nhận được, bạn có thể chọn để triển khai một phiên bản cập nhật sửa lỗi và các tính năng mới cho người dùng. Mục tiêu cuối cùng của bạn là tạo ra một ứng dụng hấp dẫn mà bạn biết người tiêu dùng sẽ sử dụng và được chấp nhận trên Marketplace. Market Place yêu cầu 99$/ năm và cung cấp cho bạn truy cập vào Windows Phone Marketplace và Xbox 360 Marketplace. Trong Windows Phone Marketplace, bạn có thể gửi một số lượng không giới hạn ứng dụng và bạn có thể gửi 5 ứng dụng miễn phí. Đệ trình bổ sung sẽ có giá 19,99 USD. Trong Xbox 360 Marketplace, bạn có thể gửi lên đến 10 trò chơi. Bạn sẽ có thể thực hiện bất kỳ hoạt động nào của Markerplace thông qua các báo cáo được cung cấp, như nhận xét, xếp hạng, và số lượng được bán ra, để bạn có thể cải thiện hiệu quả bán hàng và những nỗ lực tiếp thị. Khi ứng dụng của bạn được mua bởi người tiêu dùng, Microsoft lấy 30% và bạn nhận được 70%. NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 18 CHƯƠNG 2: PHÁT TRIỂN ỨNG DỤNG WINDOWS PHONE 2.1. Sử dụng Visual Studio 2010 1) Đầu tiên ta sẽ tạo ra một ứng dụng sử dụng Windows Phone Application Project Template (category Silverlight for Windows Phone) trong Visual Studio 2010 2) Cấu trúc project được tạo ra từ template với các file như sau: Hình 2.2 – Cấu trúc Project Windows Phone 7 NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 19 Hình 2.3 - Ý nghĩa các file trong project được tổng hợp lại: 3) File App.xaml với các XAML markup (Extensible Application Markup Language – có thể tham khảo link sau: XAML Overview) 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 NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 20 Bên cạnh đó nó khởi tạo 1 thuộc tính ApplicationLifetimeObject để tạo ra đối tượngPhoneApplicationService, đố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. File App định nghĩamột instance của lớp Application chứa ứng dụng Silverlight for Windows Phone Ta hãy cùng xem file code behind của nó: Ứ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. 4) Project cũng chứa 1 page default là MainPage.xaml định nghĩa giao diện chính của ứng dụng. Bạn có thể dùng designer của Visual Studio để thiết kế UI của ứng dụng ngay trực tiếp. Toàn bộ UI của ứng dụng được xây dựng bằng cách sử dụng XAML – một ngôn ngữ khai báo giống kiểu XML. NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 21 Hình 2.6 – Sử dụng code XAML tạo giao diện ứng dụng WP 5) Để chỉnh sửa một số thuộc tính đặc biệt của phone ta có thể sử dụng Properties 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ị. 6) Cách build và deploy một ứng dụng Windows Phone 7 lên Emulator - Cũng giống như các ứng dụng .NET thông thường, để build ứng dụng ta dùng tổ hợp phím Shift+F6 hoặcCtrl+Shift+B. - Sau đó xác định muốn deploy thử trên Windows Phone Emulator hay trên 1 SmartPhone thật. NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 22 - Chọn Windows Phone Emulator và chỉ cần nhấn F5 để launch tới ứng dụng trên Emulator này. Các công việc còn lại Visual Studio sẽ tự động thiết lập môi trường cho emulator và deploy image của ứng dụng lên Emulator. Hình 2.8 – Windows Phone Emulator - Một thủ thuật khi debug ứng dụng Windows Phone: Tránh đóng emulator khi còn thực hiện coding ứng dụng, bởi khi simulator còn chạy nó sẽ mất rất ít thời gian khởi tạo một session debug mới. 2.2. Sử dụng Expression Blend thiết kế giao diện ứng dụng Windows Phone - Chúng ta sẽ sử dụng lại Solution đã được tạo trong bài tập trước. Từ Visual Studio, chuột phải vàMainPage.xaml để mở file này bằng Expression Blend ) Hình 2.9 – Thiết kế giao diện với Expression Blend NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 23 - Khi dự án được mở ra, nhấp vào TextBox. Chú ý rằng trong cửa sổ Properties, bạn sẽ thấy các thuộc tính khác nhau có thể được thay đổi. Nếu bạn không nhìn thấy cửa sổ Properties, mở nó bằng cách chọn Window ➤ Properties - Chọn Project ➤ Run Project - Tại cửa sổ Change Device Selection, chọn Windows Phone 7 Emulator. Hình 2.10 – Chạy ứng dụng từ Expression Blend NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 24 2.3. Sử dụng Cloud Service (Dịch vụ đám mây) đối với CSDL Ngày nay chúng ta nghe rất nhiều về công nghệ điện toán đám mây, và nó chắc chắn là công nghệ thú vị mà tất cả đều nên biết, vì các đám mây thực sự trao quyền cho bạn là nhà phát triển để tập trung vào xây dựng một ứng dụng và cung cấp cơ sở hạ tầng cần thiết để bạn đưa dữ liệu đến các đám mây (Internet). Trong Windows Phone, bạn có thể dễ dàng sử dụng lưu trữ dữ liệu mà không gian lưu trữ được gắn vào điện thoại, và nó có thể khác nhau giữa các nhà sản xuất và, quan trọng nhất, người dùng sẽ lưu trữ nhạc, video, và các văn bản, trong đó nên dung lượng bộ nhớ điện thoại có thể nhanh chóng bị đầy. Một giải pháp tốt được đưa ra là sẽ lưu thông tin cần thiết cơ sở dữ liệu - ở đây là đám mây Internet, và để làm điều này, bạn sẽ cần một dịch vụ web (Web Services) sẽ tương tác với cơ sở dữ liệu để các Smartphone có thể lưu data trên nền web như hình 2.11: Hình 2.11 – Cloud Service Để triển khai các giải pháp được mô tả trong trên chúng ta cần phải giải quyết một số vấn đề: Trước tiên, ta cần phải xem xét loại ứng dụng và cần bao nhiêu máy chủ để mua để host cho các dịch vụ web và cơ sở dữ liệu. Một khi bạn làm, bạn sẽ phải mua và duy trì chúng, hoặc trả tiền cho một dịch vụ lưu trữ để làm công việc này cho bạn. Nhưng điều này không giải quyết vấn đề bạn sẽ làm gì để mở rộng quy mô ứng dụng của bạn nếu nó trở nên rất phổ biến mà hàng triệu người tiêu dùng muốn tải về và sử dụng nó, hoặc nếu bạn có kinh nghiệm sửa dụng định kỳ trong việc sử dụng. Cuối cùng, làm thế nào bạn có thể cung cấp việc khắc phục lỗi và sao lưu cơ sở dữ liệu để đảm bảo dịch vụ của bạn không đi xuống và gây thất vọng cho người dùng? NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 25 Để lên kế hoạch trước cho số lượng lớn người sử dụng ứng dụng của bạn có thể gây thu hút, một kiến trúc mạnh mẽ hơn phải được xem xét. Một ví dụ được thể hiện trong hình 2.12: Hình 2.12 Lo lắng về việc thực hiện kiến trúc trên có vẻ là quá mức cần thiết cho việc áp dụng với các ứng dụng nhỏ mà chúng ta có thể được tạo ra, nhưng bạn không muốn đánh mất tiềm năng rằng nó có thể được mua bởi hàng triệu người có thể thích ứng dụng. Để giải quyết tình trạng khó xử này, Microsoft cung cấp dịch vụ Azure, mà nó sẽ chăm sóc từng chi tiết của kiến trúc cơ sở hạ tầng mà bạn không phải lo lắng và chỉ đơn giản là tập trung vào việc phát triển ứng dụng có thể mở rộng lên tới hàng triệu người sử dụng với một giá cả rất phải chăng. Ứng dụng sẽ bao gồm ba thành phần chính: một điện thoại Windows client (UI), một dịch vụ web (tầng giữa) cung cấp các API giao diện người dùng sẽ sử dụng để truy cập vào một cơ sở dữ liệu trung tâm, và cuối cùng là bản thân cơ sở dữ liệu, mà sẽ lưu trữ các ghi chú người dùng viết. Trong việc phát triển ứng dụng, bạn sẽ cần sử dụng Model-View- View-Model(MVVM) - mô hình ngày càng phổ biến. MVVM là một mẫu thiết kế cung cấp một sự tách biệt rõ ràng giữa giao diện người dùng, logic ứng dụng, và dữ liệu của một ứng dụng. Các mô hình duy trì dữ liệu, quan điểm hiển thị dữ liệu hoặc cung cấp giao diện tương tác người dùng, và các hành vi xem mô hình như bộ não điều khiển để xử lý các sự kiện hoặc ảnh hưởng đến dữ liệu hoặc giao diện. NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 26 Hình 2.13 - MVVM Azure là tên của dịch vụ đám mây của Microsoft, các nhà phát triển có thể sử dụng để cung cấp các ứng dụng trên quy mô lớn cho các khối lượng công việc và các thiết bị khác nhau. Microsoft Azure cung cấp một Framework cho các ứng dụng hiện đang hỗ trợ NET 3.5 và NET. 4,0, cũng như cân bằng tải, hệ điều hành, máy chủ, lưu trữ, và kết nối mạng, để bạn chỉ phải lo lắng về việc xây dựng các ứng dụng. Microsoft Azure cung cấp ba dịch vụ: Windows Azure, SQL Azure, Windows Azure AppFabric. Để xây dựng một ứng dụng trả tiền cho Windows Phone, bạn sẽ quan tâm hơn đến Windows Azure, có thể lưu trữ web và các ứng dụng dịch vụ web, và cho các cơ sở dữ liệu SQL Azure. Windows Azure AppFabric là một giải pháp doanh nghiệp - mô hình thường phổ biến trong các ứng dụng kinh doanhcho doanh nghiệp. 2.3.1. Tạo mới tài khoản Cơ sở dữ liệu SQL Azure 1) Mở trình duyệt. 2) Tới www.microsoft.com/windowsazure/ để đăng ký và mua tài khoản dịch vụ Windows Azure. Thực hiện theo hướng cung cấp bởi Microsoft để mua và có được tài khoản dịch vụ để tiếp tục với các bước sau (Bạn có thể sử dụng Microsoft Azure mỗi tháng miễn phí dành cho sinh viên - 25 hours of computing time, 500 MB storage, 10,000 storage transactions, 1 GB database, and 500 MB data transfer)). NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 27 3) Vào và đăng nhập bằng cách sử dụng các tài khoản mà bạn đã tạo ở Bước 1. 4) Khi đăng nhập, hãy nhấp vào tab SQL Azure trình đơn ở phía bên trái. Khi Windows Azure tải trang, bạn sẽ thấy những dự án mà bạn tạo ra trong quá trình đăng ký ở Bước 1 như hình 2.14: Hình 2.14 – SQL Azure 2.3.2. Kết nối tới SQL Azure Project Sau khi bạn đăng ký và mua tài khoản cho dịch vụ Azure của bạn, bây giờ bạn có thể đăng nhập vào một cổng thông tin SQL Azure. 1) Nhấp vào liên kết dự án NAS-DEV. Trong trường hợp của bạn, bạn nên nhấp vào tên của dự án tương ứng với một trong những bạn tạo ra trong phần "Đăng ký cho SQL Azure". 2) Nhấp vào nút Tôi chấp nhận các Điều khoản sử dụng của trang, như thể hiện trong Hình 2.15: NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 28 Hình 2.15 2.3.3. Tạo CSDL SQL Azure 1) Trên trang Create Server, nhập "NotepadAdmin" như tên người dùng quản trị viên và "P@ssword" là mật khẩu quản trị. Nhập lại mật khẩu, và chọn North Central US vào vị trí thả xuống. 2) Chọn Create Server NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 29 3) Nhấp vào Create Database. Khi cửa sổ pop-up xuất hiện, nhập "NotepadDB" là tên của cơ sở dữ liệu của bạn, chọn "Web" " Specify an edition" từ trình đơn thả xuống, và chọn "1GB" trên menu "Specify the max size", như thể hiện trong hình sau. Bây giờ hãy nhấp vào nút Create – hình 2.18 Hình 2.18 NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 30 2.3.4. Tạo Database với SQL Azure Sử dụng SQL Server Management Studio để kết nối Cloud Database: Tạo các Table trong CSDL của bạn: NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 31 2.3.5. Tạo một Cloud Service (Dịch vụ đám mây) để kết nối đến CSDL Đám mây (Cloud Database) Bạn sẽ tạo ra một dịch vụ WCF có tên NotepadService sẽ được tiêu sử dụng ứng dụng Windows Phone Notepad. NotepadService sẽ sử dụng Entity Framework để tạo ra các mô hình đối tượng dựa trên các bảng cơ sở dữ liệu, và nó cũng sẽ tạo ra một lớp kiên trì thực hiện các hoạt động cơ sở dữ liệu, mà nếu không bạn sẽ có mã của chính mình. Cuối cùng, các bước sẽ cung cấp cho bạn hướng dẫn về việc tạo và triển khai NotepadService Windows Azure. Bạn sẽ tạo ra một dịch vụ WCF Azure và chạy nó từ máy tính của bạn, và sau đó bạn sẽ tìm hiểu để đóng gói và triển khai các dự án Azure đám mây, nơi bạn sẽ có thể cấu hình để có nhiều dịch vụ chạy nếu tăng nhu cầu ứng dụng của bạn. NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 32 2.3.6. Tạo ra một mô hình đối tượng để truy cập cơ sở dữ liệu điện toán đám mây Hãy xem xét ví dụ sau: 1) Kích chuột phải vào dự án NotepadServiceRole được tìm thấy trong Solution Explorer, và chọn Add ➤ New Item. 2) Nhấp vào dữ liệu từ danh sách Templates cài đặt, bạn chọn Data Entity ADO.NET Model, và tên NotepadService.edmx mô hình, như thể hiện trong hình 2.23: Hình 2.23 3) Bạn sẽ được nhắc nhở với Wizard Entity Data Model - Nhấp vào nút Next Hình 2.24 NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 33 4) Nhấp vào "New Connection ", và khi combobox Data Source xuất hiện, chọn Microsoft SQL Server từ danh sách. Nhấp vào nút Continue. 5) Điền Username và Password NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 34 6) Chọn Default Option như hình 2.27: Hình 2.27 7) Bây giờ bạn có User và mô hình đối tượng Lưu ý rằng bạn có thể làm việc với trong NotepadService của bạn. Hình 2.28 – Kết nối Cloud Service NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 35 CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG: “Game Calcoolation” NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 36 3.1 Giới thiệu game “Calcoolation” Hiện nay các ứng dụng phục vụ nhu cầu giải trí cho người dùng trên Smartphone ngày càng phát triển, đặc biệt là sự phát triển của các ứng dụng Trò chơi. Bên cạnh những trò chơi giải trí đơn thuần luôn có sự phát triển của các trò chơi toán học theo kiểu câu đố logic. Nổi bật là Sudoku – một trò chơi có xuất phát từ Nhật Bản, được rất nhiều người biết tới từ rất lâu. Hình 3.1 - Sudoku Vào năm 2004, một giáo viên toán học Nhật Bản đã sáng tạo ra một trò chơi mới mang tên gọi KenKen/Kendoku, với cách chơi gần giống với Sudoku truyền thống. Mục tiêu của mỗi câu đố là để điền vào một mạng lưới với chữ số - 1 đến 4 cho một mạng lưới 4 4 ×, từ 1 đến 5 cho 5 × 5, vv - để con số đó không xuất hiện nhiều hơn một lần trong bất kỳ hàng hoặc cột (một hình vuông Latin). NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 37 Lưới có kích thước từ 3 × 3 đến 9 × 9. Ngoài ra, lưới KenKen được chia thành các nhóm vạch ra rất nhiều của các hàng (rows) - thường được gọi là "lồng" (cages) - và những con số trong các ô (cell) của mỗi lồng phải sinh ra một số "mục tiêu" khi kết hợp bằng cách sử dụng một hoạt động toán học chỉ định (+, -, *, /). Hình 3.3 – Kendoku/KenKen 3.2. Mô tả chức năng của game Game Calcoolation được xây dựng phải tuân thủ luật chơi Kendoku/Kenken truyền thống như đã miêu tả: - Mỗi hàng có chứa chính xác một trong các chữ số (1-4). - Mỗi cột có chứa chính xác một trong các chữ số (1-4). - Mỗi nhóm có viền bao ngoài của các tế bào/ô (cells) là một cái lồng (cages) chứa chữ số mà đạt được các kết quả cụ thể bằng cách sử dụng các toán tử: cộng (+), trừ (-), nhân (×), và phân chia (÷). (Không giống như Sudoku, chữ số có thể lặp lại trong một cái lồng.) Do đó các chức năng của game cũng cần thỏa mãn các yêu cầu để tạo ra trò chơi hoàn chỉnh: 1) New Game – Khi người dùng chọn New Game thì chương trình cần tự sinh ra một màn chơi mới với câu đố ở đây là 1 bảng chơi bất kỳ, NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 38 trên đó các con số và các “lồng” – cages được tạo ra một cách bất kỳ, không trùng lặp với các màn chơi khác để nhười sử dụng không bị nhàm chán. 2) End game: Khi người dùng ấn End Game – chương trình phải đưa ra kết quả chính xác cho đề bài đã đưa ra 3.3. Xây dựng ứng dụng 3.3.1. Thiết kế giao diện cho game Giao diện trò chơi được thiết kế dựa trên nền Silverlight dành cho Windows Phone 7. Để tiện cho việc thiết kế được nhanh chóng và thuận tiện em sử dụng Microsoft Expression Blend 4 như đã tìm hiểu trong phần lý thuyết trong chương II. Với bộ công cụ rất mạnh Expression Blend có thể tạo thiết kế giao diện đơn giản của game hết sức dễ dàng: Hình 3.4: Thiết kế giao diện game NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 39 Cellbox cần lưu ý được thiết kế là một Control dạng grid để hiển thị các cell cũng như cages dưới dạng ô vuông 4 x 4 một cách chuẩn xác. Hình 3.5 - Cellbox Bên cạnh việc sử dụng Expression Blend ta cũng có thể code trực tiếp để tạo nên gioa diện bằng cách sử dụng code XAML tương tự với việc thiết kế giao diện Website ASP.NET 3.3.2. Xây dựng chức năng trong game Mã nguồn chương trình được chia thành 2 layers: Calcoolation và Calcoolation.Core. Trong lớp Calcoolation, em chủ yếu xây dựng ứng dụng bằng cách sử dụng Silverlight cho Windows Phone. Giao diện khá đơn giản, và em nghĩ rằng nó không cần thiết phải thêm hình ảnh động phức tạp cho game loại này. Lớp Core hiện hầu hết các công việc chính – các hàm tính toán và xử lý dữ liệu. Nó bao gồm các lớp đại diện cho ba thực thể chính trong trò chơi: the Board, Cage, và Cell. Có thể chỉ có một Board (đó là lý do tại sao em quyết định sử dụng Singleton Pattern) hoặc sẽ chỉ đáp ứng một ứng dụng khách riêng lẻ nào đó rồi tự bị phá huỷ sau đó (single call). Board mặc định đã được xác định trước kích thước 4x4 (có thể được thay đổi bởi người sử dụng). Mỗi vị trí trong Board tổ chức bởi một ô nhỏ (có nghĩa là, số cell = kích thước²). Bên trong Board, các cells này cũng bố trí trong các cụm gọi là "lồng" – cages (giống như một câu đố truyền thống). NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 40 Chúng ta cần phải làm được những công việc sau: Chọn số ngẫu nhiên, xây dựng các “lồng” (cages) ngẫu nhiên và thử nghiệm trò chơi. Chú thích: SINGLETON PATTERN (Static Factory Pattern) Định nghĩa Singleton Pattern đảm bảo một lớp chỉ có một thực thể (instance) duy nhất được tạo ra và đồng thời cung cấp một truy cập toàn cục đến đối tượng được tạo ra. Chúng ta xét trường hợp có nhiều đối tượng có cùng chung một số tính chất nào đó được tạo ra ứng với mỗi một yêu cầu từ các đối tượng khách (client), lúc này độ phức tạp sẽ tăng lên và ứng dụng sẽ chiếm dụng nhiều vùng nhớ hơn. Singleton Pattern là một giải pháp đặc biệt của Factory Pattern ở chỗ đối tượng sinh ra là điểm truy cập toàn cục “duy nhất” đối với mọi chương trình gọi đến, hay nói một cách khác tất cả các đối tượng khách gọi đến đều chia sẻ đối tượng được tạo ra. Ứng dụng rõ rệt nhất của Singleton Pattern có thể thấy trong dịch vụ web khi triệu gọi các đối tượng từ xa, ở đó đối tượng nằm trên server hoặc sẽ phục vụ chung cho tất cả các ứng dụng khách (singleton) a) Chọn số ngẫu nhiên – Random Number Piking Phần khó khăn nhất là để khám phá những chiến lược đúng để chọn các số ngẫu nhiên mà không có sự lặp lại theo cột và hàng. Em quyết định sử dụng kỹ thuật Naked Pairs / Naked Triplets, mà em tham khảo từ một số trang web dành riêng cho việc giải quyết Sudoku. Đối với việc chọn số ngẫu nhiên, hàm GenerateNumbers() xây dựng như sau: private void GenerateNumbers() { ResetBoard(); Random rnd = new Random(); string number = "0"; int minSize = size; int maxSize = 0; bool someSolved = true; NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 41 while (someSolved) { someSolved = false; //Tìm kiếm naked pairs trong hàng if (!someSolved) { } //Tìm kiếm naked pairs trong cột if (!someSolved) { } //Tìm kiếm naked triplets trong hàng for (int row = 0; row < size; row++) { } //Tìm ô chỉ có thể thỏa mãn 1 giá trị for (int row = 0; row < size; row++) { } //Random selection if (!someSolved) { } } } NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 42 Naked pairs: Trong một số hàng/cột, có 2 ô/cell với 2 giá trị có thể điền vào. Ví dụ hình sau chúng ta có thể phát hiện 2 ô trong lồng bên trái phía dưới chỉ có thể điền 2 giá trị [1,3]: Hình 3.6 – Naked Pairs Lý do cho việc tìm kiếm cặp số thỏa mãn – Naked Pairs rất đơn giản: kể từ khi hai ô này chỉ có thể giữ hai chữ số, không có các ô khác trong dòng đó sẽ có "1" hoặc "3". Vì vậy chúng ta có thể loại bỏ chúng từ các chữ số có thể: NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 43 Trong thuật toán trên, có thể thấy việc xét các trọng số để điền vào từng ô được thực hiện theo thứ tự: 2 kết quả có thể hợp lệ (Naked pairs), sau đó tới 3 kết quả có thể điền (Nake Tripple) và sau cùng là 1 khả năng duy nhất. Sau khi thực hiện hàm GenerateNumbers() ta có được một bảng số – Boards đáp án dánh cho người chơi theo đúng quy luật. Hình 3.7- Đáp án b) Chọn nhóm ngẫu nhiên - Random Cage Formation Bắt đầu từ vị trí {0,0} trên bảng, và di chuyển hướng phải và xuống, hàm này đặt từng phần của hai ô theo các hướng ngẫu nhiên và kiểm tra liệu có xung đột với một cái “lồng” - cage đã tồn tại. Trong trường hợp này, các lồng được sáp nhập, nếu không, một cage mới được tạo ra: NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 44 Hình 3.8 – Các cages private void GenerateCages() { cages = new List (); bool success = false; int orientation = 0; int c2 = 0; int r2 = 0; Random rnd = new Random(); for (int r = 0; r < size; r++) { for (int c = 0; c < size; c++) { if (matrix[c, r].Cage == null) NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 45 { success = false; while (!success) { orientation = rnd.Next(1, 5); switch (orientation) { case 1: // W c2 = c - 1; r2 = r; break; case 2: // E c2 = c + 1; r2 = r; break; case 3: // N c2 = c; r2 = r - 1; break; case 4: // S c2 = c; r2 = r + 1; break; } if (c2 >= 0 && c2 = 0 && r2 < size) { Cage cage = matrix[c2, r2].Cage; if (cage == null) NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 46 { cage = new Cage(); cage.CellList.Add(matrix[c2, r2]); matrix[c2, r2].Cage = cage; } else { if (cage.CellList.Count > 3 && (c != size - 1 || r != size - 1)) { continue; } } cage.CellList.Add(matrix[c, r]); matrix[c, r].Cage = cage; cages.Add(cage); success = true; } } } } } NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 47 Kết quả là, bây giờ chúng ta có tất cả các “lồng” - cages ngẫu nhiên với số mục tiêu ngẫu nhiên đúng chỉ định như hình 3.9: Hình 3.9 – Các “lồng” được hình thành c) Xem đáp án đúng – Corect Answer Người dùng ấn End game để xem đáp án của màn chơi: Hình 3.10 – Đáp án đúng NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 48 Lưu ý: Mặc dù mỗi màn chơi (Boards) được tạo ra với một đáp án nhất định nhưng người chơi có thể tìm ra đáp án khác cho bảng số này và họ vẫn được tính là thành công. Vậy nên cần phải xây dựng phương thức kiểm tra liên tục cho bảng số xem liệu có thể chấp nhận đáp án tại ô đó của người chơi mà vẫn thỏa mãn điều kiện hay không: public bool TestResult() { bool success = false; if (cellList.Count > 0) { switch (operation) { case Operations.Plus: int sum = 0; foreach (Cell cell in cellList) { sum += Convert.ToInt32(cell.UserValue); } if (sum == result) success = true; break; case Operations.Minus: int sub = 0; sub = Convert.ToInt32(cellList[0].UserValue) - Convert.ToInt32(cellList[1].UserValue); if (sub == result) success = true; else NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 49 { sub = Convert.ToInt32(cellList[1].UserValue) - Convert.ToInt32(cellList[0].UserValue); if (sub == result) success = true; } break; case Operations.Multiply: int mult = 1; foreach (Cell cell in cellList) { mult *= Convert.ToInt32(cell.UserValue); } if (mult == result) success = true; break; case Operations.Divide: int div = 0; int rem = 0; div = Convert.ToInt32(cellList[0].UserValue) / Convert.ToInt32(cellList[1].UserValue); rem = Convert.ToInt32(cellList[0].UserValue) - (div * Convert.ToInt32(cellList[1].UserValue)); if (div == result && rem == 0) success = true; else { NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 50 div = Convert.ToInt32(cellList[1].UserValue) / Convert.ToInt32(cellList[0].UserValue); rem = Convert.ToInt32(cellList[1].UserValue) - (div * Convert.ToInt32(cellList[0].UserValue)); if (div == result && rem == 0) success = true; } break; } } return success; } 3.4. Upload ứng dụng lên Marketplace và cài đặt ứng dụng 3.4.1. Đăng ký Devlopers Sau khi xây dựng ứng dụng ta cần phải cài đặt trên thiết bị chạy Windows Phone và hoàn toàn có thể đưa lên Marketplace dưới vai trò một nhà phát triển ứng dụng thực thụ để có được sự đóng góp của người sử dụng trên toàn thế giới đồng thời bán ứng dụng thu về lợi nhuận. Muốn cài đặt ứng dụng WP mà ta vừa xây dựng một cách trực tiếp vào điện thoại thì trước hết thiết đó phải được mở khóa ở chế độ dành cho nhà phát triển – Developer Unlock. Để làm được điều này Microsoft yêu cầu nhà phát triển đăng ký tài khoản Devlopers tại – Dev Center với giá 99$/ năm. Tuy nhiên rất may mắn cho sinh viên khi Microsoft cho phép đăng ký miễn phí tài khoản Dev Center Student thông qua email của trường cấp. Và hiện tại trường ĐHDL Hải Phòng cũng nằm trong danh sách các trường Đại học tại Việt Nam được Microsoft hỗ trợ qua email sinh viên này. Vậy nên em đã đăng ký tài khoản Devlopers như sau: NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 51 Các thứ cần có: Một tài khoản live ID Một email của trường học liên kết với Microsoft ( cái này có nhiều, danh sách các trường học liên kết với MS sẽ có list ở trong bài). Các bước làm chính: Đăng kí tài khoản DreamSpark bằng email .edu. Đăng kí tài khoản Dev Center bằng tài khoản DreamSpark. Hướng dẫn chi tiết: 1. Đăng kí tài khoản DreamSpark bằng email .edu của đã được cấp: Truy cập và đăng nhập bằng tài khoản Live ID Hình 3.11 – Đăng nhập Live ID Ở mục "How would you like to verify?" các bạn chọn là "Verify as a Student", còn ở mục "How would you like to verify your account?" các bạn chọn là "Get verified through my school" sau đó bấm "Continue" như hình bên dưới: NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 52 Hình 3.12 – Xác nhận sinh viên thông qua trường Đại học được Microsoft liên kết Chọn trường đại học đã cấp mail .edu cho các bạn trong danh sách những trường đại học của Việt Nam như hình bên dưới, sau đó bấm "Continue". Hình 3.13 – Chọn trường để xác minh Điền email .edu được cấp vào khung như hình bên dưới, sau đó bấm "Verify". NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 53 Hình 3.14 – Nhập mail sinh viên (hung-121281@sv.hpu.vn) Sau đó sẽ có thông báo là bạn cần phải xác nhận việc đăng kí tài khoản DreamSpark qua cái email .edu mà bạn vừa nhập vào. Lúc này các bạn hãy đăng nhập cái Email .edu của mình, sẽ có một thư xác nhận gửi đến kèm theo Activation Code. NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 54 Truy cập sau đó nhập Code nhận được trong mail vào và bấm nút "Verify" như hình 3.15 Hình 3.16 Bước 2: Tạo tài khoản Dev Center bằng tài khoản DreamSpark: Truy cập vào trang sau đó chọn "Join now" như hình 3.17: Hình 3.17 NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 55 Chọn Country/Region là United States, chọn Accout type là "Individual or Student" như hình dưới, check vào ô Legal Terms sau đó bấm Next Điền thông tin về tài khoản, lưu ý mục City, postal code và State thì nên điền như ở hình 3.19, còn email thì điền email live của bạn, Publisher name thì bạn hãy nghĩ ra 1 cái tên và điền vào, nếu bạn đưa ứng dụng lên Store thì nó sẽ có tên Publisher này. Cuối cùng các ấn next. Hình 3.19 NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 56 Ở màn hình tiếp theo, chọn "I'm a Student" như hình 3.20 và ấn next: Hình 3.20 – I’m a student Hình 3.21 – Đăng ký thành công NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 57 3.4.2. Upload ứng dụng lên MarketPlace Truy cập thực hiện theo các hình 3.22-3.25 Hình 3.22 – Dev Center NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 58 Hình 3.23 – Submit Application Hình 3.24 – Khai báo thông tin ứng dụng Hình 3.25 – Upload ứng dụng lên MarketPlace NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 59 3.4.3. Developer Unlock Sau khi đăng ký tài khoản Devlopers thành công, ta cần Unlock – Đăng ký điện thoại Windows Phone của mình dưới dạng Devloper để có thể cài đặt ứng dụng đã phát triển bằng cách: 1. Bật điện thoại WP lên. 2. Chỉnh sửa thời gian trên điện thoải thật chuẩn xác. 3. Kết nối điện thoại với máy tính bằng cáp USB. Lúc này phần mềm Zune sẽ nhận diện thiết bị của bạn Hình 3.22 – Zune Desktop Software 4. Trên máy tính, chọn Start, -> All Programs -> Windows Phone SDK 7.1. 5. Chọn Windows Phone Developer Registration. Xuất hiện 1 status như sau: Phone ready. Please enter your Windows Live ID and password and click "Register" to begin. NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 60 Hình 3.23 – Devloper Phone Registration 6. Điền Microsoft account (Windows Live ID) và password như Dev Center. 7. Click Register. Sau khi điện thoại được đăng ký xong, thông báo Status hiển thị Your phone has successfully been registered. NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 61 3.4.4. Cài đặt ứng dụng Yêu cầu Phần cứng: - Smartphone chạy Windows Phone - Cáp đồng bộ Cách 1: Sau khi máy đã được kích hoạt chế độ Developers dành cho lập trình viên ta có thể cài đặt ứng dụng thông qua công cụ Application Deployement có sẵn trong bộ công cụ phát triển Windows Phone SDK như hình 3.28: Hình 3.24 – Sử dụng Application Deployement đưa ứng dụng vào Smartphones NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 62 Cách 2: Cài đặt ứng dụng đã upload lên MarketPlace qua phần mềm Zune Hình 3.29 - Marketplace trên Zune Chọn ứng dụng cần cài đặt như hình 3.30 Hình 3.30 - Tìm kiếm ứng dụng đã upload và cài đặt NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 63 KẾT LUẬN Sau ba tháng nghiên cứu, tìm hiểu và triển khai xây dựng ứng dụng game dành cho Smartphone thông qua đề tài “Nghiên cứu xây dựng ứng dụng cho Hệ điều hành Windows Phone” em đã áp dụng những kiến thức đã học tại nhà trường, sự hướng dẫn nhiệt tình của Th.s Trần Ngọc Thái cũng như các thầy cô trong khoa CNTT cùng với việc tìm hiểu các tài liệu trên Internet em đã đạt được một số kết quả sau: - Nắm bắt được kiến trúc của hệ điều hành Window Phone. - Nắm bắt được cấu trúc của ứng dụng thi hành trên Windows Phone. - Phát triển được 1 Open Project thử nghiệm. Bên cạnh những kết quả đạt được Đồ án vẫn còn nhiều khiếm khuyết khi chưa thể đi sâu vào các nghiên cứu trong việc tối ưu mã nguồn cho ứng dụng Windows Phone, các thủ thuật để khai thác toàn bộ hiệu năng của Windows Phone, Em rất mong nhận được những ý kiến đóng góp từ thầy cô và các bạn để có thể hoàn thiện hơn nữa nội dung đồ án. Hướng phát triển tiếp theo của Đồ án em sẽ nghiên cứu những tính năng mới và thiết kế ứng dụng cho hệ điều hành Windows Phone 8 được Microsoft giới thiệu vào ngày 29/10/2012 vừa qua. Bên cạnh đó em cũng sẽ nghiên cứu thêm về việc phát triển ứng dụng cho hệ điều hành iOS cũng như Android đang ngày càng phát triển. Một lần nữa em xin gửi lời cảm ơn sâu sắc nhất tới Th.s Trần Ngọc Thái cũng như các thầy cô, bạn bè đã giúp đỡ em hoàn thành Đồ án. Hải Phòng, Tháng 12 năm 2012 Sinh viên thực hiện Ngô Sỹ Hùng NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE
- 64 TÀI LIỆU THAM KHẢO [1]. Beginning Windows Phone 7 Development – Henry Lee & Eugene Chuvyrov [2]. Microsoft Silverlight Edition: Programming Windows Phone 7 Website: NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH WINDOWS PHONE