DAMIR DOBRIC
Lead Architect DAENET GmbHMs. VTSP for Windows AzureMs. Integration MVPMs. Connected Technology AdvisorBlog: http://developers.deTwitter: https://twitter.com/ddobriceMail: [email protected]
“Runtime 8”
AGENDA
Runtime 8Under the
hubDeployment
EmulatorWP8
Runtime
App ModelCode
Sharing
Mobile Services
Platform Evolution“Runtime
8”
Platform Compatibilit
y
App Model for Cloud
WIN8
WP8
WAZ
Evolution
“METRO”-Style Evolution
System32
Windows NT
DOS
Windows 95
Windows CE/Embedded
System32/CE
Win Mobile
System32/WinRT
WP7
Vista Windows 8WOA/ARM
Windows RT
WP8 Runtime
WP8
X64/x86x86
Win8 Embedded
Why new Runtime?
Demo
P=U*I
List<>.Add()
new Thread().Start()
ThreadPool.RunAsync()
Stubs, no pInvoke!
CLR
RCW
WinRT Object
WinRT
CCW
Managed Object
Stub Samples
Rcw Sample.txt Ccw Sample.txt
o Standard Typeso Windows.*
o Primitive Typeso Byte, Int32, ..o Marshaling required:
o String, Objecto Projected Types
o Windows.Foundation.Urio Windows.Foundation.DateTimeOffseto HRESULT
o Projected Interfaceso IVector<T>,o IMap<T>
o Helperso StorageFolder.OpenStreamForReadAsync(fileName);
New Type System
Demo
WinRT
As Runtime(Store App)
As API(Desktop App)
oTwo optionsoApp Storeo Sided Loading (for Enterprises)oExplicit InstallationoProvisioning
App Deployment
o By Group PolicyIf in Windows® 8 Enterprise or Windows Server® 2012 domainhttp://technet.microsoft.com/en-us/library/hh852635.aspx#SideloadingRequirements
o By Activation KeyIf not in domain the use volume license key.
o If not in domain and no activation key then use AppStore.
Sided Loaded Apps(none appstore deployment)
Deployment
http://technet.microsoft.com/en-us/library/hh852635.aspx
Add Apps Inventory Apps Remove Apps
add-appxpackage C:\app1.appx –DependencyPath C:\winjs.appx
Add-AppxProvisionedPackage -Online -FolderPath C:\Appx
Get-AppxPackage -AllUsers
Get-AppxPackage -Name Package1 -User domain\username
Remove-AppxPackage Package1
Windows Phone 8
EmulatorWP8
Runtime
App ModelCode
Sharing
WP8
oWP7 and WP7.1 Apps run on WP8!oNo general breaking changeso Existing code is emulated in Quirks-Modeo Some API differences
example:XmlSerializerWP8 must have a default constructor.WP7 quirks: It is not necessary to have a default constructor
o Code after Rebuild targets WP8 platform
WP Platform Compatibility
The dream or reality?
o In Solution Explorer, use the Upgrade to Windows Phone 8.0 command.
o In the project designer, change the Target Windows Phone OS Version value to Windows Phone OS 8.0.
Upgrade
Demo
Windows Phone 8
Hello World
Emulator
• Hardware-assisted virtualization supported and enabled in the BIOS
• Second Level Address Translation (SLAT) supported by the BIOS
• Hardware-based Data Execution Prevention (DEP) supported and enabled in the BIOS
http://developers.de/blogs/damir_dobric/archive/2012/10/14/windows8-error-hypervisor-is-not-running.aspx
Resolution
Resolution Aspect ratio Scaled resolution
WVGA 480 × 800 15:9 480 × 800
WXGA 768 × 1280 15:9 480 × 800
720P 720 × 1280 16:9 480 × 853
Windows Phone API
“Runtime 8”
Facts across platforms
Common API-s
DirectX 11.1XAudio2MediaEngineSTLCRTWinSock
Native API
Networking
Sensors
Proximity
Storage
DataSaver/Connection Manager
Location
Touch
Online IdentityVoIP
Keyboard
Launchers & Choosers
In-App Purchase
Sensors
Threading
Base Types/ Windows.Foundation
WinRT API
o Bluetotho Advanced Captureo Lence controlo Photo and Media enhencmetso LongListSelectoro Subset of WinRT storage APIo Data Sense APIo DirectX and native audio and mediao File and protocol associationso In-App purchasingo Location tracking in Backgroundo App as Lock Screeno VoIP
New APIs
Common Controls
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj735581(v=vs.105).aspx
Your Apps Your way
Supported Languages
oC# (XAML)oXNAoC++oHTML5
Project Templates
Demo
Windows Phone 8
JavaScript
jQueryWeb App on Phone
http://wpwidgetlibrary.codeplex.com/
oOS 7.1, apps run on a single core, and the scheduler is less aggressive in time-slicing
oOS 8, apps run on multiple cores and the scheduler is more aggressive in time-slicing threads. Raise conditions and concurrency bugs easier to achieve
Threading
oSingle OS 7.1 version which runs on both. No new features are supported. Runs in quirks
oCreate separate copy for 7.1 and 8.0oCreate separate copy with shared files
Platform Targeting
Demo
Windows Phone 8,Windows 8
Code Sharing
Portable Library
Linked Files
Camera Accelerometer
oSocket Listeners (Incoming)Windows.Networking.Sockets
o IPv6oWinsock SupportoProximity API
Network Improvements
In-App Purchasing
Class Member Description
CurrentApp LoadListingInformationByProductIdsAsync(ListingInformation productIds)
CurrentApp LoadListingInformationByKeywordsAsync(ListingInformation keywords)
CurrentApp void ReportProductFulfillment(string productId)
ProductLicense bool IsConsumable { get; } ProductListing string Description { get; } ProductListing IEnumerable<string> Keywords {get;}
ProductListing ProductType ProductType {get;} ProductListing string Tag {get;} ProductListing Uri ImageUri { get; }
Demo
Custom Protocol
o Enterprise Enrollment o Company Accounto Symantec Verificationo Corporate Signing Certificate
o Managemento System Centero InTune
o Token Distributiono AETGenerator generates Application Enrollment Token (AET) .aetxo EnterpriseInstall.exe
o Enrolles Tokeno Distributes XAP
o EnterpriseValidation.exeo Periodically sends Device ID, installed apps to MS Server to validate enterprise.
o Enterprise Developer APIo query what apps are installed for enterprise, o start an enterprise app installation o query pending enterprise app installation
Enterprise Device Enrollment
Demo
Background Process
Demo
Speech
Demo
Recognition
PNS Infrastructure
Demo
Windows Phone 8Windows Azure Mobile Services
Where to start?
WP8 MSDN Documentationhttp://msdn.microsoft.com/en-us/library/windowsphone/develop/ff402535(v=vs.105).aspx
WinRT:http://de.slideshare.net/ITCamp/itcamp-2012-raffaele-rialdi-introduction-to-winrt
Recap
Platform Evolution
“Runtime 8”
Platform Compatibilit
y
Emulator WP8 API
App ModelPlatform Targeting
Code SharingMobile
Services
Differences