LondonNetDevelopers.ca
http://windows.Microsoft.com
Agenda
The Univeral Windows Platform
Developer Tools
XAML Controls
XAML Data Binding
Adaptive UI
Introducing
the UWP
http://windows.Microsoft.com
Windows Core
The refactored common core
One hardware platform
Universal hardware driver
Standard network and I/O
Phone
Device
Xbox
Device
Desktop
Device
Windows Core
Desktop
SKU
Phone
SKU
Xbox
SKU
Each family adds features
to the one it inherits
http://windows.Microsoft.com
Phone Small Tablet
2-in-1s
(Tablet or Laptop)
Desktops
& All-in-OnesPhablet Large Tablet
Classic
Laptop
Xbox IoTSurface Hub Holographic
Windows 10
http://windows.Microsoft.com
Universal Windows Platform
A single API surface
A guaranteed API surface
The same on all devices
Phone
Device
Xbox
Device
Desktop
Device
Windows Core
Universal Windows Platform
Apps don't target Windows 10,
apps target the platform
http://windows.Microsoft.com
<TargetPlatform
Name="Microsoft.Universal"
minVersion="10.0.10069.0"
maxVersionTested="10.0.10190.0"/>
http://windows.Microsoft.com
Windows app
A single binary
Running on any device
Testing for capabilities
Adjusting to devices
Phone
Device
Xbox
Device
Desktop
Device
Windows Core
Universal Windows Platform
Windows App
http://windows.Microsoft.com
Platform extensions
Device-specific API
Family-specific capabilities
Compatible across devices
Unique update cadence
Phone
Device
Xbox
Device
Desktop
Device
Windows Core
Universal Windows Platform
Windows App
Phone
extension
Xbox
extension
Desktop
extension
http://windows.Microsoft.com
The developer story
When writing for iOS,
A developer writes for iPad & iPhone
When writing for Android,
A developer writes for all supported devices
When writing for Windows 8,
A developer writes for each devices
When writing for Windows 10,
A developer writes for every device
DEMO
2:05
Hello devices
Introducing Roslyn,
our new compiler for .Net
http://windows.Microsoft.com
Blend for Visual Studio
The XAML Developer’s IDE
Always part of Visual Studio
Uses the Visual Studio shell
Full auto-complete & intellisense
• Validation
• Snippets
• Peek
File & solution management
Resource management
Data management
Animation
States
http://windows.Microsoft.com
Visual Studio 2015 Editions
Enterprise
Architecture Modeling, Diagnostics, VSO/ALM & Release Management
Professional
Architecture Validation, VSO/ALM & Feedback Management
Community Editions
Visual Studio Professional Edition
http://windows.Microsoft.com
Microsoft Developer Network
Microsoft documentation
http://msdn.Microsoft.com
http://dev.Windows.com
Microsoft training
http://msevents.Microsoft.com
http://MicrosoftVirtualAcademy.com
MSDN Subscription
Operating Systems
Server/Client Products
Developer Tools
Azure/O365 Credits
http://windows.Microsoft.com
Developer unlock
http://windows.Microsoft.com
Where can I develop?
Windows 10
Requires Visual Studio 2015
Windows 8.1 & Windows Server 2012 R2
The Visual Studio designer does not function
Debugging requires a Windows 10 device or Remote Debugging Tools
http://windows.Microsoft.com
Adaptive design
Responsive design
Flexible layout responds to small changes
Many controls handle basic responsiveness
Adaptive design
Smart layout adjusts to large changes
Features like visual states aid in this design
Tailored design
A device-specific app can simplify design
Some devices have unique design languages
http://windows.Microsoft.com
Adaptive design
Phone (portrait)
Tablet (landscape) / Desktop
http://windows.Microsoft.com
Tailored design
Phone (portrait)
Tablet (landscape) / Desktop
XAML Controls
http://windows.Microsoft.com
Layout controls
<Border Thickness="" Brush="" />
<Canvas />
<Grid />
<RelativePanel />
<ScrollViewer />
<SplitView DisplayMode="" />
<StackPanel Orientation="" />
<VariableSizedWrapGrid />
<ViewBox Stretch="" />
http://windows.Microsoft.com
WrapGrid
http://windows.Microsoft.com
Viewbox
http://windows.Microsoft.com
RelativePanel
Some child elements
act as anchors
Most child elements
relate to others
It's a layout technique
friendly with States
http://windows.Microsoft.com
SplitView
IsPaneOpen="True" IsPaneOpen="False"
DisplayMode=
"Inline"
DisplayMode=
"Overlay"
DisplayMode=
"CompactInline"
DisplayMode=
"CompactOverlay"
XAML DataBinding
http://windows.Microsoft.com
x:Bind
Compiled binding
Bindings are committed at compile-time
Strongly-typed binding
Duck binding is not supported
Default mode is OneTime
OneWay and TwoWay are still available
Standard binding approaches
INotifyPropertyChanged, IObservableVector, INotifyCollectionChanged
http://windows.Microsoft.com
<ListView ItemsSource="{x:Bind ViewModel.Employees}">
<ListView.ItemTemplate>
<DataTemplate x:DataType="model:Employee">
<Grid>
<TextBlock Text="{x:Bind Name}"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Data Templates
http://windows.Microsoft.com
Syntax
<TextBox Text="{Binding
Converter
ConverterLanguage
ConverterParameter
ElementName
FallbackValue
Mode
Path
RelativeSource
Source
TargetNullValue
UpdateSourceTrigger}
<TextBox Text="{x:Bind
Converter
ConverterLanguage
ConverterParameter
ElementName
FallbackValue
Mode
Path
RelativeSource
Source
TargetNullValue
UpdateSourceTrigger}
DEMO
UWP
http://windows.Microsoft.com
http://windows.Microsoft.com
Review
The Univeral Windows Platform
Developer Tools
XAML Controls
XAML Data Binding
Adaptive UI
http://windows.Microsoft.com
Thanks
Q&A

Developing windows 10 universal apps