TÌM HIỂU CÔNG NGHỆ WINDOWS AZURE xây DỰNG ỨNG DỤNG học NGỮ PHÁP học TIẾNG ANH TOEIC CHẠY TRÊN HDH WINDOWS PHONE 7
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO ĐỀ ÁN
TÌM HIỂU CÔNG NGHỆ WINDOWS
AZURE XÂY DỰNG ỨNG DỤNG HỌC NGỮ PHÁP TIẾNG ANH TOIEC CHẠY TRÊN HĐH
WINDOWS PHONE 7
Giảng viên hướng dẫn : VŨ MINH ĐỨC
Sinh viên thực hiện :
1 LÊ VĂN CẢNH (NT) – 11100497
2 TRẦN SƠN HẢI – 11100504
3 TRẦN VĂN CỬ – 11000379 Ngành : CÔNG NGHỆ PHẦN MỀM
Nhóm: 2
Trang 2tốc độ tăng trưởng rất nhanh trong vòng một vài năm tới Lợi nhuận sẽ tăng gấp 8 lầnsau 5 năm, từ 1,95 tỉ USD năm 2009 lên 15,65 tỉ USD năm 2013.
Ngoài việc dự đoán mức tăng trưởng về lợi nhuận thì Research2guidance cũng
dự đoán về số người dùng smartphone trong 5 năm tới, yếu tố giúp thị trường ứngdụng cho di động tăng trưởng Theo đó, số người dùng smartphone sẽ tăng từ 100 triệungười năm 2009 lên 1 tỉ người năm 2013
Điện thoại thông minh phát triển mạnh ở Việt Nam đang được đánh giá là thiênđường để cho các nhà phát triển ứng dụng di động
Hệ điều hành Windows Phone là một hệ điều hành khá mới và có nhiều thú vịvới thị trường Việt Nam Thị trường Windows Phone đang được phát triển rất rộng vàtiềm năng Các ứng dụng trên nền Windows Phone cũng đang được chú trọng pháttriển và đây sẽ là mảnh đất màu mỡ cho các nhà phát triển ứng dụng cho dòngSmartphone
Có một điều dễ dành nhận thấy là Việt Nam có thể là “mỏ” cho thị trường phầnmềm di động - với hơn 11 triệu thuê bao điện thoại và tốc độ tăng trưởng đang đạtmức khá cao Đây thực sự đây là một mảnh đất màu mỡ không chỉ cho các nhà cungcấp phần mềm nói riêng mà còn cho các nhà cung cấp dịch vụ nội dung nói chung.Điểm đáng ghi nhận là các nhà cung cấp trò chơi cho điện thoại đang cố gắng thu hútkhách hàng bằng nhiều hình thức khác nhau trong đó có việc cung cấp ngày càngnhiều trò có nội dung hấp dẫn với hình ảnh đẹp và âm thanh chất lượng cao
TP Hồ Chí Minh, tháng 12 năm 2013
Trang 3CHƯƠNG 1: GIỚI THIỆU VỀ WINDOWS AZURE 1
1.1 Tổng quan Windows Azure 1
1.2 Các thành phần Windows Azure 2
1.2.2 Dịch vụ lưu trữ (Storage Service) 4
1.2.3 Windows Azure Fabric 5
CHƯƠNG 2 : WINDOWS PHONE 7 VÀ CÔNG NGHỆ SILVERLIGHT 10
2.1 Giới thiệu 10
2.2 Lịch sử các phiên bản phát triển của Windows Phone 12
2.3 Kiến trúc 13
2.4 Vòng đời phát triển của 1 ứng dụng Windows Phone 14
2.4.1 Bắt đầu với App Hub 14
2.4.2 Thiết kế một ứng dụng và sản sinh ra một gói ứng dụng 15
2.4.3 Gỡ lỗi 1 ứng dụng 15
2.4.4 Xuất bản một ứng dụng 16
2.4.5 Quản lý xuất bản ứng dụng 16
2.5 Giới thiệu công nghệ Silverlight 16
2.5.1 Tổng quan 16
2.5.2 Silverlight là gì ? 17
2.5.3 Các đặc tính của Silverlight 18
2.6 Nghiên cứu công nghệ Silverlight 20
2.6.1 Kiến trúc tổng thể và các thành phần Siverlight 20
Trang 4CHƯƠNG 3 : GIỚI THIỆU ỨNG DỤNG “HỌC NGỮ PHÁP TIẾNG ANH” 32
3.1 Phát biểu bài toán 32
3.1.1 Khảo sát hiện trạng 32
3.1.2 Xác định yêu cầu hệ thống : 34
3.2 Mô hình Usecase 36
3.2.1 Sơ đồ Use-case 36
3.2.3 Danh sách các Use-case: 36
3.2.4 Đặc tả Use-case 37
3.3 Hồ sơ phân tích 42
3.3.1 Sơ đồ lớp 42
3.3.2 Thiết kế dữ liệu 46
3.3.2.1 Mô tả cấu trúc file dùng để lưu trữ 46
3.3.3 Thiết kế giao diện 46
3.3.3.1 Danh sách các màn hình 46
3.3.3.2 Mô tả chi tiết mỗi màn hình 47
CHƯƠNG 4 : KẾT LUẬN 53
4.1 Về mặt lý thuyết 53
4.2 Về mặt ứng dụng 53
4.3 Hướng phát triển: 53
PHỤ LỤC 42
Trang 5Hình 1.3 – Ứng dụng Windows Azure có thể chứa Web role và Worker role Hình 1.4 - Bộ lưu trữ Windows Azure: Blob, Table, Queue
Hình 1.5 - Fabric Controller
Hình 1.6 - Fabric Controller và Fault Domain
Hình 1.7 - Fabric Controller và Update Domain
Hình 2.1 Kiến trúc Windows Phone Application Platform
Hình 2.2 Vòng đời phát triển của 1 ứng dụng Windows Phone
Hình 2.3 Kiến trúc tổng thể và các thành phần Silverlight
Hình 3.1.Hình ảnh danh sách các ngữ pháp
Hình 3.2 Sơ đồ Use case phần mềm Ngữ Pháp Tiếng Anh
Hình 3.3 Sơ đồ Use case “Tìm Kiếm”
Hình 3.4 Sơ đồ Use case “Bookmark”
Hình 3.5 Sơ đồ Use case “Học Ngữ Pháp”
Hình 3.6 Sơ đồ Use case “Hướng Dẫn”
Hình 3.7 Sơ đồ lớp phần mềm EnglishGrammar
Hình 3.8 Giao diện chính
Hình 3.9 Giao diện tìm kiếm
Hình 3.10: Giao diện xem nội dung
Hình 3.11: Giao diện khi nhấn nút bookmark khi dang xem
Hình 3.12 Giao diện Booookmarks khi không đang xem nội dung
Hình 4.13 Giao diện Tùy Chọn
Hình 5.1 Hướng dẫn tạo Project
Hình 5.2 Chọn loại ứng dụng
Hình 5.3 Giao diện khi tạo xong Project
Hình 5.4 Mô tả control Image
Hình 5.5 Mô tả control Button
Trang 6Hình 5.8 Miêu tả control Slider
Bảng 2.1 Bảng mô tả các thành phần chính của Silverlight
Bảng 2.2 Bảng các nền tảng cơ sở trong Silverlight
Bảng 2.3 Bảng mô tả Net Framework cho Silverlight
Bảng 3.1 Minh họa các phần mềm học ngữ pháp tiếng anh hiện nayBảng 3.2 So sánh các phần mềm học ngữ pháp tiếng anh hiện nay
PHÂN CÔNG VIỆC 1) Trần Sơn Hải
Trang 7CHƯƠNG 1: GIỚI THIỆU VỀ WINDOWS AZURE
1.1 Tổng quan Windows Azure
Nhìn một cách tổng quan, Windows Azure là một hệ điều hành dùng để chạy cácứng dụng Windows và lưu dữ liệu của nó trên đám mây Nhưng khác với một hệ điềuhành bình thường, người dùng phải cài đặt và chạy trên máy tính của mình, WindowsAzure là một dịch vụ: Khách hàng dùng nó để chạy ứng dụng và lưu trữ dữ liệu trêncác máy chủ ở trung tâm dữ liệu của Microsoft, có thể truy cập qua Interner Các ứngdụng này có thể cung cấp dịch vụ cho doanh nghiệp và khách hàng
Hình 1.1 - Ứng dụng Windows Azure
Trang 81.2 Các thành phần Windows Azure
Hình 1.2- Các thành phần Windows Azure
Dịch vụ tính toán sẽ chạy ứng dụng, trong khi dịch vụ lưu trữ lưu dữ liệu
Thành phần thứ ba, Windows Azure Fabric, cung cấp cách thức để quản lý và theo dõicác ứng dụng sử dụng nền tảng đám mây này
2.2.1 Dịch vụ tính toán (Compute Service)
Dịch vụ tính toán Windows Azure có thể chạy nhiều kiểu ứng dụng khác nhau.Mục tiêu chính của kiến trúc này là hỗ trợ các ứng dụng có lượng người sử dụng truycập đồng thời cực lớn Windows Azure được thiết kế để hỗ trợ chạy nhiều bản sao củacùng một mã nguồn trên nhiều máy chủ khác nhau
Để đạt được điều này, ứng dụng Windows Azure có thể có nhiều thể hiện, mỗi thểhiện được thực thi trên một máy chủ ảo
Dịch vụ tính toán hỗ trợ 2 loại thể hiện : Web role và Worker role
Trang 9Hình 1.3 – Ứng dụng Windows Azure có thể chứa Web role và Worker role
Một thể hiện Web role có thể chấp nhận một request HTTP/HTTPS Để thực hiện điều này, thể hiện Web role chạy trên một máy ảo có cài Internet InformationServices 7 (IIS 7) Lập trình viên có thể tạo ra Web role bằng ASP.NET, WCF, haybất kì kĩ thuật NET khác có thể hoạt động được với IIS 7 Ngoài ra, lập trình viên cóthể viết các ứng dụng với native code, có nghĩa là có thể chạy các ứng dụng sử dụng
kĩ thuật khác như PHP, Java Khi một request được gửi đến Web role, nó sẽ đượctruyền qua bộ cân bằng tải đến các thể hiện của Web role trong cùng một ứng dụng Do
đó, không đảm bảo rằng, các yêu cầu từ một người dùng có thể được gửi đến cùng mộtthể hiện của ứng dụng
Một thể hiện Worker role không giống như Web role, nó không chấp nhậnrequest từ bên ngoài, các máy ảo của nó không chạy IIS Một Worker role cho bạnkhả năng để chạy các xử lý ngầm liên tục trên đám mây Một Worker role có thể làmviệc với queue, table, blob trong dịch vụ lưu trữ Nó chạy hoàn toàn độc lập với thể hiệnWeb role, mặc dù có thể cùng thuộc một phần của dịch vụ Việc liên lạc giữa Webrole và Worker role có thể thông qua queue của dịch vụ lưu trữ
Lập trình viên có thể chỉ sử dụng thể hiện Web role, hay Worker role, hoặc kết hợp
cả hai để tạo ra ứng dụng Windows Azure Sử dụng Windows Azure portal để thayđổi số lượng thể hiện của Web role, Worker role tùy theo yêu cầu của ứng dụng Khi chạy các thể hiện Web role hay Worker role, các máy ảo cũng chạy đồngthời các Fabric agent Các agent phục vụ cho việc tương tác giữa các thể hiện với
Trang 10Windows Azure Fabric Các agent này trình bày các API được định nghĩa để các thểhiện có thể làm một số việc như: ghi chép, tìm thư mục gốc của tài nguyên lưu trữ cục
bộ trên máy ảo của nó
Windows Azure cho phép lập trình viên chọn cấu hình máy ảo: một nhân, hainhân, bốn nhân và tám nhân Và để tăng hiệu suất, người sở hữu ứng dụng có thể tăng
số lượng thể hiện đang chạy được đặt tả trong tập tin cấu hình ứng dụng WindowsAzure fabric sẽ thêm máy ảo mới, gán thêm nhân và bắt đầu chạy ứng dụng Fabriccũng dò khi một thể hiện Web role hoặc Worker role bị chết, nó sẽ tạo một thể hiện mới
1.2.2 Dịch vụ lưu trữ (Storage Service)
Dịch vụ lưu trữ Windows Azure hỗ trợ 3 kiểu dịch vụ: blob, table, queue
Hình 1.4 - Bộ lưu trữ Windows Azure: Blob, Table, Queue
Một cách đơn giản nhất để lưu trữ dữ liệu là sử dụng blob Windows Azure blob
có kiến trúc đơn giản: một tài khoản lưu trữ có một hoặc nhiều container, mỗicontainer có một hoặc nhiều blob Blob có thể rất lớn - mỗi blob có thể chứa vàiterabyte dữ liệu Blob có thể kết hợp với metadata, như thông tin về nơi chụp ảnh hoặcngười sáng tác bài hát
Một cách khác để sử dụng blob là Windows Azure XDrive, được gắn với mỗi thểhiện Web role và Worker role Lưu trữ bên dưới một XDrive là một blob, như vậy mỗiblob là một ổ đĩa được gắn kết, mỗi thể hiện có thể đọc và ghi dữ liệu như hệ thống tậptin
Trang 11Để cho phép ứng dụng làm việc với dữ liệu hiệu quả hơn, bộ lưu trữ WindowsAzure cung cấp table Không giống với bảng quan hệ, các table lưu trữ một tập cácentity với các property Một table không có giản đồ và các property có nhiều kiểu dữliệu khác nhau như int, string, bool, hoặc datetime Một ứng dụng có thể truy xuất dữliệu của table sử dụng ADO.Net Data Service hoặc LINQ Một table có thể rất lớn,với vài triệu entity chứa vài terabyte dữ liệu, và bộ lưu trữ Windows Azure có thểphân vùng nó qua nhiều máy chủ nếu cần cải thiện hiệu suất
Blob và table tập trung vào lưu trữ dữ liệu, thành phần lưu trữ thứ ba là queue lại
có một mục đích khác Mục đích chính của queue là cung cấp cách thức để thể hiệnWeb role liên lạc với thể hiện Worker role Ví dụ, một người dùng có thể gửi mộtrequest để thực hiện các nhiệm vụ tính toán chuyên sâu qua trang Web được
thực thi bởi Web role Thể hiện Web role nhận request này và viết một message vàoqueue - mô tả công việc được thực hiện Một thể hiện Worker role đợi queue này, sau
đó đọc message và thực hiện nhiệm vụ
Bộ lưu trữ Windows Azure có thể được truy xuất bởi một ứng dụng WindowsAzure hoặc bởi một ứng dụng khác Cả 3 thành phần của bộ lưu trữ Windows Azuređều sử dụng giao thức REST để truy xuất dữ liệu
1.2.3 Windows Azure Fabric
Tất cả các ứng dụng Windows Azure và dữ liệu của nó đều tồn tại trên trung tâm
dữ liệu của Microsoft Bên trong trung tâm dữ liệu này, một tập hợp các máy dành cho
Windows Azure được tổ chức thành một fabric
Trang 12Hình 1.5 - Fabric Controller
Như hình trên, Windows Azure Fabric chứa một một nhóm các máy, tất cả các
máy được quản lý bởi một phần mềm gọi là fabric controller Fabric controller được
tái tạo qua mỗi nhóm từ 5 đến 7 máy, nó sở hữu tất cả các tài nguyên: máy tính,switch, bộ cân bằng tải (load balancer), Vì nó có thể giao tiếp với một fabric agent trênmỗi máy tính nên nó nhận biết được tất cả các ứng dụng Windows Azure trong fabric Với các thông tin có được, cho phép fabric controller có thể làm được nhiều việcrất hữu ích Nó theo dõi tất cả các ứng dụng đang chạy Nó quản lý hệ điều hành, quản
lý việc vá lỗi cho phiên bản của Windows Server 2008 Nó quyết định khi một ứngdụng mới được tải lên sẽ được chạy trên dịch vụ nào Để làm được điều này, fabriccontroller phụ thuộc vào tập tin cấu hình c ủa mỗi ứng dụng được tải lên Trong đó, chỉ
ra bao nhiêu thể hiện cần được tạo ra và kích thước các máy ảo là thế nào Dựa vào đó,fabric controller tạo ra các máy ảo tương ứng Khi tạo ra các máy ảo này, fabriccontroller sẽ theo dõi các ứng dụng đó Nếu một ứng dụng cần có 5 thể hiện và mộttrong số đó có 1 thể hiện bị "chết", fabric controller sẽ tự động khởi tạo một thể hiệnmới Nếu một máy ảo đang chạy bị chết, fabric controller sẽ tự động khởi tạo một thểhiện khác của ứng dụng trên một máy ảo khác, sau đó khởi động lại bộ cân bằng tải đểchỉ đến máy mới này
Nhằm phục vụ cho tính sẵn sàng của dịch vụ, fabric controller nhóm các máy nó
làm chủ thành một số miền gọi là fault domain Mỗi miền là một phần của trung tâm dữ
liệu
Trang 13Hình 1.6 - Fabric Controller và Fault Domain
Trong hình trên, giả sử ứng dụng cần 2 thể hiện Web role và trung tâm dữ liệuđược chia làm 2 miền lỗi Khi fabric controller triển khai ứng dụng này, nó sẽ đặt mỗithể hiện Web role vào một miền Khi có lỗi xảy ra ở một miền nào đó cũng sẽ không thểlàm chết hoàn toàn ứng dụng của bạn
Ngoài ra, fabric controller nhóm các thể hiện của ứng dụng thành các miền cập
nhật "update domain"
Trang 14Hình 1.7 - Fabric Controller và Update Domain
Khi mã của ứng dụng cần cập nhât, fabric controller sẽ thực hiện cậpnhật trong từng miền Ví dụ trong hình trên, fabric controller sẽ tiến hành tắt haithể hiện 1 và 2 của ứng dụng trước, cập nhật và khởi động lại hai thể hiện này.Sau đó, tiến hành tương tự cho 2 thể hiện ở miền còn lại Mục đích của việc này
là làm cho ứng dụng không bị gián đoạn, khi một ứng dụng đang cập nhật,người dùng vẫn có thể truy cập đến với phiên bản cũ của ứng dụng cho đến khi
nó cập nhật xong
Trang 15CHƯƠNG 2 : WINDOWS PHONE 7 VÀ CÔNG NGHỆ
SILVERLIGHT
2.1 Giới thiệu
Windows Phone 7 là thế hệ kế tiếp của dòng điện thoại chạy hệ điềuhành Microsoft Windows Mobile Windows Phone 7 được phát triển dựa trênphần lõi là Windows CE 7 giống Zune HD, trong khi các phiên bản trước lạidựa trên Windows CE 5
Windows Phone 7 được Microsoft phát triển để thay thế cho hệ điềuhành di động Windows Mobile trước đây Windows Phone bắt đầu từ phiên bảnthứ 7 (khi ra mắt, Microsoft gọi nó là Windows Phone 7, còn hiện giờ nó đã lênđến 8.0) Được biết, do phát triển trong thời gian ngắn nên Windows Phone rấthạ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 đã trở nên rất lỗi thời
Windows Phone 7 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ị WindowsPhone đầ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ácvới một số nhà sản xuất khác là Acer, Fujitsu và ZTE
Windows Phone 7 được Microsoft thiết kế dựa trên tiêu chí giúp lậptrình viên dễ dàng hơn trong việc tạo nên các ứng dụng RIA (Rich InternetApplication) với công nghệ nền tảng dựa trên Net, Silverlight và XN FrameWork, với những lập trình viên đã từng làm qua Silverlight thì việc chuyển sangWindows Phone 7 là một việc rất dễ dàng, không chỉ có thế Microsoft còn ưu áicho các nhà sản xuất với việc tạo nên một môi trường phát triển và thiết kế cực
Trang 16kỳ đơn giản và có thể chạy được trên phần cứng của nhiều hãnh khác nhau nhưHTC, Sony, LG….
Với Windows Phone, Microsoft cung cấp một giao diện người dùng mớivới ngôn ngữ thiết kế của hãng có tên là Metro Nó tích hợp hệ điều hành vớicác dịch vụ khác của Microsoft, các bên thứ ba và điều khiển phần cứng nóchạy trên đó
Một cột mốc quan trọng của Windows Phone đó là sự hợp tác giữaMicrosoft với Nokia sau khi hãng điện thoại Phần Lan này quyết định khôngcò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, Nokiatiếp tục ra mắt hai máy Lumia mới nữa (mình sẽ đề cập ở phần sau) Việc tíchhợp các dịch vụ của Microsoft (Bing, Bing Maps, Windows PhoneMarketplace,…) lên thiết bị Nokia được cho là sẽ tạo nên lợi thế cạnh tranh choWindows Phone với hai đối thủ lớn hiện thời là iOS và Android
Microsoft phát triển Windows Phone 7 dựa trên hai công nghệ Silverlight vàXNA:
Silverlight: một sáng kiến phía client dựa trên Windows Presentation
Foundation (WPF) đã tạo ra một sức mạnh chưa từng có cho các nhà pháttriển website để tạo ra các giao diện người dùng tinh vi với sự kết hợp củacác control sẵn có, các kí tự chất lượng cao, các vector graphic, media,animation và data binding có thể chạy trên đa platform và đa trình duyệt.WP7 đã mang sức mạnh của Silverlight đến với các thiết bị mobile
XNA: là một game platform hỗ trợ cả 2 thể loại game 2D và 3D với kiến
trúc game-loop truyền thống Mặc dù XNA được phục vụ chủ yếu cho việcphát triển game trên console Xbox360 nhưng XNA cho phép các developer
có thể dùng nó để phát triển trên PC hoặc ZuneHD
Tóm gọn lại Microsoft thiết kế Windows Phone 7 với ba tiêu chí chính:
Design: End Users Come First (Có thể hiểu là chú trọng về cách dễ dùng
nhất cho người dùng)
Trang 17 PlaftForm: Fun and Easy to build complelting Apps and Games.
Hardware: Optermized and sandardized.
2.2 Lịch sử các phiên bản phát triển của Windows Phone
paste, tốc độ chạy ứng dụng nhanh hơn, tích hợp Facebook sâu hơn
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 đanhiệm cho các ứng dụng bên thứ ba bằng cách tạm ngừng chúng
thoại
đề khác
Nhiều tính năng mới xuất 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 256MBRAM và xung nhịp CPU chậm
Trang 182.3 Kiến trúc
Windows Phone Application Platform kiến trúc được tạo thành từ bốnthành phần chính:
Hình 2.1 Kiến trúc Windows Phone Application Platform
Runtimes (Runtimes): Silverlight và khung XNA, cùng với Windows tính
năng điện thoại cụ thể, kết hợp để cung cấp một môi trường trưởng thànhtrong việc xây dựng an toàn, các ứng dụng đồ họa phong phú
Tools (Công cụ): Visual Studio và Expression Blend, và các công cụ và tài
liệu liên quan của chúng, tạo ra một trải nghiệm phát triển hoàn chỉnh đểnhanh chóng tạo ra ứng dụng, gỡ lỗi, triển khai và cập nhật các ứng dụng
Trang 19 Cloud (Dịch vụ điện toán đám mây): Windows Azure, Xbox LIVE, thông
báo dịch vụ, và dịch vụ định vị, cùng với một loạt các dịch vụ web khác,cho phép các nhà phát triển để chia sẻ dữ liệu qua các đám mây và lợi íchngười tiêu dùng bằng cách cung cấp một trải nghiệm liền mạch trên thiết bịbất cứ điều gì họ đang sử dụng Kết nối với các dịch vụ web của bên thứ bacũng hỗ trợ đầy đủ
Portal Services (Dịch vụ cổng thông tin): điện thoại Windows
Marketplace cung cấp các dịch vụ mạnh mẽ cho phép các nhà phát triểnđăng ký, xác nhận, và thị trường ứng dụng của họ
2.4 Vòng đời phát triển của 1 ứng dụng Windows Phone
Hình 2.2 Vòng đời phát triển của 1 ứng dụng Windows Phone
2.4.1 Bắt đầu với App Hub
App Hub sẽ là điểm khởi đầu cho các nhà phát triển Các nhà phát triển
có thể bắt đầu bằng cách đăng ký cho một ID Windows Live Tiếp theo, họ có
Trang 20thể đăng ký để có được SDK Windows Phone và cấp giấy phép liên quan đểphát triển các ứng dụng bằng cách sử dụng Visual Studio và ExpressionBlend Đây sẽ là một download duy nhất có chứa tất cả mọi thứ phát triển đòihỏi phải xây dựng một ứng dụng cho Windows Phone Nhà phát triển cũng cóthể đăng ký một hoặc nhiều điện thoại để sử dụng như là phần cứng thử nghiệmxác nhận các ứng dụng mà họ đang xây dựng Bất kỳ điện thoại Windows bán
lẻ có thể được đăng ký như là một thiết bị thử nghiệm
Trung tâm ứng dụng có chứa mẫu, tài liệu, và cộng đồng nhà phát triểnhoạt động giúp làm cho các nhà phát triển điện thoại Windows thành công
2.4.2 Thiết kế một ứng dụng và sản sinh ra một gói ứng dụng
Một khi các nhà phát triển đã đăng ký là nhà phát triển một WindowsPhone và đã cài đặt công cụ phát triển, họ có thể bắt đầu phát triển các ứngdụng của họ Trò chơi và các ứng dụng đồ họa chuyên sâu được tạo ra trongVisual Studio bằng cách sử dụng các thư viện 2D và 3D của XNA Framework
Thiết kế hình ảnh cho các ứng dụng dựa trên XAML cho Silverlightđược tạo ra trong Visual Studio và/hoặc Expression Blend XAML tài liệu kếtquả có chứa đánh dấu sau đó được giải thích bởi các công cụ trình bàySilverlight và các thành phần khác của ứng dụng điện thoại nền tảng Windows
Với Windows Phone 7.5, bây giờ bạn có thể kết hợp Silverlight và XNAFramework vào một ứng dụng duy nhất
Visual Studio IDE được sử dụng để viết mã quản lý xác định hành vihình ảnh của tất cả các ứng dụng Windows Phone Khi ứng dụng được hoàn tất,một gói được tạo ra trong đó bao gồm tất cả mọi thứ nhu cầu ứng dụng
2.4.3 Gỡ lỗi 1 ứng dụng
Trong khi tạo ra một ứng dụng Windows Phone, một nhà phát triển cóthể gỡ lỗi các chương trình trên điện thoại hoặc trong giả lập điện thoạiWindows Gỡ lỗi các ứng dụng liên quan đến việc tạo ra một gói phần mềmnhắm mục tiêu nền tảng gỡ lỗi và sau đó sử dụng Visual Studio để triển khai
Trang 21các gói phần mềm Biểu hiện đánh giá, bước mã nguồn, và cửa sổ đồng hồ biếnđược tất cả các hỗ trợ.
2.4.4 Xuất bản một ứng dụng
Sau khi một ứng dụng đã được hoàn thành, một nhà phát triển có thể làmcho chương trình có sẵn cho người dùng khác trên Windows PhoneMarketplace Để xuất bản Windows Phone Marketplace, các nhà phát triển gửi
một tập tin XAP Các tập tin XAP là một tập tin nén chứa tất cả các thông tin
cần thiết cho ứng dụng Điều này bao gồm một biểu tượng ứng dụng, gói bắtđầu, siêu dữ liệu, và các điều khoản cấp phép để xác định chương trình của họ
có thể được sử dụng như thế nào
Tiếp theo, các dấu hiệu phát triển vào App Hub và gửi các gói ứng dụngxác nhận Đây là cách duy nhất để làm cho một ứng dụng có sẵn cho người tiêudùng Quá trình cấp giấy chứng nhận sẽ kiểm tra xem ứng dụng là cách cư xử,làm việc cho các ngôn ngữ và thị trường chỉ ra, và không ảnh hưởng xấu đếnsức khỏe tổng thể của điện thoại
Một khi các gói phần mềm đã đáp ứng các yêu cầu điện thoại xác nhậnWindows Marketplace, nhà phát triển được thông báo và có thể công bố ứngdụng Windows Marketplace điện thoại thông qua App Hub Các ứng dụng sau
đó làm sẵn có cho người tiêu dùng tải về trong Windows PhoneMarketplace Thẻ tín dụng và hoạt động thanh toán điện thoại di động điềuhành được hỗ trợ
2.4.5 Quản lý xuất bản ứng dụng
Sau khi một ứng dụng Windows Phone được công bố Thị trường điệnthoại Windows, nhà phát triển sử dụng App Hub để quản lý các phiên bản củaứng dụng có sẵn để mua
Trang 222.5 Giới thiệu công nghệ Silverlight
2.5.1 Tổng quan
Microsoft Silverlight là một công nghệ đa nền, đa trình duyệt dựa trênnền NET dùng để xây dựng và phát triển một thế hệ ứng dụng Web và thiết bịmới, đầy tính tương tác và hỗ trợ tối đa về media Hiện nay Silverlight đã có 5phiên bản dùng phát triển ứng dụng bằng ngôn ngữ Javascript và bằng các ngônngữ NET framework như C# hay VB.NET , Bên cạnh đó công nghệSilverlight còn được hỗ trợ bởi ngôn ngữ đánh dấu XAML đầy sức mạnh trongviệc thể hiện giao diện người dùng Có thể nói công nghệ Silverlight đã thốngnhất được tất cả các khả năng của server, Web và ứng dụng desktop, củacode NET, của ngôn ngữ hình thể và ngôn ngữ truyền thống và sức mạnh củaWindows Presentation Foundation (WPF) Để cuối cùng tạo ra một ứng dụng
mà người dùng phải thấy thích Một số người cho rằng công nghệ Silverlightcủa Microsoft sẽ là “sát thủ” của Adobe Flash Nhưng hiện tại thì chưa thể biếtđược điều gì, vì cả hai công nghệ này đều được sử dụng bằng plug-in của trìnhduyệt, cả hai đều hỗ trợ đồ họa vector, âm thanh, phim ảnh, animation và ngônngữ script Dù người phát triển ứng dụng là người phát triển web hay ngườithiết kế đồ họa thì Silverlight đều tạo điều kiện tốt nhất để người đó có thể phát
huy tối đa khả năng của mình Hiện nay Silverlight đang là công nghệ hot trong
thế giới web Đây là một công nghệ khá tốt của Microsoft trong việc thiết kế vàphát triển các dự án web Vì vậy có khả năng nó sẽ phát triển mạnh hơn nữa
2.5.2 Silverlight là gì ?
Silverlight là một công nghệ đa nền tảng, đa trình duyệt được đưa ra bởiMicrososft, cho phép xây dựng các ứng dụng trên web (không phụ thuộc vàotrình duyệt) và tương tác với Server Silverlight cung cấp một mô hình lập trìnhmềm dẻo và đồng nhất, nó hỗ trợ Ajax, Python, Ruby và các ngôn ngữ lậptrình Net như C#, Visual basic Khả năng đa phương tiện của Silverlight thểhiện ở mức độ truyền tải âm thanh và hình ảnh chất lượng cao một cách nhanh
Trang 23chóng và hiệu quả trên tất cả các trình duyệt (Internet Explorer, Firefox, Safari,Opera ) Điểm mạnh của Silverlight đó là cung cấp những thuộc tính thiết kếgiao diện, tạo những hiệu ứng (hoạt ảnh) một cách dễ dàng.
2.5.3 Các đặc tính của Silverlight
Silverlight kết hợp nhiều công nghệ vào một nền tảng phát triển, nó chophép bạn được lựa chọn nhiều công cụ và ngôn ngữ lập trình thích hợp để giảiquyết bài toán của bạn Silverlight cung cấp các tính năng sau:
Sự kết hợp của WPF và XAML: Silverlight là một gói nhỏ của công nghệ
WPF (Windows Presentation Foundation) WPF cho phép bạn tạo ra đồ họa
ba chiều, hình ảnh động, đa phương tiện và nhiều tính năng phong phú khác.Các ứng dụng tạo ra bởi WPF chủ yếu là các phần mềm đóng gói.Silverlight kế thừa một số thuộc tính của WPF và nó được mở rộng nhiềuhơn ở một số các phần tử để tạo ra giao diện cho người dung trên trình duyệtweb Tuy nhiên Silverlight cũng mang một số điểm hạn chế hơn WPF vềtính linh động (tùy biến) trong việc thiết kế giao diện và hiệu ứng CảSilverlight và WPF đều dựa trên cùng một nền tảng là XAML (ExtensibleApplication Markup Language) cung cấp các cú pháp đánh dấu đặc trưngcho việc tạo các Element
Mở rộng ngôn ngữ đa kịch bản: Silverlight cung cấp việc mở rộng cho các
ngôn ngữ đa kịch bản (Javascript) ở một số các trình duyệt phổ biến để thểhiện việc trình bày giao diện và thao tác người dùng một cách phong phúhơn
Tích hợp các ứng dụng đã có: Silverlight là sự tích hợp liền mạch với ngôn
ngữ Javascript và mã Ajax sẵn có của Asp.Net để bổ sung các chứcnăng bạn đã xây dựng được Bạn có thể tạo những tài nguyên trên nền máychủ có trong ASP.NET và sử dụng các khả năng của Ajax trong ASP.NET
để tương tác với tài nguyên trên nền máy chủ đó mà không làm gián đoạnngười dùng Các ứng dụng Silverlight có khả năng tương tác với máy chủ,
xử lý các sự kiện một cách bất đồng bộ Điều này không làm gián đoạn thao
Trang 24tác của người dùng cuối Nếu như bạn đã từng tạo ra các dự án web sử dụngAjax, chắc hẳn bạn sẽ cảm thấy dễ dàng hiểu cơ chế xử lý bất đồng bộ trongSilverlight.
Trang 25 Sử dụng mô hình ngôn ngữ lập trình trên nền tảng Net framework và các công cụ để kết hợp: Bạn có thể tạo các ứng dụng trên nền tảng
Silverlight bằng cách sử dụng các ngôn ngữ động như InronPython cũngnhư các ngôn ngữ như C#, Visual Basic Microsoft đã đưa ra một sự kết hợpnhuần nhuyễn cho việc tạo ra các ứng dụng Silverlight thông qua hai bộcông cụ: Visual Studio 2008 và Expression Blend Sự đồng bộ công cụ nàytạo nên sự thuận lợi tối đa cho các nhà phát triển
Hỗ trợ mạng: Silverlight hỗ trợ HTTP thông qua giao thức TCP Nó có thể
thực hiện các kết nối tới các dịch vụ của WCF, SOAP, ASP.NET và nhận vềcác định dạng theo cấu trúc XML, JSON hay dữ liệu RSS
Hỗ trợ ngôn ngữ tích hợp truy vấn (LINQ): Silverlight cho phép thực
hiện những truy vấn dữ liệu bằng cách sử dụng cú pháp trực quan và mạnh mẽ thông qua LINQ (Language Integrated Query – ngôn ngữ truyvấn tích hợp) LINQ cho phép bạn tạo những truy vấn ngay trên công cụ lậptrình (Visual Studio) như trong SQL và được tích hợp trong bộ .NETFramework 3.0 trở lên Có ba điều mà bạn nên quan tâm về LINQ là: LINQ
to Objects – LINQ to XML và LINQ to SQL
Thể hiện được các nội dung phức tạp: Silverlight có thể tạo ra các nội
dung phức tạp, gồm video, animation, text, đồ họa hai chiều, các hiệu ứnghình ảnh trên trang web
Plug-in nhỏ gọn: Chỉ mất ít phút để có thể cài plugin vào trình duyệt và sử
dụng công nghệ Silverlight
Trang 262.6 Nghiên cứu công nghệ Silverlight
2.6.1 Kiến trúc tổng thể và các thành phần Siverlight
Dưới đây là hình ảnh mô tả những thành phần trong kiến trúc củaSilverlight cùng với các thành phần và dịch vụ liên quan khác:
Trang 27Hình 2.3 Kiến trúc tổng thể và các thành phần Silverlight
Trang 28Về cơ bản Silverlight là một nền tảng thống nhất của nhiều thành phầnkhác nhau Dưới đây là các thành phần chính của Silverlight:
Thành phần Diễn tả
Nền tảng trình bày cơ sở Các thành phần và dịch vụ hướng tới giao
diện người dùng và tương tác người dùng, baogồm các control dữ liệu cho người dùng nhập,thiết bị đa phương tiện, quản lý phân quyền
số, trình bày dữ liệu, đồ họa vector, chữ, hìnhảnh động và bao gồm cả XAML để đặc tả việc
Cài đặt và cập nhật Là thành phần để xử lý các tiến trình cài đặt
làm sao để đơn giản hóa cho lần cài đặt đầutiên, tiếp sau đó chỉ cung cấp cơ chế tự độngcập nhật và tương tác ở mức thấp
Bảng 2.1 Bảng mô tả các thành phần chính của SilverlightKiến trúc Silverlight:
Browser Plug-in:
Plug-in này cung cấp những cơ chế như sau:
1) Thiết lập và thay đổi nội dung XAML thực thi nó runtime
2) Lấy những đối tượng tại thời điểm runtime, thao tác thông qua javascript.3) Tăng khả năng download nội dung
Element Tree:
1) Nó chính là cây của những đối tượng như: đối tượng Path, đối tượng Image
và đối tượng MediaElement mà bạn tạo ra để xây dựng ứng dụng và nó tương
tự như là cây HTML Tuy nhiên, nó có nhiều graphics element hơn so vớiHTML, và mô hình để lập trình thì giống như DOM Để có thể xây dựng
Trang 29Element Tree, chúng ta có thể dùng XAML parser được cung cấp bởiSilverlight sử dụng hàm CreateFromXaml.
2) Để có thể thay đổi Element Tree thì:
a) Dùng Javascript API
b) Sử dụng Animation System để thay đổi giá trị over time
Trang 303) Dựa vào sự thuận lợi của CPU mà chúng cải thiện render.
Đặc trưng của Render Engine:
- Input and Events: Cung cấp sự kiện
- Animation System: Animation tăng tính linh hoạt GUI
- Downloader and Packaging: XAML, images, fonts được đóng gói vào bêntrong file *.zip dựa vào đối tượng Downloader
- Ink Support: hỗ trợ vẽ nội dung sử dụng Pen, tương tự như Paint
Trang 31vẽ hoặc các thiết bị đầu vào khác.
Trình bày giao diện người dùng (UI
Rendering)
Trình bày vector và các đồ họa ảnhbitmap, ảnh động và văn bản …
Thiết bị nghe nhìn (Media) Các tính năng quản lý và phát 1 vài
file hình ảnh và âm thanh
Controls Hỗ trợ mở rộng cho các control để có
khả năng tùy chỉnh về khuôn mẫu
Xếp đặt layout Cho phép khả năng xếp đặt vị trí động
các thành phần giao diện người dùng
Trình bày dữ liệu (Data Binding) Cho phép việc kết nối dữ liệu của các
đối tượng và các thành phần giao diệnngười dùng
Bảng 2.2 Bảng các nền tảng cơ sở trong Silverlight
Các lập trình viên có thể tương tác với thành phần “nền tảng trình bày cơsở” trên bằng cách sử dụng XAML để đặc tả XAML là một yếu tố quantrọng nhất trong việc tương tác giữa .Net Framwork và các kiểu trình bàyLayout, ngoài ra các lập trình viên cũng có thể sử dụng cơ chế quản lý code bêntrong để thao tác với lớp trình bày
Trang 32 Net Framework cho Silverlight:
và LINQ với đặc tả XML, dễ dàng xử lýviệc tích hợp và làm việc với dữ liệu từnhiều nguồn khác nhau
Base class library Nó cung cấp các chức năng lập trình chủ
yếu như việc xử lý chuỗi, biểu thức chínhquy, đầu vào và đầu ra, ánh xạ, tập hợp vàtoàn cục hóa
Window Communication Foundation
(WCF)
Cơ chế này bao gồm một đối tượng trìnhduyệt, HTTP request và HTTP Response,RSS, JSON, POX, và các SOAP
Common language runtime (CLR) Cung cấp việc quản lý bộ nhớ, dọn dẹp bộ
Dynamic language runtime (DLR) Hỗ trợ việc biên dịch và thi hành với tính
năng động của các ngôn ngữ kịch bản như Javascript và IronPython cho các chươngtrình trên nền tảng Silverlight
Bảng 3.3 Bảng mô tả Net Framework cho Silverlight 2.6.2 Các phiên bản và mô hình lập trình Silverlight
Silverlight 1.0:
Sau 6 tháng thử nghiệm, tháng 11/2007 Silverlight 1.0 đã được Microsoftchính thức ra mắt trước xu hướng nội dung Web tương tác đang thịnh Là mộtplug-in của trình duyệt, Silverlight 1.0 mang sức mạnh âm thanh và videocải tiến đến với các ứng dụng Web, nó cũng được coi là lời phúc đáp củaMicrosoft với công nghệ Flash (của đối thủ Adobe) đang rất phổ biến.Silverlight có thể giúp cho Microsoft gây dựng thanh thế trong lĩnh vực thiết kế
Trang 33giao diện Web và cạnh tranh với Flash như một nền tảng cho ứng dụng Webtrong tương lai Silverlight 1.0 bao gồm framework thuyết trình, có thể xử lýhình ảnh, chữ, hình họa, âm thanh, hình ảnh cùng lúc, đồng thời thiết kế giaodiện người dùng bằng ngôn ngữ đánh dấu XAML của Microsoft Các nhà pháttriển có thể tạo ra các ứng dụng Silverlight nhờ một add-on miễn phí bên trongphần mềm Visual Studio 2008 sắp phát hành.
Silverlight 2.0:
Ngày 13 tháng 10 năm 2008, Microsoft đã giới thiệu phiên bản thứ 2 của Silverlight – một trong những giải pháp toàn diện nhất để trải nghiệm sức mạnh
của truyền thông đa phương tiện và phát triển các ứng dụng dành cho web Một
số tính năng nổi bật của Silverlight 2:
với môi trường NET Framework
ScrollViewer, Calendar và nhiều trình điều khiển khác
dụng
cực cao đang dần trở nên phổ biến
nhiên là cả HTTP, tính năng này sẽ giúp những ứng dụng dễ dàng tích hợpđược với các hệ thống sẵn có
Framework, Silverlight 2 có thể hỗ trợ rất nhiều ngôn ngữ lập trình nhưVisual Basic, C#, JavaScript, IronPython và IronRuby Điều này sẽ giúp cácnhà phát triển dễ dàng hơn trong việc lập trình dựa trên các kỹ năng sẵn có
cung cấp bởi PlayReady, mang đến khả năng bảo mật mạnh mẽ
Trang 34 Tính năng này giúp việc truyền tải dữ liệu tốt hơn dựa trên, tối ưu hóa cáccông cụ tìm kiếm, hỗ trợ các hình thức quảng cáo thế hệ tiếp theo
Mac, Windows hay Linux, đồng thời nó cũng có thể dễ dàng tích hợp vàocác trình duyệt như Firefox, Safari và Windows Internet Explorer
rẽ với trình duyệt, tức đóng vai trò là một ứng dụng offline
Silverlight 3 cho phép các nhà phát triển và thiết kế tạo ra những ứng dụngweb có tính chất đột phá nhằm mang đến cho khách hàng những trải nghiệm tốttrong môi trường web
Silverlight 4.0:
Hôm 17/5/2010, Microsoft đưa ra Silverlight 4 Tools for VisualStudio 2010,gói add-on cho Visual Studio 2010 IDE, cung cấp công cụ cho nền tảngSilverlight 4 Nó cung cấp một bộ đầy đủ các tính năng mạnh mẽ để pháttriển ứng dụng kinh doanh Silverlight cung cấp một nền tảng lý tưởng cho việcphát triển và triển khai các ứng dụng kinh doanh hiện đại cho cả haimặt: khách hàng và nhân viên, các ứng dụng
Tính năng mới cho các nhà phát triển ứng dụng:
xem ảo, độc lập với nội dung màn hình
Trang 35 Một tập hợp đầy đủ các hình thức điều khiển với hơn 60 tùy chỉnh, các
thành phần styleable Nút điều khiển bao gồm RichTextbox với các siêu
liên kết, hình ảnh, điều khiển trong dòng, và chỉnh sửa Tăng cường kiểmsoát bao gồm DataGrid với sortable/resizeable cột và copy/paste
WCF RIA dịch vụ giới thiệu mạng lớp doanh nghiệp và truy cập dữ liệu cho
việc xây dựng các ứng dụng bao gồm cả giao dịch, phân trang dữ liệu, WCF
và HTTP cải tiến
mở rộng khả năng cung cấp của một tầng lớp mới của ứng dụng RichInternet để làm việc trên máy tính để bàn mà không có mã bổ sung hoặcruntimes
Silverlight 5.0:
Silverlight 5 sẽ có 40 tính năng mới Một số điểm đáng chú ý của Silverlight
5 bao gồm:
khi xem video và giúp máy tính chuyển sang chế độ Sleep khi videokhông chạy
nhau và hỗ trợ tua nhanh, tua lại