App Factory
Windows Phone 8 for Business
Office
Jean-Sébastien DupuyWindows Phone Technical Evangelist - Microsoft France
@dupuyjs / [email protected]
Agenda
Quelques rappels sur Windows Phone 8
Update 3 : nouveautés pour les développeurs
Layered Security
Application Distribution – Company Portal
Device Management
Enterprise Feature Pack
Windows Embedded 8 Handheld
Need Controls ?
Quelques chiffresWindows Phone 8 en pleine croissance…
175K+application
s
2X taille du catalogue en 10 mois³
+Applications
136knouveaux
depuis WP8³
+Développeurs
+Utilisateurs
+Revenus$$$
Store disponible dans 191
payset
localisésdans 51langues
+Marchés
¹ IDC Worldwide Mobile Phone Tracker (CYQ2 2013)² VisionMobile (CYQ3 2013)³ Windows Phone Store (10/30/12 – 8/31/13) Since launch of WP8
Windows Phone App StudioApp Studio is a web-based tool that allows you to enter the world of building Windows Phone apps simply by
combining your text and visual content with your own creativity to quickly construct an app you can use and
share in four easy steps:
1 2 3 4Have an idea Add content Choose style Use it
Start with an empty app shell or choose from dozens of app templates
Add images, text, photos, HTML5 and various feeds such as RSS, YouTube and Flickr
Choose color palettes and generate live tiles and splash and lock screens from your content
Use it immediately on your phone, open your source code in Visual Studio, or take your XAP over Windows Phone Store to publish
apps.windowsstore.com
Compte Développeur Windows Phone
Il n’est pas nécessaire d’avoir un compte développeur Windows Phone pour
télécharger le SDK et débuter le développement des applications
En revanche, il est nécessaire d’avoir un compte développeur pour publier votre
application sur le Windows Phone Store (+déverrouillage de trois téléphones)
Nouveau: Si vous ne disposez pas d'un compte développeur, vous pouvez
déverrouiller un téléphone pour tester votre application
Pour obtenir un compte de Développeur: Inclus dans les abonnements MSDN Gratuit pour les étudiants dans l’abonnement Dreamspark Nouveau : $19 pour les particuliers, $99 pour les entreprises (pour les 2
stores)
Demandez votre compte depuis le Windows Phone Developer Center
http://dev.windowsphone.com
Quel modèle applicatif ?
•La manière la plus traditionnelle de
développer des applications Windows
Phone
• Interface définie en XAML
•Logique écrite avec C# ou Visual
Basic .NET
•Accès aux APIs .NET et Windows Phone
Runtime
Interface XAML et Code Managé (C#, VB)
.NET API for Windows
Phone
Windows Phone
RuntimeManaged Managed
XAML & C#/VB
• Les Apps Managed peuvent interagir avec des composants natifs• Ajoutez des composants Windows Phone Runtime à votre solution
XAML/Managed (Interop Win32 et COM possible)
• Les jeux d’API Win32 supportent les fonctions Winsock et File I/O pour faciliter les
portages applicatifs depuis du code natif
• Permet d’implémenter des composants ‘compute-intensive’ en code natif pour
améliorer les performances• Traitement d’images, modules de calcul, moteur de rendu …
XAML/Managé + Code Natif
XAML & C#/VB.NET & C++
.NET API for Windows
Phone
Windows Phone
Runtime
Win32 & COM
Managed Native
• Le développement d’applications HTML5/JavaScript
‘Windows 8-style’ n’est pas supporté sous Windows
Phone 8• Projections de la Windows Phone Runtime disponibles en
C#/VB.NET et C++ uniquement
• Cependant, Windows Phone 8 inclus Internet Explorer
10• Même code partagée avec Windows 8• Très bon support du code HTML5 (2x plus de
fonctionnalités supportées comparé à Windows Phone
7.5)• Nouveau moteur de traitement JavaScript (4x plus rapides
que Windows Phone 7.5)
• Le même moteur est au cœur du contrôle WebBrowser• Vous pouvez construire des applications HTML5 basée sur
le contrôle WebBrowser reposant sur du contenu local ou
web
Développement HTML5
• Vous pouvez développer des jeux pour Windows
Phone via XNA framework
•Mêmes fonctionnalités que Windows Phone SDK
7.1
• Logique écrite en C# ou Visual Basic .NET
• Accès aux APIs .NET 7.1, pas d’accès aux APIs
Windows Phone 8
•Modèles de projets identiques à ceux de Visual
Studio 2010
•MonoGame pour Windows Phone 8 (Open Source)
Jeux XNA en Code Managed (C#, VB)
.NET API for Windows Phone 7.1
Managed
XNA & C#/VB (+XAML)
XNA Libraries for
Windows Phone 7.1
• Application Direct3D écrite en code natif,
utilise uniquement Direct3D pour l’interface
•Développement de Jeux – permet de partager
des portions significatives de code avec la
version PC
• Accès aux APIs Windows Phone Runtime
• Plus simple de partager des composants natifs
: moteurs de rendu, librairies graphiques et
jeux d’APIs
Application Direct3D
Windows Phone
Runtime
Native
Direct3D & C++
Win32 & COM
Native
• Il est également possible de développer des applications en code managed et
XAML qui incorporent des graphiques Direct3D• Contrôles DrawingSurface et DrawingSurfaceBackgroundGrid
Direct3D et XAML
XAML & C#/VB.NET & C++
.NET API for Windows
Phone
Windows Phone
Runtime
Win32 & COM
Managed Managed Native
Windows Phone
Runtime (Direct3D)
Native
Middleware tierce
Fonctionnalités
Windows 8 and Windows Phone 8 Share Many Components At The Operating System Level
Shared Windows Core
Windows KernelWindows KernelWindows NT Kernel
OS Modules
Screen Resolution
WVGA800 x 48015:9
WXGA1280 x 76815:9
720p1280 x 72016:9
Tile Templates and Tile Sizes
Windows Phone 8 supports three Tile
templates Flip – flips from front to back (similar to
the WP 7.1 Tile template) Iconic – clean iconic layout designed to
reflect Windows Phone design
principles Cycle – cycles through up to nine
images
18
• You can register your app as a lock
screen provider, which enables:•User can select your app to show
detailed status on the lock screen• Can select your app as one of the
five apps to show quick status
(icon and count)• Can select your app as the lock
screen background image provider
04/11/202319
Lock Screen on Windows Phone 8
•Windows Phone 8 has new Maps controls
• Bing Maps control from Windows Phone OS 7.1 is still supported, but
deprecated
• The new Maps controls use technology supplied by Nokia
•New features:• Vector-based for faster rendering• Four cartographic map modes• Light and dark color modes•Display landmark and pedestrian features
Maps
04/11/2023Microsoft confidential20
•New Location API in the Windows Phone Runtime
API set• Similar to Windows 8 Location API
•Windows Phone OS 7.1 .NET Location API still
supported
• Background location-tracking apps• Run continuously in the background when the
user navigates away from the app• Enables scenarios such as Run Trackers, turn-
by-turn navigation
Location and Location Tracking
04/11/2023Microsoft confidential21
•Windows Phone 8 allows you to enable users to
robustly interact with your app using their voice
• Two types of voice interaction are new: • Voice Commands - Allows users to deep-link into
your app by holding down the Start button and
speaking a prefix you specify for your app,
followed by a command that you define.• Speech Recognition and Text-to-Speech APIs
- While in the context of your app, allow users to
provide input using their voice, and readout text
to users via text-to-speech
Speech
04/11/2023Microsoft confidential22
Better Sharing with NFC
• App can register a File Association• Automatically launch your app when a file of the registered
type is received as an email attachment or opened in the
browser, or through Sharepoint• One app can launch another by sending it a file of the
registered type
• App can register a protocol• Allows your app to automatically launch when another app
‘opens’ a special URI• Protocol is the first part of a URI, e.g.
myprotocol:/ShowProducts?CategoryID=aea6ae1f• App launches another and passes it data in the
remainder of the launch URI
File and Protocol AssociationsEnables App to App Communication
04/11/2023Microsoft confidential24
Update 3 : Les nouveautés
Vous avez dit Phablet ?
Support du 1080p HD (1920x1080)Qualcomm Snapdragon 800 quad-core
Driving mode
Limite les notifications sur l’écran de verrouillage pendant la conduite
Permet de filtrer les appels et/ou les sms (réponse automatique optionnelle)
Nouvelles fonctionnalités
AccessibilitéSonneries pour les SMSRotation de l’écran Fermeture des applicationsAmélioration BluetoothPartage InternetGestion du stockage
Quels changements pour les développeurs?
// Numéro de version de la GDR3
private static Version TargetVersion = new Version(8, 0, 10492);
// Fonction pour déterminer si le périphérique supporte les fonctionnalités demandées
public static bool IsTargetedVersion
{
get {
return Environment.OSVersion.Version >= TargetVersion;
}
}
Quels changements pour les développeurs?
public enum Resolutions { WVGA, WXGA, HD };
public static class ResolutionHelper
{
private static bool IsWvga { get { return App.Current.Host.Content.ScaleFactor == 100; } }
private static bool IsWxga { get { return App.Current.Host.Content.ScaleFactor == 160; } }
private static bool IsHD { get { return App.Current.Host.Content.ScaleFactor == 150; } }
public static Resolutions CurrentResolution
{ get {
if (IsWvga) return Resolutions.WVGA;
else if (IsWxga) return Resolutions.WXGA;
else if (IsHD) return Resolutions.HD;
else throw new InvalidOperationException("Unknown resolution"); } }
}
Quels changements pour les développeurs? Si vous supportez le 720p, alors vous supportez le 1080p Attention au ScaleFactor vs DeviceExtendedProperties
Augm. de la mémoire max à 570MB sur les devices 2GB Augm. de la mémoire pour l’audio en background de 20 à
25MB (dev. 1GB)
Nouvelles Uris pour accéder aux paramètres: ms-settings-power: (économiseur d’energie) ms-settings-screenrotation: (verrouillage rotation)
Quels changements pour les développeurs?
L’économiseur d’énergie est-il activé ?
public static bool? IsSavingModeEnabled{ get { if (IsGDR3 == true) { return (bool)typeof(PowerManager).GetProperty("PowerSavingModeEnabled").GetValue(null); }
return null; } }
Quels changements pour les développeurs?
Sons personnalisés pour les toasts notifications WAV, WMA, MP3 (moins de 10 secondes) Doit être présent dans l’Isolated Storage de l’application Valable pour les notifications locales et cloud Possible d’avoir des notifications silencieuses
public void ShowToast(bool useCustomSound, bool useWavFormat, bool doSilentToast){ ShellToast toast = new ShellToast(); toast.Title = "[title]"; toast.Content = "[content]";
//If the device is running the right version and a custom sound is requested if ((IsTargetedVersion) && (useCustomSound)) { if (useWavFormat) { //Do the reflection to get the new Sound property added to the toast SetProperty(toast, "Sound", new Uri("MyToastSound.wav", UriKind.RelativeOrAbsolute)); } else { //Do the reflection to get the new Sound property added to the toast SetProperty(toast, "Sound", new Uri("MyToastSound.mp3", UriKind.RelativeOrAbsolute)); } }
toast.Show();}
What’s next ?
Nouvelles images pour l’émulateur (prochainement)
Windows Phone Preview for Developers (Over the Air)
Common core and security architecture
Great, consistent experience across devices
Built-in communication and Collaboration tools
Robust platform for mobile business apps
Windows Phone The Right Choice for Business
Unified mobile app and device management
www.windowsphone.com/business
Layered Security
Assures platform integrity and helps protect
against malware
Windows Phone uses a System-on-a-Chip (SoC) design
that includes Unified Extensible Firmware Interface (UEFI)
environment
UEFI secured boot allows only validated OS images to
execute and ensures that malware cannot insert itself
into the boot process (no rooting or jail-breaking)
All operating system, OEM drivers, and app software
components must be digitally signed by Microsoft to run
(whitelisting)
Secured Boot and Code Signing
Full internal storage encryption to protect
information
Built on Windows BitLocker architecture with encryption
key protected by TPM 2.0 in the ARM Trustzone part of
Qualcomm SoC
Encryption is available for all phones and is turned on
with policy by IT professionals
Removable SD cards not encrypted but IT professionals
can prevent their use via policy settings
Microsoft Security Response Center delivers critical
security updates globally if high-impact vulnerabilities are
discovered
Successfully completed Phase 1 of FIPS certification
Device Security
Application platform helps to protect corporate
data
Chamber security model reduces attack surface by
containerizing apps through the principle of least
privilege, enforcing security boundaries, isolation, and
disclosing capabilities to the user
Absence of a shared file system prevents viewing or
tampering with individual app data
Apps in Windows Phone Store are certified, scanned for
malware, and digitally signed by Microsoft
Isolation Chamber
Secure your apps, data, and access to back end
systems
Apps on non-Domain joined devices can prompt users for
credentials, implement geo-fencing, and limit exposure to
session attacks
Apps can protect local data-at-rest with double-envelope
encryption plus TLS for data-in-transit
Apps can present user credentials to web services and
web sites via Basic, OAuth and NTLM in order to sync
data
Enterprise Feature Pack brings certificate management to
enroll, update, and revoke certificates for user
authentication
Enterprise App Containerization
Rights Management Helps prevent intellectual
property from being leaked
Protects emails and documents on the phone from
unauthorized distribution
Active Directory Rights Management supports all your
Mobile Information Management (MIM) needs
Data Leak Prevention (DLP)
Data Protection API (DPAPI)
Permet d’encrypter et de décrypter certains éléments dans l’Isolated Storage Password Connection String Personal Identification Number
// Encrypt the PIN by using the Protect() method. byte[] ProtectedPinByte = ProtectedData.Protect(PinByte, null);
// Decrypt the PIN by using the Unprotect method.byte[] PinByte = ProtectedData.Unprotect(ProtectedPinByte, null);
SSL 3.0 with AES 128 and 256
Code-signed chain of trust
UEFI Secure Boot
TPM 2.0 – all phonesCertified hardware
App sandboxing Secure browser
Built-in IRM client
Data protection API
BitLocker encryptionDevice-Lock010
11001
Single source updates
Developer platformDrivers
Fixes from MSRC
Security Networking Graphics
Built-in Calendar
Servers and Cloud Services
Internal Storage
User Partition
OS Partition
Apps
Files and data
UEFI FirmwareHardware
Windows NT Kernel
Layered security and lower TCO
Built-In Management Client
Exchange ActiveSync Support
App deployment
Private Apps vs. Public Apps
Differences
Created by and for company
Available only for company
employees and partners
Not distributed via the Store
Not submitted for app certification
Similarities
Standard WP8 Apps
Same API set
(camera, BT, NFC)
Same app security model
Familiar developer tools (C#,
XAML, Visual Studio 2012
User initiated install
An enterprise cannot push the AET or apps to the phone
Enrollment and app installation require user confirmation
.xapPUSH
.xapDOWNLOAD
Company Web Server
App deployment options
Managed MDMUnmanaged
Company HubStore Published
Deploy and manage
User Enrolls via email token
User Installs Apps from URL
A) Managed deployment [example based on Windows Intune]
Set Up
B) Unmanaged deployment
Company Hub Installs (optional)
Deploy and Manage with Windows Intune
User Enrolls
Install Apps via Self Service Portal
Un-enroll user
Manage via Windows Intune
1. Register in Dev Center
2. Acquire Certificate
3. Develop or acquire apps
4. Prepare the apps
La société enregistre un compte de
développeur sur
Windows Phone Dev Center (99$ par an).
Assurez vous de sélectionner Company
(et non Individual/Student) lors de la
sélection du compte. (cf.
Registration info).
Notez votre PublisherID, il vous sera
nécessaire pour l’étape 2.
1. Compte de Développeur Windows Phone
La société acquiert un Enterprise Mobile Code
Signing Certificate auprès de Symantec (299$
par an).
Ce certificat va permettre:
• de récupérer un Application Enrollment Token
(EAT) pour associer les téléphones au compte de la
société.
• de signer l’ensemble des applications (.xap)
distribuées en dehors du Windows Phone Store (y
compris le Company Hub que vous allez
développer).
2. Enterprise Mobile Code Signing Certificate
Application Enrollment Token (AET)
Secure data storage
.aetx
.aet
MDM SERVER
Code signing certificate
.aetx
Distribute through email or secure website
AET cannot be deleted through phone UI
Distribute during enrollment
Upload
AETGENERATOR TOOL
Utilisez l’outil AETGenerator.exe disponible dans le répertoire
%ProgramFiles(x86)%\Microsoft SDKs\Windows Phone\v8.0\Tools\
AETGenerator (le Windows Phone SDK 8.0 est requis):
• Ouvrez une invite de commande VS2012 x86 Native Tools Command Prompt
avec les privilèges administrateurs. Parcourez l’arborescence pour vous déplacer
dans le répertoire où se trouve le certificat.
• Exécutez la ligne de commande AETGenerator.exe PFXFile Password
3. Application Enrollment Token (EAT)
C:\temp2>"c:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Tools\AETGenerator\AETGenerator.exe"
c:\temp\Cert.pfx password
The Enterprise Id is XXXXXXXAET.xml, AET.aet and AET.aetx file generated
Generating an AET Manually
Code signing certificate
AET.aetx
Publisher ID
AET on the phone
.aetxPublisher ID
.xap
Publisher ID
.xap
AET allows all apps from the same publisher to be installed and run on the phone
.aetx12 months
AET is valid for one year and must be renewed after expiration
Company account and AET check
1. Report phone ID, publisher IDs, and enterprise app IDs
.aetxPublisher ID #1
24H
2. Validate company accounts
3. Return status for each enrolled enterprise
.aetxPublisher ID #2
4. Block apps of invalid enterprises from installing and running
Company account check failure
If the account check fails seven times:
Previously installed apps can still be launchedNew apps cannot be installed
Why would an company account or AET check fail?
Loss of connectivity for a weekWindows Update service blocked on network
Signature avec XapSignTool
Toutes les applications installées depuis votre portail d’entreprise doivent être signés avec le
certificat de Symantec.
Compilation avec MDILXAPCompile
On en profite également pour compiler en code natif l’ensemble des ‘managed assemblies’
contenues dans le fichier .xap
BuildMDILXap.ps1 réalise ces deux tâches.
• %ProgramFiles(x86)%\Microsoft SDKs\Windows Phone\v8.0\Tools\MDILXAPCompile.
• Exécutez une invite de commande PowerShell pour lancer la commande
BuildMDILXap.ps1 -xapfilename XAP -pfxfilename PFXFile -password Password
4. Préparation au déploiement des applications d’entreprise
60
• Everything in green is standard panorama app development
• Everything in red, and more, is enabled by the new Company Hub APIs.
What can you build?
InstallationManager.FindPackagesForCurrentPublisher
Récupère l’ensemble des packages installés sur le téléphone provenant du même
Publisher que l’application courante. (Attention, on ne parle plus du certificat pour
identifier les packages, mais simplement du PublisherID présent dans
WMAppManifest.xml)
Cette méthode nous retourne un IEnumerable<Package>. La classe
Package a le bénéfice de proposer deux méthodes très utiles:
- GetThumbnailToken pour récupérer le Thumbnail de l’application.
- Launch pour lancer directement l’application depuis le Company Hub.
5. Développement du portail d’entreprise (Company Hub)Comment lister les applications déjà installées ?
InstallationManager.AddPackageAsync(String, Uri)
Permettre de cibler le fichier .xap distant pour l’installer sur le mobile. Il est possible
d’utiliser en complément IAsyncOperationWithProgress pour s’abonner à l’évènement
Progress et notifier l’utilisateur de la progression de l’installation.
Cet évènement sera appelé 4 fois:
5% terminée (lorsque le téléphone affiche une fenêtre pop-up qui demande à l'utilisateur de confirmer
l'installation)
10% terminée (dès que l’utilisateur a accepté l’installation)
55% terminée (quand l’application est téléchargée)
100% terminée (lorsque l’application est installée)
5. Développement du portail d’entreprise (Company Hub)Comment installer une application depuis le Company Hub ?
Transmettre un mail à vos collaborateurs avec le
fichier .eatx en pièce jointe et le lien vers le .xap du Company
Hub. Dans ce cas, appliquer éventuellement une protection
IRM à l’email.
- ou -
Télécharger le fichier .eatx et le .xap du Company Hub
depuis un site web sécurisé.
5. Développement du portail d’entreprise (Company Hub)Comment installer une application depuis le Company Hub ?
Unmanaged deployment1. Install AET (email, web page)
2. Install Company Hub (email, web page)
3. Use Company Hub to view and install company apps
Device Management
Windows Intune
Mobile Iron
Airwatch
Citrix XenMobile
Symantec
SAP Afaria
and Good Technologies, Fiberlink, Silverback, Pointsharp, Invigo, Capricorn and Soti (soon)
Mobile Device Management Choices
Simple passwordAlphanumeric passwordMinimum password lengthMinimum password complex charactersPassword expirationPassword historyDevice wipe thresholdInactivity timeoutIRM enabledRemote device wipeDevice encryption (new)Disable removable storage card (new) Remote update of business apps (new)Remote or local un-enroll (new)
(NA)
EASServer configured policy valuesQuery installed enterprise app Device name Device IDOS platform typeFirmware versionOS versionDevice local timeProcessor typeDevice modelDevice manufacturerDevice processor architectureDevice language
Enterprise policies and reporting
Windows Phone policy and reporting
68
Making Windows Phone
the best choice for business
What’s next?
S/MIME to sign and encrypt email.
Access to corporate resources with app aware, auto-triggered VPN.
Enterprise Wi-Fi support with EAP-TLS
Enhanced MDM policies, to lock down hardware and software functionality on the phone
Richer application management such as allow or deny installation of certain apps.
Certificate management
Windows Phone enterprise feature pack
Windows Phone 8 update in first half of 2014
Windows Embedded 8 Handheld
Experience Spotlight: Barcode ScannerThe barcode scanner API enables 3rd parties to develop line of business solutions based around a barcode scanner integrated into the handheld device.
CRMMgmt
POS
POs
CRM
Management
Point of Sale
Purchase Orders
3:45
The Microsoft Platform API for Barcode Scanners in Windows Embedded 8 Handheld is used by application developers to access a device’s integrated barcode reader or imager when creating applications that need to reading barcode data, e.g. a price checking app
Price Check
Item Barcode
Item Description
Item Price
Experience Spotlight: Barcode Scanner
3:45
The Microsoft Platform API for Barcode Scanners in Windows Embedded 8 Handheld is used by application developers to access a device’s integrated barcode reader or imager when creating applications that need to reading barcode data, e.g. a price checking app
• Hardware button triggers integrated scanner to read barcode and return the scanned information to the application
• This application uses barcode data to look up description and price information about an item
Price Check
Item Barcode
Item Description
Item Price
12345678
Blue Jeans
$39.95
Experience Spotlight: Barcode Scanner
Credit Card Terminal
Need controls ?
Need controls ?
04/11/2023Microsoft confidential76
Telerik
Infragistics
Component One
Ready for business
Shared core and security
Great, consistent experience across devices
Native device management
App lifecycle management
Collaborate and communicate
www.windowsphone.com/business
Top Related