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
Trang 1LỜ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
Trang 2LỜ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
Trang 3MỤ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
Trang 43.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
Trang 5DANH 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
Trang 6Hì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
Trang 7LÝ 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
Trang 8Em 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
Trang 9LỜ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
Trang 10CHƯƠ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
Trang 11phứ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
Trang 12C# 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
Trang 13Microsoft 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
Trang 14Vì 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 Model- View-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
Trang 151.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
Trang 17Package.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
Trang 18Hình 1.6 Package.appxmanifest xml file
Trang 20MainPage.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
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
Trang 21Grid
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
Trang 22Cá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
<Button Content="Button" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" Margin="178,284,113,298" />
Trang 23<Button Content="Button" Padding="20"/>
<Button Content="Button" Padding="50"/>
Trang 24Hì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"/>
Trang 25<StackPanel Orientation="Horizontal">
<Rectangle Fill="Red" Height="50" Width="50"/>
<Rectangle Fill="Yellow" Height="100" Width="100"/>
<Ellipse Fill="Blue" Height="100" Width="100"/>
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
Trang 26Có nhiều cách để thêm một control vào trang giao diện của bạn như kéo control lên bề mặt thiết kế hay tạo các control bằng tay với XAML
TextBlock và TextBox
Thông tin thường được hiểu thị bằng cách sử dụng control TextBlock (Tương tự control Label trong Windows Form) và dữ liệu sẽ được nhập vào từ control TextBox Trong ví dụ sau, chúng ta tạo một page nhập dữ liệu đơn giản như sau:
<TextBox x:Name="txtTuoi" Grid.Row="1" Grid.Column="1"/> <TextBlock Grid.Row="2" Grid.Column="0" Text="Địa chỉ" FontSize="24" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<TextBox x:Name="txtDiaChi" Grid.Row="2" Grid.Column="1"/>
</Grid>
Trong đoạn mã trên, chúng ta thấy grid có 3 hàng và 2 cột Các control
Trang 27thuộc tính Grid.Row và Grid.Column, mặc định hàng đầu tiên và cột đầu tiên sẽ
có thuộc tính là Grid.Row=”0” và Grid.Column=”0”
Hình 1.12 TextBlock và TextBox
Bên cạnh đó control TextBox còn sử dụng thuộc tính x:Name (ví dụ x:Name=”txtHoTen”) để đặt tên cho đối tượng, chúng ta có thể sử dụng tên này trong đoạn mã bằng C# để xử lý các sự kiện của control này
Ngoài ra, cả hai control đều có những thuộc tính khác như Foreground (định màu chữ), Visibility (cho phép hiển thị - Visible hay đóng lại – Collapsed), Width (chiều rộng), Height (chiều cao), HorizontalAlignment (căn ngang), VerticalAlignment (căn dọc), và nhiều thuộc tính khác
Trang 28Button và Event Handlers
Button là một control quan trọng và phổ biến đối với tất cả các ngôn ngữ lập trình Chúng ta sẽ tạo một chương trình đơn giản như sau:
Trang 29Bây giờ, chúng ta sẽ vào trang MainPage.xaml.cs và thêm đoạn code sau vào:
private void btnShowMe_Click(object sender, RoutedEventArgs e)
HyperLinkButton là một hyperlink nhưng hoạt động như một button Bạn
có thể gán sự kiện cho HyperLinkButton, nó sẽ được xử lý khi người dùng click vào HyperlinkButton và điều hướng đến các URL được thiết lập
Trang 30CheckBoxes, ToggleSwitches và RadioButton
Đây là các control cho phép người đưa ra các lựa chọn Hai control phổ biến nhất là CheckBox và RadioButton, còn ToggleSwitches được sử dụng khi cần lựa chọn một trong hai lựa chọn loại trừ lẫn nhau
<StackPanel>
<TextBlock Text="Giới tính" FontSize="16"/>
<RadioButton Content="Nam" GroupName="Sex"/>
<RadioButton Content="Nữ" GroupName="Sex"/>
<RadioButton Content="Khác" GroupName="Sex"/>
<TextBlock Text="Sở thích" FontSize="16"/>
<CheckBox Content="Nghe nhạc"/>
<CheckBox Content="Xem phim"/>
<CheckBox Content="Chơi game"/>
<ToggleSwitch/>
</StackPanel>
Trang 31ListBox, ListView và ComboBox
Windows 8.1 và Windows Phone 8.1 sử dụng hai loại danh sách hiển thị
là ListBox và ListView, về cơ bản chúng làm việc tương tự như nhau Tuy nhiên, ListView có phần mạnh mẽ hơn trong việc xử lý cũng như hiển thị dữ liệu
ComboBox cho phép hiển thị danh sách khi người dùng click vào control,
nó giúp tiết kiệm diện tích của giao diện ứng dụng trong khi vẫn hiển thị được danh sách đầy đủ khi cần thiết
<StackPanel>
<TextBlock Text="ListBox" FontSize="16"/>
<ListBox>
<x:String>ListBox Item 1</x:String>
<x:String>ListBox Item 2</x:String>
<x:String>ListBox Item 3</x:String>
<x:String>ListBox Item 4</x:String>
</ListBox>
<TextBlock Text="ListView" FontSize="16"/>
<ListView>
<x:String>ListView Item 1</x:String>
<x:String>ListView Item 2</x:String>
<x:String>ListView Item 3</x:String>
<x:String>ListView Item 4</x:String>
</ListView>
<TextBlock Text="ComboBox" FontSize="16"/>
<ComboBox>
<x:String>ComboBox Item 1</x:String>
<x:String>ComboBox Item 2</x:String>
<x:String>ComboBox Item 3</x:String>
<x:String>ComboBox Item 4</x:String>
Trang 33Source="Assets/2015_lamborghini_aventador_lp750_4_superveloce-<Image Source="Assets/red_audi_r8_gt-1920x1080.jpg" Stretch="Fill" Margin="10"/>
<Image Source="Assets/vorsteiner_wheels_porsche_911-1920x1080.jpg" Stretch="Fill" Margin="10"/>
Trang 34<ProgressBar Value="50" Width="150" Margin="20"/>
<ProgressBar IsIndeterminate="True" Width="150" Margin="20"/>
Trang 35<DatePicker Header="Select a Date"/>
<TimePicker Header="Select a Time"/>
</StackPanel>
Trang 36
Hình 1.20 DatePicker & TimePicker
1.4 Giới thiệu về UML
1.4.1 Khái niệm và đặc điểm của UML
UML là ngôn ngữ mô hình hóa thống nhất(Unified Modeling Language), trước hết nó là mô tả ký pháp thống nhất, ngữ nghĩa và các định nghĩa về metamodel (mô tả định nghĩa chính ngôn ngữ mô hình hóa), nó không mô tả phương pháp phát triển UML được sử dụng để hiển thị, đặc tả, xây dựng và làm tài liệu các vật phẩm của quá trình phân tích xây dựng hệ thống phần mềm theo