2015 dan ardelean develop for windows 10

Post on 18-Jul-2015

38 views 2 download

Transcript of 2015 dan ardelean develop for windows 10

Develop for Windows 10(PREVIEW)

Dan Ardelean – MahizTwitter: @danardelean Email: dan.ardelean@live.comMicrosoft MVP Window Platform Development

Xamarin Certified Mobile Developer

Agenda

Windows Core

New Controls

App-to-App Communications

Action Center

First, Windows Core

One, Common source

One Windows kernel

One File I/O stack

One app model

More…

Easy for users to get & stay current

Unified core and app platform

The convergence journey

Windows 10

ConvergedOS kernel

Convergedapp model

UAP = Universal App Platform

A collection of contracts & versions

Target a version of UAPnot the Operating System

Platform Versioning

<TargetPlatform

Name="Microsoft.Universal"

minVersion="2.0.0.0"

maxVersionTested="3.5.0.0" />

Safely deploy one binaryto every type of device

Extension SDKs

UAP

Windows Core Windows Core Windows Core Windows Core

UAP UAP UAP

Desktop Mobile Xbox More…

Testing for capabilities

IsApiContractPresentIsEnumNamedValuePresentIsEventPresentIsMethodPresentIsPropertyPresentIsReadOnlyPropertyPresentIsTypePresentIsWriteablePropertyPresent

Windows.Foundation.Metadata.ApiInformation

Test capabilities at runtime

var ns = "Windows.Phone.UI.Input.HardwareButtons";

if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent(ns))

{

Windows.Phone.UI.Input.HardwareButtons

.BackPressed += Back_BackPressed;

}

Platform extensions

<ItemGroup>

<!-- Reference to the .Net Framework and Windows SDK are automatic -->

<SDKReference Include="Windows Desktop,Version=10.0.9910.0"/>

<SDKReference Include="Windows Mobile, Version=10.0.0.1"/>

</ItemGroup>

DEMO

Visual Studio

3:33

New Controls

Relative Panel

AdaptiveRelative to the panel

Relative to a sibling

Simplified XAMLSimplified Visual Tree

Simplified Visual State

Month Calendar

Basic operationDate picker

Calendar view

Density bars

InvestmentOutlook calendar

System calendar

SplitView

SplitView.PaneDisplayModeSplitView.IsPaneOpen

"True"SplitView.IsPaneOpen

"False"

Inline

Overlay

Compact Inline

Compact Overlay

Visual State setters & triggers

Setters set discrete propertiesMany properties do not need animation

Triggers declare when a state is applied No need to manually handle events in code-behind

<VisualState x:Name="wideState"><VisualState.Setters>

<Setter Target="myPanel.Orientation" Value="Horizontal" /></VisualState.Setters><VisualState.StateTriggers>

<AdaptiveTrigger MinWindowWidth="600"/></VisualState.StateTriggers>

</VisualState>

App to App Communicationenhancements in Windows 10

Enhanced App to App in Windows 10

Send file token, send data

Launch a *specific* app

App Services

Launch for Results

URI Activation++

Invoke a specific app

var options = new LauncherOptions();

options.TargetApplicationPackageFamilyName = "24919.InstapaperIt";

var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com");

await Launcher.LaunchUriAsync(launchUri, options);

URI Activation++

Send Files

var options = new LauncherOptions();

options.TargetApplicationPackageFamilyName = "24919.InstapaperIt";

var token = SharedStorageAccessManager.AddFile (gpxFile);

ValueSet inputData = new ValueSet();

inputData.Add("Token", token);

var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com");

await Launcher.LaunchUriAsync(launchUri, options, inputData);

Query URI Support

Discover if app already installed to handle a Uri

var queryUri = new Uri("instapaper:");

await Launcher.QueryUriSupportAsync(queryUri, LaunchUriType.LaunchUri);

?

var queryUri = new Uri("instapaper:");

string packageFamilyName = "24919.InstapaperIt";

await Launcher.QueryUriSupportAsync(queryUri, LaunchUriType.LaunchUriForResults, packageFamilyName);

Launch for Results

Launching the app

var options = new LauncherOptions();

options.TargetApplicationPackageFamilyName = "24919.Instap";

var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com");

await Launcher.LaunchUriForResultsAsync(launchUri, options, data);

var resultData = new ValueSet();

resultData.Add("Result", value);

operation.ProtocolForResultsOperation.ReportCompleted(resultData);A

App1 App2

App ServicesWeb Services on Device

Client App A

Client App B Background Task

App with App Service

Action Centermanaging your notification space

Action center & Quick actions

Action Center – User Experience

20 Notifications per app

Persistent notifications for 7 days (or shorter)

Users can: - “chase” (tap) a notification (removes it from the action center)

- remove a group of notifications

- remove all notifications

First available on Phone in 8.1 - now on Windows 10 desktop as well!

Action Center Management APIs

Manage app notifications

Developers can:• Remove one or many notifications

• Tag and group notifications

• Replace a notification with a new one

• Set an expiration on notifications

• Send “Ghost Toast” notifications (only show up in the notification center)

Action Center change triggers

ToastNotificationHistoryChangedTrigger• Fires whenever a user dismisses a notification from Action Center

• Or when an app adds or removes or replaces a notification

Use to trigger a Background task in which you can maintain consistency of unactioned item counts in app state and on Tiles

Action Center change trigger// Background task for a ToastNotificationHistoryChangedTriggerpublic sealed class ActionCenterChangedTask: IBackgroundTask{

public void Run(IBackgroundTaskInstance taskInstance){

var toasts = ToastNotificationManager.History.GetHistory();if (toasts != null){

var count = toasts.Count();if (count== 0){BadgeUpdateManager.CreateBadgeUpdaterForApplication().Clear();

}else{

XmlDocument badgeXml = BadgeUpdateManager.GetTemplateContent(BadgeTemplateType.BadgeNumber);XmlElement badgeElement = (XmlElement)badgeXml.SelectSingleNode("/badge");badgeElement.SetAttribute("value", count.ToString());BadgeNotification badge = new BadgeNotification(badgeXml);BadgeUpdateManager.CreateBadgeUpdaterForApplication().Update(badge);

}}

}}

Where to start

InstallationWindows 10 preview

• http://insider.windows.com/

Visual Studio 2015 preview

• http://www.visualstudio.com

The Visual Studio installer includes the Windows 10 preview SDK

ExtrasMicrosoft Account

• Windows Developer License

Hyper-V (hardware dependent)

• Phone emulator

Question?