Vous êtes sur la page 1sur 15

1

Le nouveau Windows Runtime


WinRT (Windows Runtime) est un framework totalement nouveau pour Windows.
Par son biais, les dveloppeurs disposent dune API multilangage pour crer des
applications destines Windows 8. Les applications Windows Store sont des
applications plein cran conues pour des appareils spcifques, des interactions
tactiles et la nouvelle interface utilisateur Windows8. Elles sont galement appeles
applications ajustes (tailored) car elles sadaptent lappareil cible. Toutefois,
rien ninterdit de dvelopper des applications de bureau traditionnelles pour
Windows 8. Dans cet ouvrage, lexpression "application Windows8" dsignera la
version Windows Store (non de bureau) dune application qui se fonde sur WinRT.
Larrive de ce framework reprsente un changement profond dans le monde du
dveloppement pour Windows, aussi important que celui li la sortie de .NET la
fn des annes2000.
Dans ce chapitre, nous allons revenir sur les frameworks de dveloppement pour
Windows et expliquer pourquoi la popularit croissante des interfaces utilisateur
naturelles a conduit Microsoft proposer laudacieuse plateforme Windows8. Nous
vous initierons aux applications Windows8 et prsenterons les diffrents langages
dans lesquels elles peuvent tre crites. Vous dcouvrirez galement comment les
technologies fondes sur XAML, comme WPF et Silverlight, sinsrent dans le
nouveau Windows Runtime.
Retour en arrire: Win32 et .NET
Je change davis plus rapidement que Bill Clinton.
Jay Leno, propos de la nouvelle barre des tches de Windows, lors de la
soire de lancement de Windows95
En 1985, la premire version de Windows est sortie sans grand tumulte. Il
sagissait non pas dun systme dexploitation en soi, mais dune couche appe-
le MS-DOS Executive (voir Figure1.1) qui sexcutait au-dessus du systme en
PRS_Windows8_MEP.indd 1 3/14/2013 1:49:17 PM
2013 Pearson France Dveloppement d'applications Windows 8 avec C# et XAML Jeremy Likness
2 Dveloppement dapplications Windows 8 avec C# et XAML
ligne de commande MS-DOS. Une dizaine dannes plus tard, les choses ont
normment volu avec larrive de Windows 95. Bill Gates tait alors mont
sur une scne immense, devant le dsormais emblmatique "bouton Dmarrer" de
Windows, accueilli par Jay Leno
1
, afn de faire la dmonstration de la puissance
du nouveau systme dexploitation. Il a t prsent sous les notes du morceau
Start Me Up des Rolling Stones et a laiss ses principaux concurrents, comme
Apple, loin derrire.
Figure1.1
MS-DOS Executive.
Pour crire des logiciels destins Windows95 (voir Figure1.2), les dveloppeurs
employaient Win32, une interface de programmation dapplications (API, Appli-
cation Programming Interface) qui avait t conue plusieurs annes auparavant.
cette poque, Microsoft tait en train de passer des anciens systmes 16bits aux
nouvelles architectures 32bits et leur prise en charge transparaissait dans le nom
des API. Win32 se trouve encore aujourdhui (sous le nom plus appropri dAPI
Windows) au cur de tous les systmes dexploitation Windows, malgr larrive
de frameworks et de plateformes qui rendent son existence plus abstraite. Cette API
tait gnralement considre comme extrmement puissante et souple au moment
de sa sortie, mais elle imposait aux dveloppeurs un important travail de prise en
charge des oprations de bas niveau ncessaires laffchage dun formulaire et aux
interactions avec lutilisateur.
1. N.d.T. : Jay Leno est un humoriste satirique amricain qui offcie sur la chane NBC dans son
propre talk-show (source Wikipdia).
PRS_Windows8_MEP.indd 2 3/19/2013 9:10:56 AM
2013 Pearson France Dveloppement d'applications Windows 8 avec C# et XAML Jeremy Likness
Le nouveau Windows Runtime 3 Chapitre 1
Figure1.2
Windows95.
Pour affcher le texte "Bonjour tout le monde!" en C++, le code suivant sufft:
#include<iostream.h>
int main()
{
cout << "Bonjour tout le monde !" << endl;
return 0;
}
Comparez-le celui du Listing1.1 qui ralise la mme opration en C++ pour lAPI
Win32; cet exemple se fonde sur la bibliothque de classes Microsoft Foundation
(MFC, Microsoft Foundation Class).
Listing1.1: Le programme "Bonjour tout le monde" en version MFC/Win32
#include <afxwin.h>
class HelloApplication : public CWinApp
{
public:
virtual BOOL InitInstance();
};
HelloApplication HelloApp;
class HelloWindow : public CFrameWnd
{
PRS_Windows8_MEP.indd 3 3/14/2013 1:49:18 PM
2013 Pearson France Dveloppement d'applications Windows 8 avec C# et XAML Jeremy Likness
4 Dveloppement dapplications Windows 8 avec C# et XAML
CButton* m_pHelloButton;
public:
HelloWindow();
};
BOOL HelloApplication::InitInstance()
{
m_pMainWnd = new HelloWindow();
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
HelloWindow::HelloWindow()
{
Create(NULL,
"Bonjour tout le monde !",
WS_OVERLAPPEDWINDOW|WS_HSCROLL,
CRect(0,0,140,80));
m_pHelloButton = new CButton();
m_pHelloButton->Create("Bonjour tout le monde !",WS_CHILD|WS_
VISIBLE,CRect(20,
20,120,40),this,1);
}
Cette API a t abondamment employe pendant des dcennies pour crire des
logiciels Windows. Elle illustre la contrainte rcurrente dans leur processus de dve-
loppement: la possibilit de proposer une interface utilisateur labore implique un
apprentissage ardu. Par ailleurs, il tait obligatoire de matriser le langage C ou C++
car, bien que dautres choix fussent possibles, ils dominaient tous deux le march
de ce que lon nomme dsormais du code non gr. Un code non gr est compil
directement en instructions natives que la machine cible est capable dexcuter .
La premire version du langage de programmation Visual Basic (plus frquem-
ment appel VB) a t propose en 1991. VB se fonde sur des concepts tirs dun
langage plus ancien, conu pour lenseignement et appel BASIC, un acronyme de
Beginners All-purpose Symbolic Instruction Code. VB permet aux dveloppeurs
de structurer leur code en composants logiques qui cooprent. Bien quil gnre
galement du code non gr natif, aucune bibliothque dexcution complmentaire
nest requise pour crer lapplication cible.
VB 4.0, sorti en 1995, est capable de produire des programmes Windows en
version16bits et 32bits. Son environnement de dveloppement intgr (IDE, Inte-
ractive Development Environment), ainsi que lexistence de nombreux composants
complmentaires et la possibilit de concevoir des interfaces utilisateur par simple
glisser-dposer de contrles, la rendu extrmement populaire auprs des dve-
loppeurs . VB permet galement dexploiter la technologie COM (Common Object
Model), prsente en 1993 par Microsoft, qui permet de crer des composants
logiciels.
PRS_Windows8_MEP.indd 4 3/14/2013 1:49:18 PM
2013 Pearson France Dveloppement d'applications Windows 8 avec C# et XAML Jeremy Likness
Le nouveau Windows Runtime 5 Chapitre 1
COM autorise les communications entre les processus et permet de crer dynami-
quement des composants logiciels (appels objets) auxquels il est possible daccder
depuis diffrents langages de programmation. Les dveloppeurs peuvent utiliser des
composants sans en connatre limplmentation interne. La solution se fonde sur des
interfaces externes. COM a galement reprsent un jalon important dans lvolu-
tion de Windows et, comme vous le verrez plus loin, a aujourdhui une infuence sur
la plateforme Windows8.
Larchitecture classique dune application Win32 est illustre la Figure1.3.
Figure1.3
Architecture dune
application fonde
sur lAPI Win32.
Application C/C++
API Win32
Sous-systme Win32
Noyau Windows
Matriel
Bien que lAPI Win32 soit toujours prsente, de nombreux dveloppeurs nont
pas conscience de son existence car, au milieu des annes 1990, Microsoft a
commenc travailler sur un nouveau framework, nom de code NGSW (Next
Generation Windows Services). La version bta de ce framework est sortie la fn
des annes2000 sous son nom offciel: .NET1.0. Il permet de crer un nouveau
type de code appel code gr.
Pour dvelopper des applications, lapproche traditionnelle est dite non gre car le
code est compil directement en instructions natives que la machine cible est capable
de comprendre. Bien quelle prsente plusieurs avantages, cette solution oblige le
dveloppeur comprendre le fonctionnement de la machine hte un niveau trs
proche du noyau sous-jacent. Il doit matriser lallocation explicite des zones de
mmoire, ainsi que leur libration lorsquelles ne sont plus utiles. La mise en uvre
des oprations graphiques exige une comprhension des pilotes graphiques et du
rendu des pixels dans les tampons internes utiliss pour laffchage lcran .
Le framework .NET a apport le code gr sur les plateformes Windows. Le code
est dit gr car une nouvelle couche, nomme CLR (Common Language Runtime), a
t ajoute pour grer la mmoire la place du dveloppeur, pour fournir une solu-
tion homogne aux interactions avec les diverses bibliothques et ressources, et pour
obtenir un code plus sr. CLR apporte galement une couche de code indpendant du
langage, appel MSIL ( Microsoft Intermediate Language), ou plus simplementIL,
PRS_Windows8_MEP.indd 5 3/14/2013 1:49:18 PM
2013 Pearson France Dveloppement d'applications Windows 8 avec C# et XAML Jeremy Likness
6 Dveloppement dapplications Windows 8 avec C# et XAML
dans lequel laquelle tous les programmes sont compils. Le moteur dexcution
interprte ce code et le convertit en instructions natives adaptes la machine cible .
Le concept de code gr date dune poque antrieure au framework .NET. Dans
les annes1960 et 1970, lorsque les mainframes taient rpandus, il ntait pas rare
dcrire des mulateurs afn de porter du code dun systme vers un autre. Lune
des premires socits de dveloppement de jeux, cre en 1979, avait produit une
"fction interactive", plus connue sous son nom, Zork, et plusieurs titres compa-
tibles avec diffrentes plateformes, notamment les ordinateurs Commodore 64 et
AppleIIe, grce un interprteur Z-machine. Les technologies Java sont apparues
en 1991, avec une machine virtuelle Java (JVM, Java Virtual Machine) pour grer
le code crit dans ce langage de programmation.
Ce modle a pour avantage douvrir la plateforme divers langages et dlargir la
compatibilit des logiciels avec diffrentes plateformes et diffrents systmes dex-
ploitation. Les programmes dvelopps avec du code non gr ciblent souvent une
version prcise du systme dexploitation ou disposent de bibliothques conues
pour assurer leur compatibilit avec plusieurs variantes (comme WindowsXP, Win-
dows Vista et Windows7). Le code gr correspond en grande partie une version
prcise du framework .NET, qui se charge ensuite de tenir compte des diffrences
entre les systmes dexploitation sur lesquels il est install.
La version initiale du framework .NET proposait une API nomme WinForms
(Windows forms) pour le dveloppement dinterfaces utilisateur graphiques. Elle
se fondait sur GDI (Graphics Device Interface), qui offrait des mthodes directes
daccs au matriel graphique sous-jacent . La version3.0 du framework .NET est
arrive en 2006 et a propos WPF (Windows Presentation Foundation). Cette nou-
velle technologie a reprsent une volution importante, car elle se fonde sur un
langage de balisage extensible, XAML (Extensible Application Markup Language),
pour concevoir des interfaces utilisateur de manire dclarative . XAML permet
dobtenir des graphiques vectoriels et des mises en page fuides, qui sadaptent aux
diffrentes tailles dcran, et apporte le concept de liaison de donnes que nous
prsenterons plus loin.
Larchitecture dune application crite avec le framework .NET est illustre la
Figure1.4. Cet exemple utilise le framework WPF, qui se place au-dessus du moteur
dexcution principal. Le dveloppeur a la possibilit demployer divers langages
et technologies, comme XAML, pour gnrer du code qui exploite le framework
et la bibliothque de classes de base (BCL, Base Class Library) sous-jacente afn
de bnfcier de services communs, comme laccs au systme de fchiers et au
rseau. Tous les langages produisent du code MSIL, que la couche CLR compile en
instructions natives pendant lexcution.
PRS_Windows8_MEP.indd 6 3/14/2013 1:49:19 PM
2013 Pearson France Dveloppement d'applications Windows 8 avec C# et XAML Jeremy Likness
Le nouveau Windows Runtime 7 Chapitre 1
Figure1.4
Architecture dune
application fonde
sur le framework
.NET.
WPF
XAML
F#
C#
VB.NET
Bibliothque de classes de base (BCL)
Common Language Runtime
Sous-systme Win32
Noyau Windows
Matriel
Ces dix dernires annes, les technologies fondes sur le framework .NET et
lAPI Win32 ont domin le monde des logiciels pour Windows. Bien que certains
frameworks, comme WPF, aient rvolutionn linterface utilisateur des applications
Windows et que Silverlight ait augment la richesse de la plateforme, Windows
a souffert dun concurrent inattendu, les tablettes tactiles. En avril 2010, quinze
ans aprs la soire de lancement de Windows 95, Apple sest veng en vendant
environ 15millions diPad lors de la seule premire anne de sa commercialisation.
Cet audacieux produit a conduit une rvolution, qui avait commenc quelques
annes plus tt, en apportant aux consommateurs ce que lon appelle une interface
utilisateur naturelle (NUI, Natural User Interface).
Vision davenir: avnement des NUI
La machine crire a t invente au dbut des annes1800. Le modle dorigine
disposait dun jeu de touches organises par ordre alphabtique et dun mcanisme
qui se bloquait si loprateur saisissait trop rapidement. Christopher Sholes, un di-
teur de presse crite, a rsolu ce problme au dbut des annes 1870 en organisant le
clavier de manire que les touches qui correspondent aux lettres les plus frquentes
ne soient pas trop proches lune de lautre. Contrairement une ide rpandue, lide
tait non pas de ralentir loprateur mais dviter les blocages et donc de permettre
des saisies plus rapides (Weller, 1918).
Le clavier tait purement mcanique : il reliait une lettre une barre qui tait uti-
lise pour frapper le papier et appliquer lencre de faon imprimer la lettre. Les
machines crire sont dsormais des curiosits et la majorit des claviers sont lec-
triques. Il en existe mme qui peuvent mme tre enrouls dans de petits cylindres
pour faciliter leur transport et tre connects sans fl une machine. En dpit des
PRS_Windows8_MEP.indd 7 3/14/2013 1:49:19 PM
2013 Pearson France Dveloppement d'applications Windows 8 avec C# et XAML Jeremy Likness
8 Dveloppement dapplications Windows 8 avec C# et XAML
avances technologiques spectaculaires, laspect du clavier na pratiquement pas
volu au cours du sicle dernier.
la fn des annes 1960, le clavier a t complt par la souris. Bill English et
Douglas Engelbart travaillaient pour Xerox au PARC (Palo Alto Research Center),
o ils ont dvelopp les premiers prototypes de la souris (Edwards, 2008). Lappa-
reil ralis a ainsi t nomm car il tait reli par un cordon qui ressemblait une
queue . Aujourdhui, vous pouvez acheter une souris sans fl qui, la place dune
boule mcanique, utilise un rayon infrarouge ou laser pour suivre ses dplacements.
Lensemble clavier-souris reprsente probablement la manire la plus rpandue
dinteragir avec les ordinateurs, mais elle est peu intuitive. Si vous lisez ces lignes,
nous pouvons supposer que vous tes un dveloppeur et quil est fort probable que
vous serviez de "support technique" vos amis et aux membres de votre famille.
Vous avez certainement dj d prendre votre mal en patience pendant quun parent
pianotait laborieusement sur son clavier afn de saisir du texte, et lui avoir galement
expliqu les diffrences entre un clic, un double-clic et un clic du bouton droit.
Les recherches sur les diffrentes manires dinteragir avec les ordinateurs ont
dbut quasiment en mme temps que la souris se perfectionnait au dbut des
annes1970. Lide dinterface "naturelle" sest focalise sur une mthode dinte-
raction la fois intuitive et facile apprendre. Si vous avez vu le flm Minority
Report avec Tom Cruise, vous avez probablement t merveill par les images
holographiques quil pouvait manipuler par de simples dplacements et rotations de
ses mains. La manipulation dun objet laide des mains est quelque chose de natu-
rel que nous matrisons trs jeunes. Il est donc plus facile demployer de tels gestes
pour dplacer un document sur un cran dordinateur que dapprendre pointer,
cliquer ou faire glisser laide de la souris.
Les NUI ont commenc entrer dans lhistoire peu aprs lanne2000, lorsque la
majorit des smartphones ont t quips dcrans tactiles. Il tait ainsi plus facile
de pointer, de taper, de pincer et de balayer pour effectuer diffrentes actions sur le
tlphone. Apple a sorti liPhone exclusivement tactile en 2007, avec une interface
extrmement facile matriser. Il est sans doute juste de supposer que cette inter-
face plus naturelle est lune des raisons essentielles du succs de liPhone: il a t
le premier tlphone que les utilisateurs peu intresss par la technique pouvaient
sapproprier.
Pendant que la popularit de liPhone ne faisait quaugmenter, Nintendo a mis sur le
march la console Wii. Elle tait fournie avec une tlcommande particulire dont
les capteurs permettaient aux utilisateurs dinteragir avec la console en dplaant
leurs bras et en faisant pivoter leurs mains. Grce cette interface, il tait plus facile
demployer dans les jeux vido des mouvements que vous aviez dj appris, comme
lancer une boule de bowling ou frapper une balle de golf. Le succs de la console a
PRS_Windows8_MEP.indd 8 3/14/2013 1:49:19 PM
2013 Pearson France Dveloppement d'applications Windows 8 avec C# et XAML Jeremy Likness
Le nouveau Windows Runtime 9 Chapitre 1
t immdiat et ses ventes ont battu tous les records (http://fr.wikipedia.org/wiki/
Wii).
En 2009, on a commenc entendre des rumeurs sur une initiative Microsoft au
nom de code Project Natal. lautomne2010, Project Natal est offciellement n
sous la forme du priphrique Kinect pour Xbox360 et a pouss plus loin le concept
de la Wii en supprimant la tlcommande. Les capteurs du Kinect emploient des
camras spcifques pour combiner des images et une perception de profondeur de
manire analyser les objets prsents dans la pice, notamment les joueurs. Grce
ces camras, ils peuvent interagir avec la console par des mouvements du corps,
sans avoir besoin dun quelconque contrleur. Les diffrents microphones intgrs
sont capables de reprer avec une grande prcision lorigine dun son et permettent
aux joueurs dmettre des commandes vocales de manire naturelle.
La popularit du Kinect a conduit plusieurs projets open-source dont lobjectif
tait de crer des pilotes et des logiciels pour que ce priphrique puisse tre utilis
sur des ordinateurs. Aprs que plusieurs produits concurrents (non offciels) sont
arrivs sur le march, Microsoft a rpondu en juin2012 en publiant le kit de dve-
loppement du Kinect pour Windows. La version1.5 dispose de pilotes compatibles
avec Windows8.
La rvolution des NUI sest faite au cours de ces dernires annes. Les ventes
des tablettes et autres priphriques tactiles ont explos. Ladoption rapide de ces
appareils a cr un phnomne appel "consumrisation des IT"
2
. Les employs
refusent de transporter leur volumineux ordinateur portable professionnel et lui
prfrent une tablette tactile plus lgre et plus facile utiliser, quils ont achete
avec leurs propres deniers et quils apportent de leur domicile. Les services infor-
matiques rpondent en incorporant ces types dappareils dans les environnements
professionnels .
Le systme dexploitation Windows 7 (voir Figure 1.5) comprend une API grce
laquelle les dveloppeurs peuvent crire des logiciels qui rpondent aux interac-
tions tactiles et aux gestes. Malheureusement, la majorit des applications crites
pour cette plateforme se fonde encore sur lancien couple clavier-souris . Nombre
dentre elles ragissent aux vnements tactiles quand on remplace simplement un
tapotement du doigt par un clic de souris. Les interactions sont diffciles car ces
programmes ne proposent pas des zones adaptes la manipulation du contenu.
Les utilisateurs aux doigts pais, en comparaison de la taille dun stylet, auront
beaucoup de diffcults slectionner du texte ou cocher des cases empiles dans
un espace rduit sur lcran.
2. Le rsum du rapport publi en avril 2007 par Gartner sur ce phnomne peut tre consult
ladresse http://www.gartner.com/DisplayDocument?id=503272.
PRS_Windows8_MEP.indd 9 3/14/2013 1:49:19 PM
2013 Pearson France Dveloppement d'applications Windows 8 avec C# et XAML Jeremy Likness
10 Dveloppement dapplications Windows 8 avec C# et XAML
Figure1.5
Windows7.
Lorsque les consommateurs auront ralis la facilit dinteraction quoffre une
interface naturelle, ils vont peu peu dlaisser le clavier et la souris. Dans le monde
du jeu, Microsoft a rpondu par le Kinect et, dans le monde des tlphones mobiles,
par le nouveau Windows Phone. Pour les ordinateurs Windows qui ne sont pas qui-
ps dune interface tactile, la solution se devait dtre meilleure. Il fallait un systme
dexploitation optimis pour les interactions tactiles afn que les utilisateurs puissent
prendre une tablette et tre immdiatement productifs. Contrairement Apple et
Android, Microsoft devait galement travailler sans pouvoir exploiter une nouvelle
plateforme. Environ 1,25milliard de machines Windows dans le monde (500mil-
lions quipes de Windows 7) font tourner des logiciels dvelopps au cours des
dernires dcennies. Il est impossible de les mettre de ct et de les oublier lors
de la sortie dune nouvelle version de Windows (http://articles.businessinsider.
com/2011-12-06/tech/30481049_1_android-apps-ios).
Microsoft a rpondu ce df en proposant Windows8. Ce systme dexploitation
rvolutionnaire sappuie sur larchitecture Windows classique, qui permet dexcuter
cet indispensable logiciel que vous utilisez sur vos machines Windows7, Windows
Vista et WindowsXP. Cependant, la plateforme a t repense de manire offrir
une interface utilisateur naturelle tactile de premier ordre au travers dune nouvelle
forme dapplication, les applications Windows Store ajustes.
PRS_Windows8_MEP.indd 10 3/14/2013 1:49:19 PM
2013 Pearson France Dveloppement d'applications Windows 8 avec C# et XAML Jeremy Likness
Le nouveau Windows Runtime 11 Chapitre 1
Introduction aux applications Windows Store
Pour Windows8, le df est de conserver une rtrocompatibilit avec une base dins-
tallations clientes importante tout en adoptant les interfaces utilisateur naturelles et les
plateformes de type tablettes tactiles. La composante essentielle de Windows8 rside
dans un type particulier dapplications qui sont crites pour le nouveau Windows
Runtime (WinRT). Ces applications sont gnralement dsignes sous lexpression
"applications Windows Store", et "applications Windows8", dans cet ouvrage.
Les applications Windows8 sont spcifquement adaptes lutilisateur qui les ex-
cute. Elles exploitent les caractristiques matrielles particulires et sajustent au
contexte dans lequel elles sexcutent. Elles changent de taille en fonction de la rso-
lution et de lorientation de lcran et saccommodent facilement dune souris et dun
clavier en cas dabsence dun dispositif tactile. Elles peuvent consulter diffrents
capteurs pour dterminer lemplacement de lutilisateur et rpondre au dplacement
de lappareil sur lequel elles sexcutent.
Ces applications doivent rester actives, rapides et fuides. Les logiciels dvelop-
ps pour la plateforme doivent sinterfacer aisment avec dautres applications,
les rseaux sociaux et le cloud. Ils doivent tre dun apprentissage simple et dune
utilisation intuitive, car ils tirent parti dinteractions et de gestes naturels. Ces
caractristiques dune application Windows 8 concernent galement le cycle de
dveloppement. Les outils fournis doivent permettre de dvelopper rapidement et
facilement des applications de qualit, dans le langage de notre choix.
La plateforme de prise en charge des applications Windows 8 se fonde sur une
couche spciale appele Windows Runtime ou WinRT. laide dune technique
de projection, WinRT associe les API du systme dexploitation des objets du
langage de programmation retenu. En C#, les projections prennent la forme dinte-
ractions entre des classes. Cette solution ne compromet pas les performances car
le code compil invoque directement les API, comme si nous crivions du code
C/C++ non gr. Aucune conversion ou correspondance intermdiaire nest requise
et les API compiles ont un accs direct au systme dexploitation de Windows8.
Contrairement lAPI Win32, Windows Runtime est orient objet.
On expose les API de WinRT en employant la technique dj mise en place pour
le framework .NET. La CLI (Common Language Infrastructure) est utilise pour
fournir les mtadonnes qui concernent les API et le compilateur sen sert pour
effectuer la projection des mthodes vers le langage choisi et pour raliser une
compilation en code natif. Les mtadonnes respectent la norme ECMA-335 et
sont enregistres dans des fchiers ayant pour extension .winmd (pour Windows
Metadata). Pour de plus amples informations sur cette norme, consultez le site
web de lECMA ladresse http://www.ecma-international.org/publications/
standards/Ecma-335.htm.
PRS_Windows8_MEP.indd 11 3/14/2013 1:49:19 PM
2013 Pearson France Dveloppement d'applications Windows 8 avec C# et XAML Jeremy Likness
12 Dveloppement dapplications Windows 8 avec C# et XAML
La Figure1.6 illustre larchitecture employe lors du dveloppement dapplications
Windows 8. Un grand nombre dAPI sont directement fournies par Windows 8,
notamment celles relatives laffchage, aux appareils, la scurit, au rseau,
linteraction avec le systme dexploitation et la communication avec dautres
applications. ce jour, quatre langages sont reconnus par la plateforme de dve-
loppement Windows Store, avec deux moteurs de balisage graphique, lun fond
sur XAML ( la fois via du code non gr et le CLR), lautre fond sur HTML5
(avec lutilisation du moteur interne "Trident" pour le rendu et du moteur "Chakra"
dInternet Explorer10 pour linterprtation du code JavaScript).
Figure1.6
Architecture
dune application
Windows8.
Windows Runtime
HTML5 / JavaScript
(Trident et Chakra)
XAML et C++
(code non gr)
XAML et C# ou
VB.NET (CLR)
Modle dapplication
Noyau Windows
Matriel
Il est essentiel que vous vous familiarisiez avec les caractristiques spcifques des
applications Windows8. Leur interface graphique principale passe par DirectX et il
nexiste aucune possibilit daccs direct lancien GDI (Graphics Device Interface).
Les applications Windows 8 ne prennent pas en charge les fentres superposes.
Elles sexcutent dans un conteneur applicatif spcial qui peut avoir plusieurs tats.
Elles peuvent tre suspendues lorsquelles ne sont pas actives et peuvent tre arr-
tes lorsque les ressources systme, comme la mmoire, viennent manquer.
Les API de WinRT existent en deux variantes: appels directs au noyau sous-jacent
et appels dAPI ngocis. Les appels dAPI ngocis sont des appels particuliers qui
peuvent avoir un impact sur lintgrit des donnes, sur lintgrit de lutilisateur ou
sur la scurit. Pour les employer, lapplication Windows8 doit dclarer ses intentions
en indiquant les appels concerns dans un manifeste applicatif. Lutilisateur est sou-
vent invit autoriser (opt-in) ces appels avant que lapplication ne puisse les effectuer.
Jensen Harris, directeur du programme sur lexprience utilisateur pour Windows8
chez Microsoft, a dtaill, lors dune confrence Microsoft Build, les huit caract-
ristiques particulires des applications Windows8 bien crites
3
. Microsoft est rest
3. Cette excellente prsentation peut tre visionne en ligne ladresse http://channel9.msdn.com/
Events/BUILD/BUILD2011/BPS-1004.
PRS_Windows8_MEP.indd 12 3/14/2013 1:49:19 PM
2013 Pearson France Dveloppement d'applications Windows 8 avec C# et XAML Jeremy Likness
Le nouveau Windows Runtime 13 Chapitre 1
trs discret sur les dtails de Windows8 jusqu cette confrence pendant laquelle
le systme exploitation a t offciellement annonc et sa prversion dveloppeur
propose au grand public. Cest au cours dune sance spciale que Jensen a expli-
qu que les caractristiques dcrites dans les sections suivantes devaient servir de
lignes directrices lors de lcriture dune application pour la plateforme Windows8.
Conception Windows8
Les applications Windows 8 ont une apparence homogne. Pour que lutilisateur
puisse apprendre les employer de manire intuitive, il est essentiel de respecter
autant que possible les recommandations de conception des applications Win-
dows8. Pour faciliter le travail, lenvironnement de dveloppement fournit plusieurs
modles. Vous dcouvrirez les diffrentes pratiques et recommandations tout au
long de cet ouvrage. Nhsitez pas les consulter ladresse http://msdn.micro-
soft.com/fr-fr/library/windows/apps/hh465427.
Rapidit et uidit
Toutes les applications Windows 8 doivent tre rapides et fuides. Le framework
aide assurer la ractivit de lapplication en autorisant uniquement des accs
asynchrones aux API dont lexcution risque dtre lente. Dans le cas dune
application Windows 8, une opration "lente" est une opration qui peut durer
plus de 50 ms. Il sagit notamment des accs au systme de fchiers et au rseau.
Un fonctionnement asynchrone vite un blocage de linterface utilisateur pendant
le droulement de lopration en tche de fond. Grce diverses amliorations
apportes au langage C# et au framework sous-jacent, la gestion, lattente et la
rponse aux appels asynchrones sont facilites.
Les modles fournis avec Visual Studio 2012 et lIDE proposent des animations
intgres qui permettent doffrir une interface utilisateur fuide. La plupart des aff-
chages stendent dun ct lautre de lcran et lutilisateur a la possibilit de
zoomer sur des dtails. Au Chapitre 2, vous dcouvrirez comment les diffrents
modles apportent des transitions fuides et, au Chapitre3, comment appliquer des
transitions encore plus labores.
Ancrage et mise lchelle
Si la dfnition de lcran est suffsante, cest--dire si sa largeur est dau moins
1344pixels, une application Windows8 peut facilement tre ancre sur une rgion
de lcran afn quelle sexcute ct dune autre application. Cela se fait laide
dun geste prdfni, que les utilisateurs peuvent effectuer de faon grer les
applications Windows8 en cours dexcution. Les applications peuvent galement
PRS_Windows8_MEP.indd 13 3/14/2013 1:49:19 PM
2013 Pearson France Dveloppement d'applications Windows 8 avec C# et XAML Jeremy Likness
14 Dveloppement dapplications Windows 8 avec C# et XAML
facilement changer de taille en fonction de lespace disponible, en modifant leur
confguration lorsquil devient plus grand ou plus petit, ou lorsque lutilisateur
pivote sa tablette et bascule entre les orientations portrait et paysage . nouveau,
les modles disponibles dans Visual Studio 2012 apportent les bases de la prise en
charge de ces caractristiques.
Utilisation des bons contrats
Les applications Windows8 et WinRT viennent avec un nouveau concept nomm
contrats. Les contrats peuvent tre vus comme un mcanisme indpendant du lan-
gage pour exprimer des hypothses sur les possibilits du code. Par exemple, le
contrat de partage quivaut un presse-papiers sous strodes car il est capable
de grer plusieurs types de donnes, notamment le contenu HTML et les images
bitmap. Les contrats permettent aux dveloppeurs dexposer des services qui intera-
gissent directement avec le systme dexploitation ou qui peuvent tre invoqus par
lutilisateur via des icnes
4
. Ces icnes sont une fonctionnalit de linterface utilisa-
teur et de la plateforme Windows8 qui permet lutilisateur dinvoquer des contrats
au travers dun lment dinterface homogne. Il existe notamment un contrat de
recherche et son icne correspondante.
Lorsque lutilisateur active licne Rechercher partir dune application Win-
dows8, une fentre de dialogue du systme dexploitation lui est prsente. Elle
comprend un champ de texte dans lequel il peut saisir les termes rechercher.
Sous la bote de recherche, le systme dexploitation affche tous les programmes
qui prennent en charge le contrat de recherche. Il passera les termes saisis au
programme slectionn afn quils soient traits dans le contexte appropri. Ainsi,
une application vido peut comparer les termes recherchs aux titres des flms, et
une application Windows8 qui agrge des fux RSS peut les comparer au contenu
des derniers lments dinformation reus. Ce fonctionnement est illustr la
Figure1.7.
Parmi les autres icnes proposes, vous trouverez Paramtres, Priphriques et
Partager (pour changer des donnes entre des applications). Nous reviendrons en
dtail sur les icnes et les contrats au Chapitre8.
4. N.d.T. : la terminologie anglaise emploie le mot "charm", qui est parfois traduit par "charme",
comme dans "barre des charmes". Les termes franais que nous avons retenus sont ceux donns
par le portail linguistique de Microsoft (http://www.microsoft.com/Language/fr-fr/Default.
aspx).
PRS_Windows8_MEP.indd 14 3/14/2013 1:49:19 PM
2013 Pearson France Dveloppement d'applications Windows 8 avec C# et XAML Jeremy Likness
Le nouveau Windows Runtime 15 Chapitre 1
Envoie la rechercha via un contrat()
Application
Windows Store
Gre le contrat de recherche ()
Invoque licne de recherche()
Affiche les rsultats()
Renvoie les rsultats()
Ngociateur
Windows 8
Utilisateur
Figure1.7
Icnes et contrats.
Vignettes accrocheuses
Le concept de vignette est arriv avec Windows Phone7. Contrairement aux icnes
dapplications qui prennent de la place sur lcran daccueil uniquement pour per-
mettre le lancement des applications associes, les vignettes sont des espaces
dynamiques interactifs qui fournissent des informations et un contexte lutilisateur.
Par exemple, une vignette mto affchera la temprature actuelle et les prvisions.
Une vignette Twitter droulera les tweets les plus rcents qui vous mentionnent.
Une vignette de courrier lectronique affchera le nombre de messages non lus.
Lutilisation des vignettes dynamiques transforme le menu daccueil en un tableau
de bord qui propose la vue des informations riches. Trs souvent, il est possible
dobtenir les informations ncessaires sans lancer lapplication laquelle la vignette
est relie. Ce fonctionnement est comparable celui de lActive Desktop que lon
trouvait dans certaines versions prcdentes de Windows (http://fr.wikipedia.org/
wiki/Active_Desktop) et des gadgets de bureau (http://msdn.microsoft.com/en-us/
library/windows/desktop/dd834142.aspx). Toutefois, les vignettes font partie int-
grante de la plateforme Windows8 et sont relies directement aux applications.
La Figure 1.8 illustre un ancien bureau statique. Les seules informations "dyna-
miques" sont la date et lheure affches dans langle infrieur gauche. Tout le reste
est statique et les icnes servent uniquement lancer les applications. Vous remar-
querez la grande quantit despace vide inutilis sur le ct droit du bureau.
PRS_Windows8_MEP.indd 15 3/14/2013 1:49:19 PM
2013 Pearson France Dveloppement d'applications Windows 8 avec C# et XAML Jeremy Likness