One of our partners, IT-Visions, invited me to speak at their VS2013/Win8.1 "What's New" event in Munich today. Of course I am happy to participate. During the session I will demo new features from VS2013, Windows Store app development, and Windows Azure Mobile Services. During the session I will do nearly 100% live coding. You can check out the sample code and download it at http://www.software-architects.com/devblog/2013/11/04/Whats-New-For-Devs-in-Win81
10. Windowing
Free window sizing
Things to remember for developers
No fixed-width view states anymore
Handle any size down to width of 500
pixels (opt-in for 320px)
More than two apps on the screen
Multiple windows for a single app are
possible
Code Sample
Dev Center Multiple Views Sample
18. // The media object for controlling and playing audio.
MediaElement mediaElement = this.media;
// The object for controlling the speech-synthesis
// engine (voice).
var synth =
new Windows.Media.SpeechSynthesis.SpeechSynthesizer();
// Generate the audio stream from plain text.
SpeechSynthesisStream stream =
await synth.SynthesizeTextToStreamAsync("Hello World");
// Send the stream to the media object.
mediaElement.SetSource(stream, stream.ContentType);
mediaElement.Play();
Demo
Speech Synthesis and Media Element
19. <Page.BottomAppBar>
<CommandBar>
<AppBarButton Icon="Save" Label="Save" />
<AppBarButton Icon="Delete" Label="Delete" />
</CommandBar>
</Page.BottomAppBar>
CommandBar
Derives from AppBar
Simpler to follow UX
guidelines
AppBarButton,
AppBarToggleButton,
AppBarSeparator
Code Sample
Dev Center XAML AppBar
control sample
20. <Button Content="Delete">
<Button.Flyout>
<Flyout>
<StackPanel ...>
<TextBlock Text="Really?" />
<Button .../>
</StackPanel>
</Flyout>
</Button.Flyout>
</Button>
<TextBlock Text="..."
Tapped="TextBlock_Tapped" FontSize="18">
<FlyoutBase.AttachedFlyout>
<Flyout>
<TextBox x:Name="MyTextBox" Text="Tap it…"/>
</Flyout>
</FlyoutBase.AttachedFlyout>
</TextBlock>
private void TextBlock_Tapped(object sender, TappedRoutedEventArgs e)
{
FrameworkElement element = sender as FrameworkElement;
if (element != null)
{
FlyoutBase.ShowAttachedFlyout(element);
}
}
Flyout
Popup in context with
current operation
Attached to a Button
Attached to any
FrameworkElement
21. <Hub Header="News">
<HubSection MinWidth="600" Header="Latest">
<DataTemplate>
<Grid>
<TextBlock Text="The most recent news will be here."
Style="{ThemeResource BodyTextBlockStyle}" />
</Grid>
</DataTemplate>
</HubSection>
<HubSection Header="Tech" IsHeaderInteractive="True"
Background="#222222" MinWidth="250">
<DataTemplate>
<StackPanel>
<TextBlock Text="Tech news goes here."
Style="{ThemeResource BodyTextBlockStyle}" />
<TextBlock Text="Click the header to go to the Tech page."
Style="{ThemeResource BodyTextBlockStyle}" />
</StackPanel>
</DataTemplate>
</HubSection>
<HubSection Header="Sports" IsHeaderInteractive="True"
Background="#444444" MinWidth="250">
<DataTemplate>
<StackPanel>
<TextBlock Text="Sports news goes here."
Style="{ThemeResource BodyTextBlockStyle}" />
<TextBlock Text="Click the header to go to the Sports page."
Style="{ThemeResource BodyTextBlockStyle}" />
</StackPanel>
</DataTemplate>
</HubSection>
</Hub>
Hub
Hub navigation pattern
23. StorageAPI
FilePicker not only in full screen mode
Split-screen apps
Folder management
GetParentAsync() if allowed
IsEqual() to find out if two storage items represent the same file
TryGetItemAsync()
New KnownFolders CameraRoll and PlayList
25. Devices
HID
Support
For hardware partners
App can be prerequisite for using the hardware
Point
of Service Device Support
Barcodescanner
Magnetic stripe readers
USB
devices
For details see Windows 8.1 documentation
30. IT-Visions Infotag
Rainer Stropek
software architects gmbh
Q&A
Mail
Web
Twitter
rainer@timecockpit.com
http://www.timecockpit.com
@rstropek
Thank You For Coming.
Saves the day.