Presentation de
WINDOWS PHONE 7
Arnaud Auroux
Niels Freier
Florent Santin
Adrien Sifferman
LIFE IS IN MOTION, SO ARE
WE.
Agenda
• Pourquoi un smartphone ?
• De Windows Mobile à Windows Phone 7
• L’interface Metro
• Le Hardware
• L’environnement de développement
• Les plateformes de développement
• La collaboration designer / développeur
• Le Marketplace
C’est quoi un Smartphone?
C’est quoi un Smartphone ?
• Un téléphone cool… 
– … qui sert a téléphoner…
– …mais surtout a exécuter des applications!
• Terminal Web
– Navigateur Web embarqué
– Applications fortement connectées
• En résumé, l’extension du PC dans la
poche
C’est quoi un Smartphone?
Le marché du Smartphone
• 2009: 180 Millions d’unités vendues
• Plusieurs acteurs majeurs:
• RIM – Blackberry – OS + Hardware
• Apple – Iphone – OS + Hardware
• Google – Androïd – OS
• Fondation Symbian – Symbia - OS
• Microsoft – Windows Mobile 6.5 / Windows Phone 7 – OS
C’est quoi un Smartphone?
Le marché du Smartphone
• Les clés de l’augmentation du marché du SmartPhone:
• Apparition des forfaits 3G illimités
• Excellente couverture des opérateurs en France
• 90% du territoire en 3G
• 99 en EDGE
C’est quoi un Smartphone ?
Historique du Smartphone chez MS
• 2000:
• Apparition du Pocket PC / PDA
• Windows CE 3.0
• 2002:
• Pocket PC -> Téléphone
• Téléphone -> Pocket PC
• Pocket PC 2002, Phone Edition 2002 et Smartphone 2002
• 2003: Windows Mobile (base Windows CE)
• 2005: Windows Mobile 5.0
• 2007: Windows Mobile 6.0
• 2009: Windows Mobile 6.5
• 2010: Rupture!
CHOIX MATERIEL
PHOTOS
LE MEILLEUR POUR LES PRO
LE MEILLEUR POUR LES DEVELOPPEURS
EXPERIENCE METRO
SOCIAL
1
2
3
4
5
6
7
XBOX LIVE
De Windows Mobile à Windows Phone 7
7 Zones d’excellence
Zune
• Historiquement, logiciel de gestion des
musiques du baladeur Microsoft
« Zune »
• Aujourd’hui:
– Place de marché d’achat de musique
– Place de marché d’achat d’applications
– Outils de synchronisation PC  WP7
• Plusieurs terminaux pour un même
logiciel:
– PC
– Zune HD
– Windows Phone 7
– XBOX 360
DÉCOUVERTE DE WINDOWS
PHONE 7
Démonstration
L’INTERFACE METRO
Help users « find their way »
L’interface Metro
• Inspiré du système
de signalisation
utilisé dans les
métros et
aéroports
• Révéler tout un
contexte à partir
d’un simple
contenu.
• Création d’un
système
homogène.
• Pas de décoration,
pas
d’ornementation.
L’interface Metro
5 grands principes
1. Epuré, ouvert et rapide : fournir de grands espaces,
garder une structure légère et considérer la typographie
comme l’un des éléments le plus important de
l’interface.
2. Contenu : Mettre le contenu pertinent en évidence
pour l’utilisateur.
3. Intégration machine / logiciel : créer une expérience
unique entre l’application et les boutons d’accès
« Recherche », « Précédent », « Démarrer » et
« Caméra ».
4. Expérience utilisateur universelle : créer une
cohérence dans les transitions et animations.
5. Interface personnalisée et vivante : des vues et
éléments mises à jour automatiquement avec les
informations les plus importantes.
L’interface Metro
Ecran de démarrage
• Affichage des tuiles
• Personnalisable par l’utilisateur
• Accessible depuis le bouton « Démarrer »
• Eléments dynamiques
L’interface Metro
• Taille minimum
conseillée : 15
• Possibilité
d’embarquer ses
propres polices.
• Jeu de polices
d'Asie orientale
(chinois, japonais
et coréen) inclus.
• Utilisation d’un
contraste fort
pour les polices
en couleur.
L’interface Metro
• Informations
système (heure,
niveau de batterie,
mode silencieux,
etc.).
• Espace réservé
(partie haute de
l’ écran).
• Une seule
information
affichée par défaut
: l’heure système.
• Gérée et mise à
jour par le système.
• Peut-être cachée.
La barre de statut
L’interface Metro
La barre d’application • Tâches communes
et fréquentes.
• 4 boutons
Maximum.
• Personnalisable.
• Menu disponible
pour les tâches
plus spécifiques.
• 5 éléments de
menu maximum
conseillé.
L’interface Metro
Le modèle de navigation
• Une application est
constituée de pages.
• Une page peut avoir
plusieurs « contenus »
• Gestion de
l’historique.
• Les titres de pages
sont mis en évidence.
• Expérience de
navigation
homogène, fluide, et
simple.
L’interface Metro
Thèmes
…
LE HARDWARE
Le Hardware
Prérequis
• Ecran tactile capacitif
• 4 points de contacts ou plus
• Capteurs
• GPS, Accéléromètre, Compas, Lumière, Proximité
• Camera
• 5 mega pixels, flash
• Mémoire
• 256 Mo RAM ou plus, 8Go Flash ou plus
• GPU
• Accélération DirectX 9
• Tuner
• FM Radio
• CPU
• 1 GHz ARM v7 "Cortex/Scorpion" ou mieux
800ou480
480 ou 320
Le Hardware
Prérequis 6 boutons
• Allumer / Eteindre
• Volume
• Camera
• Retour
• Démarrer
• Recherche
Le Hardware
• Les périphériques (en France)
L’ENVIRONNEMENT DE
DÉVELOPPEMENT
Visual Studio 2010
Expression Studio
Windows Phone Emulator
Visual Studio 2010
Test and Lab Manager
Manual Testing
Layer Diagram
UML Modeling
Load Testing Web Testing
Test Case ManagementIntelliTrace™
Architecture Explorer Test Record & Playback
Logical Class Designer
Cloud Development
Office Development
Windows Development
New WPF Editor Customizable IDE
Multi-core DevelopmentSilverlight Tools
Web Development
SharePoint Development
Generate from Usage
Static Code Analysis
Database Deployment
Code Metrics
Database Unit Testing Test Data Generation
Test Impact AnalysisUI Test Automation
Code Coverage
Performance Profiling
Database Change Mgmt
Expression Studio
• Expression Web : création de sites Web, génération des
fichiers CSS
• Expression Blend : design interactif sur les plateformes
.Net et Silverlight
• SketchFlow : prototypes rapides, faciles et peu couteux à
réaliser
• Expression Design : création de contenu graphique
professionnel
• Expression Encoder 3 : encodage pour la publication
vidéo sous différents formats, notamment en Silverlight
Windows Phone Emulator
• Mode debug dans Visual Studio
• Permet de pivoter l’application pour
vérifier son comportement en mode
paysage
• Contrôle du zoom
Des outils gratuits
Windows Phone Developer Tools
• Visual Studio 2010 Express pour Windows Phone
• Expression Blend pour Windows Phone
• Emulateur Windows Phone 7
• XNA Game Studio 4.0
• Documentations, exemples, guides
LES PLATEFORMES DE
DÉVELOPPEMENT
Silverlight
XNA
 Framework Jeux Hautes
Performances
 Création rapide de jeux 2D/3D
 Technologie mature, robuste
 Xbox 360, Windows, et WP7
 Framework d’applications
 RAD
 Contrôles basés sur
l’interface Metro
 500,000 développeurs
Windows et web
Les plateformes de développement
Silverlight
Roadmap
Silverlight 1
Septembre 2007
•Javascript
•Xaml
Silverlight 2
Octobre 2008
•Code managé
•Contrôle
personnalisé
•Data Binding
•Styling
•…
Silverlight 3
Juillet 2009
•Bitmap effects
•3D
•Performances
•Métier
•Out-Of-Browser
•…
Silverlight 4
Avril 2010
•Webcam
•Impression
•Media
•Performances
•Métier
•Interop COM
•…
Silverlight for WP7
Septembre 2010
•Basé sur
Silverlight 3 + …
Silverlight
• Basé sur .Net
• Léger
• Portable
Silverlight
2 modes de programmation
Le XAML
XAML = Modèle objet
<TextBlock FontSize="32" Text="Hello world" />
TextBlock t = new TextBlock();
t.FontSize = 32;
t.Text = "Hello world";
=
Le XAML
• Structure d’un fichier XAML:
• Fichier XML portant l’extension .xaml.
• Un élément racine.
• Un ensemble d’éléments fils décrivant l’interface utilisateur.
<UserControl x:Class="SilverlightApplication.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid x:Name="LayoutRoot">
<TextBlock Text="Hello World" />
</Grid>
</UserControl>
Silverlight for WP7
Composition
Silverlight for WP7
Structure
• Une application est structurée en pages
(PhoneApplicationPage)
• Service de navigation
• Gestion de l’historique (bouton « retour »)
• Une même page peut contenir plusieurs catégories
d’informations
• Contrôle Panorama
• Contrôle Pivot
Silverlight for WP7
Contrôle Panorama • Vue étendue
• Navigation
horizontale et
naturelle
• La taille de l’écran
ne limite plus le
contexte
• Découverte
• Suggestion
• Rappels
Silverlight for WP7
Contrôle Pivot
• Filtrer
• Séparer
• Naviguer
• Exhaustif
Silverlight for WP7
Launchers
• Tâches natives du système d’exploitation,
utilisables dans vos applications
• Ne renvoient pas de valeurs
• Lorsqu’un Launcher est utilisé, on "quitte" l’application
• Liste des Launchers disponibles:
• EmailComposeTak
• MarketPlaceDetailTask
• MarketPlaceHubTask
• MarketPlaceReviewTask
• MarketPlaceSearchTask
• MediaPlayerLauncher
• PhoneCallTask
• SearchTask
• SMSComposeTask
• WebBrowserTask
Silverlight for WP7
Choosers
• Autres types de tâches disponibles
• Retournent des données exploitables
par l’utilisateur
• Liste des Choosers disponibles:
• CameraCaptureTask
• EmailAddressChooserTask
• PhoneNumberChooserTask
• PhotoChooserTask
• SaveEmailAddressTask
• SavePhoneNumberTask
Silverlight for WP7
Cycle de vie d’une application
Démarrer
Evènement
“Launching”
Etat
“Running”
Bouton “Retour”
Evènement
“Closing”
Launcher
Chooser
Bouton “Démarrer”
Evènement
“Deactivated”
Silverlight for WP7
Cycle de vie d’une application
Instance application
restaurée
Etat
“Running”
Bouton démarrer
puis lancement de
l’application
Fin Chooser ou
Launcher.
Bouton “Retour”
Evènement
“Deactivated”
New app instance
Evènement
“Launching”
Etat
“Running”
Evènement
“Activated“
Silverlight for WP7
Stockage Isolé • Stockage de
données et/ou de
fichiers
• Propre à chaque
application
• 2 possibilités de
stockage :
• Liste de paires
clé / Valeur
• Création de
fichier et de
répertoire
Silverlight for WP7
Notifications en Push
1. Enregistrement
2. Obtention de l’URI
3. Envoi de l’URI au
serveur tiers
4. Le serveur poste la
notification sur l’URI
5. Le serveur MPN server
Pousse la notification
vers le terminal
Intérêts :
• Notifier une application
qui n’est pas en cours
d’exécution
• Economie de batterie
Push enabled
applications
Notifications
service
3rd party
service
Microsoft hosted server
3
4
5
1 2
Silverlight for WP7
Types de notification
• Tile notifications
• Image
• Entier
• Libre
• Toast notifications
– Titre
– Sous titre
• Raw notifications
– Non visuelle
– Application en cours d’exécution
XNA Game Studio
• Framework multiplateforme
• Gestion simplifié et normalisé des
“assets”
• Tire sa puissance de .Net
• PC
• Xbox 360
• Surface
• WP7
XNA Game Studio
XNA Game Studio 1
Avril 2007
•Code managé
•“Starter Kit”
•PC et Xbox360
XNA Game Studio 2
Decembre 2007
•Utilisation des
versions Express de
VS
•API réseau
XNA Game Studio 3
Septembre 2008
•Ajout du Zune
•API Communauté
•Gestion des assets
XNA Game Studio 3.1
Juin 2009
•Vidéo
•Amélioration audio
•Avatar Xbox 360
XNA Game Studio 4
Mars 2010
•Ajout du WP7
•Gestion de profil
hardware
•Multi-touch
XNA à travers les âges
XNA Game Studio
.Net
Windows
.Net Compact
Xbox 360 Windows Phone 7
Un Framework pour les contrôler tous!
Graphics Inputs Audio Network Jeux
XNA Game Studio
Initialize Load Content Update UnLoad
Content
Draw
Boucle de jeu
XNA Game Studio
ID3DX10Mesh* XLoader::loadXMesh(LPCSTR path)
{
LPD3DXBUFFER pD3DXMtrlBuffer;
HRESULT hr;
if(FAILED(hr = D3DXLoadMeshFromX( path, D3DXMESH_SYSTEMMEM, d3d9Device, NULL, &pD3DXMtrlBuffer, NULL,
&numMaterials, &mesh9 )))
{
MessageBox( NULL, path , "Cannot find Mesh: ", MB_OK );
return mesh;
}
vertexCount = mesh9->GetNumVertices();
faceCount = mesh9->GetNumFaces();
IDirect3DIndexBuffer9* indexBuffer;
mesh9->GetIndexBuffer(&indexBuffer);
indexBuffer->Lock(0,0, &indices, 0);
IDirect3DVertexBuffer9* vertexBuffer;
mesh9->GetVertexBuffer(&vertexBuffer);
vertexBuffer->Lock(0 ,0, &vertex, 0);
D3DVERTEXELEMENT9 decl[MAX_FVF_DECL_SIZE];
mesh9->GetDeclaration(decl);
D3D10_INPUT_ELEMENT_DESC vertexDesc[] = {
{"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D10_INPUT_PER_VERTEX_DATA, 0},
{"NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 24, D3D10_INPUT_PER_VERTEX_DATA, 0},
{"TANGENT", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D10_INPUT_PER_VERTEX_DATA, 0},
{"TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 36, D3D10_INPUT_PER_VERTEX_DATA, 0},
};
D3D10_INPUT_ELEMENT_DESC vertexDescNoNormals[] = {
{"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D10_INPUT_PER_VERTEX_DATA, 0},
{"NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 24, D3D10_INPUT_PER_VERTEX_DATA, 0},
{"TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 36, D3D10_INPUT_PER_VERTEX_DATA, 0},
};
bool hasTangents = false;
if(decl[0].Usage == 6 || decl[1].Usage == 6 || decl[2].Usage == 6) { hasTangents = true; }
else { hasTangents = false; }
if(hasTangents)
{
if( FAILED( D3DX10CreateMesh(d3dDevice, vertexDesc, 4, vertexDesc[0].SemanticName, vertexCount, faceCount,
D3DX10_MESH_32_BIT, &mesh) ) ) MessageBox( NULL, path , "Cannot create mesh ", MB_OK );
} else
{ if( FAILED( D3DX10CreateMesh(d3dDevice, vertexDescNoNormals, 3, vertexDescNoNormals[0].SemanticName,
vertexCount, faceCount, D3DX10_MESH_32_BIT, &mesh) ) ) MessageBox( NULL, path , "Cannot create mesh ", MB_OK );
} mesh->SetVertexData(0, vertex); mesh->SetIndexData(indices, faceCount*3);
mesh->GenerateAdjacencyAndPointReps(0.001f);
mesh->Optimize(D3DX10_MESHOPT_ATTR_SORT|D3DX10_MESHOPT_VERTEX_CACHE,0,0);
mesh->CommitToDevice();
return mesh;
}
Model m = Content.Load<Model>(“MyModel3D”);
Texture2D tex = Content.Load<Texture2D>(“MyTexture”);
Effect ef = Content.Load<Effect>(“MyEffect”);
SpriteFront sf = Content.Load<SpriteFront>(“MyFont”);
Var v = Content.Load<T>(“…”);
XNA Game Studio
-Un jeux n’est qu’un ensemble de brique
• IUpdateable
• IDrawable
• IGameComponent
• DrawableGameComponent
• …
Qu’il vous suffit d’assembler et « laisser s’exécuter »
Update
Draw
Update de l’ensemble des briques
updateables
Ecriture à l’écran des briques de
rendu
LA COLLABORATION
DESIGNER / DEVELOPPEUR
Les bonnes pratiques
La collaboration
Designer / Développeur
C++
C#
VB.NET
Paper
JPG / TIFF
PSD
PPT
MOV / V
XAML
Designer Developer
La collaboration
Designer / Développeur
Création d’une séparation Design / Code
plus forte.
• Les vues de notre
application
deviennent fortement
indépendantes du
reste
• Les données peuvent
facilement être
« simulées »
Vue Logique + données
La collaboration
Designer / Développeur
Design Time avec Blend 4
• Conception d’une vue
• Génération de données « design »
• Contexte de design plus « réaliste »
• Meilleure productivité
LE MARKETPLACE
Le Marketplace
Principe de Marketplace
• Place de marché de vente et d’achat
d’applications
Microsoft
Développeur Particulier
Création
Diffusion
App Hub
Achat
MarketPlace
Utilisation
Valide
Monétise
Le Marketplace
Tester des applications
Outils de
Packaging et
de vérificationmyapp.xap
Périphérique
Windows
Phone
Emulateur
Windows Phone
Installation d’applications
• Le téléphone installe seulement des application qui proviennent du
MarketPlace
• Le téléphone gère l’installation du XAP
• L’utilisateur contrôle l’installation, la mise à jour et la désinstallation
+Windows Phone
Marketplace
Isolation des applications
• Le téléphone exécute seulement des applications provenant du
MarketPlace
• Les applications sont "sandboxées"
Applications Répertoire
d’installation
Exécution
d’applications
Le MarketPlace: monétisation
• Cout d’entrée
• 75 euros pour un an pour les particuliers, professionnels
• Gratuit pour les étudiants
• Donne droit à
• Déverrouiller 3 téléphones en mode « développeur »
• Publier 5 applications gratuites (20 euros la suivante)
• Publier un nombre illimités d’application payantes
• Partage de revenu
• 70% pour le développeurs, 30% pour Microsoft et éventuellement l’opérateur
• Fonctionnalités particulières
• Gestion du mode évaluation (IsTrial)
?
Questions ?

Conférence windows phone 7

  • 1.
    Presentation de WINDOWS PHONE7 Arnaud Auroux Niels Freier Florent Santin Adrien Sifferman LIFE IS IN MOTION, SO ARE WE.
  • 2.
    Agenda • Pourquoi unsmartphone ? • De Windows Mobile à Windows Phone 7 • L’interface Metro • Le Hardware • L’environnement de développement • Les plateformes de développement • La collaboration designer / développeur • Le Marketplace
  • 3.
    C’est quoi unSmartphone? C’est quoi un Smartphone ? • Un téléphone cool…  – … qui sert a téléphoner… – …mais surtout a exécuter des applications! • Terminal Web – Navigateur Web embarqué – Applications fortement connectées • En résumé, l’extension du PC dans la poche
  • 4.
    C’est quoi unSmartphone? Le marché du Smartphone • 2009: 180 Millions d’unités vendues • Plusieurs acteurs majeurs: • RIM – Blackberry – OS + Hardware • Apple – Iphone – OS + Hardware • Google – Androïd – OS • Fondation Symbian – Symbia - OS • Microsoft – Windows Mobile 6.5 / Windows Phone 7 – OS
  • 5.
    C’est quoi unSmartphone? Le marché du Smartphone • Les clés de l’augmentation du marché du SmartPhone: • Apparition des forfaits 3G illimités • Excellente couverture des opérateurs en France • 90% du territoire en 3G • 99 en EDGE
  • 6.
    C’est quoi unSmartphone ? Historique du Smartphone chez MS • 2000: • Apparition du Pocket PC / PDA • Windows CE 3.0 • 2002: • Pocket PC -> Téléphone • Téléphone -> Pocket PC • Pocket PC 2002, Phone Edition 2002 et Smartphone 2002 • 2003: Windows Mobile (base Windows CE) • 2005: Windows Mobile 5.0 • 2007: Windows Mobile 6.0 • 2009: Windows Mobile 6.5 • 2010: Rupture!
  • 7.
    CHOIX MATERIEL PHOTOS LE MEILLEURPOUR LES PRO LE MEILLEUR POUR LES DEVELOPPEURS EXPERIENCE METRO SOCIAL 1 2 3 4 5 6 7 XBOX LIVE De Windows Mobile à Windows Phone 7 7 Zones d’excellence
  • 8.
    Zune • Historiquement, logicielde gestion des musiques du baladeur Microsoft « Zune » • Aujourd’hui: – Place de marché d’achat de musique – Place de marché d’achat d’applications – Outils de synchronisation PC  WP7 • Plusieurs terminaux pour un même logiciel: – PC – Zune HD – Windows Phone 7 – XBOX 360
  • 9.
  • 10.
    L’INTERFACE METRO Help users« find their way »
  • 11.
    L’interface Metro • Inspirédu système de signalisation utilisé dans les métros et aéroports • Révéler tout un contexte à partir d’un simple contenu. • Création d’un système homogène. • Pas de décoration, pas d’ornementation.
  • 12.
    L’interface Metro 5 grandsprincipes 1. Epuré, ouvert et rapide : fournir de grands espaces, garder une structure légère et considérer la typographie comme l’un des éléments le plus important de l’interface. 2. Contenu : Mettre le contenu pertinent en évidence pour l’utilisateur. 3. Intégration machine / logiciel : créer une expérience unique entre l’application et les boutons d’accès « Recherche », « Précédent », « Démarrer » et « Caméra ». 4. Expérience utilisateur universelle : créer une cohérence dans les transitions et animations. 5. Interface personnalisée et vivante : des vues et éléments mises à jour automatiquement avec les informations les plus importantes.
  • 13.
    L’interface Metro Ecran dedémarrage • Affichage des tuiles • Personnalisable par l’utilisateur • Accessible depuis le bouton « Démarrer » • Eléments dynamiques
  • 14.
    L’interface Metro • Tailleminimum conseillée : 15 • Possibilité d’embarquer ses propres polices. • Jeu de polices d'Asie orientale (chinois, japonais et coréen) inclus. • Utilisation d’un contraste fort pour les polices en couleur.
  • 15.
    L’interface Metro • Informations système(heure, niveau de batterie, mode silencieux, etc.). • Espace réservé (partie haute de l’ écran). • Une seule information affichée par défaut : l’heure système. • Gérée et mise à jour par le système. • Peut-être cachée. La barre de statut
  • 16.
    L’interface Metro La barred’application • Tâches communes et fréquentes. • 4 boutons Maximum. • Personnalisable. • Menu disponible pour les tâches plus spécifiques. • 5 éléments de menu maximum conseillé.
  • 17.
    L’interface Metro Le modèlede navigation • Une application est constituée de pages. • Une page peut avoir plusieurs « contenus » • Gestion de l’historique. • Les titres de pages sont mis en évidence. • Expérience de navigation homogène, fluide, et simple.
  • 18.
  • 19.
  • 20.
    Le Hardware Prérequis • Ecrantactile capacitif • 4 points de contacts ou plus • Capteurs • GPS, Accéléromètre, Compas, Lumière, Proximité • Camera • 5 mega pixels, flash • Mémoire • 256 Mo RAM ou plus, 8Go Flash ou plus • GPU • Accélération DirectX 9 • Tuner • FM Radio • CPU • 1 GHz ARM v7 "Cortex/Scorpion" ou mieux 800ou480 480 ou 320
  • 21.
    Le Hardware Prérequis 6boutons • Allumer / Eteindre • Volume • Camera • Retour • Démarrer • Recherche
  • 22.
    Le Hardware • Lespériphériques (en France)
  • 23.
    L’ENVIRONNEMENT DE DÉVELOPPEMENT Visual Studio2010 Expression Studio Windows Phone Emulator
  • 24.
    Visual Studio 2010 Testand Lab Manager Manual Testing Layer Diagram UML Modeling Load Testing Web Testing Test Case ManagementIntelliTrace™ Architecture Explorer Test Record & Playback Logical Class Designer Cloud Development Office Development Windows Development New WPF Editor Customizable IDE Multi-core DevelopmentSilverlight Tools Web Development SharePoint Development Generate from Usage Static Code Analysis Database Deployment Code Metrics Database Unit Testing Test Data Generation Test Impact AnalysisUI Test Automation Code Coverage Performance Profiling Database Change Mgmt
  • 25.
    Expression Studio • ExpressionWeb : création de sites Web, génération des fichiers CSS • Expression Blend : design interactif sur les plateformes .Net et Silverlight • SketchFlow : prototypes rapides, faciles et peu couteux à réaliser • Expression Design : création de contenu graphique professionnel • Expression Encoder 3 : encodage pour la publication vidéo sous différents formats, notamment en Silverlight
  • 26.
    Windows Phone Emulator •Mode debug dans Visual Studio • Permet de pivoter l’application pour vérifier son comportement en mode paysage • Contrôle du zoom
  • 27.
    Des outils gratuits WindowsPhone Developer Tools • Visual Studio 2010 Express pour Windows Phone • Expression Blend pour Windows Phone • Emulateur Windows Phone 7 • XNA Game Studio 4.0 • Documentations, exemples, guides
  • 28.
  • 29.
     Framework JeuxHautes Performances  Création rapide de jeux 2D/3D  Technologie mature, robuste  Xbox 360, Windows, et WP7  Framework d’applications  RAD  Contrôles basés sur l’interface Metro  500,000 développeurs Windows et web Les plateformes de développement
  • 30.
    Silverlight Roadmap Silverlight 1 Septembre 2007 •Javascript •Xaml Silverlight2 Octobre 2008 •Code managé •Contrôle personnalisé •Data Binding •Styling •… Silverlight 3 Juillet 2009 •Bitmap effects •3D •Performances •Métier •Out-Of-Browser •… Silverlight 4 Avril 2010 •Webcam •Impression •Media •Performances •Métier •Interop COM •… Silverlight for WP7 Septembre 2010 •Basé sur Silverlight 3 + …
  • 31.
    Silverlight • Basé sur.Net • Léger • Portable
  • 32.
  • 33.
    Le XAML XAML =Modèle objet <TextBlock FontSize="32" Text="Hello world" /> TextBlock t = new TextBlock(); t.FontSize = 32; t.Text = "Hello world"; =
  • 34.
    Le XAML • Structured’un fichier XAML: • Fichier XML portant l’extension .xaml. • Un élément racine. • Un ensemble d’éléments fils décrivant l’interface utilisateur. <UserControl x:Class="SilverlightApplication.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Grid x:Name="LayoutRoot"> <TextBlock Text="Hello World" /> </Grid> </UserControl>
  • 35.
  • 36.
    Silverlight for WP7 Structure •Une application est structurée en pages (PhoneApplicationPage) • Service de navigation • Gestion de l’historique (bouton « retour ») • Une même page peut contenir plusieurs catégories d’informations • Contrôle Panorama • Contrôle Pivot
  • 37.
    Silverlight for WP7 ContrôlePanorama • Vue étendue • Navigation horizontale et naturelle • La taille de l’écran ne limite plus le contexte • Découverte • Suggestion • Rappels
  • 38.
    Silverlight for WP7 ContrôlePivot • Filtrer • Séparer • Naviguer • Exhaustif
  • 39.
    Silverlight for WP7 Launchers •Tâches natives du système d’exploitation, utilisables dans vos applications • Ne renvoient pas de valeurs • Lorsqu’un Launcher est utilisé, on "quitte" l’application • Liste des Launchers disponibles: • EmailComposeTak • MarketPlaceDetailTask • MarketPlaceHubTask • MarketPlaceReviewTask • MarketPlaceSearchTask • MediaPlayerLauncher • PhoneCallTask • SearchTask • SMSComposeTask • WebBrowserTask
  • 40.
    Silverlight for WP7 Choosers •Autres types de tâches disponibles • Retournent des données exploitables par l’utilisateur • Liste des Choosers disponibles: • CameraCaptureTask • EmailAddressChooserTask • PhoneNumberChooserTask • PhotoChooserTask • SaveEmailAddressTask • SavePhoneNumberTask
  • 41.
    Silverlight for WP7 Cyclede vie d’une application Démarrer Evènement “Launching” Etat “Running” Bouton “Retour” Evènement “Closing” Launcher Chooser Bouton “Démarrer” Evènement “Deactivated”
  • 42.
    Silverlight for WP7 Cyclede vie d’une application Instance application restaurée Etat “Running” Bouton démarrer puis lancement de l’application Fin Chooser ou Launcher. Bouton “Retour” Evènement “Deactivated” New app instance Evènement “Launching” Etat “Running” Evènement “Activated“
  • 43.
    Silverlight for WP7 StockageIsolé • Stockage de données et/ou de fichiers • Propre à chaque application • 2 possibilités de stockage : • Liste de paires clé / Valeur • Création de fichier et de répertoire
  • 44.
    Silverlight for WP7 Notificationsen Push 1. Enregistrement 2. Obtention de l’URI 3. Envoi de l’URI au serveur tiers 4. Le serveur poste la notification sur l’URI 5. Le serveur MPN server Pousse la notification vers le terminal Intérêts : • Notifier une application qui n’est pas en cours d’exécution • Economie de batterie Push enabled applications Notifications service 3rd party service Microsoft hosted server 3 4 5 1 2
  • 45.
    Silverlight for WP7 Typesde notification • Tile notifications • Image • Entier • Libre • Toast notifications – Titre – Sous titre • Raw notifications – Non visuelle – Application en cours d’exécution
  • 46.
    XNA Game Studio •Framework multiplateforme • Gestion simplifié et normalisé des “assets” • Tire sa puissance de .Net • PC • Xbox 360 • Surface • WP7
  • 47.
    XNA Game Studio XNAGame Studio 1 Avril 2007 •Code managé •“Starter Kit” •PC et Xbox360 XNA Game Studio 2 Decembre 2007 •Utilisation des versions Express de VS •API réseau XNA Game Studio 3 Septembre 2008 •Ajout du Zune •API Communauté •Gestion des assets XNA Game Studio 3.1 Juin 2009 •Vidéo •Amélioration audio •Avatar Xbox 360 XNA Game Studio 4 Mars 2010 •Ajout du WP7 •Gestion de profil hardware •Multi-touch XNA à travers les âges
  • 48.
    XNA Game Studio .Net Windows .NetCompact Xbox 360 Windows Phone 7 Un Framework pour les contrôler tous! Graphics Inputs Audio Network Jeux
  • 49.
    XNA Game Studio InitializeLoad Content Update UnLoad Content Draw Boucle de jeu
  • 50.
    XNA Game Studio ID3DX10Mesh*XLoader::loadXMesh(LPCSTR path) { LPD3DXBUFFER pD3DXMtrlBuffer; HRESULT hr; if(FAILED(hr = D3DXLoadMeshFromX( path, D3DXMESH_SYSTEMMEM, d3d9Device, NULL, &pD3DXMtrlBuffer, NULL, &numMaterials, &mesh9 ))) { MessageBox( NULL, path , "Cannot find Mesh: ", MB_OK ); return mesh; } vertexCount = mesh9->GetNumVertices(); faceCount = mesh9->GetNumFaces(); IDirect3DIndexBuffer9* indexBuffer; mesh9->GetIndexBuffer(&indexBuffer); indexBuffer->Lock(0,0, &indices, 0); IDirect3DVertexBuffer9* vertexBuffer; mesh9->GetVertexBuffer(&vertexBuffer); vertexBuffer->Lock(0 ,0, &vertex, 0); D3DVERTEXELEMENT9 decl[MAX_FVF_DECL_SIZE]; mesh9->GetDeclaration(decl); D3D10_INPUT_ELEMENT_DESC vertexDesc[] = { {"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D10_INPUT_PER_VERTEX_DATA, 0}, {"NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 24, D3D10_INPUT_PER_VERTEX_DATA, 0}, {"TANGENT", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D10_INPUT_PER_VERTEX_DATA, 0}, {"TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 36, D3D10_INPUT_PER_VERTEX_DATA, 0}, }; D3D10_INPUT_ELEMENT_DESC vertexDescNoNormals[] = { {"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D10_INPUT_PER_VERTEX_DATA, 0}, {"NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 24, D3D10_INPUT_PER_VERTEX_DATA, 0}, {"TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 36, D3D10_INPUT_PER_VERTEX_DATA, 0}, }; bool hasTangents = false; if(decl[0].Usage == 6 || decl[1].Usage == 6 || decl[2].Usage == 6) { hasTangents = true; } else { hasTangents = false; } if(hasTangents) { if( FAILED( D3DX10CreateMesh(d3dDevice, vertexDesc, 4, vertexDesc[0].SemanticName, vertexCount, faceCount, D3DX10_MESH_32_BIT, &mesh) ) ) MessageBox( NULL, path , "Cannot create mesh ", MB_OK ); } else { if( FAILED( D3DX10CreateMesh(d3dDevice, vertexDescNoNormals, 3, vertexDescNoNormals[0].SemanticName, vertexCount, faceCount, D3DX10_MESH_32_BIT, &mesh) ) ) MessageBox( NULL, path , "Cannot create mesh ", MB_OK ); } mesh->SetVertexData(0, vertex); mesh->SetIndexData(indices, faceCount*3); mesh->GenerateAdjacencyAndPointReps(0.001f); mesh->Optimize(D3DX10_MESHOPT_ATTR_SORT|D3DX10_MESHOPT_VERTEX_CACHE,0,0); mesh->CommitToDevice(); return mesh; } Model m = Content.Load<Model>(“MyModel3D”); Texture2D tex = Content.Load<Texture2D>(“MyTexture”); Effect ef = Content.Load<Effect>(“MyEffect”); SpriteFront sf = Content.Load<SpriteFront>(“MyFont”); Var v = Content.Load<T>(“…”);
  • 51.
    XNA Game Studio -Unjeux n’est qu’un ensemble de brique • IUpdateable • IDrawable • IGameComponent • DrawableGameComponent • … Qu’il vous suffit d’assembler et « laisser s’exécuter » Update Draw Update de l’ensemble des briques updateables Ecriture à l’écran des briques de rendu
  • 52.
    LA COLLABORATION DESIGNER /DEVELOPPEUR Les bonnes pratiques
  • 53.
    La collaboration Designer /Développeur C++ C# VB.NET Paper JPG / TIFF PSD PPT MOV / V XAML Designer Developer
  • 54.
    La collaboration Designer /Développeur Création d’une séparation Design / Code plus forte. • Les vues de notre application deviennent fortement indépendantes du reste • Les données peuvent facilement être « simulées » Vue Logique + données
  • 55.
    La collaboration Designer /Développeur Design Time avec Blend 4 • Conception d’une vue • Génération de données « design » • Contexte de design plus « réaliste » • Meilleure productivité
  • 56.
  • 57.
    Le Marketplace Principe deMarketplace • Place de marché de vente et d’achat d’applications Microsoft Développeur Particulier Création Diffusion App Hub Achat MarketPlace Utilisation Valide Monétise
  • 58.
  • 59.
    Tester des applications Outilsde Packaging et de vérificationmyapp.xap Périphérique Windows Phone Emulateur Windows Phone
  • 60.
    Installation d’applications • Letéléphone installe seulement des application qui proviennent du MarketPlace • Le téléphone gère l’installation du XAP • L’utilisateur contrôle l’installation, la mise à jour et la désinstallation +Windows Phone Marketplace
  • 61.
    Isolation des applications •Le téléphone exécute seulement des applications provenant du MarketPlace • Les applications sont "sandboxées" Applications Répertoire d’installation Exécution d’applications
  • 62.
    Le MarketPlace: monétisation •Cout d’entrée • 75 euros pour un an pour les particuliers, professionnels • Gratuit pour les étudiants • Donne droit à • Déverrouiller 3 téléphones en mode « développeur » • Publier 5 applications gratuites (20 euros la suivante) • Publier un nombre illimités d’application payantes • Partage de revenu • 70% pour le développeurs, 30% pour Microsoft et éventuellement l’opérateur • Fonctionnalités particulières • Gestion du mode évaluation (IsTrial)
  • 63.

Notes de l'éditeur

  • #8 Le meilleurs pour les développeurs = parler de la value prop créativitité, productivité, opportunité
  • #13 Font Segoe
  • #17 Gestion des différents modes d’affichage. 3 boutons conseillés. Icones obligatoire
  • #19 2 thèmes de fond 10 thèmes de premier plan Les opérateurs mobiles peuvent ajouter leur propre thème. Définis de façon globales et donc réutilisables dans les applications
  • #21 The Compass is used to determine navigation direction relative to the Earth’s magnetic field. The Light Sensor is used to determine the intensity of light up to 4,000 lux and helps in automatically adjusting screen brightness. The Proximity Sensor is used to power off the screen to conserve battery when an object is detected within 15 mm of the sensor during a phone call.