LỜI CẢM ƠN Sau thời gian nghiên cứu và tìm hiểu đề tài “Xây dựng phần mềm quản lý phòng trọ cho danh nghiệp Tùng Thảo Nguyên sử dụng công nghệ Windows Phone” đã được hoàn thiện. Để đạt được kết quả này, em đã hết sức nỗ lực đồng thời cũng nhận được rất nhiều sự quan tâm, giúp đỡ và ủng hộ của thầy cô, gia đình và bạn bè. Em xin chân thành cảm ơn Khoa Công Nghệ Thông Tin - Trường ĐH CNTT&TT đã tạo điều kiện cho em thực hiện đồ án tốt nghiệp này. Em xin chân thành cảm ơn quý thầy, cô giáo đã tận tình giảng dạy, trang bị cho chúng em những kiến thức quý báu trong những năm học vừa qua. Đặc biệt em xin chân thành cảm ơn cô ThS. Phạm Thị Thương đã tận tình hướng dẫn, giúp đỡ, chỉ bảo và đóng góp ý kiến cho em trong suốt thời gian thực hiện đồ án. Do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mình nhưng đồ án tốt nghiệp của em khó tránh khỏi những thiếu sót. Em rất mong nhận được những ý kiến đóng góp của quý Thầy Cô và các bạn để đồ án tốt nghiệp của em được hoàn thiện hơn.
Em xin chân thành cảm ơn! SINH VIÊN
Phạm Ngọc Điểm
1
LỜI CAM ĐOAN Để hoàn thành đồ án tốt nghiệp đúng thời gian quy định và đáp ứng được yêu cầu đề ra, em đã cố gắng tìm hiểu, học hỏi, tích lũy kiến thức đã học. Em có tham khảo một số tài liệu đã nêu trong phần “Tài liệu tham khảo”nhưng không sao chép nội dung từ bất kỳ đồ án nào khác.
Em xin cam đoan những lời khai trên là đúng, mọi thông tin sai lệch em xin hoàn toàn chịu trách nhiệm trước Hội đồng. Thái Nguyên, ngày 06 tháng 06 năm 2016 SINH VIÊN
Phạm Ngọc Điểm
2
MỤC LỤC LỜI CẢM ƠN .....................................................................................................1 LỜI CAM ĐOAN................................................................................................2 MỤC LỤC ..........................................................................................................3 DANH MỤC HÌNH ẢNH ...................................................................................5 LÝ DO CHỌN ĐỀ TÀI.......................................................................................7 LỜI NÓI ĐẦU ....................................................................................................9 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT ..................................................................10 1.1 Giới thiệu ngôn ngữ lập trình C#..............................................................10 1.2 Xây dựng ứng dụng Windows Phone 8.1 .................................................13 1.2.1 Windows Architecture ......................................................................14 1.2.2 Tạo ứng dụng Windows Phone .........................................................15 1.2.3 Model View ViewModel (MVVM)...................................................20 1.2.4 Navigation ........................................................................................20 1.3 Panels và Controls ...................................................................................20 1.3.1 Panels ...............................................................................................21 1.3.2 Controls ............................................................................................25 1.4 Giới thiệu về UML .................................................................................36 1.4.1 Khái niệm và đặc điểm của UML......................................................36 1.4.2 Mô hình khái niệm của UML ............................................................37
CHƯƠNG 2: KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG..............41 2.1
Khảo sát hiện trạng ............................................................................41
2.1.1 Phần mềm quản lý phòng trọ trên thị trường .....................................41 2.1.2 Khảo sát thực tế xóm trọ của doanh nghiệp Tùng Thảo Nguyên........42 2.2 Biểu đồ Use Case mức chi tiết ................................................................47 2.3 Biểu đồ trình tự........................................................................................49 2.4 Biểu đồ lớp ..............................................................................................56 2.5 Biểu đồ trạng thái ....................................................................................57 CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH ......................................................58 3.1 Mô tả chương trình ..................................................................................59
3
3.1.1 Mô tả mục quản lý khu vực...............................................................59 3.1.2 Mô tả mục quản lý thuê – trả phòng ..................................................60 3.1.3 Mô tả mục quản lý thanh toán ...........................................................61 3.1.4 Mô tả mục quản lý cài đặt .................................................................63 3.2 Giao diện của ứng dụng ...........................................................................64 KẾT LUẬN.......................................................................................................71 TÀI LIỆU THAM KHẢO .................................................................................72 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN................................................73
4
DANH MỤC HÌNH ẢNH
Hình 1.1 Windows Architecture ........................................................................14 Hình 1.2 Tạo một ứng dụng Windows Phone ....................................................15 Hình 1.3 Các thư mục và tập tin trong Windows Phone.....................................15 Hình 1.4 AssemblyInfo.cs .................................................................................16 Hình 1.5 Package.appxmanifest.........................................................................17 Hình 1.6 Package.appxmanifest xml file............................................................18 Hình 1.7 App.xaml.cs ........................................................................................19 Hình 1.8 MainPage.xaml ...................................................................................19 Hình 1.9 Sử dụng Margin ..................................................................................23 Hình 1.10 Sử dụng Padding ...............................................................................24 Hình 1.11 Sử dụng StackPanel ..........................................................................25 Hình 1.12 TextBlock và TextBox ......................................................................27 Hình 1.13 Button và Event Handlers .................................................................28 Hình 1.14 Button và Event Handlers .................................................................29 Hình 1.15 CheckBoxer, ToggleSwitches và RadioButton ..................................30 Hình 1.16 ListBox, ListView và ComboBox .....................................................32 Hình 1.17 Image ................................................................................................33 Hình 1.18 Slide..................................................................................................34 Hình 1.19 ProgressBar.......................................................................................35 Hình 1.20 DatePicker & TimePicker .................................................................36 Hình 2.1 Dãy nhà D1 xóm trọ Tùng Thảo Nguyên. ...........................................43 Hình 2.2 Một mặt của dãy nhà D3 xóm trọ Tùng Thảo Nguyên.........................44 Hình 2.3 Nhà B xóm trọ Tùng Thảo Nguyên (bên phải là nhà A phòng điều hòa, nóng lạnh chất lượng cao)..................................................................................44 Hình 2.4 Sân cầu lông giữa nhà D1 và nhà D3...................................................45 Hình 2.5 Nhà A với trang bị điều hòa, bình nóng lạnh. ......................................45 Hình 2.6 Nhà D3 xóm trọ Tùng Thảo Nguyên ...................................................46 Hình 2.7 Biểu đồ Use Case mức tổng quát.........................................................48
5
Hình 2.8 Biểu đồ Use Case mức chi tiết ...........................................................48 Hình 2.9 Biểu đồ tuần tự mô tả quản lý Khu Vực. .............................................49 Hình 2.10 Biểu đồ tuần tự mô tả quản lý Phòng Còn Trống..............................50 Hình 2.11 Biểu đồ tuần tự mô tả quản lý Phòng Đã Thuê. ................................51 Hình 2.12 Biểu đồ tuần tự mô tả quản lý Vật Dụng. .........................................52 Hình 2.13 Biểu đồ tuần tự mô tả quản lý Cài Đặt..............................................53 Hình 2.14 Biểu đồ tuần tự mô tả chức năng Thuê – Trả Phòng. .........................54 Hình 2.15 Biểu đồ tuần tự mô tả chức năng Thanh Toán và gửi hóa đơn thanh toán qua tin nhắn điện thoại. ..............................................................................55 Hình 2.16 Biểu đồ lớp tổng quan ......................................................................56 Hình 2.17 Biểu đồ trạng thái..............................................................................57 Hình 3.1 Hướng dẫn cài đặt chương trình ..........................................................58 Hình 3.2 Quản lý khu vực phòng trọ..................................................................59 Hình 3.3 Hiển thị danh sách phòng trọ và tình trạng của phòng trọ. ...................60 Hình 3.4 Mô tả trạng thái và điều hướng phòng trọ............................................61 Hình 3.5 Danh sách hóa đơn..............................................................................61 Hình 3.6 Mô tả chi tiết hóa đơn .........................................................................62 Hình 3.7 Mô tả phần quản lý cài đặt ..................................................................63 Hình 3.8 Giao diện chức năng ban đầu của phần mềm.......................................64 Hình 3.9 Giao diện danh mục chức năng ...........................................................65 Hình 3.10 Giao diện chức năng thanh toán. .......................................................66 Hình 3.11 Giao diện danh sách hóa đơn.............................................................67 Hình 3.12 Giao diện hóa đơn thanh toán tiền phòng. .........................................68 Hình 3.13 Giao diện mô tả chức năng gửi hóa đơn qua mail..............................69 Hình 3.14 Giao diện mô tả nhận hóa đơn hàng tháng qua mail ..........................70
6
LÝ DO CHỌN ĐỀ TÀI Windows phone là hệ điều hành chạy rất mượt mà và có tính bảo mật cao, tuy nhiên thì Windows Phone cho đến nay vẫn chưa nhận được nhiều sự quan tâm từ phía người dùng bởi lẽ người dùng chưa hài lòng về giao diện cũng như kho ứng dụng Windows Phone vẫn còn nhiều hạn chế. Windows Phone đang ngày một hoàn thiện để mang đến một cách tiếp cận mới mẻ hơn và ngày càng có nhiều người dùng yêu thích hệ điều hành này hơn, chắc chắn tương lai hệ điều hành này sẽ phát triển và không thua kém gì Android và IOS hiện nay. Do đó em đã chọn đề tài “Xây dựng phần mềm quản lý phòng trọ cho danh nghiệp Tùng Thảo Nguyên sử dụng công nghệ Windows Phone” cho đợt đồ án tốt nghệp này. Hi vọng qua đây em sẽ có thêm nhiều kiến thức về lập trình Windows Phone, cũng như khả năng tư duy lập trình của mình. Mục đích của đề tài - Tìm hiểu và nghiên cứu hệ điều hành Windows Phone. - Hiểu rõ quy trình phát triển phần mềm trên thiết bị di động. - Xây dựng thành công phần mềm quản lý phòng trọ trên máy điện thoại Windows Phone. Đối tượng phạm vi nghiên cứu - Đối tượng nghiên cứu của đề tải là: một số hiểu biết về lập trình cho di động, quy trình phát triển ứng dụng trên di động. Ngôn ngữ lập trình Windows Phone. - Phạm vi nghiên cứu là: Tất cả các thành phần lập trình của Windows Phone. Ý nghĩa khoa học và thực tiễn của đề tài - Đề tài có ý nghĩa khoa học rất lớn giúp em có được những kiến thức quý báu và cũng là tiền đề để em có thể bắt tay vào nghiên cứu những đề tài lớn hơn, phức tạp hơn. - Việc nghiên cứu và thực hiện đề tài có ý nghĩa rất lớn trong việc thúc
đẩy sự phát triển những ứng dụng trên thiết bị di động.
7
Em xin bày tỏ lòng biết ơn chân thành nhất tới các thầy cô trong Khoa Công Nghệ Thông Tin - Đại học Công Nghệ Thông Tin & Truyền thông đã tận tình giảng dạy, trang bị những kiến thức quý báu cho em trong bốn năm học vừa qua. Đặc biệt, em xin gửi lời cảm ơn sâu sắc tới Giảng viên ThS. Phạm Thị Thương đã tận tình hướng dẫn về chuyên môn, góp ý và động viên em trong quá trình thực hiện đề tài. Mặc dù đã cố gắng hết sức, nhưng do kiến thức còn hạn chế nên không thể tránh khỏi thiếu sót, mong nhận được sự góp ý từ thầy cô và các bạn để bài báo cáo được hoàn thiện hơn. Xin chân thành cảm ơn! Sinh viên thực hiện:
Phạm Ngọc Điểm
8
LỜI NÓI ĐẦU 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 8.1 và chuẩn bị là windows 10). Windows phone là hệ điều hành chạy rất mượt mà và có tính bảo mật cao, tuy nhiên thì Windows Phone cho đến nay vẫn chưa nhận được nhiều sự quan tâm từ phía người dùng bởi lẽ người dùng chưa hài lòng về giao diện cũng như
kho ứng dụng windows phone vẫn còn nhiều hạn chế. Windows Phone đang ngày một hoàn thiện để mang đến một cách tiếp cận mới mẻ hơn và ngày càng có nhiều người dùng yêu thích hệ điều hành này hơn, chắc chắn tương lai hệ điều hành này sẽ phát triển và không thua kém gì Android và IOS hiện nay. Do đó em đã chọn đề tài “Xây dựng phần mềm quản lý phòng trọ cho doanh nghiệp Tùng Thảo Nguyên sử dụng công nghệ Windows Phone” cho đợt đồ án tốt nghiệp này. Hi vọng qua đây em sẽ có thêm nhiều kiến thức về lập trình windows phone, cũng như khả năng tư duy lập trình của mình. Nội dung chính của đề tài bao gồm: Chương 1: Cơ sở lý thuyết. Chương 2: Khảo sát, phân tích và thiết kế hệ thống. Chương 3: Xây dựng phần mềm quản lý phòng trọ sử dụng công nghệ Windows Phone. Trong quá trình thực hiện đồ án em đã nhận được sự giúp đỡ chỉ bảo tận tình của các thầy, cô giáo và cán bộ nhà trường . Em xin chân thành cảm ơn cô ThS. Phạm Thị Thương – giảng viên đã hướng dẫn trong quá trình làm bài đồ án tốt nghiệp của em. Em cũng xin gửi lời cảm ơn chân thành đến tất cả các Thầy Cô– Trường ĐH CNTT & Truyền Thông- Đại Học Thái Nguyên đã giảng dậy em trong suốt thời gian qua. Tuy nhiên, do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mình nhưng chắc rằng bài báo cáo khó tránh khỏi thiếu sót. Em rất mong nhận được sự thông cảm, những lời góp ý và chỉ bảo tận tình của quý Thầy Cô và các bạn. Thái Nguyên - 06/06/2016
9
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu ngôn ngữ lập trình C#
Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng nó được tạo từ nền tảng phát triển hơn. Microsoft bắt đầu với công việc trong C và C++ và thêm vào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn. Nhiều trong số những đặc tính này khá giống với những đặc tính có trong ngôn ngữ Java. Không dừng lại ở đó, Microsoft đưa ra một số mục đích khi xây dựng ngôn ngữ này. Những mục đích này được được tóm tắt như sau: C# là ngôn ngữ đơn giản C# là ngôn ngữ hiện đại C# là ngôn ngữ hướng đối tượng C# là ngôn ngữ mạnh mẽ và mềm dẻo C# là ngôn ngữ có ít từ khóa C# là ngôn ngữ hướng module C# sẽ trở nên phổ biến C# là ngôn ngữ đơn giản C# loại bỏ một vài sự phức tạp và rối rắm của những ngôn ngữ như Java và c++, bao gồm việc loại bỏ những macro, những template, đa kế thừa, và lớp cơ sở ảo (virtual base class). Chúng là những nguyên nhân gây ra sự nhầm lẫn hay dẫn đến những vấn đề cho các người phát triển C++. Nếu chúng ta là người học ngôn ngữ này đầu tiên thì chắc chắn là ta sẽ không trải qua những thời gian để học nó! Nhưng khi đó ta sẽ không biết được hiệu quả của ngôn ngữ C# khi loại bỏ những vấn đề trên. Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++. Nếu chúng ta thân thiện với C và C++ hoậc thậm chí là Java, chúng ta sẽ thấy C# khá giống về diện mạo, cú pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ ngôn ngữ C và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ đơn giản hơn. Một vài trong các sự cải tiến là loại bỏ các dư thừa, hay là thêm vào những cú pháp thay đổi. Ví dụ như, trong C++ có ba toán tử làm việc với các thành viên là ::, . , và ->. Để biết khi nào dùng ba toán tử này cũng
10
phức tạp và dễ nhầm lẫn. Trong C#, chúng được thay thế với một toán tử duy nhất gọi là . (dot). Đối với người mới học thì điều này và những việc cải tiến khác làm bớt nhầm lẫn và đơn giản hơn. Ghi chú: Nếu chúng ta đã sử dụng Java và tin rằng nó đơn giản, thì chúng ta cũng sẽ tìm thấy rằng C# cũng đơn giản. Hầu hết mọi người đều không tin rằng Java là ngôn ngữ đơn giản. Tuy nhiên, C# thì dễ hơn là Java và C++. C# là ngôn ngữ hiện đại Điều gì làm cho một ngôn ngữ hiện đại? Những đặc tính như là xử lý ngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng, và bảo mật mã nguồn là những đặc tính được mong đợi trong một ngôn ngữ hiện đại. C# chứa tất cả những đặc tính trên. Nếu là người mới học lập trình có thể chúng ta sẽ cảm thấy những đặc tính trên phức tạp và khó hiểu. Tuy nhiên, cũng đừng lo lắng chúng ta sẽ dần dần được tìm hiểu những đặc tính qua các chương trong cuốn sách này. Ghi chú: Con trỏ được tích hợp vào ngôn ngữ C++. Chúng cũng là nguyên nhân gây ra những rắc rối của ngôn ngữ này. C# loại bỏ những phức tạp và rắc rối phát sinh bởi con trỏ. Trong C#, bộ thu gom bộ nhớ tự động và kiểu dữ liệu an toàn được tích hợp vào ngôn ngữ, sẽ loại bỏ những vấn đề rắc rối của C++. C# là ngôn ngữ hướng đối tượng Những đặc điểm chính của ngôn ngữ hướng đối tượng (Object-oriented language) là sự đóng gói (encapsulation), sự kế thừa (inheritance), và đa hình (polymorphism). C# hỗ trợ tất cả những đặc tính trên. Phần hướng đối tượng của C# sẽ được trình bày chi tiết trong một chương riêng ở phần sau. C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo Như đã đề cập trước, với ngôn ngữ C# chúng ta chỉ bị giới hạn ở chính bởi bản thân hay là trí tưởng tượng của chúng ta. Ngôn ngữ này không đặt những ràng buộc lên những việc có thể làm. C# được sử dụng cho nhiều các dự án khác nhau như là tạo ra ứng dụng xử lý văn bản, ứng dụng đồ họa, bản tính, hay thậm chí những trình biên dịch cho các ngôn ngữ khác.
11
C# là ngôn ngữ ít từ khóa C# là ngôn ngữ sử dụng giới hạn những từ khóa. Phần lớn các từ khóa được sử dụng để mô tả thông tin. Chúng ta có thể nghĩ rằng một ngôn ngữ có nhiều từ khóa thì sẽ mạnh hơn. Điều này không phải sự thật, ít nhất là trong trường hợp ngôn ngữ C#, chúng ta có thể tìm thấy rằng ngôn ngữ này có thể được sử dụng để làm bất cứ nhiệm vụ nào. Bảng sau liệt kê các từ khóa của ngôn ngữ C#.
Bảng 1.2: Từ khóa của ngôn ngữ C# C# là ngôn ngữ hướng module Mã nguồn C# có thể được viết trong những phần được gọi là những lớp, những lớp này chứa các phương thức thành viên của nó. Những lớp và những phương thức có thể được sử dụng lại trong ứng dụng hay các chương trình khác. Bằng cách truyền các mẫu thông tin đến những lớp hay phương thức chúng ta có thể tạo ra những mã nguồn dùng lại có hiệu quả. C# sẽ là một ngôn ngữ phổ biến C# là một trong những ngôn ngữ lập trình mới nhất. Vào thời điểm cuốn sách này được viết, nó không được biết như là một ngôn ngữ phổ biến. Nhưng ngôn ngữ này có một số lý do để trở thành một ngôn ngữ phổ biến. Một trong những lý do chính là Microsoft và sự cam kết của .NET
12
Microsoft muốn ngôn ngữ C# trở nên phổ biến. Mặc dù một công ty không thể làm một sản phẩm trở nên phổ biến, nhưng nó có thể hỗ trợ. Cách đây
không lâu, Microsoft đã gặp sự thất bại về hệ điều hành Microsoft Bob. Mặc dù Microsoft muốn Bob trở nên phổ biến nhưng thất bại. C# thay thế tốt hơn để đem đến thành công sơ với Bob. Thật sự là không biết khi nào mọi người trong công ty Microsoft sử dụng Bob trong công việc hằng ngày của họ. Tuy nhên, với C# thì khác, nó được sử dụng bởi Microsoft. Nhiều sản phẩm của công ty này đã chuyển đổi và viết lại bằng C#. Bằng cách sử dụng ngôn ngữ này Microsoft đã xác nhận khả năng của C# cần thiết cho những người lập trình. 1.2 Xây dựng ứng dụng Windows Phone 8.1
Tổng quan về XAML
XAML, viết tắt của Extensible Application Markup Language, là ngôn ngữ đặc tả dựa trên XML được dùng để định nghĩa các đối tượng và thuộc tính của chúng, mối quan hệ cũng như sự tương tác. XAML đặc biệt được dùng trong các công nghệ của .NET Framework (trong đó có WPF, Windows và Windows Phone) như ngôn ngữ đặc tả giao diện người dùng (User Interface – UI) nhằm mô tả cấu trúc và đặc tính của các phần tử UI, sự liên kết dữ liệu, các sự kiện và các đặc tính khác. XAML đóng vai trò một ngôn ngữ chung giữa môi trường thiết kế giao diện và môi trường lập trình. Đối với người thiết kế, XAML không những cho phép người thiết kế dễ dàng mô tả, chỉnh sửa các đối tượng UI và các đặc tính của chúng, mà còn cho phép họ tương tác với các đối tượng này ở mức độ nhất định. Do vậy, tăng khả năng cảm quan của người thiết kế đối với giao diện. Ngoài ra, nó cũng giúp người thiết kế hạn chế những ý tưởng đồ họa không khả thi khi lập trình. Đối với người lập trình, nhờ một môi trường lập trình có khả năng tự động tái tạo giao diện đã thiết kế dựa trên file đặc tả bằng XAML do người thiết kế chuyển sang, người lập trình không cần tự mình tái tạo lại giao diện. Điều này giảm đi nhiều công sức và thời gian để phát triển giao diện, cũng như tránh những
sai lệch giữa giao diện do người thiết kế và giao diện do người lập trình tái tạo.
13
Vì cả môi trường thiết kế và lập trình đều có khả năng hiểu và sử dụng XAML, ứng dụng XAMl có thể chuyển qua lại giữa hai môi trường phát triển để sửa đổi hay bổ sung giao diện một cách dễ dàng. Với tất cả những điểm lợi này, vị thế của người thiết kế trong việc xây dựng giao diện được nâng cao. Trong chương này chúng ta sẽ cùng tìm hiểu về XAML, cấu trúc một ứng dụng XAML, cũng như tìm hiểu về các Panel, Control và Binding trong XAML. Phần tiếp theo sẽ trình bày các nguyên tắc cốt lõi của ứng dụng Windows Store (trong đó có Windows và Windows Phone), bao gồm kiến trúc của nó, tất cả các phần của ứng dụng trong Visual Studio, mô hình ModelView-ViewModel, và Navigation. 1.2.1 Windows Architecture
Hình 1.1 Windows Architecture Ứng dụng Windows Phone sử dụng giao diện hiện đại – Model UI (trước đây gọi là Metro) được phát triển bằng XAML hoặc HTML/CSS. Ứng dụng XAML có thể được viết bằng C++, C# hoặc VB.NET. Còn các ứng dụng HTML sử dụng JavaScript, tận dụng các thư viện WinJS để xây dựng chương trình.
14
1.2.2 Tạo ứng dụng Windows Phone Để tạo ứng dụng Windows Phone 8.1 chúng ta có thể sử dụng Visual Studio
hoặc
Blend
for
Visual
Studio.
Vào
File
>>
New
>>
Project…(Ctrl+Shift+N) xuất hiện hộp thoại New Project (Hình 1.2), chọn Windows Phone Apps, tiếp tục chọn Blank App, đặt tên cho Project và bắt đầu xây dựng ứng dụng Windows Phone của bạn.
Hình 1.2 Tạo một ứng dụng Windows Phone Tổng quan về Project của ứng dụng Khi một Project mới được tạo ra chương trình sẽ sinh cho chúng ta một số thư mục và các tập tin như hình 1.3
Hình 1.3 Các thư mục và tập tin trong Windows Phone
15
Properties Trong Properties có file AssemblyInfo.cs chứa những thông tin về bản quyền của ứng dụng.
Hình 1.4 AssemblyInfo.cs References References chứa các tham chiếu từ ứng dụng Windows Phone của bạn tới một chương trình, một thư viện khác. Assets Thư mục Assets, trong đó có chứa tất cả các hình ảnh được sử dụng trong ứng dụng của bạn.
16
Package.appxmanifest Package.appxmanifest chứa các tab mô tả ứng dụng của bạn. Manifest thực chất là một file XML, nhưng Visual Studio đã cung cấp cho người dùng một giao diện thân thiện để người dùng làm việc với các thành phần trong tập tin.
Hình 1.5 Package.appxmanifest
17
Hình 1.6 Package.appxmanifest xml file
18
App.xaml File app.xaml và app.xaml.cs (code behind) chứa các phương thức điều khiển hoạt động của ứng dụng khi ứng dụng chạy.
Hình 1.7 App.xaml.cs MainPage.xaml
Hình 1.8 MainPage.xaml
19
MainPage.xaml là một trang trống, và là trang giao diện người dùng mặc định. MainPage chứa giao diện Emulator của Windows Phone, bên cạnh đó là trang code xaml giúp trực quan hơn khi chúng ta thiết kế. 1.2.3 Model View ViewModel (MVVM) Mô hình Model View ViewModel (MVVM) là mô hình phổ biến trong phát triển ứng dụng XAML. Có nguồn gốc từ mô hình Martin Flowler’s Predentation Model. Mô hình Mục tiêu của MVVM nhằm tăng sự tách biệt giữa các lớp ứng dụng, tăng khả năng test và thức đẩy quá trình tái sử dụng mã. Model Model không chứa các dữ liệu trong ứng dụng của bạn, nhưng nó chứa các kết nối truy suất đến cơ sở dữ liệu. View View là các cửa sổ (như MainPage.xaml). View hiển thị dữ liệu cho người
dùng và nhận tương tác từ người dùng. ViewModel ViewModel thực hiện hai chức năng trong mô hình MVVM trong XAML. - Chức năng đầu tiên là cung cấp một cơ chế vận chuyển dữ liệu giữa Model và View. - Thứ hai là hoạt động như bộ điều khiển cho các View và các Model, tiếp nhận các hành động từ người dùng. 1.2.4 Navigation Chủ đề tiếp theo mà chúng ta sẽ tìm hiểu là Navigation. Tất cả ứng dụng Windows và Windows Phone là các trang đơn. Trong XAML, chúng ta triển khai bằng cách tạo ra một Frame mà tất cả các trang tiếp theo sẽ được nạp vào. 1.3 Panels và Controls Control cung cấp cách tương tác cho người dùng, Panel tổ chức sắp xếp các control. Cùng nhau, chúng giúp bạn thiết kế giao diện cho ứng dụng của bạn.
20
1.3.1 Panels Panel là một loại control đặc biệt, nó giúp bạn “giữ” các control khác, cung cấp một nơi để lưu trữ và quản lý bố trí các control. Các loại panel thường sử dụng: - Border - Canvas - Grid - StackPanel Border Border là một container mang đường biên hoặc background xung quanh các control khác. Canvas
Canvas được sử dụng chủ yếu trong các trò chơi và một số ứng dụng mà bạn cần quan tâm chính xác đến từng pixel khi kiểm soát các vị trí của mọi đối tượng trong ứng dụng của bạn. Grid Grid là một panel mặc định của các ứng dụng Windows cũng như Windows Phone khi ứng dụng được tạo ra. Trong grid, chúng ta có thể tạo ra các cột và các hàng, đồng thời xác định vị trí của các cột và các hàng, cũng như thiết lập các thuộc tính của chúng. <Grid> </Grid> Xác định hàng và cột Grid bao gồm các hàng và các cột, bạn có thể xác định kích thước của chúng bằng nhiều các khác nhau. Cách phổ biến nhất là xác định kích thước cụ thể: <Grid.RowDefinitions> <RowDefinition Height="100"/> </Grid.RowDefinitions> hoặc để xác định kích thước tương đối của hai hoặc nhiều hàng:
21
<Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="2*"/> </Grid.RowDefinitions> Trong đoạn code trên cho thấy rằng hàng thứ hai sẽ có kích thước gấp hai lần hàng thứ nhất. (Phần không gian của hàng thứ hai sẽ chiếm 2/3 không gian màn hình hiển thị) Cách cuối cùng là xác định hàng và cột là đặt cho chúng kích thước là
“Auto”, khi đó hàng hay cột đó sẽ có kích thước lớn nhất có thể: <Grid.RowDefinitions> <RowDefinition Height="100"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> Alignment, Margins và Padding Trong thiết lập đối tượng thành các hàng và cột của grid, để kiểm soát vị trí của họ tốt hơn, bạn có thể thiết lập thuộc tính HorizontalAlignment (Căn chỉnh theo chiều ngang) và VerticalAlignment (Căn chỉnh theo chiều dọc). <Button VerticalAlignment="Top" HorizontalAlignment="Center"/> Margin được thiết lập để tinh chỉnh vị trí của các đối tượng trong Grid VerticalAlignment="Stretch" Margin="178,284,113,298" />
22
Hình 1.9 Sử dụng Margin Ngoài ra, bạn cũng có thể sử dụng Margin với một giá trị khi muốn căn trái cho đối tượng: Margin="200" Padding đề cập đến không gian bên trong một control, không gian giữa đường biên của control với nội dung của control đó. <Button Content="Button" Padding="20"/> <Button Content="Button" Padding="50"/>
23
Hình 1.10 Sử dụng Padding StackPanel StackPanel – đơn giản và hữu ích, nó cho phép bạn tạo ra một ngăn xếp, xếp một đối tượng trên đối tượng khác hoặc một đối tượng bên phải đối tượng khác. Không có khoảng trống nào giữa các đối tượng, nhưng bạn có thể dễ dàng thêm không gian đó bằng cách dùng margin. Bạn có thể thêm bất kỳ control nào vào trong StackPanel, kể cả một StackPanel khác. Sau đây là ví dụ về cách sử dụng StackPanel: <Grid> <StackPanel Orientation="Vertical"> <Rectangle Fill="Aqua" Height="100" Width="200"/> <Ellipse Fill="Green" Height="100" Width="200"/>
Hình 1.11 Sử dụng StackPanel Trong ví dụ trên, chúng ta sử dụng thuộc tính Orientation="Vertical" và Orientation="Horizontal" để sắp xếp các control theo chiều dọc và theo chiều ngang. Các control được đưa vào sắp xếp lần lượt theo thứ tự như trong code thiết kế và không có không gian trống giữa các control. 1.3.2 Controls
Ngoài các panel, toolbox của Windows còn có rất nhiều control, chúng được sử dụng để thu thập hoặc hiển thị thông tin và sử dụng để tương tác với người dùng.