01 | Building Windows Store Apps with XAML Part 1 Daren May | President (CRANK211) Jerry Nixon | Developer Evangelist (Colorado)
Module Agenda Windows Design Language Windows Platform Features
Windows Live
Live SDK for Windows 8.1 Uses OAuth 2.0, JSON and REST APIs Simplifies log in and token management Provides shims & UI for interacting endpoints The SDK provides access to: SkyDrive Outlook.com Skype
Microsoft Account
Microsoft account Microsoft account Guidelines Authentication Personalization Information Scopes wl.basic wl.signin Guidelines Sign-in state Enable sign-out
Microsoft Account
SkyDrive
SkyDrive overview Microsoft’s cloud storage solution for files and photo sharing Guidelines for using SkyDrive in Windows 8 Apps Upload data in response to user action Apps are allowed to store data without user interaction Use SkyDrive for what it does best Documents, photos, etc. Don’t undermine trust Respect user security and privacy Warn if data is public, etc.
Where to store app data in SkyDrive Don’t scatter data around SkyDrive Follow this pattern: [SkyDrive root] Sub folder: ApplicationData Sub folder: [Application Name] ([Publisher Name or Company Name]) Files…
SkyDrive API Core Concepts Interact with files using HTTP operations: POST / PUT to upload GET to download MOVE / COPY to move or copy without downloading The SDK wrappers these operations for you: LiveConnectClient.PostAsync LiveConnectClient.GetAsync Etc. Permissions Inherited from parent object up the folder hierarchy
Useful folder and file properties id - prefixed with file or folder i.e. “file.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!126” name – user supplied display name i.e. “EpisodeNotes.txt” description type – file, folder, album, etc. source – if a file, the path to download the file https://....
Working with SkyDrive API Important types: LiveConnectSession LiveConnectClient Requires a valid session Required scope: wl.skydrive - Read access wl.skydrive_update – read and write access LiveOperationResult contains a dynamic dictionary containing resultant key/value pairs
Retrieving file or folder properties Supply the itemId as either an id or one of the few friendly names: file.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!126 /me/skydrive
Result properties can be access via dynamic Warning: no type safety or compiler checks!
Understanding folder and file hierarchy Some folders are accessed by Folder ID Example: folder.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!126 Some folders are accessed by name /me - details about the signed in user /me/skydrive – root of your SkyDrive folder /me/calendars /me/contacts /me/events List files by obtaining the containing folder id
Download a file: Step 1 : Get folders of “/me/skydrive” Imagine we want to download filename.txt: /me/skydrive/directory1/directory2/filename.txt In order to retrieve a list of files and folders contained in directory1 (and we don’t know directory1’s id), we first need to get a list of the folders in /me/skydrive
Download a file: Step 2 : Get “directory1” from list Once we have the list of files and folders (from /me/skydrive), we can find directory1 and its id property: id = folder.96a6fb5ab7b940c6.96A6FB5AB7B940C6!123
Download a file: Step 3 : Get folders of “directory1” We use the Folder Id to find the folders in directory1, so we can find the id for directory2:
Download a file: Step 5 : Get files of “directory2” We repeat the last few steps and get directory2’s id, directory2Id = folder.bb1b4E12b9f9414f.BB1B4E12B9F9414F!231 We use can get a list of files (and folders) in directory2:
Download a file: Step 6 : Get “file.txt” file url We can the find the properties for filename.txt and the path we need to download it:
Download a file: Step 7 : Create local target Now we have the download path, we need to create a local StorageFile where we will write the downloaded file
Download a file: Step 8 : Create local target Use the download path Note: uses the background downloader
Get a file, recap Get folders of “/me/skydrive” Get “directory1” from list Get folders of “directory1” Get “directory2” from list Get files of “directory2” Get “file.txt” file url Create local target Download to target
App Showcase
Module Review Windows Design Language Windows Platform Features