1 XAML 2 Performance 3 Tools 4 App

  • Slides: 37
Download presentation

1 XAML 2 Performance 3 Tools 4 App Model 5 . Net Native

1 XAML 2 Performance 3 Tools 4 App Model 5 . Net Native

Windows 10 XAML ‘free’ Common scenarios are handled by the platform “automagicaly”

Windows 10 XAML ‘free’ Common scenarios are handled by the platform “automagicaly”

<Visual. State x: Name="Pressed"> <Storyboard> <Visual. State. Group x: Name="Window. Size. States"> <Object. Animation.

<Visual. State x: Name="Pressed"> <Storyboard> <Visual. State. Group x: Name="Window. Size. States"> <Object. Animation. Using. Key. Frames Storyboard. Target. Name="Root. Grid" <Visual. State x: Name="Wide. State"> Storyboard. Target. Property="Background"> Responsive Windows 10 <Visual. State. Triggers> <Discrete. Object. Key. Frame Key. Time="0" Value="{Theme. Resource layout XAML ‘free’ with new System. Control. Background. Base. Medium. Low. Brush}" /> <Adaptive. Trigger Min. Window. Width="720" /> </Object. Animation. Using. Key. Frames> Controls </Visual. State. Triggers> <Object. Animation. Using. Key. Frames Storyboard. Target. Name="Content. Presenter" Relative Commonpanel, scenarios are <Visual. State. Setters> Storyboard. Target. Property="Border. Brush"> Adaptive triggers, handled by the <Setter. Key. Time="0" Target="My. Split. View. Is. Pane. Open" Discrete. Object. Key. Frame Value="{Theme. Resource platform System. Control. Highlight. Transparent. Brush}" /> Value="True" /> “automagicaly” </Object. Animation. Using. Key. Frames> <Setter Target="My. Split. View. Display. Mode" <Object. Animation. Using. Key. Frames Storyboard. Target. Name="Content. Presenter" Value="Inline" /> Storyboard. Target. Property="Foreground"> <Discrete. Object. Key. Frame Key. Time="0" Value="{Theme. Resource </Visual. State. Setters> System. Control. Highlight. Base. High. Brush}" /> </Visual. State> </Object. Animation. Using. Key. Frames> </Visual. State. Group> </Storyboard> </Visual. State>

<Visual. State. Group x: Name="Input. Type. States"> <Visual. State> Flexibility Windows 10 and power

<Visual. State. Group x: Name="Input. Type. States"> <Visual. State> Flexibility Windows 10 and power XAML ‘free’ through extensibility Extensible Triggers are Common scenarios handled by the platform “automagicaly” <Visual. State. Triggers> <triggers: Input. Type. Trigger Target. Element="{x: Bind Activity. List}" Pointer. Type="Touch" /> <triggers: Input. Type. Trigger Target. Element="{x: Bind Activity. List}" Pointer. Type="Pen" /> </Visual. State. Triggers> <Visual. State. Setters> <Setter Target="Go. Top. Button. Visibility" Value="Visible" /> </Visual. State. Setters> </Visual. State. Group>

http: //github. com/dot. Morten/Windows. State. Triggers Morten Nielsen Windows Developer MVP (@dot. Morten)

http: //github. com/dot. Morten/Windows. State. Triggers Morten Nielsen Windows Developer MVP (@dot. Morten)

Highly-tailored Windows 10 XAML ‘free’ Custom View and are Common scenarios Controls handled by

Highly-tailored Windows 10 XAML ‘free’ Custom View and are Common scenarios Controls handled by by scenario, the Xaml Views platform “automagicaly”

target. Register. Property. Changed. Callback(Content. Control. Content. Property, Content. Changed); <Grid> <Grid. Transform 3

target. Register. Property. Changed. Callback(Content. Control. Content. Property, Content. Changed); <Grid> <Grid. Transform 3 D> <!– Parent Camera --> <Perspective. Transform 3 D/> </Grid. Transform 3 D>. . . </Grid> Core. Application. Get. Current. View(). Title. Bar. Extend. View. Into. Title. Bar = true; <Grid Allow. Drop="True" Drag. Over="Do_Drag. Over" Drop="Do_Drop" …>

20 700 18. 4 18 12. 6 12. 5 12 8 6 4 7.

20 700 18. 4 18 12. 6 12. 5 12 8 6 4 7. 5 7 400 300 511 345 277 200 4. 2 100 2 0 510 500 Time in ms Dynamic in MB 14 10 609 600 16 663 0 Hello World (M) Dialer (M) 8. 1 10 Calc (PC) Hello World (M) Dialer (M) 8. 1 Calc (PC) 10 CPU - 15% to 30% Working Set - 25% to 45% TOUR

<List. View> <List. View. Item. Template> <Data. Template x: Data. Type="local: Free. Book. Category">

<List. View> <List. View. Item. Template> <Data. Template x: Data. Type="local: Free. Book. Category"> <Stack. Panel> <Symbol. Icon Symbol="{x: Bind Symbol}"/> <Text. Block Text="{x: Bind Name}"/> <Button Click="{x: Bind Click}"/> </Stack. Panel> </Data. Template> </List. View. Item. Template> </List. View> TOUR

<Data. Template x: Data. Type="model: File. Item"> <Grid Width="200" Height="80"> <Text. Block Text="{x: Bind

<Data. Template x: Data. Type="model: File. Item"> <Grid Width="200" Height="80"> <Text. Block Text="{x: Bind Display. Name}" /> <Text. Block Text="{x: Bind pretty. Date}" x: Phase="1"/> </Grid> </Data. Template> TOUR

<Stack. Panel x: Name="Additional. Product. Page" Visibility="Collapsed" … x: Defer. Load. Strategy="Lazy"> </Stack. Panel>

<Stack. Panel x: Name="Additional. Product. Page" Visibility="Collapsed" … x: Defer. Load. Strategy="Lazy"> </Stack. Panel> var deferred. Panel = Find. Name("Additional. Product. Page"); TOUR

New XAML language service Design Modes Visual Tree Inspector Profiling tools Built on top

New XAML language service Design Modes Visual Tree Inspector Profiling tools Built on top of Roslyn Completely decoupled from the designer Advanced code + XAML refactoring Design surface for every device family Inspect and modify your XAML while it is running CPU, Memory, Timeline, Network and more Support for WPF and Universal Windows apps

var api = "Windows. Devices. Gpio. Controller"; if (Windows. Foundation. Metadata. Api. Information. Is.

var api = "Windows. Devices. Gpio. Controller"; if (Windows. Foundation. Metadata. Api. Information. Is. Type. Present(api)) { var gpio = Gpio. Controller. Get. Default(); var pin = gpio. Open. Pin(LED_PIN); pin. Set. Drive. Mode(Gpio. Pin. Drive. Mode. Output); pin. Write(Gpio. Pin. Value. High); }

Windows Mobile Universal Windows Apps Classic Windows Apps X Windows Phone 7, 8, 8.

Windows Mobile Universal Windows Apps Classic Windows Apps X Windows Phone 7, 8, 8. 1 apps X Existing Windows Store Apps (Win. RT) X

Go back to where you came from

Go back to where you came from

The new adaptive tile template works similarly to universal app patterns by allowing your

The new adaptive tile template works similarly to universal app patterns by allowing your content to adapt depending on the devices screen density. As you design your tiles it is important to keep in mind how you want your content to adapt to the tiles size on screens of different densities. Show more content? Min. Med Size Max Med. Size

If there is a template that already meets your needs perfectly, feel free to

If there is a template that already meets your needs perfectly, feel free to use the legacy template catalog. There are 8 different templates available for use and previously Windows only template features, like inline images, are now fully working on Windows Phone. The adaptive toast template is our most flexible toast we’ve ever had. This template allows you to put the content you want on the toast, how you want it, and have it work across all of Windows phone, tablet, and PC devices. It allows you to add interactivity to quickly reply to a message, accept an invite, like something on a social network, or snooze an alarm.

CPU savings from cold start CPU savings from warm start

CPU savings from cold start CPU savings from warm start